Карта кода
Каждая папка src/ и что в ней. Как части работают вместе: Устройство приложения.
src/main: главный процесс
| Папка или файл | Что там |
|---|---|
index.ts | Запуск: один экземпляр, папка профиля, журнал, база, окно, ключи Chromium. |
ipc.ts, ipc/ | Обработчики IPC по группам: engineIpc, agentIpc, knowledgeIpc, diagnosticsIpc, aboutIpc; guard.ts проверяет каждого отправителя. |
commands/ | Движок команд: commit.ts (применение, ходы, проекция), graphOps.ts, innerEdits.ts (правки внутри субграфа), placement.ts, history.ts (прореживание). |
agent/ | Один ход помощника (turn.ts), его запрос, инструменты чтения (tools.ts), инструменты сборки (buildTools.ts), поиск и чтение страниц (web.ts), история разговора. |
llmService.ts, llm/ | Вызовы модели через AI SDK; свои серверы: списки моделей, поиск серверов, окно контекста загруженной модели. |
mcp/ | Клиент MCP, синхронизация (sync.ts), проверка «только чтение» (readOnly.ts), вход OAuth, файл токена. |
comfy/ | Чтение /object_info и /system_stats прямо из ComfyUI. |
catalog/, knowledge/ | Каталог в базе; объяснения, проверка графа, метаданные моделей, поиск моделей в интернете, превью. |
proposals/ | Черновики помощника (серые ноды и связи) и их устаревание. |
settings/ | Миграции, страховочные копии базы, ключи (keyFile.ts, проверки шифрования), выбор хранилища паролей, «забыть всё». |
trace/ | Журнал общения с моделью. |
files/ | Атомарная запись файлов. |
log.ts, crash.ts, diagnostics.ts | Журнал со скрытием секретов, обработка ошибок, диагностика для копирования. |
identity.ts | Имена приложения, адрес проекта и user agent. |
cli.ts | --version и --help. |
src/preload
index.ts: объект window.electronAPI и его тип ElectronAPI. В нём своя копия имён каналов: preload в песочнице не
может импортировать другие файлы.
src/renderer: окно
| Папка | Что там |
|---|---|
components/graph/ | Холст: ноды, порты, связи, слои (описания, сборка, экскурсия), контекстное меню, поиск нод, свойства. |
components/chat/ | Панель помощника и её карточка сборки. |
components/library/ | Библиотека нод, моделей и субграфов, карточки нод и моделей. |
components/lessons/ | Панель уроков. |
components/explain/, components/check/ | Вкладки объяснения и проверки. |
components/settings/ | Окно настроек, по файлу на раздел. |
components/shell/ | Строка меню, панель инструментов, строка состояния, диалоги, «О программе», окно справки. |
components/sync/, components/log/, components/fields/ | Индикатор синхронизации, окно журнала общения, элементы полей. |
commands/ | Реестр команд (appCommands.ts), сочетания клавиш, действия. |
services/ | Разговор с main: команды и проекция, чат, справка, диагностика. |
state/ | Хранилища Zustand: граф, чат, интерфейс, настройки, уроки, предложения, отмена. |
ui/ | Дизайн-система: кнопки, диалоги, поля, уведомления (см. src/renderer/ui/README.md). |
theme/, motion/ | Цветовые токены, таблица контраста, политика анимации. |
src/shared: общее
| Папка | Что там |
|---|---|
commands/ | Схемы команд и их содержимого, описания инструментов, общие с renderer. |
workflow/codec.ts | Чтение и запись workflow ComfyUI без потерь. |
graph/ | Порты, типы связей, совместимость, раскладка, субграфы. |
catalog/ | Разбор object_info, описания полей, какой загрузчик читает какую папку моделей. |
knowledge/ | Встроенные знания (coreKnowledge.*.ts), семейства и виды моделей, поиск. |
lessons/ | Уроки и их тексты. |
agent/ | Что видит помощник: сводки графа, последние действия, лимиты, скрытие секретов, виды ошибок. |
config/ | Схемы настроек, правила для ключей, выбор хранилища паролей. |
contracts/ | Типы вызовов IPC, общие для main, preload и renderer. |
i18n/ | Каталог текстов на английском и русском. |
help/ | Идентификаторы контекстной справки. |
ipc-channels.ts | Имена каналов. |
Вокруг src
| Путь | Что там |
|---|---|
tests/unit, tests/integration, tests/e2e, tests/corpus | Тесты: Тесты. |
scripts/ | Сборка ресурсов, список изменений, проверки пакета, значки, снимки экрана, публичная копия. |
resources/ | Значки и шаблон ярлыка. |
docs/wiki/ | Эта вики; входит в «Справку» приложения. |
docs/releases/ | Заметки к выпускам, по файлу на версию и язык. |
forge.config.js | Упаковка: сборщик .deb и предохранители Electron. |