@aion0/forge 0.5.24 → 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 +26 -15
- 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/docs/Forge_Memory_Layer_Design.docx +0 -0
- package/docs/Forge_Strategy_Research_2026.docx +0 -0
- 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/project-sessions.ts +1 -1
- 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/package.json +1 -1
- package/pnpm-workspace.yaml +1 -0
- package/start.sh +1 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import Markdown from 'react-markdown';
|
|
4
|
+
import remarkGfm from 'remark-gfm';
|
|
5
|
+
|
|
6
|
+
export default function MarkdownContent({ content }: { content: string }) {
|
|
7
|
+
return (
|
|
8
|
+
<Markdown
|
|
9
|
+
remarkPlugins={[remarkGfm]}
|
|
10
|
+
components={{
|
|
11
|
+
h1: ({ children }) => <h1 className="text-base font-bold text-[var(--text-primary)] mt-3 mb-1">{children}</h1>,
|
|
12
|
+
h2: ({ children }) => <h2 className="text-sm font-bold text-[var(--text-primary)] mt-3 mb-1">{children}</h2>,
|
|
13
|
+
h3: ({ children }) => <h3 className="text-xs font-bold text-[var(--text-primary)] mt-2 mb-1">{children}</h3>,
|
|
14
|
+
p: ({ children }) => <p className="text-xs text-[var(--text-primary)] mb-1.5 leading-relaxed">{children}</p>,
|
|
15
|
+
ul: ({ children }) => <ul className="text-xs text-[var(--text-primary)] mb-1.5 ml-4 list-disc space-y-0.5">{children}</ul>,
|
|
16
|
+
ol: ({ children }) => <ol className="text-xs text-[var(--text-primary)] mb-1.5 ml-4 list-decimal space-y-0.5">{children}</ol>,
|
|
17
|
+
li: ({ children }) => <li className="leading-relaxed">{children}</li>,
|
|
18
|
+
strong: ({ children }) => <strong className="font-semibold text-[var(--text-primary)]">{children}</strong>,
|
|
19
|
+
em: ({ children }) => <em className="italic text-[var(--text-secondary)]">{children}</em>,
|
|
20
|
+
a: ({ href, children }) => <a href={href} className="text-[var(--accent)] hover:underline" target="_blank" rel="noopener">{children}</a>,
|
|
21
|
+
blockquote: ({ children }) => <blockquote className="border-l-2 border-[var(--accent)]/40 pl-3 my-1.5 text-[var(--text-secondary)] text-xs italic">{children}</blockquote>,
|
|
22
|
+
code: ({ className, children, node, ...props }) => {
|
|
23
|
+
// Block code: has language class OR parent is <pre> (checked via node)
|
|
24
|
+
const isBlock = !!className?.includes('language-');
|
|
25
|
+
|
|
26
|
+
if (isBlock) {
|
|
27
|
+
const lang = className?.replace('language-', '') || '';
|
|
28
|
+
return (
|
|
29
|
+
<div className="my-2 rounded border border-[var(--border)] overflow-hidden max-w-full">
|
|
30
|
+
{lang && (
|
|
31
|
+
<div className="px-3 py-1 bg-[var(--bg-tertiary)] border-b border-[var(--border)] text-[9px] text-[var(--text-secondary)] font-mono">
|
|
32
|
+
{lang}
|
|
33
|
+
</div>
|
|
34
|
+
)}
|
|
35
|
+
<pre className="p-3 bg-[var(--bg-tertiary)] overflow-x-auto max-w-full">
|
|
36
|
+
<code className="text-[12px] font-mono text-[var(--text-primary)] whitespace-pre leading-[1.4]" style={{ fontFamily: 'Menlo, Monaco, "Courier New", monospace' }}>{children}</code>
|
|
37
|
+
</pre>
|
|
38
|
+
</div>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
return (
|
|
42
|
+
<code className="text-[11px] font-mono bg-[var(--bg-tertiary)] text-[var(--accent)] px-1 py-0.5 rounded">
|
|
43
|
+
{children}
|
|
44
|
+
</code>
|
|
45
|
+
);
|
|
46
|
+
},
|
|
47
|
+
pre: ({ children, ...props }) => {
|
|
48
|
+
// If code child already rendered as block (has language-), just pass through
|
|
49
|
+
// Otherwise wrap plain code blocks (no language) with proper styling
|
|
50
|
+
const child = (children as any)?.props;
|
|
51
|
+
if (child?.className?.includes('language-')) return <>{children}</>;
|
|
52
|
+
return (
|
|
53
|
+
<div className="my-2 rounded border border-[var(--border)] overflow-hidden max-w-full">
|
|
54
|
+
<pre className="p-3 bg-[var(--bg-tertiary)] overflow-x-auto max-w-full">
|
|
55
|
+
<code className="text-[12px] font-mono text-[var(--text-primary)] whitespace-pre leading-[1.4]" style={{ fontFamily: 'Menlo, Monaco, "Courier New", monospace' }}>{child?.children || children}</code>
|
|
56
|
+
</pre>
|
|
57
|
+
</div>
|
|
58
|
+
);
|
|
59
|
+
},
|
|
60
|
+
hr: () => <hr className="my-3 border-[var(--border)]" />,
|
|
61
|
+
table: ({ children }) => (
|
|
62
|
+
<div className="my-3 overflow-x-auto">
|
|
63
|
+
<table className="text-xs border-collapse">{children}</table>
|
|
64
|
+
</div>
|
|
65
|
+
),
|
|
66
|
+
th: ({ children }) => <th className="border border-[var(--border)] px-3 py-1.5 bg-[var(--bg-tertiary)] text-left font-semibold text-[11px] whitespace-nowrap">{children}</th>,
|
|
67
|
+
td: ({ children }) => <td className="border border-[var(--border)] px-3 py-1.5 text-[11px]">{children}</td>,
|
|
68
|
+
}}
|
|
69
|
+
>
|
|
70
|
+
{content}
|
|
71
|
+
</Markdown>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useState, useEffect, useRef, useCallback } from 'react';
|
|
4
|
+
|
|
5
|
+
interface Project { name: string; path: string }
|
|
6
|
+
interface SessionInfo { sessionId: string; summary?: string; firstPrompt?: string; modified?: string }
|
|
7
|
+
interface ChatMessage { role: 'user' | 'assistant' | 'system'; content: string; timestamp: string }
|
|
8
|
+
|
|
9
|
+
export default function MobileView() {
|
|
10
|
+
const [projects, setProjects] = useState<Project[]>([]);
|
|
11
|
+
const [selectedProject, setSelectedProject] = useState<Project | null>(null);
|
|
12
|
+
const [sessions, setSessions] = useState<SessionInfo[]>([]);
|
|
13
|
+
const [showSessions, setShowSessions] = useState(false);
|
|
14
|
+
const [messages, setMessages] = useState<ChatMessage[]>([]);
|
|
15
|
+
const [input, setInput] = useState('');
|
|
16
|
+
const [loading, setLoading] = useState(false);
|
|
17
|
+
const [tunnelUrl, setTunnelUrl] = useState<string | null>(null);
|
|
18
|
+
const [debug, setDebug] = useState<string[]>([]);
|
|
19
|
+
const [debugLevel, setDebugLevel] = useState<'off' | 'simple' | 'verbose'>('off');
|
|
20
|
+
const debugLevelRef = useRef<'off' | 'simple' | 'verbose'>('off');
|
|
21
|
+
const [hasSession, setHasSession] = useState(false);
|
|
22
|
+
const [availableAgents, setAvailableAgents] = useState<{ id: string; name: string }[]>([]);
|
|
23
|
+
const [selectedAgent, setSelectedAgent] = useState('claude');
|
|
24
|
+
const scrollRef = useRef<HTMLDivElement>(null);
|
|
25
|
+
const inputRef = useRef<HTMLInputElement>(null);
|
|
26
|
+
const abortRef = useRef<AbortController | null>(null);
|
|
27
|
+
|
|
28
|
+
// Fetch projects
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
fetch('/api/projects').then(r => r.json())
|
|
31
|
+
.then(data => { if (Array.isArray(data)) setProjects(data); })
|
|
32
|
+
.catch(() => {});
|
|
33
|
+
fetch('/api/tunnel').then(r => r.json())
|
|
34
|
+
.then(data => { setTunnelUrl(data.url || null); })
|
|
35
|
+
.catch(() => {});
|
|
36
|
+
fetch('/api/agents').then(r => r.json())
|
|
37
|
+
.then(data => {
|
|
38
|
+
const agents = (data.agents || []).filter((a: any) => a.enabled && a.detected !== false);
|
|
39
|
+
setAvailableAgents(agents);
|
|
40
|
+
setSelectedAgent(data.defaultAgent || 'claude');
|
|
41
|
+
}).catch(() => {});
|
|
42
|
+
}, []);
|
|
43
|
+
|
|
44
|
+
// Auto-scroll
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (scrollRef.current) scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
47
|
+
}, [messages]);
|
|
48
|
+
|
|
49
|
+
// Fetch sessions for project
|
|
50
|
+
const fetchSessions = useCallback(async (projectName: string) => {
|
|
51
|
+
try {
|
|
52
|
+
const res = await fetch(`/api/claude-sessions/${encodeURIComponent(projectName)}`);
|
|
53
|
+
const data = await res.json();
|
|
54
|
+
const list = Array.isArray(data) ? data : [];
|
|
55
|
+
setSessions(list);
|
|
56
|
+
setHasSession(list.length > 0);
|
|
57
|
+
return list;
|
|
58
|
+
} catch { setSessions([]); return []; }
|
|
59
|
+
}, []);
|
|
60
|
+
|
|
61
|
+
// Load session history
|
|
62
|
+
const loadHistory = useCallback(async (projectName: string, sessionId: string) => {
|
|
63
|
+
try {
|
|
64
|
+
const res = await fetch(`/api/claude-sessions/${encodeURIComponent(projectName)}/entries?sessionId=${encodeURIComponent(sessionId)}`);
|
|
65
|
+
const data = await res.json();
|
|
66
|
+
const entries = data.entries || [];
|
|
67
|
+
// Convert entries to chat messages (only user + assistant_text)
|
|
68
|
+
const chatMessages: ChatMessage[] = [];
|
|
69
|
+
for (const e of entries) {
|
|
70
|
+
if (e.type === 'user') {
|
|
71
|
+
chatMessages.push({ role: 'user', content: e.content, timestamp: e.timestamp || '' });
|
|
72
|
+
} else if (e.type === 'assistant_text') {
|
|
73
|
+
chatMessages.push({ role: 'assistant', content: e.content, timestamp: e.timestamp || '' });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
setMessages(chatMessages);
|
|
77
|
+
} catch {}
|
|
78
|
+
}, []);
|
|
79
|
+
|
|
80
|
+
// Select project
|
|
81
|
+
const selectProject = useCallback(async (project: Project) => {
|
|
82
|
+
setSelectedProject(project);
|
|
83
|
+
setShowSessions(false);
|
|
84
|
+
setMessages([]);
|
|
85
|
+
|
|
86
|
+
const sessionList = await fetchSessions(project.name);
|
|
87
|
+
// Load last session history if exists
|
|
88
|
+
if (sessionList.length > 0) {
|
|
89
|
+
await loadHistory(project.name, sessionList[0].sessionId);
|
|
90
|
+
}
|
|
91
|
+
}, [fetchSessions, loadHistory]);
|
|
92
|
+
|
|
93
|
+
// View specific session
|
|
94
|
+
const viewSession = useCallback(async (sessionId: string) => {
|
|
95
|
+
if (!selectedProject) return;
|
|
96
|
+
setShowSessions(false);
|
|
97
|
+
setMessages([]);
|
|
98
|
+
await loadHistory(selectedProject.name, sessionId);
|
|
99
|
+
}, [selectedProject, loadHistory]);
|
|
100
|
+
|
|
101
|
+
// Send message
|
|
102
|
+
const sendMessage = async () => {
|
|
103
|
+
const text = input.trim();
|
|
104
|
+
if (!text || !selectedProject || loading) return;
|
|
105
|
+
|
|
106
|
+
// Add user message
|
|
107
|
+
setMessages(prev => [...prev, { role: 'user', content: text, timestamp: new Date().toISOString() }]);
|
|
108
|
+
setInput('');
|
|
109
|
+
setLoading(true);
|
|
110
|
+
setDebug(d => [...d.slice(-20), `Send: "${text.slice(0, 40)}"`]);
|
|
111
|
+
inputRef.current?.focus();
|
|
112
|
+
|
|
113
|
+
// Stream response from API
|
|
114
|
+
const abort = new AbortController();
|
|
115
|
+
abortRef.current = abort;
|
|
116
|
+
let assistantText = '';
|
|
117
|
+
const startTime = Date.now();
|
|
118
|
+
|
|
119
|
+
try {
|
|
120
|
+
const res = await fetch('/api/mobile-chat', {
|
|
121
|
+
method: 'POST',
|
|
122
|
+
headers: { 'Content-Type': 'application/json' },
|
|
123
|
+
body: JSON.stringify({
|
|
124
|
+
message: text,
|
|
125
|
+
projectPath: selectedProject.path,
|
|
126
|
+
resume: false,
|
|
127
|
+
agent: selectedAgent,
|
|
128
|
+
}),
|
|
129
|
+
signal: abort.signal,
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
const reader = res.body?.getReader();
|
|
133
|
+
if (!reader) throw new Error('No reader');
|
|
134
|
+
|
|
135
|
+
const decoder = new TextDecoder();
|
|
136
|
+
|
|
137
|
+
// Add empty assistant message to fill in
|
|
138
|
+
setMessages(prev => [...prev, { role: 'assistant', content: '...', timestamp: new Date().toISOString() }]);
|
|
139
|
+
|
|
140
|
+
while (true) {
|
|
141
|
+
const { value, done } = await reader.read();
|
|
142
|
+
if (done) break;
|
|
143
|
+
|
|
144
|
+
const chunk = decoder.decode(value, { stream: true });
|
|
145
|
+
for (const line of chunk.split('\n')) {
|
|
146
|
+
if (!line.startsWith('data: ')) continue;
|
|
147
|
+
try {
|
|
148
|
+
const data = JSON.parse(line.slice(6));
|
|
149
|
+
if (data.type === 'chunk') {
|
|
150
|
+
assistantText += data.text;
|
|
151
|
+
if (debugLevelRef.current === 'verbose') {
|
|
152
|
+
// Show content preview in verbose mode
|
|
153
|
+
const preview = data.text.replace(/\n/g, '↵').slice(0, 80);
|
|
154
|
+
setDebug(d => [...d.slice(-50), `chunk: ${preview}`]);
|
|
155
|
+
}
|
|
156
|
+
} else if (data.type === 'stderr') {
|
|
157
|
+
if (debugLevelRef.current !== 'off') {
|
|
158
|
+
setDebug(d => [...d.slice(-50), `stderr: ${data.text.trim().slice(0, 100)}`]);
|
|
159
|
+
}
|
|
160
|
+
} else if (data.type === 'error') {
|
|
161
|
+
assistantText = `Error: ${data.message}`;
|
|
162
|
+
setDebug(d => [...d.slice(-50), `ERROR: ${data.message}`]);
|
|
163
|
+
} else if (data.type === 'done') {
|
|
164
|
+
if (debugLevelRef.current !== 'off') setDebug(d => [...d.slice(-50), `done: exit ${data.code}`]);
|
|
165
|
+
}
|
|
166
|
+
} catch {}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Update assistant message with latest text
|
|
170
|
+
if (assistantText) {
|
|
171
|
+
let displayText = assistantText;
|
|
172
|
+
try {
|
|
173
|
+
const parsed = JSON.parse(assistantText);
|
|
174
|
+
if (parsed.result) displayText = parsed.result;
|
|
175
|
+
} catch {}
|
|
176
|
+
setMessages(prev => {
|
|
177
|
+
const updated = [...prev];
|
|
178
|
+
updated[updated.length - 1] = { role: 'assistant', content: displayText, timestamp: new Date().toISOString() };
|
|
179
|
+
return updated;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Final parse
|
|
185
|
+
try {
|
|
186
|
+
const parsed = JSON.parse(assistantText);
|
|
187
|
+
const finalText = parsed.result || assistantText;
|
|
188
|
+
setMessages(prev => {
|
|
189
|
+
const updated = [...prev];
|
|
190
|
+
updated[updated.length - 1] = { role: 'assistant', content: finalText, timestamp: new Date().toISOString() };
|
|
191
|
+
return updated;
|
|
192
|
+
});
|
|
193
|
+
} catch {}
|
|
194
|
+
|
|
195
|
+
// After first message, future ones should use -c
|
|
196
|
+
setHasSession(true);
|
|
197
|
+
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
198
|
+
setDebug(d => [...d.slice(-50), `Response complete (${elapsed}s, ${assistantText.length} chars)`]);
|
|
199
|
+
} catch (e: any) {
|
|
200
|
+
if (e.name !== 'AbortError') {
|
|
201
|
+
setDebug(d => [...d.slice(-20), `Error: ${e.message}`]);
|
|
202
|
+
setMessages(prev => [...prev.slice(0, -1), { role: 'system', content: `Failed: ${e.message}`, timestamp: new Date().toISOString() }]);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
setLoading(false);
|
|
207
|
+
abortRef.current = null;
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
// Stop generation
|
|
211
|
+
const stopGeneration = () => {
|
|
212
|
+
if (abortRef.current) abortRef.current.abort();
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
// Close tunnel
|
|
216
|
+
const closeTunnel = async () => {
|
|
217
|
+
if (!confirm('Close tunnel? You will lose remote access.')) return;
|
|
218
|
+
await fetch('/api/tunnel', {
|
|
219
|
+
method: 'POST',
|
|
220
|
+
headers: { 'Content-Type': 'application/json' },
|
|
221
|
+
body: JSON.stringify({ action: 'stop' }),
|
|
222
|
+
});
|
|
223
|
+
setTunnelUrl(null);
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
return (
|
|
227
|
+
<div className="h-[100dvh] flex flex-col bg-[#0d1117] text-[#e6edf3]">
|
|
228
|
+
{/* Header */}
|
|
229
|
+
<header className="shrink-0 flex items-center gap-1.5 px-2 py-2 bg-[#161b22] border-b border-[#30363d]">
|
|
230
|
+
<span className="text-xs font-bold text-[#7c5bf0]">Forge</span>
|
|
231
|
+
<select
|
|
232
|
+
value={selectedProject?.path || ''}
|
|
233
|
+
onChange={e => {
|
|
234
|
+
const p = projects.find(p => p.path === e.target.value);
|
|
235
|
+
if (p) selectProject(p);
|
|
236
|
+
}}
|
|
237
|
+
className="flex-1 bg-[#0d1117] border border-[#30363d] rounded px-2 py-1 text-xs text-[#e6edf3] min-w-0"
|
|
238
|
+
>
|
|
239
|
+
<option value="">Project</option>
|
|
240
|
+
{projects.map(p => (
|
|
241
|
+
<option key={p.path} value={p.path}>{p.name}</option>
|
|
242
|
+
))}
|
|
243
|
+
</select>
|
|
244
|
+
{selectedProject && (
|
|
245
|
+
<>
|
|
246
|
+
<button
|
|
247
|
+
onClick={() => { setShowSessions(v => !v); if (!showSessions) fetchSessions(selectedProject.name); }}
|
|
248
|
+
className="text-xs px-2 py-1 border border-[#30363d] rounded text-[#8b949e] active:bg-[#30363d]"
|
|
249
|
+
>Sessions</button>
|
|
250
|
+
<button
|
|
251
|
+
onClick={async () => {
|
|
252
|
+
const list = await fetchSessions(selectedProject.name);
|
|
253
|
+
if (list.length > 0) {
|
|
254
|
+
await loadHistory(selectedProject.name, list[0].sessionId);
|
|
255
|
+
setDebug(d => [...d.slice(-20), `Refreshed: ${list[0].sessionId.slice(0, 8)}`]);
|
|
256
|
+
}
|
|
257
|
+
}}
|
|
258
|
+
className="text-sm px-3 py-1 border border-[#30363d] rounded text-[#8b949e] active:bg-[#30363d]"
|
|
259
|
+
>↻</button>
|
|
260
|
+
{availableAgents.length > 1 && (
|
|
261
|
+
<select
|
|
262
|
+
value={selectedAgent}
|
|
263
|
+
onChange={e => setSelectedAgent(e.target.value)}
|
|
264
|
+
className="bg-[#0d1117] border border-[#30363d] rounded px-1 py-1 text-[10px] text-[#e6edf3] w-16"
|
|
265
|
+
>
|
|
266
|
+
{availableAgents.map(a => (
|
|
267
|
+
<option key={a.id} value={a.id}>{a.name.split(' ')[0]}</option>
|
|
268
|
+
))}
|
|
269
|
+
</select>
|
|
270
|
+
)}
|
|
271
|
+
</>
|
|
272
|
+
)}
|
|
273
|
+
{tunnelUrl && (
|
|
274
|
+
<button onClick={closeTunnel} className="text-xs px-1.5 py-1 border border-green-700 rounded text-green-400" title={tunnelUrl}>●</button>
|
|
275
|
+
)}
|
|
276
|
+
<a href="/?force=desktop" className="text-[9px] px-1.5 py-1 border border-[#30363d] rounded text-[#8b949e] active:bg-[#30363d]" title="Switch to desktop view">PC</a>
|
|
277
|
+
</header>
|
|
278
|
+
|
|
279
|
+
{/* Session list */}
|
|
280
|
+
{showSessions && (
|
|
281
|
+
<div className="shrink-0 max-h-[40vh] overflow-y-auto bg-[#161b22] border-b border-[#30363d]">
|
|
282
|
+
{sessions.length === 0 ? (
|
|
283
|
+
<div className="px-3 py-4 text-xs text-[#8b949e] text-center">No sessions found</div>
|
|
284
|
+
) : sessions.map(s => (
|
|
285
|
+
<button
|
|
286
|
+
key={s.sessionId}
|
|
287
|
+
onClick={() => viewSession(s.sessionId)}
|
|
288
|
+
className="w-full text-left px-3 py-2 border-b border-[#30363d]/50 hover:bg-[#1c2128] text-xs"
|
|
289
|
+
>
|
|
290
|
+
<div className="flex items-center gap-2">
|
|
291
|
+
<span className="text-[#e6edf3] font-mono truncate">{s.sessionId.slice(0, 12)}</span>
|
|
292
|
+
{s.modified && <span className="text-[#8b949e] ml-auto shrink-0">{new Date(s.modified).toLocaleString([], { month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' })}</span>}
|
|
293
|
+
</div>
|
|
294
|
+
{(s.summary || s.firstPrompt) && (
|
|
295
|
+
<div className="text-[#8b949e] mt-0.5 truncate">{s.summary || s.firstPrompt}</div>
|
|
296
|
+
)}
|
|
297
|
+
</button>
|
|
298
|
+
))}
|
|
299
|
+
</div>
|
|
300
|
+
)}
|
|
301
|
+
|
|
302
|
+
{/* Messages */}
|
|
303
|
+
<div ref={scrollRef} className="flex-1 overflow-y-auto px-3 py-2 min-h-0 space-y-3">
|
|
304
|
+
{!selectedProject ? (
|
|
305
|
+
<div className="h-full flex items-center justify-center text-sm text-[#8b949e]">
|
|
306
|
+
Select a project to start
|
|
307
|
+
</div>
|
|
308
|
+
) : messages.length === 0 ? (
|
|
309
|
+
<div className="h-full flex items-center justify-center text-sm text-[#8b949e]">
|
|
310
|
+
{hasSession ? 'Session loaded. Type a message.' : 'No sessions yet. Type a message to start.'}
|
|
311
|
+
</div>
|
|
312
|
+
) : messages.map((msg, i) => (
|
|
313
|
+
<div key={i} className={`flex ${msg.role === 'user' ? 'justify-end' : 'justify-start'}`}>
|
|
314
|
+
<div className={`max-w-[85%] rounded-2xl px-3 py-2 text-sm whitespace-pre-wrap break-words ${
|
|
315
|
+
msg.role === 'user'
|
|
316
|
+
? 'bg-[#7c5bf0] text-white rounded-br-sm'
|
|
317
|
+
: msg.role === 'system'
|
|
318
|
+
? 'bg-red-900/30 text-red-300 rounded-bl-sm'
|
|
319
|
+
: 'bg-[#1c2128] text-[#e6edf3] rounded-bl-sm'
|
|
320
|
+
}`}>
|
|
321
|
+
{msg.content}
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
))}
|
|
325
|
+
{loading && (
|
|
326
|
+
<div className="flex justify-start">
|
|
327
|
+
<div className="bg-[#1c2128] rounded-2xl rounded-bl-sm px-3 py-2 text-sm text-[#8b949e]">
|
|
328
|
+
Thinking...
|
|
329
|
+
</div>
|
|
330
|
+
</div>
|
|
331
|
+
)}
|
|
332
|
+
</div>
|
|
333
|
+
|
|
334
|
+
{/* Input */}
|
|
335
|
+
<div className="shrink-0 flex items-center gap-2 px-3 py-2 bg-[#161b22] border-t border-[#30363d]">
|
|
336
|
+
<input
|
|
337
|
+
ref={inputRef}
|
|
338
|
+
type="text"
|
|
339
|
+
value={input}
|
|
340
|
+
onChange={e => setInput(e.target.value)}
|
|
341
|
+
onKeyDown={e => { if (e.key === 'Enter' && !loading) sendMessage(); }}
|
|
342
|
+
placeholder={selectedProject ? 'Type a message...' : 'Select a project first'}
|
|
343
|
+
disabled={!selectedProject}
|
|
344
|
+
className="flex-1 bg-[#0d1117] border border-[#30363d] rounded-lg px-3 py-2 text-sm text-[#e6edf3] focus:outline-none focus:border-[#7c5bf0] disabled:opacity-50 min-w-0"
|
|
345
|
+
autoComplete="off"
|
|
346
|
+
autoCorrect="off"
|
|
347
|
+
/>
|
|
348
|
+
{loading ? (
|
|
349
|
+
<button
|
|
350
|
+
onClick={stopGeneration}
|
|
351
|
+
className="px-4 py-2 bg-red-600 text-white rounded-lg text-sm font-medium shrink-0"
|
|
352
|
+
>Stop</button>
|
|
353
|
+
) : (
|
|
354
|
+
<button
|
|
355
|
+
onClick={sendMessage}
|
|
356
|
+
disabled={!selectedProject || !input.trim()}
|
|
357
|
+
className="px-4 py-2 bg-[#7c5bf0] text-white rounded-lg text-sm font-medium disabled:opacity-50 shrink-0"
|
|
358
|
+
>Send</button>
|
|
359
|
+
)}
|
|
360
|
+
</div>
|
|
361
|
+
|
|
362
|
+
{/* Debug log */}
|
|
363
|
+
<div className="shrink-0 bg-[#0d1117] border-t border-[#30363d]">
|
|
364
|
+
<div className="flex items-center gap-2 px-3 py-1">
|
|
365
|
+
<span className="text-[9px] text-[#8b949e]">Debug:</span>
|
|
366
|
+
{(['off', 'simple', 'verbose'] as const).map(level => (
|
|
367
|
+
<button
|
|
368
|
+
key={level}
|
|
369
|
+
onClick={() => { setDebugLevel(level); debugLevelRef.current = level; if (level === 'off') setDebug([]); }}
|
|
370
|
+
className={`text-[9px] px-1.5 py-0.5 rounded ${debugLevel === level ? 'bg-[#30363d] text-[#e6edf3]' : 'text-[#8b949e]'}`}
|
|
371
|
+
>{level}</button>
|
|
372
|
+
))}
|
|
373
|
+
{debug.length > 0 && (
|
|
374
|
+
<button onClick={() => setDebug([])} className="text-[9px] text-[#8b949e] ml-auto">Clear</button>
|
|
375
|
+
)}
|
|
376
|
+
</div>
|
|
377
|
+
{debugLevel !== 'off' && debug.length > 0 && (
|
|
378
|
+
<div className="px-3 py-1 max-h-32 overflow-y-auto border-t border-[#30363d]/50">
|
|
379
|
+
{debug.map((d, i) => <div key={i} className="text-[9px] text-[#8b949e] font-mono">{d}</div>)}
|
|
380
|
+
</div>
|
|
381
|
+
)}
|
|
382
|
+
</div>
|
|
383
|
+
</div>
|
|
384
|
+
);
|
|
385
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
4
|
+
|
|
5
|
+
interface MonitorData {
|
|
6
|
+
processes: {
|
|
7
|
+
nextjs: { running: boolean; pid: string; startedAt?: string };
|
|
8
|
+
terminal: { running: boolean; pid: string; startedAt?: string };
|
|
9
|
+
telegram: { running: boolean; pid: string; startedAt?: string };
|
|
10
|
+
workspace: { running: boolean; pid: string; startedAt?: string };
|
|
11
|
+
tunnel: { running: boolean; pid: string; url: string };
|
|
12
|
+
mcp: { running: boolean; port: number; sessions: number };
|
|
13
|
+
};
|
|
14
|
+
sessions: { name: string; created: string; attached: boolean; windows: number }[];
|
|
15
|
+
uptime: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default function MonitorPanel({ onClose }: { onClose: () => void }) {
|
|
19
|
+
const [data, setData] = useState<MonitorData | null>(null);
|
|
20
|
+
|
|
21
|
+
const refresh = useCallback(() => {
|
|
22
|
+
fetch('/api/monitor').then(r => r.json()).then(setData).catch(() => {});
|
|
23
|
+
}, []);
|
|
24
|
+
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
refresh();
|
|
27
|
+
const timer = setInterval(refresh, 5000);
|
|
28
|
+
return () => clearInterval(timer);
|
|
29
|
+
}, [refresh]);
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black/50" onClick={onClose}>
|
|
33
|
+
<div className="bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg w-[500px] max-h-[80vh] overflow-y-auto shadow-xl" onClick={e => e.stopPropagation()}>
|
|
34
|
+
<div className="px-4 py-3 border-b border-[var(--border)] flex items-center justify-between">
|
|
35
|
+
<h2 className="text-sm font-bold text-[var(--text-primary)]">Monitor</h2>
|
|
36
|
+
<div className="flex items-center gap-2">
|
|
37
|
+
<button onClick={refresh} className="text-[10px] text-[var(--text-secondary)] hover:text-[var(--text-primary)]">↻</button>
|
|
38
|
+
<button onClick={onClose} className="text-[10px] text-[var(--text-secondary)] hover:text-[var(--text-primary)]">Close</button>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
{data ? (
|
|
43
|
+
<div className="p-4 space-y-4">
|
|
44
|
+
{/* Processes */}
|
|
45
|
+
<div>
|
|
46
|
+
<h3 className="text-[10px] font-semibold text-[var(--text-secondary)] uppercase mb-2">Processes</h3>
|
|
47
|
+
<div className="space-y-1.5">
|
|
48
|
+
{[
|
|
49
|
+
{ label: 'Next.js', ...data.processes.nextjs },
|
|
50
|
+
{ label: 'Terminal Server', ...data.processes.terminal },
|
|
51
|
+
{ label: 'Telegram Bot', ...data.processes.telegram },
|
|
52
|
+
{ label: 'Workspace Daemon', ...data.processes.workspace },
|
|
53
|
+
{ label: 'Tunnel', ...data.processes.tunnel },
|
|
54
|
+
].map(p => (
|
|
55
|
+
<div key={p.label} className="flex items-center gap-2 text-xs">
|
|
56
|
+
<span className={p.running ? 'text-green-400' : 'text-gray-500'}>●</span>
|
|
57
|
+
<span className="text-[var(--text-primary)] w-28">{p.label}</span>
|
|
58
|
+
{p.running ? (
|
|
59
|
+
<>
|
|
60
|
+
<span className="text-[var(--text-secondary)] font-mono text-[10px]">pid: {p.pid}</span>
|
|
61
|
+
{(p as any).startedAt && <span className="text-gray-500 font-mono text-[9px]">{(p as any).startedAt}</span>}
|
|
62
|
+
</>
|
|
63
|
+
) : (
|
|
64
|
+
<span className="text-gray-500 text-[10px]">stopped</span>
|
|
65
|
+
)}
|
|
66
|
+
</div>
|
|
67
|
+
))}
|
|
68
|
+
{/* MCP Server — separate row (no pid, uses port + sessions) */}
|
|
69
|
+
<div className="flex items-center gap-2 text-xs">
|
|
70
|
+
<span className={data.processes.mcp?.running ? 'text-green-400' : 'text-gray-500'}>●</span>
|
|
71
|
+
<span className="text-[var(--text-primary)] w-28">MCP Server</span>
|
|
72
|
+
{data.processes.mcp?.running ? (
|
|
73
|
+
<>
|
|
74
|
+
<span className="text-[var(--text-secondary)] font-mono text-[10px]">port: {data.processes.mcp.port}</span>
|
|
75
|
+
<span className="text-gray-500 font-mono text-[9px]">{data.processes.mcp.sessions} session(s)</span>
|
|
76
|
+
</>
|
|
77
|
+
) : (
|
|
78
|
+
<span className="text-gray-500 text-[10px]">stopped</span>
|
|
79
|
+
)}
|
|
80
|
+
</div>
|
|
81
|
+
{data.processes.tunnel.running && data.processes.tunnel.url && (
|
|
82
|
+
<div className="pl-6 text-[10px] text-[var(--accent)] truncate">{data.processes.tunnel.url}</div>
|
|
83
|
+
)}
|
|
84
|
+
<div className="border-t border-[var(--border)] my-1" />
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
{/* Uptime */}
|
|
89
|
+
{data.uptime && (
|
|
90
|
+
<div className="text-[10px] text-[var(--text-secondary)]">
|
|
91
|
+
Uptime: {data.uptime}
|
|
92
|
+
</div>
|
|
93
|
+
)}
|
|
94
|
+
|
|
95
|
+
{/* Sessions */}
|
|
96
|
+
<div>
|
|
97
|
+
<h3 className="text-[10px] font-semibold text-[var(--text-secondary)] uppercase mb-2">
|
|
98
|
+
Terminal Sessions ({data.sessions.length})
|
|
99
|
+
</h3>
|
|
100
|
+
{data.sessions.length === 0 ? (
|
|
101
|
+
<div className="text-[10px] text-[var(--text-secondary)]">No sessions</div>
|
|
102
|
+
) : (
|
|
103
|
+
<div className="space-y-1">
|
|
104
|
+
{data.sessions.map(s => (
|
|
105
|
+
<div key={s.name} className="flex items-center gap-2 text-[11px]">
|
|
106
|
+
<span className={s.attached ? 'text-green-400' : 'text-yellow-500'}>●</span>
|
|
107
|
+
<span className="font-mono text-[var(--text-primary)] truncate flex-1">{s.name}</span>
|
|
108
|
+
<span className="text-[9px] text-[var(--text-secondary)]">{s.attached ? 'attached' : 'detached'}</span>
|
|
109
|
+
<span className="text-[9px] text-[var(--text-secondary)]">{new Date(s.created).toLocaleTimeString()}</span>
|
|
110
|
+
</div>
|
|
111
|
+
))}
|
|
112
|
+
</div>
|
|
113
|
+
)}
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
) : (
|
|
117
|
+
<div className="p-8 text-center text-xs text-[var(--text-secondary)]">Loading...</div>
|
|
118
|
+
)}
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
);
|
|
122
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useState, useEffect } from 'react';
|
|
4
|
+
import type { SessionTemplate } from '@/src/types';
|
|
5
|
+
|
|
6
|
+
export default function NewSessionModal({
|
|
7
|
+
onClose,
|
|
8
|
+
onCreate,
|
|
9
|
+
}: {
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
onCreate: (data: { name: string; templateId: string }) => void;
|
|
12
|
+
}) {
|
|
13
|
+
const [templates, setTemplates] = useState<SessionTemplate[]>([]);
|
|
14
|
+
const [selectedTemplate, setSelectedTemplate] = useState('');
|
|
15
|
+
const [name, setName] = useState('');
|
|
16
|
+
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
fetch('/api/templates')
|
|
19
|
+
.then(r => r.json())
|
|
20
|
+
.then((t: SessionTemplate[]) => {
|
|
21
|
+
setTemplates(t);
|
|
22
|
+
if (t.length > 0) setSelectedTemplate(t[0].id);
|
|
23
|
+
});
|
|
24
|
+
}, []);
|
|
25
|
+
|
|
26
|
+
const handleCreate = () => {
|
|
27
|
+
if (!selectedTemplate) return;
|
|
28
|
+
const finalName = name || `${selectedTemplate}-${Date.now().toString(36)}`;
|
|
29
|
+
onCreate({ name: finalName, templateId: selectedTemplate });
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<div className="fixed inset-0 bg-black/50 flex items-center justify-center z-50" onClick={onClose}>
|
|
34
|
+
<div
|
|
35
|
+
className="bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg w-96 p-5 space-y-4"
|
|
36
|
+
onClick={e => e.stopPropagation()}
|
|
37
|
+
>
|
|
38
|
+
<h2 className="text-sm font-bold">New Session</h2>
|
|
39
|
+
|
|
40
|
+
{/* Template selection */}
|
|
41
|
+
<div className="space-y-2">
|
|
42
|
+
<label className="text-xs text-[var(--text-secondary)]">Template</label>
|
|
43
|
+
<div className="grid grid-cols-2 gap-2">
|
|
44
|
+
{templates.map(t => (
|
|
45
|
+
<button
|
|
46
|
+
key={t.id}
|
|
47
|
+
onClick={() => setSelectedTemplate(t.id)}
|
|
48
|
+
className={`p-2 rounded border text-left text-xs transition-colors ${
|
|
49
|
+
selectedTemplate === t.id
|
|
50
|
+
? 'border-[var(--accent)] bg-[var(--bg-tertiary)]'
|
|
51
|
+
: 'border-[var(--border)] hover:border-[var(--text-secondary)]'
|
|
52
|
+
}`}
|
|
53
|
+
>
|
|
54
|
+
<div className="font-medium">{t.ui?.icon} {t.name}</div>
|
|
55
|
+
<div className="text-[10px] text-[var(--text-secondary)] mt-0.5">
|
|
56
|
+
{t.provider} · {t.memory.strategy}
|
|
57
|
+
</div>
|
|
58
|
+
</button>
|
|
59
|
+
))}
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
{/* Name */}
|
|
64
|
+
<div className="space-y-1">
|
|
65
|
+
<label className="text-xs text-[var(--text-secondary)]">Session Name (optional)</label>
|
|
66
|
+
<input
|
|
67
|
+
value={name}
|
|
68
|
+
onChange={e => setName(e.target.value)}
|
|
69
|
+
placeholder={selectedTemplate || 'auto-generated'}
|
|
70
|
+
className="w-full px-3 py-2 bg-[var(--bg-tertiary)] border border-[var(--border)] rounded text-sm text-[var(--text-primary)] focus:outline-none focus:border-[var(--accent)]"
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
{/* Actions */}
|
|
75
|
+
<div className="flex justify-end gap-2">
|
|
76
|
+
<button
|
|
77
|
+
onClick={onClose}
|
|
78
|
+
className="px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]"
|
|
79
|
+
>
|
|
80
|
+
Cancel
|
|
81
|
+
</button>
|
|
82
|
+
<button
|
|
83
|
+
onClick={handleCreate}
|
|
84
|
+
disabled={!selectedTemplate}
|
|
85
|
+
className="px-3 py-1.5 text-xs bg-[var(--accent)] text-white rounded hover:opacity-90 disabled:opacity-50"
|
|
86
|
+
>
|
|
87
|
+
Create
|
|
88
|
+
</button>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
);
|
|
93
|
+
}
|