agentstudio 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +53 -0
- package/.mcp.json +8 -0
- package/CLAUDE.md +359 -0
- package/DOCKER.md +270 -0
- package/Dockerfile +42 -0
- package/JSONL_TOOLS_README.md +301 -0
- package/LICENSE +603 -0
- package/QUICKSTART.md +253 -0
- package/README.md +176 -24
- package/README.zh-CN.md +200 -0
- package/SOLUTION_SUMMARY.md +249 -0
- package/backend/comprehensive-session-check.js +142 -0
- package/backend/debug-sessions.js +60 -0
- package/backend/docs/chat-clean-1.svg +1 -0
- package/backend/docs/chat-clean.md +60 -0
- package/backend/docs/chat-comprehensive-1.svg +1 -0
- package/backend/docs/chat-comprehensive.md +166 -0
- package/backend/docs/chat_api_sequence_diagram.md +58 -0
- package/backend/docs/command-detection-logic.md +306 -0
- package/backend/docs/command-detection-sequence.md +186 -0
- package/backend/eslint.config.js +25 -0
- package/backend/package.json +103 -0
- package/backend/scripts/README.md +156 -0
- package/backend/scripts/fix-project-names.js +113 -0
- package/backend/scripts/migrate-projects.js +159 -0
- package/backend/src/bin/agentstudio.ts +318 -0
- package/backend/src/bin/serviceManager.ts +469 -0
- package/backend/src/config/index.ts +184 -0
- package/backend/src/config/paths.ts +105 -0
- package/backend/src/config/sdkConfig.ts +126 -0
- package/backend/src/index.ts +434 -0
- package/backend/src/jobs/taskTimeoutMonitor.ts +106 -0
- package/backend/src/middleware/a2aAuth.ts +159 -0
- package/backend/src/middleware/auth.ts +39 -0
- package/backend/src/middleware/httpsOnly.ts +205 -0
- package/backend/src/middleware/rateLimiting.ts +130 -0
- package/backend/src/routes/__tests__/a2a.integration.test.ts +377 -0
- package/backend/src/routes/__tests__/a2a.test.ts +677 -0
- package/backend/src/routes/__tests__/agents.test.ts +327 -0
- package/backend/src/routes/__tests__/sessions.test.ts +345 -0
- package/backend/src/routes/a2a.streaming.test.ts +185 -0
- package/backend/src/routes/a2a.ts +840 -0
- package/backend/src/routes/a2aManagement.ts +545 -0
- package/backend/src/routes/agents.ts +1176 -0
- package/backend/src/routes/auth.ts +151 -0
- package/backend/src/routes/cloudflareTunnel.ts +306 -0
- package/backend/src/routes/commands.ts +524 -0
- package/backend/src/routes/config.ts +193 -0
- package/backend/src/routes/files.ts +375 -0
- package/backend/src/routes/mcp.ts +866 -0
- package/backend/src/routes/mcpAdmin.ts +369 -0
- package/backend/src/routes/mcpAdminManagement.ts +338 -0
- package/backend/src/routes/media.ts +140 -0
- package/backend/src/routes/mediaAuth.ts +150 -0
- package/backend/src/routes/network.ts +68 -0
- package/backend/src/routes/plugins.ts +368 -0
- package/backend/src/routes/projects.ts +1100 -0
- package/backend/src/routes/scheduledTasks.ts +442 -0
- package/backend/src/routes/sessions.ts +1054 -0
- package/backend/src/routes/settings.ts +552 -0
- package/backend/src/routes/skills.ts +319 -0
- package/backend/src/routes/slack.ts +193 -0
- package/backend/src/routes/slides.ts +166 -0
- package/backend/src/routes/subagents.ts +366 -0
- package/backend/src/routes/taskExecutor.ts +243 -0
- package/backend/src/routes/tunnel.ts +317 -0
- package/backend/src/routes/version.ts +239 -0
- package/backend/src/schemas/a2a.ts +352 -0
- package/backend/src/services/__tests__/pluginInstaller.test.ts +316 -0
- package/backend/src/services/__tests__/pluginParser.test.ts +285 -0
- package/backend/src/services/__tests__/pluginPaths.test.ts +212 -0
- package/backend/src/services/__tests__/pluginScanner.test.ts +287 -0
- package/backend/src/services/__tests__/pluginSymlink.test.ts +340 -0
- package/backend/src/services/__tests__/projectMetadataStorage.test.ts +158 -0
- package/backend/src/services/__tests__/sessionConcurrency.test.ts +132 -0
- package/backend/src/services/__tests__/slackAIService.test.ts +561 -0
- package/backend/src/services/__tests__/slackThreadMapper.test.ts +228 -0
- package/backend/src/services/a2a/__tests__/a2aClientTool.integration.test.ts +347 -0
- package/backend/src/services/a2a/__tests__/a2aClientTool.test.ts +710 -0
- package/backend/src/services/a2a/__tests__/a2aConfigService.test.ts +526 -0
- package/backend/src/services/a2a/__tests__/a2aConfigServicePath.test.ts +55 -0
- package/backend/src/services/a2a/__tests__/a2aSdkMcp.test.ts +254 -0
- package/backend/src/services/a2a/__tests__/agentCardService.test.ts +357 -0
- package/backend/src/services/a2a/__tests__/apiKeyService.test.ts +378 -0
- package/backend/src/services/a2a/__tests__/buildQueryOptionsIntegration.test.ts +41 -0
- package/backend/src/services/a2a/__tests__/dynamic_config_verification.test.ts +71 -0
- package/backend/src/services/a2a/__tests__/integrateA2AMcpServer.test.ts +97 -0
- package/backend/src/services/a2a/__tests__/taskManager.integration.test.ts +417 -0
- package/backend/src/services/a2a/__tests__/taskManager.test.ts +511 -0
- package/backend/src/services/a2a/__tests__/webhookService.test.ts +258 -0
- package/backend/src/services/a2a/a2aClientTool.ts +723 -0
- package/backend/src/services/a2a/a2aConfigService.ts +194 -0
- package/backend/src/services/a2a/a2aHistoryService.ts +111 -0
- package/backend/src/services/a2a/a2aIntegration.ts +40 -0
- package/backend/src/services/a2a/a2aQueryService.ts +275 -0
- package/backend/src/services/a2a/a2aSdkMcp.ts +208 -0
- package/backend/src/services/a2a/a2aStreamEvents.ts +166 -0
- package/backend/src/services/a2a/agentCardService.ts +256 -0
- package/backend/src/services/a2a/agentMappingService.ts +202 -0
- package/backend/src/services/a2a/apiKeyService.ts +361 -0
- package/backend/src/services/a2a/taskCleanup.ts +199 -0
- package/backend/src/services/a2a/taskManager.ts +327 -0
- package/backend/src/services/a2a/webhookService.ts +161 -0
- package/backend/src/services/agentStorage.ts +506 -0
- package/backend/src/services/askUserQuestion/askUserQuestionIntegration.ts +68 -0
- package/backend/src/services/askUserQuestion/askUserQuestionMcp.ts +173 -0
- package/backend/src/services/askUserQuestion/index.ts +48 -0
- package/backend/src/services/askUserQuestion/init.ts +53 -0
- package/backend/src/services/askUserQuestion/notificationChannel.ts +218 -0
- package/backend/src/services/askUserQuestion/slackNotificationChannel.ts +150 -0
- package/backend/src/services/askUserQuestion/sseNotificationChannel.ts +102 -0
- package/backend/src/services/askUserQuestion/userInputRegistry.ts +307 -0
- package/backend/src/services/claudeSession.ts +421 -0
- package/backend/src/services/claudeVersionStorage.ts +389 -0
- package/backend/src/services/mcpAdmin/__tests__/adminApiKeyService.test.ts +385 -0
- package/backend/src/services/mcpAdmin/__tests__/mcpAdminRoutes.test.ts +356 -0
- package/backend/src/services/mcpAdmin/__tests__/mcpAdminServer.test.ts +541 -0
- package/backend/src/services/mcpAdmin/__tests__/providerTools.test.ts +347 -0
- package/backend/src/services/mcpAdmin/__tests__/tools.test.ts +463 -0
- package/backend/src/services/mcpAdmin/adminApiKeyService.ts +329 -0
- package/backend/src/services/mcpAdmin/index.ts +19 -0
- package/backend/src/services/mcpAdmin/mcpAdminServer.ts +318 -0
- package/backend/src/services/mcpAdmin/tools/agentTools.ts +390 -0
- package/backend/src/services/mcpAdmin/tools/index.ts +29 -0
- package/backend/src/services/mcpAdmin/tools/mcpServerTools.ts +368 -0
- package/backend/src/services/mcpAdmin/tools/projectTools.ts +415 -0
- package/backend/src/services/mcpAdmin/tools/providerTools.ts +649 -0
- package/backend/src/services/mcpAdmin/tools/systemTools.ts +254 -0
- package/backend/src/services/mcpAdmin/types.ts +155 -0
- package/backend/src/services/messageQueue.ts +80 -0
- package/backend/src/services/pluginInstaller.ts +329 -0
- package/backend/src/services/pluginParser.ts +441 -0
- package/backend/src/services/pluginPaths.ts +270 -0
- package/backend/src/services/pluginScanner.ts +245 -0
- package/backend/src/services/pluginSymlink.ts +241 -0
- package/backend/src/services/projectMetadataStorage.ts +871 -0
- package/backend/src/services/scheduledTaskStorage.ts +377 -0
- package/backend/src/services/schedulerService.ts +668 -0
- package/backend/src/services/sessionManager.ts +738 -0
- package/backend/src/services/skillStorage.ts +521 -0
- package/backend/src/services/slackAIService.ts +1395 -0
- package/backend/src/services/slackClient.ts +110 -0
- package/backend/src/services/slackSessionLock.ts +364 -0
- package/backend/src/services/slackThreadMapper.ts +170 -0
- package/backend/src/services/taskExecutor/BuiltinExecutor.ts +611 -0
- package/backend/src/services/taskExecutor/__tests__/a2a-tasks.test.ts +382 -0
- package/backend/src/services/taskExecutor/__tests__/e2e-workflows.test.ts +528 -0
- package/backend/src/services/taskExecutor/__tests__/error-handling.test.ts +458 -0
- package/backend/src/services/taskExecutor/__tests__/stress.test.ts +400 -0
- package/backend/src/services/taskExecutor/__tests__/taskExecutor.integration.test.ts +240 -0
- package/backend/src/services/taskExecutor/__tests__/timeout-cancellation.test.ts +384 -0
- package/backend/src/services/taskExecutor/index.ts +168 -0
- package/backend/src/services/taskExecutor/taskWorker.ts +222 -0
- package/backend/src/services/taskExecutor/types.ts +179 -0
- package/backend/src/services/telemetry.ts +234 -0
- package/backend/src/services/tunnelService.ts +614 -0
- package/backend/src/types/a2a.ts +372 -0
- package/backend/src/types/agents.ts +161 -0
- package/backend/src/types/claude-history.ts +81 -0
- package/backend/src/types/claude-versions.ts +39 -0
- package/backend/src/types/commands.ts +63 -0
- package/backend/src/types/plugins.ts +157 -0
- package/backend/src/types/projects.ts +64 -0
- package/backend/src/types/scheduledTasks.ts +214 -0
- package/backend/src/types/skills.ts +130 -0
- package/backend/src/types/slack.ts +112 -0
- package/backend/src/types/streaming.ts +13 -0
- package/backend/src/types/subagents.ts +29 -0
- package/backend/src/utils/__tests__/claudeUtils.test.ts +312 -0
- package/backend/src/utils/__tests__/configResolver.test.ts +255 -0
- package/backend/src/utils/__tests__/sessionUtils.test.ts +384 -0
- package/backend/src/utils/agentCardCache.ts +245 -0
- package/backend/src/utils/claudeUtils.ts +377 -0
- package/backend/src/utils/configResolver.ts +175 -0
- package/backend/src/utils/fileUtils.ts +5 -0
- package/backend/src/utils/jwt.ts +104 -0
- package/backend/src/utils/networkUtils.ts +68 -0
- package/backend/src/utils/sessionUtils.ts +303 -0
- package/backend/tsconfig.json +25 -0
- package/backend/vitest.config.ts +29 -0
- package/docker-compose.traefik.yml +59 -0
- package/docker-compose.yml +38 -0
- package/docker-entrypoint.sh +30 -0
- package/docs/CLOUDFLARE_TUNNEL.md +233 -0
- package/docs/CLOUDFLARE_TUNNEL_ARCHITECTURE.md +406 -0
- package/docs/LAVS-IMPLEMENTATION.md +1973 -0
- package/docs/LAVS-SPEC.md +951 -0
- package/docs/QUICK_START_CLOUDFLARE_TUNNEL.md +304 -0
- package/docs/SCHEDULER_CONTROL.md +142 -0
- package/docs/SCHEDULER_STATUS_DISPLAY.md +86 -0
- package/docs/USER_MANUAL.md +1726 -0
- package/docs/USER_MANUAL_EN.md +1408 -0
- package/docs/VERSION_COMPATIBILITY.md +616 -0
- package/docs/api/a2a-endpoints.md +891 -0
- package/docs/guides/unified-task-executor-summary.md +365 -0
- package/docs/guides/unified-task-executor.md +304 -0
- package/docs/screenshots/01-homepage.png +0 -0
- package/docs/screenshots/02-dashboard.png +0 -0
- package/docs/screenshots/03-projects.png +0 -0
- package/docs/screenshots/04-agents.png +0 -0
- package/docs/screenshots/05-mcp-services.png +0 -0
- package/docs/screenshots/06-commands.png +0 -0
- package/docs/screenshots/07-chat.png +0 -0
- package/docs/screenshots/08-skills.png +0 -0
- package/docs/screenshots/09-settings.png +0 -0
- package/docs/screenshots/10-suppliers.png +0 -0
- package/docs/screenshots/11-plugins.png +0 -0
- package/docs/screenshots/agent-create-dialog.png +0 -0
- package/docs/screenshots/agent-edit-dialog.png +0 -0
- package/docs/screenshots/agent-list-overview.png +0 -0
- package/docs/screenshots/agent-tools-selection.png +0 -0
- package/docs/screenshots/agents-management.png +0 -0
- package/docs/screenshots/auto-compacted-session.png +0 -0
- package/docs/screenshots/chat-interface.png +0 -0
- package/docs/screenshots/chat-session-debug.png +0 -0
- package/docs/screenshots/chat-session-history.png +0 -0
- package/docs/screenshots/chat-tools-selection.png +0 -0
- package/docs/screenshots/commands-create-dialog.png +0 -0
- package/docs/screenshots/commands-overview.png +0 -0
- package/docs/screenshots/create-project-dialog.png +0 -0
- package/docs/screenshots/dashboard-overview.png +0 -0
- package/docs/screenshots/file-browser-interface.png +0 -0
- package/docs/screenshots/import-project-dialog.png +0 -0
- package/docs/screenshots/mcp-add-service-dialog.png +0 -0
- package/docs/screenshots/mcp-admin-settings.png +0 -0
- package/docs/screenshots/mcp-import-claude-code.png +0 -0
- package/docs/screenshots/mcp-list-overview.png +0 -0
- package/docs/screenshots/mcp-services-page.png +0 -0
- package/docs/screenshots/password-management-modal.png +0 -0
- package/docs/screenshots/plugins-add-market.png +0 -0
- package/docs/screenshots/plugins-browse.png +0 -0
- package/docs/screenshots/plugins-overview.png +0 -0
- package/docs/screenshots/ppt-editor-chat-interface.png +0 -0
- package/docs/screenshots/project-commands-dialog.png +0 -0
- package/docs/screenshots/project-list-overview.png +0 -0
- package/docs/screenshots/project-memory-dialog.png +0 -0
- package/docs/screenshots/project-settings-dialog.png +0 -0
- package/docs/screenshots/project-subagent-dialog.png +0 -0
- package/docs/screenshots/projects-management.png +0 -0
- package/docs/screenshots/projects-overview.png +0 -0
- package/docs/screenshots/scheduled-tasks-create-dialog.png +0 -0
- package/docs/screenshots/scheduled-tasks-execution-history.png +0 -0
- package/docs/screenshots/scheduled-tasks-overview.png +0 -0
- package/docs/screenshots/session-display-issue.png +0 -0
- package/docs/screenshots/session-messages-fix.png +0 -0
- package/docs/screenshots/session-messages-loaded.png +0 -0
- package/docs/screenshots/settings-general.png +0 -0
- package/docs/screenshots/settings-memory.png +0 -0
- package/docs/screenshots/skills-create-dialog.png +0 -0
- package/docs/screenshots/skills-list-overview.png +0 -0
- package/docs/screenshots/skills-view-detail.png +0 -0
- package/docs/screenshots/slide-preview-after-fix.png +0 -0
- package/docs/screenshots/storybook-basetool-full.png +0 -0
- package/docs/screenshots/storybook-fixed.png +0 -0
- package/docs/screenshots/storybook-tasktool.png +0 -0
- package/docs/screenshots/supplier-add-dialog.png +0 -0
- package/docs/screenshots/supplier-edit-dialog.png +0 -0
- package/docs/screenshots/suppliers-overview.png +0 -0
- package/docs/screenshots/telemetry-settings.png +0 -0
- package/docs/screenshots/version-management-page.png +0 -0
- package/docs-site/.vitepress/cache/deps/@theme_index.js +275 -0
- package/docs-site/.vitepress/cache/deps/@theme_index.js.map +7 -0
- package/docs-site/.vitepress/cache/deps/_metadata.json +58 -0
- package/docs-site/.vitepress/cache/deps/chunk-CN42XFKG.js +12824 -0
- package/docs-site/.vitepress/cache/deps/chunk-CN42XFKG.js.map +7 -0
- package/docs-site/.vitepress/cache/deps/chunk-Y3A3J5YD.js +9719 -0
- package/docs-site/.vitepress/cache/deps/chunk-Y3A3J5YD.js.map +7 -0
- package/docs-site/.vitepress/cache/deps/package.json +3 -0
- package/docs-site/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4505 -0
- package/docs-site/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
- package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_core.js +583 -0
- package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
- package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +1352 -0
- package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
- package/docs-site/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +1665 -0
- package/docs-site/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +7 -0
- package/docs-site/.vitepress/cache/deps/vitepress___minisearch.js +1813 -0
- package/docs-site/.vitepress/cache/deps/vitepress___minisearch.js.map +7 -0
- package/docs-site/.vitepress/cache/deps/vue.js +347 -0
- package/docs-site/.vitepress/cache/deps/vue.js.map +7 -0
- package/docs-site/src/.vitepress/cache/deps/_metadata.json +52 -0
- package/docs-site/src/.vitepress/cache/deps/chunk-CN42XFKG.js +12824 -0
- package/docs-site/src/.vitepress/cache/deps/chunk-CN42XFKG.js.map +7 -0
- package/docs-site/src/.vitepress/cache/deps/chunk-Y3A3J5YD.js +9719 -0
- package/docs-site/src/.vitepress/cache/deps/chunk-Y3A3J5YD.js.map +7 -0
- package/docs-site/src/.vitepress/cache/deps/package.json +3 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4505 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_core.js +583 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +1352 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +1665 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +7 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___minisearch.js +1813 -0
- package/docs-site/src/.vitepress/cache/deps/vitepress___minisearch.js.map +7 -0
- package/docs-site/src/.vitepress/cache/deps/vue.js +347 -0
- package/docs-site/src/.vitepress/cache/deps/vue.js.map +7 -0
- package/frontend/.storybook/main.ts +22 -0
- package/frontend/.storybook/preview.ts +27 -0
- package/frontend/.storybook/vitest.setup.ts +7 -0
- package/frontend/README.md +69 -0
- package/frontend/components.json +17 -0
- package/frontend/eslint.config.js +26 -0
- package/frontend/index.html +62 -0
- package/frontend/package-lock.json +7922 -0
- package/frontend/package.json +90 -0
- package/frontend/pnpm-lock.yaml +4714 -0
- package/frontend/postcss.config.js +6 -0
- package/frontend/scripts/extract-chinese.js +146 -0
- package/frontend/src/App.css +42 -0
- package/frontend/src/App.tsx +201 -0
- package/frontend/src/__tests__/smoke.test.tsx +15 -0
- package/frontend/src/agents/README.md +136 -0
- package/frontend/src/agents/chat/index.ts +17 -0
- package/frontend/src/agents/registry.ts +22 -0
- package/frontend/src/agents/slides/components/SlidePreview.tsx +287 -0
- package/frontend/src/agents/slides/components/SlidePreviewPanel.tsx +120 -0
- package/frontend/src/agents/slides/hooks/useSlides.ts +245 -0
- package/frontend/src/agents/slides/index.ts +17 -0
- package/frontend/src/agents/slides/stores/useSlidesStore.ts +56 -0
- package/frontend/src/agents/types.ts +18 -0
- package/frontend/src/api/skills.ts +184 -0
- package/frontend/src/assets/react.svg +1 -0
- package/frontend/src/components/AgentChatPanel.tsx +901 -0
- package/frontend/src/components/ApiSettingsModal.tsx +267 -0
- package/frontend/src/components/BackendOnboardingWizard.tsx +255 -0
- package/frontend/src/components/BackendServiceSwitcher.tsx +356 -0
- package/frontend/src/components/CSVPreview.tsx +465 -0
- package/frontend/src/components/ChatMessageRenderer.tsx +279 -0
- package/frontend/src/components/CommandForm.tsx +560 -0
- package/frontend/src/components/CommandSelector.tsx +218 -0
- package/frontend/src/components/CompactSummary.tsx +52 -0
- package/frontend/src/components/ConfirmDialog.tsx +69 -0
- package/frontend/src/components/DiffViewer.css +78 -0
- package/frontend/src/components/DiffViewer.tsx +89 -0
- package/frontend/src/components/EnvVarsConfig.tsx +113 -0
- package/frontend/src/components/ErrorBoundary.tsx +100 -0
- package/frontend/src/components/ErrorMessage.tsx +197 -0
- package/frontend/src/components/FileBrowser.tsx +480 -0
- package/frontend/src/components/FileContentViewer.tsx +155 -0
- package/frontend/src/components/FileExplorer/FileIcon.tsx +32 -0
- package/frontend/src/components/FileExplorer/FilePreview.tsx +130 -0
- package/frontend/src/components/FileExplorer/FileTabs.tsx +104 -0
- package/frontend/src/components/FileExplorer/FileTreeToolbar.tsx +30 -0
- package/frontend/src/components/FileExplorer/ImagePreview.tsx +86 -0
- package/frontend/src/components/FileExplorer/REFACTOR_SUMMARY.md +117 -0
- package/frontend/src/components/FileExplorer/TabDropdown.tsx +59 -0
- package/frontend/src/components/FileExplorer/TreeNode.tsx +73 -0
- package/frontend/src/components/FileExplorer/constants.ts +16 -0
- package/frontend/src/components/FileExplorer/fileTypes.ts +156 -0
- package/frontend/src/components/FileExplorer/hooks/index.ts +2 -0
- package/frontend/src/components/FileExplorer/hooks/useFileTabs.ts +120 -0
- package/frontend/src/components/FileExplorer/hooks/useLazyFileTree.ts +260 -0
- package/frontend/src/components/FileExplorer/index.ts +15 -0
- package/frontend/src/components/FileExplorer.tsx +1124 -0
- package/frontend/src/components/FloatingToggle.tsx +66 -0
- package/frontend/src/components/ImagePreview.tsx +369 -0
- package/frontend/src/components/JSONLPreview.tsx +421 -0
- package/frontend/src/components/LanguageSwitcher.tsx +32 -0
- package/frontend/src/components/Layout.tsx +57 -0
- package/frontend/src/components/MarkdownMessage.tsx +136 -0
- package/frontend/src/components/McpStatusModal.tsx +272 -0
- package/frontend/src/components/MermaidDiagram.tsx +423 -0
- package/frontend/src/components/MobileChatInput.tsx +158 -0
- package/frontend/src/components/MobileChatToolbar.tsx +164 -0
- package/frontend/src/components/MobileNavigation.tsx +101 -0
- package/frontend/src/components/MobileSettingsModal.tsx +272 -0
- package/frontend/src/components/MobileSidebar.tsx +56 -0
- package/frontend/src/components/PanelToggle.tsx +69 -0
- package/frontend/src/components/ProjectA2AModal.tsx +1430 -0
- package/frontend/src/components/ProjectCommandsModal.tsx +453 -0
- package/frontend/src/components/ProjectMemoryModal.tsx +178 -0
- package/frontend/src/components/ProjectSelector.tsx +498 -0
- package/frontend/src/components/ProjectSettingsModal.tsx +210 -0
- package/frontend/src/components/ProjectSubAgentsModal.tsx +421 -0
- package/frontend/src/components/ProjectTable.tsx +387 -0
- package/frontend/src/components/ProtectedRoute.tsx +123 -0
- package/frontend/src/components/RecentActivity.tsx +145 -0
- package/frontend/src/components/ResponsiveTable.tsx +164 -0
- package/frontend/src/components/RightPanelHeader.tsx +87 -0
- package/frontend/src/components/RightPanelWrapper.tsx +74 -0
- package/frontend/src/components/ScheduledTaskEditor.tsx +718 -0
- package/frontend/src/components/ServiceManagementModal.tsx +794 -0
- package/frontend/src/components/ServiceStatusIndicator.tsx +334 -0
- package/frontend/src/components/SessionsDashboard.tsx +295 -0
- package/frontend/src/components/SessionsDropdown.tsx +168 -0
- package/frontend/src/components/SettingsDropdown.tsx +236 -0
- package/frontend/src/components/SettingsLayout.tsx +16 -0
- package/frontend/src/components/Sidebar.tsx +283 -0
- package/frontend/src/components/SplitLayout.tsx +261 -0
- package/frontend/src/components/SubagentForm.tsx +468 -0
- package/frontend/src/components/SwipeActions.tsx +413 -0
- package/frontend/src/components/SystemPromptEditor.tsx +126 -0
- package/frontend/src/components/TaskExecutionHistory.tsx +373 -0
- package/frontend/src/components/TelemetryProvider.tsx +157 -0
- package/frontend/src/components/ToolUsage.tsx +34 -0
- package/frontend/src/components/ToolsList.tsx +86 -0
- package/frontend/src/components/UnifiedToolSelector.tsx +508 -0
- package/frontend/src/components/UpdateNotification.tsx +105 -0
- package/frontend/src/components/agentChat/AgentChatInput.tsx +249 -0
- package/frontend/src/components/agentChat/AgentChatMobileInput.tsx +266 -0
- package/frontend/src/components/agentChat/AgentCommandSelector.tsx +226 -0
- package/frontend/src/components/agentChat/AgentInputArea.tsx +573 -0
- package/frontend/src/components/agentChat/ChatMessageList.tsx +125 -0
- package/frontend/src/components/agentChat/index.ts +7 -0
- package/frontend/src/components/onboarding/BackendDetectingStep.tsx +42 -0
- package/frontend/src/components/onboarding/BackendFoundStep.tsx +75 -0
- package/frontend/src/components/onboarding/BackendNotFoundStep.tsx +249 -0
- package/frontend/src/components/onboarding/OnboardingCompleteStep.tsx +90 -0
- package/frontend/src/components/onboarding/WelcomeStep.tsx +93 -0
- package/frontend/src/components/plugins/AddMarketplaceModal.tsx +186 -0
- package/frontend/src/components/plugins/BrowsePluginsTab.tsx +262 -0
- package/frontend/src/components/plugins/InstalledPluginsTab.tsx +246 -0
- package/frontend/src/components/plugins/MarketplacesTab.tsx +168 -0
- package/frontend/src/components/plugins/PluginDetailModal.tsx +307 -0
- package/frontend/src/components/settings/version/ClaudeVersionForm.tsx +266 -0
- package/frontend/src/components/settings/version/ClaudeVersionList.tsx +61 -0
- package/frontend/src/components/settings/version/EnvironmentVariablesSection.tsx +173 -0
- package/frontend/src/components/settings/version/ModelConfigSection.tsx +129 -0
- package/frontend/src/components/settings/version/VersionListItem.tsx +133 -0
- package/frontend/src/components/settings/version/VersionTemplateSelector.tsx +53 -0
- package/frontend/src/components/skills/CreateSkillModal.tsx +702 -0
- package/frontend/src/components/skills/SkillDetailModal.tsx +180 -0
- package/frontend/src/components/skills/SkillFileBrowserModal.tsx +67 -0
- package/frontend/src/components/skills/SkillPreview.tsx +150 -0
- package/frontend/src/components/skills/SkillsPage.tsx +329 -0
- package/frontend/src/components/skills/index.ts +4 -0
- package/frontend/src/components/tools/A2ACallTool.tsx +733 -0
- package/frontend/src/components/tools/AskUserQuestionTool.stories.tsx +223 -0
- package/frontend/src/components/tools/AskUserQuestionTool.tsx +546 -0
- package/frontend/src/components/tools/BaseToolComponent.stories.tsx +316 -0
- package/frontend/src/components/tools/BaseToolComponent.tsx +226 -0
- package/frontend/src/components/tools/BashOutputTool.stories.tsx +106 -0
- package/frontend/src/components/tools/BashOutputTool.tsx +198 -0
- package/frontend/src/components/tools/BashTool.stories.tsx +163 -0
- package/frontend/src/components/tools/BashTool.tsx +80 -0
- package/frontend/src/components/tools/EditTool.stories.tsx +109 -0
- package/frontend/src/components/tools/EditTool.tsx +60 -0
- package/frontend/src/components/tools/ExitPlanModeTool.stories.tsx +118 -0
- package/frontend/src/components/tools/ExitPlanModeTool.tsx +34 -0
- package/frontend/src/components/tools/GlobTool.stories.tsx +122 -0
- package/frontend/src/components/tools/GlobTool.tsx +50 -0
- package/frontend/src/components/tools/GrepTool.stories.tsx +125 -0
- package/frontend/src/components/tools/GrepTool.tsx +87 -0
- package/frontend/src/components/tools/KillBashTool.stories.tsx +120 -0
- package/frontend/src/components/tools/KillBashTool.tsx +112 -0
- package/frontend/src/components/tools/LSTool.stories.tsx +132 -0
- package/frontend/src/components/tools/LSTool.tsx +41 -0
- package/frontend/src/components/tools/ListMcpResourcesTool.stories.tsx +125 -0
- package/frontend/src/components/tools/ListMcpResourcesTool.tsx +84 -0
- package/frontend/src/components/tools/McpTool.stories.tsx +140 -0
- package/frontend/src/components/tools/McpTool.tsx +266 -0
- package/frontend/src/components/tools/MultiEditTool.stories.tsx +127 -0
- package/frontend/src/components/tools/MultiEditTool.tsx +59 -0
- package/frontend/src/components/tools/NotebookEditTool.stories.tsx +137 -0
- package/frontend/src/components/tools/NotebookEditTool.tsx +57 -0
- package/frontend/src/components/tools/NotebookReadTool.stories.tsx +134 -0
- package/frontend/src/components/tools/NotebookReadTool.tsx +25 -0
- package/frontend/src/components/tools/README.md +677 -0
- package/frontend/src/components/tools/ReadMcpResourceTool.stories.tsx +125 -0
- package/frontend/src/components/tools/ReadMcpResourceTool.tsx +126 -0
- package/frontend/src/components/tools/ReadTool.stories.tsx +116 -0
- package/frontend/src/components/tools/ReadTool.tsx +37 -0
- package/frontend/src/components/tools/SkillTool.tsx +91 -0
- package/frontend/src/components/tools/SubAgentMessageFlow.tsx +172 -0
- package/frontend/src/components/tools/TaskTool.stories.tsx +483 -0
- package/frontend/src/components/tools/TaskTool.tsx +199 -0
- package/frontend/src/components/tools/TimeMachineTool.stories.tsx +254 -0
- package/frontend/src/components/tools/TimeMachineTool.tsx +126 -0
- package/frontend/src/components/tools/TodoWriteTool.stories.tsx +128 -0
- package/frontend/src/components/tools/TodoWriteTool.tsx +74 -0
- package/frontend/src/components/tools/ToolRenderer.stories.tsx +460 -0
- package/frontend/src/components/tools/ToolRenderer.tsx +147 -0
- package/frontend/src/components/tools/WebFetchTool.stories.tsx +114 -0
- package/frontend/src/components/tools/WebFetchTool.tsx +50 -0
- package/frontend/src/components/tools/WebSearchTool.stories.tsx +124 -0
- package/frontend/src/components/tools/WebSearchTool.tsx +67 -0
- package/frontend/src/components/tools/WriteTool.stories.tsx +115 -0
- package/frontend/src/components/tools/WriteTool.tsx +41 -0
- package/frontend/src/components/tools/__mocks__/toolTestData.ts +557 -0
- package/frontend/src/components/tools/customMcpTools.tsx +17 -0
- package/frontend/src/components/tools/index.stories.tsx +107 -0
- package/frontend/src/components/tools/index.ts +24 -0
- package/frontend/src/components/tools/mcpUtils.ts +27 -0
- package/frontend/src/components/tools/sdk-types.ts +327 -0
- package/frontend/src/components/tools/types.ts +218 -0
- package/frontend/src/components/ui/Button.tsx +39 -0
- package/frontend/src/components/ui/Input.tsx +24 -0
- package/frontend/src/components/ui/Textarea.tsx +23 -0
- package/frontend/src/components/ui/VersionInfo.tsx +116 -0
- package/frontend/src/components/ui/dialog.tsx +90 -0
- package/frontend/src/components/ui/index.ts +4 -0
- package/frontend/src/components/ui/label.tsx +19 -0
- package/frontend/src/components/ui/select.tsx +121 -0
- package/frontend/src/components/ui/table.tsx +117 -0
- package/frontend/src/components/ui/tabs.tsx +124 -0
- package/frontend/src/components/ui/toast.tsx +127 -0
- package/frontend/src/components/ui/toaster.tsx +33 -0
- package/frontend/src/contexts/MobileContext.tsx +109 -0
- package/frontend/src/hooks/__tests__/useAIStreamHandler.test.ts +1198 -0
- package/frontend/src/hooks/agentChat/index.ts +10 -0
- package/frontend/src/hooks/agentChat/useAIStreamHandler.ts +1594 -0
- package/frontend/src/hooks/agentChat/useClaudeVersionManager.ts +99 -0
- package/frontend/src/hooks/agentChat/useCommandCompletion.ts +253 -0
- package/frontend/src/hooks/agentChat/useImageUpload.ts +176 -0
- package/frontend/src/hooks/agentChat/useMessageSender.ts +391 -0
- package/frontend/src/hooks/agentChat/useScrollManagement.ts +66 -0
- package/frontend/src/hooks/agentChat/useSessionManager.ts +110 -0
- package/frontend/src/hooks/agentChat/useToolSelector.ts +82 -0
- package/frontend/src/hooks/agentChat/useUIState.ts +103 -0
- package/frontend/src/hooks/index.ts +3 -0
- package/frontend/src/hooks/use-toast.ts +194 -0
- package/frontend/src/hooks/useA2AConfig.ts +224 -0
- package/frontend/src/hooks/useA2AManagement.ts +456 -0
- package/frontend/src/hooks/useAI.ts +264 -0
- package/frontend/src/hooks/useAgents.ts +411 -0
- package/frontend/src/hooks/useApiBase.ts +31 -0
- package/frontend/src/hooks/useAuth.ts +454 -0
- package/frontend/src/hooks/useBackendServices.ts +58 -0
- package/frontend/src/hooks/useClaudeVersions.ts +128 -0
- package/frontend/src/hooks/useCommands.ts +312 -0
- package/frontend/src/hooks/useDashboardStats.ts +61 -0
- package/frontend/src/hooks/useFileSystem.ts +349 -0
- package/frontend/src/hooks/useFiles.ts +80 -0
- package/frontend/src/hooks/useMarketplaces.ts +120 -0
- package/frontend/src/hooks/useMobile.tsx +110 -0
- package/frontend/src/hooks/usePlugins.ts +239 -0
- package/frontend/src/hooks/useProjects.ts +45 -0
- package/frontend/src/hooks/useResponsiveSettings.tsx +22 -0
- package/frontend/src/hooks/useScheduledTasks.ts +483 -0
- package/frontend/src/hooks/useSessionHeartbeat.ts +173 -0
- package/frontend/src/hooks/useSessionHeartbeatOnSuccess.ts +80 -0
- package/frontend/src/hooks/useSessions.ts +96 -0
- package/frontend/src/hooks/useSkills.ts +197 -0
- package/frontend/src/hooks/useSubagents.ts +274 -0
- package/frontend/src/hooks/useTabNotification.ts +155 -0
- package/frontend/src/hooks/useVersionCheck.ts +164 -0
- package/frontend/src/i18n/index.ts +66 -0
- package/frontend/src/i18n/locales/en-US/agents.json +85 -0
- package/frontend/src/i18n/locales/en-US/common.json +155 -0
- package/frontend/src/i18n/locales/en-US/components.json +1197 -0
- package/frontend/src/i18n/locales/en-US/errors.json +56 -0
- package/frontend/src/i18n/locales/en-US/home.json +27 -0
- package/frontend/src/i18n/locales/en-US/onboarding.json +122 -0
- package/frontend/src/i18n/locales/en-US/pages.json +1409 -0
- package/frontend/src/i18n/locales/en-US/skills.json +120 -0
- package/frontend/src/i18n/locales/zh-CN/agents.json +85 -0
- package/frontend/src/i18n/locales/zh-CN/common.json +155 -0
- package/frontend/src/i18n/locales/zh-CN/components.json +1199 -0
- package/frontend/src/i18n/locales/zh-CN/errors.json +56 -0
- package/frontend/src/i18n/locales/zh-CN/home.json +27 -0
- package/frontend/src/i18n/locales/zh-CN/onboarding.json +122 -0
- package/frontend/src/i18n/locales/zh-CN/pages.json +1540 -0
- package/frontend/src/i18n/locales/zh-CN/pages.json.tmp +0 -0
- package/frontend/src/i18n/locales/zh-CN/pages_new.json +0 -0
- package/frontend/src/i18n/locales/zh-CN/skills.json +120 -0
- package/frontend/src/i18n/types.ts +19 -0
- package/frontend/src/index.css +112 -0
- package/frontend/src/lib/authFetch.ts +183 -0
- package/frontend/src/lib/config.ts +120 -0
- package/frontend/src/lib/utils.ts +6 -0
- package/frontend/src/main.tsx +13 -0
- package/frontend/src/pages/AgentsPage.tsx +781 -0
- package/frontend/src/pages/AnalyticsPage.tsx +363 -0
- package/frontend/src/pages/ChatPage.tsx +286 -0
- package/frontend/src/pages/CommandsPage.tsx +445 -0
- package/frontend/src/pages/DashboardPage.tsx +519 -0
- package/frontend/src/pages/HomePage.tsx +223 -0
- package/frontend/src/pages/LandingPage.tsx +607 -0
- package/frontend/src/pages/LoginPage.tsx +510 -0
- package/frontend/src/pages/McpPage.tsx +1049 -0
- package/frontend/src/pages/PluginsPage.tsx +98 -0
- package/frontend/src/pages/ProjectSettings/A2AConfigTab.tsx +468 -0
- package/frontend/src/pages/ProjectsPage.tsx +818 -0
- package/frontend/src/pages/ScheduledTasksPage.tsx +574 -0
- package/frontend/src/pages/SkillsPage.tsx +6 -0
- package/frontend/src/pages/ToastTestPage.tsx +33 -0
- package/frontend/src/pages/index.ts +3 -0
- package/frontend/src/pages/settings/ApiSettingsPage.tsx +240 -0
- package/frontend/src/pages/settings/CloudflareTunnelPage.tsx +730 -0
- package/frontend/src/pages/settings/GeneralSettingsPage.tsx +456 -0
- package/frontend/src/pages/settings/McpAdminSettingsPage.tsx +1088 -0
- package/frontend/src/pages/settings/MemorySettingsPage.tsx +153 -0
- package/frontend/src/pages/settings/SubagentsPage.tsx +412 -0
- package/frontend/src/pages/settings/SystemInfoPage.tsx +268 -0
- package/frontend/src/pages/settings/TelemetrySettingsPage.tsx +175 -0
- package/frontend/src/pages/settings/VersionSettingsPage.tsx +366 -0
- package/frontend/src/pages/settings/WebSocketTunnelPage.tsx +1578 -0
- package/frontend/src/stores/authStore.ts +99 -0
- package/frontend/src/stores/useAgentStore.ts +426 -0
- package/frontend/src/stores/useSubAgentStore.ts +207 -0
- package/frontend/src/styles/mobile.css +156 -0
- package/frontend/src/test/setup.ts +64 -0
- package/frontend/src/types/agents.ts +109 -0
- package/frontend/src/types/backendServices.ts +20 -0
- package/frontend/src/types/claude-versions.ts +45 -0
- package/frontend/src/types/commands.ts +63 -0
- package/frontend/src/types/index.ts +171 -0
- package/frontend/src/types/plugins.ts +128 -0
- package/frontend/src/types/scheduledTasks.ts +140 -0
- package/frontend/src/types/skills.ts +161 -0
- package/frontend/src/types/subagents.ts +48 -0
- package/frontend/src/types/versionTemplates.ts +270 -0
- package/frontend/src/utils/authHelpers.ts +89 -0
- package/frontend/src/utils/backendServiceStorage.ts +100 -0
- package/frontend/src/utils/commandFormatter.ts +100 -0
- package/frontend/src/utils/commandGenerator.ts +72 -0
- package/frontend/src/utils/commandHandler.ts +205 -0
- package/frontend/src/utils/dateFormat.ts +35 -0
- package/frontend/src/utils/eventBus.ts +53 -0
- package/frontend/src/utils/index.ts +34 -0
- package/frontend/src/utils/onboardingStorage.ts +40 -0
- package/frontend/src/utils/smartNavigation.ts +244 -0
- package/frontend/src/utils/streamReader.ts +32 -0
- package/frontend/src/utils/systemCommands.ts +49 -0
- package/frontend/src/utils/tabManager.ts +816 -0
- package/frontend/src/utils/toast.ts +49 -0
- package/frontend/src/utils/toolMapping.ts +83 -0
- package/frontend/src/vite-env.d.ts +3 -0
- package/frontend/tailwind.config.js +119 -0
- package/frontend/tsconfig.app.json +33 -0
- package/frontend/tsconfig.json +7 -0
- package/frontend/tsconfig.node.json +25 -0
- package/frontend/vite.config.ts +73 -0
- package/frontend/vitest.config.ts +39 -0
- package/frontend/vitest.shims.d.ts +1 -0
- package/nginx.conf +153 -0
- package/package.json +38 -49
- package/pnpm-workspace.yaml +3 -0
- package/scripts/API_KEY_GENERATION_README.md +181 -0
- package/scripts/README-nginx.md +327 -0
- package/scripts/README.md +259 -0
- package/scripts/build-complete.js +98 -0
- package/scripts/build-npm.js +251 -0
- package/scripts/check-system.sh +153 -0
- package/scripts/cloudflare_tunnel.py +292 -0
- package/scripts/deploy-feature.sh +265 -0
- package/scripts/generate-api-key.ts +59 -0
- package/scripts/install-linux.sh +1507 -0
- package/scripts/install-macos.sh +1194 -0
- package/scripts/remote-install.sh +244 -0
- package/scripts/remove-feature.sh +214 -0
- package/scripts/remove.sh +390 -0
- package/scripts/requirements.txt +1 -0
- package/scripts/restore.sh +331 -0
- package/scripts/setup-nginx-ssl.sh +242 -0
- package/scripts/setup_nginx.sh +110 -0
- package/scripts/windows-install-simple.bat +277 -0
- package/scripts/windows-install.ps1 +620 -0
- package/tsconfig.json +30 -0
- package/vercel.json +44 -0
- package/bin/agentstudio.d.ts +0 -3
- package/bin/agentstudio.d.ts.map +0 -1
- package/bin/agentstudio.js +0 -327
- package/bin/agentstudio.js.map +0 -1
- package/bin/serviceManager.d.ts +0 -16
- package/bin/serviceManager.d.ts.map +0 -1
- package/bin/serviceManager.js +0 -434
- package/bin/serviceManager.js.map +0 -1
- package/config/index.d.ts +0 -74
- package/config/index.d.ts.map +0 -1
- package/config/index.js +0 -166
- package/config/index.js.map +0 -1
- package/config/paths.d.ts +0 -81
- package/config/paths.d.ts.map +0 -1
- package/config/paths.js +0 -98
- package/config/paths.js.map +0 -1
- package/index.d.ts +0 -4
- package/index.d.ts.map +0 -1
- package/index.js +0 -425
- package/index.js.map +0 -1
- package/jobs/taskTimeoutMonitor.d.ts +0 -25
- package/jobs/taskTimeoutMonitor.d.ts.map +0 -1
- package/jobs/taskTimeoutMonitor.js +0 -94
- package/jobs/taskTimeoutMonitor.js.map +0 -1
- package/middleware/a2aAuth.d.ts +0 -38
- package/middleware/a2aAuth.d.ts.map +0 -1
- package/middleware/a2aAuth.js +0 -134
- package/middleware/a2aAuth.js.map +0 -1
- package/middleware/auth.d.ts +0 -9
- package/middleware/auth.d.ts.map +0 -1
- package/middleware/auth.js +0 -35
- package/middleware/auth.js.map +0 -1
- package/middleware/httpsOnly.d.ts +0 -75
- package/middleware/httpsOnly.d.ts.map +0 -1
- package/middleware/httpsOnly.js +0 -189
- package/middleware/httpsOnly.js.map +0 -1
- package/middleware/rateLimiting.d.ts +0 -37
- package/middleware/rateLimiting.d.ts.map +0 -1
- package/middleware/rateLimiting.js +0 -118
- package/middleware/rateLimiting.js.map +0 -1
- package/public/assets/AgentsPage-Cl2yOPj5.js +0 -10
- package/public/assets/Button-DPVn3zDJ.js +0 -1
- package/public/assets/ChatPage-BAslLt2l.js +0 -471
- package/public/assets/ChatPage-BvQmXfcP.css +0 -1
- package/public/assets/CommandForm-C8RL-p7h.js +0 -7
- package/public/assets/CommandsPage-DakxsAcv.js +0 -1
- package/public/assets/DashboardPage-Dz5tihOs.js +0 -1
- package/public/assets/FileBrowser-BXtVLz8h.js +0 -6
- package/public/assets/FileExplorer-DFQ7ynXa.js +0 -1
- package/public/assets/GeneralSettingsPage-CWWgquA9.js +0 -1
- package/public/assets/LandingPage-BDKkpXK0.js +0 -1
- package/public/assets/LoginPage-1PbdWrXW.js +0 -16
- package/public/assets/McpAdminSettingsPage-BlTO82W3.js +0 -7
- package/public/assets/McpPage-Bix7CnMS.js +0 -20
- package/public/assets/MemorySettingsPage-Dzq3vCns.js +0 -1
- package/public/assets/PluginsPage-oYSGDv3z.js +0 -1
- package/public/assets/ProjectSelector-Bp1q7dra.js +0 -1
- package/public/assets/ProjectsPage-BKpI8KE2.js +0 -21
- package/public/assets/ScheduledTasksPage-D2rYw_Qf.js +0 -1
- package/public/assets/SettingsLayout-CfmsuehF.js +0 -1
- package/public/assets/SkillsPage-D01PYcoW.js +0 -18
- package/public/assets/SubagentForm-CSRBsxUE.js +0 -7
- package/public/assets/SubagentsPage-CDaYnbfn.js +0 -1
- package/public/assets/SystemInfoPage-DAeYkq91.js +0 -1
- package/public/assets/TelemetrySettingsPage-BPuPqJPR.js +0 -1
- package/public/assets/ToastTestPage-DkZ9D943.js +0 -1
- package/public/assets/ToolsList-Ci2lqPin.js +0 -1
- package/public/assets/UnifiedToolSelector-CKjY_qjS.js +0 -1
- package/public/assets/VersionSettingsPage-DHUbqInQ.js +0 -5
- package/public/assets/WebSocketTunnelPage-BGeVdEp8.js +0 -1
- package/public/assets/_basePickBy-BFNUdIR5.js +0 -1
- package/public/assets/_baseUniq-DP62Yq8R.js +0 -1
- package/public/assets/agents-DG431Wop.js +0 -1
- package/public/assets/agents-DwCY2K8p.css +0 -1
- package/public/assets/arc-CkNwuwWZ.js +0 -1
- package/public/assets/architectureDiagram-VXUJARFQ-7Ky7pc6T.js +0 -36
- package/public/assets/blockDiagram-VD42YOAC-Ax8FYBYm.js +0 -122
- package/public/assets/c4Diagram-YG6GDRKO-CyNR39OO.js +0 -10
- package/public/assets/channel-BKv1iINC.js +0 -1
- package/public/assets/chunk-4BX2VUAB-zM0Al_rU.js +0 -1
- package/public/assets/chunk-55IACEB6-CCDkr_yY.js +0 -1
- package/public/assets/chunk-B4BG7PRW-yOb-P7Po.js +0 -165
- package/public/assets/chunk-DI55MBZ5-zGH8m4eb.js +0 -220
- package/public/assets/chunk-FMBD7UC4-DI1MjWfw.js +0 -15
- package/public/assets/chunk-QN33PNHL-C_FDNT8n.js +0 -1
- package/public/assets/chunk-QZHKN3VN-V_K-gce9.js +0 -1
- package/public/assets/chunk-TZMSLE5B-BnNBbkNq.js +0 -1
- package/public/assets/classDiagram-2ON5EDUG-DWylXt6j.js +0 -1
- package/public/assets/classDiagram-v2-WZHVMYZB-DWylXt6j.js +0 -1
- package/public/assets/clone-BnTQiQb4.js +0 -1
- package/public/assets/cose-bilkent-S5V4N54A-DrNb0vKp.js +0 -1
- package/public/assets/cytoscape.esm-DtBltrT8.js +0 -331
- package/public/assets/dagre-6UL2VRFP-CtKFNLmb.js +0 -4
- package/public/assets/data-structures-C0h9Oap1.js +0 -27
- package/public/assets/dateFormat-CXa8VnEC.js +0 -1
- package/public/assets/defaultLocale-C4B-KCzX.js +0 -1
- package/public/assets/diagram-PSM6KHXK-DpQfOKt-.js +0 -24
- package/public/assets/diagram-QEK2KX5R-DscZmfZJ.js +0 -43
- package/public/assets/diagram-S2PKOQOG-UbEZAQ1u.js +0 -24
- package/public/assets/erDiagram-Q2GNP2WA-mmTcLBrY.js +0 -60
- package/public/assets/flowDiagram-NV44I4VS-BsIXhV1w.js +0 -162
- package/public/assets/ganttDiagram-LVOFAZNH-CaHkiTYy.js +0 -267
- package/public/assets/gitGraphDiagram-NY62KEGX-B-ctMH3l.js +0 -65
- package/public/assets/graph-CtuWuGCI.js +0 -1
- package/public/assets/index-D9bAK8SN.js +0 -297
- package/public/assets/index-DBxcQY5U.css +0 -1
- package/public/assets/infoDiagram-F6ZHWCRC-DMsG_8YD.js +0 -2
- package/public/assets/init-Gi6I4Gst.js +0 -1
- package/public/assets/journeyDiagram-XKPGCS4Q-XnBAE0k9.js +0 -139
- package/public/assets/kanban-definition-3W4ZIXB7-DY1J_CQA.js +0 -89
- package/public/assets/katex-qrhCpa0F.js +0 -261
- package/public/assets/layout-BBAqRBns.js +0 -1
- package/public/assets/linear-DXGOqRyX.js +0 -1
- package/public/assets/mindmap-definition-VGOIOE7T-D8LYlQnr.js +0 -68
- package/public/assets/monaco-editor-DHKm5-VF.js +0 -19
- package/public/assets/ordinal-Cboi1Yqb.js +0 -1
- package/public/assets/pieDiagram-ADFJNKIX-DqZw-HeQ.js +0 -30
- package/public/assets/quadrantDiagram-AYHSOK5B-CfjEkg6d.js +0 -7
- package/public/assets/requirementDiagram-UZGBJVZJ-CEbDefgn.js +0 -64
- package/public/assets/sankeyDiagram-TZEHDZUN-DOU4OJks.js +0 -10
- package/public/assets/sequenceDiagram-WL72ISMW-BmjWQ4oi.js +0 -145
- package/public/assets/stateDiagram-FKZM4ZOC-C7lI7uz2.js +0 -1
- package/public/assets/stateDiagram-v2-4FDKWEC3-C8Eo5YFb.js +0 -1
- package/public/assets/syntax-highlighting-CnREyncB.js +0 -24
- package/public/assets/table-F592JIUY.js +0 -1
- package/public/assets/timeline-definition-IT6M3QCI-BltidY3A.js +0 -61
- package/public/assets/tools-C0JOzoE_.js +0 -1
- package/public/assets/treemap-KMMF4GRG-CXskbtZo.js +0 -128
- package/public/assets/ui-components-CRCmgMKc.js +0 -646
- package/public/assets/useAgents-Bp5Ry-Dk.js +0 -2
- package/public/assets/useClaudeVersions-DYM2HCGW.js +0 -1
- package/public/assets/useCommands-B0s3JzZs.js +0 -1
- package/public/assets/useProjects-DuCnMeYt.js +0 -1
- package/public/assets/useSessions-EknKfdIv.js +0 -1
- package/public/assets/xychartDiagram-PRI3JC2R-Bk3p1DGz.js +0 -7
- package/public/index.html +0 -70
- package/routes/__tests__/a2a.integration.test.d.ts +0 -11
- package/routes/__tests__/a2a.integration.test.d.ts.map +0 -1
- package/routes/__tests__/a2a.integration.test.js +0 -314
- package/routes/__tests__/a2a.integration.test.js.map +0 -1
- package/routes/__tests__/a2a.test.d.ts +0 -6
- package/routes/__tests__/a2a.test.d.ts.map +0 -1
- package/routes/__tests__/a2a.test.js +0 -622
- package/routes/__tests__/a2a.test.js.map +0 -1
- package/routes/__tests__/agents.test.d.ts +0 -6
- package/routes/__tests__/agents.test.d.ts.map +0 -1
- package/routes/__tests__/agents.test.js +0 -315
- package/routes/__tests__/agents.test.js.map +0 -1
- package/routes/__tests__/sessions.test.d.ts +0 -7
- package/routes/__tests__/sessions.test.d.ts.map +0 -1
- package/routes/__tests__/sessions.test.js +0 -330
- package/routes/__tests__/sessions.test.js.map +0 -1
- package/routes/a2a.d.ts +0 -18
- package/routes/a2a.d.ts.map +0 -1
- package/routes/a2a.js +0 -718
- package/routes/a2a.js.map +0 -1
- package/routes/a2a.streaming.test.d.ts +0 -2
- package/routes/a2a.streaming.test.d.ts.map +0 -1
- package/routes/a2a.streaming.test.js +0 -167
- package/routes/a2a.streaming.test.js.map +0 -1
- package/routes/a2aManagement.d.ts +0 -21
- package/routes/a2aManagement.d.ts.map +0 -1
- package/routes/a2aManagement.js +0 -466
- package/routes/a2aManagement.js.map +0 -1
- package/routes/agents.d.ts +0 -4
- package/routes/agents.d.ts.map +0 -1
- package/routes/agents.js +0 -1026
- package/routes/agents.js.map +0 -1
- package/routes/auth.d.ts +0 -4
- package/routes/auth.d.ts.map +0 -1
- package/routes/auth.js +0 -135
- package/routes/auth.js.map +0 -1
- package/routes/cloudflareTunnel.d.ts +0 -4
- package/routes/cloudflareTunnel.d.ts.map +0 -1
- package/routes/cloudflareTunnel.js +0 -250
- package/routes/cloudflareTunnel.js.map +0 -1
- package/routes/commands.d.ts +0 -4
- package/routes/commands.d.ts.map +0 -1
- package/routes/commands.js +0 -479
- package/routes/commands.js.map +0 -1
- package/routes/config.d.ts +0 -4
- package/routes/config.d.ts.map +0 -1
- package/routes/config.js +0 -211
- package/routes/config.js.map +0 -1
- package/routes/files.d.ts +0 -4
- package/routes/files.d.ts.map +0 -1
- package/routes/files.js +0 -361
- package/routes/files.js.map +0 -1
- package/routes/mcp.d.ts +0 -26
- package/routes/mcp.d.ts.map +0 -1
- package/routes/mcp.js +0 -796
- package/routes/mcp.js.map +0 -1
- package/routes/mcpAdmin.d.ts +0 -16
- package/routes/mcpAdmin.d.ts.map +0 -1
- package/routes/mcpAdmin.js +0 -308
- package/routes/mcpAdmin.js.map +0 -1
- package/routes/mcpAdminManagement.d.ts +0 -17
- package/routes/mcpAdminManagement.d.ts.map +0 -1
- package/routes/mcpAdminManagement.js +0 -345
- package/routes/mcpAdminManagement.js.map +0 -1
- package/routes/media.d.ts +0 -5
- package/routes/media.d.ts.map +0 -1
- package/routes/media.js +0 -127
- package/routes/media.js.map +0 -1
- package/routes/mediaAuth.d.ts +0 -8
- package/routes/mediaAuth.d.ts.map +0 -1
- package/routes/mediaAuth.js +0 -136
- package/routes/mediaAuth.js.map +0 -1
- package/routes/network.d.ts +0 -9
- package/routes/network.d.ts.map +0 -1
- package/routes/network.js +0 -60
- package/routes/network.js.map +0 -1
- package/routes/plugins.d.ts +0 -4
- package/routes/plugins.d.ts.map +0 -1
- package/routes/plugins.js +0 -339
- package/routes/plugins.js.map +0 -1
- package/routes/projects.d.ts +0 -4
- package/routes/projects.d.ts.map +0 -1
- package/routes/projects.js +0 -1000
- package/routes/projects.js.map +0 -1
- package/routes/scheduledTasks.d.ts +0 -9
- package/routes/scheduledTasks.d.ts.map +0 -1
- package/routes/scheduledTasks.js +0 -386
- package/routes/scheduledTasks.js.map +0 -1
- package/routes/sessions.d.ts +0 -4
- package/routes/sessions.d.ts.map +0 -1
- package/routes/sessions.js +0 -966
- package/routes/sessions.js.map +0 -1
- package/routes/settings.d.ts +0 -4
- package/routes/settings.d.ts.map +0 -1
- package/routes/settings.js +0 -499
- package/routes/settings.js.map +0 -1
- package/routes/skills.d.ts +0 -4
- package/routes/skills.d.ts.map +0 -1
- package/routes/skills.js +0 -272
- package/routes/skills.js.map +0 -1
- package/routes/slack.d.ts +0 -10
- package/routes/slack.d.ts.map +0 -1
- package/routes/slack.js +0 -189
- package/routes/slack.js.map +0 -1
- package/routes/slides.d.ts +0 -4
- package/routes/slides.d.ts.map +0 -1
- package/routes/slides.js +0 -148
- package/routes/slides.js.map +0 -1
- package/routes/subagents.d.ts +0 -4
- package/routes/subagents.d.ts.map +0 -1
- package/routes/subagents.js +0 -331
- package/routes/subagents.js.map +0 -1
- package/routes/taskExecutor.d.ts +0 -9
- package/routes/taskExecutor.d.ts.map +0 -1
- package/routes/taskExecutor.js +0 -224
- package/routes/taskExecutor.js.map +0 -1
- package/routes/tunnel.d.ts +0 -10
- package/routes/tunnel.d.ts.map +0 -1
- package/routes/tunnel.js +0 -296
- package/routes/tunnel.js.map +0 -1
- package/routes/version.d.ts +0 -4
- package/routes/version.d.ts.map +0 -1
- package/routes/version.js +0 -216
- package/routes/version.js.map +0 -1
- package/schemas/a2a.d.ts +0 -946
- package/schemas/a2a.d.ts.map +0 -1
- package/schemas/a2a.js +0 -316
- package/schemas/a2a.js.map +0 -1
- package/scripts/postinstall.js +0 -10
- package/services/__tests__/pluginInstaller.test.d.ts +0 -5
- package/services/__tests__/pluginInstaller.test.d.ts.map +0 -1
- package/services/__tests__/pluginInstaller.test.js +0 -290
- package/services/__tests__/pluginInstaller.test.js.map +0 -1
- package/services/__tests__/pluginParser.test.d.ts +0 -5
- package/services/__tests__/pluginParser.test.d.ts.map +0 -1
- package/services/__tests__/pluginParser.test.js +0 -272
- package/services/__tests__/pluginParser.test.js.map +0 -1
- package/services/__tests__/pluginPaths.test.d.ts +0 -5
- package/services/__tests__/pluginPaths.test.d.ts.map +0 -1
- package/services/__tests__/pluginPaths.test.js +0 -221
- package/services/__tests__/pluginPaths.test.js.map +0 -1
- package/services/__tests__/pluginScanner.test.d.ts +0 -5
- package/services/__tests__/pluginScanner.test.d.ts.map +0 -1
- package/services/__tests__/pluginScanner.test.js +0 -272
- package/services/__tests__/pluginScanner.test.js.map +0 -1
- package/services/__tests__/pluginSymlink.test.d.ts +0 -5
- package/services/__tests__/pluginSymlink.test.d.ts.map +0 -1
- package/services/__tests__/pluginSymlink.test.js +0 -318
- package/services/__tests__/pluginSymlink.test.js.map +0 -1
- package/services/__tests__/projectMetadataStorage.test.d.ts +0 -5
- package/services/__tests__/projectMetadataStorage.test.d.ts.map +0 -1
- package/services/__tests__/projectMetadataStorage.test.js +0 -154
- package/services/__tests__/projectMetadataStorage.test.js.map +0 -1
- package/services/__tests__/sessionConcurrency.test.d.ts +0 -7
- package/services/__tests__/sessionConcurrency.test.d.ts.map +0 -1
- package/services/__tests__/sessionConcurrency.test.js +0 -110
- package/services/__tests__/sessionConcurrency.test.js.map +0 -1
- package/services/__tests__/slackAIService.test.d.ts +0 -5
- package/services/__tests__/slackAIService.test.d.ts.map +0 -1
- package/services/__tests__/slackAIService.test.js +0 -479
- package/services/__tests__/slackAIService.test.js.map +0 -1
- package/services/__tests__/slackThreadMapper.test.d.ts +0 -5
- package/services/__tests__/slackThreadMapper.test.d.ts.map +0 -1
- package/services/__tests__/slackThreadMapper.test.js +0 -194
- package/services/__tests__/slackThreadMapper.test.js.map +0 -1
- package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts +0 -6
- package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts.map +0 -1
- package/services/a2a/__tests__/a2aClientTool.integration.test.js +0 -264
- package/services/a2a/__tests__/a2aClientTool.integration.test.js.map +0 -1
- package/services/a2a/__tests__/a2aClientTool.test.d.ts +0 -6
- package/services/a2a/__tests__/a2aClientTool.test.d.ts.map +0 -1
- package/services/a2a/__tests__/a2aClientTool.test.js +0 -592
- package/services/a2a/__tests__/a2aClientTool.test.js.map +0 -1
- package/services/a2a/__tests__/a2aConfigService.test.d.ts +0 -6
- package/services/a2a/__tests__/a2aConfigService.test.d.ts.map +0 -1
- package/services/a2a/__tests__/a2aConfigService.test.js +0 -431
- package/services/a2a/__tests__/a2aConfigService.test.js.map +0 -1
- package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts +0 -2
- package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts.map +0 -1
- package/services/a2a/__tests__/a2aConfigServicePath.test.js +0 -49
- package/services/a2a/__tests__/a2aConfigServicePath.test.js.map +0 -1
- package/services/a2a/__tests__/a2aSdkMcp.test.d.ts +0 -10
- package/services/a2a/__tests__/a2aSdkMcp.test.d.ts.map +0 -1
- package/services/a2a/__tests__/a2aSdkMcp.test.js +0 -239
- package/services/a2a/__tests__/a2aSdkMcp.test.js.map +0 -1
- package/services/a2a/__tests__/agentCardService.test.d.ts +0 -6
- package/services/a2a/__tests__/agentCardService.test.d.ts.map +0 -1
- package/services/a2a/__tests__/agentCardService.test.js +0 -292
- package/services/a2a/__tests__/agentCardService.test.js.map +0 -1
- package/services/a2a/__tests__/apiKeyService.test.d.ts +0 -6
- package/services/a2a/__tests__/apiKeyService.test.d.ts.map +0 -1
- package/services/a2a/__tests__/apiKeyService.test.js +0 -284
- package/services/a2a/__tests__/apiKeyService.test.js.map +0 -1
- package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts +0 -2
- package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts.map +0 -1
- package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js +0 -70
- package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js.map +0 -1
- package/services/a2a/__tests__/dynamic_config_verification.test.d.ts +0 -2
- package/services/a2a/__tests__/dynamic_config_verification.test.d.ts.map +0 -1
- package/services/a2a/__tests__/dynamic_config_verification.test.js +0 -67
- package/services/a2a/__tests__/dynamic_config_verification.test.js.map +0 -1
- package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts +0 -2
- package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts.map +0 -1
- package/services/a2a/__tests__/integrateA2AMcpServer.test.js +0 -112
- package/services/a2a/__tests__/integrateA2AMcpServer.test.js.map +0 -1
- package/services/a2a/__tests__/taskManager.integration.test.d.ts +0 -7
- package/services/a2a/__tests__/taskManager.integration.test.d.ts.map +0 -1
- package/services/a2a/__tests__/taskManager.integration.test.js +0 -346
- package/services/a2a/__tests__/taskManager.integration.test.js.map +0 -1
- package/services/a2a/__tests__/taskManager.test.d.ts +0 -7
- package/services/a2a/__tests__/taskManager.test.d.ts.map +0 -1
- package/services/a2a/__tests__/taskManager.test.js +0 -423
- package/services/a2a/__tests__/taskManager.test.js.map +0 -1
- package/services/a2a/__tests__/webhookService.test.d.ts +0 -6
- package/services/a2a/__tests__/webhookService.test.d.ts.map +0 -1
- package/services/a2a/__tests__/webhookService.test.js +0 -196
- package/services/a2a/__tests__/webhookService.test.js.map +0 -1
- package/services/a2a/a2aClientTool.d.ts +0 -73
- package/services/a2a/a2aClientTool.d.ts.map +0 -1
- package/services/a2a/a2aClientTool.js +0 -595
- package/services/a2a/a2aClientTool.js.map +0 -1
- package/services/a2a/a2aConfigService.d.ts +0 -50
- package/services/a2a/a2aConfigService.d.ts.map +0 -1
- package/services/a2a/a2aConfigService.js +0 -186
- package/services/a2a/a2aConfigService.js.map +0 -1
- package/services/a2a/a2aHistoryService.d.ts +0 -32
- package/services/a2a/a2aHistoryService.d.ts.map +0 -1
- package/services/a2a/a2aHistoryService.js +0 -108
- package/services/a2a/a2aHistoryService.js.map +0 -1
- package/services/a2a/a2aIntegration.d.ts +0 -10
- package/services/a2a/a2aIntegration.d.ts.map +0 -1
- package/services/a2a/a2aIntegration.js +0 -42
- package/services/a2a/a2aIntegration.js.map +0 -1
- package/services/a2a/a2aQueryService.d.ts +0 -71
- package/services/a2a/a2aQueryService.d.ts.map +0 -1
- package/services/a2a/a2aQueryService.js +0 -209
- package/services/a2a/a2aQueryService.js.map +0 -1
- package/services/a2a/a2aSdkMcp.d.ts +0 -52
- package/services/a2a/a2aSdkMcp.d.ts.map +0 -1
- package/services/a2a/a2aSdkMcp.js +0 -188
- package/services/a2a/a2aSdkMcp.js.map +0 -1
- package/services/a2a/a2aStreamEvents.d.ts +0 -94
- package/services/a2a/a2aStreamEvents.d.ts.map +0 -1
- package/services/a2a/a2aStreamEvents.js +0 -92
- package/services/a2a/a2aStreamEvents.js.map +0 -1
- package/services/a2a/agentCardService.d.ts +0 -34
- package/services/a2a/agentCardService.d.ts.map +0 -1
- package/services/a2a/agentCardService.js +0 -228
- package/services/a2a/agentCardService.js.map +0 -1
- package/services/a2a/agentMappingService.d.ts +0 -53
- package/services/a2a/agentMappingService.d.ts.map +0 -1
- package/services/a2a/agentMappingService.js +0 -185
- package/services/a2a/agentMappingService.js.map +0 -1
- package/services/a2a/apiKeyService.d.ts +0 -101
- package/services/a2a/apiKeyService.d.ts.map +0 -1
- package/services/a2a/apiKeyService.js +0 -314
- package/services/a2a/apiKeyService.js.map +0 -1
- package/services/a2a/taskCleanup.d.ts +0 -30
- package/services/a2a/taskCleanup.d.ts.map +0 -1
- package/services/a2a/taskCleanup.js +0 -184
- package/services/a2a/taskCleanup.js.map +0 -1
- package/services/a2a/taskManager.d.ts +0 -87
- package/services/a2a/taskManager.d.ts.map +0 -1
- package/services/a2a/taskManager.js +0 -265
- package/services/a2a/taskManager.js.map +0 -1
- package/services/a2a/webhookService.d.ts +0 -30
- package/services/a2a/webhookService.d.ts.map +0 -1
- package/services/a2a/webhookService.js +0 -113
- package/services/a2a/webhookService.js.map +0 -1
- package/services/agentStorage.d.ts +0 -27
- package/services/agentStorage.d.ts.map +0 -1
- package/services/agentStorage.js +0 -487
- package/services/agentStorage.js.map +0 -1
- package/services/askUserQuestion/askUserQuestionIntegration.d.ts +0 -24
- package/services/askUserQuestion/askUserQuestionIntegration.d.ts.map +0 -1
- package/services/askUserQuestion/askUserQuestionIntegration.js +0 -52
- package/services/askUserQuestion/askUserQuestionIntegration.js.map +0 -1
- package/services/askUserQuestion/askUserQuestionMcp.d.ts +0 -103
- package/services/askUserQuestion/askUserQuestionMcp.d.ts.map +0 -1
- package/services/askUserQuestion/askUserQuestionMcp.js +0 -129
- package/services/askUserQuestion/askUserQuestionMcp.js.map +0 -1
- package/services/askUserQuestion/index.d.ts +0 -13
- package/services/askUserQuestion/index.d.ts.map +0 -1
- package/services/askUserQuestion/index.js +0 -35
- package/services/askUserQuestion/index.js.map +0 -1
- package/services/askUserQuestion/init.d.ts +0 -17
- package/services/askUserQuestion/init.d.ts.map +0 -1
- package/services/askUserQuestion/init.js +0 -47
- package/services/askUserQuestion/init.js.map +0 -1
- package/services/askUserQuestion/notificationChannel.d.ts +0 -97
- package/services/askUserQuestion/notificationChannel.d.ts.map +0 -1
- package/services/askUserQuestion/notificationChannel.js +0 -147
- package/services/askUserQuestion/notificationChannel.js.map +0 -1
- package/services/askUserQuestion/slackNotificationChannel.d.ts +0 -35
- package/services/askUserQuestion/slackNotificationChannel.d.ts.map +0 -1
- package/services/askUserQuestion/slackNotificationChannel.js +0 -129
- package/services/askUserQuestion/slackNotificationChannel.js.map +0 -1
- package/services/askUserQuestion/sseNotificationChannel.d.ts +0 -36
- package/services/askUserQuestion/sseNotificationChannel.d.ts.map +0 -1
- package/services/askUserQuestion/sseNotificationChannel.js +0 -88
- package/services/askUserQuestion/sseNotificationChannel.js.map +0 -1
- package/services/askUserQuestion/userInputRegistry.d.ts +0 -107
- package/services/askUserQuestion/userInputRegistry.d.ts.map +0 -1
- package/services/askUserQuestion/userInputRegistry.js +0 -253
- package/services/askUserQuestion/userInputRegistry.js.map +0 -1
- package/services/claudeSession.d.ts +0 -113
- package/services/claudeSession.d.ts.map +0 -1
- package/services/claudeSession.js +0 -375
- package/services/claudeSession.js.map +0 -1
- package/services/claudeVersionStorage.d.ts +0 -20
- package/services/claudeVersionStorage.d.ts.map +0 -1
- package/services/claudeVersionStorage.js +0 -331
- package/services/claudeVersionStorage.js.map +0 -1
- package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts +0 -5
- package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts.map +0 -1
- package/services/mcpAdmin/__tests__/adminApiKeyService.test.js +0 -289
- package/services/mcpAdmin/__tests__/adminApiKeyService.test.js.map +0 -1
- package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts +0 -5
- package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts.map +0 -1
- package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js +0 -345
- package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js.map +0 -1
- package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts +0 -5
- package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts.map +0 -1
- package/services/mcpAdmin/__tests__/mcpAdminServer.test.js +0 -453
- package/services/mcpAdmin/__tests__/mcpAdminServer.test.js.map +0 -1
- package/services/mcpAdmin/__tests__/providerTools.test.d.ts +0 -7
- package/services/mcpAdmin/__tests__/providerTools.test.d.ts.map +0 -1
- package/services/mcpAdmin/__tests__/providerTools.test.js +0 -258
- package/services/mcpAdmin/__tests__/providerTools.test.js.map +0 -1
- package/services/mcpAdmin/__tests__/tools.test.d.ts +0 -5
- package/services/mcpAdmin/__tests__/tools.test.d.ts.map +0 -1
- package/services/mcpAdmin/__tests__/tools.test.js +0 -389
- package/services/mcpAdmin/__tests__/tools.test.js.map +0 -1
- package/services/mcpAdmin/adminApiKeyService.d.ts +0 -61
- package/services/mcpAdmin/adminApiKeyService.d.ts.map +0 -1
- package/services/mcpAdmin/adminApiKeyService.js +0 -270
- package/services/mcpAdmin/adminApiKeyService.js.map +0 -1
- package/services/mcpAdmin/index.d.ts +0 -10
- package/services/mcpAdmin/index.d.ts.map +0 -1
- package/services/mcpAdmin/index.js +0 -43
- package/services/mcpAdmin/index.js.map +0 -1
- package/services/mcpAdmin/mcpAdminServer.d.ts +0 -76
- package/services/mcpAdmin/mcpAdminServer.d.ts.map +0 -1
- package/services/mcpAdmin/mcpAdminServer.js +0 -243
- package/services/mcpAdmin/mcpAdminServer.js.map +0 -1
- package/services/mcpAdmin/tools/agentTools.d.ts +0 -27
- package/services/mcpAdmin/tools/agentTools.d.ts.map +0 -1
- package/services/mcpAdmin/tools/agentTools.js +0 -352
- package/services/mcpAdmin/tools/agentTools.js.map +0 -1
- package/services/mcpAdmin/tools/index.d.ts +0 -16
- package/services/mcpAdmin/tools/index.d.ts.map +0 -1
- package/services/mcpAdmin/tools/index.js +0 -34
- package/services/mcpAdmin/tools/index.js.map +0 -1
- package/services/mcpAdmin/tools/mcpServerTools.d.ts +0 -27
- package/services/mcpAdmin/tools/mcpServerTools.d.ts.map +0 -1
- package/services/mcpAdmin/tools/mcpServerTools.js +0 -334
- package/services/mcpAdmin/tools/mcpServerTools.js.map +0 -1
- package/services/mcpAdmin/tools/projectTools.d.ts +0 -27
- package/services/mcpAdmin/tools/projectTools.d.ts.map +0 -1
- package/services/mcpAdmin/tools/projectTools.js +0 -382
- package/services/mcpAdmin/tools/projectTools.js.map +0 -1
- package/services/mcpAdmin/tools/providerTools.d.ts +0 -40
- package/services/mcpAdmin/tools/providerTools.d.ts.map +0 -1
- package/services/mcpAdmin/tools/providerTools.js +0 -581
- package/services/mcpAdmin/tools/providerTools.js.map +0 -1
- package/services/mcpAdmin/tools/systemTools.d.ts +0 -23
- package/services/mcpAdmin/tools/systemTools.d.ts.map +0 -1
- package/services/mcpAdmin/tools/systemTools.js +0 -241
- package/services/mcpAdmin/tools/systemTools.js.map +0 -1
- package/services/mcpAdmin/types.d.ts +0 -124
- package/services/mcpAdmin/types.d.ts.map +0 -1
- package/services/mcpAdmin/types.js +0 -18
- package/services/mcpAdmin/types.js.map +0 -1
- package/services/messageQueue.d.ts +0 -31
- package/services/messageQueue.d.ts.map +0 -1
- package/services/messageQueue.js +0 -80
- package/services/messageQueue.js.map +0 -1
- package/services/pluginInstaller.d.ts +0 -58
- package/services/pluginInstaller.d.ts.map +0 -1
- package/services/pluginInstaller.js +0 -321
- package/services/pluginInstaller.js.map +0 -1
- package/services/pluginParser.d.ts +0 -45
- package/services/pluginParser.d.ts.map +0 -1
- package/services/pluginParser.js +0 -437
- package/services/pluginParser.js.map +0 -1
- package/services/pluginPaths.d.ts +0 -80
- package/services/pluginPaths.d.ts.map +0 -1
- package/services/pluginPaths.js +0 -274
- package/services/pluginPaths.js.map +0 -1
- package/services/pluginScanner.d.ts +0 -36
- package/services/pluginScanner.d.ts.map +0 -1
- package/services/pluginScanner.js +0 -251
- package/services/pluginScanner.js.map +0 -1
- package/services/pluginSymlink.d.ts +0 -54
- package/services/pluginSymlink.d.ts.map +0 -1
- package/services/pluginSymlink.js +0 -223
- package/services/pluginSymlink.js.map +0 -1
- package/services/projectMetadataStorage.d.ts +0 -121
- package/services/projectMetadataStorage.d.ts.map +0 -1
- package/services/projectMetadataStorage.js +0 -810
- package/services/projectMetadataStorage.js.map +0 -1
- package/services/scheduledTaskStorage.d.ts +0 -63
- package/services/scheduledTaskStorage.d.ts.map +0 -1
- package/services/scheduledTaskStorage.js +0 -351
- package/services/scheduledTaskStorage.js.map +0 -1
- package/services/schedulerService.d.ts +0 -91
- package/services/schedulerService.d.ts.map +0 -1
- package/services/schedulerService.js +0 -590
- package/services/schedulerService.js.map +0 -1
- package/services/sessionManager.d.ts +0 -176
- package/services/sessionManager.d.ts.map +0 -1
- package/services/sessionManager.js +0 -647
- package/services/sessionManager.js.map +0 -1
- package/services/skillStorage.d.ts +0 -60
- package/services/skillStorage.d.ts.map +0 -1
- package/services/skillStorage.js +0 -398
- package/services/skillStorage.js.map +0 -1
- package/services/slackAIService.d.ts +0 -81
- package/services/slackAIService.d.ts.map +0 -1
- package/services/slackAIService.js +0 -1137
- package/services/slackAIService.js.map +0 -1
- package/services/slackClient.d.ts +0 -46
- package/services/slackClient.d.ts.map +0 -1
- package/services/slackClient.js +0 -85
- package/services/slackClient.js.map +0 -1
- package/services/slackSessionLock.d.ts +0 -79
- package/services/slackSessionLock.d.ts.map +0 -1
- package/services/slackSessionLock.js +0 -353
- package/services/slackSessionLock.js.map +0 -1
- package/services/slackThreadMapper.d.ts +0 -57
- package/services/slackThreadMapper.d.ts.map +0 -1
- package/services/slackThreadMapper.js +0 -140
- package/services/slackThreadMapper.js.map +0 -1
- package/services/taskExecutor/BuiltinExecutor.d.ts +0 -44
- package/services/taskExecutor/BuiltinExecutor.d.ts.map +0 -1
- package/services/taskExecutor/BuiltinExecutor.js +0 -513
- package/services/taskExecutor/BuiltinExecutor.js.map +0 -1
- package/services/taskExecutor/__tests__/a2a-tasks.test.d.ts +0 -7
- package/services/taskExecutor/__tests__/a2a-tasks.test.d.ts.map +0 -1
- package/services/taskExecutor/__tests__/a2a-tasks.test.js +0 -328
- package/services/taskExecutor/__tests__/a2a-tasks.test.js.map +0 -1
- package/services/taskExecutor/__tests__/e2e-workflows.test.d.ts +0 -7
- package/services/taskExecutor/__tests__/e2e-workflows.test.d.ts.map +0 -1
- package/services/taskExecutor/__tests__/e2e-workflows.test.js +0 -446
- package/services/taskExecutor/__tests__/e2e-workflows.test.js.map +0 -1
- package/services/taskExecutor/__tests__/error-handling.test.d.ts +0 -7
- package/services/taskExecutor/__tests__/error-handling.test.d.ts.map +0 -1
- package/services/taskExecutor/__tests__/error-handling.test.js +0 -387
- package/services/taskExecutor/__tests__/error-handling.test.js.map +0 -1
- package/services/taskExecutor/__tests__/stress.test.d.ts +0 -7
- package/services/taskExecutor/__tests__/stress.test.d.ts.map +0 -1
- package/services/taskExecutor/__tests__/stress.test.js +0 -329
- package/services/taskExecutor/__tests__/stress.test.js.map +0 -1
- package/services/taskExecutor/__tests__/taskExecutor.integration.test.d.ts +0 -7
- package/services/taskExecutor/__tests__/taskExecutor.integration.test.d.ts.map +0 -1
- package/services/taskExecutor/__tests__/taskExecutor.integration.test.js +0 -205
- package/services/taskExecutor/__tests__/taskExecutor.integration.test.js.map +0 -1
- package/services/taskExecutor/__tests__/timeout-cancellation.test.d.ts +0 -7
- package/services/taskExecutor/__tests__/timeout-cancellation.test.d.ts.map +0 -1
- package/services/taskExecutor/__tests__/timeout-cancellation.test.js +0 -319
- package/services/taskExecutor/__tests__/timeout-cancellation.test.js.map +0 -1
- package/services/taskExecutor/index.d.ts +0 -40
- package/services/taskExecutor/index.d.ts.map +0 -1
- package/services/taskExecutor/index.js +0 -166
- package/services/taskExecutor/index.js.map +0 -1
- package/services/taskExecutor/taskWorker.d.ts +0 -11
- package/services/taskExecutor/taskWorker.d.ts.map +0 -1
- package/services/taskExecutor/taskWorker.js +0 -171
- package/services/taskExecutor/taskWorker.js.map +0 -1
- package/services/taskExecutor/types.d.ts +0 -145
- package/services/taskExecutor/types.d.ts.map +0 -1
- package/services/taskExecutor/types.js +0 -9
- package/services/taskExecutor/types.js.map +0 -1
- package/services/telemetry.d.ts +0 -40
- package/services/telemetry.d.ts.map +0 -1
- package/services/telemetry.js +0 -245
- package/services/telemetry.js.map +0 -1
- package/services/tunnelService.d.ts +0 -165
- package/services/tunnelService.d.ts.map +0 -1
- package/services/tunnelService.js +0 -493
- package/services/tunnelService.js.map +0 -1
- package/types/a2a.d.ts +0 -293
- package/types/a2a.d.ts.map +0 -1
- package/types/a2a.js +0 -23
- package/types/a2a.js.map +0 -1
- package/types/agents.d.ts +0 -94
- package/types/agents.d.ts.map +0 -1
- package/types/agents.js +0 -45
- package/types/agents.js.map +0 -1
- package/types/claude-history.d.ts +0 -62
- package/types/claude-history.d.ts.map +0 -1
- package/types/claude-history.js +0 -4
- package/types/claude-history.js.map +0 -1
- package/types/claude-versions.d.ts +0 -36
- package/types/claude-versions.d.ts.map +0 -1
- package/types/claude-versions.js +0 -3
- package/types/claude-versions.js.map +0 -1
- package/types/commands.d.ts +0 -50
- package/types/commands.d.ts.map +0 -1
- package/types/commands.js +0 -23
- package/types/commands.js.map +0 -1
- package/types/plugins.d.ts +0 -144
- package/types/plugins.d.ts.map +0 -1
- package/types/plugins.js +0 -8
- package/types/plugins.js.map +0 -1
- package/types/projects.d.ts +0 -46
- package/types/projects.d.ts.map +0 -1
- package/types/projects.js +0 -4
- package/types/projects.js.map +0 -1
- package/types/scheduledTasks.d.ts +0 -168
- package/types/scheduledTasks.d.ts.map +0 -1
- package/types/scheduledTasks.js +0 -17
- package/types/scheduledTasks.js.map +0 -1
- package/types/skills.d.ts +0 -91
- package/types/skills.d.ts.map +0 -1
- package/types/skills.js +0 -6
- package/types/skills.js.map +0 -1
- package/types/slack.d.ts +0 -97
- package/types/slack.d.ts.map +0 -1
- package/types/slack.js +0 -8
- package/types/slack.js.map +0 -1
- package/types/streaming.d.ts +0 -12
- package/types/streaming.d.ts.map +0 -1
- package/types/streaming.js +0 -8
- package/types/streaming.js.map +0 -1
- package/types/subagents.d.ts +0 -26
- package/types/subagents.d.ts.map +0 -1
- package/types/subagents.js +0 -3
- package/types/subagents.js.map +0 -1
- package/utils/__tests__/claudeUtils.test.d.ts +0 -5
- package/utils/__tests__/claudeUtils.test.d.ts.map +0 -1
- package/utils/__tests__/claudeUtils.test.js +0 -283
- package/utils/__tests__/claudeUtils.test.js.map +0 -1
- package/utils/__tests__/configResolver.test.d.ts +0 -7
- package/utils/__tests__/configResolver.test.d.ts.map +0 -1
- package/utils/__tests__/configResolver.test.js +0 -211
- package/utils/__tests__/configResolver.test.js.map +0 -1
- package/utils/__tests__/sessionUtils.test.d.ts +0 -5
- package/utils/__tests__/sessionUtils.test.d.ts.map +0 -1
- package/utils/__tests__/sessionUtils.test.js +0 -296
- package/utils/__tests__/sessionUtils.test.js.map +0 -1
- package/utils/agentCardCache.d.ts +0 -93
- package/utils/agentCardCache.d.ts.map +0 -1
- package/utils/agentCardCache.js +0 -212
- package/utils/agentCardCache.js.map +0 -1
- package/utils/claudeUtils.d.ts +0 -55
- package/utils/claudeUtils.d.ts.map +0 -1
- package/utils/claudeUtils.js +0 -355
- package/utils/claudeUtils.js.map +0 -1
- package/utils/configResolver.d.ts +0 -57
- package/utils/configResolver.d.ts.map +0 -1
- package/utils/configResolver.js +0 -130
- package/utils/configResolver.js.map +0 -1
- package/utils/fileUtils.d.ts +0 -2
- package/utils/fileUtils.d.ts.map +0 -1
- package/utils/fileUtils.js +0 -11
- package/utils/fileUtils.js.map +0 -1
- package/utils/jwt.d.ts +0 -30
- package/utils/jwt.d.ts.map +0 -1
- package/utils/jwt.js +0 -95
- package/utils/jwt.js.map +0 -1
- package/utils/networkUtils.d.ts +0 -25
- package/utils/networkUtils.d.ts.map +0 -1
- package/utils/networkUtils.js +0 -65
- package/utils/networkUtils.js.map +0 -1
- package/utils/sessionUtils.d.ts +0 -67
- package/utils/sessionUtils.d.ts.map +0 -1
- package/utils/sessionUtils.js +0 -296
- package/utils/sessionUtils.js.map +0 -1
- /package/{public → frontend/public}/cc-studio.png +0 -0
- /package/{public → frontend/public}/screenshot-chat.png +0 -0
- /package/{public → frontend/public}/screenshot-mcp.png +0 -0
- /package/{public → frontend/public}/vite.svg +0 -0
- /package/{public → frontend/public}/wechat-qr-code.png +0 -0
package/.dockerignore
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules
|
|
3
|
+
**/node_modules
|
|
4
|
+
npm-debug.log
|
|
5
|
+
pnpm-debug.log
|
|
6
|
+
yarn-error.log
|
|
7
|
+
|
|
8
|
+
# Build outputs (keep dist as we need it after build)
|
|
9
|
+
*.tsbuildinfo
|
|
10
|
+
**/*.tsbuildinfo
|
|
11
|
+
|
|
12
|
+
# Development files
|
|
13
|
+
.git
|
|
14
|
+
.gitignore
|
|
15
|
+
*.md
|
|
16
|
+
!CLAUDE.md
|
|
17
|
+
.env.local
|
|
18
|
+
.env.development
|
|
19
|
+
.env.test
|
|
20
|
+
|
|
21
|
+
# IDE
|
|
22
|
+
.vscode
|
|
23
|
+
.idea
|
|
24
|
+
*.swp
|
|
25
|
+
*.swo
|
|
26
|
+
*~
|
|
27
|
+
|
|
28
|
+
# OS
|
|
29
|
+
.DS_Store
|
|
30
|
+
Thumbs.db
|
|
31
|
+
|
|
32
|
+
# Test files
|
|
33
|
+
**/__tests__
|
|
34
|
+
**/*.test.ts
|
|
35
|
+
**/*.test.js
|
|
36
|
+
**/*.spec.ts
|
|
37
|
+
**/*.spec.js
|
|
38
|
+
coverage
|
|
39
|
+
|
|
40
|
+
# Docker
|
|
41
|
+
Dockerfile
|
|
42
|
+
.dockerignore
|
|
43
|
+
docker-compose.yml
|
|
44
|
+
|
|
45
|
+
# CI/CD
|
|
46
|
+
.github
|
|
47
|
+
.gitlab-ci.yml
|
|
48
|
+
|
|
49
|
+
# Misc
|
|
50
|
+
*.log
|
|
51
|
+
.cache
|
|
52
|
+
tmp
|
|
53
|
+
temp
|
package/.mcp.json
ADDED
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
AgentStudio is a modern web-based AI agent workspace platform built on Claude Agent SDK. It provides a professional interface for AI-powered content editing, code assistance, and task automation through specialized agents. The architecture features a React frontend with Node.js backend, using Server-Sent Events (SSE) for real-time streaming responses.
|
|
8
|
+
|
|
9
|
+
## Architecture
|
|
10
|
+
|
|
11
|
+
### Full-Stack Monorepo Structure
|
|
12
|
+
- **Root**: Shared package.json with pnpm workspaces
|
|
13
|
+
- **Frontend**: `@agentstudio/frontend` - React 19 + TypeScript + Vite + TailwindCSS
|
|
14
|
+
- **Backend**: `agentstudio-backend` - Node.js + Express + TypeScript + Claude Agent SDK
|
|
15
|
+
|
|
16
|
+
### Key Technologies
|
|
17
|
+
- **State Management**: Zustand (client state) + React Query (server state)
|
|
18
|
+
- **AI Integration**: @anthropic-ai/claude-agent-sdk with streaming responses
|
|
19
|
+
- **A2A Integration**: @a2a-js/sdk for agent-to-agent communication
|
|
20
|
+
- **Authentication**: JWT-based with bcrypt password hashing
|
|
21
|
+
- **Build Tools**: Vite (frontend), TSX (backend dev)
|
|
22
|
+
- **Testing**: Vitest + Testing Library + jsdom, Playwright for E2E
|
|
23
|
+
- **Styling**: TailwindCSS with component variants
|
|
24
|
+
- **Routing**: React Router DOM
|
|
25
|
+
- **I18n**: react-i18next (English, Chinese)
|
|
26
|
+
|
|
27
|
+
### Core Services Architecture
|
|
28
|
+
|
|
29
|
+
#### Backend Services (`backend/src/services/`)
|
|
30
|
+
- **sessionManager.ts**: Manages Claude sessions with persistent conversation history and automatic cleanup
|
|
31
|
+
- **schedulerService.ts**: Cron-based task scheduler for automated agent execution
|
|
32
|
+
- **agentStorage.ts**: Agent configuration management with file-based persistence
|
|
33
|
+
- **a2a/**: Agent-to-agent communication system
|
|
34
|
+
- `a2aClientTool.ts`: MCP tool for calling external A2A-compatible agents
|
|
35
|
+
- `apiKeyService.ts`: API key management for A2A authentication
|
|
36
|
+
- `taskManager.ts`: Async task lifecycle management
|
|
37
|
+
- **askUserQuestion/**: Multi-channel user interaction system
|
|
38
|
+
- Supports SSE, Slack, and custom notification channels
|
|
39
|
+
- Real-time question-answer flow during agent execution
|
|
40
|
+
- **pluginParser.ts**, **pluginInstaller.ts**: Plugin marketplace integration
|
|
41
|
+
- **projectMetadataStorage.ts**: Project-level configurations and agent associations
|
|
42
|
+
|
|
43
|
+
#### Frontend Architecture (`frontend/src/`)
|
|
44
|
+
- **stores/useAgentStore.ts**: Zustand store for agent chat state, messages, streaming
|
|
45
|
+
- **stores/useAppStore.ts**: Global application state (current slide, selection, etc.)
|
|
46
|
+
- **hooks/agentChat/useAIStreamHandler.ts**: SSE stream processing with 60fps RAF throttling
|
|
47
|
+
- **components/tools/**: Dynamic tool visualization components (22+ specialized tools)
|
|
48
|
+
- **components/AgentChatPanel.tsx**: Main AI conversation interface
|
|
49
|
+
- **types/**: TypeScript definitions mirrored in frontend and backend for type safety
|
|
50
|
+
|
|
51
|
+
### API Routes (`backend/src/routes/`)
|
|
52
|
+
- `/api/agents/*`: Agent CRUD and chat endpoints with SSE streaming
|
|
53
|
+
- `/api/sessions/*`: Session history and management
|
|
54
|
+
- `/api/a2a/*`: A2A agent discovery and streaming
|
|
55
|
+
- `/api/a2aManagement/*`: A2A configuration and API key management
|
|
56
|
+
- `/api/commands/*`: Slash command execution
|
|
57
|
+
- `/api/projects/*`: Project management and metadata
|
|
58
|
+
- `/api/mcp/*`: MCP server management and health checks
|
|
59
|
+
- `/api/plugins/*`: Plugin marketplace operations
|
|
60
|
+
- `/api/scheduledTasks/*`: Scheduled task CRUD and control
|
|
61
|
+
- `/api/files/*`: File system operations
|
|
62
|
+
- `/api/usage/*`: Usage statistics (daily, weekly, monthly, live)
|
|
63
|
+
|
|
64
|
+
### Agent-Based Architecture
|
|
65
|
+
|
|
66
|
+
The application uses a sophisticated multi-tier agent system:
|
|
67
|
+
|
|
68
|
+
1. **Built-in Agents**: Pre-configured agents (PPT Editor, Code Assistant, Document Writer)
|
|
69
|
+
2. **Custom Agents**: User-created agents with specific tools, permissions, and system prompts
|
|
70
|
+
3. **Subagents**: Nested AI agents with custom capabilities
|
|
71
|
+
4. **Project Commands**: Slash commands scoped to projects (defined in `types/commands.ts`)
|
|
72
|
+
|
|
73
|
+
**Agent Configuration Flow**:
|
|
74
|
+
- Types defined in both `frontend/src/types/agents.ts` and `backend/src/types/agents.ts`
|
|
75
|
+
- When updating agent types, changes must be mirrored in both locations
|
|
76
|
+
- Agent tools are configurable with individual permissions and path restrictions
|
|
77
|
+
|
|
78
|
+
### SSE Streaming Architecture
|
|
79
|
+
|
|
80
|
+
Real-time AI responses use Server-Sent Events with sophisticated state management:
|
|
81
|
+
|
|
82
|
+
**Backend** (`routes/agents.ts`):
|
|
83
|
+
- Creates SSE streams for each agent conversation
|
|
84
|
+
- Sends `stream_event` messages with content_block deltas
|
|
85
|
+
- Tracks session state in `sessionManager` with cleanup handlers
|
|
86
|
+
|
|
87
|
+
**Frontend** (`hooks/agentChat/useAIStreamHandler.ts`):
|
|
88
|
+
- Uses `StreamingState` ref to track active streaming blocks
|
|
89
|
+
- Implements RAF throttling (60fps) for UI updates
|
|
90
|
+
- Accumulates incremental JSON fragments for tool inputs
|
|
91
|
+
- Maps streaming blocks to message parts for real-time display
|
|
92
|
+
|
|
93
|
+
**Critical**: Tool input JSON in SSE streams is INCREMENTAL. When handling `input_json_delta`, accumulate with `+=`, not replace with `=`. Only parse when JSON appears complete (ends with `}`).
|
|
94
|
+
|
|
95
|
+
## Development Commands
|
|
96
|
+
|
|
97
|
+
### Package Manager
|
|
98
|
+
Uses **pnpm workspaces**. Workspace names:
|
|
99
|
+
- Frontend: `@agentstudio/frontend`
|
|
100
|
+
- Backend: `agentstudio-backend`
|
|
101
|
+
|
|
102
|
+
### Common Commands
|
|
103
|
+
```bash
|
|
104
|
+
# Development
|
|
105
|
+
pnpm run dev # Start both frontend (3000) and backend (4936)
|
|
106
|
+
pnpm run dev:frontend # Frontend only
|
|
107
|
+
pnpm run dev:backend # Backend only
|
|
108
|
+
|
|
109
|
+
# Building
|
|
110
|
+
pnpm run build # Build both frontend and backend
|
|
111
|
+
pnpm run build:frontend # Frontend only
|
|
112
|
+
pnpm run build:backend # Backend only
|
|
113
|
+
|
|
114
|
+
# Testing (individual workspaces)
|
|
115
|
+
cd frontend && pnpm test # Watch mode
|
|
116
|
+
cd frontend && pnpm run test:run # Run once
|
|
117
|
+
cd backend && pnpm test # Watch mode
|
|
118
|
+
cd backend && pnpm run test:run # Run once
|
|
119
|
+
|
|
120
|
+
# Code Quality
|
|
121
|
+
pnpm run lint # Lint all workspaces
|
|
122
|
+
pnpm run type-check # TypeScript check all workspaces
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Single Test Execution
|
|
126
|
+
```bash
|
|
127
|
+
# Frontend
|
|
128
|
+
cd frontend && pnpm test path/to/test.test.ts
|
|
129
|
+
|
|
130
|
+
# Backend (use vitest run to avoid watch mode)
|
|
131
|
+
cd backend && npx vitest run path/to/test.test.ts
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Important Development Patterns
|
|
135
|
+
|
|
136
|
+
### SSE Streaming Implementation
|
|
137
|
+
When working with streaming responses in `useAIStreamHandler.ts`:
|
|
138
|
+
|
|
139
|
+
1. **JSON Accumulation**: Always use `+=` for `partial_json` fragments
|
|
140
|
+
```typescript
|
|
141
|
+
streamingBlock.content += partialJsonFragment; // Correct
|
|
142
|
+
// streamingBlock.content = partialJsonFragment; // WRONG - loses data
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
2. **Parse on Complete**: Only parse when JSON looks complete
|
|
146
|
+
```typescript
|
|
147
|
+
const trimmed = accumulatedJson.trim();
|
|
148
|
+
if (trimmed.endsWith('}')) {
|
|
149
|
+
const toolInput = JSON.parse(accumulatedJson);
|
|
150
|
+
updateToolPartInMessage(messageId, partId, { toolInput });
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
3. **Final Parse**: Always parse on `content_block_stop` to capture complete parameters
|
|
155
|
+
|
|
156
|
+
### Type Synchronization
|
|
157
|
+
Types are maintained in BOTH frontend and backend:
|
|
158
|
+
- `frontend/src/types/agents.ts` ↔ `backend/src/types/agents.ts`
|
|
159
|
+
- `frontend/src/types/commands.ts` ↔ `backend/src/types/commands.ts`
|
|
160
|
+
- `frontend/src/types/subagents.ts` ↔ `backend/src/types/subagents.ts`
|
|
161
|
+
- `frontend/src/types/a2a.ts` ↔ `backend/src/types/a2a.ts`
|
|
162
|
+
|
|
163
|
+
When updating types, update BOTH locations to maintain type safety.
|
|
164
|
+
|
|
165
|
+
### Tool Component Development
|
|
166
|
+
Tool visualization components in `frontend/src/components/tools/`:
|
|
167
|
+
- Extend `BaseToolComponent` for consistent styling
|
|
168
|
+
- Set `hideToolName={false}` explicitly for tool name display
|
|
169
|
+
- Use `useTranslation('components')` for i18n
|
|
170
|
+
- Handle loading, executing, and completed states
|
|
171
|
+
|
|
172
|
+
### Agent Context Building
|
|
173
|
+
Agents receive context from multiple sources:
|
|
174
|
+
- Project files and metadata
|
|
175
|
+
- Session history
|
|
176
|
+
- MCP server capabilities
|
|
177
|
+
- Custom context builders (defined in agent config)
|
|
178
|
+
|
|
179
|
+
### Session Management
|
|
180
|
+
Sessions track conversation state per agent:
|
|
181
|
+
- `sessionManager.ts` handles session lifecycle
|
|
182
|
+
- Automatic title generation from first message
|
|
183
|
+
- Cleanup on disconnect with configurable timeout
|
|
184
|
+
- Support for both persistent and temporary sessions
|
|
185
|
+
|
|
186
|
+
### Plugin System
|
|
187
|
+
Plugins extend AgentStudio with:
|
|
188
|
+
- **Agents**: Pre-configured AI agents
|
|
189
|
+
- **Commands**: Slash commands for quick actions
|
|
190
|
+
- **Skills**: Reusable code snippets
|
|
191
|
+
- **MCP Servers**: Tool integrations
|
|
192
|
+
|
|
193
|
+
Plugins are installed from marketplaces and symlinked into the project.
|
|
194
|
+
|
|
195
|
+
### Internationalization
|
|
196
|
+
All user-facing text must use i18n:
|
|
197
|
+
```typescript
|
|
198
|
+
import { useTranslation } from 'react-i18next';
|
|
199
|
+
const { t } = useTranslation('components');
|
|
200
|
+
t('toolRenderer.executing'); // Never hardcode strings
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Translation files: `frontend/src/i18n/locales/{locale}/pages.json`
|
|
204
|
+
|
|
205
|
+
## Environment Configuration
|
|
206
|
+
|
|
207
|
+
Backend `.env` file (`backend/.env`):
|
|
208
|
+
```env
|
|
209
|
+
# AI Provider (choose one)
|
|
210
|
+
OPENAI_API_KEY=your_key_here
|
|
211
|
+
ANTHROPIC_API_KEY=your_key_here
|
|
212
|
+
|
|
213
|
+
# Server
|
|
214
|
+
PORT=4936
|
|
215
|
+
NODE_ENV=development
|
|
216
|
+
|
|
217
|
+
# File System
|
|
218
|
+
SLIDES_DIR=../slides # Relative to backend/src
|
|
219
|
+
|
|
220
|
+
# CORS (optional)
|
|
221
|
+
CORS_ORIGINS=https://your-frontend.vercel.app
|
|
222
|
+
|
|
223
|
+
# Telemetry (optional, disabled by default)
|
|
224
|
+
TELEMETRY_ENABLED=false
|
|
225
|
+
POSTHOG_API_KEY=phc_your_api_key_here
|
|
226
|
+
POSTHOG_HOST=https://app.posthog.com
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Frontend `.env` file (`frontend/.env`):
|
|
230
|
+
```env
|
|
231
|
+
# Telemetry (optional, uses PostHog)
|
|
232
|
+
VITE_POSTHOG_API_KEY=phc_your_api_key_here
|
|
233
|
+
VITE_POSTHOG_HOST=https://app.posthog.com
|
|
234
|
+
VITE_APP_VERSION=0.2.0
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Git Workflow
|
|
238
|
+
|
|
239
|
+
### Commit Messages
|
|
240
|
+
- Write clear, concise commit messages
|
|
241
|
+
- **DO NOT** include Claude Code signatures or Co-Authored-By tags
|
|
242
|
+
- Follow conventional commit format: `feat:`, `fix:`, `refactor:`, etc.
|
|
243
|
+
- Focus on what changed and why
|
|
244
|
+
|
|
245
|
+
### Pre-Commit Hook
|
|
246
|
+
The project has a pre-commit hook that runs:
|
|
247
|
+
1. Incremental lint on staged files
|
|
248
|
+
2. TypeScript type checking
|
|
249
|
+
3. Build verification
|
|
250
|
+
4. Tests (if available)
|
|
251
|
+
|
|
252
|
+
If tests fail due to pre-existing issues (not your changes), use `git commit --no-verify` to skip the hook.
|
|
253
|
+
|
|
254
|
+
### Development Workflow
|
|
255
|
+
Small tasks (≤3 files, <30 min): Work directly on main
|
|
256
|
+
Medium/Large features: Use git worktree for isolation
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# Create worktree for feature
|
|
260
|
+
git checkout -b feature-name
|
|
261
|
+
git worktree add ../agentstudio-feature-name feature-name
|
|
262
|
+
cd ../agentstudio-feature-name
|
|
263
|
+
pnpm install && pnpm run dev
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## Testing Strategy
|
|
267
|
+
|
|
268
|
+
### Backend Tests
|
|
269
|
+
- Vitest with test files co-located in `__tests__/` directories
|
|
270
|
+
- Integration tests for routes, services, and A2A functionality
|
|
271
|
+
- Mock SSE streams for testing streaming behavior
|
|
272
|
+
- Some tests in `agents.test.ts` are currently failing (pre-existing issues)
|
|
273
|
+
|
|
274
|
+
### Frontend Tests
|
|
275
|
+
- Vitest + Testing Library with jsdom environment
|
|
276
|
+
- Component tests for tools and UI elements
|
|
277
|
+
- Hook tests for React Query and Zustand stores
|
|
278
|
+
- Run with `cd frontend && pnpm test`
|
|
279
|
+
|
|
280
|
+
### E2E Tests
|
|
281
|
+
- Playwright for full user flow testing
|
|
282
|
+
- Tests in `frontend/e2e/` directory
|
|
283
|
+
|
|
284
|
+
## Deployment
|
|
285
|
+
|
|
286
|
+
### Vercel Deployment
|
|
287
|
+
Frontend deploys to Vercel with `vercel.json` configuration:
|
|
288
|
+
- Automatic build via `pnpm --filter frontend run build`
|
|
289
|
+
- SPA routing with rewrites
|
|
290
|
+
- Static asset caching
|
|
291
|
+
|
|
292
|
+
### Backend Deployment
|
|
293
|
+
Backend can be deployed as:
|
|
294
|
+
- System service (Linux/macOS)
|
|
295
|
+
- Docker container (all-in-one with frontend)
|
|
296
|
+
- Any Node.js hosting platform with CORS configured
|
|
297
|
+
|
|
298
|
+
### API Configuration
|
|
299
|
+
Frontend uses dynamic API configuration:
|
|
300
|
+
- Development: Auto-detects `http://127.0.0.1:4936`
|
|
301
|
+
- Production: User-configurable via `/settings/api`
|
|
302
|
+
- Persistent storage via LocalStorage
|
|
303
|
+
|
|
304
|
+
## Common Issues
|
|
305
|
+
|
|
306
|
+
### SSE Streaming Not Working
|
|
307
|
+
- Check browser console for connection errors
|
|
308
|
+
- Verify backend PORT matches frontend API_BASE
|
|
309
|
+
- Ensure CORS allows frontend origin
|
|
310
|
+
|
|
311
|
+
### Tool Input Display Corruption
|
|
312
|
+
- Verify JSON accumulation uses `+=` not `=`
|
|
313
|
+
- Check for final parse on `content_block_stop`
|
|
314
|
+
- Review `useAIStreamHandler.ts` implementation
|
|
315
|
+
|
|
316
|
+
### Type Errors After Changes
|
|
317
|
+
- Ensure types are updated in BOTH frontend and backend
|
|
318
|
+
- Run `pnpm run type-check` to verify
|
|
319
|
+
- Check import paths use `.js` extensions for ESM
|
|
320
|
+
|
|
321
|
+
### Session Cleanup Issues
|
|
322
|
+
- Sessions may get stuck in pending state
|
|
323
|
+
- Use `manualCleanupSession()` to force cleanup
|
|
324
|
+
- Check `sessionManager.ts` logs for cleanup errors
|
|
325
|
+
|
|
326
|
+
## Debugging & Testing
|
|
327
|
+
|
|
328
|
+
### Generate JWT Token for API Testing
|
|
329
|
+
When testing authenticated API endpoints manually (e.g., scheduled tasks), generate a JWT token:
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
# Generate a new JWT token (valid for 7 days by default)
|
|
333
|
+
cd /Users/kongjie/slides/ai-editor
|
|
334
|
+
node -e "require('./backend/dist/utils/jwt').generateToken().then(console.log)"
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
Then use the token in API calls:
|
|
338
|
+
|
|
339
|
+
```bash
|
|
340
|
+
# Example: Manually trigger a scheduled task
|
|
341
|
+
curl -X POST "http://127.0.0.1:4936/api/scheduled-tasks/<task_id>/run" \
|
|
342
|
+
-H "Authorization: Bearer <YOUR_TOKEN>"
|
|
343
|
+
|
|
344
|
+
# Example: Get task execution history
|
|
345
|
+
curl "http://127.0.0.1:4936/api/scheduled-tasks/<task_id>/history?limit=5" \
|
|
346
|
+
-H "Authorization: Bearer <YOUR_TOKEN>"
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### Test Claude CLI Directly
|
|
350
|
+
To verify Claude Code CLI is working:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
cd /path/to/project
|
|
354
|
+
echo "Say OK" | claude --print --dangerously-skip-permissions
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### Scheduled Task Model Compatibility
|
|
358
|
+
- **Claude models** (sonnet, haiku, opus): Fully compatible with `bypassPermissions` mode
|
|
359
|
+
- **GLM models**: May require testing - check `schedulerService.ts` for compatibility logic
|
package/DOCKER.md
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
# Docker Deployment Guide
|
|
2
|
+
|
|
3
|
+
AgentStudio can be deployed as a single Docker container that includes both the frontend and backend.
|
|
4
|
+
|
|
5
|
+
## Building the Docker Image
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
docker build -t agentstudio:latest .
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
This will build a complete image containing:
|
|
12
|
+
- Frontend (React + Vite)
|
|
13
|
+
- Backend (Node.js + Express)
|
|
14
|
+
- All dependencies and configurations
|
|
15
|
+
|
|
16
|
+
## Running with Docker Compose (Recommended)
|
|
17
|
+
|
|
18
|
+
1. **Create environment file** (optional):
|
|
19
|
+
```bash
|
|
20
|
+
cp backend/.env.example backend/.env
|
|
21
|
+
# Edit backend/.env and add your API keys
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
2. **Start the service**:
|
|
25
|
+
```bash
|
|
26
|
+
docker-compose up -d
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
3. **Access the application**:
|
|
30
|
+
- Open browser: http://localhost:4936
|
|
31
|
+
- The frontend and API are both served from the same port
|
|
32
|
+
|
|
33
|
+
4. **Check logs**:
|
|
34
|
+
```bash
|
|
35
|
+
docker-compose logs -f agentstudio
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
5. **Stop the service**:
|
|
39
|
+
```bash
|
|
40
|
+
docker-compose down
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Running with Docker directly
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
docker run -d \
|
|
47
|
+
--name agentstudio \
|
|
48
|
+
-p 4936:4936 \
|
|
49
|
+
-e ANTHROPIC_API_KEY=your_key_here \
|
|
50
|
+
-v agentstudio_data:/app/data \
|
|
51
|
+
agentstudio:latest
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Then open http://localhost:4936 in your browser.
|
|
55
|
+
|
|
56
|
+
## Environment Variables
|
|
57
|
+
|
|
58
|
+
| Variable | Description | Required |
|
|
59
|
+
|----------|-------------|----------|
|
|
60
|
+
| `ANTHROPIC_API_KEY` | Anthropic API key for Claude models | Optional* |
|
|
61
|
+
| `OPENAI_API_KEY` | OpenAI API key | Optional* |
|
|
62
|
+
| `PORT` | Backend port (default: 4936) | No |
|
|
63
|
+
| `NODE_ENV` | Environment mode | No |
|
|
64
|
+
|
|
65
|
+
*At least one AI provider API key is required.
|
|
66
|
+
|
|
67
|
+
## Volume Mounts
|
|
68
|
+
|
|
69
|
+
- `/app/data`: Directory for agent configurations, session data, and other persistent files
|
|
70
|
+
|
|
71
|
+
**Important**: The `/app/data` volume ensures your data persists across container restarts and updates.
|
|
72
|
+
|
|
73
|
+
## Health Check
|
|
74
|
+
|
|
75
|
+
The container includes a health check endpoint at `/api/health` that runs every 30 seconds.
|
|
76
|
+
|
|
77
|
+
Check container health:
|
|
78
|
+
```bash
|
|
79
|
+
docker ps
|
|
80
|
+
# Look for "healthy" status
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Accessing the Application
|
|
84
|
+
|
|
85
|
+
Once running, AgentStudio will be available at:
|
|
86
|
+
- **Frontend**: http://localhost (port 80)
|
|
87
|
+
- **API**: http://localhost/api (proxied by nginx) or http://localhost:4936/api (direct)
|
|
88
|
+
- **Health check**: http://localhost:4936/api/health
|
|
89
|
+
|
|
90
|
+
The frontend is served by nginx on port 80, and the backend API runs on port 4936. Nginx proxies `/api/*` requests to the backend automatically.
|
|
91
|
+
|
|
92
|
+
## Troubleshooting
|
|
93
|
+
|
|
94
|
+
### Build fails with TypeScript errors
|
|
95
|
+
|
|
96
|
+
Clean the project and rebuild:
|
|
97
|
+
```bash
|
|
98
|
+
# Clean build artifacts
|
|
99
|
+
find . -name "*.tsbuildinfo" -delete
|
|
100
|
+
rm -rf shared/dist backend/dist
|
|
101
|
+
|
|
102
|
+
# Rebuild
|
|
103
|
+
docker build -t agentstudio-backend:latest .
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Container exits immediately
|
|
107
|
+
|
|
108
|
+
Check logs for errors:
|
|
109
|
+
```bash
|
|
110
|
+
docker logs agentstudio-backend
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Common issues:
|
|
114
|
+
- Missing API keys
|
|
115
|
+
- Port 4936 already in use
|
|
116
|
+
- Invalid .env file
|
|
117
|
+
|
|
118
|
+
### Port already in use
|
|
119
|
+
|
|
120
|
+
Change the port mapping in docker-compose.yml:
|
|
121
|
+
```yaml
|
|
122
|
+
ports:
|
|
123
|
+
- "5000:4936" # Use port 5000 instead
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Data Persistence
|
|
127
|
+
|
|
128
|
+
### How Docker Container Data Works
|
|
129
|
+
|
|
130
|
+
**Container Stop/Start** (data is preserved):
|
|
131
|
+
```bash
|
|
132
|
+
docker stop agentstudio # Stop the container
|
|
133
|
+
docker start agentstudio # Start it again - all data is still there
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Container Removal** (data is lost without volumes):
|
|
137
|
+
```bash
|
|
138
|
+
docker rm agentstudio # ⚠️ This deletes the container and its data
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Using Volumes** (recommended - data persists):
|
|
142
|
+
- The docker-compose.yml file already configures a volume at `/app/data`
|
|
143
|
+
- Data is stored on the host machine
|
|
144
|
+
- Survives container removal and updates
|
|
145
|
+
- Can be backed up separately
|
|
146
|
+
|
|
147
|
+
### Backing Up Data
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Backup volume data
|
|
151
|
+
docker run --rm -v agentstudio_data:/data -v $(pwd):/backup ubuntu tar czf /backup/agentstudio-backup.tar.gz -C /data .
|
|
152
|
+
|
|
153
|
+
# Restore volume data
|
|
154
|
+
docker run --rm -v agentstudio_data:/data -v $(pwd):/backup ubuntu tar xzf /backup/agentstudio-backup.tar.gz -C /data
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Production Deployment
|
|
158
|
+
|
|
159
|
+
For production deployments:
|
|
160
|
+
|
|
161
|
+
1. **Use specific image tags**:
|
|
162
|
+
```bash
|
|
163
|
+
docker build -t agentstudio:v1.0.0 .
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
2. **Set resource limits** in docker-compose.yml:
|
|
167
|
+
```yaml
|
|
168
|
+
services:
|
|
169
|
+
agentstudio:
|
|
170
|
+
deploy:
|
|
171
|
+
resources:
|
|
172
|
+
limits:
|
|
173
|
+
cpus: '2'
|
|
174
|
+
memory: 2G
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
3. **Use secrets for API keys**:
|
|
178
|
+
```yaml
|
|
179
|
+
services:
|
|
180
|
+
agentstudio:
|
|
181
|
+
secrets:
|
|
182
|
+
- anthropic_api_key
|
|
183
|
+
|
|
184
|
+
secrets:
|
|
185
|
+
anthropic_api_key:
|
|
186
|
+
external: true
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
4. **Enable logging**:
|
|
190
|
+
```yaml
|
|
191
|
+
services:
|
|
192
|
+
agentstudio:
|
|
193
|
+
logging:
|
|
194
|
+
driver: "json-file"
|
|
195
|
+
options:
|
|
196
|
+
max-size: "10m"
|
|
197
|
+
max-file: "3"
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Updating the Application
|
|
201
|
+
|
|
202
|
+
1. Pull latest changes from git
|
|
203
|
+
2. Rebuild the image:
|
|
204
|
+
```bash
|
|
205
|
+
docker build -t agentstudio:latest .
|
|
206
|
+
```
|
|
207
|
+
3. Restart the service (data will be preserved):
|
|
208
|
+
```bash
|
|
209
|
+
docker-compose down
|
|
210
|
+
docker-compose up -d
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Cleaning Up
|
|
214
|
+
|
|
215
|
+
Remove containers, images, and volumes:
|
|
216
|
+
```bash
|
|
217
|
+
# Stop and remove containers (data in volumes is preserved)
|
|
218
|
+
docker-compose down
|
|
219
|
+
|
|
220
|
+
# Remove the image
|
|
221
|
+
docker rmi agentstudio:latest
|
|
222
|
+
|
|
223
|
+
# Remove volumes (⚠️ This deletes all data permanently!)
|
|
224
|
+
docker volume rm agentstudio_data
|
|
225
|
+
|
|
226
|
+
# Complete cleanup (everything)
|
|
227
|
+
docker-compose down -v
|
|
228
|
+
docker rmi agentstudio:latest
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Architecture
|
|
232
|
+
|
|
233
|
+
The Docker container runs two services:
|
|
234
|
+
- **Nginx**: Serves the React frontend and proxies API requests
|
|
235
|
+
- **Node.js Backend**: Handles API requests and manages data
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
┌─────────────────────────────────────────────┐
|
|
239
|
+
│ Docker Container │
|
|
240
|
+
│ │
|
|
241
|
+
│ ┌────────────────────────────────────────┐ │
|
|
242
|
+
│ │ Nginx (port 80) │ │
|
|
243
|
+
│ │ - Serves frontend static files │ │
|
|
244
|
+
│ │ - Proxies /api/* to backend │ │
|
|
245
|
+
│ └────────────────────────────────────────┘ │
|
|
246
|
+
│ │ │
|
|
247
|
+
│ │ proxy /api/* │
|
|
248
|
+
│ ↓ │
|
|
249
|
+
│ ┌────────────────────────────────────────┐ │
|
|
250
|
+
│ │ Backend (port 4936) │ │
|
|
251
|
+
│ │ - Express API server │ │
|
|
252
|
+
│ │ - Manages authentication & sessions │ │
|
|
253
|
+
│ └────────────────────────────────────────┘ │
|
|
254
|
+
│ │ │
|
|
255
|
+
│ ↓ │
|
|
256
|
+
│ ┌────────────────────────────────────────┐ │
|
|
257
|
+
│ │ Persistent Volume (/app/data) │ │
|
|
258
|
+
│ │ - Agent configurations │ │
|
|
259
|
+
│ │ - Session data │ │
|
|
260
|
+
│ │ - Application state │ │
|
|
261
|
+
│ └────────────────────────────────────────┘ │
|
|
262
|
+
└─────────────────────────────────────────────┘
|
|
263
|
+
↑ ↑
|
|
264
|
+
Port 80 Port 4936
|
|
265
|
+
(Frontend) (API - optional)
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**Access Points:**
|
|
269
|
+
- Port 80: Frontend UI (recommended for users)
|
|
270
|
+
- Port 4936: Backend API (optional, for direct API access)
|