@aion0/forge 0.5.25 → 0.5.26
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/.forge/memory/graph.json +1 -0
- package/.forge/memory/knowledge.json +18 -0
- package/.forge/memory/meta.json +7 -0
- package/.forge/worktrees/pipeline-0a33c50d/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-0a33c50d/README.md +136 -0
- package/.forge/worktrees/pipeline-0a33c50d/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-0a33c50d/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-0a33c50d/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-0a33c50d/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-0a33c50d/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-0a33c50d/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-0a33c50d/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-0a33c50d/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-0a33c50d/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-0a33c50d/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-0a33c50d/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-0a33c50d/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-0a33c50d/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-0a33c50d/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-0a33c50d/install.sh +29 -0
- package/.forge/worktrees/pipeline-0a33c50d/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/claude-process.ts +352 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/pipeline.ts +1438 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-0a33c50d/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-0a33c50d/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-0a33c50d/package.json +74 -0
- package/.forge/worktrees/pipeline-0a33c50d/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-0a33c50d/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-0a33c50d/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-0a33c50d/publish.sh +133 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-0a33c50d/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-0a33c50d/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-0a33c50d/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-0a33c50d/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-0a33c50d/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-0a33c50d/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-0a33c50d/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-0a33c50d/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-0a33c50d/start.sh +31 -0
- package/.forge/worktrees/pipeline-0a33c50d/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-0a33c50d/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-2ba01c10/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-2ba01c10/README.md +136 -0
- package/.forge/worktrees/pipeline-2ba01c10/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-2ba01c10/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-2ba01c10/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-2ba01c10/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-2ba01c10/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-2ba01c10/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-2ba01c10/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-2ba01c10/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-2ba01c10/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-2ba01c10/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-2ba01c10/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-2ba01c10/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-2ba01c10/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-2ba01c10/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-2ba01c10/install.sh +29 -0
- package/.forge/worktrees/pipeline-2ba01c10/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/claude-process.ts +352 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/pipeline.ts +1438 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-2ba01c10/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-2ba01c10/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-2ba01c10/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-2ba01c10/package.json +74 -0
- package/.forge/worktrees/pipeline-2ba01c10/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-2ba01c10/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-2ba01c10/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-2ba01c10/publish.sh +133 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-2ba01c10/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-2ba01c10/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-2ba01c10/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-2ba01c10/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-2ba01c10/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-2ba01c10/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-2ba01c10/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-2ba01c10/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-2ba01c10/start.sh +31 -0
- package/.forge/worktrees/pipeline-2ba01c10/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-2ba01c10/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-3156a8b3/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-3156a8b3/README.md +136 -0
- package/.forge/worktrees/pipeline-3156a8b3/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-3156a8b3/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-3156a8b3/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-3156a8b3/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-3156a8b3/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-3156a8b3/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-3156a8b3/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-3156a8b3/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-3156a8b3/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-3156a8b3/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-3156a8b3/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-3156a8b3/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-3156a8b3/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-3156a8b3/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-3156a8b3/install.sh +29 -0
- package/.forge/worktrees/pipeline-3156a8b3/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/claude-process.ts +351 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/pipeline.ts +1441 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-3156a8b3/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-3156a8b3/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-3156a8b3/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-3156a8b3/package.json +74 -0
- package/.forge/worktrees/pipeline-3156a8b3/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-3156a8b3/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-3156a8b3/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-3156a8b3/publish.sh +133 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-3156a8b3/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-3156a8b3/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-3156a8b3/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-3156a8b3/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-3156a8b3/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-3156a8b3/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-3156a8b3/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-3156a8b3/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-3156a8b3/start.sh +31 -0
- package/.forge/worktrees/pipeline-3156a8b3/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-3156a8b3/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-316c6574/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-316c6574/README.md +136 -0
- package/.forge/worktrees/pipeline-316c6574/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-316c6574/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-316c6574/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-316c6574/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-316c6574/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-316c6574/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-316c6574/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-316c6574/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-316c6574/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-316c6574/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-316c6574/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-316c6574/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-316c6574/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-316c6574/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-316c6574/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-316c6574/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-316c6574/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-316c6574/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-316c6574/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-316c6574/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-316c6574/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-316c6574/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-316c6574/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-316c6574/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-316c6574/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-316c6574/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-316c6574/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-316c6574/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-316c6574/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-316c6574/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-316c6574/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-316c6574/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-316c6574/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-316c6574/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-316c6574/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-316c6574/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-316c6574/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-316c6574/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-316c6574/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-316c6574/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-316c6574/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-316c6574/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-316c6574/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-316c6574/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-316c6574/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-316c6574/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-316c6574/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-316c6574/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-316c6574/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-316c6574/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-316c6574/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-316c6574/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-316c6574/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-316c6574/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-316c6574/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-316c6574/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-316c6574/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-316c6574/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-316c6574/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-316c6574/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-316c6574/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-316c6574/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-316c6574/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-316c6574/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-316c6574/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-316c6574/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-316c6574/install.sh +29 -0
- package/.forge/worktrees/pipeline-316c6574/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-316c6574/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-316c6574/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-316c6574/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-316c6574/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-316c6574/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-316c6574/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-316c6574/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-316c6574/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-316c6574/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-316c6574/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-316c6574/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-316c6574/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-316c6574/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-316c6574/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-316c6574/lib/claude-process.ts +361 -0
- package/.forge/worktrees/pipeline-316c6574/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-316c6574/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-316c6574/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-316c6574/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-316c6574/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-316c6574/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-316c6574/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-316c6574/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-316c6574/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-316c6574/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-316c6574/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-316c6574/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-316c6574/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-316c6574/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-316c6574/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-316c6574/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-316c6574/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-316c6574/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-316c6574/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-316c6574/lib/pipeline.ts +1441 -0
- package/.forge/worktrees/pipeline-316c6574/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-316c6574/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-316c6574/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-316c6574/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-316c6574/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-316c6574/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-316c6574/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-316c6574/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-316c6574/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-316c6574/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-316c6574/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-316c6574/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-316c6574/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-316c6574/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-316c6574/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-316c6574/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-316c6574/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-316c6574/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-316c6574/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-316c6574/package.json +74 -0
- package/.forge/worktrees/pipeline-316c6574/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-316c6574/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-316c6574/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-316c6574/publish.sh +133 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-316c6574/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-316c6574/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-316c6574/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-316c6574/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-316c6574/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-316c6574/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-316c6574/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-316c6574/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-316c6574/start.sh +31 -0
- package/.forge/worktrees/pipeline-316c6574/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-316c6574/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-44a94121/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-44a94121/README.md +136 -0
- package/.forge/worktrees/pipeline-44a94121/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-44a94121/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-44a94121/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-44a94121/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-44a94121/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-44a94121/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-44a94121/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-44a94121/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-44a94121/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-44a94121/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-44a94121/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-44a94121/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-44a94121/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-44a94121/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-44a94121/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-44a94121/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-44a94121/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-44a94121/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-44a94121/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-44a94121/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-44a94121/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-44a94121/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-44a94121/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-44a94121/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-44a94121/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-44a94121/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-44a94121/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-44a94121/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-44a94121/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-44a94121/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-44a94121/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-44a94121/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-44a94121/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-44a94121/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-44a94121/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-44a94121/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-44a94121/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-44a94121/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-44a94121/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-44a94121/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-44a94121/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-44a94121/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-44a94121/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-44a94121/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-44a94121/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-44a94121/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-44a94121/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-44a94121/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-44a94121/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-44a94121/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-44a94121/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-44a94121/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-44a94121/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-44a94121/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-44a94121/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-44a94121/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-44a94121/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-44a94121/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-44a94121/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-44a94121/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-44a94121/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-44a94121/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-44a94121/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-44a94121/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-44a94121/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-44a94121/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-44a94121/install.sh +29 -0
- package/.forge/worktrees/pipeline-44a94121/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-44a94121/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-44a94121/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-44a94121/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-44a94121/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-44a94121/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-44a94121/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-44a94121/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-44a94121/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-44a94121/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-44a94121/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-44a94121/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-44a94121/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-44a94121/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-44a94121/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-44a94121/lib/claude-process.ts +351 -0
- package/.forge/worktrees/pipeline-44a94121/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-44a94121/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-44a94121/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-44a94121/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-44a94121/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-44a94121/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-44a94121/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-44a94121/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-44a94121/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-44a94121/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-44a94121/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-44a94121/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-44a94121/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-44a94121/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-44a94121/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-44a94121/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-44a94121/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-44a94121/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-44a94121/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-44a94121/lib/pipeline.ts +1441 -0
- package/.forge/worktrees/pipeline-44a94121/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-44a94121/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-44a94121/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-44a94121/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-44a94121/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-44a94121/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-44a94121/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-44a94121/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-44a94121/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-44a94121/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-44a94121/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-44a94121/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-44a94121/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-44a94121/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-44a94121/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-44a94121/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-44a94121/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-44a94121/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-44a94121/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-44a94121/package.json +74 -0
- package/.forge/worktrees/pipeline-44a94121/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-44a94121/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-44a94121/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-44a94121/publish.sh +133 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-44a94121/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-44a94121/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-44a94121/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-44a94121/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-44a94121/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-44a94121/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-44a94121/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-44a94121/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-44a94121/start.sh +31 -0
- package/.forge/worktrees/pipeline-44a94121/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-44a94121/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-d1757a50/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-d1757a50/README.md +136 -0
- package/.forge/worktrees/pipeline-d1757a50/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-d1757a50/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-d1757a50/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-d1757a50/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-d1757a50/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-d1757a50/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-d1757a50/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-d1757a50/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-d1757a50/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-d1757a50/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-d1757a50/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-d1757a50/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-d1757a50/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-d1757a50/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-d1757a50/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-d1757a50/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-d1757a50/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-d1757a50/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-d1757a50/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-d1757a50/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-d1757a50/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-d1757a50/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-d1757a50/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-d1757a50/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-d1757a50/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-d1757a50/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-d1757a50/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-d1757a50/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-d1757a50/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-d1757a50/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-d1757a50/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-d1757a50/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-d1757a50/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-d1757a50/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-d1757a50/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-d1757a50/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-d1757a50/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-d1757a50/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-d1757a50/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-d1757a50/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-d1757a50/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-d1757a50/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-d1757a50/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-d1757a50/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-d1757a50/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-d1757a50/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-d1757a50/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-d1757a50/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-d1757a50/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-d1757a50/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-d1757a50/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-d1757a50/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-d1757a50/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-d1757a50/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-d1757a50/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-d1757a50/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-d1757a50/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-d1757a50/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-d1757a50/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-d1757a50/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-d1757a50/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-d1757a50/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-d1757a50/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-d1757a50/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-d1757a50/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-d1757a50/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-d1757a50/install.sh +29 -0
- package/.forge/worktrees/pipeline-d1757a50/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/claude-process.ts +361 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/pipeline.ts +1441 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-d1757a50/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-d1757a50/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-d1757a50/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-d1757a50/package.json +74 -0
- package/.forge/worktrees/pipeline-d1757a50/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-d1757a50/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-d1757a50/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-d1757a50/publish.sh +133 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-d1757a50/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-d1757a50/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-d1757a50/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-d1757a50/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-d1757a50/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-d1757a50/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-d1757a50/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-d1757a50/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-d1757a50/start.sh +31 -0
- package/.forge/worktrees/pipeline-d1757a50/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-d1757a50/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-d59c2fe2/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-d59c2fe2/README.md +136 -0
- package/.forge/worktrees/pipeline-d59c2fe2/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-d59c2fe2/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-d59c2fe2/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-d59c2fe2/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-d59c2fe2/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-d59c2fe2/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-d59c2fe2/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-d59c2fe2/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-d59c2fe2/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-d59c2fe2/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-d59c2fe2/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-d59c2fe2/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-d59c2fe2/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-d59c2fe2/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-d59c2fe2/install.sh +29 -0
- package/.forge/worktrees/pipeline-d59c2fe2/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/claude-process.ts +361 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/pipeline.ts +1441 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-d59c2fe2/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-d59c2fe2/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-d59c2fe2/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-d59c2fe2/package.json +74 -0
- package/.forge/worktrees/pipeline-d59c2fe2/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-d59c2fe2/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-d59c2fe2/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-d59c2fe2/publish.sh +133 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-d59c2fe2/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-d59c2fe2/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-d59c2fe2/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-d59c2fe2/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-d59c2fe2/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-d59c2fe2/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-d59c2fe2/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-d59c2fe2/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-d59c2fe2/start.sh +31 -0
- package/.forge/worktrees/pipeline-d59c2fe2/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-d59c2fe2/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-d6a6ef23/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-d6a6ef23/README.md +136 -0
- package/.forge/worktrees/pipeline-d6a6ef23/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-d6a6ef23/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-d6a6ef23/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-d6a6ef23/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-d6a6ef23/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-d6a6ef23/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-d6a6ef23/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-d6a6ef23/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-d6a6ef23/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-d6a6ef23/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-d6a6ef23/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-d6a6ef23/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-d6a6ef23/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-d6a6ef23/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-d6a6ef23/install.sh +29 -0
- package/.forge/worktrees/pipeline-d6a6ef23/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/claude-process.ts +352 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/pipeline.ts +1438 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-d6a6ef23/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-d6a6ef23/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-d6a6ef23/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-d6a6ef23/package.json +74 -0
- package/.forge/worktrees/pipeline-d6a6ef23/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-d6a6ef23/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-d6a6ef23/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-d6a6ef23/publish.sh +133 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-d6a6ef23/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-d6a6ef23/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-d6a6ef23/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-d6a6ef23/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-d6a6ef23/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-d6a6ef23/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-d6a6ef23/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-d6a6ef23/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-d6a6ef23/start.sh +31 -0
- package/.forge/worktrees/pipeline-d6a6ef23/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-d6a6ef23/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-e7f78b7a/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-e7f78b7a/README.md +136 -0
- package/.forge/worktrees/pipeline-e7f78b7a/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-e7f78b7a/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-e7f78b7a/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-e7f78b7a/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-e7f78b7a/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-e7f78b7a/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-e7f78b7a/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-e7f78b7a/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-e7f78b7a/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-e7f78b7a/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-e7f78b7a/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-e7f78b7a/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-e7f78b7a/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-e7f78b7a/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-e7f78b7a/install.sh +29 -0
- package/.forge/worktrees/pipeline-e7f78b7a/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/claude-process.ts +352 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/pipeline.ts +1441 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-e7f78b7a/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-e7f78b7a/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-e7f78b7a/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-e7f78b7a/package.json +74 -0
- package/.forge/worktrees/pipeline-e7f78b7a/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-e7f78b7a/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-e7f78b7a/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-e7f78b7a/publish.sh +133 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-e7f78b7a/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-e7f78b7a/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-e7f78b7a/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-e7f78b7a/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-e7f78b7a/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-e7f78b7a/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-e7f78b7a/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-e7f78b7a/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-e7f78b7a/start.sh +31 -0
- package/.forge/worktrees/pipeline-e7f78b7a/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-e7f78b7a/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-e97c13c7/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-e97c13c7/README.md +136 -0
- package/.forge/worktrees/pipeline-e97c13c7/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-e97c13c7/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-e97c13c7/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-e97c13c7/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-e97c13c7/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-e97c13c7/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-e97c13c7/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-e97c13c7/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-e97c13c7/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-e97c13c7/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-e97c13c7/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-e97c13c7/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-e97c13c7/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-e97c13c7/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-e97c13c7/install.sh +29 -0
- package/.forge/worktrees/pipeline-e97c13c7/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/claude-process.ts +352 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/pipeline.ts +1438 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-e97c13c7/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-e97c13c7/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-e97c13c7/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-e97c13c7/package.json +74 -0
- package/.forge/worktrees/pipeline-e97c13c7/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-e97c13c7/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-e97c13c7/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-e97c13c7/publish.sh +133 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-e97c13c7/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-e97c13c7/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-e97c13c7/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-e97c13c7/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-e97c13c7/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-e97c13c7/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-e97c13c7/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-e97c13c7/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-e97c13c7/start.sh +31 -0
- package/.forge/worktrees/pipeline-e97c13c7/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-e97c13c7/tsconfig.json +42 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/CLAUDE.md +86 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/README.md +136 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/RELEASE_NOTES.md +11 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/agents/route.ts +17 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/auth/[...nextauth]/route.ts +3 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/auth/verify/route.ts +46 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/claude/[id]/route.ts +31 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/claude/[id]/stream/route.ts +63 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/claude/route.ts +28 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/claude-sessions/[projectName]/entries/route.ts +23 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/claude-sessions/[projectName]/live/route.ts +72 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/claude-sessions/[projectName]/route.ts +37 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/claude-sessions/sync/route.ts +17 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/claude-templates/route.ts +145 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/code/route.ts +299 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/delivery/[id]/route.ts +62 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/delivery/route.ts +40 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/detect-cli/route.ts +46 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/docs/route.ts +176 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/docs/sessions/route.ts +54 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/favorites/route.ts +26 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/flows/route.ts +6 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/flows/run/route.ts +19 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/git/route.ts +149 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/help/route.ts +84 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/issue-scanner/route.ts +116 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/logs/route.ts +100 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/mobile-chat/route.ts +115 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/monitor/route.ts +74 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/notifications/route.ts +42 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/notify/test/route.ts +33 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/online/route.ts +40 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/pipelines/[id]/route.ts +41 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/pipelines/route.ts +90 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/plugins/route.ts +75 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/preview/[...path]/route.ts +64 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/preview/route.ts +156 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/project-pipelines/route.ts +91 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/project-sessions/route.ts +61 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/projects/route.ts +26 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/sessions/[id]/chat/route.ts +64 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/sessions/[id]/messages/route.ts +9 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/sessions/[id]/route.ts +17 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/sessions/route.ts +20 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/settings/route.ts +64 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/skills/local/route.ts +228 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/skills/route.ts +182 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/smith-templates/route.ts +81 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/status/route.ts +12 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/tabs/route.ts +25 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/tasks/[id]/route.ts +51 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/tasks/[id]/stream/route.ts +77 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/tasks/link/route.ts +37 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/tasks/route.ts +44 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/tasks/session/route.ts +14 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/telegram/route.ts +23 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/templates/route.ts +6 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/terminal-bell/route.ts +35 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/terminal-cwd/route.ts +19 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/terminal-state/route.ts +15 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/tunnel/route.ts +26 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/upgrade/route.ts +43 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/usage/route.ts +20 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/version/route.ts +78 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/watchers/route.ts +33 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/workspace/[id]/agents/route.ts +35 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/workspace/[id]/memory/route.ts +23 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/workspace/[id]/smith/route.ts +22 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/workspace/[id]/stream/route.ts +28 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/api/workspace/route.ts +100 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/global-error.tsx +21 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/globals.css +52 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/icon.ico +0 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/icon.png +0 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/icon.svg +106 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/layout.tsx +17 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/login/LoginForm.tsx +96 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/login/page.tsx +10 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/mobile/page.tsx +9 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/app/page.tsx +21 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/bin/forge-server.mjs +484 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/check-forge-status.sh +71 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/cli/mw.ts +579 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/BrowserPanel.tsx +175 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/ChatPanel.tsx +191 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/ClaudeTerminal.tsx +267 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/CodeViewer.tsx +787 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/ConversationEditor.tsx +411 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/ConversationGraphView.tsx +347 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/ConversationTerminalView.tsx +303 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/Dashboard.tsx +807 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/DashboardWrapper.tsx +9 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/DeliveryFlowEditor.tsx +491 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/DeliveryList.tsx +230 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/DeliveryWorkspace.tsx +589 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/DocTerminal.tsx +187 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/DocsViewer.tsx +574 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/HelpDialog.tsx +169 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/HelpTerminal.tsx +141 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/InlinePipelineView.tsx +111 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/LogViewer.tsx +194 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/MarkdownContent.tsx +73 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/MobileView.tsx +385 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/MonitorPanel.tsx +122 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/NewSessionModal.tsx +93 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/NewTaskModal.tsx +492 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/PipelineEditor.tsx +570 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/PipelineView.tsx +1018 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/PluginsPanel.tsx +472 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/ProjectDetail.tsx +1618 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/ProjectList.tsx +108 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/ProjectManager.tsx +401 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/SessionList.tsx +74 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/SessionView.tsx +726 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/SettingsModal.tsx +1647 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/SkillsPanel.tsx +969 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/StatusBar.tsx +99 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/TabBar.tsx +46 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/TaskBoard.tsx +113 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/TaskDetail.tsx +372 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/TerminalLauncher.tsx +398 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/TunnelToggle.tsx +206 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/UsagePanel.tsx +207 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/WebTerminal.tsx +1683 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/WorkspaceTree.tsx +221 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/components/WorkspaceView.tsx +4048 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/dev-test.sh +5 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/docs/Forge_Strategy_Research_2026.docx +0 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/docs/LOCAL-DEPLOY.md +144 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/docs/roadmap-multi-agent-workflow.md +330 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/forge-logo.png +0 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/forge-logo.svg +106 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/hooks/useSidebarResize.ts +52 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/install.sh +29 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/instrumentation.ts +35 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/agents/claude-adapter.ts +104 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/agents/generic-adapter.ts +64 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/agents/index.ts +245 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/agents/types.ts +70 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/artifacts.ts +106 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/auth.ts +62 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/builtin-plugins/docker.yaml +70 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/builtin-plugins/http.yaml +66 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/builtin-plugins/jenkins.yaml +92 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/builtin-plugins/llm-vision.yaml +85 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/builtin-plugins/playwright.yaml +111 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/builtin-plugins/shell-command.yaml +60 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/builtin-plugins/slack.yaml +48 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/builtin-plugins/webhook.yaml +56 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/claude-process.ts +352 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/claude-sessions.ts +266 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/claude-templates.ts +227 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/cloudflared.ts +424 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/crypto.ts +67 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/delivery.ts +787 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/dirs.ts +99 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/flows.ts +86 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/forge-mcp-server.ts +717 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/forge-skills/forge-inbox.md +38 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/forge-skills/forge-send.md +47 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/forge-skills/forge-status.md +32 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/forge-skills/forge-workspace-sync.md +37 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/00-overview.md +40 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/01-settings.md +194 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/02-telegram.md +41 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/03-tunnel.md +31 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/04-tasks.md +52 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/05-pipelines.md +460 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/06-skills.md +43 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/07-projects.md +73 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/08-rules.md +53 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/09-issue-autofix.md +55 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/10-troubleshooting.md +89 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/11-workspace.md +810 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/CLAUDE.md +62 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/init.ts +266 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/issue-scanner.ts +298 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/logger.ts +79 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/notifications.ts +75 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/notify.ts +108 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/password.ts +97 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/pipeline-scheduler.ts +373 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/pipeline.ts +1441 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/plugins/executor.ts +347 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/plugins/registry.ts +228 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/plugins/types.ts +103 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/project-sessions.ts +53 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/projects.ts +86 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/session-manager.ts +156 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/session-utils.ts +53 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/session-watcher.ts +345 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/settings.ts +195 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/skills.ts +458 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/task-manager.ts +949 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/telegram-bot.ts +1477 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/telegram-standalone.ts +83 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/terminal-server.ts +70 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/terminal-standalone.ts +421 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/usage-scanner.ts +249 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/__tests__/state-machine.test.ts +388 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/__tests__/workspace.test.ts +311 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/agent-bus.ts +416 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/agent-worker.ts +655 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/backends/api-backend.ts +262 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/backends/cli-backend.ts +491 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/index.ts +82 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/manager.ts +136 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/orchestrator.ts +3400 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/persistence.ts +309 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/presets.ts +649 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/requests.ts +287 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/session-monitor.ts +240 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/skill-installer.ts +275 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/smith-memory.ts +498 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/types.ts +241 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace/watch-manager.ts +560 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/workspace-standalone.ts +911 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/middleware.ts +51 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/next.config.ts +26 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/package.json +74 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/pnpm-lock.yaml +3719 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/pnpm-workspace.yaml +1 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/postcss.config.mjs +7 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/publish.sh +133 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/README.md +66 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/results/.gitignore +2 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/run.ts +635 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/tasks/01-text-utils/task.md +26 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/tasks/01-text-utils/validator.sh +46 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/tasks/02-pagination/setup.sh +19 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/tasks/02-pagination/task.md +48 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/tasks/02-pagination/validator.sh +69 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/tasks/03-bug-fix/setup.sh +82 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/tasks/03-bug-fix/task.md +30 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/bench/tasks/03-bug-fix/validator.sh +29 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/scripts/verify-usage.ts +178 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/src/config/index.ts +129 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/src/core/db/database.ts +259 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/src/core/memory/strategy.ts +32 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/src/core/providers/chat.ts +65 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/src/core/providers/registry.ts +60 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/src/core/session/manager.ts +190 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/src/types/index.ts +129 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/start.sh +31 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/templates/smith-lead.json +45 -0
- package/.forge/worktrees/pipeline-ecd7cb0f/tsconfig.json +42 -0
- package/RELEASE_NOTES.md +30 -5
- package/app/api/workspace/[id]/stream/route.ts +3 -0
- package/app/api/workspace/route.ts +20 -41
- package/app/mobile/page.tsx +2 -1
- package/app/page.tsx +2 -1
- package/components/WebTerminal.tsx +27 -1
- package/lib/claude-process.ts +14 -5
- package/lib/forge-mcp-server.ts +20 -5
- package/lib/help-docs/05-pipelines.md +44 -2
- package/lib/pipeline.ts +181 -24
- package/lib/task-manager.ts +5 -3
- package/lib/terminal-standalone.ts +2 -2
- package/lib/workspace/index.ts +3 -1
- package/lib/workspace/manager.ts +1 -1
- package/lib/workspace/orchestrator.ts +23 -8
- package/lib/workspace-standalone.ts +67 -0
- package/middleware.ts +2 -2
- package/next-env.d.ts +1 -1
- package/package.json +1 -1
- package/start.sh +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"nodes":[{"id":"app/api/agents/route.ts","type":"file","name":"route.ts","filePath":"app/api/agents/route.ts","exported":false,"module":"app"},{"id":"app/api/agents/route.ts::GET","type":"function","name":"GET","filePath":"app/api/agents/route.ts","line":4,"exported":true,"module":"app"},{"id":"app/api/auth/[...nextauth]/route.ts","type":"file","name":"route.ts","filePath":"app/api/auth/[...nextauth]/route.ts","exported":false,"module":"app"},{"id":"app/api/auth/verify/route.ts","type":"file","name":"route.ts","filePath":"app/api/auth/verify/route.ts","exported":false,"module":"app"},{"id":"app/api/auth/verify/route.ts::isValidToken","type":"function","name":"isValidToken","filePath":"app/api/auth/verify/route.ts","line":11,"exported":true,"module":"app"},{"id":"app/api/auth/verify/route.ts::POST","type":"function","name":"POST","filePath":"app/api/auth/verify/route.ts","line":22,"exported":true,"module":"app"},{"id":"app/api/claude/[id]/route.ts","type":"file","name":"route.ts","filePath":"app/api/claude/[id]/route.ts","exported":false,"module":"app"},{"id":"app/api/claude/[id]/route.ts::GET","type":"function","name":"GET","filePath":"app/api/claude/[id]/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/claude/[id]/route.ts::POST","type":"function","name":"POST","filePath":"app/api/claude/[id]/route.ts","line":13,"exported":true,"module":"app"},{"id":"app/api/claude/[id]/stream/route.ts","type":"file","name":"route.ts","filePath":"app/api/claude/[id]/stream/route.ts","exported":false,"module":"app"},{"id":"app/api/claude/[id]/stream/route.ts::GET","type":"function","name":"GET","filePath":"app/api/claude/[id]/stream/route.ts","line":7,"exported":true,"module":"app"},{"id":"app/api/claude/[id]/stream/route.ts::cleanup","type":"function","name":"cleanup","filePath":"app/api/claude/[id]/stream/route.ts","line":49,"exported":false,"module":"app"},{"id":"app/api/claude/route.ts","type":"file","name":"route.ts","filePath":"app/api/claude/route.ts","exported":false,"module":"app"},{"id":"app/api/claude/route.ts::GET","type":"function","name":"GET","filePath":"app/api/claude/route.ts","line":6,"exported":true,"module":"app"},{"id":"app/api/claude/route.ts::POST","type":"function","name":"POST","filePath":"app/api/claude/route.ts","line":11,"exported":true,"module":"app"},{"id":"app/api/claude/route.ts::DELETE","type":"function","name":"DELETE","filePath":"app/api/claude/route.ts","line":24,"exported":true,"module":"app"},{"id":"app/api/claude-sessions/[projectName]/entries/route.ts","type":"file","name":"route.ts","filePath":"app/api/claude-sessions/[projectName]/entries/route.ts","exported":false,"module":"app"},{"id":"app/api/claude-sessions/[projectName]/entries/route.ts::GET","type":"function","name":"GET","filePath":"app/api/claude-sessions/[projectName]/entries/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/claude-sessions/[projectName]/live/route.ts","type":"file","name":"route.ts","filePath":"app/api/claude-sessions/[projectName]/live/route.ts","exported":false,"module":"app"},{"id":"app/api/claude-sessions/[projectName]/live/route.ts::GET","type":"function","name":"GET","filePath":"app/api/claude-sessions/[projectName]/live/route.ts","line":6,"exported":true,"module":"app"},{"id":"app/api/claude-sessions/[projectName]/live/route.ts::doCleanup","type":"function","name":"doCleanup","filePath":"app/api/claude-sessions/[projectName]/live/route.ts","line":58,"exported":false,"module":"app"},{"id":"app/api/claude-sessions/[projectName]/route.ts","type":"file","name":"route.ts","filePath":"app/api/claude-sessions/[projectName]/route.ts","exported":false,"module":"app"},{"id":"app/api/claude-sessions/[projectName]/route.ts::GET","type":"function","name":"GET","filePath":"app/api/claude-sessions/[projectName]/route.ts","line":6,"exported":true,"module":"app"},{"id":"app/api/claude-sessions/[projectName]/route.ts::DELETE","type":"function","name":"DELETE","filePath":"app/api/claude-sessions/[projectName]/route.ts","line":12,"exported":true,"module":"app"},{"id":"app/api/claude-sessions/sync/route.ts","type":"file","name":"route.ts","filePath":"app/api/claude-sessions/sync/route.ts","exported":false,"module":"app"},{"id":"app/api/claude-sessions/sync/route.ts::GET","type":"function","name":"GET","filePath":"app/api/claude-sessions/sync/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/claude-sessions/sync/route.ts::POST","type":"function","name":"POST","filePath":"app/api/claude-sessions/sync/route.ts","line":11,"exported":true,"module":"app"},{"id":"app/api/claude-templates/route.ts","type":"file","name":"route.ts","filePath":"app/api/claude-templates/route.ts","exported":false,"module":"app"},{"id":"app/api/claude-templates/route.ts::getProjectPaths","type":"function","name":"getProjectPaths","filePath":"app/api/claude-templates/route.ts","line":19,"exported":false,"module":"app"},{"id":"app/api/claude-templates/route.ts::GET","type":"function","name":"GET","filePath":"app/api/claude-templates/route.ts","line":39,"exported":true,"module":"app"},{"id":"app/api/claude-templates/route.ts::POST","type":"function","name":"POST","filePath":"app/api/claude-templates/route.ts","line":75,"exported":true,"module":"app"},{"id":"app/api/code/route.ts","type":"file","name":"route.ts","filePath":"app/api/code/route.ts","exported":false,"module":"app"},{"id":"app/api/code/route.ts::isCodeFile","type":"function","name":"isCodeFile","filePath":"app/api/code/route.ts","line":32,"exported":false,"module":"app"},{"id":"app/api/code/route.ts::scanDir","type":"function","name":"scanDir","filePath":"app/api/code/route.ts","line":39,"exported":false,"module":"app"},{"id":"app/api/code/route.ts::GET","type":"function","name":"GET","filePath":"app/api/code/route.ts","line":73,"exported":true,"module":"app"},{"id":"app/api/code/route.ts::scanGitStatus","type":"function","name":"scanGitStatus","filePath":"app/api/code/route.ts","line":219,"exported":false,"module":"app"},{"id":"app/api/code/route.ts::PUT","type":"function","name":"PUT","filePath":"app/api/code/route.ts","line":266,"exported":true,"module":"app"},{"id":"app/api/delivery/[id]/route.ts","type":"file","name":"route.ts","filePath":"app/api/delivery/[id]/route.ts","exported":false,"module":"app"},{"id":"app/api/delivery/[id]/route.ts::GET","type":"function","name":"GET","filePath":"app/api/delivery/[id]/route.ts","line":11,"exported":true,"module":"app"},{"id":"app/api/delivery/[id]/route.ts::POST","type":"function","name":"POST","filePath":"app/api/delivery/[id]/route.ts","line":21,"exported":true,"module":"app"},{"id":"app/api/delivery/[id]/route.ts::DELETE","type":"function","name":"DELETE","filePath":"app/api/delivery/[id]/route.ts","line":59,"exported":true,"module":"app"},{"id":"app/api/delivery/route.ts","type":"file","name":"route.ts","filePath":"app/api/delivery/route.ts","exported":false,"module":"app"},{"id":"app/api/delivery/route.ts::GET","type":"function","name":"GET","filePath":"app/api/delivery/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/delivery/route.ts::POST","type":"function","name":"POST","filePath":"app/api/delivery/route.ts","line":17,"exported":true,"module":"app"},{"id":"app/api/detect-cli/route.ts","type":"file","name":"route.ts","filePath":"app/api/detect-cli/route.ts","exported":false,"module":"app"},{"id":"app/api/detect-cli/route.ts::detect","type":"function","name":"detect","filePath":"app/api/detect-cli/route.ts","line":12,"exported":false,"module":"app"},{"id":"app/api/detect-cli/route.ts::GET","type":"function","name":"GET","filePath":"app/api/detect-cli/route.ts","line":28,"exported":true,"module":"app"},{"id":"app/api/docs/route.ts","type":"file","name":"route.ts","filePath":"app/api/docs/route.ts","exported":false,"module":"app"},{"id":"app/api/docs/route.ts::scanDir","type":"function","name":"scanDir","filePath":"app/api/docs/route.ts","line":17,"exported":false,"module":"app"},{"id":"app/api/docs/route.ts::GET","type":"function","name":"GET","filePath":"app/api/docs/route.ts","line":59,"exported":true,"module":"app"},{"id":"app/api/docs/route.ts::PUT","type":"function","name":"PUT","filePath":"app/api/docs/route.ts","line":148,"exported":true,"module":"app"},{"id":"app/api/docs/sessions/route.ts","type":"file","name":"route.ts","filePath":"app/api/docs/sessions/route.ts","exported":false,"module":"app"},{"id":"app/api/docs/sessions/route.ts::GET","type":"function","name":"GET","filePath":"app/api/docs/sessions/route.ts","line":6,"exported":true,"module":"app"},{"id":"app/api/favorites/route.ts","type":"file","name":"route.ts","filePath":"app/api/favorites/route.ts","exported":false,"module":"app"},{"id":"app/api/favorites/route.ts::db","type":"function","name":"db","filePath":"app/api/favorites/route.ts","line":5,"exported":false,"module":"app"},{"id":"app/api/favorites/route.ts::GET","type":"function","name":"GET","filePath":"app/api/favorites/route.ts","line":8,"exported":true,"module":"app"},{"id":"app/api/favorites/route.ts::POST","type":"function","name":"POST","filePath":"app/api/favorites/route.ts","line":14,"exported":true,"module":"app"},{"id":"app/api/flows/route.ts","type":"file","name":"route.ts","filePath":"app/api/flows/route.ts","exported":false,"module":"app"},{"id":"app/api/flows/route.ts::GET","type":"function","name":"GET","filePath":"app/api/flows/route.ts","line":4,"exported":true,"module":"app"},{"id":"app/api/flows/run/route.ts","type":"file","name":"route.ts","filePath":"app/api/flows/run/route.ts","exported":false,"module":"app"},{"id":"app/api/flows/run/route.ts::POST","type":"function","name":"POST","filePath":"app/api/flows/run/route.ts","line":4,"exported":true,"module":"app"},{"id":"app/api/git/route.ts","type":"file","name":"route.ts","filePath":"app/api/git/route.ts","exported":false,"module":"app"},{"id":"app/api/git/route.ts::isUnderProjectRoot","type":"function","name":"isUnderProjectRoot","filePath":"app/api/git/route.ts","line":9,"exported":false,"module":"app"},{"id":"app/api/git/route.ts::gitSync","type":"function","name":"gitSync","filePath":"app/api/git/route.ts","line":17,"exported":false,"module":"app"},{"id":"app/api/git/route.ts::gitAsync","type":"function","name":"gitAsync","filePath":"app/api/git/route.ts","line":21,"exported":false,"module":"app"},{"id":"app/api/git/route.ts::GET","type":"function","name":"GET","filePath":"app/api/git/route.ts","line":29,"exported":true,"module":"app"},{"id":"app/api/git/route.ts::POST","type":"function","name":"POST","filePath":"app/api/git/route.ts","line":75,"exported":true,"module":"app"},{"id":"app/api/help/route.ts","type":"file","name":"route.ts","filePath":"app/api/help/route.ts","exported":false,"module":"app"},{"id":"app/api/help/route.ts::ensureHelpDocs","type":"function","name":"ensureHelpDocs","filePath":"app/api/help/route.ts","line":12,"exported":false,"module":"app"},{"id":"app/api/help/route.ts::detectAgent","type":"function","name":"detectAgent","filePath":"app/api/help/route.ts","line":32,"exported":false,"module":"app"},{"id":"app/api/help/route.ts::GET","type":"function","name":"GET","filePath":"app/api/help/route.ts","line":50,"exported":true,"module":"app"},{"id":"app/api/issue-scanner/route.ts","type":"file","name":"route.ts","filePath":"app/api/issue-scanner/route.ts","exported":false,"module":"app"},{"id":"app/api/issue-scanner/route.ts::GET","type":"function","name":"GET","filePath":"app/api/issue-scanner/route.ts","line":15,"exported":true,"module":"app"},{"id":"app/api/issue-scanner/route.ts::POST","type":"function","name":"POST","filePath":"app/api/issue-scanner/route.ts","line":32,"exported":true,"module":"app"},{"id":"app/api/logs/route.ts","type":"file","name":"route.ts","filePath":"app/api/logs/route.ts","exported":false,"module":"app"},{"id":"app/api/logs/route.ts::tailFile","type":"function","name":"tailFile","filePath":"app/api/logs/route.ts","line":11,"exported":false,"module":"app"},{"id":"app/api/logs/route.ts::rotateIfNeeded","type":"function","name":"rotateIfNeeded","filePath":"app/api/logs/route.ts","line":26,"exported":false,"module":"app"},{"id":"app/api/logs/route.ts::GET","type":"function","name":"GET","filePath":"app/api/logs/route.ts","line":37,"exported":true,"module":"app"},{"id":"app/api/logs/route.ts::POST","type":"function","name":"POST","filePath":"app/api/logs/route.ts","line":72,"exported":true,"module":"app"},{"id":"app/api/mobile-chat/route.ts","type":"file","name":"route.ts","filePath":"app/api/mobile-chat/route.ts","exported":false,"module":"app"},{"id":"app/api/mobile-chat/route.ts::POST","type":"function","name":"POST","filePath":"app/api/mobile-chat/route.ts","line":9,"exported":true,"module":"app"},{"id":"app/api/monitor/route.ts","type":"file","name":"route.ts","filePath":"app/api/monitor/route.ts","exported":false,"module":"app"},{"id":"app/api/monitor/route.ts::run","type":"function","name":"run","filePath":"app/api/monitor/route.ts","line":4,"exported":false,"module":"app"},{"id":"app/api/monitor/route.ts::countProcess","type":"function","name":"countProcess","filePath":"app/api/monitor/route.ts","line":10,"exported":false,"module":"app"},{"id":"app/api/monitor/route.ts::GET","type":"function","name":"GET","filePath":"app/api/monitor/route.ts","line":19,"exported":true,"module":"app"},{"id":"app/api/notifications/route.ts","type":"file","name":"route.ts","filePath":"app/api/notifications/route.ts","exported":false,"module":"app"},{"id":"app/api/notifications/route.ts::GET","type":"function","name":"GET","filePath":"app/api/notifications/route.ts","line":11,"exported":true,"module":"app"},{"id":"app/api/notifications/route.ts::POST","type":"function","name":"POST","filePath":"app/api/notifications/route.ts","line":23,"exported":true,"module":"app"},{"id":"app/api/notify/test/route.ts","type":"file","name":"route.ts","filePath":"app/api/notify/test/route.ts","exported":false,"module":"app"},{"id":"app/api/notify/test/route.ts::POST","type":"function","name":"POST","filePath":"app/api/notify/test/route.ts","line":4,"exported":true,"module":"app"},{"id":"app/api/online/route.ts","type":"file","name":"route.ts","filePath":"app/api/online/route.ts","exported":false,"module":"app"},{"id":"app/api/online/route.ts::cleanup","type":"function","name":"cleanup","filePath":"app/api/online/route.ts","line":7,"exported":false,"module":"app"},{"id":"app/api/online/route.ts::POST","type":"function","name":"POST","filePath":"app/api/online/route.ts","line":15,"exported":true,"module":"app"},{"id":"app/api/online/route.ts::GET","type":"function","name":"GET","filePath":"app/api/online/route.ts","line":33,"exported":true,"module":"app"},{"id":"app/api/pipelines/[id]/route.ts","type":"file","name":"route.ts","filePath":"app/api/pipelines/[id]/route.ts","exported":false,"module":"app"},{"id":"app/api/pipelines/[id]/route.ts::GET","type":"function","name":"GET","filePath":"app/api/pipelines/[id]/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/pipelines/[id]/route.ts::POST","type":"function","name":"POST","filePath":"app/api/pipelines/[id]/route.ts","line":13,"exported":true,"module":"app"},{"id":"app/api/pipelines/route.ts","type":"file","name":"route.ts","filePath":"app/api/pipelines/route.ts","exported":false,"module":"app"},{"id":"app/api/pipelines/route.ts::GET","type":"function","name":"GET","filePath":"app/api/pipelines/route.ts","line":11,"exported":true,"module":"app"},{"id":"app/api/pipelines/route.ts::POST","type":"function","name":"POST","filePath":"app/api/pipelines/route.ts","line":47,"exported":true,"module":"app"},{"id":"app/api/plugins/route.ts","type":"file","name":"route.ts","filePath":"app/api/plugins/route.ts","exported":false,"module":"app"},{"id":"app/api/plugins/route.ts::GET","type":"function","name":"GET","filePath":"app/api/plugins/route.ts","line":6,"exported":true,"module":"app"},{"id":"app/api/plugins/route.ts::POST","type":"function","name":"POST","filePath":"app/api/plugins/route.ts","line":33,"exported":true,"module":"app"},{"id":"app/api/preview/[...path]/route.ts","type":"file","name":"route.ts","filePath":"app/api/preview/[...path]/route.ts","exported":false,"module":"app"},{"id":"app/api/preview/[...path]/route.ts::getPort","type":"function","name":"getPort","filePath":"app/api/preview/[...path]/route.ts","line":8,"exported":false,"module":"app"},{"id":"app/api/preview/[...path]/route.ts::proxy","type":"function","name":"proxy","filePath":"app/api/preview/[...path]/route.ts","line":17,"exported":false,"module":"app"},{"id":"app/api/preview/route.ts","type":"file","name":"route.ts","filePath":"app/api/preview/route.ts","exported":false,"module":"app"},{"id":"app/api/preview/route.ts::getConfig","type":"function","name":"getConfig","filePath":"app/api/preview/route.ts","line":22,"exported":false,"module":"app"},{"id":"app/api/preview/route.ts::saveConfig","type":"function","name":"saveConfig","filePath":"app/api/preview/route.ts","line":31,"exported":false,"module":"app"},{"id":"app/api/preview/route.ts::getCloudflaredPath","type":"function","name":"getCloudflaredPath","filePath":"app/api/preview/route.ts","line":37,"exported":false,"module":"app"},{"id":"app/api/preview/route.ts::GET","type":"function","name":"GET","filePath":"app/api/preview/route.ts","line":48,"exported":true,"module":"app"},{"id":"app/api/preview/route.ts::POST","type":"function","name":"POST","filePath":"app/api/preview/route.ts","line":57,"exported":true,"module":"app"},{"id":"app/api/preview/route.ts::handleOutput","type":"function","name":"handleOutput","filePath":"app/api/preview/route.ts","line":111,"exported":false,"module":"app"},{"id":"app/api/preview/route.ts::syncConfig","type":"function","name":"syncConfig","filePath":"app/api/preview/route.ts","line":150,"exported":false,"module":"app"},{"id":"app/api/project-pipelines/route.ts","type":"file","name":"route.ts","filePath":"app/api/project-pipelines/route.ts","exported":false,"module":"app"},{"id":"app/api/project-pipelines/route.ts::GET","type":"function","name":"GET","filePath":"app/api/project-pipelines/route.ts","line":17,"exported":true,"module":"app"},{"id":"app/api/project-pipelines/route.ts::POST","type":"function","name":"POST","filePath":"app/api/project-pipelines/route.ts","line":33,"exported":true,"module":"app"},{"id":"app/api/project-sessions/route.ts","type":"file","name":"route.ts","filePath":"app/api/project-sessions/route.ts","exported":false,"module":"app"},{"id":"app/api/project-sessions/route.ts::GET","type":"function","name":"GET","filePath":"app/api/project-sessions/route.ts","line":7,"exported":true,"module":"app"},{"id":"app/api/project-sessions/route.ts::POST","type":"function","name":"POST","filePath":"app/api/project-sessions/route.ts","line":19,"exported":true,"module":"app"},{"id":"app/api/project-sessions/route.ts::ensureMcpConfig","type":"function","name":"ensureMcpConfig","filePath":"app/api/project-sessions/route.ts","line":39,"exported":false,"module":"app"},{"id":"app/api/projects/route.ts","type":"file","name":"route.ts","filePath":"app/api/projects/route.ts","exported":false,"module":"app"},{"id":"app/api/projects/route.ts::GET","type":"function","name":"GET","filePath":"app/api/projects/route.ts","line":8,"exported":true,"module":"app"},{"id":"app/api/sessions/[id]/chat/route.ts","type":"file","name":"route.ts","filePath":"app/api/sessions/[id]/chat/route.ts","exported":false,"module":"app"},{"id":"app/api/sessions/[id]/chat/route.ts::POST","type":"function","name":"POST","filePath":"app/api/sessions/[id]/chat/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/sessions/[id]/messages/route.ts","type":"file","name":"route.ts","filePath":"app/api/sessions/[id]/messages/route.ts","exported":false,"module":"app"},{"id":"app/api/sessions/[id]/messages/route.ts::GET","type":"function","name":"GET","filePath":"app/api/sessions/[id]/messages/route.ts","line":4,"exported":true,"module":"app"},{"id":"app/api/sessions/[id]/route.ts","type":"file","name":"route.ts","filePath":"app/api/sessions/[id]/route.ts","exported":false,"module":"app"},{"id":"app/api/sessions/[id]/route.ts::GET","type":"function","name":"GET","filePath":"app/api/sessions/[id]/route.ts","line":4,"exported":true,"module":"app"},{"id":"app/api/sessions/[id]/route.ts::DELETE","type":"function","name":"DELETE","filePath":"app/api/sessions/[id]/route.ts","line":12,"exported":true,"module":"app"},{"id":"app/api/sessions/route.ts","type":"file","name":"route.ts","filePath":"app/api/sessions/route.ts","exported":false,"module":"app"},{"id":"app/api/sessions/route.ts::GET","type":"function","name":"GET","filePath":"app/api/sessions/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/sessions/route.ts::POST","type":"function","name":"POST","filePath":"app/api/sessions/route.ts","line":11,"exported":true,"module":"app"},{"id":"app/api/settings/route.ts","type":"file","name":"route.ts","filePath":"app/api/settings/route.ts","exported":false,"module":"app"},{"id":"app/api/settings/route.ts::GET","type":"function","name":"GET","filePath":"app/api/settings/route.ts","line":7,"exported":true,"module":"app"},{"id":"app/api/settings/route.ts::PUT","type":"function","name":"PUT","filePath":"app/api/settings/route.ts","line":11,"exported":true,"module":"app"},{"id":"app/api/skills/local/route.ts","type":"file","name":"route.ts","filePath":"app/api/skills/local/route.ts","exported":false,"module":"app"},{"id":"app/api/skills/local/route.ts::md5","type":"function","name":"md5","filePath":"app/api/skills/local/route.ts","line":11,"exported":false,"module":"app"},{"id":"app/api/skills/local/route.ts::listFiles","type":"function","name":"listFiles","filePath":"app/api/skills/local/route.ts","line":16,"exported":false,"module":"app"},{"id":"app/api/skills/local/route.ts::resolveDir","type":"function","name":"resolveDir","filePath":"app/api/skills/local/route.ts","line":31,"exported":false,"module":"app"},{"id":"app/api/skills/local/route.ts::scanLocalItems","type":"function","name":"scanLocalItems","filePath":"app/api/skills/local/route.ts","line":46,"exported":false,"module":"app"},{"id":"app/api/skills/local/route.ts::GET","type":"function","name":"GET","filePath":"app/api/skills/local/route.ts","line":100,"exported":true,"module":"app"},{"id":"app/api/skills/local/route.ts::POST","type":"function","name":"POST","filePath":"app/api/skills/local/route.ts","line":179,"exported":true,"module":"app"},{"id":"app/api/skills/route.ts","type":"file","name":"route.ts","filePath":"app/api/skills/route.ts","exported":false,"module":"app"},{"id":"app/api/skills/route.ts::getProjectPaths","type":"function","name":"getProjectPaths","filePath":"app/api/skills/route.ts","line":16,"exported":false,"module":"app"},{"id":"app/api/skills/route.ts::GET","type":"function","name":"GET","filePath":"app/api/skills/route.ts","line":34,"exported":true,"module":"app"},{"id":"app/api/skills/route.ts::recurse","type":"function","name":"recurse","filePath":"app/api/skills/route.ts","line":61,"exported":false,"module":"app"},{"id":"app/api/skills/route.ts::POST","type":"function","name":"POST","filePath":"app/api/skills/route.ts","line":120,"exported":true,"module":"app"},{"id":"app/api/smith-templates/route.ts","type":"file","name":"route.ts","filePath":"app/api/smith-templates/route.ts","exported":false,"module":"app"},{"id":"app/api/smith-templates/route.ts::getTemplatesDir","type":"function","name":"getTemplatesDir","filePath":"app/api/smith-templates/route.ts","line":6,"exported":false,"module":"app"},{"id":"app/api/smith-templates/route.ts::GET","type":"function","name":"GET","filePath":"app/api/smith-templates/route.ts","line":23,"exported":true,"module":"app"},{"id":"app/api/smith-templates/route.ts::POST","type":"function","name":"POST","filePath":"app/api/smith-templates/route.ts","line":38,"exported":true,"module":"app"},{"id":"app/api/status/route.ts","type":"file","name":"route.ts","filePath":"app/api/status/route.ts","exported":false,"module":"app"},{"id":"app/api/status/route.ts::GET","type":"function","name":"GET","filePath":"app/api/status/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/tabs/route.ts","type":"file","name":"route.ts","filePath":"app/api/tabs/route.ts","exported":false,"module":"app"},{"id":"app/api/tabs/route.ts::db","type":"function","name":"db","filePath":"app/api/tabs/route.ts","line":5,"exported":false,"module":"app"},{"id":"app/api/tabs/route.ts::GET","type":"function","name":"GET","filePath":"app/api/tabs/route.ts","line":7,"exported":true,"module":"app"},{"id":"app/api/tabs/route.ts::POST","type":"function","name":"POST","filePath":"app/api/tabs/route.ts","line":16,"exported":true,"module":"app"},{"id":"app/api/tasks/[id]/route.ts","type":"file","name":"route.ts","filePath":"app/api/tasks/[id]/route.ts","exported":false,"module":"app"},{"id":"app/api/tasks/[id]/route.ts::GET","type":"function","name":"GET","filePath":"app/api/tasks/[id]/route.ts","line":6,"exported":true,"module":"app"},{"id":"app/api/tasks/[id]/route.ts::POST","type":"function","name":"POST","filePath":"app/api/tasks/[id]/route.ts","line":14,"exported":true,"module":"app"},{"id":"app/api/tasks/[id]/route.ts::PATCH","type":"function","name":"PATCH","filePath":"app/api/tasks/[id]/route.ts","line":33,"exported":true,"module":"app"},{"id":"app/api/tasks/[id]/route.ts::DELETE","type":"function","name":"DELETE","filePath":"app/api/tasks/[id]/route.ts","line":47,"exported":true,"module":"app"},{"id":"app/api/tasks/[id]/stream/route.ts","type":"file","name":"route.ts","filePath":"app/api/tasks/[id]/stream/route.ts","exported":false,"module":"app"},{"id":"app/api/tasks/[id]/stream/route.ts::GET","type":"function","name":"GET","filePath":"app/api/tasks/[id]/stream/route.ts","line":8,"exported":true,"module":"app"},{"id":"app/api/tasks/[id]/stream/route.ts::cleanup","type":"function","name":"cleanup","filePath":"app/api/tasks/[id]/stream/route.ts","line":63,"exported":false,"module":"app"},{"id":"app/api/tasks/link/route.ts","type":"file","name":"route.ts","filePath":"app/api/tasks/link/route.ts","exported":false,"module":"app"},{"id":"app/api/tasks/link/route.ts::POST","type":"function","name":"POST","filePath":"app/api/tasks/link/route.ts","line":12,"exported":true,"module":"app"},{"id":"app/api/tasks/route.ts","type":"file","name":"route.ts","filePath":"app/api/tasks/route.ts","exported":false,"module":"app"},{"id":"app/api/tasks/route.ts::GET","type":"function","name":"GET","filePath":"app/api/tasks/route.ts","line":8,"exported":true,"module":"app"},{"id":"app/api/tasks/route.ts::POST","type":"function","name":"POST","filePath":"app/api/tasks/route.ts","line":16,"exported":true,"module":"app"},{"id":"app/api/tasks/session/route.ts","type":"file","name":"route.ts","filePath":"app/api/tasks/session/route.ts","exported":false,"module":"app"},{"id":"app/api/tasks/session/route.ts::GET","type":"function","name":"GET","filePath":"app/api/tasks/session/route.ts","line":4,"exported":true,"module":"app"},{"id":"app/api/telegram/route.ts","type":"file","name":"route.ts","filePath":"app/api/telegram/route.ts","exported":false,"module":"app"},{"id":"app/api/telegram/route.ts::POST","type":"function","name":"POST","filePath":"app/api/telegram/route.ts","line":6,"exported":true,"module":"app"},{"id":"app/api/templates/route.ts","type":"file","name":"route.ts","filePath":"app/api/templates/route.ts","exported":false,"module":"app"},{"id":"app/api/templates/route.ts::GET","type":"function","name":"GET","filePath":"app/api/templates/route.ts","line":4,"exported":true,"module":"app"},{"id":"app/api/terminal-bell/route.ts","type":"file","name":"route.ts","filePath":"app/api/terminal-bell/route.ts","exported":false,"module":"app"},{"id":"app/api/terminal-bell/route.ts::POST","type":"function","name":"POST","filePath":"app/api/terminal-bell/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/terminal-cwd/route.ts","type":"file","name":"route.ts","filePath":"app/api/terminal-cwd/route.ts","exported":false,"module":"app"},{"id":"app/api/terminal-cwd/route.ts::GET","type":"function","name":"GET","filePath":"app/api/terminal-cwd/route.ts","line":4,"exported":true,"module":"app"},{"id":"app/api/terminal-state/route.ts","type":"file","name":"route.ts","filePath":"app/api/terminal-state/route.ts","exported":false,"module":"app"},{"id":"app/api/terminal-state/route.ts::GET","type":"function","name":"GET","filePath":"app/api/terminal-state/route.ts","line":8,"exported":true,"module":"app"},{"id":"app/api/tunnel/route.ts","type":"file","name":"route.ts","filePath":"app/api/tunnel/route.ts","exported":false,"module":"app"},{"id":"app/api/tunnel/route.ts::GET","type":"function","name":"GET","filePath":"app/api/tunnel/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/tunnel/route.ts::POST","type":"function","name":"POST","filePath":"app/api/tunnel/route.ts","line":9,"exported":true,"module":"app"},{"id":"app/api/upgrade/route.ts","type":"file","name":"route.ts","filePath":"app/api/upgrade/route.ts","exported":false,"module":"app"},{"id":"app/api/upgrade/route.ts::POST","type":"function","name":"POST","filePath":"app/api/upgrade/route.ts","line":7,"exported":true,"module":"app"},{"id":"app/api/usage/route.ts","type":"file","name":"route.ts","filePath":"app/api/usage/route.ts","exported":false,"module":"app"},{"id":"app/api/usage/route.ts::GET","type":"function","name":"GET","filePath":"app/api/usage/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/usage/route.ts::POST","type":"function","name":"POST","filePath":"app/api/usage/route.ts","line":17,"exported":true,"module":"app"},{"id":"app/api/version/route.ts","type":"file","name":"route.ts","filePath":"app/api/version/route.ts","exported":false,"module":"app"},{"id":"app/api/version/route.ts::getLatestVersion","type":"function","name":"getLatestVersion","filePath":"app/api/version/route.ts","line":22,"exported":false,"module":"app"},{"id":"app/api/version/route.ts::compareVersions","type":"function","name":"compareVersions","filePath":"app/api/version/route.ts","line":43,"exported":false,"module":"app"},{"id":"app/api/version/route.ts::GET","type":"function","name":"GET","filePath":"app/api/version/route.ts","line":53,"exported":true,"module":"app"},{"id":"app/api/watchers/route.ts","type":"file","name":"route.ts","filePath":"app/api/watchers/route.ts","exported":false,"module":"app"},{"id":"app/api/watchers/route.ts::GET","type":"function","name":"GET","filePath":"app/api/watchers/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/watchers/route.ts::POST","type":"function","name":"POST","filePath":"app/api/watchers/route.ts","line":10,"exported":true,"module":"app"},{"id":"app/api/workspace/[id]/agents/route.ts","type":"file","name":"route.ts","filePath":"app/api/workspace/[id]/agents/route.ts","exported":false,"module":"app"},{"id":"app/api/workspace/[id]/agents/route.ts::POST","type":"function","name":"POST","filePath":"app/api/workspace/[id]/agents/route.ts","line":7,"exported":true,"module":"app"},{"id":"app/api/workspace/[id]/agents/route.ts::GET","type":"function","name":"GET","filePath":"app/api/workspace/[id]/agents/route.ts","line":25,"exported":true,"module":"app"},{"id":"app/api/workspace/[id]/memory/route.ts","type":"file","name":"route.ts","filePath":"app/api/workspace/[id]/memory/route.ts","exported":false,"module":"app"},{"id":"app/api/workspace/[id]/memory/route.ts::GET","type":"function","name":"GET","filePath":"app/api/workspace/[id]/memory/route.ts","line":7,"exported":true,"module":"app"},{"id":"app/api/workspace/[id]/smith/route.ts","type":"file","name":"route.ts","filePath":"app/api/workspace/[id]/smith/route.ts","exported":false,"module":"app"},{"id":"app/api/workspace/[id]/smith/route.ts::POST","type":"function","name":"POST","filePath":"app/api/workspace/[id]/smith/route.ts","line":7,"exported":true,"module":"app"},{"id":"app/api/workspace/[id]/stream/route.ts","type":"file","name":"route.ts","filePath":"app/api/workspace/[id]/stream/route.ts","exported":false,"module":"app"},{"id":"app/api/workspace/[id]/stream/route.ts::GET","type":"function","name":"GET","filePath":"app/api/workspace/[id]/stream/route.ts","line":5,"exported":true,"module":"app"},{"id":"app/api/workspace/route.ts","type":"file","name":"route.ts","filePath":"app/api/workspace/route.ts","exported":false,"module":"app"},{"id":"app/api/workspace/route.ts::GET","type":"function","name":"GET","filePath":"app/api/workspace/route.ts","line":7,"exported":true,"module":"app"},{"id":"app/api/workspace/route.ts::POST","type":"function","name":"POST","filePath":"app/api/workspace/route.ts","line":34,"exported":true,"module":"app"},{"id":"app/api/workspace/route.ts::DELETE","type":"function","name":"DELETE","filePath":"app/api/workspace/route.ts","line":89,"exported":true,"module":"app"},{"id":"app/global-error.tsx","type":"file","name":"global-error.tsx","filePath":"app/global-error.tsx","exported":false,"module":"app"},{"id":"app/global-error.tsx::GlobalError","type":"function","name":"GlobalError","filePath":"app/global-error.tsx","line":3,"exported":true,"module":"app"},{"id":"app/layout.tsx","type":"file","name":"layout.tsx","filePath":"app/layout.tsx","exported":false,"module":"app"},{"id":"app/layout.tsx::RootLayout","type":"function","name":"RootLayout","filePath":"app/layout.tsx","line":9,"exported":true,"module":"app"},{"id":"app/login/LoginForm.tsx","type":"file","name":"LoginForm.tsx","filePath":"app/login/LoginForm.tsx","exported":false,"module":"app"},{"id":"app/login/LoginForm.tsx::LoginForm","type":"function","name":"LoginForm","filePath":"app/login/LoginForm.tsx","line":6,"exported":true,"module":"app"},{"id":"app/login/LoginForm.tsx::handleSubmit","type":"function","name":"handleSubmit","filePath":"app/login/LoginForm.tsx","line":17,"exported":false,"module":"app"},{"id":"app/login/page.tsx","type":"file","name":"page.tsx","filePath":"app/login/page.tsx","exported":false,"module":"app"},{"id":"app/login/page.tsx::LoginPage","type":"function","name":"LoginPage","filePath":"app/login/page.tsx","line":4,"exported":true,"module":"app"},{"id":"app/mobile/page.tsx","type":"file","name":"page.tsx","filePath":"app/mobile/page.tsx","exported":false,"module":"app"},{"id":"app/mobile/page.tsx::MobilePage","type":"function","name":"MobilePage","filePath":"app/mobile/page.tsx","line":5,"exported":true,"module":"app"},{"id":"app/page.tsx","type":"file","name":"page.tsx","filePath":"app/page.tsx","exported":false,"module":"app"},{"id":"app/page.tsx::Home","type":"function","name":"Home","filePath":"app/page.tsx","line":6,"exported":true,"module":"app"},{"id":"bin/forge-server.mjs","type":"file","name":"forge-server.mjs","filePath":"bin/forge-server.mjs","exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::buildNext","type":"function","name":"buildNext","filePath":"bin/forge-server.mjs","line":32,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::getArg","type":"function","name":"getArg","filePath":"bin/forge-server.mjs","line":43,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::ask","type":"function","name":"ask","filePath":"bin/forge-server.mjs","line":149,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::savePids","type":"function","name":"savePids","filePath":"bin/forge-server.mjs","line":216,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::loadPids","type":"function","name":"loadPids","filePath":"bin/forge-server.mjs","line":220,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::killTrackedPids","type":"function","name":"killTrackedPids","filePath":"bin/forge-server.mjs","line":224,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::cleanupOrphans","type":"function","name":"cleanupOrphans","filePath":"bin/forge-server.mjs","line":243,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::startServices","type":"function","name":"startServices","filePath":"bin/forge-server.mjs","line":278,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::stopServices","type":"function","name":"stopServices","filePath":"bin/forge-server.mjs","line":318,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::stopServer","type":"function","name":"stopServer","filePath":"bin/forge-server.mjs","line":327,"exported":false,"module":"bin"},{"id":"bin/forge-server.mjs::startBackground","type":"function","name":"startBackground","filePath":"bin/forge-server.mjs","line":371,"exported":false,"module":"bin"},{"id":"cli/mw.ts","type":"file","name":"mw.ts","filePath":"cli/mw.ts","exported":false,"module":"cli"},{"id":"cli/mw.ts::checkForUpdate","type":"function","name":"checkForUpdate","filePath":"cli/mw.ts","line":25,"exported":false,"module":"cli"},{"id":"cli/mw.ts::api","type":"function","name":"api","filePath":"cli/mw.ts","line":53,"exported":false,"module":"cli"},{"id":"cli/mw.ts::main","type":"function","name":"main","filePath":"cli/mw.ts","line":63,"exported":false,"module":"cli"},{"id":"cli/mw.ts::check","type":"function","name":"check","filePath":"cli/mw.ts","line":449,"exported":false,"module":"cli"},{"id":"components/BrowserPanel.tsx","type":"file","name":"BrowserPanel.tsx","filePath":"components/BrowserPanel.tsx","exported":false,"module":"components"},{"id":"components/BrowserPanel.tsx::BrowserPanel","type":"function","name":"BrowserPanel","filePath":"components/BrowserPanel.tsx","line":12,"exported":true,"module":"components"},{"id":"components/BrowserPanel.tsx::normalizeUrl","type":"function","name":"normalizeUrl","filePath":"components/BrowserPanel.tsx","line":32,"exported":false,"module":"components"},{"id":"components/BrowserPanel.tsx::navigate","type":"function","name":"navigate","filePath":"components/BrowserPanel.tsx","line":38,"exported":false,"module":"components"},{"id":"components/BrowserPanel.tsx::handleTunnel","type":"function","name":"handleTunnel","filePath":"components/BrowserPanel.tsx","line":46,"exported":false,"module":"components"},{"id":"components/BrowserPanel.tsx::stopTunnel","type":"function","name":"stopTunnel","filePath":"components/BrowserPanel.tsx","line":84,"exported":false,"module":"components"},{"id":"components/ChatPanel.tsx","type":"file","name":"ChatPanel.tsx","filePath":"components/ChatPanel.tsx","exported":false,"module":"components"},{"id":"components/ChatPanel.tsx::ChatPanel","type":"function","name":"ChatPanel","filePath":"components/ChatPanel.tsx","line":13,"exported":true,"module":"components"},{"id":"components/ChatPanel.tsx::sendMessage","type":"function","name":"sendMessage","filePath":"components/ChatPanel.tsx","line":39,"exported":false,"module":"components"},{"id":"components/ChatPanel.tsx::handleKeyDown","type":"function","name":"handleKeyDown","filePath":"components/ChatPanel.tsx","line":116,"exported":false,"module":"components"},{"id":"components/ClaudeTerminal.tsx","type":"file","name":"ClaudeTerminal.tsx","filePath":"components/ClaudeTerminal.tsx","exported":false,"module":"components"},{"id":"components/ClaudeTerminal.tsx::ClaudeTerminal","type":"function","name":"ClaudeTerminal","filePath":"components/ClaudeTerminal.tsx","line":23,"exported":true,"module":"components"},{"id":"components/ClaudeTerminal.tsx::connect","type":"function","name":"connect","filePath":"components/ClaudeTerminal.tsx","line":43,"exported":false,"module":"components"},{"id":"components/ClaudeTerminal.tsx::sendMessage","type":"function","name":"sendMessage","filePath":"components/ClaudeTerminal.tsx","line":94,"exported":false,"module":"components"},{"id":"components/ClaudeTerminal.tsx::handleKeyDown","type":"function","name":"handleKeyDown","filePath":"components/ClaudeTerminal.tsx","line":108,"exported":false,"module":"components"},{"id":"components/ClaudeTerminal.tsx::MessageBubble","type":"function","name":"MessageBubble","filePath":"components/ClaudeTerminal.tsx","line":173,"exported":false,"module":"components"},{"id":"components/ClaudeTerminal.tsx::formatToolContent","type":"function","name":"formatToolContent","filePath":"components/ClaudeTerminal.tsx","line":260,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx","type":"file","name":"CodeViewer.tsx","filePath":"components/CodeViewer.tsx","exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::TreeNode","type":"function","name":"TreeNode","filePath":"components/CodeViewer.tsx","line":21,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::hasGitChanges","type":"function","name":"hasGitChanges","filePath":"components/CodeViewer.tsx","line":82,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::flattenTree","type":"function","name":"flattenTree","filePath":"components/CodeViewer.tsx","line":87,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::highlightLine","type":"function","name":"highlightLine","filePath":"components/CodeViewer.tsx","line":121,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::CodeViewer","type":"function","name":"CodeViewer","filePath":"components/CodeViewer.tsx","line":174,"exported":true,"module":"components"},{"id":"components/CodeViewer.tsx::fetchCwd","type":"function","name":"fetchCwd","filePath":"components/CodeViewer.tsx","line":213,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::fetchDir","type":"function","name":"fetchDir","filePath":"components/CodeViewer.tsx","line":235,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::check","type":"function","name":"check","filePath":"components/CodeViewer.tsx","line":254,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::onDragStart","type":"function","name":"onDragStart","filePath":"components/CodeViewer.tsx","line":334,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::onMove","type":"function","name":"onMove","filePath":"components/CodeViewer.tsx","line":337,"exported":false,"module":"components"},{"id":"components/CodeViewer.tsx::onUp","type":"function","name":"onUp","filePath":"components/CodeViewer.tsx","line":342,"exported":false,"module":"components"},{"id":"components/ConversationEditor.tsx","type":"file","name":"ConversationEditor.tsx","filePath":"components/ConversationEditor.tsx","exported":false,"module":"components"},{"id":"components/ConversationEditor.tsx::PromptNode","type":"function","name":"PromptNode","filePath":"components/ConversationEditor.tsx","line":37,"exported":false,"module":"components"},{"id":"components/ConversationEditor.tsx::AgentNode","type":"function","name":"AgentNode","filePath":"components/ConversationEditor.tsx","line":52,"exported":false,"module":"components"},{"id":"components/ConversationEditor.tsx::ForgeNode","type":"function","name":"ForgeNode","filePath":"components/ConversationEditor.tsx","line":74,"exported":false,"module":"components"},{"id":"components/ConversationEditor.tsx::StopNode","type":"function","name":"StopNode","filePath":"components/ConversationEditor.tsx","line":87,"exported":false,"module":"components"},{"id":"components/ConversationEditor.tsx::parseConvYaml","type":"function","name":"parseConvYaml","filePath":"components/ConversationEditor.tsx","line":122,"exported":false,"module":"components"},{"id":"components/ConversationEditor.tsx::buildFlowGraph","type":"function","name":"buildFlowGraph","filePath":"components/ConversationEditor.tsx","line":138,"exported":false,"module":"components"},{"id":"components/ConversationEditor.tsx::ConversationEditor","type":"function","name":"ConversationEditor","filePath":"components/ConversationEditor.tsx","line":282,"exported":true,"module":"components"},{"id":"components/ConversationEditor.tsx::validate","type":"function","name":"validate","filePath":"components/ConversationEditor.tsx","line":303,"exported":false,"module":"components"},{"id":"components/ConversationEditor.tsx::handleSave","type":"function","name":"handleSave","filePath":"components/ConversationEditor.tsx","line":320,"exported":false,"module":"components"},{"id":"components/ConversationGraphView.tsx","type":"file","name":"ConversationGraphView.tsx","filePath":"components/ConversationGraphView.tsx","exported":false,"module":"components"},{"id":"components/ConversationGraphView.tsx::useTaskStream","type":"function","name":"useTaskStream","filePath":"components/ConversationGraphView.tsx","line":31,"exported":false,"module":"components"},{"id":"components/ConversationGraphView.tsx::AgentExecutionNode","type":"function","name":"AgentExecutionNode","filePath":"components/ConversationGraphView.tsx","line":63,"exported":false,"module":"components"},{"id":"components/ConversationGraphView.tsx::PromptExecutionNode","type":"function","name":"PromptExecutionNode","filePath":"components/ConversationGraphView.tsx","line":132,"exported":false,"module":"components"},{"id":"components/ConversationGraphView.tsx::StatusNode","type":"function","name":"StatusNode","filePath":"components/ConversationGraphView.tsx","line":147,"exported":false,"module":"components"},{"id":"components/ConversationGraphView.tsx::buildExecutionGraph","type":"function","name":"buildExecutionGraph","filePath":"components/ConversationGraphView.tsx","line":168,"exported":false,"module":"components"},{"id":"components/ConversationGraphView.tsx::ConversationGraphView","type":"function","name":"ConversationGraphView","filePath":"components/ConversationGraphView.tsx","line":302,"exported":true,"module":"components"},{"id":"components/ConversationTerminalView.tsx","type":"file","name":"ConversationTerminalView.tsx","filePath":"components/ConversationTerminalView.tsx","exported":false,"module":"components"},{"id":"components/ConversationTerminalView.tsx::useAgentStream","type":"function","name":"useAgentStream","filePath":"components/ConversationTerminalView.tsx","line":17,"exported":false,"module":"components"},{"id":"components/ConversationTerminalView.tsx::LogLine","type":"function","name":"LogLine","filePath":"components/ConversationTerminalView.tsx","line":48,"exported":false,"module":"components"},{"id":"components/ConversationTerminalView.tsx::AgentTerminalPanel","type":"function","name":"AgentTerminalPanel","filePath":"components/ConversationTerminalView.tsx","line":63,"exported":false,"module":"components"},{"id":"components/ConversationTerminalView.tsx::handleSend","type":"function","name":"handleSend","filePath":"components/ConversationTerminalView.tsx","line":83,"exported":false,"module":"components"},{"id":"components/ConversationTerminalView.tsx::HorizontalFlow","type":"function","name":"HorizontalFlow","filePath":"components/ConversationTerminalView.tsx","line":175,"exported":false,"module":"components"},{"id":"components/ConversationTerminalView.tsx::ConversationTerminalView","type":"function","name":"ConversationTerminalView","filePath":"components/ConversationTerminalView.tsx","line":200,"exported":true,"module":"components"},{"id":"components/ConversationTerminalView.tsx::getFlowState","type":"function","name":"getFlowState","filePath":"components/ConversationTerminalView.tsx","line":220,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx","type":"file","name":"Dashboard.tsx","filePath":"components/Dashboard.tsx","exported":false,"module":"components"},{"id":"components/Dashboard.tsx::FloatingBrowser","type":"function","name":"FloatingBrowser","filePath":"components/Dashboard.tsx","line":48,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::onMove","type":"function","name":"onMove","filePath":"components/Dashboard.tsx","line":64,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::onUp","type":"function","name":"onUp","filePath":"components/Dashboard.tsx","line":68,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::onMove","type":"function","name":"onMove","filePath":"components/Dashboard.tsx","line":84,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::onUp","type":"function","name":"onUp","filePath":"components/Dashboard.tsx","line":88,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::Dashboard","type":"function","name":"Dashboard","filePath":"components/Dashboard.tsx","line":99,"exported":true,"module":"components"},{"id":"components/Dashboard.tsx::toggleTheme","type":"function","name":"toggleTheme","filePath":"components/Dashboard.tsx","line":136,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::handler","type":"function","name":"handler","filePath":"components/Dashboard.tsx","line":153,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::handler","type":"function","name":"handler","filePath":"components/Dashboard.tsx","line":167,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::check","type":"function","name":"check","filePath":"components/Dashboard.tsx","line":178,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::ping","type":"function","name":"ping","filePath":"components/Dashboard.tsx","line":200,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::onMove","type":"function","name":"onMove","filePath":"components/Dashboard.tsx","line":248,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::onUp","type":"function","name":"onUp","filePath":"components/Dashboard.tsx","line":252,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::onMove","type":"function","name":"onMove","filePath":"components/Dashboard.tsx","line":752,"exported":false,"module":"components"},{"id":"components/Dashboard.tsx::onUp","type":"function","name":"onUp","filePath":"components/Dashboard.tsx","line":756,"exported":false,"module":"components"},{"id":"components/DashboardWrapper.tsx","type":"file","name":"DashboardWrapper.tsx","filePath":"components/DashboardWrapper.tsx","exported":false,"module":"components"},{"id":"components/DashboardWrapper.tsx::DashboardWrapper","type":"function","name":"DashboardWrapper","filePath":"components/DashboardWrapper.tsx","line":7,"exported":true,"module":"components"},{"id":"components/DeliveryFlowEditor.tsx","type":"file","name":"DeliveryFlowEditor.tsx","filePath":"components/DeliveryFlowEditor.tsx","exported":false,"module":"components"},{"id":"components/DeliveryFlowEditor.tsx::getColor","type":"function","name":"getColor","filePath":"components/DeliveryFlowEditor.tsx","line":62,"exported":false,"module":"components"},{"id":"components/DeliveryFlowEditor.tsx::RoleNode","type":"function","name":"RoleNode","filePath":"components/DeliveryFlowEditor.tsx","line":81,"exported":false,"module":"components"},{"id":"components/DeliveryFlowEditor.tsx::EditModal","type":"function","name":"EditModal","filePath":"components/DeliveryFlowEditor.tsx","line":131,"exported":false,"module":"components"},{"id":"components/DeliveryFlowEditor.tsx::DeliveryFlowEditor","type":"function","name":"DeliveryFlowEditor","filePath":"components/DeliveryFlowEditor.tsx","line":194,"exported":true,"module":"components"},{"id":"components/DeliveryFlowEditor.tsx::handleAddPreset","type":"function","name":"handleAddPreset","filePath":"components/DeliveryFlowEditor.tsx","line":302,"exported":false,"module":"components"},{"id":"components/DeliveryFlowEditor.tsx::handleAddCustom","type":"function","name":"handleAddCustom","filePath":"components/DeliveryFlowEditor.tsx","line":323,"exported":false,"module":"components"},{"id":"components/DeliveryFlowEditor.tsx::handleSaveEdit","type":"function","name":"handleSaveEdit","filePath":"components/DeliveryFlowEditor.tsx","line":349,"exported":false,"module":"components"},{"id":"components/DeliveryFlowEditor.tsx::buildOutput","type":"function","name":"buildOutput","filePath":"components/DeliveryFlowEditor.tsx","line":432,"exported":false,"module":"components"},{"id":"components/DeliveryList.tsx","type":"file","name":"DeliveryList.tsx","filePath":"components/DeliveryList.tsx","exported":false,"module":"components"},{"id":"components/DeliveryList.tsx::DeliveryList","type":"function","name":"DeliveryList","filePath":"components/DeliveryList.tsx","line":36,"exported":true,"module":"components"},{"id":"components/DeliveryList.tsx::handleCreate","type":"function","name":"handleCreate","filePath":"components/DeliveryList.tsx","line":68,"exported":false,"module":"components"},{"id":"components/DeliveryList.tsx::handleDelete","type":"function","name":"handleDelete","filePath":"components/DeliveryList.tsx","line":104,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx","type":"file","name":"DeliveryWorkspace.tsx","filePath":"components/DeliveryWorkspace.tsx","exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::getPhaseMeta","type":"function","name":"getPhaseMeta","filePath":"components/DeliveryWorkspace.tsx","line":66,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::useTaskStream","type":"function","name":"useTaskStream","filePath":"components/DeliveryWorkspace.tsx","line":77,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::PhaseTerminal","type":"function","name":"PhaseTerminal","filePath":"components/DeliveryWorkspace.tsx","line":97,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::handleSend","type":"function","name":"handleSend","filePath":"components/DeliveryWorkspace.tsx","line":115,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::LogLine","type":"function","name":"LogLine","filePath":"components/DeliveryWorkspace.tsx","line":209,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::PhaseTimeline","type":"function","name":"PhaseTimeline","filePath":"components/DeliveryWorkspace.tsx","line":221,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::ArtifactList","type":"function","name":"ArtifactList","filePath":"components/DeliveryWorkspace.tsx","line":255,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::DataFlowOverlay","type":"function","name":"DataFlowOverlay","filePath":"components/DeliveryWorkspace.tsx","line":285,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::ApprovalPanel","type":"function","name":"ApprovalPanel","filePath":"components/DeliveryWorkspace.tsx","line":322,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::act","type":"function","name":"act","filePath":"components/DeliveryWorkspace.tsx","line":327,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::GridFlowOverlay","type":"function","name":"GridFlowOverlay","filePath":"components/DeliveryWorkspace.tsx","line":373,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::cellCenter","type":"function","name":"cellCenter","filePath":"components/DeliveryWorkspace.tsx","line":380,"exported":false,"module":"components"},{"id":"components/DeliveryWorkspace.tsx::DeliveryWorkspace","type":"function","name":"DeliveryWorkspace","filePath":"components/DeliveryWorkspace.tsx","line":474,"exported":true,"module":"components"},{"id":"components/DocTerminal.tsx","type":"file","name":"DocTerminal.tsx","filePath":"components/DocTerminal.tsx","exported":false,"module":"components"},{"id":"components/DocTerminal.tsx::getWsUrl","type":"function","name":"getWsUrl","filePath":"components/DocTerminal.tsx","line":10,"exported":false,"module":"components"},{"id":"components/DocTerminal.tsx::DocTerminal","type":"function","name":"DocTerminal","filePath":"components/DocTerminal.tsx","line":21,"exported":true,"module":"components"},{"id":"components/DocTerminal.tsx::tv","type":"function","name":"tv","filePath":"components/DocTerminal.tsx","line":48,"exported":false,"module":"components"},{"id":"components/DocTerminal.tsx::connect","type":"function","name":"connect","filePath":"components/DocTerminal.tsx","line":73,"exported":false,"module":"components"},{"id":"components/DocsViewer.tsx","type":"file","name":"DocsViewer.tsx","filePath":"components/DocsViewer.tsx","exported":false,"module":"components"},{"id":"components/DocsViewer.tsx::genTabId","type":"function","name":"genTabId","filePath":"components/DocsViewer.tsx","line":19,"exported":false,"module":"components"},{"id":"components/DocsViewer.tsx::TreeNode","type":"function","name":"TreeNode","filePath":"components/DocsViewer.tsx","line":31,"exported":false,"module":"components"},{"id":"components/DocsViewer.tsx::flattenTree","type":"function","name":"flattenTree","filePath":"components/DocsViewer.tsx","line":76,"exported":false,"module":"components"},{"id":"components/DocsViewer.tsx::filterTree","type":"function","name":"filterTree","filePath":"components/DocsViewer.tsx","line":87,"exported":false,"module":"components"},{"id":"components/DocsViewer.tsx::DocsViewer","type":"function","name":"DocsViewer","filePath":"components/DocsViewer.tsx","line":101,"exported":true,"module":"components"},{"id":"components/DocsViewer.tsx::handleVisibility","type":"function","name":"handleVisibility","filePath":"components/DocsViewer.tsx","line":280,"exported":false,"module":"components"},{"id":"components/DocsViewer.tsx::isImageFile","type":"function","name":"isImageFile","filePath":"components/DocsViewer.tsx","line":291,"exported":false,"module":"components"},{"id":"components/DocsViewer.tsx::onDragStart","type":"function","name":"onDragStart","filePath":"components/DocsViewer.tsx","line":322,"exported":false,"module":"components"},{"id":"components/DocsViewer.tsx::onMove","type":"function","name":"onMove","filePath":"components/DocsViewer.tsx","line":325,"exported":false,"module":"components"},{"id":"components/DocsViewer.tsx::onUp","type":"function","name":"onUp","filePath":"components/DocsViewer.tsx","line":330,"exported":false,"module":"components"},{"id":"components/HelpDialog.tsx","type":"file","name":"HelpDialog.tsx","filePath":"components/HelpDialog.tsx","exported":false,"module":"components"},{"id":"components/HelpDialog.tsx::HelpDialog","type":"function","name":"HelpDialog","filePath":"components/HelpDialog.tsx","line":12,"exported":true,"module":"components"},{"id":"components/HelpDialog.tsx::loadDoc","type":"function","name":"loadDoc","filePath":"components/HelpDialog.tsx","line":31,"exported":false,"module":"components"},{"id":"components/HelpDialog.tsx::onDragStart","type":"function","name":"onDragStart","filePath":"components/HelpDialog.tsx","line":41,"exported":false,"module":"components"},{"id":"components/HelpDialog.tsx::onMove","type":"function","name":"onMove","filePath":"components/HelpDialog.tsx","line":44,"exported":false,"module":"components"},{"id":"components/HelpDialog.tsx::onUp","type":"function","name":"onUp","filePath":"components/HelpDialog.tsx","line":51,"exported":false,"module":"components"},{"id":"components/HelpDialog.tsx::onResizeStart","type":"function","name":"onResizeStart","filePath":"components/HelpDialog.tsx","line":57,"exported":false,"module":"components"},{"id":"components/HelpDialog.tsx::onMove","type":"function","name":"onMove","filePath":"components/HelpDialog.tsx","line":61,"exported":false,"module":"components"},{"id":"components/HelpDialog.tsx::onUp","type":"function","name":"onUp","filePath":"components/HelpDialog.tsx","line":68,"exported":false,"module":"components"},{"id":"components/HelpTerminal.tsx","type":"file","name":"HelpTerminal.tsx","filePath":"components/HelpTerminal.tsx","exported":false,"module":"components"},{"id":"components/HelpTerminal.tsx::getWsUrl","type":"function","name":"getWsUrl","filePath":"components/HelpTerminal.tsx","line":10,"exported":false,"module":"components"},{"id":"components/HelpTerminal.tsx::HelpTerminal","type":"function","name":"HelpTerminal","filePath":"components/HelpTerminal.tsx","line":21,"exported":true,"module":"components"},{"id":"components/HelpTerminal.tsx::tv","type":"function","name":"tv","filePath":"components/HelpTerminal.tsx","line":33,"exported":false,"module":"components"},{"id":"components/HelpTerminal.tsx::connect","type":"function","name":"connect","filePath":"components/HelpTerminal.tsx","line":57,"exported":false,"module":"components"},{"id":"components/InlinePipelineView.tsx","type":"file","name":"InlinePipelineView.tsx","filePath":"components/InlinePipelineView.tsx","exported":false,"module":"components"},{"id":"components/InlinePipelineView.tsx::useTaskStreamInline","type":"function","name":"useTaskStreamInline","filePath":"components/InlinePipelineView.tsx","line":10,"exported":false,"module":"components"},{"id":"components/InlinePipelineView.tsx::InlineLiveLog","type":"function","name":"InlineLiveLog","filePath":"components/InlinePipelineView.tsx","line":30,"exported":false,"module":"components"},{"id":"components/InlinePipelineView.tsx::InlineDagNode","type":"function","name":"InlineDagNode","filePath":"components/InlinePipelineView.tsx","line":55,"exported":false,"module":"components"},{"id":"components/InlinePipelineView.tsx::InlinePipelineView","type":"function","name":"InlinePipelineView","filePath":"components/InlinePipelineView.tsx","line":80,"exported":true,"module":"components"},{"id":"components/LogViewer.tsx","type":"file","name":"LogViewer.tsx","filePath":"components/LogViewer.tsx","exported":false,"module":"components"},{"id":"components/LogViewer.tsx::LogViewer","type":"function","name":"LogViewer","filePath":"components/LogViewer.tsx","line":5,"exported":true,"module":"components"},{"id":"components/LogViewer.tsx::fetchProcesses","type":"function","name":"fetchProcesses","filePath":"components/LogViewer.tsx","line":30,"exported":false,"module":"components"},{"id":"components/LogViewer.tsx::clearLogs","type":"function","name":"clearLogs","filePath":"components/LogViewer.tsx","line":42,"exported":false,"module":"components"},{"id":"components/LogViewer.tsx::onScroll","type":"function","name":"onScroll","filePath":"components/LogViewer.tsx","line":66,"exported":false,"module":"components"},{"id":"components/LogViewer.tsx::formatSize","type":"function","name":"formatSize","filePath":"components/LogViewer.tsx","line":73,"exported":false,"module":"components"},{"id":"components/LogViewer.tsx::getLineColor","type":"function","name":"getLineColor","filePath":"components/LogViewer.tsx","line":79,"exported":false,"module":"components"},{"id":"components/MarkdownContent.tsx","type":"file","name":"MarkdownContent.tsx","filePath":"components/MarkdownContent.tsx","exported":false,"module":"components"},{"id":"components/MarkdownContent.tsx::MarkdownContent","type":"function","name":"MarkdownContent","filePath":"components/MarkdownContent.tsx","line":6,"exported":true,"module":"components"},{"id":"components/MobileView.tsx","type":"file","name":"MobileView.tsx","filePath":"components/MobileView.tsx","exported":false,"module":"components"},{"id":"components/MobileView.tsx::MobileView","type":"function","name":"MobileView","filePath":"components/MobileView.tsx","line":9,"exported":true,"module":"components"},{"id":"components/MobileView.tsx::sendMessage","type":"function","name":"sendMessage","filePath":"components/MobileView.tsx","line":102,"exported":false,"module":"components"},{"id":"components/MobileView.tsx::stopGeneration","type":"function","name":"stopGeneration","filePath":"components/MobileView.tsx","line":211,"exported":false,"module":"components"},{"id":"components/MobileView.tsx::closeTunnel","type":"function","name":"closeTunnel","filePath":"components/MobileView.tsx","line":216,"exported":false,"module":"components"},{"id":"components/MonitorPanel.tsx","type":"file","name":"MonitorPanel.tsx","filePath":"components/MonitorPanel.tsx","exported":false,"module":"components"},{"id":"components/MonitorPanel.tsx::MonitorPanel","type":"function","name":"MonitorPanel","filePath":"components/MonitorPanel.tsx","line":18,"exported":true,"module":"components"},{"id":"components/NewSessionModal.tsx","type":"file","name":"NewSessionModal.tsx","filePath":"components/NewSessionModal.tsx","exported":false,"module":"components"},{"id":"components/NewSessionModal.tsx::NewSessionModal","type":"function","name":"NewSessionModal","filePath":"components/NewSessionModal.tsx","line":6,"exported":true,"module":"components"},{"id":"components/NewSessionModal.tsx::handleCreate","type":"function","name":"handleCreate","filePath":"components/NewSessionModal.tsx","line":26,"exported":false,"module":"components"},{"id":"components/NewTaskModal.tsx","type":"file","name":"NewTaskModal.tsx","filePath":"components/NewTaskModal.tsx","exported":false,"module":"components"},{"id":"components/NewTaskModal.tsx::NewTaskModal","type":"function","name":"NewTaskModal","filePath":"components/NewTaskModal.tsx","line":32,"exported":true,"module":"components"},{"id":"components/NewTaskModal.tsx::getScheduledAt","type":"function","name":"getScheduledAt","filePath":"components/NewTaskModal.tsx","line":105,"exported":false,"module":"components"},{"id":"components/NewTaskModal.tsx::handleSubmit","type":"function","name":"handleSubmit","filePath":"components/NewTaskModal.tsx","line":116,"exported":false,"module":"components"},{"id":"components/PipelineEditor.tsx","type":"file","name":"PipelineEditor.tsx","filePath":"components/PipelineEditor.tsx","exported":false,"module":"components"},{"id":"components/PipelineEditor.tsx::PipelineNode","type":"function","name":"PipelineNode","filePath":"components/PipelineEditor.tsx","line":33,"exported":false,"module":"components"},{"id":"components/PipelineEditor.tsx::NodeEditModal","type":"function","name":"NodeEditModal","filePath":"components/PipelineEditor.tsx","line":70,"exported":false,"module":"components"},{"id":"components/PipelineEditor.tsx::PipelineEditor","type":"function","name":"PipelineEditor","filePath":"components/PipelineEditor.tsx","line":300,"exported":true,"module":"components"},{"id":"components/PipelineView.tsx","type":"file","name":"PipelineView.tsx","filePath":"components/PipelineView.tsx","exported":false,"module":"components"},{"id":"components/PipelineView.tsx::useTaskStream","type":"function","name":"useTaskStream","filePath":"components/PipelineView.tsx","line":12,"exported":false,"module":"components"},{"id":"components/PipelineView.tsx::LiveLog","type":"function","name":"LiveLog","filePath":"components/PipelineView.tsx","line":36,"exported":false,"module":"components"},{"id":"components/PipelineView.tsx::DagNodeCard","type":"function","name":"DagNodeCard","filePath":"components/PipelineView.tsx","line":152,"exported":false,"module":"components"},{"id":"components/PipelineView.tsx::ConversationMessageBubble","type":"function","name":"ConversationMessageBubble","filePath":"components/PipelineView.tsx","line":225,"exported":false,"module":"components"},{"id":"components/PipelineView.tsx::ConversationView","type":"function","name":"ConversationView","filePath":"components/PipelineView.tsx","line":273,"exported":false,"module":"components"},{"id":"components/PipelineView.tsx::handleInject","type":"function","name":"handleInject","filePath":"components/PipelineView.tsx","line":293,"exported":false,"module":"components"},{"id":"components/PipelineView.tsx::PipelineView","type":"function","name":"PipelineView","filePath":"components/PipelineView.tsx","line":434,"exported":true,"module":"components"},{"id":"components/PipelineView.tsx::handleCreate","type":"function","name":"handleCreate","filePath":"components/PipelineView.tsx","line":497,"exported":false,"module":"components"},{"id":"components/PipelineView.tsx::handleCancel","type":"function","name":"handleCancel","filePath":"components/PipelineView.tsx","line":517,"exported":false,"module":"components"},{"id":"components/PipelineView.tsx::handleDelete","type":"function","name":"handleDelete","filePath":"components/PipelineView.tsx","line":530,"exported":false,"module":"components"},{"id":"components/PipelineView.tsx::generateConversationTemplate","type":"function","name":"generateConversationTemplate","filePath":"components/PipelineView.tsx","line":541,"exported":false,"module":"components"},{"id":"components/PluginsPanel.tsx","type":"file","name":"PluginsPanel.tsx","filePath":"components/PluginsPanel.tsx","exported":false,"module":"components"},{"id":"components/PluginsPanel.tsx::PluginsPanel","type":"function","name":"PluginsPanel","filePath":"components/PluginsPanel.tsx","line":38,"exported":true,"module":"components"},{"id":"components/PluginsPanel.tsx::handleInstall","type":"function","name":"handleInstall","filePath":"components/PluginsPanel.tsx","line":99,"exported":false,"module":"components"},{"id":"components/PluginsPanel.tsx::handleUninstall","type":"function","name":"handleUninstall","filePath":"components/PluginsPanel.tsx","line":114,"exported":false,"module":"components"},{"id":"components/PluginsPanel.tsx::handleSaveConfig","type":"function","name":"handleSaveConfig","filePath":"components/PluginsPanel.tsx","line":127,"exported":false,"module":"components"},{"id":"components/PluginsPanel.tsx::handleCreateInstance","type":"function","name":"handleCreateInstance","filePath":"components/PluginsPanel.tsx","line":145,"exported":false,"module":"components"},{"id":"components/PluginsPanel.tsx::handleTest","type":"function","name":"handleTest","filePath":"components/PluginsPanel.tsx","line":171,"exported":false,"module":"components"},{"id":"components/PluginsPanel.tsx::pluginInstances","type":"function","name":"pluginInstances","filePath":"components/PluginsPanel.tsx","line":191,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx","type":"file","name":"ProjectDetail.tsx","filePath":"components/ProjectDetail.tsx","exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::highlightLine","type":"function","name":"highlightLine","filePath":"components/ProjectDetail.tsx","line":27,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::loadSkillFile","type":"function","name":"loadSkillFile","filePath":"components/ProjectDetail.tsx","line":199,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::saveSkillFile","type":"function","name":"saveSkillFile","filePath":"components/ProjectDetail.tsx","line":211,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::handleUpdate","type":"function","name":"handleUpdate","filePath":"components/ProjectDetail.tsx","line":229,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::uninstallSkill","type":"function","name":"uninstallSkill","filePath":"components/ProjectDetail.tsx","line":248,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::triggerProjectPipeline","type":"function","name":"triggerProjectPipeline","filePath":"components/ProjectDetail.tsx","line":271,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::injectToProject","type":"function","name":"injectToProject","filePath":"components/ProjectDetail.tsx","line":301,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::removeFromProject","type":"function","name":"removeFromProject","filePath":"components/ProjectDetail.tsx","line":310,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::saveClaudeMd","type":"function","name":"saveClaudeMd","filePath":"components/ProjectDetail.tsx","line":320,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::gitAction","type":"function","name":"gitAction","filePath":"components/ProjectDetail.tsx","line":388,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::handler","type":"function","name":"handler","filePath":"components/ProjectDetail.tsx","line":431,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::onMove","type":"function","name":"onMove","filePath":"components/ProjectDetail.tsx","line":1410,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::onUp","type":"function","name":"onUp","filePath":"components/ProjectDetail.tsx","line":1414,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::AgentTerminalButton","type":"function","name":"AgentTerminalButton","filePath":"components/ProjectDetail.tsx","line":1509,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::h","type":"function","name":"h","filePath":"components/ProjectDetail.tsx","line":1523,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::openTerminal","type":"function","name":"openTerminal","filePath":"components/ProjectDetail.tsx","line":1528,"exported":false,"module":"components"},{"id":"components/ProjectDetail.tsx::handleAgentClick","type":"function","name":"handleAgentClick","filePath":"components/ProjectDetail.tsx","line":1538,"exported":false,"module":"components"},{"id":"components/ProjectList.tsx","type":"file","name":"ProjectList.tsx","filePath":"components/ProjectList.tsx","exported":false,"module":"components"},{"id":"components/ProjectList.tsx::ProjectList","type":"function","name":"ProjectList","filePath":"components/ProjectList.tsx","line":29,"exported":true,"module":"components"},{"id":"components/ProjectList.tsx::getProcessForProject","type":"function","name":"getProcessForProject","filePath":"components/ProjectList.tsx","line":47,"exported":false,"module":"components"},{"id":"components/ProjectManager.tsx","type":"file","name":"ProjectManager.tsx","filePath":"components/ProjectManager.tsx","exported":false,"module":"components"},{"id":"components/ProjectManager.tsx::genTabId","type":"function","name":"genTabId","filePath":"components/ProjectManager.tsx","line":25,"exported":false,"module":"components"},{"id":"components/ProjectManager.tsx::ProjectManager","type":"function","name":"ProjectManager","filePath":"components/ProjectManager.tsx","line":27,"exported":true,"module":"components"},{"id":"components/ProjectManager.tsx::handleClone","type":"function","name":"handleClone","filePath":"components/ProjectManager.tsx","line":170,"exported":false,"module":"components"},{"id":"components/ProjectManager.tsx::toggleRoot","type":"function","name":"toggleRoot","filePath":"components/ProjectManager.tsx","line":204,"exported":false,"module":"components"},{"id":"components/SessionList.tsx","type":"file","name":"SessionList.tsx","filePath":"components/SessionList.tsx","exported":false,"module":"components"},{"id":"components/SessionList.tsx::SessionList","type":"function","name":"SessionList","filePath":"components/SessionList.tsx","line":20,"exported":true,"module":"components"},{"id":"components/SessionView.tsx","type":"file","name":"SessionView.tsx","filePath":"components/SessionView.tsx","exported":false,"module":"components"},{"id":"components/SessionView.tsx::SessionView","type":"function","name":"SessionView","filePath":"components/SessionView.tsx","line":37,"exported":true,"module":"components"},{"id":"components/SessionView.tsx::toggleProject","type":"function","name":"toggleProject","filePath":"components/SessionView.tsx","line":153,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::selectSession","type":"function","name":"selectSession","filePath":"components/SessionView.tsx","line":161,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::toggleTool","type":"function","name":"toggleTool","filePath":"components/SessionView.tsx","line":168,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::addWatcher","type":"function","name":"addWatcher","filePath":"components/SessionView.tsx","line":176,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::removeWatcher","type":"function","name":"removeWatcher","filePath":"components/SessionView.tsx","line":185,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::deleteSessionById","type":"function","name":"deleteSessionById","filePath":"components/SessionView.tsx","line":194,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::createMonitorTask","type":"function","name":"createMonitorTask","filePath":"components/SessionView.tsx","line":209,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::toggleSelect","type":"function","name":"toggleSelect","filePath":"components/SessionView.tsx","line":233,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::toggleSelectAll","type":"function","name":"toggleSelectAll","filePath":"components/SessionView.tsx","line":243,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::isSelected","type":"function","name":"isSelected","filePath":"components/SessionView.tsx","line":257,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::isAllSelected","type":"function","name":"isAllSelected","filePath":"components/SessionView.tsx","line":260,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::exitBatchMode","type":"function","name":"exitBatchMode","filePath":"components/SessionView.tsx","line":265,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::batchDelete","type":"function","name":"batchDelete","filePath":"components/SessionView.tsx","line":270,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::batchMonitor","type":"function","name":"batchMonitor","filePath":"components/SessionView.tsx","line":289,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::timeAgo","type":"function","name":"timeAgo","filePath":"components/SessionView.tsx","line":611,"exported":false,"module":"components"},{"id":"components/SessionView.tsx::SessionEntryView","type":"function","name":"SessionEntryView","filePath":"components/SessionView.tsx","line":624,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx","type":"file","name":"SettingsModal.tsx","filePath":"components/SettingsModal.tsx","exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::SecretInput","type":"function","name":"SecretInput","filePath":"components/SettingsModal.tsx","line":5,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::SecretChangeDialog","type":"function","name":"SecretChangeDialog","filePath":"components/SettingsModal.tsx","line":34,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::handleSave","type":"function","name":"handleSave","filePath":"components/SettingsModal.tsx","line":52,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::SecretField","type":"function","name":"SecretField","filePath":"components/SettingsModal.tsx","line":163,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::SettingsModal","type":"function","name":"SettingsModal","filePath":"components/SettingsModal.tsx","line":217,"exported":true,"module":"components"},{"id":"components/SettingsModal.tsx::save","type":"function","name":"save","filePath":"components/SettingsModal.tsx","line":276,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::saveSecret","type":"function","name":"saveSecret","filePath":"components/SettingsModal.tsx","line":295,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::addRoot","type":"function","name":"addRoot","filePath":"components/SettingsModal.tsx","line":308,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::removeRoot","type":"function","name":"removeRoot","filePath":"components/SettingsModal.tsx","line":315,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::ProfileRow","type":"function","name":"ProfileRow","filePath":"components/SettingsModal.tsx","line":804,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::AddProfileForm","type":"function","name":"AddProfileForm","filePath":"components/SettingsModal.tsx","line":928,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::fillEnvTemplate","type":"function","name":"fillEnvTemplate","filePath":"components/SettingsModal.tsx","line":966,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::parseEnv","type":"function","name":"parseEnv","filePath":"components/SettingsModal.tsx","line":982,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::handleAdd","type":"function","name":"handleAdd","filePath":"components/SettingsModal.tsx","line":994,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::AgentsSection","type":"function","name":"AgentsSection","filePath":"components/SettingsModal.tsx","line":1095,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::makeNewAgent","type":"function","name":"makeNewAgent","filePath":"components/SettingsModal.tsx","line":1106,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::saveAgentConfig","type":"function","name":"saveAgentConfig","filePath":"components/SettingsModal.tsx","line":1181,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::updateAgent","type":"function","name":"updateAgent","filePath":"components/SettingsModal.tsx","line":1218,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::saveAgents","type":"function","name":"saveAgents","filePath":"components/SettingsModal.tsx","line":1225,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::removeAgent","type":"function","name":"removeAgent","filePath":"components/SettingsModal.tsx","line":1231,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::addAgent","type":"function","name":"addAgent","filePath":"components/SettingsModal.tsx","line":1243,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::TelegramAgentSelect","type":"function","name":"TelegramAgentSelect","filePath":"components/SettingsModal.tsx","line":1592,"exported":false,"module":"components"},{"id":"components/SettingsModal.tsx::DocsAgentSelect","type":"function","name":"DocsAgentSelect","filePath":"components/SettingsModal.tsx","line":1622,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx","type":"file","name":"SkillsPanel.tsx","filePath":"components/SkillsPanel.tsx","exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::buildTree","type":"function","name":"buildTree","filePath":"components/SkillsPanel.tsx","line":42,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::SkillFileTree","type":"function","name":"SkillFileTree","filePath":"components/SkillsPanel.tsx","line":67,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::TreeNodeList","type":"function","name":"TreeNodeList","filePath":"components/SkillsPanel.tsx","line":76,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::toggle","type":"function","name":"toggle","filePath":"components/SkillsPanel.tsx","line":84,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::SkillsPanel","type":"function","name":"SkillsPanel","filePath":"components/SkillsPanel.tsx","line":129,"exported":true,"module":"components"},{"id":"components/SkillsPanel.tsx::saveRule","type":"function","name":"saveRule","filePath":"components/SkillsPanel.tsx","line":187,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::deleteRule","type":"function","name":"deleteRule","filePath":"components/SkillsPanel.tsx","line":199,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::toggleDefault","type":"function","name":"toggleDefault","filePath":"components/SkillsPanel.tsx","line":210,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::batchInject","type":"function","name":"batchInject","filePath":"components/SkillsPanel.tsx","line":219,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::sync","type":"function","name":"sync","filePath":"components/SkillsPanel.tsx","line":232,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::install","type":"function","name":"install","filePath":"components/SkillsPanel.tsx","line":265,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::toggleDetail","type":"function","name":"toggleDetail","filePath":"components/SkillsPanel.tsx","line":276,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::loadFile","type":"function","name":"loadFile","filePath":"components/SkillsPanel.tsx","line":297,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::uninstall","type":"function","name":"uninstall","filePath":"components/SkillsPanel.tsx","line":313,"exported":false,"module":"components"},{"id":"components/SkillsPanel.tsx::toggleLocalSection","type":"function","name":"toggleLocalSection","filePath":"components/SkillsPanel.tsx","line":344,"exported":false,"module":"components"},{"id":"components/StatusBar.tsx","type":"file","name":"StatusBar.tsx","filePath":"components/StatusBar.tsx","exported":false,"module":"components"},{"id":"components/StatusBar.tsx::StatusBar","type":"function","name":"StatusBar","filePath":"components/StatusBar.tsx","line":12,"exported":true,"module":"components"},{"id":"components/TabBar.tsx","type":"file","name":"TabBar.tsx","filePath":"components/TabBar.tsx","exported":false,"module":"components"},{"id":"components/TabBar.tsx::TabBar","type":"function","name":"TabBar","filePath":"components/TabBar.tsx","line":17,"exported":true,"module":"components"},{"id":"components/TaskBoard.tsx","type":"file","name":"TaskBoard.tsx","filePath":"components/TaskBoard.tsx","exported":false,"module":"components"},{"id":"components/TaskBoard.tsx::TaskBoard","type":"function","name":"TaskBoard","filePath":"components/TaskBoard.tsx","line":22,"exported":true,"module":"components"},{"id":"components/TaskBoard.tsx::timeAgo","type":"function","name":"timeAgo","filePath":"components/TaskBoard.tsx","line":105,"exported":false,"module":"components"},{"id":"components/TaskDetail.tsx","type":"file","name":"TaskDetail.tsx","filePath":"components/TaskDetail.tsx","exported":false,"module":"components"},{"id":"components/TaskDetail.tsx::TaskDetail","type":"function","name":"TaskDetail","filePath":"components/TaskDetail.tsx","line":8,"exported":true,"module":"components"},{"id":"components/TaskDetail.tsx::handleAction","type":"function","name":"handleAction","filePath":"components/TaskDetail.tsx","line":65,"exported":false,"module":"components"},{"id":"components/TaskDetail.tsx::toggleTool","type":"function","name":"toggleTool","filePath":"components/TaskDetail.tsx","line":74,"exported":false,"module":"components"},{"id":"components/TaskDetail.tsx::StatusBadge","type":"function","name":"StatusBadge","filePath":"components/TaskDetail.tsx","line":251,"exported":false,"module":"components"},{"id":"components/TaskDetail.tsx::LogEntry","type":"function","name":"LogEntry","filePath":"components/TaskDetail.tsx","line":266,"exported":false,"module":"components"},{"id":"components/TaskDetail.tsx::formatToolContent","type":"function","name":"formatToolContent","filePath":"components/TaskDetail.tsx","line":358,"exported":false,"module":"components"},{"id":"components/TerminalLauncher.tsx","type":"file","name":"TerminalLauncher.tsx","filePath":"components/TerminalLauncher.tsx","exported":false,"module":"components"},{"id":"components/TerminalLauncher.tsx::fetchAgentSessions","type":"function","name":"fetchAgentSessions","filePath":"components/TerminalLauncher.tsx","line":49,"exported":true,"module":"components"},{"id":"components/TerminalLauncher.tsx::fetchProjectSessions","type":"function","name":"fetchProjectSessions","filePath":"components/TerminalLauncher.tsx","line":67,"exported":true,"module":"components"},{"id":"components/TerminalLauncher.tsx::formatRelativeTime","type":"function","name":"formatRelativeTime","filePath":"components/TerminalLauncher.tsx","line":84,"exported":false,"module":"components"},{"id":"components/TerminalLauncher.tsx::formatSize","type":"function","name":"formatSize","filePath":"components/TerminalLauncher.tsx","line":91,"exported":false,"module":"components"},{"id":"components/TerminalLauncher.tsx::SessionItem","type":"function","name":"SessionItem","filePath":"components/TerminalLauncher.tsx","line":99,"exported":false,"module":"components"},{"id":"components/TerminalLauncher.tsx::copyId","type":"function","name":"copyId","filePath":"components/TerminalLauncher.tsx","line":106,"exported":false,"module":"components"},{"id":"components/TerminalLauncher.tsx::TerminalSessionPicker","type":"function","name":"TerminalSessionPicker","filePath":"components/TerminalLauncher.tsx","line":158,"exported":true,"module":"components"},{"id":"components/TerminalLauncher.tsx::TerminalSessionPickerLazy","type":"function","name":"TerminalSessionPickerLazy","filePath":"components/TerminalLauncher.tsx","line":263,"exported":true,"module":"components"},{"id":"components/TerminalLauncher.tsx::resolveWorkspaceTerminal","type":"function","name":"resolveWorkspaceTerminal","filePath":"components/TerminalLauncher.tsx","line":320,"exported":true,"module":"components"},{"id":"components/TerminalLauncher.tsx::resolveWorkspaceAgentInfo","type":"function","name":"resolveWorkspaceAgentInfo","filePath":"components/TerminalLauncher.tsx","line":346,"exported":true,"module":"components"},{"id":"components/TerminalLauncher.tsx::buildProjectTerminalConfig","type":"function","name":"buildProjectTerminalConfig","filePath":"components/TerminalLauncher.tsx","line":380,"exported":true,"module":"components"},{"id":"components/TunnelToggle.tsx","type":"file","name":"TunnelToggle.tsx","filePath":"components/TunnelToggle.tsx","exported":false,"module":"components"},{"id":"components/TunnelToggle.tsx::TunnelToggle","type":"function","name":"TunnelToggle","filePath":"components/TunnelToggle.tsx","line":11,"exported":true,"module":"components"},{"id":"components/TunnelToggle.tsx::doStop","type":"function","name":"doStop","filePath":"components/TunnelToggle.tsx","line":41,"exported":false,"module":"components"},{"id":"components/TunnelToggle.tsx::doStart","type":"function","name":"doStart","filePath":"components/TunnelToggle.tsx","line":56,"exported":false,"module":"components"},{"id":"components/TunnelToggle.tsx::copyUrl","type":"function","name":"copyUrl","filePath":"components/TunnelToggle.tsx","line":78,"exported":false,"module":"components"},{"id":"components/UsagePanel.tsx","type":"file","name":"UsagePanel.tsx","filePath":"components/UsagePanel.tsx","exported":false,"module":"components"},{"id":"components/UsagePanel.tsx::formatTokens","type":"function","name":"formatTokens","filePath":"components/UsagePanel.tsx","line":13,"exported":false,"module":"components"},{"id":"components/UsagePanel.tsx::formatCost","type":"function","name":"formatCost","filePath":"components/UsagePanel.tsx","line":19,"exported":false,"module":"components"},{"id":"components/UsagePanel.tsx::Bar","type":"function","name":"Bar","filePath":"components/UsagePanel.tsx","line":24,"exported":false,"module":"components"},{"id":"components/UsagePanel.tsx::UsagePanel","type":"function","name":"UsagePanel","filePath":"components/UsagePanel.tsx","line":33,"exported":true,"module":"components"},{"id":"components/UsagePanel.tsx::triggerScan","type":"function","name":"triggerScan","filePath":"components/UsagePanel.tsx","line":51,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx","type":"file","name":"WebTerminal.tsx","filePath":"components/WebTerminal.tsx","exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::getWsUrl","type":"function","name":"getWsUrl","filePath":"components/WebTerminal.tsx","line":50,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::loadSharedState","type":"function","name":"loadSharedState","filePath":"components/WebTerminal.tsx","line":64,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::saveSharedState","type":"function","name":"saveSharedState","filePath":"components/WebTerminal.tsx","line":79,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::initNextId","type":"function","name":"initNextId","filePath":"components/WebTerminal.tsx","line":94,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::initNextIdFromTabs","type":"function","name":"initNextIdFromTabs","filePath":"components/WebTerminal.tsx","line":104,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::makeTerminal","type":"function","name":"makeTerminal","filePath":"components/WebTerminal.tsx","line":111,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::makeSplit","type":"function","name":"makeSplit","filePath":"components/WebTerminal.tsx","line":115,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::splitNodeById","type":"function","name":"splitNodeById","filePath":"components/WebTerminal.tsx","line":119,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::removeNodeById","type":"function","name":"removeNodeById","filePath":"components/WebTerminal.tsx","line":127,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::updateSessionName","type":"function","name":"updateSessionName","filePath":"components/WebTerminal.tsx","line":138,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::countTerminals","type":"function","name":"countTerminals","filePath":"components/WebTerminal.tsx","line":145,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::firstTerminalId","type":"function","name":"firstTerminalId","filePath":"components/WebTerminal.tsx","line":150,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::collectPaneIds","type":"function","name":"collectPaneIds","filePath":"components/WebTerminal.tsx","line":154,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::collectSessionNames","type":"function","name":"collectSessionNames","filePath":"components/WebTerminal.tsx","line":159,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::collectAllSessionNames","type":"function","name":"collectAllSessionNames","filePath":"components/WebTerminal.tsx","line":164,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::fireBellNotification","type":"function","name":"fireBellNotification","filePath":"components/WebTerminal.tsx","line":179,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::AgentButtons","type":"function","name":"AgentButtons","filePath":"components/WebTerminal.tsx","line":1049,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::getAbbr","type":"function","name":"getAbbr","filePath":"components/WebTerminal.tsx","line":1057,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::btnClass","type":"function","name":"btnClass","filePath":"components/WebTerminal.tsx","line":1060,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::PaneRenderer","type":"function","name":"PaneRenderer","filePath":"components/WebTerminal.tsx","line":1111,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::DraggableSplit","type":"function","name":"DraggableSplit","filePath":"components/WebTerminal.tsx","line":1152,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::onPointerDown","type":"function","name":"onPointerDown","filePath":"components/WebTerminal.tsx","line":1193,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::onPointerMove","type":"function","name":"onPointerMove","filePath":"components/WebTerminal.tsx","line":1204,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::onPointerUp","type":"function","name":"onPointerUp","filePath":"components/WebTerminal.tsx","line":1217,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::tv","type":"function","name":"tv","filePath":"components/WebTerminal.tsx","line":1298,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::initTerminal","type":"function","name":"initTerminal","filePath":"components/WebTerminal.tsx","line":1363,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::connect","type":"function","name":"connect","filePath":"components/WebTerminal.tsx","line":1416,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::doFit","type":"function","name":"doFit","filePath":"components/WebTerminal.tsx","line":1576,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::handleResize","type":"function","name":"handleResize","filePath":"components/WebTerminal.tsx","line":1599,"exported":false,"module":"components"},{"id":"components/WebTerminal.tsx::onDragEnd","type":"function","name":"onDragEnd","filePath":"components/WebTerminal.tsx","line":1605,"exported":false,"module":"components"},{"id":"components/WorkspaceTree.tsx","type":"file","name":"WorkspaceTree.tsx","filePath":"components/WorkspaceTree.tsx","exported":false,"module":"components"},{"id":"components/WorkspaceTree.tsx::WorkspaceTree","type":"function","name":"WorkspaceTree","filePath":"components/WorkspaceTree.tsx","line":42,"exported":true,"module":"components"},{"id":"components/WorkspaceTree.tsx::toggleExpand","type":"function","name":"toggleExpand","filePath":"components/WorkspaceTree.tsx","line":116,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx","type":"file","name":"WorkspaceView.tsx","filePath":"components/WorkspaceView.tsx","exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::wsApi","type":"function","name":"wsApi","filePath":"components/WorkspaceView.tsx","line":238,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::ensureWorkspace","type":"function","name":"ensureWorkspace","filePath":"components/WorkspaceView.tsx","line":254,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::useWorkspaceStream","type":"function","name":"useWorkspaceStream","filePath":"components/WorkspaceView.tsx","line":271,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::SessionTargetSelector","type":"function","name":"SessionTargetSelector","filePath":"components/WorkspaceView.tsx","line":404,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::WatchPathPicker","type":"function","name":"WatchPathPicker","filePath":"components/WorkspaceView.tsx","line":455,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::walk","type":"function","name":"walk","filePath":"components/WorkspaceView.tsx","line":469,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::PathTreeNode","type":"function","name":"PathTreeNode","filePath":"components/WorkspaceView.tsx","line":528,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::FixedSessionPicker","type":"function","name":"FixedSessionPicker","filePath":"components/WorkspaceView.tsx","line":558,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::formatTime","type":"function","name":"formatTime","filePath":"components/WorkspaceView.tsx","line":571,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::formatSize","type":"function","name":"formatSize","filePath":"components/WorkspaceView.tsx","line":578,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::copyId","type":"function","name":"copyId","filePath":"components/WorkspaceView.tsx","line":580,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::AgentConfigModal","type":"function","name":"AgentConfigModal","filePath":"components/WorkspaceView.tsx","line":610,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::walk","type":"function","name":"walk","filePath":"components/WorkspaceView.tsx","line":690,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::applyPreset","type":"function","name":"applyPreset","filePath":"components/WorkspaceView.tsx","line":705,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::applySavedTemplate","type":"function","name":"applySavedTemplate","filePath":"components/WorkspaceView.tsx","line":728,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleImportFile","type":"function","name":"handleImportFile","filePath":"components/WorkspaceView.tsx","line":741,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::toggleDep","type":"function","name":"toggleDep","filePath":"components/WorkspaceView.tsx","line":761,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::parseSteps","type":"function","name":"parseSteps","filePath":"components/WorkspaceView.tsx","line":769,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::MessageDialog","type":"function","name":"MessageDialog","filePath":"components/WorkspaceView.tsx","line":1309,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::RunPromptDialog","type":"function","name":"RunPromptDialog","filePath":"components/WorkspaceView.tsx","line":1335,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::LogContent","type":"function","name":"LogContent","filePath":"components/WorkspaceView.tsx","line":1366,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::LogPanel","type":"function","name":"LogPanel","filePath":"components/WorkspaceView.tsx","line":1427,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::MemoryPanel","type":"function","name":"MemoryPanel","filePath":"components/WorkspaceView.tsx","line":1530,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::InboxPanel","type":"function","name":"InboxPanel","filePath":"components/WorkspaceView.tsx","line":1614,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::getLabel","type":"function","name":"getLabel","filePath":"components/WorkspaceView.tsx","line":1618,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleDelete","type":"function","name":"handleDelete","filePath":"components/WorkspaceView.tsx","line":1628,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::toggleSelect","type":"function","name":"toggleSelect","filePath":"components/WorkspaceView.tsx","line":1633,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::selectAll","type":"function","name":"selectAll","filePath":"components/WorkspaceView.tsx","line":1637,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleBatchDelete","type":"function","name":"handleBatchDelete","filePath":"components/WorkspaceView.tsx","line":1642,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleAbortAllPending","type":"function","name":"handleAbortAllPending","filePath":"components/WorkspaceView.tsx","line":1650,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::BusPanel","type":"function","name":"BusPanel","filePath":"components/WorkspaceView.tsx","line":1818,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::getLabel","type":"function","name":"getLabel","filePath":"components/WorkspaceView.tsx","line":1822,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::SessionItem","type":"function","name":"SessionItem","filePath":"components/WorkspaceView.tsx","line":1865,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::copyId","type":"function","name":"copyId","filePath":"components/WorkspaceView.tsx","line":1874,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::TerminalLaunchDialog","type":"function","name":"TerminalLaunchDialog","filePath":"components/WorkspaceView.tsx","line":1907,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::formatTime","type":"function","name":"formatTime","filePath":"components/WorkspaceView.tsx","line":1928,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::formatSize","type":"function","name":"formatSize","filePath":"components/WorkspaceView.tsx","line":1937,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::getWsUrl","type":"function","name":"getWsUrl","filePath":"components/WorkspaceView.tsx","line":1988,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::TerminalDock","type":"function","name":"TerminalDock","filePath":"components/WorkspaceView.tsx","line":2000,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::onMove","type":"function","name":"onMove","filePath":"components/WorkspaceView.tsx","line":2029,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::onUp","type":"function","name":"onUp","filePath":"components/WorkspaceView.tsx","line":2034,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::FloatingTerminalInline","type":"function","name":"FloatingTerminalInline","filePath":"components/WorkspaceView.tsx","line":2087,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::FloatingTerminal","type":"function","name":"FloatingTerminal","filePath":"components/WorkspaceView.tsx","line":2214,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::onMove","type":"function","name":"onMove","filePath":"components/WorkspaceView.tsx","line":2422,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::onUp","type":"function","name":"onUp","filePath":"components/WorkspaceView.tsx","line":2426,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::onMove","type":"function","name":"onMove","filePath":"components/WorkspaceView.tsx","line":2447,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::onUp","type":"function","name":"onUp","filePath":"components/WorkspaceView.tsx","line":2451,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::InputFlowNode","type":"function","name":"InputFlowNode","filePath":"components/WorkspaceView.tsx","line":2511,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::StickCat","type":"function","name":"StickCat","filePath":"components/WorkspaceView.tsx","line":2673,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::body","type":"function","name":"body","filePath":"components/WorkspaceView.tsx","line":2675,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::StickDog","type":"function","name":"StickDog","filePath":"components/WorkspaceView.tsx","line":2786,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::standingDog","type":"function","name":"standingDog","filePath":"components/WorkspaceView.tsx","line":2838,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::StickPig","type":"function","name":"StickPig","filePath":"components/WorkspaceView.tsx","line":2920,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::pigBody","type":"function","name":"pigBody","filePath":"components/WorkspaceView.tsx","line":2969,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::EmojiMascot","type":"function","name":"EmojiMascot","filePath":"components/WorkspaceView.tsx","line":3040,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::StickFigure","type":"function","name":"StickFigure","filePath":"components/WorkspaceView.tsx","line":3052,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::WorkerMascot","type":"function","name":"WorkerMascot","filePath":"components/WorkspaceView.tsx","line":3174,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::AgentFlowNode","type":"function","name":"AgentFlowNode","filePath":"components/WorkspaceView.tsx","line":3233,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::WorkspaceViewInner","type":"function","name":"WorkspaceViewInner","filePath":"components/WorkspaceView.tsx","line":3394,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::updateMascotTheme","type":"function","name":"updateMascotTheme","filePath":"components/WorkspaceView.tsx","line":3414,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::safeName","type":"function","name":"safeName","filePath":"components/WorkspaceView.tsx","line":3533,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::safeName","type":"function","name":"safeName","filePath":"components/WorkspaceView.tsx","line":3562,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleAddAgent","type":"function","name":"handleAddAgent","filePath":"components/WorkspaceView.tsx","line":3618,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleEditAgent","type":"function","name":"handleEditAgent","filePath":"components/WorkspaceView.tsx","line":3637,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleAddInput","type":"function","name":"handleAddInput","filePath":"components/WorkspaceView.tsx","line":3645,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleCreatePipeline","type":"function","name":"handleCreatePipeline","filePath":"components/WorkspaceView.tsx","line":3655,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleExportTemplate","type":"function","name":"handleExportTemplate","filePath":"components/WorkspaceView.tsx","line":3667,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleImportTemplate","type":"function","name":"handleImportTemplate","filePath":"components/WorkspaceView.tsx","line":3685,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleRunAll","type":"function","name":"handleRunAll","filePath":"components/WorkspaceView.tsx","line":3702,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleStartDaemon","type":"function","name":"handleStartDaemon","filePath":"components/WorkspaceView.tsx","line":3703,"exported":false,"module":"components"},{"id":"components/WorkspaceView.tsx::handleStopDaemon","type":"function","name":"handleStopDaemon","filePath":"components/WorkspaceView.tsx","line":3708,"exported":false,"module":"components"},{"id":"hooks/useSidebarResize.ts","type":"file","name":"useSidebarResize.ts","filePath":"hooks/useSidebarResize.ts","exported":false,"module":"hooks"},{"id":"hooks/useSidebarResize.ts::useSidebarResize","type":"function","name":"useSidebarResize","filePath":"hooks/useSidebarResize.ts","line":19,"exported":true,"module":"hooks"},{"id":"hooks/useSidebarResize.ts::onMove","type":"function","name":"onMove","filePath":"hooks/useSidebarResize.ts","line":34,"exported":false,"module":"hooks"},{"id":"hooks/useSidebarResize.ts::onUp","type":"function","name":"onUp","filePath":"hooks/useSidebarResize.ts","line":41,"exported":false,"module":"hooks"},{"id":"instrumentation.ts","type":"file","name":"instrumentation.ts","filePath":"instrumentation.ts","exported":false,"module":"_root"},{"id":"instrumentation.ts::register","type":"function","name":"register","filePath":"instrumentation.ts","line":5,"exported":true,"module":"_root"},{"id":"lib/agents/claude-adapter.ts","type":"file","name":"claude-adapter.ts","filePath":"lib/agents/claude-adapter.ts","exported":false,"module":"lib"},{"id":"lib/agents/claude-adapter.ts::resolveClaudePath","type":"function","name":"resolveClaudePath","filePath":"lib/agents/claude-adapter.ts","line":19,"exported":false,"module":"lib"},{"id":"lib/agents/claude-adapter.ts::createClaudeAdapter","type":"function","name":"createClaudeAdapter","filePath":"lib/agents/claude-adapter.ts","line":37,"exported":true,"module":"lib"},{"id":"lib/agents/claude-adapter.ts::detectClaude","type":"function","name":"detectClaude","filePath":"lib/agents/claude-adapter.ts","line":87,"exported":true,"module":"lib"},{"id":"lib/agents/generic-adapter.ts","type":"file","name":"generic-adapter.ts","filePath":"lib/agents/generic-adapter.ts","exported":false,"module":"lib"},{"id":"lib/agents/generic-adapter.ts::createGenericAdapter","type":"function","name":"createGenericAdapter","filePath":"lib/agents/generic-adapter.ts","line":9,"exported":true,"module":"lib"},{"id":"lib/agents/generic-adapter.ts::detectAgent","type":"function","name":"detectAgent","filePath":"lib/agents/generic-adapter.ts","line":44,"exported":true,"module":"lib"},{"id":"lib/agents/index.ts","type":"file","name":"index.ts","filePath":"lib/agents/index.ts","exported":false,"module":"lib"},{"id":"lib/agents/index.ts::listAgents","type":"function","name":"listAgents","filePath":"lib/agents/index.ts","line":17,"exported":true,"module":"lib"},{"id":"lib/agents/index.ts::getDefaultAgentId","type":"function","name":"getDefaultAgentId","filePath":"lib/agents/index.ts","line":107,"exported":true,"module":"lib"},{"id":"lib/agents/index.ts::getAgent","type":"function","name":"getAgent","filePath":"lib/agents/index.ts","line":113,"exported":true,"module":"lib"},{"id":"lib/agents/index.ts::clearAgentCache","type":"function","name":"clearAgentCache","filePath":"lib/agents/index.ts","line":166,"exported":true,"module":"lib"},{"id":"lib/agents/index.ts::autoDetectAgents","type":"function","name":"autoDetectAgents","filePath":"lib/agents/index.ts","line":171,"exported":true,"module":"lib"},{"id":"lib/agents/index.ts::resolveTerminalLaunch","type":"function","name":"resolveTerminalLaunch","filePath":"lib/agents/index.ts","line":200,"exported":true,"module":"lib"},{"id":"lib/agents/types.ts","type":"file","name":"types.ts","filePath":"lib/agents/types.ts","exported":false,"module":"lib"},{"id":"lib/artifacts.ts","type":"file","name":"artifacts.ts","filePath":"lib/artifacts.ts","exported":false,"module":"lib"},{"id":"lib/artifacts.ts::artifactsDir","type":"function","name":"artifactsDir","filePath":"lib/artifacts.ts","line":25,"exported":false,"module":"lib"},{"id":"lib/artifacts.ts::createArtifact","type":"function","name":"createArtifact","filePath":"lib/artifacts.ts","line":31,"exported":true,"module":"lib"},{"id":"lib/artifacts.ts::getArtifact","type":"function","name":"getArtifact","filePath":"lib/artifacts.ts","line":52,"exported":true,"module":"lib"},{"id":"lib/artifacts.ts::listArtifacts","type":"function","name":"listArtifacts","filePath":"lib/artifacts.ts","line":58,"exported":true,"module":"lib"},{"id":"lib/artifacts.ts::deleteArtifact","type":"function","name":"deleteArtifact","filePath":"lib/artifacts.ts","line":69,"exported":true,"module":"lib"},{"id":"lib/artifacts.ts::extractArtifacts","type":"function","name":"extractArtifacts","filePath":"lib/artifacts.ts","line":74,"exported":true,"module":"lib"},{"id":"lib/artifacts.ts::writeArtifactToProject","type":"function","name":"writeArtifactToProject","filePath":"lib/artifacts.ts","line":100,"exported":true,"module":"lib"},{"id":"lib/auth.ts","type":"file","name":"auth.ts","filePath":"lib/auth.ts","exported":false,"module":"lib"},{"id":"lib/claude-process.ts","type":"file","name":"claude-process.ts","filePath":"lib/claude-process.ts","exported":false,"module":"lib"},{"id":"lib/claude-process.ts::createClaudeSession","type":"function","name":"createClaudeSession","filePath":"lib/claude-process.ts","line":42,"exported":true,"module":"lib"},{"id":"lib/claude-process.ts::sendToClaudeSession","type":"function","name":"sendToClaudeSession","filePath":"lib/claude-process.ts","line":67,"exported":true,"module":"lib"},{"id":"lib/claude-process.ts::parseClaudeOutput","type":"function","name":"parseClaudeOutput","filePath":"lib/claude-process.ts","line":203,"exported":false,"module":"lib"},{"id":"lib/claude-process.ts::broadcast","type":"function","name":"broadcast","filePath":"lib/claude-process.ts","line":290,"exported":false,"module":"lib"},{"id":"lib/claude-process.ts::attachToProcess","type":"function","name":"attachToProcess","filePath":"lib/claude-process.ts","line":299,"exported":true,"module":"lib"},{"id":"lib/claude-process.ts::killProcess","type":"function","name":"killProcess","filePath":"lib/claude-process.ts","line":315,"exported":true,"module":"lib"},{"id":"lib/claude-process.ts::deleteSession","type":"function","name":"deleteSession","filePath":"lib/claude-process.ts","line":328,"exported":true,"module":"lib"},{"id":"lib/claude-process.ts::listProcesses","type":"function","name":"listProcesses","filePath":"lib/claude-process.ts","line":339,"exported":true,"module":"lib"},{"id":"lib/claude-process.ts::getProcess","type":"function","name":"getProcess","filePath":"lib/claude-process.ts","line":349,"exported":true,"module":"lib"},{"id":"lib/claude-sessions.ts","type":"file","name":"claude-sessions.ts","filePath":"lib/claude-sessions.ts","exported":false,"module":"lib"},{"id":"lib/claude-sessions.ts::projectPathToClaudeDir","type":"function","name":"projectPathToClaudeDir","filePath":"lib/claude-sessions.ts","line":34,"exported":true,"module":"lib"},{"id":"lib/claude-sessions.ts::getClaudeDirForProject","type":"function","name":"getClaudeDirForProject","filePath":"lib/claude-sessions.ts","line":43,"exported":true,"module":"lib"},{"id":"lib/claude-sessions.ts::listClaudeSessions","type":"function","name":"listClaudeSessions","filePath":"lib/claude-sessions.ts","line":53,"exported":true,"module":"lib"},{"id":"lib/claude-sessions.ts::parseSessionLine","type":"function","name":"parseSessionLine","filePath":"lib/claude-sessions.ts","line":104,"exported":true,"module":"lib"},{"id":"lib/claude-sessions.ts::getSessionFilePath","type":"function","name":"getSessionFilePath","filePath":"lib/claude-sessions.ts","line":178,"exported":true,"module":"lib"},{"id":"lib/claude-sessions.ts::readSessionEntries","type":"function","name":"readSessionEntries","filePath":"lib/claude-sessions.ts","line":188,"exported":true,"module":"lib"},{"id":"lib/claude-sessions.ts::deleteSession","type":"function","name":"deleteSession","filePath":"lib/claude-sessions.ts","line":201,"exported":true,"module":"lib"},{"id":"lib/claude-sessions.ts::tailSessionFile","type":"function","name":"tailSessionFile","filePath":"lib/claude-sessions.ts","line":214,"exported":true,"module":"lib"},{"id":"lib/claude-sessions.ts::readNewBytes","type":"function","name":"readNewBytes","filePath":"lib/claude-sessions.ts","line":225,"exported":false,"module":"lib"},{"id":"lib/claude-templates.ts","type":"file","name":"claude-templates.ts","filePath":"lib/claude-templates.ts","exported":false,"module":"lib"},{"id":"lib/claude-templates.ts::ensureDir","type":"function","name":"ensureDir","filePath":"lib/claude-templates.ts","line":26,"exported":false,"module":"lib"},{"id":"lib/claude-templates.ts::ensureBuiltins","type":"function","name":"ensureBuiltins","filePath":"lib/claude-templates.ts","line":76,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::parseTemplate","type":"function","name":"parseTemplate","filePath":"lib/claude-templates.ts","line":89,"exported":false,"module":"lib"},{"id":"lib/claude-templates.ts::listTemplates","type":"function","name":"listTemplates","filePath":"lib/claude-templates.ts","line":109,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::getTemplate","type":"function","name":"getTemplate","filePath":"lib/claude-templates.ts","line":116,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::saveTemplate","type":"function","name":"saveTemplate","filePath":"lib/claude-templates.ts","line":122,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::setTemplateDefault","type":"function","name":"setTemplateDefault","filePath":"lib/claude-templates.ts","line":132,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::applyDefaultTemplates","type":"function","name":"applyDefaultTemplates","filePath":"lib/claude-templates.ts","line":146,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::deleteTemplate","type":"function","name":"deleteTemplate","filePath":"lib/claude-templates.ts","line":160,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::MARKER_START","type":"function","name":"MARKER_START","filePath":"lib/claude-templates.ts","line":169,"exported":false,"module":"lib"},{"id":"lib/claude-templates.ts::MARKER_END","type":"function","name":"MARKER_END","filePath":"lib/claude-templates.ts","line":170,"exported":false,"module":"lib"},{"id":"lib/claude-templates.ts::isInjected","type":"function","name":"isInjected","filePath":"lib/claude-templates.ts","line":173,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::getInjectedTemplates","type":"function","name":"getInjectedTemplates","filePath":"lib/claude-templates.ts","line":180,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::injectTemplate","type":"function","name":"injectTemplate","filePath":"lib/claude-templates.ts","line":193,"exported":true,"module":"lib"},{"id":"lib/claude-templates.ts::removeTemplate","type":"function","name":"removeTemplate","filePath":"lib/claude-templates.ts","line":213,"exported":true,"module":"lib"},{"id":"lib/cloudflared.ts","type":"file","name":"cloudflared.ts","filePath":"lib/cloudflared.ts","exported":false,"module":"lib"},{"id":"lib/cloudflared.ts::getDownloadUrl","type":"function","name":"getDownloadUrl","filePath":"lib/cloudflared.ts","line":20,"exported":false,"module":"lib"},{"id":"lib/cloudflared.ts::followRedirects","type":"function","name":"followRedirects","filePath":"lib/cloudflared.ts","line":45,"exported":false,"module":"lib"},{"id":"lib/cloudflared.ts::downloadCloudflared","type":"function","name":"downloadCloudflared","filePath":"lib/cloudflared.ts","line":79,"exported":true,"module":"lib"},{"id":"lib/cloudflared.ts::isInstalled","type":"function","name":"isInstalled","filePath":"lib/cloudflared.ts","line":126,"exported":true,"module":"lib"},{"id":"lib/cloudflared.ts::saveTunnelState","type":"function","name":"saveTunnelState","filePath":"lib/cloudflared.ts","line":151,"exported":false,"module":"lib"},{"id":"lib/cloudflared.ts::loadTunnelState","type":"function","name":"loadTunnelState","filePath":"lib/cloudflared.ts","line":159,"exported":false,"module":"lib"},{"id":"lib/cloudflared.ts::pushLog","type":"function","name":"pushLog","filePath":"lib/cloudflared.ts","line":167,"exported":false,"module":"lib"},{"id":"lib/cloudflared.ts::startTunnel","type":"function","name":"startTunnel","filePath":"lib/cloudflared.ts","line":172,"exported":true,"module":"lib"},{"id":"lib/cloudflared.ts::handleOutput","type":"function","name":"handleOutput","filePath":"lib/cloudflared.ts","line":226,"exported":false,"module":"lib"},{"id":"lib/cloudflared.ts::stopTunnel","type":"function","name":"stopTunnel","filePath":"lib/cloudflared.ts","line":291,"exported":true,"module":"lib"},{"id":"lib/cloudflared.ts::getTunnelStatus","type":"function","name":"getTunnelStatus","filePath":"lib/cloudflared.ts","line":309,"exported":true,"module":"lib"},{"id":"lib/cloudflared.ts::checkTunnelHealth","type":"function","name":"checkTunnelHealth","filePath":"lib/cloudflared.ts","line":344,"exported":false,"module":"lib"},{"id":"lib/cloudflared.ts::startHealthCheck","type":"function","name":"startHealthCheck","filePath":"lib/cloudflared.ts","line":413,"exported":true,"module":"lib"},{"id":"lib/cloudflared.ts::stopHealthCheck","type":"function","name":"stopHealthCheck","filePath":"lib/cloudflared.ts","line":418,"exported":true,"module":"lib"},{"id":"lib/crypto.ts","type":"file","name":"crypto.ts","filePath":"lib/crypto.ts","exported":false,"module":"lib"},{"id":"lib/crypto.ts::getEncryptionKey","type":"function","name":"getEncryptionKey","filePath":"lib/crypto.ts","line":14,"exported":false,"module":"lib"},{"id":"lib/crypto.ts::encryptSecret","type":"function","name":"encryptSecret","filePath":"lib/crypto.ts","line":26,"exported":true,"module":"lib"},{"id":"lib/crypto.ts::decryptSecret","type":"function","name":"decryptSecret","filePath":"lib/crypto.ts","line":37,"exported":true,"module":"lib"},{"id":"lib/crypto.ts::isEncrypted","type":"function","name":"isEncrypted","filePath":"lib/crypto.ts","line":55,"exported":true,"module":"lib"},{"id":"lib/crypto.ts::hashSecret","type":"function","name":"hashSecret","filePath":"lib/crypto.ts","line":60,"exported":true,"module":"lib"},{"id":"lib/delivery.ts","type":"file","name":"delivery.ts","filePath":"lib/delivery.ts","exported":false,"module":"lib"},{"id":"lib/delivery.ts::ensureDir","type":"function","name":"ensureDir","filePath":"lib/delivery.ts","line":22,"exported":false,"module":"lib"},{"id":"lib/delivery.ts::deliveryPath","type":"function","name":"deliveryPath","filePath":"lib/delivery.ts","line":72,"exported":false,"module":"lib"},{"id":"lib/delivery.ts::saveDelivery","type":"function","name":"saveDelivery","filePath":"lib/delivery.ts","line":76,"exported":false,"module":"lib"},{"id":"lib/delivery.ts::getDelivery","type":"function","name":"getDelivery","filePath":"lib/delivery.ts","line":83,"exported":true,"module":"lib"},{"id":"lib/delivery.ts::listDeliveries","type":"function","name":"listDeliveries","filePath":"lib/delivery.ts","line":89,"exported":true,"module":"lib"},{"id":"lib/delivery.ts::deleteDelivery","type":"function","name":"deleteDelivery","filePath":"lib/delivery.ts","line":101,"exported":true,"module":"lib"},{"id":"lib/delivery.ts::buildPhasePrompt","type":"function","name":"buildPhasePrompt","filePath":"lib/delivery.ts","line":273,"exported":false,"module":"lib"},{"id":"lib/delivery.ts::createDelivery","type":"function","name":"createDelivery","filePath":"lib/delivery.ts","line":296,"exported":true,"module":"lib"},{"id":"lib/delivery.ts::buildStandardPrompt","type":"function","name":"buildStandardPrompt","filePath":"lib/delivery.ts","line":380,"exported":false,"module":"lib"},{"id":"lib/delivery.ts::dispatchPhase","type":"function","name":"dispatchPhase","filePath":"lib/delivery.ts","line":430,"exported":false,"module":"lib"},{"id":"lib/delivery.ts::setupDeliveryTaskListener","type":"function","name":"setupDeliveryTaskListener","filePath":"lib/delivery.ts","line":504,"exported":false,"module":"lib"},{"id":"lib/delivery.ts::scheduleReadyPhases","type":"function","name":"scheduleReadyPhases","filePath":"lib/delivery.ts","line":593,"exported":false,"module":"lib"},{"id":"lib/delivery.ts::approveDeliveryPhase","type":"function","name":"approveDeliveryPhase","filePath":"lib/delivery.ts","line":635,"exported":true,"module":"lib"},{"id":"lib/delivery.ts::rejectDeliveryPhase","type":"function","name":"rejectDeliveryPhase","filePath":"lib/delivery.ts","line":659,"exported":true,"module":"lib"},{"id":"lib/delivery.ts::sendToAgent","type":"function","name":"sendToAgent","filePath":"lib/delivery.ts","line":683,"exported":true,"module":"lib"},{"id":"lib/delivery.ts::cancelDelivery","type":"function","name":"cancelDelivery","filePath":"lib/delivery.ts","line":712,"exported":true,"module":"lib"},{"id":"lib/delivery.ts::retryPhase","type":"function","name":"retryPhase","filePath":"lib/delivery.ts","line":737,"exported":true,"module":"lib"},{"id":"lib/delivery.ts::recoverStuckDeliveries","type":"function","name":"recoverStuckDeliveries","filePath":"lib/delivery.ts","line":757,"exported":false,"module":"lib"},{"id":"lib/dirs.ts","type":"file","name":"dirs.ts","filePath":"lib/dirs.ts","exported":false,"module":"lib"},{"id":"lib/dirs.ts::getConfigDir","type":"function","name":"getConfigDir","filePath":"lib/dirs.ts","line":15,"exported":true,"module":"lib"},{"id":"lib/dirs.ts::getDataDir","type":"function","name":"getDataDir","filePath":"lib/dirs.ts","line":20,"exported":true,"module":"lib"},{"id":"lib/dirs.ts::migrateDataDir","type":"function","name":"migrateDataDir","filePath":"lib/dirs.ts","line":42,"exported":true,"module":"lib"},{"id":"lib/dirs.ts::getClaudeDir","type":"function","name":"getClaudeDir","filePath":"lib/dirs.ts","line":89,"exported":true,"module":"lib"},{"id":"lib/flows.ts","type":"file","name":"flows.ts","filePath":"lib/flows.ts","exported":false,"module":"lib"},{"id":"lib/flows.ts::listFlows","type":"function","name":"listFlows","filePath":"lib/flows.ts","line":31,"exported":true,"module":"lib"},{"id":"lib/flows.ts::getFlow","type":"function","name":"getFlow","filePath":"lib/flows.ts","line":53,"exported":true,"module":"lib"},{"id":"lib/flows.ts::runFlow","type":"function","name":"runFlow","filePath":"lib/flows.ts","line":62,"exported":true,"module":"lib"},{"id":"lib/forge-mcp-server.ts","type":"file","name":"forge-mcp-server.ts","filePath":"lib/forge-mcp-server.ts","exported":false,"module":"lib"},{"id":"lib/forge-mcp-server.ts::setOrchestratorResolver","type":"function","name":"setOrchestratorResolver","filePath":"lib/forge-mcp-server.ts","line":23,"exported":true,"module":"lib"},{"id":"lib/forge-mcp-server.ts::getOrch","type":"function","name":"getOrch","filePath":"lib/forge-mcp-server.ts","line":27,"exported":false,"module":"lib"},{"id":"lib/forge-mcp-server.ts::resolveAgentFromOrch","type":"function","name":"resolveAgentFromOrch","filePath":"lib/forge-mcp-server.ts","line":40,"exported":false,"module":"lib"},{"id":"lib/forge-mcp-server.ts::createForgeMcpServer","type":"function","name":"createForgeMcpServer","filePath":"lib/forge-mcp-server.ts","line":51,"exported":false,"module":"lib"},{"id":"lib/forge-mcp-server.ts::ctx","type":"function","name":"ctx","filePath":"lib/forge-mcp-server.ts","line":58,"exported":false,"module":"lib"},{"id":"lib/forge-mcp-server.ts::getLabel","type":"function","name":"getLabel","filePath":"lib/forge-mcp-server.ts","line":118,"exported":false,"module":"lib"},{"id":"lib/forge-mcp-server.ts::getLabel","type":"function","name":"getLabel","filePath":"lib/forge-mcp-server.ts","line":270,"exported":false,"module":"lib"},{"id":"lib/forge-mcp-server.ts::startMcpServer","type":"function","name":"startMcpServer","filePath":"lib/forge-mcp-server.ts","line":626,"exported":true,"module":"lib"},{"id":"lib/forge-mcp-server.ts::stopMcpServer","type":"function","name":"stopMcpServer","filePath":"lib/forge-mcp-server.ts","line":707,"exported":true,"module":"lib"},{"id":"lib/forge-mcp-server.ts::getMcpPort","type":"function","name":"getMcpPort","filePath":"lib/forge-mcp-server.ts","line":715,"exported":true,"module":"lib"},{"id":"lib/init.ts","type":"file","name":"init.ts","filePath":"lib/init.ts","exported":false,"module":"lib"},{"id":"lib/init.ts::migrateSecrets","type":"function","name":"migrateSecrets","filePath":"lib/init.ts","line":21,"exported":false,"module":"lib"},{"id":"lib/init.ts::autoDetectAgents","type":"function","name":"autoDetectAgents","filePath":"lib/init.ts","line":49,"exported":false,"module":"lib"},{"id":"lib/init.ts::ensureInitialized","type":"function","name":"ensureInitialized","filePath":"lib/init.ts","line":70,"exported":true,"module":"lib"},{"id":"lib/init.ts::restartTelegramBot","type":"function","name":"restartTelegramBot","filePath":"lib/init.ts","line":179,"exported":true,"module":"lib"},{"id":"lib/init.ts::startTelegramProcess","type":"function","name":"startTelegramProcess","filePath":"lib/init.ts","line":192,"exported":false,"module":"lib"},{"id":"lib/init.ts::startTerminalProcess","type":"function","name":"startTerminalProcess","filePath":"lib/init.ts","line":209,"exported":false,"module":"lib"},{"id":"lib/init.ts::startWorkspaceProcess","type":"function","name":"startWorkspaceProcess","filePath":"lib/init.ts","line":235,"exported":false,"module":"lib"},{"id":"lib/init.ts::launchWorkspaceDaemon","type":"function","name":"launchWorkspaceDaemon","filePath":"lib/init.ts","line":257,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts","type":"file","name":"issue-scanner.ts","filePath":"lib/issue-scanner.ts","exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::db","type":"function","name":"db","filePath":"lib/issue-scanner.ts","line":19,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::migrateTable","type":"function","name":"migrateTable","filePath":"lib/issue-scanner.ts","line":32,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::ensureTable","type":"function","name":"ensureTable","filePath":"lib/issue-scanner.ts","line":36,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::getConfig","type":"function","name":"getConfig","filePath":"lib/issue-scanner.ts","line":62,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::saveConfig","type":"function","name":"saveConfig","filePath":"lib/issue-scanner.ts","line":76,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::listConfigs","type":"function","name":"listConfigs","filePath":"lib/issue-scanner.ts","line":84,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::getRepoFromProject","type":"function","name":"getRepoFromProject","filePath":"lib/issue-scanner.ts","line":98,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::fetchOpenIssues","type":"function","name":"fetchOpenIssues","filePath":"lib/issue-scanner.ts","line":113,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::isProcessed","type":"function","name":"isProcessed","filePath":"lib/issue-scanner.ts","line":128,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::markProcessed","type":"function","name":"markProcessed","filePath":"lib/issue-scanner.ts","line":134,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::updateProcessedStatus","type":"function","name":"updateProcessedStatus","filePath":"lib/issue-scanner.ts","line":141,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::resetProcessedIssue","type":"function","name":"resetProcessedIssue","filePath":"lib/issue-scanner.ts","line":152,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::getProcessedIssues","type":"function","name":"getProcessedIssues","filePath":"lib/issue-scanner.ts","line":157,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::saveLastScan","type":"function","name":"saveLastScan","filePath":"lib/issue-scanner.ts","line":170,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::loadLastScan","type":"function","name":"loadLastScan","filePath":"lib/issue-scanner.ts","line":176,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::scanAndTrigger","type":"function","name":"scanAndTrigger","filePath":"lib/issue-scanner.ts","line":183,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::startScanner","type":"function","name":"startScanner","filePath":"lib/issue-scanner.ts","line":223,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::startInterval","type":"function","name":"startInterval","filePath":"lib/issue-scanner.ts","line":245,"exported":false,"module":"lib"},{"id":"lib/issue-scanner.ts::getNextScanTime","type":"function","name":"getNextScanTime","filePath":"lib/issue-scanner.ts","line":274,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::restartScanner","type":"function","name":"restartScanner","filePath":"lib/issue-scanner.ts","line":285,"exported":true,"module":"lib"},{"id":"lib/issue-scanner.ts::stopScanner","type":"function","name":"stopScanner","filePath":"lib/issue-scanner.ts","line":292,"exported":true,"module":"lib"},{"id":"lib/logger.ts","type":"file","name":"logger.ts","filePath":"lib/logger.ts","exported":false,"module":"lib"},{"id":"lib/logger.ts::initLogger","type":"function","name":"initLogger","filePath":"lib/logger.ts","line":13,"exported":true,"module":"lib"},{"id":"lib/logger.ts::ts","type":"function","name":"ts","filePath":"lib/logger.ts","line":35,"exported":false,"module":"lib"},{"id":"lib/logger.ts::writeToFile","type":"function","name":"writeToFile","filePath":"lib/logger.ts","line":37,"exported":false,"module":"lib"},{"id":"lib/logger.ts::sanitize","type":"function","name":"sanitize","filePath":"lib/logger.ts","line":50,"exported":false,"module":"lib"},{"id":"lib/logger.ts::format","type":"function","name":"format","filePath":"lib/logger.ts","line":58,"exported":false,"module":"lib"},{"id":"lib/memory/code-graph.ts","type":"file","name":"code-graph.ts","filePath":"lib/memory/code-graph.ts","exported":false,"module":"lib"},{"id":"lib/memory/code-graph.ts::parseFile","type":"function","name":"parseFile","filePath":"lib/memory/code-graph.ts","line":48,"exported":false,"module":"lib"},{"id":"lib/memory/code-graph.ts::getLine","type":"function","name":"getLine","filePath":"lib/memory/code-graph.ts","line":71,"exported":false,"module":"lib"},{"id":"lib/memory/code-graph.ts::visit","type":"function","name":"visit","filePath":"lib/memory/code-graph.ts","line":75,"exported":false,"module":"lib"},{"id":"lib/memory/code-graph.ts::resolveImportPath","type":"function","name":"resolveImportPath","filePath":"lib/memory/code-graph.ts","line":180,"exported":false,"module":"lib"},{"id":"lib/memory/code-graph.ts::findSourceFiles","type":"function","name":"findSourceFiles","filePath":"lib/memory/code-graph.ts","line":191,"exported":false,"module":"lib"},{"id":"lib/memory/code-graph.ts::buildCodeGraph","type":"function","name":"buildCodeGraph","filePath":"lib/memory/code-graph.ts","line":206,"exported":true,"module":"lib"},{"id":"lib/memory/code-graph.ts::findAffectedBy","type":"function","name":"findAffectedBy","filePath":"lib/memory/code-graph.ts","line":240,"exported":true,"module":"lib"},{"id":"lib/memory/code-graph.ts::bfs","type":"function","name":"bfs","filePath":"lib/memory/code-graph.ts","line":259,"exported":false,"module":"lib"},{"id":"lib/memory/code-graph.ts::incrementalUpdate","type":"function","name":"incrementalUpdate","filePath":"lib/memory/code-graph.ts","line":296,"exported":true,"module":"lib"},{"id":"lib/memory/code-graph.ts::printGraphStats","type":"function","name":"printGraphStats","filePath":"lib/memory/code-graph.ts","line":363,"exported":true,"module":"lib"},{"id":"lib/memory/install.ts","type":"file","name":"install.ts","filePath":"lib/memory/install.ts","exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts","type":"file","name":"memory-mcp-server.ts","filePath":"lib/memory/memory-mcp-server.ts","exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::ensureDir","type":"function","name":"ensureDir","filePath":"lib/memory/memory-mcp-server.ts","line":64,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::loadGraph","type":"function","name":"loadGraph","filePath":"lib/memory/memory-mcp-server.ts","line":68,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::saveGraph","type":"function","name":"saveGraph","filePath":"lib/memory/memory-mcp-server.ts","line":73,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::loadKnowledge","type":"function","name":"loadKnowledge","filePath":"lib/memory/memory-mcp-server.ts","line":78,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::saveKnowledge","type":"function","name":"saveKnowledge","filePath":"lib/memory/memory-mcp-server.ts","line":83,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::loadMeta","type":"function","name":"loadMeta","filePath":"lib/memory/memory-mcp-server.ts","line":88,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::saveMeta","type":"function","name":"saveMeta","filePath":"lib/memory/memory-mcp-server.ts","line":93,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::getHeadCommit","type":"function","name":"getHeadCommit","filePath":"lib/memory/memory-mcp-server.ts","line":98,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::getChangedFiles","type":"function","name":"getChangedFiles","filePath":"lib/memory/memory-mcp-server.ts","line":104,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::ensureGraph","type":"function","name":"ensureGraph","filePath":"lib/memory/memory-mcp-server.ts","line":115,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::markStaleKnowledge","type":"function","name":"markStaleKnowledge","filePath":"lib/memory/memory-mcp-server.ts","line":168,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::genId","type":"function","name":"genId","filePath":"lib/memory/memory-mcp-server.ts","line":187,"exported":false,"module":"lib"},{"id":"lib/memory/memory-mcp-server.ts::main","type":"function","name":"main","filePath":"lib/memory/memory-mcp-server.ts","line":397,"exported":false,"module":"lib"},{"id":"lib/notifications.ts","type":"file","name":"notifications.ts","filePath":"lib/notifications.ts","exported":false,"module":"lib"},{"id":"lib/notifications.ts::db","type":"function","name":"db","filePath":"lib/notifications.ts","line":20,"exported":false,"module":"lib"},{"id":"lib/notifications.ts::addNotification","type":"function","name":"addNotification","filePath":"lib/notifications.ts","line":25,"exported":true,"module":"lib"},{"id":"lib/notifications.ts::getNotifications","type":"function","name":"getNotifications","filePath":"lib/notifications.ts","line":32,"exported":true,"module":"lib"},{"id":"lib/notifications.ts::getUnreadCount","type":"function","name":"getUnreadCount","filePath":"lib/notifications.ts","line":48,"exported":true,"module":"lib"},{"id":"lib/notifications.ts::markRead","type":"function","name":"markRead","filePath":"lib/notifications.ts","line":54,"exported":true,"module":"lib"},{"id":"lib/notifications.ts::markAllRead","type":"function","name":"markAllRead","filePath":"lib/notifications.ts","line":59,"exported":true,"module":"lib"},{"id":"lib/notifications.ts::deleteNotification","type":"function","name":"deleteNotification","filePath":"lib/notifications.ts","line":64,"exported":true,"module":"lib"},{"id":"lib/notifications.ts::cleanupNotifications","type":"function","name":"cleanupNotifications","filePath":"lib/notifications.ts","line":69,"exported":true,"module":"lib"},{"id":"lib/notify.ts","type":"file","name":"notify.ts","filePath":"lib/notify.ts","exported":false,"module":"lib"},{"id":"lib/notify.ts::notifyTaskComplete","type":"function","name":"notifyTaskComplete","filePath":"lib/notify.ts","line":9,"exported":true,"module":"lib"},{"id":"lib/notify.ts::notifyTaskFailed","type":"function","name":"notifyTaskFailed","filePath":"lib/notify.ts","line":45,"exported":true,"module":"lib"},{"id":"lib/notify.ts::sendTelegram","type":"function","name":"sendTelegram","filePath":"lib/notify.ts","line":72,"exported":false,"module":"lib"},{"id":"lib/notify.ts::esc","type":"function","name":"esc","filePath":"lib/notify.ts","line":100,"exported":false,"module":"lib"},{"id":"lib/notify.ts::formatDuration","type":"function","name":"formatDuration","filePath":"lib/notify.ts","line":104,"exported":false,"module":"lib"},{"id":"lib/password.ts","type":"file","name":"password.ts","filePath":"lib/password.ts","exported":false,"module":"lib"},{"id":"lib/password.ts::generateSessionCode","type":"function","name":"generateSessionCode","filePath":"lib/password.ts","line":22,"exported":false,"module":"lib"},{"id":"lib/password.ts::readSessionCode","type":"function","name":"readSessionCode","filePath":"lib/password.ts","line":26,"exported":false,"module":"lib"},{"id":"lib/password.ts::saveSessionCode","type":"function","name":"saveSessionCode","filePath":"lib/password.ts","line":36,"exported":false,"module":"lib"},{"id":"lib/password.ts::getAdminPassword","type":"function","name":"getAdminPassword","filePath":"lib/password.ts","line":43,"exported":true,"module":"lib"},{"id":"lib/password.ts::getSessionCode","type":"function","name":"getSessionCode","filePath":"lib/password.ts","line":54,"exported":true,"module":"lib"},{"id":"lib/password.ts::rotateSessionCode","type":"function","name":"rotateSessionCode","filePath":"lib/password.ts","line":59,"exported":true,"module":"lib"},{"id":"lib/password.ts::verifyLogin","type":"function","name":"verifyLogin","filePath":"lib/password.ts","line":72,"exported":true,"module":"lib"},{"id":"lib/password.ts::verifyAdmin","type":"function","name":"verifyAdmin","filePath":"lib/password.ts","line":92,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts","type":"file","name":"pipeline-scheduler.ts","filePath":"lib/pipeline-scheduler.ts","exported":false,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::db","type":"function","name":"db","filePath":"lib/pipeline-scheduler.ts","line":18,"exported":false,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::toIsoUTC","type":"function","name":"toIsoUTC","filePath":"lib/pipeline-scheduler.ts","line":21,"exported":false,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::getBindings","type":"function","name":"getBindings","filePath":"lib/pipeline-scheduler.ts","line":51,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::getAllScheduledBindings","type":"function","name":"getAllScheduledBindings","filePath":"lib/pipeline-scheduler.ts","line":65,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::addBinding","type":"function","name":"addBinding","filePath":"lib/pipeline-scheduler.ts","line":79,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::removeBinding","type":"function","name":"removeBinding","filePath":"lib/pipeline-scheduler.ts","line":86,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::updateBinding","type":"function","name":"updateBinding","filePath":"lib/pipeline-scheduler.ts","line":91,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::updateLastRunAt","type":"function","name":"updateLastRunAt","filePath":"lib/pipeline-scheduler.ts","line":102,"exported":false,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::recordRun","type":"function","name":"recordRun","filePath":"lib/pipeline-scheduler.ts","line":109,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::updateRun","type":"function","name":"updateRun","filePath":"lib/pipeline-scheduler.ts","line":118,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::getRuns","type":"function","name":"getRuns","filePath":"lib/pipeline-scheduler.ts","line":128,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::deleteRun","type":"function","name":"deleteRun","filePath":"lib/pipeline-scheduler.ts","line":145,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::isDuplicate","type":"function","name":"isDuplicate","filePath":"lib/pipeline-scheduler.ts","line":151,"exported":false,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::resetDedup","type":"function","name":"resetDedup","filePath":"lib/pipeline-scheduler.ts","line":160,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::triggerPipeline","type":"function","name":"triggerPipeline","filePath":"lib/pipeline-scheduler.ts","line":168,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::syncRunStatus","type":"function","name":"syncRunStatus","filePath":"lib/pipeline-scheduler.ts","line":186,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::getRepoFromProject","type":"function","name":"getRepoFromProject","filePath":"lib/pipeline-scheduler.ts","line":207,"exported":false,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::fetchOpenIssues","type":"function","name":"fetchOpenIssues","filePath":"lib/pipeline-scheduler.ts","line":222,"exported":false,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::scanAndTriggerIssues","type":"function","name":"scanAndTriggerIssues","filePath":"lib/pipeline-scheduler.ts","line":237,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::startScheduler","type":"function","name":"startScheduler","filePath":"lib/pipeline-scheduler.ts","line":312,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::stopScheduler","type":"function","name":"stopScheduler","filePath":"lib/pipeline-scheduler.ts","line":324,"exported":true,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::tickScheduler","type":"function","name":"tickScheduler","filePath":"lib/pipeline-scheduler.ts","line":332,"exported":false,"module":"lib"},{"id":"lib/pipeline-scheduler.ts::getNextRunTime","type":"function","name":"getNextRunTime","filePath":"lib/pipeline-scheduler.ts","line":368,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts","type":"file","name":"pipeline.ts","filePath":"lib/pipeline.ts","exported":false,"module":"lib"},{"id":"lib/pipeline.ts::listWorkflows","type":"function","name":"listWorkflows","filePath":"lib/pipeline.ts","line":269,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts::getWorkflow","type":"function","name":"getWorkflow","filePath":"lib/pipeline.ts","line":295,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts::parseWorkflow","type":"function","name":"parseWorkflow","filePath":"lib/pipeline.ts","line":299,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::ensureDir","type":"function","name":"ensureDir","filePath":"lib/pipeline.ts","line":362,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::savePipeline","type":"function","name":"savePipeline","filePath":"lib/pipeline.ts","line":366,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::getPipeline","type":"function","name":"getPipeline","filePath":"lib/pipeline.ts","line":371,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts::deletePipeline","type":"function","name":"deletePipeline","filePath":"lib/pipeline.ts","line":379,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts::listPipelines","type":"function","name":"listPipelines","filePath":"lib/pipeline.ts","line":391,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts::shellEscape","type":"function","name":"shellEscape","filePath":"lib/pipeline.ts","line":408,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::shellEscapeAnsiC","type":"function","name":"shellEscapeAnsiC","filePath":"lib/pipeline.ts","line":414,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::resolveTemplate","type":"function","name":"resolveTemplate","filePath":"lib/pipeline.ts","line":423,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::acquireProjectLock","type":"function","name":"acquireProjectLock","filePath":"lib/pipeline.ts","line":454,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::releaseProjectLock","type":"function","name":"releaseProjectLock","filePath":"lib/pipeline.ts","line":466,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::startPipeline","type":"function","name":"startPipeline","filePath":"lib/pipeline.ts","line":474,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts::startConversationPipeline","type":"function","name":"startConversationPipeline","filePath":"lib/pipeline.ts","line":527,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::scheduleNextConversationTurn","type":"function","name":"scheduleNextConversationTurn","filePath":"lib/pipeline.ts","line":571,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::resolveAgentNames","type":"function","name":"resolveAgentNames","filePath":"lib/pipeline.ts","line":627,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::setupConversationTaskListener","type":"function","name":"setupConversationTaskListener","filePath":"lib/pipeline.ts","line":637,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::buildConversationContext","type":"function","name":"buildConversationContext","filePath":"lib/pipeline.ts","line":705,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::formatMessage","type":"function","name":"formatMessage","filePath":"lib/pipeline.ts","line":760,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::extractSummaryLine","type":"function","name":"extractSummaryLine","filePath":"lib/pipeline.ts","line":770,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::checkConversationStopCondition","type":"function","name":"checkConversationStopCondition","filePath":"lib/pipeline.ts","line":776,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::finishConversation","type":"function","name":"finishConversation","filePath":"lib/pipeline.ts","line":810,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::cancelConversation","type":"function","name":"cancelConversation","filePath":"lib/pipeline.ts","line":830,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts::injectConversationMessage","type":"function","name":"injectConversationMessage","filePath":"lib/pipeline.ts","line":854,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts::recoverConversationPipeline","type":"function","name":"recoverConversationPipeline","filePath":"lib/pipeline.ts","line":895,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::advanceConversation","type":"function","name":"advanceConversation","filePath":"lib/pipeline.ts","line":926,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::recoverStuckPipelines","type":"function","name":"recoverStuckPipelines","filePath":"lib/pipeline.ts","line":953,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::cancelPipeline","type":"function","name":"cancelPipeline","filePath":"lib/pipeline.ts","line":1009,"exported":true,"module":"lib"},{"id":"lib/pipeline.ts::scheduleReadyNodes","type":"function","name":"scheduleReadyNodes","filePath":"lib/pipeline.ts","line":1036,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::checkPipelineCompletion","type":"function","name":"checkPipelineCompletion","filePath":"lib/pipeline.ts","line":1179,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::setupTaskListener","type":"function","name":"setupTaskListener","filePath":"lib/pipeline.ts","line":1212,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::evaluateRoutes","type":"function","name":"evaluateRoutes","filePath":"lib/pipeline.ts","line":1305,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::topologicalSort","type":"function","name":"topologicalSort","filePath":"lib/pipeline.ts","line":1329,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::visit","type":"function","name":"visit","filePath":"lib/pipeline.ts","line":1334,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::notifyStep","type":"function","name":"notifyStep","filePath":"lib/pipeline.ts","line":1366,"exported":false,"module":"lib"},{"id":"lib/pipeline.ts::notifyPipelineComplete","type":"function","name":"notifyPipelineComplete","filePath":"lib/pipeline.ts","line":1386,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts","type":"file","name":"executor.ts","filePath":"lib/plugins/executor.ts","exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::resolveTemplate","type":"function","name":"resolveTemplate","filePath":"lib/plugins/executor.ts","line":12,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::resolveObject","type":"function","name":"resolveObject","filePath":"lib/plugins/executor.ts","line":20,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::extractValue","type":"function","name":"extractValue","filePath":"lib/plugins/executor.ts","line":31,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::extractOutputs","type":"function","name":"extractOutputs","filePath":"lib/plugins/executor.ts","line":45,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::executeHttp","type":"function","name":"executeHttp","filePath":"lib/plugins/executor.ts","line":56,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::executePoll","type":"function","name":"executePoll","filePath":"lib/plugins/executor.ts","line":89,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::evaluateCondition","type":"function","name":"evaluateCondition","filePath":"lib/plugins/executor.ts","line":122,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::executeShell","type":"function","name":"executeShell","filePath":"lib/plugins/executor.ts","line":139,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::done","type":"function","name":"done","filePath":"lib/plugins/executor.ts","line":149,"exported":false,"module":"lib"},{"id":"lib/plugins/executor.ts::executePluginAction","type":"function","name":"executePluginAction","filePath":"lib/plugins/executor.ts","line":253,"exported":true,"module":"lib"},{"id":"lib/plugins/executor.ts::executePluginWithWait","type":"function","name":"executePluginWithWait","filePath":"lib/plugins/executor.ts","line":325,"exported":true,"module":"lib"},{"id":"lib/plugins/registry.ts","type":"file","name":"registry.ts","filePath":"lib/plugins/registry.ts","exported":false,"module":"lib"},{"id":"lib/plugins/registry.ts::loadPluginYaml","type":"function","name":"loadPluginYaml","filePath":"lib/plugins/registry.ts","line":30,"exported":false,"module":"lib"},{"id":"lib/plugins/registry.ts::loadConfigs","type":"function","name":"loadConfigs","filePath":"lib/plugins/registry.ts","line":48,"exported":false,"module":"lib"},{"id":"lib/plugins/registry.ts::saveConfigs","type":"function","name":"saveConfigs","filePath":"lib/plugins/registry.ts","line":57,"exported":false,"module":"lib"},{"id":"lib/plugins/registry.ts::listPlugins","type":"function","name":"listPlugins","filePath":"lib/plugins/registry.ts","line":66,"exported":true,"module":"lib"},{"id":"lib/plugins/registry.ts::isInstalledOrHasInstance","type":"function","name":"isInstalledOrHasInstance","filePath":"lib/plugins/registry.ts","line":71,"exported":false,"module":"lib"},{"id":"lib/plugins/registry.ts::getPlugin","type":"function","name":"getPlugin","filePath":"lib/plugins/registry.ts","line":124,"exported":true,"module":"lib"},{"id":"lib/plugins/registry.ts::getInstalledPlugin","type":"function","name":"getInstalledPlugin","filePath":"lib/plugins/registry.ts","line":143,"exported":true,"module":"lib"},{"id":"lib/plugins/registry.ts::listInstalledPlugins","type":"function","name":"listInstalledPlugins","filePath":"lib/plugins/registry.ts","line":163,"exported":true,"module":"lib"},{"id":"lib/plugins/registry.ts::installPlugin","type":"function","name":"installPlugin","filePath":"lib/plugins/registry.ts","line":185,"exported":true,"module":"lib"},{"id":"lib/plugins/registry.ts::uninstallPlugin","type":"function","name":"uninstallPlugin","filePath":"lib/plugins/registry.ts","line":203,"exported":true,"module":"lib"},{"id":"lib/plugins/registry.ts::updatePluginConfig","type":"function","name":"updatePluginConfig","filePath":"lib/plugins/registry.ts","line":213,"exported":true,"module":"lib"},{"id":"lib/plugins/registry.ts::setPluginEnabled","type":"function","name":"setPluginEnabled","filePath":"lib/plugins/registry.ts","line":222,"exported":true,"module":"lib"},{"id":"lib/plugins/types.ts","type":"file","name":"types.ts","filePath":"lib/plugins/types.ts","exported":false,"module":"lib"},{"id":"lib/project-sessions.ts","type":"file","name":"project-sessions.ts","filePath":"lib/project-sessions.ts","exported":false,"module":"lib"},{"id":"lib/project-sessions.ts::getFilePath","type":"function","name":"getFilePath","filePath":"lib/project-sessions.ts","line":10,"exported":false,"module":"lib"},{"id":"lib/project-sessions.ts::loadAll","type":"function","name":"loadAll","filePath":"lib/project-sessions.ts","line":18,"exported":false,"module":"lib"},{"id":"lib/project-sessions.ts::saveAll","type":"function","name":"saveAll","filePath":"lib/project-sessions.ts","line":26,"exported":false,"module":"lib"},{"id":"lib/project-sessions.ts::getFixedSession","type":"function","name":"getFixedSession","filePath":"lib/project-sessions.ts","line":32,"exported":true,"module":"lib"},{"id":"lib/project-sessions.ts::setFixedSession","type":"function","name":"setFixedSession","filePath":"lib/project-sessions.ts","line":37,"exported":true,"module":"lib"},{"id":"lib/project-sessions.ts::clearFixedSession","type":"function","name":"clearFixedSession","filePath":"lib/project-sessions.ts","line":44,"exported":true,"module":"lib"},{"id":"lib/project-sessions.ts::getAllFixedSessions","type":"function","name":"getAllFixedSessions","filePath":"lib/project-sessions.ts","line":51,"exported":true,"module":"lib"},{"id":"lib/projects.ts","type":"file","name":"projects.ts","filePath":"lib/projects.ts","exported":false,"module":"lib"},{"id":"lib/projects.ts::scanProjects","type":"function","name":"scanProjects","filePath":"lib/projects.ts","line":15,"exported":true,"module":"lib"},{"id":"lib/projects.ts::detectLanguage","type":"function","name":"detectLanguage","filePath":"lib/projects.ts","line":58,"exported":false,"module":"lib"},{"id":"lib/projects.ts::getProjectInfo","type":"function","name":"getProjectInfo","filePath":"lib/projects.ts","line":77,"exported":true,"module":"lib"},{"id":"lib/projects.ts::getProjectClaudeMd","type":"function","name":"getProjectClaudeMd","filePath":"lib/projects.ts","line":82,"exported":true,"module":"lib"},{"id":"lib/session-manager.ts","type":"file","name":"session-manager.ts","filePath":"lib/session-manager.ts","exported":false,"module":"lib"},{"id":"lib/session-manager.ts::SessionManager","type":"class","name":"SessionManager","filePath":"lib/session-manager.ts","line":9,"exported":false,"module":"lib"},{"id":"lib/session-manager.ts::getSessionManager","type":"function","name":"getSessionManager","filePath":"lib/session-manager.ts","line":153,"exported":true,"module":"lib"},{"id":"lib/session-utils.ts","type":"file","name":"session-utils.ts","filePath":"lib/session-utils.ts","exported":false,"module":"lib"},{"id":"lib/session-utils.ts::resolveFixedSession","type":"function","name":"resolveFixedSession","filePath":"lib/session-utils.ts","line":7,"exported":true,"module":"lib"},{"id":"lib/session-utils.ts::buildResumeFlag","type":"function","name":"buildResumeFlag","filePath":"lib/session-utils.ts","line":37,"exported":true,"module":"lib"},{"id":"lib/session-utils.ts::getMcpFlag","type":"function","name":"getMcpFlag","filePath":"lib/session-utils.ts","line":46,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts","type":"file","name":"session-watcher.ts","filePath":"lib/session-watcher.ts","exported":false,"module":"lib"},{"id":"lib/session-watcher.ts::syncSessionsToDb","type":"function","name":"syncSessionsToDb","filePath":"lib/session-watcher.ts","line":43,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::getCachedSessions","type":"function","name":"getCachedSessions","filePath":"lib/session-watcher.ts","line":94,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::getAllCachedSessions","type":"function","name":"getAllCachedSessions","filePath":"lib/session-watcher.ts","line":113,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::createWatcher","type":"function","name":"createWatcher","filePath":"lib/session-watcher.ts","line":139,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::getWatcher","type":"function","name":"getWatcher","filePath":"lib/session-watcher.ts","line":156,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::listWatchers","type":"function","name":"listWatchers","filePath":"lib/session-watcher.ts","line":162,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::toggleWatcher","type":"function","name":"toggleWatcher","filePath":"lib/session-watcher.ts","line":170,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::deleteWatcher","type":"function","name":"deleteWatcher","filePath":"lib/session-watcher.ts","line":175,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::mapWatcherRow","type":"function","name":"mapWatcherRow","filePath":"lib/session-watcher.ts","line":180,"exported":false,"module":"lib"},{"id":"lib/session-watcher.ts::startWatcherLoop","type":"function","name":"startWatcherLoop","filePath":"lib/session-watcher.ts","line":201,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::stopWatcherLoop","type":"function","name":"stopWatcherLoop","filePath":"lib/session-watcher.ts","line":212,"exported":true,"module":"lib"},{"id":"lib/session-watcher.ts::runWatcherCheck","type":"function","name":"runWatcherCheck","filePath":"lib/session-watcher.ts","line":219,"exported":false,"module":"lib"},{"id":"lib/session-watcher.ts::checkSession","type":"function","name":"checkSession","filePath":"lib/session-watcher.ts","line":256,"exported":false,"module":"lib"},{"id":"lib/session-watcher.ts::summarizeEntries","type":"function","name":"summarizeEntries","filePath":"lib/session-watcher.ts","line":294,"exported":false,"module":"lib"},{"id":"lib/session-watcher.ts::sendWatcherNotification","type":"function","name":"sendWatcherNotification","filePath":"lib/session-watcher.ts","line":321,"exported":false,"module":"lib"},{"id":"lib/session-watcher.ts::esc","type":"function","name":"esc","filePath":"lib/session-watcher.ts","line":343,"exported":false,"module":"lib"},{"id":"lib/settings.ts","type":"file","name":"settings.ts","filePath":"lib/settings.ts","exported":false,"module":"lib"},{"id":"lib/settings.ts::decryptNestedSecrets","type":"function","name":"decryptNestedSecrets","filePath":"lib/settings.ts","line":90,"exported":false,"module":"lib"},{"id":"lib/settings.ts::encryptNestedSecrets","type":"function","name":"encryptNestedSecrets","filePath":"lib/settings.ts","line":110,"exported":false,"module":"lib"},{"id":"lib/settings.ts::loadSettings","type":"function","name":"loadSettings","filePath":"lib/settings.ts","line":128,"exported":true,"module":"lib"},{"id":"lib/settings.ts::loadSettingsMasked","type":"function","name":"loadSettingsMasked","filePath":"lib/settings.ts","line":148,"exported":true,"module":"lib"},{"id":"lib/settings.ts::saveSettings","type":"function","name":"saveSettings","filePath":"lib/settings.ts","line":174,"exported":true,"module":"lib"},{"id":"lib/settings.ts::verifySecret","type":"function","name":"verifySecret","filePath":"lib/settings.ts","line":191,"exported":true,"module":"lib"},{"id":"lib/skills.ts","type":"file","name":"skills.ts","filePath":"lib/skills.ts","exported":false,"module":"lib"},{"id":"lib/skills.ts::db","type":"function","name":"db","filePath":"lib/skills.ts","line":32,"exported":false,"module":"lib"},{"id":"lib/skills.ts::getBaseUrl","type":"function","name":"getBaseUrl","filePath":"lib/skills.ts","line":36,"exported":false,"module":"lib"},{"id":"lib/skills.ts::getRepoInfo","type":"function","name":"getRepoInfo","filePath":"lib/skills.ts","line":41,"exported":false,"module":"lib"},{"id":"lib/skills.ts::compareVersions","type":"function","name":"compareVersions","filePath":"lib/skills.ts","line":49,"exported":false,"module":"lib"},{"id":"lib/skills.ts::syncSkills","type":"function","name":"syncSkills","filePath":"lib/skills.ts","line":64,"exported":true,"module":"lib"},{"id":"lib/skills.ts::listSkills","type":"function","name":"listSkills","filePath":"lib/skills.ts","line":197,"exported":true,"module":"lib"},{"id":"lib/skills.ts::listRepoFiles","type":"function","name":"listRepoFiles","filePath":"lib/skills.ts","line":226,"exported":false,"module":"lib"},{"id":"lib/skills.ts::recurse","type":"function","name":"recurse","filePath":"lib/skills.ts","line":230,"exported":false,"module":"lib"},{"id":"lib/skills.ts::downloadFile","type":"function","name":"downloadFile","filePath":"lib/skills.ts","line":256,"exported":false,"module":"lib"},{"id":"lib/skills.ts::getClaudeHome","type":"function","name":"getClaudeHome","filePath":"lib/skills.ts","line":264,"exported":false,"module":"lib"},{"id":"lib/skills.ts::getSkillDir","type":"function","name":"getSkillDir","filePath":"lib/skills.ts","line":269,"exported":false,"module":"lib"},{"id":"lib/skills.ts::installGlobal","type":"function","name":"installGlobal","filePath":"lib/skills.ts","line":275,"exported":true,"module":"lib"},{"id":"lib/skills.ts::installProject","type":"function","name":"installProject","filePath":"lib/skills.ts","line":300,"exported":true,"module":"lib"},{"id":"lib/skills.ts::uninstallGlobal","type":"function","name":"uninstallGlobal","filePath":"lib/skills.ts","line":328,"exported":true,"module":"lib"},{"id":"lib/skills.ts::uninstallProject","type":"function","name":"uninstallProject","filePath":"lib/skills.ts","line":347,"exported":true,"module":"lib"},{"id":"lib/skills.ts::refreshInstallState","type":"function","name":"refreshInstallState","filePath":"lib/skills.ts","line":368,"exported":true,"module":"lib"},{"id":"lib/skills.ts::checkLocalModified","type":"function","name":"checkLocalModified","filePath":"lib/skills.ts","line":408,"exported":true,"module":"lib"},{"id":"lib/skills.ts::purgeDeletedSkill","type":"function","name":"purgeDeletedSkill","filePath":"lib/skills.ts","line":438,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts","type":"file","name":"task-manager.ts","filePath":"lib/task-manager.ts","exported":false,"module":"lib"},{"id":"lib/task-manager.ts::toIsoUTC","type":"function","name":"toIsoUTC","filePath":"lib/task-manager.ts","line":16,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::onTaskEvent","type":"function","name":"onTaskEvent","filePath":"lib/task-manager.ts","line":34,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::emit","type":"function","name":"emit","filePath":"lib/task-manager.ts","line":39,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::db","type":"function","name":"db","filePath":"lib/task-manager.ts","line":45,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::createTask","type":"function","name":"createTask","filePath":"lib/task-manager.ts","line":54,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::getProjectConversationId","type":"function","name":"getProjectConversationId","filePath":"lib/task-manager.ts","line":95,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::getTask","type":"function","name":"getTask","filePath":"lib/task-manager.ts","line":104,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::listTasks","type":"function","name":"listTasks","filePath":"lib/task-manager.ts","line":110,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::cancelTask","type":"function","name":"cancelTask","filePath":"lib/task-manager.ts","line":122,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::deleteTask","type":"function","name":"deleteTask","filePath":"lib/task-manager.ts","line":143,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::updateTask","type":"function","name":"updateTask","filePath":"lib/task-manager.ts","line":151,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::retryTask","type":"function","name":"retryTask","filePath":"lib/task-manager.ts","line":181,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::ensureRunnerStarted","type":"function","name":"ensureRunnerStarted","filePath":"lib/task-manager.ts","line":198,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::stopRunner","type":"function","name":"stopRunner","filePath":"lib/task-manager.ts","line":205,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::processNextTask","type":"function","name":"processNextTask","filePath":"lib/task-manager.ts","line":212,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::executeShellTask","type":"function","name":"executeShellTask","filePath":"lib/task-manager.ts","line":249,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::executeTask","type":"function","name":"executeTask","filePath":"lib/task-manager.ts","line":286,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::stripAnsi","type":"function","name":"stripAnsi","filePath":"lib/task-manager.ts","line":336,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::notifyTerminalSession","type":"function","name":"notifyTerminalSession","filePath":"lib/task-manager.ts","line":548,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::resolveClaudePath","type":"function","name":"resolveClaudePath","filePath":"lib/task-manager.ts","line":608,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::parseStreamJson","type":"function","name":"parseStreamJson","filePath":"lib/task-manager.ts","line":631,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::appendLog","type":"function","name":"appendLog","filePath":"lib/task-manager.ts","line":680,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::updateTaskStatus","type":"function","name":"updateTaskStatus","filePath":"lib/task-manager.ts","line":689,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::rowToTask","type":"function","name":"rowToTask","filePath":"lib/task-manager.ts","line":698,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::startMonitorTask","type":"function","name":"startMonitorTask","filePath":"lib/task-manager.ts","line":729,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::scheduleNotify","type":"function","name":"scheduleNotify","filePath":"lib/task-manager.ts","line":774,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::flushNotify","type":"function","name":"flushNotify","filePath":"lib/task-manager.ts","line":786,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::cleanup","type":"function","name":"cleanup","filePath":"lib/task-manager.ts","line":854,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::stopMonitor","type":"function","name":"stopMonitor","filePath":"lib/task-manager.ts","line":863,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::cancelMonitor","type":"function","name":"cancelMonitor","filePath":"lib/task-manager.ts","line":873,"exported":true,"module":"lib"},{"id":"lib/task-manager.ts::triggerMonitorAction","type":"function","name":"triggerMonitorAction","filePath":"lib/task-manager.ts","line":878,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::sendTelegramDirect","type":"function","name":"sendTelegramDirect","filePath":"lib/task-manager.ts","line":925,"exported":false,"module":"lib"},{"id":"lib/task-manager.ts::summarizeNewEntries","type":"function","name":"summarizeNewEntries","filePath":"lib/task-manager.ts","line":941,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts","type":"file","name":"telegram-bot.ts","filePath":"lib/telegram-bot.ts","exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::startTelegramBot","type":"function","name":"startTelegramBot","filePath":"lib/telegram-bot.ts","line":50,"exported":true,"module":"lib"},{"id":"lib/telegram-bot.ts::stopTelegramBot","type":"function","name":"stopTelegramBot","filePath":"lib/telegram-bot.ts","line":83,"exported":true,"module":"lib"},{"id":"lib/telegram-bot.ts::handleTelegramMessage","type":"function","name":"handleTelegramMessage","filePath":"lib/telegram-bot.ts","line":91,"exported":true,"module":"lib"},{"id":"lib/telegram-bot.ts::handleMessage","type":"function","name":"handleMessage","filePath":"lib/telegram-bot.ts","line":93,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendHelp","type":"function","name":"sendHelp","filePath":"lib/telegram-bot.ts","line":298,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendAgentList","type":"function","name":"sendAgentList","filePath":"lib/telegram-bot.ts","line":321,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendNumberedTaskList","type":"function","name":"sendNumberedTaskList","filePath":"lib/telegram-bot.ts","line":339,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendTaskDetail","type":"function","name":"sendTaskDetail","filePath":"lib/telegram-bot.ts","line":378,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendProjectListForSessions","type":"function","name":"sendProjectListForSessions","filePath":"lib/telegram-bot.ts","line":428,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendSessionList","type":"function","name":"sendSessionList","filePath":"lib/telegram-bot.ts","line":452,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendSessionContent","type":"function","name":"sendSessionContent","filePath":"lib/telegram-bot.ts","line":479,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::startPeekSelection","type":"function","name":"startPeekSelection","filePath":"lib/telegram-bot.ts","line":528,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handlePeek","type":"function","name":"handlePeek","filePath":"lib/telegram-bot.ts","line":557,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::startTaskCreation","type":"function","name":"startTaskCreation","filePath":"lib/telegram-bot.ts","line":673,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleNewTask","type":"function","name":"handleNewTask","filePath":"lib/telegram-bot.ts","line":692,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::parseDelay","type":"function","name":"parseDelay","filePath":"lib/telegram-bot.ts","line":791,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::parseTimeAt","type":"function","name":"parseTimeAt","filePath":"lib/telegram-bot.ts","line":800,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleFollowUp","type":"function","name":"handleFollowUp","filePath":"lib/telegram-bot.ts","line":817,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendProjectList","type":"function","name":"sendProjectList","filePath":"lib/telegram-bot.ts","line":846,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleCancel","type":"function","name":"handleCancel","filePath":"lib/telegram-bot.ts","line":854,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleRetry","type":"function","name":"handleRetry","filePath":"lib/telegram-bot.ts","line":860,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleWatch","type":"function","name":"handleWatch","filePath":"lib/telegram-bot.ts","line":876,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendWatcherList","type":"function","name":"sendWatcherList","filePath":"lib/telegram-bot.ts","line":886,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleUnwatch","type":"function","name":"handleUnwatch","filePath":"lib/telegram-bot.ts","line":902,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleTunnelStatus","type":"function","name":"handleTunnelStatus","filePath":"lib/telegram-bot.ts","line":913,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleTunnelStart","type":"function","name":"handleTunnelStart","filePath":"lib/telegram-bot.ts","line":927,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleTunnelStop","type":"function","name":"handleTunnelStop","filePath":"lib/telegram-bot.ts","line":980,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleTunnelCode","type":"function","name":"handleTunnelCode","filePath":"lib/telegram-bot.ts","line":988,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::aiSummarize","type":"function","name":"aiSummarize","filePath":"lib/telegram-bot.ts","line":1030,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleDocs","type":"function","name":"handleDocs","filePath":"lib/telegram-bot.ts","line":1071,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::searchDir","type":"function","name":"searchDir","filePath":"lib/telegram-bot.ts","line":1092,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleDocsWrite","type":"function","name":"handleDocsWrite","filePath":"lib/telegram-bot.ts","line":1207,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendNoteToDocsClaude","type":"function","name":"sendNoteToDocsClaude","filePath":"lib/telegram-bot.ts","line":1220,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::bufferLogEntry","type":"function","name":"bufferLogEntry","filePath":"lib/telegram-bot.ts","line":1303,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::flushLogBuffer","type":"function","name":"flushLogBuffer","filePath":"lib/telegram-bot.ts","line":1331,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::handleStatusChange","type":"function","name":"handleStatusChange","filePath":"lib/telegram-bot.ts","line":1342,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::send","type":"function","name":"send","filePath":"lib/telegram-bot.ts","line":1372,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::deleteMessageLater","type":"function","name":"deleteMessageLater","filePath":"lib/telegram-bot.ts","line":1401,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::setBotCommands","type":"function","name":"setBotCommands","filePath":"lib/telegram-bot.ts","line":1416,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::sendHtml","type":"function","name":"sendHtml","filePath":"lib/telegram-bot.ts","line":1440,"exported":false,"module":"lib"},{"id":"lib/telegram-bot.ts::splitMessage","type":"function","name":"splitMessage","filePath":"lib/telegram-bot.ts","line":1467,"exported":false,"module":"lib"},{"id":"lib/telegram-standalone.ts","type":"file","name":"telegram-standalone.ts","filePath":"lib/telegram-standalone.ts","exported":false,"module":"lib"},{"id":"lib/telegram-standalone.ts::init","type":"function","name":"init","filePath":"lib/telegram-standalone.ts","line":22,"exported":false,"module":"lib"},{"id":"lib/telegram-standalone.ts::poll","type":"function","name":"poll","filePath":"lib/telegram-standalone.ts","line":34,"exported":false,"module":"lib"},{"id":"lib/terminal-server.ts","type":"file","name":"terminal-server.ts","filePath":"lib/terminal-server.ts","exported":false,"module":"lib"},{"id":"lib/terminal-server.ts::startTerminalServer","type":"function","name":"startTerminalServer","filePath":"lib/terminal-server.ts","line":12,"exported":true,"module":"lib"},{"id":"lib/terminal-server.ts::stopTerminalServer","type":"function","name":"stopTerminalServer","filePath":"lib/terminal-server.ts","line":65,"exported":true,"module":"lib"},{"id":"lib/terminal-standalone.ts","type":"file","name":"terminal-standalone.ts","filePath":"lib/terminal-standalone.ts","exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::loadTerminalState","type":"function","name":"loadTerminalState","filePath":"lib/terminal-standalone.ts","line":50,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::saveTerminalState","type":"function","name":"saveTerminalState","filePath":"lib/terminal-standalone.ts","line":58,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::tmuxBin","type":"function","name":"tmuxBin","filePath":"lib/terminal-standalone.ts","line":70,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::listTmuxSessions","type":"function","name":"listTmuxSessions","filePath":"lib/terminal-standalone.ts","line":80,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::getDefaultCwd","type":"function","name":"getDefaultCwd","filePath":"lib/terminal-standalone.ts","line":106,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::createTmuxSession","type":"function","name":"createTmuxSession","filePath":"lib/terminal-standalone.ts","line":119,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::killTmuxSession","type":"function","name":"killTmuxSession","filePath":"lib/terminal-standalone.ts","line":168,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::tmuxSessionExists","type":"function","name":"tmuxSessionExists","filePath":"lib/terminal-standalone.ts","line":178,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::trackAttach","type":"function","name":"trackAttach","filePath":"lib/terminal-standalone.ts","line":193,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::trackDetach","type":"function","name":"trackDetach","filePath":"lib/terminal-standalone.ts","line":198,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::cleanupOrphanedSessions","type":"function","name":"cleanupOrphanedSessions","filePath":"lib/terminal-standalone.ts","line":206,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::getKnownSessions","type":"function","name":"getKnownSessions","filePath":"lib/terminal-standalone.ts","line":222,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::collectTreeSessions","type":"function","name":"collectTreeSessions","filePath":"lib/terminal-standalone.ts","line":243,"exported":false,"module":"lib"},{"id":"lib/terminal-standalone.ts::attachToTmux","type":"function","name":"attachToTmux","filePath":"lib/terminal-standalone.ts","line":262,"exported":false,"module":"lib"},{"id":"lib/usage-scanner.ts","type":"file","name":"usage-scanner.ts","filePath":"lib/usage-scanner.ts","exported":false,"module":"lib"},{"id":"lib/usage-scanner.ts::db","type":"function","name":"db","filePath":"lib/usage-scanner.ts","line":12,"exported":false,"module":"lib"},{"id":"lib/usage-scanner.ts::getModelFamily","type":"function","name":"getModelFamily","filePath":"lib/usage-scanner.ts","line":21,"exported":false,"module":"lib"},{"id":"lib/usage-scanner.ts::calcCost","type":"function","name":"calcCost","filePath":"lib/usage-scanner.ts","line":29,"exported":false,"module":"lib"},{"id":"lib/usage-scanner.ts::dirToProjectPath","type":"function","name":"dirToProjectPath","filePath":"lib/usage-scanner.ts","line":36,"exported":false,"module":"lib"},{"id":"lib/usage-scanner.ts::dirToProjectName","type":"function","name":"dirToProjectName","filePath":"lib/usage-scanner.ts","line":40,"exported":false,"module":"lib"},{"id":"lib/usage-scanner.ts::toLocalDate","type":"function","name":"toLocalDate","filePath":"lib/usage-scanner.ts","line":45,"exported":false,"module":"lib"},{"id":"lib/usage-scanner.ts::parseByDayModel","type":"function","name":"parseByDayModel","filePath":"lib/usage-scanner.ts","line":60,"exported":false,"module":"lib"},{"id":"lib/usage-scanner.ts::scanUsage","type":"function","name":"scanUsage","filePath":"lib/usage-scanner.ts","line":88,"exported":true,"module":"lib"},{"id":"lib/usage-scanner.ts::recordUsage","type":"function","name":"recordUsage","filePath":"lib/usage-scanner.ts","line":149,"exported":true,"module":"lib"},{"id":"lib/usage-scanner.ts::queryUsage","type":"function","name":"queryUsage","filePath":"lib/usage-scanner.ts","line":177,"exported":true,"module":"lib"},{"id":"lib/workspace/agent-bus.ts","type":"file","name":"agent-bus.ts","filePath":"lib/workspace/agent-bus.ts","exported":false,"module":"lib"},{"id":"lib/workspace/agent-bus.ts::AgentBus","type":"class","name":"AgentBus","filePath":"lib/workspace/agent-bus.ts","line":20,"exported":true,"module":"lib"},{"id":"lib/workspace/agent-worker.ts","type":"file","name":"agent-worker.ts","filePath":"lib/workspace/agent-worker.ts","exported":false,"module":"lib"},{"id":"lib/workspace/agent-worker.ts::AgentWorker","type":"class","name":"AgentWorker","filePath":"lib/workspace/agent-worker.ts","line":43,"exported":true,"module":"lib"},{"id":"lib/workspace/agent-worker.ts::onAbort","type":"function","name":"onAbort","filePath":"lib/workspace/agent-worker.ts","line":412,"exported":false,"module":"lib"},{"id":"lib/workspace/agent-worker.ts::detectStepFailure","type":"function","name":"detectStepFailure","filePath":"lib/workspace/agent-worker.ts","line":552,"exported":false,"module":"lib"},{"id":"lib/workspace/agent-worker.ts::summarizeStepResult","type":"function","name":"summarizeStepResult","filePath":"lib/workspace/agent-worker.ts","line":593,"exported":false,"module":"lib"},{"id":"lib/workspace/agent-worker.ts::buildFinalSummary","type":"function","name":"buildFinalSummary","filePath":"lib/workspace/agent-worker.ts","line":619,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/api-backend.ts","type":"file","name":"api-backend.ts","filePath":"lib/workspace/backends/api-backend.ts","exported":false,"module":"lib"},{"id":"lib/workspace/backends/api-backend.ts::createTools","type":"function","name":"createTools","filePath":"lib/workspace/backends/api-backend.ts","line":18,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/api-backend.ts::ts","type":"function","name":"ts","filePath":"lib/workspace/backends/api-backend.ts","line":19,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/api-backend.ts::safePath","type":"function","name":"safePath","filePath":"lib/workspace/backends/api-backend.ts","line":21,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/api-backend.ts::createCommTools","type":"function","name":"createCommTools","filePath":"lib/workspace/backends/api-backend.ts","line":118,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/api-backend.ts::ts","type":"function","name":"ts","filePath":"lib/workspace/backends/api-backend.ts","line":125,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/api-backend.ts::historyToMessages","type":"function","name":"historyToMessages","filePath":"lib/workspace/backends/api-backend.ts","line":168,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/api-backend.ts::ApiBackend","type":"class","name":"ApiBackend","filePath":"lib/workspace/backends/api-backend.ts","line":197,"exported":true,"module":"lib"},{"id":"lib/workspace/backends/cli-backend.ts","type":"file","name":"cli-backend.ts","filePath":"lib/workspace/backends/cli-backend.ts","exported":false,"module":"lib"},{"id":"lib/workspace/backends/cli-backend.ts::parseStreamJson","type":"function","name":"parseStreamJson","filePath":"lib/workspace/backends/cli-backend.ts","line":19,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/cli-backend.ts::detectArtifacts","type":"function","name":"detectArtifacts","filePath":"lib/workspace/backends/cli-backend.ts","line":74,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/cli-backend.ts::CliBackend","type":"class","name":"CliBackend","filePath":"lib/workspace/backends/cli-backend.ts","line":91,"exported":true,"module":"lib"},{"id":"lib/workspace/backends/cli-backend.ts::onAbort","type":"function","name":"onAbort","filePath":"lib/workspace/backends/cli-backend.ts","line":184,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/cli-backend.ts::stripAnsi","type":"function","name":"stripAnsi","filePath":"lib/workspace/backends/cli-backend.ts","line":358,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/cli-backend.ts::onAbort","type":"function","name":"onAbort","filePath":"lib/workspace/backends/cli-backend.ts","line":378,"exported":false,"module":"lib"},{"id":"lib/workspace/backends/cli-backend.ts::isNoise","type":"function","name":"isNoise","filePath":"lib/workspace/backends/cli-backend.ts","line":383,"exported":false,"module":"lib"},{"id":"lib/workspace/index.ts","type":"file","name":"index.ts","filePath":"lib/workspace/index.ts","exported":false,"module":"lib"},{"id":"lib/workspace/manager.ts","type":"file","name":"manager.ts","filePath":"lib/workspace/manager.ts","exported":false,"module":"lib"},{"id":"lib/workspace/manager.ts::reloadOrchestrator","type":"function","name":"reloadOrchestrator","filePath":"lib/workspace/manager.ts","line":21,"exported":true,"module":"lib"},{"id":"lib/workspace/manager.ts::getOrchestrator","type":"function","name":"getOrchestrator","filePath":"lib/workspace/manager.ts","line":34,"exported":true,"module":"lib"},{"id":"lib/workspace/manager.ts::createOrchestratorFromState","type":"function","name":"createOrchestratorFromState","filePath":"lib/workspace/manager.ts","line":48,"exported":true,"module":"lib"},{"id":"lib/workspace/manager.ts::getOrchestratorByProject","type":"function","name":"getOrchestratorByProject","filePath":"lib/workspace/manager.ts","line":82,"exported":true,"module":"lib"},{"id":"lib/workspace/manager.ts::subscribeSSE","type":"function","name":"subscribeSSE","filePath":"lib/workspace/manager.ts","line":99,"exported":true,"module":"lib"},{"id":"lib/workspace/manager.ts::shutdownOrchestrator","type":"function","name":"shutdownOrchestrator","filePath":"lib/workspace/manager.ts","line":119,"exported":true,"module":"lib"},{"id":"lib/workspace/manager.ts::shutdownAll","type":"function","name":"shutdownAll","filePath":"lib/workspace/manager.ts","line":130,"exported":true,"module":"lib"},{"id":"lib/workspace/orchestrator.ts","type":"file","name":"orchestrator.ts","filePath":"lib/workspace/orchestrator.ts","exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::WorkspaceOrchestrator","type":"class","name":"WorkspaceOrchestrator","filePath":"lib/workspace/orchestrator.ts","line":81,"exported":true,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::normalize","type":"function","name":"normalize","filePath":"lib/workspace/orchestrator.ts","line":152,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::normalize","type":"function","name":"normalize","filePath":"lib/workspace/orchestrator.ts","line":195,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::dfs","type":"function","name":"dfs","filePath":"lib/workspace/orchestrator.ts","line":223,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::check","type":"function","name":"check","filePath":"lib/workspace/orchestrator.ts","line":249,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::visit","type":"function","name":"visit","filePath":"lib/workspace/orchestrator.ts","line":1971,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::safeName","type":"function","name":"safeName","filePath":"lib/workspace/orchestrator.ts","line":2345,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::safeName","type":"function","name":"safeName","filePath":"lib/workspace/orchestrator.ts","line":2381,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::safeName","type":"function","name":"safeName","filePath":"lib/workspace/orchestrator.ts","line":2406,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::attempt","type":"function","name":"attempt","filePath":"lib/workspace/orchestrator.ts","line":2724,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::safeName","type":"function","name":"safeName","filePath":"lib/workspace/orchestrator.ts","line":2809,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::findSession","type":"function","name":"findSession","filePath":"lib/workspace/orchestrator.ts","line":2828,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::ackAndDeliver","type":"function","name":"ackAndDeliver","filePath":"lib/workspace/orchestrator.ts","line":2891,"exported":false,"module":"lib"},{"id":"lib/workspace/orchestrator.ts::tick","type":"function","name":"tick","filePath":"lib/workspace/orchestrator.ts","line":2932,"exported":false,"module":"lib"},{"id":"lib/workspace/persistence.ts","type":"file","name":"persistence.ts","filePath":"lib/workspace/persistence.ts","exported":false,"module":"lib"},{"id":"lib/workspace/persistence.ts::workspaceDir","type":"function","name":"workspaceDir","filePath":"lib/workspace/persistence.ts","line":23,"exported":false,"module":"lib"},{"id":"lib/workspace/persistence.ts::agentDir","type":"function","name":"agentDir","filePath":"lib/workspace/persistence.ts","line":27,"exported":false,"module":"lib"},{"id":"lib/workspace/persistence.ts::stateFile","type":"function","name":"stateFile","filePath":"lib/workspace/persistence.ts","line":31,"exported":false,"module":"lib"},{"id":"lib/workspace/persistence.ts::agentLogFile","type":"function","name":"agentLogFile","filePath":"lib/workspace/persistence.ts","line":35,"exported":false,"module":"lib"},{"id":"lib/workspace/persistence.ts::agentHistoryFile","type":"function","name":"agentHistoryFile","filePath":"lib/workspace/persistence.ts","line":39,"exported":false,"module":"lib"},{"id":"lib/workspace/persistence.ts::saveWorkspace","type":"function","name":"saveWorkspace","filePath":"lib/workspace/persistence.ts","line":45,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::saveAgentHistory","type":"function","name":"saveAgentHistory","filePath":"lib/workspace/persistence.ts","line":75,"exported":false,"module":"lib"},{"id":"lib/workspace/persistence.ts::saveWorkspaceSync","type":"function","name":"saveWorkspaceSync","filePath":"lib/workspace/persistence.ts","line":82,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::appendAgentLog","type":"function","name":"appendAgentLog","filePath":"lib/workspace/persistence.ts","line":115,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::loadWorkspace","type":"function","name":"loadWorkspace","filePath":"lib/workspace/persistence.ts","line":123,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::listWorkspaces","type":"function","name":"listWorkspaces","filePath":"lib/workspace/persistence.ts","line":192,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::findWorkspaceByProject","type":"function","name":"findWorkspaceByProject","filePath":"lib/workspace/persistence.ts","line":222,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::deleteWorkspace","type":"function","name":"deleteWorkspace","filePath":"lib/workspace/persistence.ts","line":246,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::readAgentLog","type":"function","name":"readAgentLog","filePath":"lib/workspace/persistence.ts","line":256,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::readAgentLogTail","type":"function","name":"readAgentLogTail","filePath":"lib/workspace/persistence.ts","line":271,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::clearAgentLog","type":"function","name":"clearAgentLog","filePath":"lib/workspace/persistence.ts","line":277,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::startAutoSave","type":"function","name":"startAutoSave","filePath":"lib/workspace/persistence.ts","line":290,"exported":true,"module":"lib"},{"id":"lib/workspace/persistence.ts::stopAutoSave","type":"function","name":"stopAutoSave","filePath":"lib/workspace/persistence.ts","line":303,"exported":true,"module":"lib"},{"id":"lib/workspace/presets.ts","type":"file","name":"presets.ts","filePath":"lib/workspace/presets.ts","exported":false,"module":"lib"},{"id":"lib/workspace/presets.ts::createDevPipeline","type":"function","name":"createDevPipeline","filePath":"lib/workspace/presets.ts","line":573,"exported":true,"module":"lib"},{"id":"lib/workspace/presets.ts::createArchitectPipeline","type":"function","name":"createArchitectPipeline","filePath":"lib/workspace/presets.ts","line":606,"exported":true,"module":"lib"},{"id":"lib/workspace/presets.ts::createDeliveryPipeline","type":"function","name":"createDeliveryPipeline","filePath":"lib/workspace/presets.ts","line":636,"exported":true,"module":"lib"},{"id":"lib/workspace/presets.ts::createFromPreset","type":"function","name":"createFromPreset","filePath":"lib/workspace/presets.ts","line":641,"exported":true,"module":"lib"},{"id":"lib/workspace/requests.ts","type":"file","name":"requests.ts","filePath":"lib/workspace/requests.ts","exported":false,"module":"lib"},{"id":"lib/workspace/requests.ts::requestsRoot","type":"function","name":"requestsRoot","filePath":"lib/workspace/requests.ts","line":74,"exported":false,"module":"lib"},{"id":"lib/workspace/requests.ts::requestDir","type":"function","name":"requestDir","filePath":"lib/workspace/requests.ts","line":78,"exported":false,"module":"lib"},{"id":"lib/workspace/requests.ts::ensureDir","type":"function","name":"ensureDir","filePath":"lib/workspace/requests.ts","line":82,"exported":false,"module":"lib"},{"id":"lib/workspace/requests.ts::generateRequestId","type":"function","name":"generateRequestId","filePath":"lib/workspace/requests.ts","line":91,"exported":true,"module":"lib"},{"id":"lib/workspace/requests.ts::createRequest","type":"function","name":"createRequest","filePath":"lib/workspace/requests.ts","line":105,"exported":true,"module":"lib"},{"id":"lib/workspace/requests.ts::getRequest","type":"function","name":"getRequest","filePath":"lib/workspace/requests.ts","line":130,"exported":true,"module":"lib"},{"id":"lib/workspace/requests.ts::listRequests","type":"function","name":"listRequests","filePath":"lib/workspace/requests.ts","line":152,"exported":true,"module":"lib"},{"id":"lib/workspace/requests.ts::updateResponse","type":"function","name":"updateResponse","filePath":"lib/workspace/requests.ts","line":178,"exported":true,"module":"lib"},{"id":"lib/workspace/requests.ts::claimRequest","type":"function","name":"claimRequest","filePath":"lib/workspace/requests.ts","line":231,"exported":true,"module":"lib"},{"id":"lib/workspace/requests.ts::updateRequestStatus","type":"function","name":"updateRequestStatus","filePath":"lib/workspace/requests.ts","line":264,"exported":true,"module":"lib"},{"id":"lib/workspace/requests.ts::getBatchStatus","type":"function","name":"getBatchStatus","filePath":"lib/workspace/requests.ts","line":278,"exported":true,"module":"lib"},{"id":"lib/workspace/session-monitor.ts","type":"file","name":"session-monitor.ts","filePath":"lib/workspace/session-monitor.ts","exported":false,"module":"lib"},{"id":"lib/workspace/session-monitor.ts::SessionFileMonitor","type":"class","name":"SessionFileMonitor","filePath":"lib/workspace/session-monitor.ts","line":34,"exported":true,"module":"lib"},{"id":"lib/workspace/skill-installer.ts","type":"file","name":"skill-installer.ts","filePath":"lib/workspace/skill-installer.ts","exported":false,"module":"lib"},{"id":"lib/workspace/skill-installer.ts::installForgeSkills","type":"function","name":"installForgeSkills","filePath":"lib/workspace/skill-installer.ts","line":20,"exported":true,"module":"lib"},{"id":"lib/workspace/skill-installer.ts::ensureForgePermissions","type":"function","name":"ensureForgePermissions","filePath":"lib/workspace/skill-installer.ts","line":76,"exported":false,"module":"lib"},{"id":"lib/workspace/skill-installer.ts::applyProfileToProject","type":"function","name":"applyProfileToProject","filePath":"lib/workspace/skill-installer.ts","line":124,"exported":true,"module":"lib"},{"id":"lib/workspace/skill-installer.ts::installForgeStopHook","type":"function","name":"installForgeStopHook","filePath":"lib/workspace/skill-installer.ts","line":175,"exported":false,"module":"lib"},{"id":"lib/workspace/skill-installer.ts::removeForgeStopHook","type":"function","name":"removeForgeStopHook","filePath":"lib/workspace/skill-installer.ts","line":231,"exported":true,"module":"lib"},{"id":"lib/workspace/skill-installer.ts::hasForgeSkills","type":"function","name":"hasForgeSkills","filePath":"lib/workspace/skill-installer.ts","line":255,"exported":true,"module":"lib"},{"id":"lib/workspace/skill-installer.ts::removeForgeSkills","type":"function","name":"removeForgeSkills","filePath":"lib/workspace/skill-installer.ts","line":263,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts","type":"file","name":"smith-memory.ts","filePath":"lib/workspace/smith-memory.ts","exported":false,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::memoryDir","type":"function","name":"memoryDir","filePath":"lib/workspace/smith-memory.ts","line":77,"exported":false,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::memoryFile","type":"function","name":"memoryFile","filePath":"lib/workspace/smith-memory.ts","line":81,"exported":false,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::loadMemory","type":"function","name":"loadMemory","filePath":"lib/workspace/smith-memory.ts","line":87,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::saveMemory","type":"function","name":"saveMemory","filePath":"lib/workspace/smith-memory.ts","line":102,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::createMemory","type":"function","name":"createMemory","filePath":"lib/workspace/smith-memory.ts","line":108,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::migrateMemory","type":"function","name":"migrateMemory","filePath":"lib/workspace/smith-memory.ts","line":121,"exported":false,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::mapLegacyType","type":"function","name":"mapLegacyType","filePath":"lib/workspace/smith-memory.ts","line":141,"exported":false,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::addObservation","type":"function","name":"addObservation","filePath":"lib/workspace/smith-memory.ts","line":156,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::addSessionSummary","type":"function","name":"addSessionSummary","filePath":"lib/workspace/smith-memory.ts","line":179,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::pruneObservations","type":"function","name":"pruneObservations","filePath":"lib/workspace/smith-memory.ts","line":199,"exported":false,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::formatMemoryForPrompt","type":"function","name":"formatMemoryForPrompt","filePath":"lib/workspace/smith-memory.ts","line":218,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::formatMemoryForDisplay","type":"function","name":"formatMemoryForDisplay","filePath":"lib/workspace/smith-memory.ts","line":307,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::parseStepToObservations","type":"function","name":"parseStepToObservations","filePath":"lib/workspace/smith-memory.ts","line":359,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::id","type":"function","name":"id","filePath":"lib/workspace/smith-memory.ts","line":366,"exported":false,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::buildSessionSummary","type":"function","name":"buildSessionSummary","filePath":"lib/workspace/smith-memory.ts","line":438,"exported":true,"module":"lib"},{"id":"lib/workspace/smith-memory.ts::getMemoryStats","type":"function","name":"getMemoryStats","filePath":"lib/workspace/smith-memory.ts","line":477,"exported":true,"module":"lib"},{"id":"lib/workspace/types.ts","type":"file","name":"types.ts","filePath":"lib/workspace/types.ts","exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts","type":"file","name":"watch-manager.ts","filePath":"lib/workspace/watch-manager.ts","exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts::findModifiedFiles","type":"function","name":"findModifiedFiles","filePath":"lib/workspace/watch-manager.ts","line":37,"exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts::walk","type":"function","name":"walk","filePath":"lib/workspace/watch-manager.ts","line":48,"exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts::detectDirectoryChanges","type":"function","name":"detectDirectoryChanges","filePath":"lib/workspace/watch-manager.ts","line":70,"exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts::detectGitChanges","type":"function","name":"detectGitChanges","filePath":"lib/workspace/watch-manager.ts","line":85,"exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts::detectCommandChanges","type":"function","name":"detectCommandChanges","filePath":"lib/workspace/watch-manager.ts","line":115,"exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts::detectAgentLogChanges","type":"function","name":"detectAgentLogChanges","filePath":"lib/workspace/watch-manager.ts","line":139,"exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts::extractContext","type":"function","name":"extractContext","filePath":"lib/workspace/watch-manager.ts","line":165,"exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts::detectSessionChanges","type":"function","name":"detectSessionChanges","filePath":"lib/workspace/watch-manager.ts","line":213,"exported":false,"module":"lib"},{"id":"lib/workspace/watch-manager.ts::WatchManager","type":"class","name":"WatchManager","filePath":"lib/workspace/watch-manager.ts","line":324,"exported":true,"module":"lib"},{"id":"lib/workspace-standalone.ts","type":"file","name":"workspace-standalone.ts","filePath":"lib/workspace-standalone.ts","exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::getOrchestrator","type":"function","name":"getOrchestrator","filePath":"lib/workspace-standalone.ts","line":43,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::loadOrchestrator","type":"function","name":"loadOrchestrator","filePath":"lib/workspace-standalone.ts","line":47,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::unloadOrchestrator","type":"function","name":"unloadOrchestrator","filePath":"lib/workspace-standalone.ts","line":74,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::evictIdleWorkspace","type":"function","name":"evictIdleWorkspace","filePath":"lib/workspace-standalone.ts","line":90,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::addSSEClient","type":"function","name":"addSSEClient","filePath":"lib/workspace-standalone.ts","line":106,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::removeSSEClient","type":"function","name":"removeSSEClient","filePath":"lib/workspace-standalone.ts","line":111,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::broadcastSSE","type":"function","name":"broadcastSSE","filePath":"lib/workspace-standalone.ts","line":116,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::readBody","type":"function","name":"readBody","filePath":"lib/workspace-standalone.ts","line":127,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::json","type":"function","name":"json","filePath":"lib/workspace-standalone.ts","line":136,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::jsonError","type":"function","name":"jsonError","filePath":"lib/workspace-standalone.ts","line":141,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::parseUrl","type":"function","name":"parseUrl","filePath":"lib/workspace-standalone.ts","line":145,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::handleAgentsPost","type":"function","name":"handleAgentsPost","filePath":"lib/workspace-standalone.ts","line":152,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::handleAgentsGet","type":"function","name":"handleAgentsGet","filePath":"lib/workspace-standalone.ts","line":452,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::handleStream","type":"function","name":"handleStream","filePath":"lib/workspace-standalone.ts","line":470,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::handleSmith","type":"function","name":"handleSmith","filePath":"lib/workspace-standalone.ts","line":509,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::handleMemory","type":"function","name":"handleMemory","filePath":"lib/workspace-standalone.ts","line":747,"exported":false,"module":"lib"},{"id":"lib/workspace-standalone.ts::shutdown","type":"function","name":"shutdown","filePath":"lib/workspace-standalone.ts","line":879,"exported":false,"module":"lib"},{"id":"middleware.ts","type":"file","name":"middleware.ts","filePath":"middleware.ts","exported":false,"module":"_root"},{"id":"middleware.ts::middleware","type":"function","name":"middleware","filePath":"middleware.ts","line":3,"exported":true,"module":"_root"},{"id":"next.config.ts","type":"file","name":"next.config.ts","filePath":"next.config.ts","exported":false,"module":"_root"},{"id":"postcss.config.mjs","type":"file","name":"postcss.config.mjs","filePath":"postcss.config.mjs","exported":false,"module":"_root"},{"id":"scripts/bench/run.ts","type":"file","name":"run.ts","filePath":"scripts/bench/run.ts","exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::encodePath","type":"function","name":"encodePath","filePath":"scripts/bench/run.ts","line":32,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::git","type":"function","name":"git","filePath":"scripts/bench/run.ts","line":65,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::ensureCleanBranch","type":"function","name":"ensureCleanBranch","filePath":"scripts/bench/run.ts","line":69,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::createBranch","type":"function","name":"createBranch","filePath":"scripts/bench/run.ts","line":80,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::getChangedFiles","type":"function","name":"getChangedFiles","filePath":"scripts/bench/run.ts","line":85,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::runValidator","type":"function","name":"runValidator","filePath":"scripts/bench/run.ts","line":92,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::runSetup","type":"function","name":"runSetup","filePath":"scripts/bench/run.ts","line":104,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::snapshotClaudeSessions","type":"function","name":"snapshotClaudeSessions","filePath":"scripts/bench/run.ts","line":115,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::computeForgeUsage","type":"function","name":"computeForgeUsage","filePath":"scripts/bench/run.ts","line":129,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::runClaudeCode","type":"function","name":"runClaudeCode","filePath":"scripts/bench/run.ts","line":177,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::api","type":"function","name":"api","filePath":"scripts/bench/run.ts","line":244,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::makeAgent","type":"function","name":"makeAgent","filePath":"scripts/bench/run.ts","line":254,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::cleanStaleRequests","type":"function","name":"cleanStaleRequests","filePath":"scripts/bench/run.ts","line":270,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::killStaleTmuxSessions","type":"function","name":"killStaleTmuxSessions","filePath":"scripts/bench/run.ts","line":280,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::deleteExistingWorkspace","type":"function","name":"deleteExistingWorkspace","filePath":"scripts/bench/run.ts","line":294,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::runForgeWorkspace","type":"function","name":"runForgeWorkspace","filePath":"scripts/bench/run.ts","line":308,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::loadTasks","type":"function","name":"loadTasks","filePath":"scripts/bench/run.ts","line":501,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::fmtTokens","type":"function","name":"fmtTokens","filePath":"scripts/bench/run.ts","line":524,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::writeReport","type":"function","name":"writeReport","filePath":"scripts/bench/run.ts","line":529,"exported":false,"module":"scripts"},{"id":"scripts/bench/run.ts::main","type":"function","name":"main","filePath":"scripts/bench/run.ts","line":585,"exported":false,"module":"scripts"},{"id":"scripts/verify-usage.ts","type":"file","name":"verify-usage.ts","filePath":"scripts/verify-usage.ts","exported":false,"module":"scripts"},{"id":"scripts/verify-usage.ts::getModelFamily","type":"function","name":"getModelFamily","filePath":"scripts/verify-usage.ts","line":19,"exported":false,"module":"scripts"},{"id":"scripts/verify-usage.ts::calcCost","type":"function","name":"calcCost","filePath":"scripts/verify-usage.ts","line":27,"exported":false,"module":"scripts"},{"id":"src/config/index.ts","type":"file","name":"index.ts","filePath":"src/config/index.ts","exported":false,"module":"src"},{"id":"src/config/index.ts::getConfigDir","type":"function","name":"getConfigDir","filePath":"src/config/index.ts","line":11,"exported":true,"module":"src"},{"id":"src/config/index.ts::getDataDir","type":"function","name":"getDataDir","filePath":"src/config/index.ts","line":15,"exported":true,"module":"src"},{"id":"src/config/index.ts::getDbPath","type":"function","name":"getDbPath","filePath":"src/config/index.ts","line":19,"exported":true,"module":"src"},{"id":"src/config/index.ts::ensureDirs","type":"function","name":"ensureDirs","filePath":"src/config/index.ts","line":23,"exported":true,"module":"src"},{"id":"src/config/index.ts::loadConfig","type":"function","name":"loadConfig","filePath":"src/config/index.ts","line":31,"exported":true,"module":"src"},{"id":"src/config/index.ts::saveConfig","type":"function","name":"saveConfig","filePath":"src/config/index.ts","line":43,"exported":true,"module":"src"},{"id":"src/config/index.ts::loadTemplate","type":"function","name":"loadTemplate","filePath":"src/config/index.ts","line":48,"exported":true,"module":"src"},{"id":"src/config/index.ts::loadAllTemplates","type":"function","name":"loadAllTemplates","filePath":"src/config/index.ts","line":55,"exported":true,"module":"src"},{"id":"src/config/index.ts::saveTemplate","type":"function","name":"saveTemplate","filePath":"src/config/index.ts","line":64,"exported":true,"module":"src"},{"id":"src/config/index.ts::getDefaultConfig","type":"function","name":"getDefaultConfig","filePath":"src/config/index.ts","line":70,"exported":false,"module":"src"},{"id":"src/config/index.ts::getProviderApiKey","type":"function","name":"getProviderApiKey","filePath":"src/config/index.ts","line":110,"exported":true,"module":"src"},{"id":"src/core/db/database.ts","type":"file","name":"database.ts","filePath":"src/core/db/database.ts","exported":false,"module":"src"},{"id":"src/core/db/database.ts::getDb","type":"function","name":"getDb","filePath":"src/core/db/database.ts","line":7,"exported":true,"module":"src"},{"id":"src/core/db/database.ts::initSchema","type":"function","name":"initSchema","filePath":"src/core/db/database.ts","line":22,"exported":false,"module":"src"},{"id":"src/core/db/database.ts::migrate","type":"function","name":"migrate","filePath":"src/core/db/database.ts","line":24,"exported":false,"module":"src"},{"id":"src/core/db/database.ts::closeDb","type":"function","name":"closeDb","filePath":"src/core/db/database.ts","line":254,"exported":true,"module":"src"},{"id":"src/core/memory/strategy.ts","type":"file","name":"strategy.ts","filePath":"src/core/memory/strategy.ts","exported":false,"module":"src"},{"id":"src/core/memory/strategy.ts::getMemoryMessages","type":"function","name":"getMemoryMessages","filePath":"src/core/memory/strategy.ts","line":6,"exported":true,"module":"src"},{"id":"src/core/providers/chat.ts","type":"file","name":"chat.ts","filePath":"src/core/providers/chat.ts","exported":false,"module":"src"},{"id":"src/core/providers/chat.ts::chat","type":"function","name":"chat","filePath":"src/core/providers/chat.ts","line":21,"exported":true,"module":"src"},{"id":"src/core/providers/chat.ts::chatStream","type":"function","name":"chatStream","filePath":"src/core/providers/chat.ts","line":40,"exported":true,"module":"src"},{"id":"src/core/providers/registry.ts","type":"file","name":"registry.ts","filePath":"src/core/providers/registry.ts","exported":false,"module":"src"},{"id":"src/core/providers/registry.ts::getModel","type":"function","name":"getModel","filePath":"src/core/providers/registry.ts","line":10,"exported":true,"module":"src"},{"id":"src/core/providers/registry.ts::createModel","type":"function","name":"createModel","filePath":"src/core/providers/registry.ts","line":25,"exported":false,"module":"src"},{"id":"src/core/providers/registry.ts::listAvailableProviders","type":"function","name":"listAvailableProviders","filePath":"src/core/providers/registry.ts","line":52,"exported":true,"module":"src"},{"id":"src/core/session/manager.ts","type":"file","name":"manager.ts","filePath":"src/core/session/manager.ts","exported":false,"module":"src"},{"id":"src/core/session/manager.ts::SessionManager","type":"class","name":"SessionManager","filePath":"src/core/session/manager.ts","line":9,"exported":true,"module":"src"},{"id":"src/types/index.ts","type":"file","name":"index.ts","filePath":"src/types/index.ts","exported":false,"module":"src"}],"edges":[{"from":"app/api/agents/route.ts","to":"app/api/agents/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/auth/verify/route.ts","to":"app/api/auth/verify/route.ts::isValidToken","type":"exports","detail":"isValidToken"},{"from":"app/api/auth/verify/route.ts","to":"app/api/auth/verify/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/claude/[id]/route.ts","to":"app/api/claude/[id]/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/claude/[id]/route.ts","to":"app/api/claude/[id]/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/claude/[id]/stream/route.ts","to":"app/api/claude/[id]/stream/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/claude/route.ts","to":"app/api/claude/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/claude/route.ts","to":"app/api/claude/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/claude/route.ts","to":"app/api/claude/route.ts::DELETE","type":"exports","detail":"DELETE"},{"from":"app/api/claude-sessions/[projectName]/entries/route.ts","to":"app/api/claude-sessions/[projectName]/entries/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/claude-sessions/[projectName]/live/route.ts","to":"app/api/claude-sessions/[projectName]/live/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/claude-sessions/[projectName]/route.ts","to":"app/api/claude-sessions/[projectName]/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/claude-sessions/[projectName]/route.ts","to":"app/api/claude-sessions/[projectName]/route.ts::DELETE","type":"exports","detail":"DELETE"},{"from":"app/api/claude-sessions/sync/route.ts","to":"app/api/claude-sessions/sync/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/claude-sessions/sync/route.ts","to":"app/api/claude-sessions/sync/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/claude-templates/route.ts","to":"app/api/claude-templates/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/claude-templates/route.ts","to":"app/api/claude-templates/route.ts::getProjectPaths","type":"calls","detail":"getProjectPaths"},{"from":"app/api/claude-templates/route.ts","to":"app/api/claude-templates/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/code/route.ts","to":"app/api/code/route.ts::scanDir","type":"calls","detail":"scanDir"},{"from":"app/api/code/route.ts","to":"app/api/code/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/code/route.ts","to":"app/api/code/route.ts::scanGitStatus","type":"calls","detail":"scanGitStatus"},{"from":"app/api/code/route.ts","to":"app/api/code/route.ts::PUT","type":"exports","detail":"PUT"},{"from":"app/api/delivery/[id]/route.ts","to":"app/api/delivery/[id]/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/delivery/[id]/route.ts","to":"app/api/delivery/[id]/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/delivery/[id]/route.ts","to":"app/api/delivery/[id]/route.ts::DELETE","type":"exports","detail":"DELETE"},{"from":"app/api/delivery/route.ts","to":"app/api/delivery/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/delivery/route.ts","to":"app/api/delivery/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/detect-cli/route.ts","to":"app/api/detect-cli/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/detect-cli/route.ts","to":"app/api/detect-cli/route.ts::detect","type":"calls","detail":"detect"},{"from":"app/api/docs/route.ts","to":"app/api/docs/route.ts::scanDir","type":"calls","detail":"scanDir"},{"from":"app/api/docs/route.ts","to":"app/api/docs/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/docs/route.ts","to":"app/api/docs/route.ts::PUT","type":"exports","detail":"PUT"},{"from":"app/api/docs/sessions/route.ts","to":"app/api/docs/sessions/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/favorites/route.ts","to":"app/api/favorites/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/favorites/route.ts","to":"app/api/favorites/route.ts::db","type":"calls","detail":"db"},{"from":"app/api/favorites/route.ts","to":"app/api/favorites/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/flows/route.ts","to":"app/api/flows/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/flows/run/route.ts","to":"app/api/flows/run/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/git/route.ts","to":"app/api/git/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/git/route.ts","to":"app/api/git/route.ts::isUnderProjectRoot","type":"calls","detail":"isUnderProjectRoot"},{"from":"app/api/git/route.ts","to":"app/api/git/route.ts::gitAsync","type":"calls","detail":"gitAsync"},{"from":"app/api/git/route.ts","to":"app/api/git/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/git/route.ts","to":"app/api/git/route.ts::gitSync","type":"calls","detail":"gitSync"},{"from":"app/api/help/route.ts","to":"app/api/help/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/help/route.ts","to":"app/api/help/route.ts::detectAgent","type":"calls","detail":"detectAgent"},{"from":"app/api/help/route.ts","to":"app/api/help/route.ts::ensureHelpDocs","type":"calls","detail":"ensureHelpDocs"},{"from":"app/api/issue-scanner/route.ts","to":"app/api/issue-scanner/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/issue-scanner/route.ts","to":"app/api/issue-scanner/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/logs/route.ts","to":"app/api/logs/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/logs/route.ts","to":"app/api/logs/route.ts::rotateIfNeeded","type":"calls","detail":"rotateIfNeeded"},{"from":"app/api/logs/route.ts","to":"app/api/logs/route.ts::tailFile","type":"calls","detail":"tailFile"},{"from":"app/api/logs/route.ts","to":"app/api/logs/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/mobile-chat/route.ts","to":"app/api/mobile-chat/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/monitor/route.ts","to":"app/api/monitor/route.ts::run","type":"calls","detail":"run"},{"from":"app/api/monitor/route.ts","to":"app/api/monitor/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/monitor/route.ts","to":"app/api/monitor/route.ts::countProcess","type":"calls","detail":"countProcess"},{"from":"app/api/notifications/route.ts","to":"app/api/notifications/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/notifications/route.ts","to":"app/api/notifications/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/notify/test/route.ts","to":"app/api/notify/test/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/online/route.ts","to":"app/api/online/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/online/route.ts","to":"app/api/online/route.ts::cleanup","type":"calls","detail":"cleanup"},{"from":"app/api/online/route.ts","to":"app/api/online/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/pipelines/[id]/route.ts","to":"app/api/pipelines/[id]/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/pipelines/[id]/route.ts","to":"app/api/pipelines/[id]/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/pipelines/route.ts","to":"app/api/pipelines/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/pipelines/route.ts","to":"app/api/pipelines/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/plugins/route.ts","to":"app/api/plugins/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/plugins/route.ts","to":"app/api/plugins/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/preview/[...path]/route.ts","to":"app/api/preview/[...path]/route.ts::getPort","type":"calls","detail":"getPort"},{"from":"app/api/preview/route.ts","to":"app/api/preview/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/preview/route.ts","to":"app/api/preview/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/preview/route.ts","to":"app/api/preview/route.ts::getCloudflaredPath","type":"calls","detail":"getCloudflaredPath"},{"from":"app/api/preview/route.ts","to":"app/api/preview/route.ts::saveConfig","type":"calls","detail":"saveConfig"},{"from":"app/api/project-pipelines/route.ts","to":"app/api/project-pipelines/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/project-pipelines/route.ts","to":"app/api/project-pipelines/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/project-sessions/route.ts","to":"app/api/project-sessions/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/project-sessions/route.ts","to":"app/api/project-sessions/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/projects/route.ts","to":"app/api/projects/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/sessions/[id]/chat/route.ts","to":"app/api/sessions/[id]/chat/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/sessions/[id]/messages/route.ts","to":"app/api/sessions/[id]/messages/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/sessions/[id]/route.ts","to":"app/api/sessions/[id]/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/sessions/[id]/route.ts","to":"app/api/sessions/[id]/route.ts::DELETE","type":"exports","detail":"DELETE"},{"from":"app/api/sessions/route.ts","to":"app/api/sessions/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/sessions/route.ts","to":"app/api/sessions/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/settings/route.ts","to":"app/api/settings/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/settings/route.ts","to":"app/api/settings/route.ts::PUT","type":"exports","detail":"PUT"},{"from":"app/api/skills/local/route.ts","to":"app/api/skills/local/route.ts::listFiles","type":"calls","detail":"listFiles"},{"from":"app/api/skills/local/route.ts","to":"app/api/skills/local/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/skills/local/route.ts","to":"app/api/skills/local/route.ts::scanLocalItems","type":"calls","detail":"scanLocalItems"},{"from":"app/api/skills/local/route.ts","to":"app/api/skills/local/route.ts::resolveDir","type":"calls","detail":"resolveDir"},{"from":"app/api/skills/local/route.ts","to":"app/api/skills/local/route.ts::md5","type":"calls","detail":"md5"},{"from":"app/api/skills/local/route.ts","to":"app/api/skills/local/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/skills/route.ts","to":"app/api/skills/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/skills/route.ts","to":"app/api/skills/route.ts::recurse","type":"calls","detail":"recurse"},{"from":"app/api/skills/route.ts","to":"app/api/skills/route.ts::getProjectPaths","type":"calls","detail":"getProjectPaths"},{"from":"app/api/skills/route.ts","to":"app/api/skills/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/smith-templates/route.ts","to":"app/api/smith-templates/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/smith-templates/route.ts","to":"app/api/smith-templates/route.ts::getTemplatesDir","type":"calls","detail":"getTemplatesDir"},{"from":"app/api/smith-templates/route.ts","to":"app/api/smith-templates/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/status/route.ts","to":"app/api/status/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/tabs/route.ts","to":"app/api/tabs/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/tabs/route.ts","to":"app/api/tabs/route.ts::db","type":"calls","detail":"db"},{"from":"app/api/tabs/route.ts","to":"app/api/tabs/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/tasks/[id]/route.ts","to":"app/api/tasks/[id]/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/tasks/[id]/route.ts","to":"app/api/tasks/[id]/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/tasks/[id]/route.ts","to":"app/api/tasks/[id]/route.ts::PATCH","type":"exports","detail":"PATCH"},{"from":"app/api/tasks/[id]/route.ts","to":"app/api/tasks/[id]/route.ts::DELETE","type":"exports","detail":"DELETE"},{"from":"app/api/tasks/[id]/stream/route.ts","to":"app/api/tasks/[id]/stream/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/tasks/link/route.ts","to":"app/api/tasks/link/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/tasks/route.ts","to":"app/api/tasks/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/tasks/route.ts","to":"app/api/tasks/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/tasks/session/route.ts","to":"app/api/tasks/session/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/telegram/route.ts","to":"app/api/telegram/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/templates/route.ts","to":"app/api/templates/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/terminal-bell/route.ts","to":"app/api/terminal-bell/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/terminal-cwd/route.ts","to":"app/api/terminal-cwd/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/terminal-state/route.ts","to":"app/api/terminal-state/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/tunnel/route.ts","to":"app/api/tunnel/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/tunnel/route.ts","to":"app/api/tunnel/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/upgrade/route.ts","to":"app/api/upgrade/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/usage/route.ts","to":"app/api/usage/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/usage/route.ts","to":"app/api/usage/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/version/route.ts","to":"app/api/version/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/version/route.ts","to":"app/api/version/route.ts::getLatestVersion","type":"calls","detail":"getLatestVersion"},{"from":"app/api/version/route.ts","to":"app/api/version/route.ts::compareVersions","type":"calls","detail":"compareVersions"},{"from":"app/api/watchers/route.ts","to":"app/api/watchers/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/watchers/route.ts","to":"app/api/watchers/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/workspace/[id]/agents/route.ts","to":"app/api/workspace/[id]/agents/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/workspace/[id]/agents/route.ts","to":"app/api/workspace/[id]/agents/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/workspace/[id]/memory/route.ts","to":"app/api/workspace/[id]/memory/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/workspace/[id]/smith/route.ts","to":"app/api/workspace/[id]/smith/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/workspace/[id]/stream/route.ts","to":"app/api/workspace/[id]/stream/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/workspace/route.ts","to":"app/api/workspace/route.ts::GET","type":"exports","detail":"GET"},{"from":"app/api/workspace/route.ts","to":"app/api/workspace/route.ts::POST","type":"exports","detail":"POST"},{"from":"app/api/workspace/route.ts","to":"app/api/workspace/route.ts::DELETE","type":"exports","detail":"DELETE"},{"from":"app/global-error.tsx","to":"app/global-error.tsx::GlobalError","type":"exports","detail":"GlobalError"},{"from":"app/layout.tsx","to":"app/globals.css","type":"imports","detail":""},{"from":"app/layout.tsx","to":"app/layout.tsx::RootLayout","type":"exports","detail":"RootLayout"},{"from":"app/login/LoginForm.tsx","to":"app/login/LoginForm.tsx::LoginForm","type":"exports","detail":"LoginForm"},{"from":"app/login/page.tsx","to":"app/login/LoginForm","type":"imports","detail":"LoginForm"},{"from":"app/login/page.tsx","to":"app/login/page.tsx::LoginPage","type":"exports","detail":"LoginPage"},{"from":"app/mobile/page.tsx","to":"app/mobile/page.tsx::MobilePage","type":"exports","detail":"MobilePage"},{"from":"app/page.tsx","to":"app/page.tsx::Home","type":"exports","detail":"Home"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::getArg","type":"calls","detail":"getArg"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::ask","type":"calls","detail":"ask"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::loadPids","type":"calls","detail":"loadPids"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::cleanupOrphans","type":"calls","detail":"cleanupOrphans"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::savePids","type":"calls","detail":"savePids"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::stopServices","type":"calls","detail":"stopServices"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::killTrackedPids","type":"calls","detail":"killTrackedPids"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::buildNext","type":"calls","detail":"buildNext"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::startServices","type":"calls","detail":"startServices"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::stopServer","type":"calls","detail":"stopServer"},{"from":"bin/forge-server.mjs","to":"bin/forge-server.mjs::startBackground","type":"calls","detail":"startBackground"},{"from":"cli/mw.ts","to":"cli/mw.ts::api","type":"calls","detail":"api"},{"from":"cli/mw.ts","to":"cli/mw.ts::check","type":"calls","detail":"check"},{"from":"cli/mw.ts","to":"cli/mw.ts::main","type":"calls","detail":"main"},{"from":"cli/mw.ts","to":"cli/mw.ts::checkForUpdate","type":"calls","detail":"checkForUpdate"},{"from":"components/BrowserPanel.tsx","to":"components/BrowserPanel.tsx::BrowserPanel","type":"exports","detail":"BrowserPanel"},{"from":"components/BrowserPanel.tsx","to":"components/BrowserPanel.tsx::normalizeUrl","type":"calls","detail":"normalizeUrl"},{"from":"components/BrowserPanel.tsx","to":"components/BrowserPanel.tsx::navigate","type":"calls","detail":"navigate"},{"from":"components/BrowserPanel.tsx","to":"components/BrowserPanel.tsx::stopTunnel","type":"calls","detail":"stopTunnel"},{"from":"components/ChatPanel.tsx","to":"components/ChatPanel.tsx::ChatPanel","type":"exports","detail":"ChatPanel"},{"from":"components/ChatPanel.tsx","to":"components/ChatPanel.tsx::sendMessage","type":"calls","detail":"sendMessage"},{"from":"components/ClaudeTerminal.tsx","to":"components/ClaudeTerminal.tsx::ClaudeTerminal","type":"exports","detail":"ClaudeTerminal"},{"from":"components/ClaudeTerminal.tsx","to":"components/ClaudeTerminal.tsx::connect","type":"calls","detail":"connect"},{"from":"components/ClaudeTerminal.tsx","to":"components/ClaudeTerminal.tsx::sendMessage","type":"calls","detail":"sendMessage"},{"from":"components/CodeViewer.tsx","to":"components/WebTerminal","type":"imports","detail":"WebTerminalHandle, WebTerminalProps"},{"from":"components/CodeViewer.tsx","to":"components/CodeViewer.tsx::hasGitChanges","type":"calls","detail":"hasGitChanges"},{"from":"components/CodeViewer.tsx","to":"components/CodeViewer.tsx::flattenTree","type":"calls","detail":"flattenTree"},{"from":"components/CodeViewer.tsx","to":"components/CodeViewer.tsx::CodeViewer","type":"exports","detail":"CodeViewer"},{"from":"components/CodeViewer.tsx","to":"components/CodeViewer.tsx::fetchCwd","type":"calls","detail":"fetchCwd"},{"from":"components/CodeViewer.tsx","to":"components/CodeViewer.tsx::fetchDir","type":"calls","detail":"fetchDir"},{"from":"components/CodeViewer.tsx","to":"components/CodeViewer.tsx::highlightLine","type":"calls","detail":"highlightLine"},{"from":"components/ConversationEditor.tsx","to":"components/ConversationEditor.tsx::ConversationEditor","type":"exports","detail":"ConversationEditor"},{"from":"components/ConversationEditor.tsx","to":"components/ConversationEditor.tsx::parseConvYaml","type":"calls","detail":"parseConvYaml"},{"from":"components/ConversationEditor.tsx","to":"components/ConversationEditor.tsx::buildFlowGraph","type":"calls","detail":"buildFlowGraph"},{"from":"components/ConversationEditor.tsx","to":"components/ConversationEditor.tsx::validate","type":"calls","detail":"validate"},{"from":"components/ConversationGraphView.tsx","to":"components/ConversationGraphView.tsx::useTaskStream","type":"calls","detail":"useTaskStream"},{"from":"components/ConversationGraphView.tsx","to":"components/ConversationGraphView.tsx::ConversationGraphView","type":"exports","detail":"ConversationGraphView"},{"from":"components/ConversationGraphView.tsx","to":"components/ConversationGraphView.tsx::buildExecutionGraph","type":"calls","detail":"buildExecutionGraph"},{"from":"components/ConversationTerminalView.tsx","to":"components/ConversationTerminalView.tsx::handleSend","type":"calls","detail":"handleSend"},{"from":"components/ConversationTerminalView.tsx","to":"components/ConversationTerminalView.tsx::ConversationTerminalView","type":"exports","detail":"ConversationTerminalView"},{"from":"components/ConversationTerminalView.tsx","to":"components/ConversationTerminalView.tsx::useAgentStream","type":"calls","detail":"useAgentStream"},{"from":"components/ConversationTerminalView.tsx","to":"components/ConversationTerminalView.tsx::getFlowState","type":"calls","detail":"getFlowState"},{"from":"components/Dashboard.tsx","to":"components/TaskBoard","type":"imports","detail":"TaskBoard"},{"from":"components/Dashboard.tsx","to":"components/TaskDetail","type":"imports","detail":"TaskDetail"},{"from":"components/Dashboard.tsx","to":"components/TunnelToggle","type":"imports","detail":"TunnelToggle"},{"from":"components/Dashboard.tsx","to":"components/WebTerminal","type":"imports","detail":"WebTerminalHandle"},{"from":"components/Dashboard.tsx","to":"components/Dashboard.tsx::Dashboard","type":"exports","detail":"Dashboard"},{"from":"components/Dashboard.tsx","to":"components/Dashboard.tsx::check","type":"calls","detail":"check"},{"from":"components/Dashboard.tsx","to":"components/Dashboard.tsx::ping","type":"calls","detail":"ping"},{"from":"components/DashboardWrapper.tsx","to":"components/DashboardWrapper.tsx::DashboardWrapper","type":"exports","detail":"DashboardWrapper"},{"from":"components/DeliveryFlowEditor.tsx","to":"components/DeliveryFlowEditor.tsx::getColor","type":"calls","detail":"getColor"},{"from":"components/DeliveryFlowEditor.tsx","to":"components/DeliveryFlowEditor.tsx::DeliveryFlowEditor","type":"exports","detail":"DeliveryFlowEditor"},{"from":"components/DeliveryFlowEditor.tsx","to":"components/DeliveryFlowEditor.tsx::handleAddPreset","type":"calls","detail":"handleAddPreset"},{"from":"components/DeliveryList.tsx","to":"components/DeliveryFlowEditor","type":"imports","detail":"PhaseOutput"},{"from":"components/DeliveryList.tsx","to":"components/DeliveryList.tsx::DeliveryList","type":"exports","detail":"DeliveryList"},{"from":"components/DeliveryList.tsx","to":"components/DeliveryList.tsx::handleDelete","type":"calls","detail":"handleDelete"},{"from":"components/DeliveryWorkspace.tsx","to":"components/DeliveryWorkspace.tsx::getPhaseMeta","type":"calls","detail":"getPhaseMeta"},{"from":"components/DeliveryWorkspace.tsx","to":"components/DeliveryWorkspace.tsx::useTaskStream","type":"calls","detail":"useTaskStream"},{"from":"components/DeliveryWorkspace.tsx","to":"components/DeliveryWorkspace.tsx::handleSend","type":"calls","detail":"handleSend"},{"from":"components/DeliveryWorkspace.tsx","to":"components/DeliveryWorkspace.tsx::act","type":"calls","detail":"act"},{"from":"components/DeliveryWorkspace.tsx","to":"components/DeliveryWorkspace.tsx::cellCenter","type":"calls","detail":"cellCenter"},{"from":"components/DeliveryWorkspace.tsx","to":"components/DeliveryWorkspace.tsx::DeliveryWorkspace","type":"exports","detail":"DeliveryWorkspace"},{"from":"components/DocTerminal.tsx","to":"components/DocTerminal.tsx::DocTerminal","type":"exports","detail":"DocTerminal"},{"from":"components/DocTerminal.tsx","to":"components/DocTerminal.tsx::tv","type":"calls","detail":"tv"},{"from":"components/DocTerminal.tsx","to":"components/DocTerminal.tsx::getWsUrl","type":"calls","detail":"getWsUrl"},{"from":"components/DocTerminal.tsx","to":"components/DocTerminal.tsx::connect","type":"calls","detail":"connect"},{"from":"components/DocsViewer.tsx","to":"components/MarkdownContent","type":"imports","detail":"MarkdownContent"},{"from":"components/DocsViewer.tsx","to":"components/TabBar","type":"imports","detail":"TabBar"},{"from":"components/DocsViewer.tsx","to":"components/DocsViewer.tsx::flattenTree","type":"calls","detail":"flattenTree"},{"from":"components/DocsViewer.tsx","to":"components/DocsViewer.tsx::filterTree","type":"calls","detail":"filterTree"},{"from":"components/DocsViewer.tsx","to":"components/DocsViewer.tsx::DocsViewer","type":"exports","detail":"DocsViewer"},{"from":"components/DocsViewer.tsx","to":"components/DocsViewer.tsx::genTabId","type":"calls","detail":"genTabId"},{"from":"components/DocsViewer.tsx","to":"components/DocsViewer.tsx::isImageFile","type":"calls","detail":"isImageFile"},{"from":"components/HelpDialog.tsx","to":"components/HelpDialog.tsx::HelpDialog","type":"exports","detail":"HelpDialog"},{"from":"components/HelpDialog.tsx","to":"components/HelpDialog.tsx::loadDoc","type":"calls","detail":"loadDoc"},{"from":"components/HelpTerminal.tsx","to":"components/HelpTerminal.tsx::HelpTerminal","type":"exports","detail":"HelpTerminal"},{"from":"components/HelpTerminal.tsx","to":"components/HelpTerminal.tsx::tv","type":"calls","detail":"tv"},{"from":"components/HelpTerminal.tsx","to":"components/HelpTerminal.tsx::getWsUrl","type":"calls","detail":"getWsUrl"},{"from":"components/HelpTerminal.tsx","to":"components/HelpTerminal.tsx::connect","type":"calls","detail":"connect"},{"from":"components/InlinePipelineView.tsx","to":"components/InlinePipelineView.tsx::useTaskStreamInline","type":"calls","detail":"useTaskStreamInline"},{"from":"components/InlinePipelineView.tsx","to":"components/InlinePipelineView.tsx::InlinePipelineView","type":"exports","detail":"InlinePipelineView"},{"from":"components/LogViewer.tsx","to":"components/LogViewer.tsx::LogViewer","type":"exports","detail":"LogViewer"},{"from":"components/LogViewer.tsx","to":"components/LogViewer.tsx::formatSize","type":"calls","detail":"formatSize"},{"from":"components/LogViewer.tsx","to":"components/LogViewer.tsx::fetchProcesses","type":"calls","detail":"fetchProcesses"},{"from":"components/LogViewer.tsx","to":"components/LogViewer.tsx::getLineColor","type":"calls","detail":"getLineColor"},{"from":"components/MarkdownContent.tsx","to":"components/MarkdownContent.tsx::MarkdownContent","type":"exports","detail":"MarkdownContent"},{"from":"components/MobileView.tsx","to":"components/MobileView.tsx::MobileView","type":"exports","detail":"MobileView"},{"from":"components/MobileView.tsx","to":"components/MobileView.tsx::sendMessage","type":"calls","detail":"sendMessage"},{"from":"components/MonitorPanel.tsx","to":"components/MonitorPanel.tsx::MonitorPanel","type":"exports","detail":"MonitorPanel"},{"from":"components/NewSessionModal.tsx","to":"components/NewSessionModal.tsx::NewSessionModal","type":"exports","detail":"NewSessionModal"},{"from":"components/NewTaskModal.tsx","to":"components/NewTaskModal.tsx::NewTaskModal","type":"exports","detail":"NewTaskModal"},{"from":"components/NewTaskModal.tsx","to":"components/NewTaskModal.tsx::getScheduledAt","type":"calls","detail":"getScheduledAt"},{"from":"components/PipelineEditor.tsx","to":"components/PipelineEditor.tsx::PipelineEditor","type":"exports","detail":"PipelineEditor"},{"from":"components/PipelineView.tsx","to":"components/PipelineView.tsx::useTaskStream","type":"calls","detail":"useTaskStream"},{"from":"components/PipelineView.tsx","to":"components/PipelineView.tsx::handleInject","type":"calls","detail":"handleInject"},{"from":"components/PipelineView.tsx","to":"components/PipelineView.tsx::PipelineView","type":"exports","detail":"PipelineView"},{"from":"components/PipelineView.tsx","to":"components/PipelineView.tsx::generateConversationTemplate","type":"calls","detail":"generateConversationTemplate"},{"from":"components/PipelineView.tsx","to":"components/PipelineView.tsx::handleCancel","type":"calls","detail":"handleCancel"},{"from":"components/PipelineView.tsx","to":"components/PipelineView.tsx::handleDelete","type":"calls","detail":"handleDelete"},{"from":"components/PluginsPanel.tsx","to":"components/PluginsPanel.tsx::PluginsPanel","type":"exports","detail":"PluginsPanel"},{"from":"components/PluginsPanel.tsx","to":"components/PluginsPanel.tsx::pluginInstances","type":"calls","detail":"pluginInstances"},{"from":"components/ProjectDetail.tsx","to":"components/TerminalLauncher","type":"imports","detail":"TerminalSessionPickerLazy, fetchProjectSessions"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::highlightLine","type":"calls","detail":"highlightLine"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::uninstallSkill","type":"calls","detail":"uninstallSkill"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::loadSkillFile","type":"calls","detail":"loadSkillFile"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::handleUpdate","type":"calls","detail":"handleUpdate"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::saveSkillFile","type":"calls","detail":"saveSkillFile"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::removeFromProject","type":"calls","detail":"removeFromProject"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::injectToProject","type":"calls","detail":"injectToProject"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::saveClaudeMd","type":"calls","detail":"saveClaudeMd"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::triggerProjectPipeline","type":"calls","detail":"triggerProjectPipeline"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::gitAction","type":"calls","detail":"gitAction"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::openTerminal","type":"calls","detail":"openTerminal"},{"from":"components/ProjectDetail.tsx","to":"components/ProjectDetail.tsx::handleAgentClick","type":"calls","detail":"handleAgentClick"},{"from":"components/ProjectDetail.tsx","to":"components/TerminalLauncher::fetchProjectSessions","type":"calls","detail":"fetchProjectSessions"},{"from":"components/ProjectList.tsx","to":"components/ProjectList.tsx::ProjectList","type":"exports","detail":"ProjectList"},{"from":"components/ProjectList.tsx","to":"components/ProjectList.tsx::getProcessForProject","type":"calls","detail":"getProcessForProject"},{"from":"components/ProjectManager.tsx","to":"components/TabBar","type":"imports","detail":"TabBar"},{"from":"components/ProjectManager.tsx","to":"components/ProjectDetail","type":"imports","detail":"ProjectDetail"},{"from":"components/ProjectManager.tsx","to":"components/ProjectManager.tsx::ProjectManager","type":"exports","detail":"ProjectManager"},{"from":"components/ProjectManager.tsx","to":"components/ProjectManager.tsx::genTabId","type":"calls","detail":"genTabId"},{"from":"components/ProjectManager.tsx","to":"components/ProjectManager.tsx::handleClone","type":"calls","detail":"handleClone"},{"from":"components/ProjectManager.tsx","to":"components/ProjectManager.tsx::toggleRoot","type":"calls","detail":"toggleRoot"},{"from":"components/SessionList.tsx","to":"components/SessionList.tsx::SessionList","type":"exports","detail":"SessionList"},{"from":"components/SessionView.tsx","to":"components/MarkdownContent","type":"imports","detail":"MarkdownContent"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::SessionView","type":"exports","detail":"SessionView"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::exitBatchMode","type":"calls","detail":"exitBatchMode"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::toggleProject","type":"calls","detail":"toggleProject"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::isAllSelected","type":"calls","detail":"isAllSelected"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::toggleSelectAll","type":"calls","detail":"toggleSelectAll"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::toggleSelect","type":"calls","detail":"toggleSelect"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::selectSession","type":"calls","detail":"selectSession"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::isSelected","type":"calls","detail":"isSelected"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::createMonitorTask","type":"calls","detail":"createMonitorTask"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::deleteSessionById","type":"calls","detail":"deleteSessionById"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::removeWatcher","type":"calls","detail":"removeWatcher"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::addWatcher","type":"calls","detail":"addWatcher"},{"from":"components/SessionView.tsx","to":"components/SessionView.tsx::toggleTool","type":"calls","detail":"toggleTool"},{"from":"components/SettingsModal.tsx","to":"components/SettingsModal.tsx::SettingsModal","type":"exports","detail":"SettingsModal"},{"from":"components/SettingsModal.tsx","to":"components/SettingsModal.tsx::removeRoot","type":"calls","detail":"removeRoot"},{"from":"components/SettingsModal.tsx","to":"components/SettingsModal.tsx::addRoot","type":"calls","detail":"addRoot"},{"from":"components/SettingsModal.tsx","to":"components/SettingsModal.tsx::parseEnv","type":"calls","detail":"parseEnv"},{"from":"components/SettingsModal.tsx","to":"components/SettingsModal.tsx::makeNewAgent","type":"calls","detail":"makeNewAgent"},{"from":"components/SettingsModal.tsx","to":"components/SettingsModal.tsx::saveAgentConfig","type":"calls","detail":"saveAgentConfig"},{"from":"components/SettingsModal.tsx","to":"components/SettingsModal.tsx::updateAgent","type":"calls","detail":"updateAgent"},{"from":"components/SettingsModal.tsx","to":"components/SettingsModal.tsx::removeAgent","type":"calls","detail":"removeAgent"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::buildTree","type":"calls","detail":"buildTree"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::toggle","type":"calls","detail":"toggle"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::SkillsPanel","type":"exports","detail":"SkillsPanel"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::toggleDetail","type":"calls","detail":"toggleDetail"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::toggleLocalSection","type":"calls","detail":"toggleLocalSection"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::install","type":"calls","detail":"install"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::uninstall","type":"calls","detail":"uninstall"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::loadFile","type":"calls","detail":"loadFile"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::toggleDefault","type":"calls","detail":"toggleDefault"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::deleteRule","type":"calls","detail":"deleteRule"},{"from":"components/SkillsPanel.tsx","to":"components/SkillsPanel.tsx::batchInject","type":"calls","detail":"batchInject"},{"from":"components/StatusBar.tsx","to":"components/StatusBar.tsx::StatusBar","type":"exports","detail":"StatusBar"},{"from":"components/TabBar.tsx","to":"components/TabBar.tsx::TabBar","type":"exports","detail":"TabBar"},{"from":"components/TaskBoard.tsx","to":"components/TaskBoard.tsx::TaskBoard","type":"exports","detail":"TaskBoard"},{"from":"components/TaskDetail.tsx","to":"components/MarkdownContent","type":"imports","detail":"MarkdownContent"},{"from":"components/TaskDetail.tsx","to":"components/NewTaskModal","type":"imports","detail":"NewTaskModal"},{"from":"components/TaskDetail.tsx","to":"components/TaskDetail.tsx::TaskDetail","type":"exports","detail":"TaskDetail"},{"from":"components/TaskDetail.tsx","to":"components/TaskDetail.tsx::handleAction","type":"calls","detail":"handleAction"},{"from":"components/TaskDetail.tsx","to":"components/TaskDetail.tsx::toggleTool","type":"calls","detail":"toggleTool"},{"from":"components/TerminalLauncher.tsx","to":"components/TerminalLauncher.tsx::fetchAgentSessions","type":"exports","detail":"fetchAgentSessions"},{"from":"components/TerminalLauncher.tsx","to":"components/TerminalLauncher.tsx::fetchProjectSessions","type":"exports","detail":"fetchProjectSessions"},{"from":"components/TerminalLauncher.tsx","to":"components/TerminalLauncher.tsx::formatRelativeTime","type":"calls","detail":"formatRelativeTime"},{"from":"components/TerminalLauncher.tsx","to":"components/TerminalLauncher.tsx::formatSize","type":"calls","detail":"formatSize"},{"from":"components/TerminalLauncher.tsx","to":"components/TerminalLauncher.tsx::TerminalSessionPicker","type":"exports","detail":"TerminalSessionPicker"},{"from":"components/TerminalLauncher.tsx","to":"components/TerminalLauncher.tsx::TerminalSessionPickerLazy","type":"exports","detail":"TerminalSessionPickerLazy"},{"from":"components/TerminalLauncher.tsx","to":"components/TerminalLauncher.tsx::resolveWorkspaceTerminal","type":"exports","detail":"resolveWorkspaceTerminal"},{"from":"components/TerminalLauncher.tsx","to":"components/TerminalLauncher.tsx::resolveWorkspaceAgentInfo","type":"exports","detail":"resolveWorkspaceAgentInfo"},{"from":"components/TerminalLauncher.tsx","to":"components/TerminalLauncher.tsx::buildProjectTerminalConfig","type":"exports","detail":"buildProjectTerminalConfig"},{"from":"components/TunnelToggle.tsx","to":"components/TunnelToggle.tsx::TunnelToggle","type":"exports","detail":"TunnelToggle"},{"from":"components/TunnelToggle.tsx","to":"components/TunnelToggle.tsx::doStart","type":"calls","detail":"doStart"},{"from":"components/UsagePanel.tsx","to":"components/UsagePanel.tsx::UsagePanel","type":"exports","detail":"UsagePanel"},{"from":"components/UsagePanel.tsx","to":"components/UsagePanel.tsx::formatCost","type":"calls","detail":"formatCost"},{"from":"components/UsagePanel.tsx","to":"components/UsagePanel.tsx::formatTokens","type":"calls","detail":"formatTokens"},{"from":"components/WebTerminal.tsx","to":"components/TerminalLauncher","type":"imports","detail":"TerminalSessionPickerLazy, fetchProjectSessions"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::getWsUrl","type":"calls","detail":"getWsUrl"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::initNextId","type":"calls","detail":"initNextId"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::makeSplit","type":"calls","detail":"makeSplit"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::makeTerminal","type":"calls","detail":"makeTerminal"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::splitNodeById","type":"calls","detail":"splitNodeById"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::removeNodeById","type":"calls","detail":"removeNodeById"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::updateSessionName","type":"calls","detail":"updateSessionName"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::countTerminals","type":"calls","detail":"countTerminals"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::firstTerminalId","type":"calls","detail":"firstTerminalId"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::collectPaneIds","type":"calls","detail":"collectPaneIds"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::collectSessionNames","type":"calls","detail":"collectSessionNames"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::loadSharedState","type":"calls","detail":"loadSharedState"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::initNextIdFromTabs","type":"calls","detail":"initNextIdFromTabs"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::saveSharedState","type":"calls","detail":"saveSharedState"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::collectAllSessionNames","type":"calls","detail":"collectAllSessionNames"},{"from":"components/WebTerminal.tsx","to":"components/TerminalLauncher::fetchProjectSessions","type":"calls","detail":"fetchProjectSessions"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::WebTerminal","type":"exports","detail":"default"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::btnClass","type":"calls","detail":"btnClass"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::getAbbr","type":"calls","detail":"getAbbr"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::tv","type":"calls","detail":"tv"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::initTerminal","type":"calls","detail":"initTerminal"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::fireBellNotification","type":"calls","detail":"fireBellNotification"},{"from":"components/WebTerminal.tsx","to":"components/WebTerminal.tsx::handleResize","type":"calls","detail":"handleResize"},{"from":"components/WorkspaceTree.tsx","to":"components/WorkspaceTree.tsx::WorkspaceTree","type":"exports","detail":"WorkspaceTree"},{"from":"components/WorkspaceTree.tsx","to":"components/WorkspaceTree.tsx::toggleExpand","type":"calls","detail":"toggleExpand"},{"from":"components/WorkspaceView.tsx","to":"components/TerminalLauncher","type":"imports","detail":"TerminalSessionPickerLazy, fetchAgentSessions, PickerSelection"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::walk","type":"calls","detail":"walk"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::formatTime","type":"calls","detail":"formatTime"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::formatSize","type":"calls","detail":"formatSize"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::applyPreset","type":"calls","detail":"applyPreset"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::applySavedTemplate","type":"calls","detail":"applySavedTemplate"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::toggleDep","type":"calls","detail":"toggleDep"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::parseSteps","type":"calls","detail":"parseSteps"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::wsApi","type":"calls","detail":"wsApi"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::toggleSelect","type":"calls","detail":"toggleSelect"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::getLabel","type":"calls","detail":"getLabel"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::handleDelete","type":"calls","detail":"handleDelete"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::getWsUrl","type":"calls","detail":"getWsUrl"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::body","type":"calls","detail":"body"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::standingDog","type":"calls","detail":"standingDog"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::pigBody","type":"calls","detail":"pigBody"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::ensureWorkspace","type":"calls","detail":"ensureWorkspace"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::useWorkspaceStream","type":"calls","detail":"useWorkspaceStream"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::safeName","type":"calls","detail":"safeName"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::updateMascotTheme","type":"calls","detail":"updateMascotTheme"},{"from":"components/WorkspaceView.tsx","to":"components/WorkspaceView.tsx::handleImportTemplate","type":"calls","detail":"handleImportTemplate"},{"from":"components/WorkspaceView.tsx","to":"components/TerminalLauncher::fetchAgentSessions","type":"calls","detail":"fetchAgentSessions"},{"from":"hooks/useSidebarResize.ts","to":"hooks/useSidebarResize.ts::useSidebarResize","type":"exports","detail":"useSidebarResize"},{"from":"instrumentation.ts","to":"instrumentation.ts::register","type":"exports","detail":"register"},{"from":"lib/agents/claude-adapter.ts","to":"lib/agents/types","type":"imports","detail":"AgentAdapter, AgentConfig, AgentSpawnOptions, AgentSpawnResult"},{"from":"lib/agents/claude-adapter.ts","to":"lib/agents/claude-adapter.ts::createClaudeAdapter","type":"exports","detail":"createClaudeAdapter"},{"from":"lib/agents/claude-adapter.ts","to":"lib/agents/claude-adapter.ts::resolveClaudePath","type":"calls","detail":"resolveClaudePath"},{"from":"lib/agents/claude-adapter.ts","to":"lib/agents/claude-adapter.ts::detectClaude","type":"exports","detail":"detectClaude"},{"from":"lib/agents/generic-adapter.ts","to":"lib/agents/types","type":"imports","detail":"AgentAdapter, AgentConfig, AgentSpawnOptions, AgentSpawnResult"},{"from":"lib/agents/generic-adapter.ts","to":"lib/agents/generic-adapter.ts::createGenericAdapter","type":"exports","detail":"createGenericAdapter"},{"from":"lib/agents/generic-adapter.ts","to":"lib/agents/generic-adapter.ts::detectAgent","type":"exports","detail":"detectAgent"},{"from":"lib/agents/index.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/agents/index.ts","to":"lib/agents/types","type":"imports","detail":"AgentAdapter, AgentConfig, AgentId"},{"from":"lib/agents/index.ts","to":"lib/agents/claude-adapter","type":"imports","detail":"createClaudeAdapter, detectClaude"},{"from":"lib/agents/index.ts","to":"lib/agents/generic-adapter","type":"imports","detail":"createGenericAdapter, detectAgent"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::AgentAdapter","type":"exports","detail":"AgentAdapter"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::AgentConfig","type":"exports","detail":"AgentConfig"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::AgentId","type":"exports","detail":"AgentId"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::listAgents","type":"exports","detail":"listAgents"},{"from":"lib/agents/index.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/agents/index.ts","to":"lib/agents/claude-adapter::detectClaude","type":"calls","detail":"detectClaude"},{"from":"lib/agents/index.ts","to":"lib/agents/generic-adapter::detectAgent","type":"calls","detail":"detectAgent"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::getDefaultAgentId","type":"exports","detail":"getDefaultAgentId"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::getAgent","type":"exports","detail":"getAgent"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::getDefaultAgentId","type":"calls","detail":"getDefaultAgentId"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::listAgents","type":"calls","detail":"listAgents"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::getAgent","type":"calls","detail":"getAgent"},{"from":"lib/agents/index.ts","to":"lib/agents/claude-adapter::createClaudeAdapter","type":"calls","detail":"createClaudeAdapter"},{"from":"lib/agents/index.ts","to":"lib/agents/generic-adapter::createGenericAdapter","type":"calls","detail":"createGenericAdapter"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::clearAgentCache","type":"exports","detail":"clearAgentCache"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::autoDetectAgents","type":"exports","detail":"autoDetectAgents"},{"from":"lib/agents/index.ts","to":"lib/agents/index.ts::resolveTerminalLaunch","type":"exports","detail":"resolveTerminalLaunch"},{"from":"lib/artifacts.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/artifacts.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/artifacts.ts","to":"lib/artifacts.ts::createArtifact","type":"exports","detail":"createArtifact"},{"from":"lib/artifacts.ts","to":"lib/artifacts.ts::artifactsDir","type":"calls","detail":"artifactsDir"},{"from":"lib/artifacts.ts","to":"lib/artifacts.ts::getArtifact","type":"exports","detail":"getArtifact"},{"from":"lib/artifacts.ts","to":"lib/artifacts.ts::listArtifacts","type":"exports","detail":"listArtifacts"},{"from":"lib/artifacts.ts","to":"lib/artifacts.ts::deleteArtifact","type":"exports","detail":"deleteArtifact"},{"from":"lib/artifacts.ts","to":"lib/artifacts.ts::extractArtifacts","type":"exports","detail":"extractArtifacts"},{"from":"lib/artifacts.ts","to":"lib/artifacts.ts::createArtifact","type":"calls","detail":"createArtifact"},{"from":"lib/artifacts.ts","to":"lib/artifacts.ts::writeArtifactToProject","type":"exports","detail":"writeArtifactToProject"},{"from":"lib/claude-process.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/claude-process.ts","to":"lib/claude-process.ts::createClaudeSession","type":"exports","detail":"createClaudeSession"},{"from":"lib/claude-process.ts","to":"lib/claude-process.ts::sendToClaudeSession","type":"exports","detail":"sendToClaudeSession"},{"from":"lib/claude-process.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/claude-process.ts","to":"lib/claude-process.ts::attachToProcess","type":"exports","detail":"attachToProcess"},{"from":"lib/claude-process.ts","to":"lib/claude-process.ts::killProcess","type":"exports","detail":"killProcess"},{"from":"lib/claude-process.ts","to":"lib/claude-process.ts::deleteSession","type":"exports","detail":"deleteSession"},{"from":"lib/claude-process.ts","to":"lib/claude-process.ts::listProcesses","type":"exports","detail":"listProcesses"},{"from":"lib/claude-process.ts","to":"lib/claude-process.ts::getProcess","type":"exports","detail":"getProcess"},{"from":"lib/claude-sessions.ts","to":"lib/dirs","type":"imports","detail":"getClaudeDir"},{"from":"lib/claude-sessions.ts","to":"lib/projects","type":"imports","detail":"getProjectInfo"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::projectPathToClaudeDir","type":"exports","detail":"projectPathToClaudeDir"},{"from":"lib/claude-sessions.ts","to":"lib/dirs::getClaudeDir","type":"calls","detail":"getClaudeDir"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::getClaudeDirForProject","type":"exports","detail":"getClaudeDirForProject"},{"from":"lib/claude-sessions.ts","to":"lib/projects::getProjectInfo","type":"calls","detail":"getProjectInfo"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::projectPathToClaudeDir","type":"calls","detail":"projectPathToClaudeDir"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::listClaudeSessions","type":"exports","detail":"listClaudeSessions"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::getClaudeDirForProject","type":"calls","detail":"getClaudeDirForProject"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::parseSessionLine","type":"exports","detail":"parseSessionLine"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::getSessionFilePath","type":"exports","detail":"getSessionFilePath"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::readSessionEntries","type":"exports","detail":"readSessionEntries"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::parseSessionLine","type":"calls","detail":"parseSessionLine"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::deleteSession","type":"exports","detail":"deleteSession"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::tailSessionFile","type":"exports","detail":"tailSessionFile"},{"from":"lib/claude-sessions.ts","to":"lib/claude-sessions.ts::readNewBytes","type":"calls","detail":"readNewBytes"},{"from":"lib/claude-templates.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/claude-templates.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::ensureBuiltins","type":"exports","detail":"ensureBuiltins"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::ensureDir","type":"calls","detail":"ensureDir"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::listTemplates","type":"exports","detail":"listTemplates"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::ensureBuiltins","type":"calls","detail":"ensureBuiltins"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::parseTemplate","type":"calls","detail":"parseTemplate"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::getTemplate","type":"exports","detail":"getTemplate"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::saveTemplate","type":"exports","detail":"saveTemplate"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::getTemplate","type":"calls","detail":"getTemplate"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::setTemplateDefault","type":"exports","detail":"setTemplateDefault"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::applyDefaultTemplates","type":"exports","detail":"applyDefaultTemplates"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::listTemplates","type":"calls","detail":"listTemplates"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::deleteTemplate","type":"exports","detail":"deleteTemplate"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::isInjected","type":"exports","detail":"isInjected"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::MARKER_START","type":"calls","detail":"MARKER_START"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::getInjectedTemplates","type":"exports","detail":"getInjectedTemplates"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::injectTemplate","type":"exports","detail":"injectTemplate"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::isInjected","type":"calls","detail":"isInjected"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::MARKER_END","type":"calls","detail":"MARKER_END"},{"from":"lib/claude-templates.ts","to":"lib/claude-templates.ts::removeTemplate","type":"exports","detail":"removeTemplate"},{"from":"lib/cloudflared.ts","to":"lib/dirs","type":"imports","detail":"getConfigDir, getDataDir"},{"from":"lib/cloudflared.ts","to":"lib/dirs::getConfigDir","type":"calls","detail":"getConfigDir"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::followRedirects","type":"calls","detail":"followRedirects"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::downloadCloudflared","type":"exports","detail":"downloadCloudflared"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::getDownloadUrl","type":"calls","detail":"getDownloadUrl"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::isInstalled","type":"exports","detail":"isInstalled"},{"from":"lib/cloudflared.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::startTunnel","type":"exports","detail":"startTunnel"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::loadTunnelState","type":"calls","detail":"loadTunnelState"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::downloadCloudflared","type":"calls","detail":"downloadCloudflared"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::pushLog","type":"calls","detail":"pushLog"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::saveTunnelState","type":"calls","detail":"saveTunnelState"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::stopTunnel","type":"exports","detail":"stopTunnel"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::getTunnelStatus","type":"exports","detail":"getTunnelStatus"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::isInstalled","type":"calls","detail":"isInstalled"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::startTunnel","type":"calls","detail":"startTunnel"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::startHealthCheck","type":"exports","detail":"startHealthCheck"},{"from":"lib/cloudflared.ts","to":"lib/cloudflared.ts::stopHealthCheck","type":"exports","detail":"stopHealthCheck"},{"from":"lib/crypto.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/crypto.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/crypto.ts","to":"lib/crypto.ts::encryptSecret","type":"exports","detail":"encryptSecret"},{"from":"lib/crypto.ts","to":"lib/crypto.ts::getEncryptionKey","type":"calls","detail":"getEncryptionKey"},{"from":"lib/crypto.ts","to":"lib/crypto.ts::decryptSecret","type":"exports","detail":"decryptSecret"},{"from":"lib/crypto.ts","to":"lib/crypto.ts::isEncrypted","type":"exports","detail":"isEncrypted"},{"from":"lib/crypto.ts","to":"lib/crypto.ts::hashSecret","type":"exports","detail":"hashSecret"},{"from":"lib/delivery.ts","to":"lib/task-manager","type":"imports","detail":"createTask, getTask, onTaskEvent"},{"from":"lib/delivery.ts","to":"lib/projects","type":"imports","detail":"getProjectInfo"},{"from":"lib/delivery.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/delivery.ts","to":"lib/artifacts","type":"imports","detail":"createArtifact, listArtifacts, extractArtifacts, writeArtifactToProject"},{"from":"lib/delivery.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/delivery.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::ensureDir","type":"calls","detail":"ensureDir"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::deliveryPath","type":"calls","detail":"deliveryPath"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::getDelivery","type":"exports","detail":"getDelivery"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::listDeliveries","type":"exports","detail":"listDeliveries"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::getDelivery","type":"calls","detail":"getDelivery"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::deleteDelivery","type":"exports","detail":"deleteDelivery"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::createDelivery","type":"exports","detail":"createDelivery"},{"from":"lib/delivery.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::buildPhasePrompt","type":"calls","detail":"buildPhasePrompt"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::saveDelivery","type":"calls","detail":"saveDelivery"},{"from":"lib/delivery.ts","to":"lib/projects::getProjectInfo","type":"calls","detail":"getProjectInfo"},{"from":"lib/delivery.ts","to":"lib/artifacts::listArtifacts","type":"calls","detail":"listArtifacts"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::buildStandardPrompt","type":"calls","detail":"buildStandardPrompt"},{"from":"lib/delivery.ts","to":"lib/artifacts::createArtifact","type":"calls","detail":"createArtifact"},{"from":"lib/delivery.ts","to":"lib/task-manager::createTask","type":"calls","detail":"createTask"},{"from":"lib/delivery.ts","to":"lib/task-manager::onTaskEvent","type":"calls","detail":"onTaskEvent"},{"from":"lib/delivery.ts","to":"lib/task-manager::getTask","type":"calls","detail":"getTask"},{"from":"lib/delivery.ts","to":"lib/artifacts::extractArtifacts","type":"calls","detail":"extractArtifacts"},{"from":"lib/delivery.ts","to":"lib/artifacts::writeArtifactToProject","type":"calls","detail":"writeArtifactToProject"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::dispatchPhase","type":"calls","detail":"dispatchPhase"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::approveDeliveryPhase","type":"exports","detail":"approveDeliveryPhase"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::scheduleReadyPhases","type":"calls","detail":"scheduleReadyPhases"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::rejectDeliveryPhase","type":"exports","detail":"rejectDeliveryPhase"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::sendToAgent","type":"exports","detail":"sendToAgent"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::cancelDelivery","type":"exports","detail":"cancelDelivery"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::retryPhase","type":"exports","detail":"retryPhase"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::listDeliveries","type":"calls","detail":"listDeliveries"},{"from":"lib/delivery.ts","to":"lib/delivery.ts::setupDeliveryTaskListener","type":"calls","detail":"setupDeliveryTaskListener"},{"from":"lib/dirs.ts","to":"lib/dirs.ts::getConfigDir","type":"exports","detail":"getConfigDir"},{"from":"lib/dirs.ts","to":"lib/dirs.ts::getDataDir","type":"exports","detail":"getDataDir"},{"from":"lib/dirs.ts","to":"lib/dirs.ts::getConfigDir","type":"calls","detail":"getConfigDir"},{"from":"lib/dirs.ts","to":"lib/dirs.ts::migrateDataDir","type":"exports","detail":"migrateDataDir"},{"from":"lib/dirs.ts","to":"lib/dirs.ts::getClaudeDir","type":"exports","detail":"getClaudeDir"},{"from":"lib/flows.ts","to":"lib/task-manager","type":"imports","detail":"createTask"},{"from":"lib/flows.ts","to":"lib/projects","type":"imports","detail":"getProjectInfo"},{"from":"lib/flows.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/flows.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/flows.ts","to":"lib/flows.ts::listFlows","type":"exports","detail":"listFlows"},{"from":"lib/flows.ts","to":"lib/flows.ts::getFlow","type":"exports","detail":"getFlow"},{"from":"lib/flows.ts","to":"lib/flows.ts::listFlows","type":"calls","detail":"listFlows"},{"from":"lib/flows.ts","to":"lib/flows.ts::runFlow","type":"exports","detail":"runFlow"},{"from":"lib/flows.ts","to":"lib/flows.ts::getFlow","type":"calls","detail":"getFlow"},{"from":"lib/flows.ts","to":"lib/projects::getProjectInfo","type":"calls","detail":"getProjectInfo"},{"from":"lib/flows.ts","to":"lib/task-manager::createTask","type":"calls","detail":"createTask"},{"from":"lib/forge-mcp-server.ts","to":"lib/forge-mcp-server.ts::setOrchestratorResolver","type":"exports","detail":"setOrchestratorResolver"},{"from":"lib/forge-mcp-server.ts","to":"lib/forge-mcp-server.ts::getOrch","type":"calls","detail":"getOrch"},{"from":"lib/forge-mcp-server.ts","to":"lib/forge-mcp-server.ts::ctx","type":"calls","detail":"ctx"},{"from":"lib/forge-mcp-server.ts","to":"lib/forge-mcp-server.ts::getLabel","type":"calls","detail":"getLabel"},{"from":"lib/forge-mcp-server.ts","to":"lib/forge-mcp-server.ts::startMcpServer","type":"exports","detail":"startMcpServer"},{"from":"lib/forge-mcp-server.ts","to":"lib/forge-mcp-server.ts::resolveAgentFromOrch","type":"calls","detail":"resolveAgentFromOrch"},{"from":"lib/forge-mcp-server.ts","to":"lib/forge-mcp-server.ts::createForgeMcpServer","type":"calls","detail":"createForgeMcpServer"},{"from":"lib/forge-mcp-server.ts","to":"lib/forge-mcp-server.ts::stopMcpServer","type":"exports","detail":"stopMcpServer"},{"from":"lib/forge-mcp-server.ts","to":"lib/forge-mcp-server.ts::getMcpPort","type":"exports","detail":"getMcpPort"},{"from":"lib/init.ts","to":"lib/task-manager","type":"imports","detail":"ensureRunnerStarted"},{"from":"lib/init.ts","to":"lib/telegram-bot","type":"imports","detail":"startTelegramBot, stopTelegramBot"},{"from":"lib/init.ts","to":"lib/session-watcher","type":"imports","detail":"startWatcherLoop"},{"from":"lib/init.ts","to":"lib/password","type":"imports","detail":"getAdminPassword"},{"from":"lib/init.ts","to":"lib/settings","type":"imports","detail":"loadSettings, saveSettings"},{"from":"lib/init.ts","to":"lib/cloudflared","type":"imports","detail":"startTunnel"},{"from":"lib/init.ts","to":"lib/crypto","type":"imports","detail":"isEncrypted, SECRET_FIELDS"},{"from":"lib/init.ts","to":"lib/crypto::isEncrypted","type":"calls","detail":"isEncrypted"},{"from":"lib/init.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/init.ts","to":"lib/settings::saveSettings","type":"calls","detail":"saveSettings"},{"from":"lib/init.ts","to":"lib/init.ts::ensureInitialized","type":"exports","detail":"ensureInitialized"},{"from":"lib/init.ts","to":"lib/init.ts::migrateSecrets","type":"calls","detail":"migrateSecrets"},{"from":"lib/init.ts","to":"lib/init.ts::autoDetectAgents","type":"calls","detail":"autoDetectAgents"},{"from":"lib/init.ts","to":"lib/task-manager::ensureRunnerStarted","type":"calls","detail":"ensureRunnerStarted"},{"from":"lib/init.ts","to":"lib/session-watcher::startWatcherLoop","type":"calls","detail":"startWatcherLoop"},{"from":"lib/init.ts","to":"lib/password::getAdminPassword","type":"calls","detail":"getAdminPassword"},{"from":"lib/init.ts","to":"lib/telegram-bot::startTelegramBot","type":"calls","detail":"startTelegramBot"},{"from":"lib/init.ts","to":"lib/cloudflared::startTunnel","type":"calls","detail":"startTunnel"},{"from":"lib/init.ts","to":"lib/init.ts::restartTelegramBot","type":"exports","detail":"restartTelegramBot"},{"from":"lib/init.ts","to":"lib/telegram-bot::stopTelegramBot","type":"calls","detail":"stopTelegramBot"},{"from":"lib/issue-scanner.ts","to":"lib/pipeline","type":"imports","detail":"startPipeline"},{"from":"lib/issue-scanner.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::db","type":"calls","detail":"db"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::ensureTable","type":"exports","detail":"ensureTable"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::migrateTable","type":"calls","detail":"migrateTable"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::getConfig","type":"exports","detail":"getConfig"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::ensureTable","type":"calls","detail":"ensureTable"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::saveConfig","type":"exports","detail":"saveConfig"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::listConfigs","type":"exports","detail":"listConfigs"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::getRepoFromProject","type":"calls","detail":"getRepoFromProject"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::updateProcessedStatus","type":"exports","detail":"updateProcessedStatus"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::resetProcessedIssue","type":"exports","detail":"resetProcessedIssue"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::getProcessedIssues","type":"exports","detail":"getProcessedIssues"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::scanAndTrigger","type":"exports","detail":"scanAndTrigger"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::saveLastScan","type":"calls","detail":"saveLastScan"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::fetchOpenIssues","type":"calls","detail":"fetchOpenIssues"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::isProcessed","type":"calls","detail":"isProcessed"},{"from":"lib/issue-scanner.ts","to":"lib/pipeline::startPipeline","type":"calls","detail":"startPipeline"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::markProcessed","type":"calls","detail":"markProcessed"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::startScanner","type":"exports","detail":"startScanner"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::listConfigs","type":"calls","detail":"listConfigs"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::loadLastScan","type":"calls","detail":"loadLastScan"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::getConfig","type":"calls","detail":"getConfig"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::scanAndTrigger","type":"calls","detail":"scanAndTrigger"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::startInterval","type":"calls","detail":"startInterval"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::getNextScanTime","type":"exports","detail":"getNextScanTime"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::restartScanner","type":"exports","detail":"restartScanner"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::startScanner","type":"calls","detail":"startScanner"},{"from":"lib/issue-scanner.ts","to":"lib/issue-scanner.ts::stopScanner","type":"exports","detail":"stopScanner"},{"from":"lib/logger.ts","to":"lib/logger.ts::initLogger","type":"exports","detail":"initLogger"},{"from":"lib/logger.ts","to":"lib/logger.ts::ts","type":"calls","detail":"ts"},{"from":"lib/logger.ts","to":"lib/logger.ts::format","type":"calls","detail":"format"},{"from":"lib/logger.ts","to":"lib/logger.ts::writeToFile","type":"calls","detail":"writeToFile"},{"from":"lib/logger.ts","to":"lib/logger.ts::sanitize","type":"calls","detail":"sanitize"},{"from":"lib/memory/code-graph.ts","to":"lib/memory/code-graph.ts::getLine","type":"calls","detail":"getLine"},{"from":"lib/memory/code-graph.ts","to":"lib/memory/code-graph.ts::visit","type":"calls","detail":"visit"},{"from":"lib/memory/code-graph.ts","to":"lib/memory/code-graph.ts::findSourceFiles","type":"calls","detail":"findSourceFiles"},{"from":"lib/memory/code-graph.ts","to":"lib/memory/code-graph.ts::buildCodeGraph","type":"exports","detail":"buildCodeGraph"},{"from":"lib/memory/code-graph.ts","to":"lib/memory/code-graph.ts::parseFile","type":"calls","detail":"parseFile"},{"from":"lib/memory/code-graph.ts","to":"lib/memory/code-graph.ts::findAffectedBy","type":"exports","detail":"findAffectedBy"},{"from":"lib/memory/code-graph.ts","to":"lib/memory/code-graph.ts::bfs","type":"calls","detail":"bfs"},{"from":"lib/memory/code-graph.ts","to":"lib/memory/code-graph.ts::incrementalUpdate","type":"exports","detail":"incrementalUpdate"},{"from":"lib/memory/code-graph.ts","to":"lib/memory/code-graph.ts::printGraphStats","type":"exports","detail":"printGraphStats"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/code-graph.js","type":"imports","detail":"buildCodeGraph, incrementalUpdate, findAffectedBy, printGraphStats"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::ensureDir","type":"calls","detail":"ensureDir"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::loadMeta","type":"calls","detail":"loadMeta"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::getHeadCommit","type":"calls","detail":"getHeadCommit"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::loadGraph","type":"calls","detail":"loadGraph"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::getChangedFiles","type":"calls","detail":"getChangedFiles"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/code-graph.js::incrementalUpdate","type":"calls","detail":"incrementalUpdate"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::saveGraph","type":"calls","detail":"saveGraph"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::saveMeta","type":"calls","detail":"saveMeta"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/code-graph.js::buildCodeGraph","type":"calls","detail":"buildCodeGraph"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::loadKnowledge","type":"calls","detail":"loadKnowledge"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::saveKnowledge","type":"calls","detail":"saveKnowledge"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::ensureGraph","type":"calls","detail":"ensureGraph"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/code-graph.js::findAffectedBy","type":"calls","detail":"findAffectedBy"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::genId","type":"calls","detail":"genId"},{"from":"lib/memory/memory-mcp-server.ts","to":"lib/memory/memory-mcp-server.ts::main","type":"calls","detail":"main"},{"from":"lib/notifications.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/notifications.ts","to":"lib/notifications.ts::addNotification","type":"exports","detail":"addNotification"},{"from":"lib/notifications.ts","to":"lib/notifications.ts::db","type":"calls","detail":"db"},{"from":"lib/notifications.ts","to":"lib/notifications.ts::getNotifications","type":"exports","detail":"getNotifications"},{"from":"lib/notifications.ts","to":"lib/notifications.ts::getUnreadCount","type":"exports","detail":"getUnreadCount"},{"from":"lib/notifications.ts","to":"lib/notifications.ts::markRead","type":"exports","detail":"markRead"},{"from":"lib/notifications.ts","to":"lib/notifications.ts::markAllRead","type":"exports","detail":"markAllRead"},{"from":"lib/notifications.ts","to":"lib/notifications.ts::deleteNotification","type":"exports","detail":"deleteNotification"},{"from":"lib/notifications.ts","to":"lib/notifications.ts::cleanupNotifications","type":"exports","detail":"cleanupNotifications"},{"from":"lib/notifications.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/notify.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/notify.ts","to":"lib/notifications","type":"imports","detail":"addNotification"},{"from":"lib/notify.ts","to":"lib/notify.ts::notifyTaskComplete","type":"exports","detail":"notifyTaskComplete"},{"from":"lib/notify.ts","to":"lib/notifications::addNotification","type":"calls","detail":"addNotification"},{"from":"lib/notify.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/notify.ts","to":"lib/notify.ts::notifyTaskFailed","type":"exports","detail":"notifyTaskFailed"},{"from":"lib/password.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/password.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/password.ts","to":"lib/password.ts::getAdminPassword","type":"exports","detail":"getAdminPassword"},{"from":"lib/password.ts","to":"lib/password.ts::getSessionCode","type":"exports","detail":"getSessionCode"},{"from":"lib/password.ts","to":"lib/password.ts::readSessionCode","type":"calls","detail":"readSessionCode"},{"from":"lib/password.ts","to":"lib/password.ts::rotateSessionCode","type":"exports","detail":"rotateSessionCode"},{"from":"lib/password.ts","to":"lib/password.ts::generateSessionCode","type":"calls","detail":"generateSessionCode"},{"from":"lib/password.ts","to":"lib/password.ts::saveSessionCode","type":"calls","detail":"saveSessionCode"},{"from":"lib/password.ts","to":"lib/password.ts::verifyLogin","type":"exports","detail":"verifyLogin"},{"from":"lib/password.ts","to":"lib/password.ts::getAdminPassword","type":"calls","detail":"getAdminPassword"},{"from":"lib/password.ts","to":"lib/password.ts::verifyAdmin","type":"exports","detail":"verifyAdmin"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline","type":"imports","detail":"startPipeline, getPipeline"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::getBindings","type":"exports","detail":"getBindings"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::db","type":"calls","detail":"db"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::toIsoUTC","type":"calls","detail":"toIsoUTC"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::getAllScheduledBindings","type":"exports","detail":"getAllScheduledBindings"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::addBinding","type":"exports","detail":"addBinding"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::removeBinding","type":"exports","detail":"removeBinding"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::updateBinding","type":"exports","detail":"updateBinding"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::recordRun","type":"exports","detail":"recordRun"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::updateRun","type":"exports","detail":"updateRun"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::getRuns","type":"exports","detail":"getRuns"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::deleteRun","type":"exports","detail":"deleteRun"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::resetDedup","type":"exports","detail":"resetDedup"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::triggerPipeline","type":"exports","detail":"triggerPipeline"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline::startPipeline","type":"calls","detail":"startPipeline"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::recordRun","type":"calls","detail":"recordRun"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::updateLastRunAt","type":"calls","detail":"updateLastRunAt"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::syncRunStatus","type":"exports","detail":"syncRunStatus"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline::getPipeline","type":"calls","detail":"getPipeline"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::updateRun","type":"calls","detail":"updateRun"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::getRepoFromProject","type":"calls","detail":"getRepoFromProject"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::scanAndTriggerIssues","type":"exports","detail":"scanAndTriggerIssues"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::fetchOpenIssues","type":"calls","detail":"fetchOpenIssues"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::getRuns","type":"calls","detail":"getRuns"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::triggerPipeline","type":"calls","detail":"triggerPipeline"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::startScheduler","type":"exports","detail":"startScheduler"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::stopScheduler","type":"exports","detail":"stopScheduler"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::getAllScheduledBindings","type":"calls","detail":"getAllScheduledBindings"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::scanAndTriggerIssues","type":"calls","detail":"scanAndTriggerIssues"},{"from":"lib/pipeline-scheduler.ts","to":"lib/pipeline-scheduler.ts::getNextRunTime","type":"exports","detail":"getNextRunTime"},{"from":"lib/pipeline.ts","to":"lib/task-manager","type":"imports","detail":"createTask, getTask, onTaskEvent, taskModelOverrides"},{"from":"lib/pipeline.ts","to":"lib/projects","type":"imports","detail":"getProjectInfo"},{"from":"lib/pipeline.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/pipeline.ts","to":"lib/agents","type":"imports","detail":"getAgent, listAgents"},{"from":"lib/pipeline.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/pipeline.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::listWorkflows","type":"exports","detail":"listWorkflows"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::getWorkflow","type":"exports","detail":"getWorkflow"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::listWorkflows","type":"calls","detail":"listWorkflows"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::ensureDir","type":"calls","detail":"ensureDir"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::getPipeline","type":"exports","detail":"getPipeline"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::deletePipeline","type":"exports","detail":"deletePipeline"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::listPipelines","type":"exports","detail":"listPipelines"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::shellEscapeAnsiC","type":"calls","detail":"shellEscapeAnsiC"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::getPipeline","type":"calls","detail":"getPipeline"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::startPipeline","type":"exports","detail":"startPipeline"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::getWorkflow","type":"calls","detail":"getWorkflow"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::savePipeline","type":"calls","detail":"savePipeline"},{"from":"lib/pipeline.ts","to":"lib/agents::listAgents","type":"calls","detail":"listAgents"},{"from":"lib/pipeline.ts","to":"lib/projects::getProjectInfo","type":"calls","detail":"getProjectInfo"},{"from":"lib/pipeline.ts","to":"lib/task-manager::createTask","type":"calls","detail":"createTask"},{"from":"lib/pipeline.ts","to":"lib/task-manager::onTaskEvent","type":"calls","detail":"onTaskEvent"},{"from":"lib/pipeline.ts","to":"lib/task-manager::getTask","type":"calls","detail":"getTask"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::scheduleNextConversationTurn","type":"calls","detail":"scheduleNextConversationTurn"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::cancelConversation","type":"exports","detail":"cancelConversation"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::injectConversationMessage","type":"exports","detail":"injectConversationMessage"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::buildConversationContext","type":"calls","detail":"buildConversationContext"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::setupConversationTaskListener","type":"calls","detail":"setupConversationTaskListener"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::checkConversationStopCondition","type":"calls","detail":"checkConversationStopCondition"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::finishConversation","type":"calls","detail":"finishConversation"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::listPipelines","type":"calls","detail":"listPipelines"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::recoverConversationPipeline","type":"calls","detail":"recoverConversationPipeline"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::cancelPipeline","type":"exports","detail":"cancelPipeline"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::cancelConversation","type":"calls","detail":"cancelConversation"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::resolveTemplate","type":"calls","detail":"resolveTemplate"},{"from":"lib/pipeline.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/pipeline.ts","to":"lib/task-manager::taskModelOverrides","type":"calls","detail":"taskModelOverrides.set"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::releaseProjectLock","type":"calls","detail":"releaseProjectLock"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::scheduleReadyNodes","type":"calls","detail":"scheduleReadyNodes"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::checkPipelineCompletion","type":"calls","detail":"checkPipelineCompletion"},{"from":"lib/pipeline.ts","to":"lib/pipeline.ts::visit","type":"calls","detail":"visit"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/types","type":"imports","detail":"PluginAction, PluginActionResult, InstalledPlugin"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::resolveTemplate","type":"calls","detail":"resolveTemplate"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::extractValue","type":"calls","detail":"extractValue"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::resolveObject","type":"calls","detail":"resolveObject"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::extractOutputs","type":"calls","detail":"extractOutputs"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::done","type":"calls","detail":"done"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::executePluginAction","type":"exports","detail":"executePluginAction"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::executeHttp","type":"calls","detail":"executeHttp"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::executePoll","type":"calls","detail":"executePoll"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::executeShell","type":"calls","detail":"executeShell"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::executePluginWithWait","type":"exports","detail":"executePluginWithWait"},{"from":"lib/plugins/executor.ts","to":"lib/plugins/executor.ts::executePluginAction","type":"calls","detail":"executePluginAction"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/types","type":"imports","detail":"PluginDefinition, InstalledPlugin, PluginSource"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::listPlugins","type":"exports","detail":"listPlugins"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::loadConfigs","type":"calls","detail":"loadConfigs"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::loadPluginYaml","type":"calls","detail":"loadPluginYaml"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::isInstalledOrHasInstance","type":"calls","detail":"isInstalledOrHasInstance"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::getPlugin","type":"exports","detail":"getPlugin"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::getInstalledPlugin","type":"exports","detail":"getInstalledPlugin"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::getPlugin","type":"calls","detail":"getPlugin"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::listInstalledPlugins","type":"exports","detail":"listInstalledPlugins"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::installPlugin","type":"exports","detail":"installPlugin"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::saveConfigs","type":"calls","detail":"saveConfigs"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::uninstallPlugin","type":"exports","detail":"uninstallPlugin"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::updatePluginConfig","type":"exports","detail":"updatePluginConfig"},{"from":"lib/plugins/registry.ts","to":"lib/plugins/registry.ts::setPluginEnabled","type":"exports","detail":"setPluginEnabled"},{"from":"lib/project-sessions.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/project-sessions.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/project-sessions.ts","to":"lib/project-sessions.ts::getFilePath","type":"calls","detail":"getFilePath"},{"from":"lib/project-sessions.ts","to":"lib/project-sessions.ts::getFixedSession","type":"exports","detail":"getFixedSession"},{"from":"lib/project-sessions.ts","to":"lib/project-sessions.ts::loadAll","type":"calls","detail":"loadAll"},{"from":"lib/project-sessions.ts","to":"lib/project-sessions.ts::setFixedSession","type":"exports","detail":"setFixedSession"},{"from":"lib/project-sessions.ts","to":"lib/project-sessions.ts::saveAll","type":"calls","detail":"saveAll"},{"from":"lib/project-sessions.ts","to":"lib/project-sessions.ts::clearFixedSession","type":"exports","detail":"clearFixedSession"},{"from":"lib/project-sessions.ts","to":"lib/project-sessions.ts::getAllFixedSessions","type":"exports","detail":"getAllFixedSessions"},{"from":"lib/projects.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/projects.ts","to":"lib/projects.ts::scanProjects","type":"exports","detail":"scanProjects"},{"from":"lib/projects.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/projects.ts","to":"lib/projects.ts::getProjectInfo","type":"exports","detail":"getProjectInfo"},{"from":"lib/projects.ts","to":"lib/projects.ts::scanProjects","type":"calls","detail":"scanProjects"},{"from":"lib/projects.ts","to":"lib/projects.ts::getProjectClaudeMd","type":"exports","detail":"getProjectClaudeMd"},{"from":"lib/session-manager.ts","to":"lib/session-manager.ts::getSessionManager","type":"exports","detail":"getSessionManager"},{"from":"lib/session-utils.ts","to":"lib/session-utils.ts::resolveFixedSession","type":"exports","detail":"resolveFixedSession"},{"from":"lib/session-utils.ts","to":"lib/session-utils.ts::buildResumeFlag","type":"exports","detail":"buildResumeFlag"},{"from":"lib/session-utils.ts","to":"lib/session-utils.ts::getMcpFlag","type":"exports","detail":"getMcpFlag"},{"from":"lib/session-watcher.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/session-watcher.ts","to":"lib/claude-sessions","type":"imports","detail":"listClaudeSessions, getSessionFilePath, readSessionEntries, ClaudeSessionInfo, SessionEntry"},{"from":"lib/session-watcher.ts","to":"lib/projects","type":"imports","detail":"scanProjects"},{"from":"lib/session-watcher.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/session-watcher.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::syncSessionsToDb","type":"exports","detail":"syncSessionsToDb"},{"from":"lib/session-watcher.ts","to":"lib/projects::scanProjects","type":"calls","detail":"scanProjects"},{"from":"lib/session-watcher.ts","to":"lib/claude-sessions::listClaudeSessions","type":"calls","detail":"listClaudeSessions"},{"from":"lib/session-watcher.ts","to":"lib/claude-sessions::getSessionFilePath","type":"calls","detail":"getSessionFilePath"},{"from":"lib/session-watcher.ts","to":"lib/claude-sessions::readSessionEntries","type":"calls","detail":"readSessionEntries"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::getCachedSessions","type":"exports","detail":"getCachedSessions"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::getAllCachedSessions","type":"exports","detail":"getAllCachedSessions"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::createWatcher","type":"exports","detail":"createWatcher"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::getWatcher","type":"exports","detail":"getWatcher"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::listWatchers","type":"exports","detail":"listWatchers"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::toggleWatcher","type":"exports","detail":"toggleWatcher"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::deleteWatcher","type":"exports","detail":"deleteWatcher"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::startWatcherLoop","type":"exports","detail":"startWatcherLoop"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::syncSessionsToDb","type":"calls","detail":"syncSessionsToDb"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::stopWatcherLoop","type":"exports","detail":"stopWatcherLoop"},{"from":"lib/session-watcher.ts","to":"lib/session-watcher.ts::listWatchers","type":"calls","detail":"listWatchers"},{"from":"lib/session-watcher.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/settings.ts","to":"lib/crypto","type":"imports","detail":"encryptSecret, decryptSecret, isEncrypted, SECRET_FIELDS"},{"from":"lib/settings.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/settings.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/settings.ts","to":"lib/crypto::isEncrypted","type":"calls","detail":"isEncrypted"},{"from":"lib/settings.ts","to":"lib/crypto::decryptSecret","type":"calls","detail":"decryptSecret"},{"from":"lib/settings.ts","to":"lib/crypto::encryptSecret","type":"calls","detail":"encryptSecret"},{"from":"lib/settings.ts","to":"lib/settings.ts::loadSettings","type":"exports","detail":"loadSettings"},{"from":"lib/settings.ts","to":"lib/settings.ts::decryptNestedSecrets","type":"calls","detail":"decryptNestedSecrets"},{"from":"lib/settings.ts","to":"lib/settings.ts::loadSettingsMasked","type":"exports","detail":"loadSettingsMasked"},{"from":"lib/settings.ts","to":"lib/settings.ts::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/settings.ts","to":"lib/settings.ts::saveSettings","type":"exports","detail":"saveSettings"},{"from":"lib/settings.ts","to":"lib/settings.ts::encryptNestedSecrets","type":"calls","detail":"encryptNestedSecrets"},{"from":"lib/settings.ts","to":"lib/settings.ts::verifySecret","type":"exports","detail":"verifySecret"},{"from":"lib/skills.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/skills.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/skills.ts","to":"lib/skills.ts::getBaseUrl","type":"calls","detail":"getBaseUrl"},{"from":"lib/skills.ts","to":"lib/skills.ts::syncSkills","type":"exports","detail":"syncSkills"},{"from":"lib/skills.ts","to":"lib/skills.ts::db","type":"calls","detail":"db"},{"from":"lib/skills.ts","to":"lib/skills.ts::listSkills","type":"exports","detail":"listSkills"},{"from":"lib/skills.ts","to":"lib/skills.ts::compareVersions","type":"calls","detail":"compareVersions"},{"from":"lib/skills.ts","to":"lib/skills.ts::getRepoInfo","type":"calls","detail":"getRepoInfo"},{"from":"lib/skills.ts","to":"lib/skills.ts::recurse","type":"calls","detail":"recurse"},{"from":"lib/skills.ts","to":"lib/skills.ts::getClaudeHome","type":"calls","detail":"getClaudeHome"},{"from":"lib/skills.ts","to":"lib/skills.ts::installGlobal","type":"exports","detail":"installGlobal"},{"from":"lib/skills.ts","to":"lib/skills.ts::listRepoFiles","type":"calls","detail":"listRepoFiles"},{"from":"lib/skills.ts","to":"lib/skills.ts::downloadFile","type":"calls","detail":"downloadFile"},{"from":"lib/skills.ts","to":"lib/skills.ts::installProject","type":"exports","detail":"installProject"},{"from":"lib/skills.ts","to":"lib/skills.ts::uninstallGlobal","type":"exports","detail":"uninstallGlobal"},{"from":"lib/skills.ts","to":"lib/skills.ts::uninstallProject","type":"exports","detail":"uninstallProject"},{"from":"lib/skills.ts","to":"lib/skills.ts::refreshInstallState","type":"exports","detail":"refreshInstallState"},{"from":"lib/skills.ts","to":"lib/skills.ts::checkLocalModified","type":"exports","detail":"checkLocalModified"},{"from":"lib/skills.ts","to":"lib/skills.ts::purgeDeletedSkill","type":"exports","detail":"purgeDeletedSkill"},{"from":"lib/task-manager.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/task-manager.ts","to":"lib/notify","type":"imports","detail":"notifyTaskComplete, notifyTaskFailed"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::onTaskEvent","type":"exports","detail":"onTaskEvent"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::createTask","type":"exports","detail":"createTask"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::db","type":"calls","detail":"db"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::getProjectConversationId","type":"exports","detail":"getProjectConversationId"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::getTask","type":"exports","detail":"getTask"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::listTasks","type":"exports","detail":"listTasks"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::cancelTask","type":"exports","detail":"cancelTask"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::getTask","type":"calls","detail":"getTask"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::deleteTask","type":"exports","detail":"deleteTask"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::cancelTask","type":"calls","detail":"cancelTask"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::updateTask","type":"exports","detail":"updateTask"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::retryTask","type":"exports","detail":"retryTask"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::createTask","type":"calls","detail":"createTask"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::ensureRunnerStarted","type":"exports","detail":"ensureRunnerStarted"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::stopRunner","type":"exports","detail":"stopRunner"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::emit","type":"calls","detail":"emit"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::executeShellTask","type":"calls","detail":"executeShellTask"},{"from":"lib/task-manager.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::stripAnsi","type":"calls","detail":"stripAnsi"},{"from":"lib/task-manager.ts","to":"lib/notify::notifyTaskComplete","type":"calls","detail":"notifyTaskComplete"},{"from":"lib/task-manager.ts","to":"lib/notify::notifyTaskFailed","type":"calls","detail":"notifyTaskFailed"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::toIsoUTC","type":"calls","detail":"toIsoUTC"},{"from":"lib/task-manager.ts","to":"lib/claude-sessions","type":"imports","detail":"getSessionFilePath, readSessionEntries, tailSessionFile, SessionEntry"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::updateTaskStatus","type":"calls","detail":"updateTaskStatus"},{"from":"lib/task-manager.ts","to":"lib/claude-sessions::getSessionFilePath","type":"calls","detail":"getSessionFilePath"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::appendLog","type":"calls","detail":"appendLog"},{"from":"lib/task-manager.ts","to":"lib/claude-sessions::readSessionEntries","type":"calls","detail":"readSessionEntries"},{"from":"lib/task-manager.ts","to":"lib/claude-sessions::tailSessionFile","type":"calls","detail":"tailSessionFile"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::scheduleNotify","type":"calls","detail":"scheduleNotify"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::flushNotify","type":"calls","detail":"flushNotify"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::cleanup","type":"calls","detail":"cleanup"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::cancelMonitor","type":"exports","detail":"cancelMonitor"},{"from":"lib/task-manager.ts","to":"lib/task-manager.ts::stopMonitor","type":"calls","detail":"stopMonitor"},{"from":"lib/telegram-bot.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/telegram-bot.ts","to":"lib/task-manager","type":"imports","detail":"createTask, getTask, listTasks, cancelTask, retryTask, onTaskEvent"},{"from":"lib/telegram-bot.ts","to":"lib/projects","type":"imports","detail":"scanProjects"},{"from":"lib/telegram-bot.ts","to":"lib/claude-sessions","type":"imports","detail":"listClaudeSessions, getSessionFilePath, readSessionEntries"},{"from":"lib/telegram-bot.ts","to":"lib/session-watcher","type":"imports","detail":"listWatchers, createWatcher, deleteWatcher, toggleWatcher"},{"from":"lib/telegram-bot.ts","to":"lib/cloudflared","type":"imports","detail":"startTunnel, stopTunnel, getTunnelStatus"},{"from":"lib/telegram-bot.ts","to":"lib/telegram-bot.ts::startTelegramBot","type":"exports","detail":"startTelegramBot"},{"from":"lib/telegram-bot.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/telegram-bot.ts","to":"lib/task-manager::onTaskEvent","type":"calls","detail":"onTaskEvent"},{"from":"lib/telegram-bot.ts","to":"lib/telegram-bot.ts::stopTelegramBot","type":"exports","detail":"stopTelegramBot"},{"from":"lib/telegram-bot.ts","to":"lib/telegram-bot.ts::handleTelegramMessage","type":"exports","detail":"handleTelegramMessage"},{"from":"lib/telegram-bot.ts","to":"lib/task-manager::createTask","type":"calls","detail":"createTask"},{"from":"lib/telegram-bot.ts","to":"lib/projects::scanProjects","type":"calls","detail":"scanProjects"},{"from":"lib/telegram-bot.ts","to":"lib/task-manager::listTasks","type":"calls","detail":"listTasks"},{"from":"lib/telegram-bot.ts","to":"lib/task-manager::getTask","type":"calls","detail":"getTask"},{"from":"lib/telegram-bot.ts","to":"lib/claude-sessions::listClaudeSessions","type":"calls","detail":"listClaudeSessions"},{"from":"lib/telegram-bot.ts","to":"lib/claude-sessions::getSessionFilePath","type":"calls","detail":"getSessionFilePath"},{"from":"lib/telegram-bot.ts","to":"lib/claude-sessions::readSessionEntries","type":"calls","detail":"readSessionEntries"},{"from":"lib/telegram-bot.ts","to":"lib/task-manager::cancelTask","type":"calls","detail":"cancelTask"},{"from":"lib/telegram-bot.ts","to":"lib/task-manager::retryTask","type":"calls","detail":"retryTask"},{"from":"lib/telegram-bot.ts","to":"lib/session-watcher::createWatcher","type":"calls","detail":"createWatcher"},{"from":"lib/telegram-bot.ts","to":"lib/session-watcher::listWatchers","type":"calls","detail":"listWatchers"},{"from":"lib/telegram-bot.ts","to":"lib/session-watcher::deleteWatcher","type":"calls","detail":"deleteWatcher"},{"from":"lib/telegram-bot.ts","to":"lib/cloudflared::getTunnelStatus","type":"calls","detail":"getTunnelStatus"},{"from":"lib/telegram-bot.ts","to":"lib/cloudflared::stopTunnel","type":"calls","detail":"stopTunnel"},{"from":"lib/telegram-bot.ts","to":"lib/cloudflared::startTunnel","type":"calls","detail":"startTunnel"},{"from":"lib/telegram-bot.ts","to":"lib/telegram-bot.ts::searchDir","type":"calls","detail":"searchDir"},{"from":"lib/telegram-bot.ts","to":"lib/telegram-bot.ts::aiSummarize","type":"calls","detail":"aiSummarize"},{"from":"lib/telegram-bot.ts","to":"lib/telegram-bot.ts::flushLogBuffer","type":"calls","detail":"flushLogBuffer"},{"from":"lib/telegram-bot.ts","to":"lib/telegram-bot.ts::send","type":"calls","detail":"send"},{"from":"lib/telegram-standalone.ts","to":"lib/settings","type":"imports","detail":"loadSettings"},{"from":"lib/telegram-standalone.ts","to":"lib/settings::loadSettings","type":"calls","detail":"loadSettings"},{"from":"lib/telegram-standalone.ts","to":"lib/telegram-standalone.ts::init","type":"calls","detail":"init"},{"from":"lib/terminal-server.ts","to":"lib/terminal-server.ts::startTerminalServer","type":"exports","detail":"startTerminalServer"},{"from":"lib/terminal-server.ts","to":"lib/terminal-server.ts::stopTerminalServer","type":"exports","detail":"stopTerminalServer"},{"from":"lib/terminal-standalone.ts","to":"lib/dirs","type":"imports","detail":"getDataDir"},{"from":"lib/terminal-standalone.ts","to":"lib/dirs::getDataDir","type":"calls","detail":"getDataDir"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::tmuxBin","type":"calls","detail":"tmuxBin"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::listTmuxSessions","type":"calls","detail":"listTmuxSessions"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::getDefaultCwd","type":"calls","detail":"getDefaultCwd"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::killTmuxSession","type":"calls","detail":"killTmuxSession"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::loadTerminalState","type":"calls","detail":"loadTerminalState"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::collectTreeSessions","type":"calls","detail":"collectTreeSessions"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::tmuxSessionExists","type":"calls","detail":"tmuxSessionExists"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::trackDetach","type":"calls","detail":"trackDetach"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::trackAttach","type":"calls","detail":"trackAttach"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::attachToTmux","type":"calls","detail":"attachToTmux"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::createTmuxSession","type":"calls","detail":"createTmuxSession"},{"from":"lib/terminal-standalone.ts","to":"lib/terminal-standalone.ts::saveTerminalState","type":"calls","detail":"saveTerminalState"},{"from":"lib/usage-scanner.ts","to":"lib/dirs","type":"imports","detail":"getClaudeDir"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::dirToProjectPath","type":"calls","detail":"dirToProjectPath"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::getModelFamily","type":"calls","detail":"getModelFamily"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::toLocalDate","type":"calls","detail":"toLocalDate"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::scanUsage","type":"exports","detail":"scanUsage"},{"from":"lib/usage-scanner.ts","to":"lib/dirs::getClaudeDir","type":"calls","detail":"getClaudeDir"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::db","type":"calls","detail":"db"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::dirToProjectName","type":"calls","detail":"dirToProjectName"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::parseByDayModel","type":"calls","detail":"parseByDayModel"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::calcCost","type":"calls","detail":"calcCost"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::recordUsage","type":"exports","detail":"recordUsage"},{"from":"lib/usage-scanner.ts","to":"lib/usage-scanner.ts::queryUsage","type":"exports","detail":"queryUsage"},{"from":"lib/workspace/agent-bus.ts","to":"lib/workspace/types","type":"imports","detail":"BusMessage, AgentLiveness, MessageCategory"},{"from":"lib/workspace/agent-bus.ts","to":"lib/workspace/agent-bus.ts::AgentBus","type":"exports","detail":"AgentBus"},{"from":"lib/workspace/agent-worker.ts","to":"lib/workspace/types","type":"imports","detail":"WorkspaceAgentConfig, AgentState, TaskStatus, SmithStatus, AgentBackend, WorkerEvent, Artifact, BusMessage, DaemonWakeReason"},{"from":"lib/workspace/agent-worker.ts","to":"src/types","type":"imports","detail":"TaskLogEntry"},{"from":"lib/workspace/agent-worker.ts","to":"lib/workspace/agent-worker.ts::AgentWorker","type":"exports","detail":"AgentWorker"},{"from":"lib/workspace/backends/api-backend.ts","to":"src/core/providers/registry","type":"imports","detail":"getModel"},{"from":"lib/workspace/backends/api-backend.ts","to":"lib/workspace/types","type":"imports","detail":"AgentBackend, StepExecutionParams, StepExecutionResult, Artifact"},{"from":"lib/workspace/backends/api-backend.ts","to":"src/types","type":"imports","detail":"TaskLogEntry"},{"from":"lib/workspace/backends/api-backend.ts","to":"lib/workspace/backends/api-backend.ts::safePath","type":"calls","detail":"safePath"},{"from":"lib/workspace/backends/api-backend.ts","to":"lib/workspace/backends/api-backend.ts::ts","type":"calls","detail":"ts"},{"from":"lib/workspace/backends/api-backend.ts","to":"lib/workspace/backends/api-backend.ts::ApiBackend","type":"exports","detail":"ApiBackend"},{"from":"lib/workspace/backends/api-backend.ts","to":"src/core/providers/registry::getModel","type":"calls","detail":"getModel"},{"from":"lib/workspace/backends/api-backend.ts","to":"lib/workspace/backends/api-backend.ts::historyToMessages","type":"calls","detail":"historyToMessages"},{"from":"lib/workspace/backends/api-backend.ts","to":"lib/workspace/backends/api-backend.ts::createTools","type":"calls","detail":"createTools"},{"from":"lib/workspace/backends/api-backend.ts","to":"lib/workspace/backends/api-backend.ts::createCommTools","type":"calls","detail":"createCommTools"},{"from":"lib/workspace/backends/cli-backend.ts","to":"lib/agents","type":"imports","detail":"getAgent"},{"from":"lib/workspace/backends/cli-backend.ts","to":"lib/workspace/types","type":"imports","detail":"AgentBackend, AgentStep, StepExecutionParams, StepExecutionResult, Artifact"},{"from":"lib/workspace/backends/cli-backend.ts","to":"src/types","type":"imports","detail":"TaskLogEntry"},{"from":"lib/workspace/backends/cli-backend.ts","to":"lib/workspace/backends/cli-backend.ts::CliBackend","type":"exports","detail":"CliBackend"},{"from":"lib/workspace/backends/cli-backend.ts","to":"lib/agents::getAgent","type":"calls","detail":"getAgent"},{"from":"lib/workspace/backends/cli-backend.ts","to":"lib/workspace/backends/cli-backend.ts::parseStreamJson","type":"calls","detail":"parseStreamJson"},{"from":"lib/workspace/backends/cli-backend.ts","to":"lib/workspace/backends/cli-backend.ts::detectArtifacts","type":"calls","detail":"detectArtifacts"},{"from":"lib/workspace/backends/cli-backend.ts","to":"lib/workspace/backends/cli-backend.ts::stripAnsi","type":"calls","detail":"stripAnsi"},{"from":"lib/workspace/backends/cli-backend.ts","to":"lib/workspace/backends/cli-backend.ts::isNoise","type":"calls","detail":"isNoise"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::WorkspaceAgentConfig","type":"exports","detail":"WorkspaceAgentConfig"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::AgentBackendType","type":"exports","detail":"AgentBackendType"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::AgentStep","type":"exports","detail":"AgentStep"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::AgentStatus","type":"exports","detail":"AgentStatus"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::AgentState","type":"exports","detail":"AgentState"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::Artifact","type":"exports","detail":"Artifact"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::BusMessage","type":"exports","detail":"BusMessage"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::WorkspaceState","type":"exports","detail":"WorkspaceState"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::AgentBackend","type":"exports","detail":"AgentBackend"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::StepExecutionParams","type":"exports","detail":"StepExecutionParams"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::StepExecutionResult","type":"exports","detail":"StepExecutionResult"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::WorkerEvent","type":"exports","detail":"WorkerEvent"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::AgentWorker","type":"exports","detail":"AgentWorker"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::AgentWorkerOptions","type":"exports","detail":"AgentWorkerOptions"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::AgentBus","type":"exports","detail":"AgentBus"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::WorkspaceOrchestrator","type":"exports","detail":"WorkspaceOrchestrator"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::OrchestratorEvent","type":"exports","detail":"OrchestratorEvent"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::ApiBackend","type":"exports","detail":"ApiBackend"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::CliBackend","type":"exports","detail":"CliBackend"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::AGENT_PRESETS","type":"exports","detail":"AGENT_PRESETS"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::createDeliveryPipeline","type":"exports","detail":"createDeliveryPipeline"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::createFromPreset","type":"exports","detail":"createFromPreset"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::getOrchestrator","type":"exports","detail":"getOrchestrator"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::createOrchestratorFromState","type":"exports","detail":"createOrchestratorFromState"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::getOrchestratorByProject","type":"exports","detail":"getOrchestratorByProject"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::subscribeSSE","type":"exports","detail":"subscribeSSE"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::shutdownOrchestrator","type":"exports","detail":"shutdownOrchestrator"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::shutdownAll","type":"exports","detail":"shutdownAll"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::saveWorkspace","type":"exports","detail":"saveWorkspace"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::loadWorkspace","type":"exports","detail":"loadWorkspace"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::listWorkspaces","type":"exports","detail":"listWorkspaces"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::findWorkspaceByProject","type":"exports","detail":"findWorkspaceByProject"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::deleteWorkspace","type":"exports","detail":"deleteWorkspace"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::readAgentLog","type":"exports","detail":"readAgentLog"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::readAgentLogTail","type":"exports","detail":"readAgentLogTail"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::appendAgentLog","type":"exports","detail":"appendAgentLog"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::startAutoSave","type":"exports","detail":"startAutoSave"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::stopAutoSave","type":"exports","detail":"stopAutoSave"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::WorkspaceSummary","type":"exports","detail":"WorkspaceSummary"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::loadMemory","type":"exports","detail":"loadMemory"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::saveMemory","type":"exports","detail":"saveMemory"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::createMemory","type":"exports","detail":"createMemory"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::addObservation","type":"exports","detail":"addObservation"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::addSessionSummary","type":"exports","detail":"addSessionSummary"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::formatMemoryForPrompt","type":"exports","detail":"formatMemoryForPrompt"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::formatMemoryForDisplay","type":"exports","detail":"formatMemoryForDisplay"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::getMemoryStats","type":"exports","detail":"getMemoryStats"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::parseStepToObservations","type":"exports","detail":"parseStepToObservations"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::buildSessionSummary","type":"exports","detail":"buildSessionSummary"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::SmithMemory","type":"exports","detail":"SmithMemory"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::Observation","type":"exports","detail":"Observation"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::ObservationType","type":"exports","detail":"ObservationType"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::SessionSummary","type":"exports","detail":"SessionSummary"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::MemoryDisplayEntry","type":"exports","detail":"MemoryDisplayEntry"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::installForgeSkills","type":"exports","detail":"installForgeSkills"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::hasForgeSkills","type":"exports","detail":"hasForgeSkills"},{"from":"lib/workspace/index.ts","to":"lib/workspace/index.ts::removeForgeSkills","type":"exports","detail":"removeForgeSkills"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/orchestrator","type":"imports","detail":"WorkspaceOrchestrator, OrchestratorEvent"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/persistence","type":"imports","detail":"loadWorkspace, saveWorkspace"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/types","type":"imports","detail":"WorkspaceState, WorkspaceAgentConfig"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/manager.ts::reloadOrchestrator","type":"exports","detail":"reloadOrchestrator"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/manager.ts::getOrchestrator","type":"exports","detail":"getOrchestrator"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/persistence::loadWorkspace","type":"calls","detail":"loadWorkspace"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/manager.ts::createOrchestratorFromState","type":"exports","detail":"createOrchestratorFromState"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/manager.ts::getOrchestratorByProject","type":"exports","detail":"getOrchestratorByProject"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/manager.ts::getOrchestrator","type":"calls","detail":"getOrchestrator"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/manager.ts::subscribeSSE","type":"exports","detail":"subscribeSSE"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/manager.ts::shutdownOrchestrator","type":"exports","detail":"shutdownOrchestrator"},{"from":"lib/workspace/manager.ts","to":"lib/workspace/manager.ts::shutdownAll","type":"exports","detail":"shutdownAll"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/types","type":"imports","detail":"WorkspaceAgentConfig, AgentState, SmithStatus, TaskStatus, WorkerEvent, BusMessage, Artifact, WorkspaceState, DaemonWakeReason"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/agent-worker","type":"imports","detail":"AgentWorker"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/agent-bus","type":"imports","detail":"AgentBus"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/watch-manager","type":"imports","detail":"WatchManager"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/backends/cli-backend","type":"imports","detail":"CliBackend"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/persistence","type":"imports","detail":"appendAgentLog, saveWorkspace, saveWorkspaceSync, startAutoSave, stopAutoSave"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/skill-installer","type":"imports","detail":"hasForgeSkills, installForgeSkills"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/smith-memory","type":"imports","detail":"loadMemory, saveMemory, createMemory, formatMemoryForPrompt, addObservation, addSessionSummary, parseStepToObservations, buildSessionSummary"},{"from":"lib/workspace/orchestrator.ts","to":"lib/project-sessions","type":"imports","detail":"getFixedSession"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/orchestrator.ts::WorkspaceOrchestrator","type":"exports","detail":"WorkspaceOrchestrator"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/persistence::appendAgentLog","type":"calls","detail":"appendAgentLog"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/persistence::startAutoSave","type":"calls","detail":"startAutoSave"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/orchestrator.ts::normalize","type":"calls","detail":"normalize"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/orchestrator.ts::dfs","type":"calls","detail":"dfs"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/orchestrator.ts::check","type":"calls","detail":"check"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/smith-memory::loadMemory","type":"calls","detail":"loadMemory"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/smith-memory::formatMemoryForPrompt","type":"calls","detail":"formatMemoryForPrompt"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/smith-memory::parseStepToObservations","type":"calls","detail":"parseStepToObservations"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/smith-memory::addObservation","type":"calls","detail":"addObservation"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/smith-memory::buildSessionSummary","type":"calls","detail":"buildSessionSummary"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/smith-memory::addSessionSummary","type":"calls","detail":"addSessionSummary"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/skill-installer::installForgeSkills","type":"calls","detail":"installForgeSkills"},{"from":"lib/workspace/orchestrator.ts","to":"lib/project-sessions::getFixedSession","type":"calls","detail":"getFixedSession"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/persistence::stopAutoSave","type":"calls","detail":"stopAutoSave"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/persistence::saveWorkspaceSync","type":"calls","detail":"saveWorkspaceSync"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/orchestrator.ts::visit","type":"calls","detail":"visit"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/orchestrator.ts::safeName","type":"calls","detail":"safeName"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/orchestrator.ts::findSession","type":"calls","detail":"findSession"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/orchestrator.ts::ackAndDeliver","type":"calls","detail":"ackAndDeliver"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/orchestrator.ts::tick","type":"calls","detail":"tick"},{"from":"lib/workspace/orchestrator.ts","to":"lib/workspace/persistence::saveWorkspace","type":"calls","detail":"saveWorkspace"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/types","type":"imports","detail":"WorkspaceState, AgentState, BusMessage, WorkspaceAgentConfig"},{"from":"lib/workspace/persistence.ts","to":"src/types","type":"imports","detail":"TaskLogEntry"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::workspaceDir","type":"calls","detail":"workspaceDir"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::agentDir","type":"calls","detail":"agentDir"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::saveWorkspace","type":"exports","detail":"saveWorkspace"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::agentLogFile","type":"calls","detail":"agentLogFile"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::stateFile","type":"calls","detail":"stateFile"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::agentHistoryFile","type":"calls","detail":"agentHistoryFile"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::saveWorkspaceSync","type":"exports","detail":"saveWorkspaceSync"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::appendAgentLog","type":"exports","detail":"appendAgentLog"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::loadWorkspace","type":"exports","detail":"loadWorkspace"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::listWorkspaces","type":"exports","detail":"listWorkspaces"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::findWorkspaceByProject","type":"exports","detail":"findWorkspaceByProject"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::loadWorkspace","type":"calls","detail":"loadWorkspace"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::deleteWorkspace","type":"exports","detail":"deleteWorkspace"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::readAgentLog","type":"exports","detail":"readAgentLog"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::readAgentLogTail","type":"exports","detail":"readAgentLogTail"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::readAgentLog","type":"calls","detail":"readAgentLog"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::clearAgentLog","type":"exports","detail":"clearAgentLog"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::startAutoSave","type":"exports","detail":"startAutoSave"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::saveWorkspace","type":"calls","detail":"saveWorkspace"},{"from":"lib/workspace/persistence.ts","to":"lib/workspace/persistence.ts::stopAutoSave","type":"exports","detail":"stopAutoSave"},{"from":"lib/workspace/presets.ts","to":"lib/workspace/types","type":"imports","detail":"WorkspaceAgentConfig"},{"from":"lib/workspace/presets.ts","to":"lib/workspace/presets.ts::createDevPipeline","type":"exports","detail":"createDevPipeline"},{"from":"lib/workspace/presets.ts","to":"lib/workspace/presets.ts::createArchitectPipeline","type":"exports","detail":"createArchitectPipeline"},{"from":"lib/workspace/presets.ts","to":"lib/workspace/presets.ts::createDeliveryPipeline","type":"exports","detail":"createDeliveryPipeline"},{"from":"lib/workspace/presets.ts","to":"lib/workspace/presets.ts::createDevPipeline","type":"calls","detail":"createDevPipeline"},{"from":"lib/workspace/presets.ts","to":"lib/workspace/presets.ts::createFromPreset","type":"exports","detail":"createFromPreset"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::requestsRoot","type":"calls","detail":"requestsRoot"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::generateRequestId","type":"exports","detail":"generateRequestId"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::createRequest","type":"exports","detail":"createRequest"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::generateRequestId","type":"calls","detail":"generateRequestId"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::requestDir","type":"calls","detail":"requestDir"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::ensureDir","type":"calls","detail":"ensureDir"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::getRequest","type":"exports","detail":"getRequest"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::listRequests","type":"exports","detail":"listRequests"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::updateResponse","type":"exports","detail":"updateResponse"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::claimRequest","type":"exports","detail":"claimRequest"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::updateRequestStatus","type":"exports","detail":"updateRequestStatus"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::getBatchStatus","type":"exports","detail":"getBatchStatus"},{"from":"lib/workspace/requests.ts","to":"lib/workspace/requests.ts::listRequests","type":"calls","detail":"listRequests"},{"from":"lib/workspace/session-monitor.ts","to":"lib/workspace/session-monitor.ts::SessionFileMonitor","type":"exports","detail":"SessionFileMonitor"},{"from":"lib/workspace/skill-installer.ts","to":"lib/workspace/skill-installer.ts::installForgeSkills","type":"exports","detail":"installForgeSkills"},{"from":"lib/workspace/skill-installer.ts","to":"lib/workspace/skill-installer.ts::applyProfileToProject","type":"exports","detail":"applyProfileToProject"},{"from":"lib/workspace/skill-installer.ts","to":"lib/workspace/skill-installer.ts::removeForgeStopHook","type":"exports","detail":"removeForgeStopHook"},{"from":"lib/workspace/skill-installer.ts","to":"lib/workspace/skill-installer.ts::hasForgeSkills","type":"exports","detail":"hasForgeSkills"},{"from":"lib/workspace/skill-installer.ts","to":"lib/workspace/skill-installer.ts::removeForgeSkills","type":"exports","detail":"removeForgeSkills"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::memoryDir","type":"calls","detail":"memoryDir"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::loadMemory","type":"exports","detail":"loadMemory"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::memoryFile","type":"calls","detail":"memoryFile"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::saveMemory","type":"exports","detail":"saveMemory"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::createMemory","type":"exports","detail":"createMemory"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::addObservation","type":"exports","detail":"addObservation"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::loadMemory","type":"calls","detail":"loadMemory"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::createMemory","type":"calls","detail":"createMemory"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::saveMemory","type":"calls","detail":"saveMemory"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::addSessionSummary","type":"exports","detail":"addSessionSummary"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::formatMemoryForPrompt","type":"exports","detail":"formatMemoryForPrompt"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::formatMemoryForDisplay","type":"exports","detail":"formatMemoryForDisplay"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::parseStepToObservations","type":"exports","detail":"parseStepToObservations"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::id","type":"calls","detail":"id"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::buildSessionSummary","type":"exports","detail":"buildSessionSummary"},{"from":"lib/workspace/smith-memory.ts","to":"lib/workspace/smith-memory.ts::getMemoryStats","type":"exports","detail":"getMemoryStats"},{"from":"lib/workspace/types.ts","to":"src/types","type":"imports","detail":"ProviderName, TaskLogEntry"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/types","type":"imports","detail":"WorkspaceAgentConfig, WatchTarget, WatchConfig"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/persistence","type":"imports","detail":"appendAgentLog"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/watch-manager.ts::walk","type":"calls","detail":"walk"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/watch-manager.ts::findModifiedFiles","type":"calls","detail":"findModifiedFiles"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/watch-manager.ts::extractContext","type":"calls","detail":"extractContext"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/watch-manager.ts::WatchManager","type":"exports","detail":"WatchManager"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/watch-manager.ts::detectDirectoryChanges","type":"calls","detail":"detectDirectoryChanges"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/watch-manager.ts::detectGitChanges","type":"calls","detail":"detectGitChanges"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/watch-manager.ts::detectAgentLogChanges","type":"calls","detail":"detectAgentLogChanges"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/watch-manager.ts::detectSessionChanges","type":"calls","detail":"detectSessionChanges"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/watch-manager.ts::detectCommandChanges","type":"calls","detail":"detectCommandChanges"},{"from":"lib/workspace/watch-manager.ts","to":"lib/workspace/persistence::appendAgentLog","type":"calls","detail":"appendAgentLog"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/orchestrator","type":"imports","detail":"WorkspaceOrchestrator, OrchestratorEvent"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/persistence","type":"imports","detail":"loadWorkspace, saveWorkspace, findWorkspaceByProject"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/skill-installer","type":"imports","detail":"installForgeSkills, applyProfileToProject"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/smith-memory","type":"imports","detail":"loadMemory, formatMemoryForDisplay, getMemoryStats, addObservation, addSessionSummary"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/types","type":"imports","detail":"WorkspaceAgentConfig, WorkspaceState, BusMessage"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/persistence::loadWorkspace","type":"calls","detail":"loadWorkspace"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::unloadOrchestrator","type":"calls","detail":"unloadOrchestrator"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::removeSSEClient","type":"calls","detail":"removeSSEClient"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::json","type":"calls","detail":"json"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::loadOrchestrator","type":"calls","detail":"loadOrchestrator"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::jsonError","type":"calls","detail":"jsonError"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/skill-installer::installForgeSkills","type":"calls","detail":"installForgeSkills"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::addSSEClient","type":"calls","detail":"addSSEClient"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::getOrchestrator","type":"calls","detail":"getOrchestrator"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/smith-memory::addObservation","type":"calls","detail":"addObservation"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/smith-memory::addSessionSummary","type":"calls","detail":"addSessionSummary"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/smith-memory::loadMemory","type":"calls","detail":"loadMemory"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/smith-memory::getMemoryStats","type":"calls","detail":"getMemoryStats"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/smith-memory::formatMemoryForDisplay","type":"calls","detail":"formatMemoryForDisplay"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::parseUrl","type":"calls","detail":"parseUrl"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace/persistence::findWorkspaceByProject","type":"calls","detail":"findWorkspaceByProject"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::readBody","type":"calls","detail":"readBody"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::handleAgentsPost","type":"calls","detail":"handleAgentsPost"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::handleAgentsGet","type":"calls","detail":"handleAgentsGet"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::handleStream","type":"calls","detail":"handleStream"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::handleSmith","type":"calls","detail":"handleSmith"},{"from":"lib/workspace-standalone.ts","to":"lib/workspace-standalone.ts::handleMemory","type":"calls","detail":"handleMemory"},{"from":"lib/workspace-standalone.ts","to":"lib/forge-mcp-server.js","type":"imports","detail":"startMcpServer, setOrchestratorResolver, getMcpPort"},{"from":"lib/workspace-standalone.ts","to":"lib/forge-mcp-server.js::setOrchestratorResolver","type":"calls","detail":"setOrchestratorResolver"},{"from":"lib/workspace-standalone.ts","to":"lib/forge-mcp-server.js::getMcpPort","type":"calls","detail":"getMcpPort"},{"from":"lib/workspace-standalone.ts","to":"lib/forge-mcp-server.js::startMcpServer","type":"calls","detail":"startMcpServer"},{"from":"middleware.ts","to":"middleware.ts::middleware","type":"exports","detail":"middleware"},{"from":"next.config.ts","to":"next.config.ts::nextConfig","type":"exports","detail":"default"},{"from":"postcss.config.mjs","to":"postcss.config.mjs::config","type":"exports","detail":"default"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::encodePath","type":"calls","detail":"encodePath"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::git","type":"calls","detail":"git"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::createBranch","type":"calls","detail":"createBranch"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::getChangedFiles","type":"calls","detail":"getChangedFiles"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::api","type":"calls","detail":"api"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::killStaleTmuxSessions","type":"calls","detail":"killStaleTmuxSessions"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::snapshotClaudeSessions","type":"calls","detail":"snapshotClaudeSessions"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::cleanStaleRequests","type":"calls","detail":"cleanStaleRequests"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::deleteExistingWorkspace","type":"calls","detail":"deleteExistingWorkspace"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::makeAgent","type":"calls","detail":"makeAgent"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::runValidator","type":"calls","detail":"runValidator"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::computeForgeUsage","type":"calls","detail":"computeForgeUsage"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::loadTasks","type":"calls","detail":"loadTasks"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::ensureCleanBranch","type":"calls","detail":"ensureCleanBranch"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::runSetup","type":"calls","detail":"runSetup"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::runClaudeCode","type":"calls","detail":"runClaudeCode"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::runForgeWorkspace","type":"calls","detail":"runForgeWorkspace"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::writeReport","type":"calls","detail":"writeReport"},{"from":"scripts/bench/run.ts","to":"scripts/bench/run.ts::main","type":"calls","detail":"main"},{"from":"scripts/verify-usage.ts","to":"scripts/verify-usage.ts::getModelFamily","type":"calls","detail":"getModelFamily"},{"from":"scripts/verify-usage.ts","to":"scripts/verify-usage.ts::calcCost","type":"calls","detail":"calcCost"},{"from":"src/config/index.ts","to":"src/config/index.ts::getConfigDir","type":"exports","detail":"getConfigDir"},{"from":"src/config/index.ts","to":"src/config/index.ts::getDataDir","type":"exports","detail":"getDataDir"},{"from":"src/config/index.ts","to":"src/config/index.ts::getDbPath","type":"exports","detail":"getDbPath"},{"from":"src/config/index.ts","to":"src/config/index.ts::getDataDir","type":"calls","detail":"getDataDir"},{"from":"src/config/index.ts","to":"src/config/index.ts::ensureDirs","type":"exports","detail":"ensureDirs"},{"from":"src/config/index.ts","to":"src/config/index.ts::loadConfig","type":"exports","detail":"loadConfig"},{"from":"src/config/index.ts","to":"src/config/index.ts::ensureDirs","type":"calls","detail":"ensureDirs"},{"from":"src/config/index.ts","to":"src/config/index.ts::saveConfig","type":"exports","detail":"saveConfig"},{"from":"src/config/index.ts","to":"src/config/index.ts::loadTemplate","type":"exports","detail":"loadTemplate"},{"from":"src/config/index.ts","to":"src/config/index.ts::loadAllTemplates","type":"exports","detail":"loadAllTemplates"},{"from":"src/config/index.ts","to":"src/config/index.ts::saveTemplate","type":"exports","detail":"saveTemplate"},{"from":"src/config/index.ts","to":"src/config/index.ts::getProviderApiKey","type":"exports","detail":"getProviderApiKey"},{"from":"src/core/db/database.ts","to":"src/core/db/database.ts::getDb","type":"exports","detail":"getDb"},{"from":"src/core/db/database.ts","to":"src/core/db/database.ts::migrate","type":"calls","detail":"migrate"},{"from":"src/core/db/database.ts","to":"src/core/db/database.ts::closeDb","type":"exports","detail":"closeDb"},{"from":"src/core/memory/strategy.ts","to":"src/core/memory/strategy.ts::getMemoryMessages","type":"exports","detail":"getMemoryMessages"},{"from":"src/core/providers/chat.ts","to":"src/core/providers/chat.ts::chat","type":"exports","detail":"chat"},{"from":"src/core/providers/chat.ts","to":"src/core/providers/chat.ts::chatStream","type":"exports","detail":"chatStream"},{"from":"src/core/providers/registry.ts","to":"src/core/providers/registry.ts::getModel","type":"exports","detail":"getModel"},{"from":"src/core/providers/registry.ts","to":"src/core/providers/registry.ts::listAvailableProviders","type":"exports","detail":"listAvailableProviders"},{"from":"src/core/session/manager.ts","to":"src/core/session/manager.ts::SessionManager","type":"exports","detail":"SessionManager"}],"files":["app/api/agents/route.ts","app/api/auth/[...nextauth]/route.ts","app/api/auth/verify/route.ts","app/api/claude/[id]/route.ts","app/api/claude/[id]/stream/route.ts","app/api/claude/route.ts","app/api/claude-sessions/[projectName]/entries/route.ts","app/api/claude-sessions/[projectName]/live/route.ts","app/api/claude-sessions/[projectName]/route.ts","app/api/claude-sessions/sync/route.ts","app/api/claude-templates/route.ts","app/api/code/route.ts","app/api/delivery/[id]/route.ts","app/api/delivery/route.ts","app/api/detect-cli/route.ts","app/api/docs/route.ts","app/api/docs/sessions/route.ts","app/api/favorites/route.ts","app/api/flows/route.ts","app/api/flows/run/route.ts","app/api/git/route.ts","app/api/help/route.ts","app/api/issue-scanner/route.ts","app/api/logs/route.ts","app/api/mobile-chat/route.ts","app/api/monitor/route.ts","app/api/notifications/route.ts","app/api/notify/test/route.ts","app/api/online/route.ts","app/api/pipelines/[id]/route.ts","app/api/pipelines/route.ts","app/api/plugins/route.ts","app/api/preview/[...path]/route.ts","app/api/preview/route.ts","app/api/project-pipelines/route.ts","app/api/project-sessions/route.ts","app/api/projects/route.ts","app/api/sessions/[id]/chat/route.ts","app/api/sessions/[id]/messages/route.ts","app/api/sessions/[id]/route.ts","app/api/sessions/route.ts","app/api/settings/route.ts","app/api/skills/local/route.ts","app/api/skills/route.ts","app/api/smith-templates/route.ts","app/api/status/route.ts","app/api/tabs/route.ts","app/api/tasks/[id]/route.ts","app/api/tasks/[id]/stream/route.ts","app/api/tasks/link/route.ts","app/api/tasks/route.ts","app/api/tasks/session/route.ts","app/api/telegram/route.ts","app/api/templates/route.ts","app/api/terminal-bell/route.ts","app/api/terminal-cwd/route.ts","app/api/terminal-state/route.ts","app/api/tunnel/route.ts","app/api/upgrade/route.ts","app/api/usage/route.ts","app/api/version/route.ts","app/api/watchers/route.ts","app/api/workspace/[id]/agents/route.ts","app/api/workspace/[id]/memory/route.ts","app/api/workspace/[id]/smith/route.ts","app/api/workspace/[id]/stream/route.ts","app/api/workspace/route.ts","app/global-error.tsx","app/layout.tsx","app/login/LoginForm.tsx","app/login/page.tsx","app/mobile/page.tsx","app/page.tsx","bin/forge-server.mjs","cli/mw.ts","components/BrowserPanel.tsx","components/ChatPanel.tsx","components/ClaudeTerminal.tsx","components/CodeViewer.tsx","components/ConversationEditor.tsx","components/ConversationGraphView.tsx","components/ConversationTerminalView.tsx","components/Dashboard.tsx","components/DashboardWrapper.tsx","components/DeliveryFlowEditor.tsx","components/DeliveryList.tsx","components/DeliveryWorkspace.tsx","components/DocTerminal.tsx","components/DocsViewer.tsx","components/HelpDialog.tsx","components/HelpTerminal.tsx","components/InlinePipelineView.tsx","components/LogViewer.tsx","components/MarkdownContent.tsx","components/MobileView.tsx","components/MonitorPanel.tsx","components/NewSessionModal.tsx","components/NewTaskModal.tsx","components/PipelineEditor.tsx","components/PipelineView.tsx","components/PluginsPanel.tsx","components/ProjectDetail.tsx","components/ProjectList.tsx","components/ProjectManager.tsx","components/SessionList.tsx","components/SessionView.tsx","components/SettingsModal.tsx","components/SkillsPanel.tsx","components/StatusBar.tsx","components/TabBar.tsx","components/TaskBoard.tsx","components/TaskDetail.tsx","components/TerminalLauncher.tsx","components/TunnelToggle.tsx","components/UsagePanel.tsx","components/WebTerminal.tsx","components/WorkspaceTree.tsx","components/WorkspaceView.tsx","hooks/useSidebarResize.ts","instrumentation.ts","lib/agents/claude-adapter.ts","lib/agents/generic-adapter.ts","lib/agents/index.ts","lib/agents/types.ts","lib/artifacts.ts","lib/auth.ts","lib/claude-process.ts","lib/claude-sessions.ts","lib/claude-templates.ts","lib/cloudflared.ts","lib/crypto.ts","lib/delivery.ts","lib/dirs.ts","lib/flows.ts","lib/forge-mcp-server.ts","lib/init.ts","lib/issue-scanner.ts","lib/logger.ts","lib/memory/code-graph.ts","lib/memory/install.ts","lib/memory/memory-mcp-server.ts","lib/notifications.ts","lib/notify.ts","lib/password.ts","lib/pipeline-scheduler.ts","lib/pipeline.ts","lib/plugins/executor.ts","lib/plugins/registry.ts","lib/plugins/types.ts","lib/project-sessions.ts","lib/projects.ts","lib/session-manager.ts","lib/session-utils.ts","lib/session-watcher.ts","lib/settings.ts","lib/skills.ts","lib/task-manager.ts","lib/telegram-bot.ts","lib/telegram-standalone.ts","lib/terminal-server.ts","lib/terminal-standalone.ts","lib/usage-scanner.ts","lib/workspace/agent-bus.ts","lib/workspace/agent-worker.ts","lib/workspace/backends/api-backend.ts","lib/workspace/backends/cli-backend.ts","lib/workspace/index.ts","lib/workspace/manager.ts","lib/workspace/orchestrator.ts","lib/workspace/persistence.ts","lib/workspace/presets.ts","lib/workspace/requests.ts","lib/workspace/session-monitor.ts","lib/workspace/skill-installer.ts","lib/workspace/smith-memory.ts","lib/workspace/types.ts","lib/workspace/watch-manager.ts","lib/workspace-standalone.ts","middleware.ts","next.config.ts","postcss.config.mjs","scripts/bench/run.ts","scripts/verify-usage.ts","src/config/index.ts","src/core/db/database.ts","src/core/memory/strategy.ts","src/core/providers/chat.ts","src/core/providers/registry.ts","src/core/session/manager.ts","src/types/index.ts"],"scannedAt":1775455983515}
|