ModMe GenUI Workbench - Complete Codebase Index

January 4, 2026 ยท View on GitHub

Searchable inventory of all code, components, and documentation

Generated: January 4, 2026
Repository: modme-ui-01
Purpose: Enable navigation, chunking, and porting


๐Ÿ“š Table of Contents

  1. Quick Navigation
  2. Directory Structure
  3. Entry Points
  4. Component Catalog
  5. Module Dependencies
  6. API Contracts
  7. Configuration Files
  8. Documentation Index

๐Ÿš€ Quick Navigation

By Category

CategoryDirectoryFile CountLines of Code
Python Agentagent/5~1,200
TypeScript Agent Generatoragent-generator/15+~2,500
React Frontendsrc/12+~1,800
Scripts & Utilitiesscripts/20+~3,500
Documentationdocs/12+~8,000
GitHub Workflows.github/workflows/8+~1,200
ConfigurationRoot10+~800

By Technology

TechnologyPrimary DirectoriesPurpose
Pythonagent/, scripts/ADK agent, ChromaDB ingestion, tools
TypeScriptagent-generator/, src/, scripts/knowledge-management/Code generation, frontend, KB system
Reactsrc/app/, src/components/GenUI interface, component registry
Next.jssrc/app/App router, API routes
JSON/YAMLagent/, genai-toolbox/Configuration, toolsets, GenAI tools

๐Ÿ“ Directory Structure

Root Level

modme-ui-01/
โ”œโ”€โ”€ .copilot/                   # Copilot templates and configurations
โ”‚   โ””โ”€โ”€ templates/
โ”‚       โ””โ”€โ”€ component-template.tsx    # React component scaffold
โ”‚
โ”œโ”€โ”€ .github/                    # GitHub Actions workflows
โ”‚   โ”œโ”€โ”€ ISSUE_TEMPLATE/        # Issue templates (4 files)
โ”‚   โ””โ”€โ”€ workflows/             # CI/CD workflows (8+ files)
โ”‚
โ”œโ”€โ”€ .config/                                  # Shell integration profiles
โ”‚   โ”œโ”€โ”€ README.md                             # Shell integration comprehensive guide (~210 lines)
โ”‚   โ”œโ”€โ”€ QUICKSTART.md                         # Quick reference guide (~150 lines)
โ”‚   โ”œโ”€โ”€ powershell/                           # PowerShell project profile
โ”‚   โ”‚   โ””โ”€โ”€ Microsoft.PowerShell_profile.ps1  # Project PowerShell profile (~170 lines)
โ”‚   โ””โ”€โ”€ bash/                                 # Bash project profile
โ”‚       โ””โ”€โ”€ bashrc                            # Project bashrc (~115 lines)
โ”‚
โ”œโ”€โ”€ .vscode/                                  # VS Code folder settings
โ”‚   โ””โ”€โ”€ settings.json                         # VS Code workspace settings (shell integration)
โ”‚
โ”œโ”€โ”€ agent/                      # Python ADK agent runtime
โ”‚   โ”œโ”€โ”€ main.py                # Main agent entry point (420 lines)
โ”‚   โ”œโ”€โ”€ toolset_manager.py     # Toolset lifecycle manager (350 lines)
โ”‚   โ”œโ”€โ”€ toolsets.json          # Tool registry (100 lines)
โ”‚   โ”œโ”€โ”€ toolset_aliases.json   # Deprecation aliases (50 lines)
โ”‚   โ”œโ”€โ”€ toolset-schema.json    # JSON schema for toolsets (280 lines)
โ”‚   โ”œโ”€โ”€ pyproject.toml         # Python dependencies
โ”‚   โ””โ”€โ”€ tools/                 # Tool modules
โ”‚       โ””โ”€โ”€ schema_crawler_tool.py  # JSON Schema โ†’ Zod converter (270 lines)
โ”‚
โ”œโ”€โ”€ agent-generator/            # TypeScript code generation system
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”œโ”€โ”€ tsconfig.json
โ”‚   โ”œโ”€โ”€ SCHEMA_CRAWLER_README.md  # (3,800 lines)
โ”‚   โ”œโ”€โ”€ output/                # Generated code output
โ”‚   โ”‚   โ”œโ”€โ”€ agent_prompt.md
โ”‚   โ”‚   โ””โ”€โ”€ tools_schema.json
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ mcp-registry/      # MCP integration layer
โ”‚       โ”‚   โ”œโ”€โ”€ schema-crawler.ts        # (600 lines)
โ”‚       โ”‚   โ”œโ”€โ”€ molecule-generator.ts    # (450 lines)
โ”‚       โ”‚   โ”œโ”€โ”€ registry-fetcher.ts      # (320 lines)
โ”‚       โ”‚   โ”œโ”€โ”€ ARCHITECTURE_DIAGRAM.md
โ”‚       โ”‚   โ”œโ”€โ”€ INTEGRATION_QUICKSTART.md
โ”‚       โ”‚   โ””โ”€โ”€ MCP_INTEGRATION_PLAN.md
โ”‚       โ”œโ”€โ”€ scripts/
โ”‚       โ”‚   โ””โ”€โ”€ generate.ts    # Code generation script
โ”‚       โ”œโ”€โ”€ skills/            # 13+ skill directories
โ”‚       โ”‚   โ”œโ”€โ”€ algorithmic-art/
โ”‚       โ”‚   โ”œโ”€โ”€ brand-guidelines/
โ”‚       โ”‚   โ”œโ”€โ”€ docx/
โ”‚       โ”‚   โ”œโ”€โ”€ internal-comms/
โ”‚       โ”‚   โ”œโ”€โ”€ mcp-builder/
โ”‚       โ”‚   โ”œโ”€โ”€ pdf/
โ”‚       โ”‚   โ”œโ”€โ”€ pptx/
โ”‚       โ”‚   โ”œโ”€โ”€ skill-creator/
โ”‚       โ”‚   โ”œโ”€โ”€ theme-factory/
โ”‚       โ”‚   โ”œโ”€โ”€ weather/
โ”‚       โ”‚   โ”œโ”€โ”€ web-artifacts-builder/
โ”‚       โ”‚   โ””โ”€โ”€ xlsx/
โ”‚       โ””โ”€โ”€ tools/
โ”‚           โ””โ”€โ”€ weather.ts
โ”‚
โ”œโ”€โ”€ docs/                       # Comprehensive documentation
โ”‚   โ”œโ”€โ”€ KNOWLEDGE_BASE_INTEGRATION.md     # (750 lines)
โ”‚   โ”œโ”€โ”€ KB_IMPLEMENTATION_SUMMARY.md      # (450 lines)
โ”‚   โ”œโ”€โ”€ KB_QUICK_REFERENCE.md             # (200 lines)
โ”‚   โ”œโ”€โ”€ KB_TEST_FIX.md                    # (80 lines)
โ”‚   โ”œโ”€โ”€ KB_MEMORY_GRAPH.md                # (3,000 lines)
โ”‚   โ”œโ”€โ”€ KNOWLEDGE_MANAGEMENT.md           # (800 lines)
โ”‚   โ”œโ”€โ”€ KNOWLEDGE_QUICKSTART.md           # (400 lines)
โ”‚   โ”œโ”€โ”€ MCP_EVERYTHING_SERVER.md          # (650 lines)
โ”‚   โ”œโ”€โ”€ REFACTORING_PATTERNS.md           # (1,200 lines)
โ”‚   โ”œโ”€โ”€ TOOLSET_MANAGEMENT.md             # (900 lines)
โ”‚   โ”œโ”€โ”€ TOOLSET_QUICKSTART.md             # (600 lines)
โ”‚   โ””โ”€โ”€ toolsets/              # Toolset documentation
โ”‚       โ”œโ”€โ”€ README.md
โ”‚       โ”œโ”€โ”€ theme.md
โ”‚       โ”œโ”€โ”€ toolset-relationships.mmd
โ”‚       โ””โ”€โ”€ ui_elements.md
โ”‚
โ”œโ”€โ”€ genai-toolbox/             # GenAI tools configuration
โ”‚   โ””โ”€โ”€ tools.yaml             # (150 lines)
โ”‚
โ”œโ”€โ”€ prompts/                   # AI agent prompts
โ”‚   โ””โ”€โ”€ copilot/
โ”‚       โ”œโ”€โ”€ 01_molecules.md
โ”‚       โ””โ”€โ”€ 02_tools_and_routes.md
โ”‚
โ”œโ”€โ”€ public/                    # Static assets
โ”‚
โ”œโ”€โ”€ scripts/                   # Utility scripts
โ”‚   โ”œโ”€โ”€ knowledge-management/  # KB system scripts
โ”‚   โ”‚   โ”œโ”€โ”€ issue-context-mapper.ts    # (420 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ test-kb-mapper.js          # (140 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ sync-docs.js               # (200 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ generate-diagram.js        # (180 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”‚   โ”œโ”€โ”€ tsconfig.json
โ”‚   โ”‚   โ””โ”€โ”€ README.md                  # (550 lines)
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ toolset-management/    # Toolset lifecycle scripts
โ”‚   โ”‚   โ”œโ”€โ”€ detect-toolset-changes.js  # (250 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ validate-toolsets.js       # (320 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ create-alias.js            # (180 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ generate-migration-guide.js # (200 lines)
โ”‚   โ”‚   โ””โ”€โ”€ README.md
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ ingest_chunks.py       # ChromaDB ingestion (490 lines)
โ”‚   โ”œโ”€โ”€ start_chroma_server.py # ChromaDB HTTP server
โ”‚   โ”œโ”€โ”€ local_vault.py         # Secret management
โ”‚   โ”œโ”€โ”€ add_github_mcp.ps1
โ”‚   โ”œโ”€โ”€ check_github_mcp_alignment.ps1
โ”‚   โ”œโ”€โ”€ health-check.sh
โ”‚   โ”œโ”€โ”€ print_mcp_servers.ps1
โ”‚   โ”œโ”€โ”€ remove_mcp_entries.ps1
โ”‚   โ”œโ”€โ”€ run-agent.bat
โ”‚   โ”œโ”€โ”€ run-agent.sh
โ”‚   โ”œโ”€โ”€ setup-agent.bat
โ”‚   โ”œโ”€โ”€ setup-agent.sh
โ”‚   โ”œโ”€โ”€ setup-shell-integration.ps1  # PowerShell shell integration setup (~167 lines)
โ”‚   โ”œโ”€โ”€ setup-shell-integration.sh   # Bash shell integration setup (~120 lines)
โ”‚   โ”œโ”€โ”€ setup.ps1
โ”‚   โ”œโ”€โ”€ setup.sh
โ”‚   โ”œโ”€โ”€ start-dev.sh
โ”‚   โ”œโ”€โ”€ start-mcp-servers.ps1
โ”‚   โ”œโ”€โ”€ start-mcp-servers.sh
โ”‚   โ”œโ”€โ”€ sync-env-to-claude-settings.ps1
โ”‚   โ””โ”€โ”€ verify_github_mcp.ps1
โ”‚
โ”œโ”€โ”€ src/                       # React/Next.js frontend
โ”‚   โ”œโ”€โ”€ app/                   # Next.js app router
โ”‚   โ”‚   โ”œโ”€โ”€ page.tsx           # Main canvas page (180 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ layout.tsx         # Root layout (60 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ globals.css        # Global styles (120 lines)
โ”‚   โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ copilotkit/
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ route.ts   # CopilotKit API route (30 lines)
โ”‚   โ”‚   โ””โ”€โ”€ canvas/
โ”‚   โ”‚       โ””โ”€โ”€ GenerativeCanvas.tsx  # Chat+ canvas (80 lines)
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ proverbs.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ weather.tsx
โ”‚   โ”‚   โ””โ”€โ”€ registry/          # Component registry
โ”‚   โ”‚       โ”œโ”€โ”€ StatCard.tsx   # (120 lines)
โ”‚   โ”‚       โ”œโ”€โ”€ DataTable.tsx  # (180 lines)
โ”‚   โ”‚       โ””โ”€โ”€ ChartCard.tsx  # (150 lines)
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ””โ”€โ”€ types.ts           # Type definitions (50 lines)
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ prompts/
โ”‚       โ””โ”€โ”€ copilot/
โ”‚
โ”œโ”€โ”€ templates/                 # Documentation templates
โ”‚   โ”œโ”€โ”€ toolset-full.md.hbs
โ”‚   โ””โ”€โ”€ toolset-single.md.hbs
โ”‚
โ””โ”€โ”€ test-mcp-validation/       # MCP validation tests
    โ””โ”€โ”€ test-file.txt

# Configuration Files (Root)
โ”œโ”€โ”€ CONTRIBUTING.md
โ”œโ”€โ”€ DEVCONTAINER_SETUP.md
โ”œโ”€โ”€ eslint.config.mjs
โ”œโ”€โ”€ GITHUB_MCP_INSTALL.md
โ”œโ”€โ”€ IMPLEMENTATION_SUMMARY.md
โ”œโ”€โ”€ INSTALLATION_CHECKLIST.md
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ next-env.d.ts
โ”œโ”€โ”€ next.config.ts
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ postcss.config.mjs
โ”œโ”€โ”€ Project_Overview.md
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ REFACTORING_APPLIED_2026-01-03.md
โ”œโ”€โ”€ SESSION_SUMMARY_2026-01-03.md
โ”œโ”€โ”€ SETUP_RECORD.md
โ”œโ”€โ”€ TOOLSET_README.md
โ”œโ”€โ”€ tsconfig.json
โ””โ”€โ”€ workspace.code-workspace

๐ŸŽฏ Entry Points

1. Frontend Application

Main Entry: src/app/page.tsx

// Primary export
export default function CopilotKitPage() {
  // CopilotSidebar + GenerativeCanvas
  // Reads state from Python agent via useCoAgent
}

Key Functions:

  • YourMainContent() - Renders canvas with elements
  • renderElement(el: UIElement) - Component registry router
  • useFrontendTool() - Theme color management

Imports:

  • @copilotkit/react-core - Agent orchestration
  • @copilotkit/react-ui - CopilotSidebar
  • @/lib/types - TypeScript types
  • @/components/registry/* - UI components

API Route: src/app/api/copilotkit/route.ts

  • Bridges CopilotKit runtime โ† โ†’ Python agent (localhost:8000)
  • Uses HttpAgent from @ag-ui/client

2. Python Agent

Main Entry: agent/main.py

# Primary exports
workbench_agent = LlmAgent(...)  # Google ADK agent
adk_agent = ADKAgent(...)        # AG-UI wrapper
app = FastAPI(...)               # FastAPI app

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

Key Functions:

  • upsert_ui_element() - Add/update UI element
  • remove_ui_element() - Remove UI element
  • clear_canvas() - Clear all elements
  • before_model_modifier() - Inject canvas state into prompt
  • after_model_modifier() - Stop consecutive tool calls
  • health_check() - Liveness probe
  • readiness_check() - Readiness probe with toolset info

Tools Available:

ALLOWED_TYPES = {"StatCard", "DataTable", "ChartCard"}

State Contract:

tool_context.state["elements"] = [
    {"id": str, "type": str, "props": dict}
]

3. Knowledge Base System

Main Entry: scripts/knowledge-management/issue-context-mapper.ts

// Primary exports
export interface KnowledgeBaseAnalysis { ... }
export function analyzeIssue(issueText: string): KnowledgeBaseAnalysis

CLI Usage:

node issue-context-mapper.js "issue text here"
# Outputs JSON with concepts, labels, files, docs

Workflow Integration:

  • .github/workflows/issue-labeler.yml calls script
  • Parses stdout JSON
  • Posts comment to issue with KB analysis

4. Toolset Management

Main Entry: agent/toolset_manager.py

# Primary exports
def initialize_toolsets()
def list_available_toolsets()
def get_toolset(name: str)
def is_deprecated(name: str)

Validation: scripts/toolset-management/validate-toolsets.js

node scripts/toolset-management/validate-toolsets.js
# Validates agent/toolsets.json against schema

5. ChromaDB Indexing

Main Entry: scripts/ingest_chunks.py

python scripts/ingest_chunks.py \
  --mode persistent \
  --persist-dir ./chroma_data \
  --chunks-file chunks.jsonl \
  --embedding-dim 768

Key Functions:

  • configure_genai() - Setup Google Gemini API
  • get_chroma_client() - Initialize ChromaDB client
  • embed_texts() - Generate embeddings (single)
  • embed_texts_batch() - Generate embeddings (batch)
  • ingest_to_collection() - Ingest chunks into collection

Collections Created:

  • code_index - Source code chunks
  • agent_tools - Agent tool definitions
  • documentation - Markdown docs
  • workflows - GitHub Actions YAML

6. Schema Crawler

Main Entry: agent-generator/src/mcp-registry/schema-crawler.ts

// Primary exports
export function generateZodFromJSONSchema(schema, typeName);
export function generateZodModule(toolName, inputSchema, outputSchema);
export function generateZodModulesBatch(tools);
export function generateSchemaFileStructure(serverName, tools);

Usage:

import { generateZodModule } from "./schema-crawler";

const module = generateZodModule("getWeather", inputSchema, outputSchema);
fs.writeFileSync("schemas/getWeather.schema.ts", module);

๐Ÿ“ฆ Component Catalog

React Components

1. StatCard

Location: src/components/registry/StatCard.tsx (120 lines)

Purpose: Metric display card with trends

Props:

interface StatCardProps {
  title: string; // Card title
  value: string | number; // Main metric value
  trend?: string; // Trend indicator (e.g., "+12%")
  trendDirection?: "up" | "down"; // Trend direction
}

Dependencies:

  • zod - Runtime validation
  • (Optional) @mui/material - Styling

Example:

<StatCard
  title="Revenue"
  value={120000}
  trend="+12%"
  trendDirection="up"
/>

2. DataTable

Location: src/components/registry/DataTable.tsx (180 lines)

Purpose: Data grid / table component

Props:

interface DataTableProps {
  columns: string[]; // Column headers
  data: object[]; // Row data
  pageSize?: number; // Rows per page (default: 10)
  sortable?: boolean; // Enable sorting (default: true)
}

Features:

  • Sorting
  • Pagination
  • Column filtering
  • Responsive design

Example:

<DataTable
  columns={["Name", "Email", "Plan"]}
  data={[
    { name: "Alice", email: "alice@example.com", plan: "Pro" },
    { name: "Bob", email: "bob@example.com", plan: "Free" }
  ]}
/>

3. ChartCard

Location: src/components/registry/ChartCard.tsx (150 lines)

Purpose: Chart wrapper component

Props:

interface ChartCardProps {
  title: string; // Chart title
  chartType: "line" | "bar" | "pie"; // Chart type
  data: object[]; // Chart data
  xKey?: string; // X-axis key (default: "x")
  yKey?: string; // Y-axis key (default: "y")
}

Dependencies:

  • (Optional) recharts or chart.js

Example:

<ChartCard
  title="Weekly Growth"
  chartType="line"
  data={[
    { week: "W1", revenue: 1000 },
    { week: "W2", revenue: 1200 }
  ]}
  xKey="week"
  yKey="revenue"
/>

4. GenerativeCanvas

Location: src/app/canvas/GenerativeCanvas.tsx (80 lines)

Purpose: Chat+ style persistent canvas for GenUI

Props:

interface GenerativeCanvasProps {
  children: React.ReactNode; // Rendered elements
}

Features:

  • Scrollable canvas
  • Responsive layout
  • Integrates with CopilotSidebar

Python Agent Tools

1. upsert_ui_element

Location: agent/main.py:40-75

Purpose: Add or update UI element on canvas

Parameters:

def upsert_ui_element(
    tool_context: ToolContext,
    id: str,                    # Unique element ID
    type: str,                  # Component type (StatCard, DataTable, ChartCard)
    props: Dict[str, Any]       # Component props (JSON-serializable)
) -> Dict[str, str]

Returns:

{"status": "success", "message": "Element 'X' of type 'Y' added/updated.", "element_count": N}

Validation:

  • ID must be non-empty string
  • Type must be in ALLOWED_TYPES
  • Props must be dict

2. remove_ui_element

Location: agent/main.py:77-100

Purpose: Remove UI element from canvas

Parameters:

def remove_ui_element(
    tool_context: ToolContext,
    id: str                     # Element ID to remove
) -> Dict[str, str]

Returns:

{"status": "success", "message": "Element 'X' removed.", "element_count": N}

3. clear_canvas

Location: agent/main.py:102-105

Purpose: Remove all elements from canvas

Parameters:

def clear_canvas(
    tool_context: ToolContext
) -> Dict[str, str]

Returns:

{"status": "success", "message": "Canvas cleared."}

TypeScript Utilities

1. issue-context-mapper

Location: scripts/knowledge-management/issue-context-mapper.ts

Purpose: Analyze GitHub issue text for semantic enrichment

Exports:

export interface KnowledgeBaseAnalysis {
  concepts: string[];
  labels: string[];
  relatedFiles: Array<{ path: string; description: string }>;
  relatedDocs: string[];
}

export function analyzeIssue(issueText: string): KnowledgeBaseAnalysis;

Usage:

const analysis = analyzeIssue("Agent fails to render ChartCard");
// concepts: ["Agent Tools"]
// labels: ["agent", "tools", "enhancement"]
// relatedFiles: ["agent/main.py", "src/components/registry/ChartCard.tsx"]

2. schema-crawler

Location: agent-generator/src/mcp-registry/schema-crawler.ts

Purpose: Convert JSON Schema โ†’ Zod + TypeScript

Exports:

export interface ZodSchemaOutput {
  zodCode: string; // Zod schema code
  typeDefinition: string; // TypeScript interface
  validatorCode: string; // Validator functions
}

export function generateZodFromJSONSchema(schema: JSONSchema, typeName: string): ZodSchemaOutput;

Usage:

const result = generateZodFromJSONSchema(
  {
    type: "object",
    properties: {
      city: { type: "string", minLength: 2 },
    },
  },
  "WeatherInput"
);

console.log(result.zodCode);
// z.object({ city: z.string().min(2) })

๐Ÿ”— Module Dependencies

Dependency Graph

Frontend (src/app/page.tsx)
    โ”œโ”€โ”€ @copilotkit/react-core      (Agent orchestration)
    โ”œโ”€โ”€ @copilotkit/react-ui        (CopilotSidebar)
    โ”œโ”€โ”€ @/lib/types                 (Type definitions)
    โ””โ”€โ”€ @/components/registry/*     (UI components)
            โ”œโ”€โ”€ StatCard.tsx
            โ”œโ”€โ”€ DataTable.tsx
            โ””โ”€โ”€ ChartCard.tsx
                    โ””โ”€โ”€ zod         (Runtime validation)

Python Agent (agent/main.py)
    โ”œโ”€โ”€ google.adk.agents           (LlmAgent, ToolContext)
    โ”œโ”€โ”€ ag_ui_adk                   (ADKAgent)
    โ”œโ”€โ”€ fastapi                     (FastAPI, JSONResponse)
    โ””โ”€โ”€ toolset_manager             (Toolset lifecycle)

Knowledge Base (scripts/knowledge-management/)
    โ””โ”€โ”€ Node.js built-ins only
        (fs, path)

Toolset Management (scripts/toolset-management/)
    โ”œโ”€โ”€ ajv                         (JSON validation)
    โ””โ”€โ”€ ajv-formats                 (JSON Schema formats)

ChromaDB Indexing (scripts/ingest_chunks.py)
    โ”œโ”€โ”€ chromadb                    (Vector database)
    โ”œโ”€โ”€ google.generativeai         (Gemini embeddings)
    โ””โ”€โ”€ pykomodo (optional)         (Code chunking)

Internal Dependencies

src/app/page.tsx
    โ””โ”€โ”€ imports src/lib/types.ts
    โ””โ”€โ”€ imports src/components/registry/*.tsx

src/app/api/copilotkit/route.ts
    โ””โ”€โ”€ connects to agent/main.py (HTTP)

agent/main.py
    โ””โ”€โ”€ imports agent/toolset_manager.py

scripts/knowledge-management/issue-context-mapper.ts
    โ””โ”€โ”€ standalone (no internal deps)

agent-generator/src/mcp-registry/schema-crawler.ts
    โ””โ”€โ”€ standalone (no internal deps)

๐Ÿ“œ API Contracts

1. Agent โ†” Frontend State Contract

Python Side (agent/main.py):

tool_context.state["elements"] = [
    {"id": "revenue", "type": "StatCard", "props": {"title": "MRR", "value": 120000}},
    {"id": "users", "type": "DataTable", "props": {"columns": [...], "data": [...]}}
]

TypeScript Side (src/lib/types.ts):

export type UIElement = {
  id: string; // Must match Python "id" key
  type: string; // Must match Python "type" key
  props: any; // Must match Python "props" key
};

export type AgentState = {
  elements: UIElement[]; // Must match Python "elements" key
};

Critical: Keys must match exactly. Python uses snake_case internally but exports match TypeScript camelCase.


2. Tool Response Format

All agent tools return:

{
    "status": "success" | "error" | "warning",
    "message": str,
    "element_count": int (optional),
    # Additional context as needed
}

Example Success:

{"status": "success", "message": "Element 'card1' of type 'StatCard' added.", "element_count": 3}

Example Error:

{"status": "error", "message": "Invalid type 'InvalidCard'. Allowed: StatCard, DataTable, ChartCard"}

3. Knowledge Base Analysis Format

Output (issue-context-mapper.ts):

{
  "concepts": ["Agent Tools", "State Sync"],
  "labels": ["agent", "tools", "state-management"],
  "relatedFiles": [
    { "path": "agent/main.py", "description": "Python ADK agent" },
    { "path": "src/lib/types.ts", "description": "State contract" }
  ],
  "relatedDocs": ["docs/REFACTORING_PATTERNS.md", ".github/copilot-instructions.md"]
}

4. Toolset JSON Schema

Format (agent/toolsets.json):

{
  "$schema": "./toolset-schema.json",
  "version": "1.0.0",
  "updated": "ISO-8601 timestamp",
  "toolsets": [
    {
      "id": "ui_elements",
      "name": "UI Elements",
      "description": "Manage canvas UI components",
      "default": true,
      "icon": "paintbrush",
      "tools": ["upsert_ui_element", "remove_ui_element", "clear_canvas"],
      "metadata": {
        "status": "active" | "deprecated",
        "category": "generative_ui",
        "version": "1.0.0",
        "requires": [],
        "related_toolsets": []
      }
    }
  ]
}

5. ChromaDB Chunks Format

Input (chunks.jsonl):

{"id": "chunk_001", "text": "function upsert_ui_element...", "metadata": {"file": "agent/main.py", "type": "function", "name": "upsert_ui_element"}}
{"id": "chunk_002", "text": "export function StatCard...", "metadata": {"file": "src/components/registry/StatCard.tsx", "type": "component", "name": "StatCard"}}

Metadata Schema:

{
  file: string;               // Source file path
  type: "function" | "class" | "component" | "doc";
  name: string;               // Symbol name
  line_start?: number;
  line_end?: number;
  imports?: string[];
  exports?: string[];
}

โš™๏ธ Configuration Files

1. package.json (Root)

Location: package.json

Key Scripts:

{
  "dev": "next dev",
  "dev:agent": "cd agent && uv run uvicorn main:app --reload",
  "build": "next build",
  "lint": "next lint && cd agent && uv run ruff check .",
  "validate:toolsets": "node scripts/toolset-management/validate-toolsets.js",
  "docs:all": "node scripts/knowledge-management/generate-diagram.js && node scripts/knowledge-management/sync-docs.js"
}

Dependencies:

  • next: 16.0.0
  • react: 19.0.0
  • @copilotkit/react-core: 1.50.0
  • @copilotkit/react-ui: 1.50.0
  • zod: 3.23.0

2. tsconfig.json (Root)

Location: tsconfig.json

Target: ES2022, Module: ESNext

Path Aliases:

{
  "paths": {
    "@/*": ["./src/*"]
  }
}

3. next.config.ts

Location: next.config.ts

Key Config:

const nextConfig: NextConfig = {
  reactStrictMode: true,
  swcMinify: true,
};

4. pyproject.toml (Agent)

Location: agent/pyproject.toml

Dependencies:

[project]
dependencies = [
    "google-adk>=0.1.0",
    "ag-ui-adk>=0.1.0",
    "fastapi>=0.115.0",
    "uvicorn>=0.32.0",
    "python-dotenv>=1.0.0",
]

5. toolsets.json

Location: agent/toolsets.json

Purpose: Tool registry for Python agent

Schema: agent/toolset-schema.json

Current Toolsets:

  • ui_elements - StatCard, DataTable, ChartCard
  • theme - setThemeColor

6. .env.example

Location: .env.example

Required Secrets:

GOOGLE_API_KEY="your-gemini-api-key"
COPILOT_CLOUD_API_KEY=""  # Optional

๐Ÿ“š Documentation Index

By Topic

TopicFileLinesPurpose
Knowledge Basedocs/KNOWLEDGE_BASE_INTEGRATION.md750Integration guide
docs/KB_IMPLEMENTATION_SUMMARY.md450Implementation details
docs/KB_QUICK_REFERENCE.md200Quick reference
docs/KB_MEMORY_GRAPH.md3,000Memory graph structure
docs/KNOWLEDGE_MANAGEMENT.md800System overview
docs/KNOWLEDGE_QUICKSTART.md400Quick start guide
Toolset Managementdocs/TOOLSET_MANAGEMENT.md900Complete reference
docs/TOOLSET_QUICKSTART.md600Quick start
TOOLSET_README.md450System overview
Refactoringdocs/REFACTORING_PATTERNS.md1,200Refactoring guide
Schema Crawleragent-generator/SCHEMA_CRAWLER_README.md3,800Complete guide
MCP Integrationdocs/MCP_EVERYTHING_SERVER.md650MCP server docs
agent-generator/src/mcp-registry/MCP_INTEGRATION_PLAN.md400Integration plan
Shell Integration.config/README.md210Comprehensive guide
.config/QUICKSTART.md150Quick reference
SHELL_INTEGRATION_SUMMARY.md400Implementation summary
SetupDEVCONTAINER_SETUP.md300Devcontainer guide
INSTALLATION_CHECKLIST.md250Installation steps
SETUP_RECORD.md200Setup log
GITHUB_MCP_INSTALL.md180GitHub MCP setup
ProjectProject_Overview.md1,500High-level vision
README.md400Getting started
CONTRIBUTING.md350Contribution guide

Documentation Categories

1. Getting Started

  • README.md - Quick start
  • INSTALLATION_CHECKLIST.md - Setup steps
  • DEVCONTAINER_SETUP.md - Devcontainer guide

2. Knowledge Base System

  • docs/KNOWLEDGE_BASE_INTEGRATION.md - How to integrate
  • docs/KB_IMPLEMENTATION_SUMMARY.md - Implementation decisions
  • docs/KB_QUICK_REFERENCE.md - Cheat sheet
  • docs/KNOWLEDGE_MANAGEMENT.md - System design
  • docs/KNOWLEDGE_QUICKSTART.md - 5-minute start

3. Toolset Management

  • docs/TOOLSET_MANAGEMENT.md - Complete guide
  • docs/TOOLSET_QUICKSTART.md - Quick start
  • TOOLSET_README.md - Overview
  • docs/toolsets/ - Individual toolset docs

4. Development

  • docs/REFACTORING_PATTERNS.md - Refactoring guide
  • .github/copilot-instructions.md - AI agent instructions
  • prompts/copilot/ - AI prompts

5. Architecture

  • Project_Overview.md - Vision and architecture
  • agent-generator/src/mcp-registry/ARCHITECTURE_DIAGRAM.md - MCP architecture
  • docs/KB_MEMORY_GRAPH.md - Knowledge graph structure

6. Tools & Utilities

  • agent-generator/SCHEMA_CRAWLER_README.md - Schema crawler
  • scripts/knowledge-management/README.md - KB scripts
  • scripts/toolset-management/README.md - Toolset scripts

7. Shell Integration

  • .config/README.md - Comprehensive setup guide
  • .config/QUICKSTART.md - Quick reference
  • SHELL_INTEGRATION_SUMMARY.md - Implementation summary
  • scripts/setup-shell-integration.ps1 - PowerShell setup script
  • scripts/setup-shell-integration.sh - Bash setup script
  • .config/powershell/Microsoft.PowerShell_profile.ps1 - PowerShell profile
  • .config/bash/bashrc - Bash profile

๐Ÿ” Search Index

By Keyword

KeywordRelevant Files
Agentagent/main.py, agent/toolset_manager.py, .github/copilot-instructions.md
Component Registrysrc/components/registry/*.tsx, src/app/page.tsx
Knowledge Basescripts/knowledge-management/, docs/KNOWLEDGE_*.md
Toolsetagent/toolsets.json, scripts/toolset-management/, docs/TOOLSET_*.md
Schema Crawleragent-generator/src/mcp-registry/schema-crawler.ts, agent-generator/SCHEMA_CRAWLER_README.md
ChromaDBscripts/ingest_chunks.py, scripts/start_chroma_server.py
State Syncagent/main.py:before_model_modifier, src/lib/types.ts, src/app/page.tsx
Validationsrc/components/registry/*.tsx (Zod), scripts/toolset-management/validate-toolsets.js
Testingscripts/knowledge-management/test-kb-mapper.js, docs/KB_TEST_FIX.md
Workflows.github/workflows/, docs/TOOLSET_MANAGEMENT.md
Shell Integration.config/, scripts/setup-shell-integration.*, SHELL_INTEGRATION_SUMMARY.md

By File Extension

ExtensionCountPurposePrimary Directories
.ts15+TypeScript sourceagent-generator/src/, scripts/knowledge-management/
.tsx12+React componentssrc/app/, src/components/
.py10+Python sourceagent/, scripts/
.md25+Documentationdocs/, root, subdirectories
.json15+Configurationagent/, root
.yaml / .yml10+Workflows, GenAI config.github/workflows/, genai-toolbox/
.js8+Scriptsscripts/knowledge-management/, scripts/toolset-management/

๐Ÿš€ Development Workflows

1. Setup Shell Integration (First Time)

PowerShell (Windows):

# Run automated setup script
.\scripts\setup-shell-integration.ps1

# Reload VS Code window
# Ctrl+Shift+P โ†’ "Developer: Reload Window"

# Open new terminal - you should see welcome message
# Type 'help' to see available commands

Bash (Git Bash, WSL, Linux, macOS):

# Run automated setup script
bash scripts/setup-shell-integration.sh

# Reload shell
source ~/.bashrc

# Or open new terminal - you should see welcome message
# Type 'help' to see available commands

Available Project Commands (after setup):

  • dev - Start both frontend and agent servers
  • ui - Start Next.js frontend only
  • agent - Start Python agent only
  • mcp - Start MCP servers
  • validate - Validate toolsets configuration
  • docs - Generate all documentation
  • venv - Activate Python virtual environment
  • help - Show available commands

2. Start Development Environment

# With shell integration (simple aliases)
dev

# OR traditional method:
# Terminal 1: Python agent
cd agent
uv run uvicorn main:app --reload --port 8000

# Terminal 2: Next.js frontend
npm run dev
# http://localhost:3000

3. Run Tests

# Knowledge Base tests
cd scripts/knowledge-management
npm test

# TypeScript type checking
npx tsc --noEmit

# Python linting
cd agent
uv run ruff check .

4. Validate Toolsets

npm run validate:toolsets
# or
node scripts/toolset-management/validate-toolsets.js
# or with shell integration
validate

5. Generate Documentation

npm run docs:all
# or with shell integration
docs
# Generates:
# - Toolset docs (docs/toolsets/)
# - Relationship diagram (docs/toolsets/toolset-relationships.mmd)

6. Index Codebase

# 1. Generate chunks (using pykomodo or similar)
# ... create chunks.jsonl

# 2. Start ChromaDB server (optional)
python scripts/start_chroma_server.py --port 8001

# 3. Ingest chunks
python scripts/ingest_chunks.py \
  --mode persistent \
  --persist-dir ./chroma_data \
  --chunks-file chunks.jsonl \
  --embedding-dim 768

๐Ÿ“Š Code Metrics

Lines of Code Summary

CategoryFilesApprox. LoCLanguages
Python Agent5~1,200Python
TypeScript Agent Generator15+~2,500TypeScript
React Frontend12+~1,800TypeScript/TSX
Scripts20+~3,500TypeScript, Python, Shell
Documentation25+~15,000Markdown
Configuration15+~1,500JSON, YAML, TOML
GitHub Actions8+~1,200YAML
Total100+~26,700Multi-language

File Type Distribution

TypeScript/TSX:  ~30 files  (~4,300 LoC)
Python:          ~15 files  (~3,000 LoC)
Markdown:        ~25 files  (~15,000 LoC)
JSON/YAML:       ~23 files  (~2,700 LoC)
Shell Scripts:   ~15 files  (~1,700 LoC)

๐ŸŽฏ Porting Checklist

When porting components to another project:

Pre-Port

  • Identify target components (see PORTING_GUIDE.md)
  • Review dependencies in this index
  • Check API contracts section
  • Verify Node.js/Python versions

During Port

  • Copy relevant directories from directory structure
  • Update file paths in configuration files
  • Update import statements (use path aliases)
  • Customize constants (KNOWLEDGE_BASE, ALLOWED_TYPES, etc.)
  • Install dependencies from package.json / pyproject.toml
  • Run validation scripts

Post-Port

  • Run tests
  • Verify workflows (if applicable)
  • Generate documentation
  • Create PR with changes

๐Ÿ”— External References


๐Ÿ“ž Support

For questions about this codebase:

  1. Search this index for relevant files
  2. Check documentation in docs/ directory
  3. Review component README in subdirectories
  4. File issue with appropriate labels

This index is automatically maintainable. Update as codebase evolves.

Version: 1.0.0 | Generated: January 3, 2026 | Maintainer: ModMe GenUI Team