# ddyapayzeka/sansursuzlokalaistudyosu-ddyz architecture

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

- Interactive diagram: https://gitdiagram.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz
- Repository: https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz

## Overview

DD:YZ is a portable local AI studio: users select or download models, configure hardware/runtime settings, then generate images, chat with local language models, transcribe audio, or synthesize speech. The React interface calls a shared API layer that bridges desktop commands or the local server. The README documents local inference engines and model storage, but their implementations are not present in the supplied tree; links to those engines are therefore documented rather than source-verified. The server’s search subsystem is visible, while its broader runtime routes are not sampled.

Main entry points: [`app/frontend/src/App.jsx`](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/App.jsx) (Workspace shell), [`app/frontend/src/services/api.js`](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/services/api.js) (Desktop and HTTP bridge), [`scripts/server/serve.cjs`](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/server/serve.cjs) (Local server), [`scripts/search/core.js`](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/search/core.js) (Web search context)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Studio interface"]
  node_app["Workspace shell<br/>[App.jsx]"]
  node_sidebar["Workspace navigation<br/>[Sidebar.jsx]"]
  node_status["Live status<br/>[TopStatusBar.jsx]"]
  node_themes["Theme definitions<br/>[themes.js]"]
end

subgraph group_models["Models and settings"]
  node_modelmanager["Model manager<br/>[ModelManager.jsx]"]
  node_settings["Runtime settings<br/>[Settings.jsx]"]
end

subgraph group_inference["Local AI workflows"]
  node_generator["Image generation<br/>[Generator.jsx]"]
  node_chat["Text chat<br/>[TextChat.jsx]"]
  node_transcriber["Speech transcription"]
  node_tts["Speech synthesis<br/>[TextToSpeech.jsx]"]
  node_imageengine["Stable Diffusion engine"]
  node_llmengine["llama.cpp engine"]
  node_whisperengine["Whisper engine"]
  node_kokoro["Kokoro runtime"]
end

subgraph group_runtime["Runtime services"]
  node_api["Desktop and HTTP bridge<br/>[api.js]"]
  node_server["Local server<br/>[serve.cjs]"]
  node_search["Web search context<br/>[core.js]"]
  node_providers["Search providers<br/>[providers.js]"]
  node_pagefetch["Page content fetch<br/>[content.js]"]
  node_searchcache[("Search cache<br/>[cache.js]")]
  node_outputs[("Generated output gallery<br/>[Generator.jsx]")]
end

node_user(("Studio user"))
node_hf(("Hugging Face"))

node_user -->|"uses"| node_app
node_app -->|"renders"| node_sidebar
node_app -->|"renders"| node_status
node_app -->|"renders"| node_generator
node_app -->|"renders"| node_modelmanager
node_app -->|"renders"| node_settings
node_app -->|"renders"| node_chat
node_app -->|"renders"| node_transcriber
node_app -->|"renders"| node_tts
node_status -->|"uses"| node_themes
node_settings -->|"uses"| node_themes
node_app -->|"reads status"| node_api
node_modelmanager -->|"manages models"| node_api
node_modelmanager -->|"searches models"| node_hf
node_settings -->|"configures runtime"| node_api
node_generator -->|"requests generation"| node_api
node_chat -->|"streams chat"| node_api
node_transcriber -->|"transcribes audio"| node_api
node_tts -->|"requests speech"| node_api
node_api -->|"HTTP requests"| node_server
node_server -.->|"runs image inference"| node_imageengine
node_server -.->|"runs text inference"| node_llmengine
node_server -.->|"runs transcription"| node_whisperengine
node_server -.->|"runs speech synthesis"| node_kokoro
node_generator -->|"reads and deletes"| node_outputs
node_server -->|"dispatches search"| node_search
node_search -->|"queries providers"| node_providers
node_search -->|"fetches pages"| node_pagefetch
node_search -->|"reads and writes"| node_searchcache

click node_app "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/App.jsx"
click node_sidebar "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/Sidebar.jsx"
click node_status "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/TopStatusBar.jsx"
click node_themes "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/themes.js"
click node_modelmanager "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/ModelManager.jsx"
click node_settings "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/Settings.jsx"
click node_generator "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/Generator.jsx"
click node_chat "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/TextChat.jsx"
click node_transcriber "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/SpeechTranscriber.jsx"
click node_tts "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/TextToSpeech.jsx"
click node_api "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/services/api.js"
click node_server "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/server/serve.cjs"
click node_search "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/search/core.js"
click node_providers "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/search/providers.js"
click node_pagefetch "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/search/content.js"
click node_searchcache "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/search/cache.js"
click node_kokoro "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/workers/tts-kokoro-worker.mjs"
click node_outputs "https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/Generator.jsx"

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_app,node_sidebar,node_status,node_themes,node_user toneBlue
class node_modelmanager,node_settings toneAmber
class node_generator,node_chat,node_transcriber,node_tts,node_imageengine,node_llmengine,node_whisperengine,node_kokoro toneMint
class node_api,node_server,node_search,node_providers,node_pagefetch,node_searchcache,node_outputs toneRose
class node_hf toneIndigo
```

## Components

### Studio interface

- [Workspace shell](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/App.jsx): `app/frontend/src/App.jsx`
- [Workspace navigation](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/Sidebar.jsx): `app/frontend/src/components/Sidebar.jsx`
- [Live status](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/TopStatusBar.jsx): `app/frontend/src/components/TopStatusBar.jsx`
- [Theme definitions](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/themes.js): `app/frontend/src/themes.js`

### Models and settings

- [Model manager](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/ModelManager.jsx): `app/frontend/src/components/ModelManager.jsx`
- [Runtime settings](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/Settings.jsx): `app/frontend/src/components/Settings.jsx`

### Local AI workflows

- [Image generation](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/Generator.jsx): `app/frontend/src/components/Generator.jsx`
- [Text chat](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/TextChat.jsx): `app/frontend/src/components/TextChat.jsx`
- [Speech transcription](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/SpeechTranscriber.jsx): `app/frontend/src/components/SpeechTranscriber.jsx`
- [Speech synthesis](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/TextToSpeech.jsx): `app/frontend/src/components/TextToSpeech.jsx`
- **Stable Diffusion engine**
- **llama.cpp engine**
- **Whisper engine**
- [Kokoro runtime](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/workers/tts-kokoro-worker.mjs): `scripts/workers/tts-kokoro-worker.mjs`

### Runtime services

- [Desktop and HTTP bridge](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/services/api.js): `app/frontend/src/services/api.js`
- [Local server](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/server/serve.cjs): `scripts/server/serve.cjs`
- [Web search context](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/search/core.js): `scripts/search/core.js`
- [Search providers](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/search/providers.js): `scripts/search/providers.js`
- [Page content fetch](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/search/content.js): `scripts/search/content.js`
- [Search cache](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/scripts/search/cache.js): `scripts/search/cache.js`
- [Generated output gallery](https://github.com/ddyapayzeka/sansursuzlokalaistudyosu-ddyz/blob/main/app/frontend/src/components/Generator.jsx): `app/frontend/src/components/Generator.jsx`

### Other components

- **Studio user**
- **Hugging Face**

## Connections

- Studio user → Workspace shell: uses
- Workspace shell → Workspace navigation: renders (evidence: `app/frontend/src/App.jsx`)
- Workspace shell → Live status: renders (evidence: `app/frontend/src/App.jsx`)
- Workspace shell → Image generation: renders (evidence: `app/frontend/src/App.jsx`)
- Workspace shell → Model manager: renders (evidence: `app/frontend/src/App.jsx`)
- Workspace shell → Runtime settings: renders (evidence: `app/frontend/src/App.jsx`)
- Workspace shell → Text chat: renders (evidence: `app/frontend/src/App.jsx`)
- Workspace shell → Speech transcription: renders (evidence: `app/frontend/src/App.jsx`)
- Workspace shell → Speech synthesis: renders (evidence: `app/frontend/src/App.jsx`)
- Live status → Theme definitions: uses (evidence: `app/frontend/src/components/TopStatusBar.jsx`)
- Runtime settings → Theme definitions: uses (evidence: `app/frontend/src/components/Settings.jsx`)
- Workspace shell → Desktop and HTTP bridge: reads status (evidence: `app/frontend/src/App.jsx`)
- Model manager → Desktop and HTTP bridge: manages models (evidence: `app/frontend/src/components/ModelManager.jsx`)
- Model manager → Hugging Face: searches models (evidence: `app/frontend/src/components/ModelManager.jsx`)
- Runtime settings → Desktop and HTTP bridge: configures runtime (evidence: `app/frontend/src/components/Settings.jsx`)
- Image generation → Desktop and HTTP bridge: requests generation (evidence: `app/frontend/src/components/Generator.jsx`)
- Text chat → Desktop and HTTP bridge: streams chat (evidence: `app/frontend/src/components/TextChat.jsx`)
- Speech transcription → Desktop and HTTP bridge: transcribes audio (evidence: `app/frontend/src/components/SpeechTranscriber.jsx`)
- Speech synthesis → Desktop and HTTP bridge: requests speech (evidence: `app/frontend/src/components/TextToSpeech.jsx`)
- Desktop and HTTP bridge → Local server: HTTP requests (evidence: `app/frontend/src/services/api.js`)
- Local server → Stable Diffusion engine: runs image inference (evidence: `README.md`)
- Local server → llama.cpp engine: runs text inference (evidence: `README.md`)
- Local server → Whisper engine: runs transcription (evidence: `README.md`)
- Local server → Kokoro runtime: runs speech synthesis (evidence: `README.md`)
- Image generation → Generated output gallery: reads and deletes (evidence: `app/frontend/src/components/Generator.jsx`)
- Local server → Web search context: dispatches search (evidence: `scripts/server/serve.cjs`)
- Web search context → Search providers: queries providers (evidence: `scripts/search/core.js`)
- Web search context → Page content fetch: fetches pages (evidence: `scripts/search/core.js`)
- Web search context → Search cache: reads and writes (evidence: `scripts/search/core.js`)
