# kasper-kal/infinity-ai architecture

> Architecture diagram of the GitHub repository kasper-kal/infinity-ai, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kasper-kal/infinity-ai
- Repository: https://github.com/kasper-kal/infinity-ai

## Overview

Infinity AI is a full-stack AI workspace: users interact through a React application, while an Express API exposes conversation, research, workspace, browser, and creative capabilities. The principal workflow spans a user request, assistant or specialist processing, optional tools and workspace actions, and a returned result. The README documents the broader feature set; the sampled research source confirms iterative research and final report/expert generation. Other feature wiring is represented only where documented, not inferred from neighboring modules.

Main entry points: [`artifacts/api-server/src/lib/research-engine.ts`](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/research-engine.ts) (Deep Research), [`artifacts/infinity-ai/src/components/design/DesignStudio.tsx`](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/infinity-ai/src/components/design/DesignStudio.tsx) (Design Studio), [`artifacts/api-server/src/lib/llm-client.ts`](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/llm-client.ts) (LLM Client), [`artifacts/api-server/src/lib/build-orchestrator.ts`](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/build-orchestrator.ts) (Build Orchestrator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User Experience"]
  node_frontend["Workspace UI<br/>[App.tsx]"]
  node_chatui["Chat Interface<br/>[chat-sidebar.tsx]"]
  node_designui["Design Studio<br/>[DesignStudio.tsx]"]
  node_buildui["Build Studio<br/>[build-studio.tsx]"]
end

subgraph group_intelligence["AI and Research"]
  node_research["Deep Research<br/>[research-engine.ts]"]
  node_llm["LLM Client<br/>[llm-client.ts]"]
  node_websearch["Web Search<br/>[research-engine.ts]"]
  node_researchstore[("Research Jobs<br/>[research-engine.ts]")]
  node_verify["Fact Check<br/>[verify.ts]"]
  node_memory["Personal Memory<br/>[project-memory.ts]"]
end

subgraph group_build["Build Workspace"]
  node_orchestrator["Build Orchestrator"]
  node_workspace["Linux Workspace<br/>[workspace.ts]"]
  node_evolution["Self Evolution<br/>[self-evolution.ts]"]
end

subgraph group_action["Tools and Studios"]
  node_browser["Agent Browser<br/>[browse.ts]"]
  node_automation["Automations"]
  node_canvas["Canvas Engine<br/>[design-canvas.ts]"]
  node_image["Image Generation<br/>[generate-image.ts]"]
  node_voice["Voice Services<br/>[speak.ts]"]
  node_transcription["Transcription<br/>[transcribe.ts]"]
  node_widgets["Smart Widgets<br/>[index.ts]"]
end

subgraph group_platform["API Platform"]
  node_chatroute["Chat API<br/>[chat.ts]"]
  node_researchroute["Research API<br/>[research.ts]"]
  node_buildroute["Build API<br/>[build.ts]"]
  node_designroute["Design Canvas API<br/>[design-canvas.ts]"]
  node_db[("PostgreSQL")]
end

node_user(("User"))
node_searchservice["Web Search Service"]
node_llmservice["LLM Provider"]

node_user -->|"uses"| node_frontend
node_frontend -->|"presents"| node_chatui
node_chatui -->|"requests chat"| node_chatroute
node_chatroute -->|"invokes"| node_llm
node_llm -.->|"sends prompts"| node_llmservice
node_user -->|"starts research"| node_researchroute
node_researchroute -->|"runs job"| node_research
node_research -->|"reads and writes"| node_researchstore
node_research -->|"searches sources"| node_websearch
node_research -->|"plans and synthesizes"| node_llm
node_websearch -.->|"queries"| node_searchservice
node_user -->|"requests verification"| node_verify
node_user -->|"personalizes"| node_memory
node_user -->|"starts build"| node_buildui
node_buildui -->|"requests build"| node_buildroute
node_buildroute -->|"dispatches build"| node_orchestrator
node_orchestrator -->|"operates in"| node_workspace
node_user -->|"requests changes"| node_evolution
node_evolution -->|"uses build"| node_orchestrator
node_user -->|"requests browsing"| node_browser
node_user -->|"configures actions"| node_automation
node_user -->|"creates designs"| node_designui
node_designui -->|"edits canvas"| node_canvas
node_designui -->|"uses API"| node_designroute
node_designroute -->|"dispatches"| node_canvas
node_user -->|"requests images"| node_image
node_user -->|"requests speech"| node_voice
node_user -->|"submits audio"| node_transcription
node_user -->|"requests tools"| node_widgets
node_research -->|"persists jobs"| node_db

click node_frontend "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/infinity-ai/src/App.tsx"
click node_chatui "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/infinity-ai/src/components/chat-sidebar.tsx"
click node_designui "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/infinity-ai/src/components/design/DesignStudio.tsx"
click node_buildui "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/infinity-ai/src/components/build-studio.tsx"
click node_chatroute "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/chat.ts"
click node_researchroute "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/research.ts"
click node_research "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/research-engine.ts"
click node_llm "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/llm-client.ts"
click node_websearch "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/research-engine.ts"
click node_researchstore "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/research-engine.ts"
click node_verify "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/verify.ts"
click node_memory "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/project-memory.ts"
click node_buildroute "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/build.ts"
click node_orchestrator "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/build-orchestrator.ts"
click node_workspace "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/workspace.ts"
click node_evolution "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/self-evolution.ts"
click node_browser "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/browse.ts"
click node_automation "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/automation-runtime.ts"
click node_designroute "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/design-canvas.ts"
click node_canvas "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/design-canvas.ts"
click node_image "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/generate-image.ts"
click node_voice "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/speak.ts"
click node_transcription "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/transcribe.ts"
click node_widgets "https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/tools/index.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_frontend,node_chatui,node_designui,node_buildui,node_user toneBlue
class node_research,node_llm,node_websearch,node_researchstore,node_verify,node_memory toneAmber
class node_orchestrator,node_workspace,node_evolution toneMint
class node_browser,node_automation,node_canvas,node_image,node_voice,node_transcription,node_widgets toneRose
class node_chatroute,node_researchroute,node_buildroute,node_designroute,node_db,node_searchservice,node_llmservice toneIndigo
```

## Components

### User Experience

- [Workspace UI](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/infinity-ai/src/App.tsx): `artifacts/infinity-ai/src/App.tsx`
- [Chat Interface](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/infinity-ai/src/components/chat-sidebar.tsx): `artifacts/infinity-ai/src/components/chat-sidebar.tsx`
- [Design Studio](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/infinity-ai/src/components/design/DesignStudio.tsx): `artifacts/infinity-ai/src/components/design/DesignStudio.tsx`
- [Build Studio](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/infinity-ai/src/components/build-studio.tsx): `artifacts/infinity-ai/src/components/build-studio.tsx`

### AI and Research

- [Deep Research](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/research-engine.ts): `artifacts/api-server/src/lib/research-engine.ts`
- [LLM Client](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/llm-client.ts): `artifacts/api-server/src/lib/llm-client.ts`
- [Web Search](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/research-engine.ts): `artifacts/api-server/src/lib/research-engine.ts`
- [Research Jobs](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/research-engine.ts): `artifacts/api-server/src/lib/research-engine.ts`
- [Fact Check](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/verify.ts): `artifacts/api-server/src/routes/infinity/verify.ts`
- [Personal Memory](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/project-memory.ts): `artifacts/api-server/src/lib/project-memory.ts`

### Build Workspace

- [Build Orchestrator](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/build-orchestrator.ts): `artifacts/api-server/src/lib/build-orchestrator.ts`
- [Linux Workspace](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/workspace.ts): `artifacts/api-server/src/lib/workspace.ts`
- [Self Evolution](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/self-evolution.ts): `artifacts/api-server/src/routes/infinity/self-evolution.ts`

### Tools and Studios

- [Agent Browser](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/browse.ts): `artifacts/api-server/src/routes/infinity/browse.ts`
- [Automations](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/automation-runtime.ts): `artifacts/api-server/src/lib/automation-runtime.ts`
- [Canvas Engine](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/design-canvas.ts): `artifacts/api-server/src/lib/design-canvas.ts`
- [Image Generation](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/generate-image.ts): `artifacts/api-server/src/routes/infinity/generate-image.ts`
- [Voice Services](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/speak.ts): `artifacts/api-server/src/routes/infinity/speak.ts`
- [Transcription](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/transcribe.ts): `artifacts/api-server/src/routes/infinity/transcribe.ts`
- [Smart Widgets](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/lib/tools/index.ts): `artifacts/api-server/src/lib/tools/index.ts`

### API Platform

- [Chat API](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/chat.ts): `artifacts/api-server/src/routes/infinity/chat.ts`
- [Research API](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/research.ts): `artifacts/api-server/src/routes/infinity/research.ts`
- [Build API](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/build.ts): `artifacts/api-server/src/routes/infinity/build.ts`
- [Design Canvas API](https://github.com/kasper-kal/infinity-ai/blob/main/artifacts/api-server/src/routes/infinity/design-canvas.ts): `artifacts/api-server/src/routes/infinity/design-canvas.ts`
- **PostgreSQL**

### Other components

- **User**
- **Web Search Service**
- **LLM Provider**

## Connections

- User → Workspace UI: uses
- Workspace UI → Chat Interface: presents
- Chat Interface → Chat API: requests chat
- Chat API → LLM Client: invokes
- LLM Client → LLM Provider: sends prompts
- User → Research API: starts research
- Research API → Deep Research: runs job
- Deep Research → Research Jobs: reads and writes
- Deep Research → Web Search: searches sources
- Deep Research → LLM Client: plans and synthesizes
- Web Search → Web Search Service: queries
- User → Fact Check: requests verification
- User → Personal Memory: personalizes
- User → Build Studio: starts build
- Build Studio → Build API: requests build
- Build API → Build Orchestrator: dispatches build
- Build Orchestrator → Linux Workspace: operates in
- User → Self Evolution: requests changes
- Self Evolution → Build Orchestrator: uses build
- User → Agent Browser: requests browsing
- User → Automations: configures actions
- User → Design Studio: creates designs
- Design Studio → Canvas Engine: edits canvas
- Design Studio → Design Canvas API: uses API
- Design Canvas API → Canvas Engine: dispatches
- User → Image Generation: requests images
- User → Voice Services: requests speech
- User → Transcription: submits audio
- User → Smart Widgets: requests tools
- Deep Research → PostgreSQL: persists jobs
