whale-code 6.5.4 → 6.5.6
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/README.md +39 -31
- package/bin/{swagmanager-mcp.js → whale-code.js} +17 -2
- package/dist/cli/app.js +148 -72
- package/dist/cli/app.js.map +1 -0
- package/dist/cli/chat/AgentSelector.js +105 -10
- package/dist/cli/chat/AgentSelector.js.map +1 -0
- package/dist/cli/chat/ChatApp.d.ts +31 -0
- package/dist/cli/chat/ChatApp.js +539 -286
- package/dist/cli/chat/ChatApp.js.map +1 -0
- package/dist/cli/chat/ChatInput.js +1088 -770
- package/dist/cli/chat/ChatInput.js.map +1 -0
- package/dist/cli/chat/MarkdownText.js +39 -14
- package/dist/cli/chat/MarkdownText.js.map +1 -0
- package/dist/cli/chat/MemoryManager.js +181 -46
- package/dist/cli/chat/MemoryManager.js.map +1 -0
- package/dist/cli/chat/MessageList.d.ts +2 -3
- package/dist/cli/chat/MessageList.js +186 -45
- package/dist/cli/chat/MessageList.js.map +1 -0
- package/dist/cli/chat/ModelSelector.js +282 -63
- package/dist/cli/chat/ModelSelector.js.map +1 -0
- package/dist/cli/chat/NodeManager.js +165 -75
- package/dist/cli/chat/NodeManager.js.map +1 -0
- package/dist/cli/chat/NodeSelector.js +171 -30
- package/dist/cli/chat/NodeSelector.js.map +1 -0
- package/dist/cli/chat/PlanApproval.js +281 -57
- package/dist/cli/chat/PlanApproval.js.map +1 -0
- package/dist/cli/chat/RewindViewer.js +559 -144
- package/dist/cli/chat/RewindViewer.js.map +1 -0
- package/dist/cli/chat/SessionManager.js +137 -30
- package/dist/cli/chat/SessionManager.js.map +1 -0
- package/dist/cli/chat/SlashMenu.js +293 -164
- package/dist/cli/chat/SlashMenu.js.map +1 -0
- package/dist/cli/chat/StatusBar.js +172 -9
- package/dist/cli/chat/StatusBar.js.map +1 -0
- package/dist/cli/chat/StoreSelector.js +147 -18
- package/dist/cli/chat/StoreSelector.js.map +1 -0
- package/dist/cli/chat/StreamingText.d.ts +1 -5
- package/dist/cli/chat/StreamingText.js +22 -7
- package/dist/cli/chat/StreamingText.js.map +1 -0
- package/dist/cli/chat/SubagentPanel.d.ts +1 -2
- package/dist/cli/chat/SubagentPanel.js +612 -72
- package/dist/cli/chat/SubagentPanel.js.map +1 -0
- package/dist/cli/chat/TeamPanel.d.ts +1 -0
- package/dist/cli/chat/TeamPanel.js +230 -30
- package/dist/cli/chat/TeamPanel.js.map +1 -0
- package/dist/cli/chat/ThemeSelector.js +84 -24
- package/dist/cli/chat/ThemeSelector.js.map +1 -0
- package/dist/cli/chat/ToolIndicator.js +1476 -371
- package/dist/cli/chat/ToolIndicator.js.map +1 -0
- package/dist/cli/chat/hooks/useAgentLoop.d.ts +1 -0
- package/dist/cli/chat/hooks/useAgentLoop.js +481 -367
- package/dist/cli/chat/hooks/useAgentLoop.js.map +1 -0
- package/dist/cli/chat/hooks/useSlashCommands.d.ts +3 -14
- package/dist/cli/chat/hooks/useSlashCommands.js +744 -572
- package/dist/cli/chat/hooks/useSlashCommands.js.map +1 -0
- package/dist/cli/commands/config-cmd.js +56 -57
- package/dist/cli/commands/config-cmd.js.map +1 -0
- package/dist/cli/commands/db.js +184 -169
- package/dist/cli/commands/db.js.map +1 -0
- package/dist/cli/commands/doctor.js +212 -122
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init.js +211 -244
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/mcp.js +127 -122
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/login/LoginApp.js +355 -141
- package/dist/cli/login/LoginApp.js.map +1 -0
- package/dist/cli/print-mode.js +196 -177
- package/dist/cli/print-mode.js.map +1 -0
- package/dist/cli/serve-mode.js +615 -530
- package/dist/cli/serve-mode.js.map +1 -0
- package/dist/cli/services/agent-config.d.ts +29 -0
- package/dist/cli/services/agent-config.js +91 -0
- package/dist/cli/services/agent-config.js.map +1 -0
- package/dist/cli/services/agent-definitions.d.ts +4 -1
- package/dist/cli/services/agent-definitions.js +97 -56
- package/dist/cli/services/agent-definitions.js.map +1 -0
- package/dist/cli/services/agent-events.js +225 -162
- package/dist/cli/services/agent-events.js.map +1 -0
- package/dist/cli/services/agent-loop.js +978 -669
- package/dist/cli/services/agent-loop.js.map +1 -0
- package/dist/cli/services/agent-worker-base.d.ts +35 -5
- package/dist/cli/services/agent-worker-base.js +337 -153
- package/dist/cli/services/agent-worker-base.js.map +1 -0
- package/dist/cli/services/api-retry.js +69 -64
- package/dist/cli/services/api-retry.js.map +1 -0
- package/dist/cli/services/auth-service.d.ts +3 -3
- package/dist/cli/services/auth-service.js +209 -132
- package/dist/cli/services/auth-service.js.map +1 -0
- package/dist/cli/services/background-processes.js +343 -267
- package/dist/cli/services/background-processes.js.map +1 -0
- package/dist/cli/services/browser-auth.d.ts +2 -2
- package/dist/cli/services/browser-auth.js +159 -118
- package/dist/cli/services/browser-auth.js.map +1 -0
- package/dist/cli/services/claude-md-loader.js +40 -36
- package/dist/cli/services/claude-md-loader.js.map +1 -0
- package/dist/cli/services/config-store.d.ts +9 -4
- package/dist/cli/services/config-store.js +164 -117
- package/dist/cli/services/config-store.js.map +1 -0
- package/dist/cli/services/debug-log.d.ts +1 -1
- package/dist/cli/services/debug-log.js +34 -35
- package/dist/cli/services/debug-log.js.map +1 -0
- package/dist/cli/services/env-detect.d.ts +7 -0
- package/dist/cli/services/env-detect.js +9 -0
- package/dist/cli/services/env-detect.js.map +1 -0
- package/dist/cli/services/error-logger.d.ts +2 -3
- package/dist/cli/services/error-logger.js +189 -180
- package/dist/cli/services/error-logger.js.map +1 -0
- package/dist/cli/services/file-history.d.ts +1 -1
- package/dist/cli/services/file-history.js +50 -54
- package/dist/cli/services/file-history.js.map +1 -0
- package/dist/cli/services/format-server-response.js +332 -372
- package/dist/cli/services/format-server-response.js.map +1 -0
- package/dist/cli/services/git-context.js +61 -45
- package/dist/cli/services/git-context.js.map +1 -0
- package/dist/cli/services/hooks.d.ts +2 -2
- package/dist/cli/services/hooks.js +195 -180
- package/dist/cli/services/hooks.js.map +1 -0
- package/dist/cli/services/ink-incremental.d.ts +19 -0
- package/dist/cli/services/ink-incremental.js +59 -0
- package/dist/cli/services/ink-incremental.js.map +1 -0
- package/dist/cli/services/ink-resize-fix.js +54 -44
- package/dist/cli/services/ink-resize-fix.js.map +1 -0
- package/dist/cli/services/ink-sync-output.d.ts +12 -0
- package/dist/cli/services/ink-sync-output.js +16 -0
- package/dist/cli/services/ink-sync-output.js.map +1 -0
- package/dist/cli/services/interactive-tools.js +268 -212
- package/dist/cli/services/interactive-tools.js.map +1 -0
- package/dist/cli/services/keybinding-manager.d.ts +11 -1
- package/dist/cli/services/keybinding-manager.js +126 -63
- package/dist/cli/services/keybinding-manager.js.map +1 -0
- package/dist/cli/services/local-tools.d.ts +1 -1
- package/dist/cli/services/local-tools.js +939 -656
- package/dist/cli/services/local-tools.js.map +1 -0
- package/dist/cli/services/lsp-manager.js +757 -594
- package/dist/cli/services/lsp-manager.js.map +1 -0
- package/dist/cli/services/mcp-client.d.ts +1 -1
- package/dist/cli/services/mcp-client.js +173 -134
- package/dist/cli/services/mcp-client.js.map +1 -0
- package/dist/cli/services/memory-manager.js +53 -40
- package/dist/cli/services/memory-manager.js.map +1 -0
- package/dist/cli/services/model-manager.js +55 -40
- package/dist/cli/services/model-manager.js.map +1 -0
- package/dist/cli/services/model-router.js +115 -85
- package/dist/cli/services/model-router.js.map +1 -0
- package/dist/cli/services/paths.d.ts +30 -0
- package/dist/cli/services/paths.js +81 -0
- package/dist/cli/services/paths.js.map +1 -0
- package/dist/cli/services/permission-modes.js +32 -25
- package/dist/cli/services/permission-modes.js.map +1 -0
- package/dist/cli/services/rewind.js +182 -168
- package/dist/cli/services/rewind.js.map +1 -0
- package/dist/cli/services/ripgrep.js +115 -115
- package/dist/cli/services/ripgrep.js.map +1 -0
- package/dist/cli/services/sandbox.d.ts +1 -1
- package/dist/cli/services/sandbox.js +58 -37
- package/dist/cli/services/sandbox.js.map +1 -0
- package/dist/cli/services/server-tools.js +738 -565
- package/dist/cli/services/server-tools.js.map +1 -0
- package/dist/cli/services/session-persistence.js +69 -74
- package/dist/cli/services/session-persistence.js.map +1 -0
- package/dist/cli/services/subagent-worker.js +42 -27
- package/dist/cli/services/subagent-worker.js.map +1 -0
- package/dist/cli/services/subagent.d.ts +2 -0
- package/dist/cli/services/subagent.js +606 -430
- package/dist/cli/services/subagent.js.map +1 -0
- package/dist/cli/services/system-prompt.js +86 -78
- package/dist/cli/services/system-prompt.js.map +1 -0
- package/dist/cli/services/task-decomposer.d.ts +1 -1
- package/dist/cli/services/task-decomposer.js +172 -139
- package/dist/cli/services/task-decomposer.js.map +1 -0
- package/dist/cli/services/team-lead.d.ts +2 -2
- package/dist/cli/services/team-lead.js +727 -529
- package/dist/cli/services/team-lead.js.map +1 -0
- package/dist/cli/services/team-state.js +319 -319
- package/dist/cli/services/team-state.js.map +1 -0
- package/dist/cli/services/teammate.d.ts +8 -2
- package/dist/cli/services/teammate.js +862 -560
- package/dist/cli/services/teammate.js.map +1 -0
- package/dist/cli/services/telemetry.d.ts +6 -1
- package/dist/cli/services/telemetry.js +180 -157
- package/dist/cli/services/telemetry.js.map +1 -0
- package/dist/cli/services/tools/agent-tools.d.ts +3 -3
- package/dist/cli/services/tools/agent-tools.js +480 -322
- package/dist/cli/services/tools/agent-tools.js.map +1 -0
- package/dist/cli/services/tools/file-ops.js +563 -450
- package/dist/cli/services/tools/file-ops.js.map +1 -0
- package/dist/cli/services/tools/search-tools.js +231 -162
- package/dist/cli/services/tools/search-tools.js.map +1 -0
- package/dist/cli/services/tools/shell-exec.js +197 -151
- package/dist/cli/services/tools/shell-exec.js.map +1 -0
- package/dist/cli/services/tools/task-manager.js +206 -173
- package/dist/cli/services/tools/task-manager.js.map +1 -0
- package/dist/cli/services/tools/web-tools.js +388 -341
- package/dist/cli/services/tools/web-tools.js.map +1 -0
- package/dist/cli/setup/SetupApp.d.ts +2 -2
- package/dist/cli/setup/SetupApp.js +608 -160
- package/dist/cli/setup/SetupApp.js.map +1 -0
- package/dist/cli/shared/ErrorBoundary.d.ts +22 -0
- package/dist/cli/shared/ErrorBoundary.js +73 -0
- package/dist/cli/shared/ErrorBoundary.js.map +1 -0
- package/dist/cli/shared/MatrixIntro.js +66 -69
- package/dist/cli/shared/MatrixIntro.js.map +1 -0
- package/dist/cli/shared/SpinnerSlot.d.ts +14 -0
- package/dist/cli/shared/SpinnerSlot.js +63 -0
- package/dist/cli/shared/SpinnerSlot.js.map +1 -0
- package/dist/cli/shared/Theme.d.ts +1 -1
- package/dist/cli/shared/Theme.js +136 -92
- package/dist/cli/shared/Theme.js.map +1 -0
- package/dist/cli/shared/WhaleBanner.js +99 -11
- package/dist/cli/shared/WhaleBanner.js.map +1 -0
- package/dist/cli/shared/markdown.d.ts +3 -1
- package/dist/cli/shared/markdown.js +736 -674
- package/dist/cli/shared/markdown.js.map +1 -0
- package/dist/cli/shared/marked-terminal.d.js +2 -0
- package/dist/cli/shared/marked-terminal.d.js.map +1 -0
- package/dist/cli/shared/theme-manager.js +99 -90
- package/dist/cli/shared/theme-manager.js.map +1 -0
- package/dist/cli/shared/theme-presets.js +256 -254
- package/dist/cli/shared/theme-presets.js.map +1 -0
- package/dist/cli/status/StatusApp.js +235 -86
- package/dist/cli/status/StatusApp.js.map +1 -0
- package/dist/cli/stores/StoreApp.js +275 -65
- package/dist/cli/stores/StoreApp.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +509 -396
- package/dist/index.js.map +1 -0
- package/dist/local-agent/connection.d.ts +2 -2
- package/dist/local-agent/connection.js +352 -293
- package/dist/local-agent/connection.js.map +1 -0
- package/dist/local-agent/discovery.js +259 -122
- package/dist/local-agent/discovery.js.map +1 -0
- package/dist/local-agent/executor.js +216 -193
- package/dist/local-agent/executor.js.map +1 -0
- package/dist/local-agent/index.d.ts +2 -2
- package/dist/local-agent/index.js +156 -156
- package/dist/local-agent/index.js.map +1 -0
- package/dist/node/adapters/base.js +18 -8
- package/dist/node/adapters/base.js.map +1 -0
- package/dist/node/adapters/discord.js +286 -275
- package/dist/node/adapters/discord.js.map +1 -0
- package/dist/node/adapters/email.js +189 -202
- package/dist/node/adapters/email.js.map +1 -0
- package/dist/node/adapters/imessage.js +145 -142
- package/dist/node/adapters/imessage.js.map +1 -0
- package/dist/node/adapters/slack.js +237 -236
- package/dist/node/adapters/slack.js.map +1 -0
- package/dist/node/adapters/sms.js +149 -151
- package/dist/node/adapters/sms.js.map +1 -0
- package/dist/node/adapters/telegram.js +88 -92
- package/dist/node/adapters/telegram.js.map +1 -0
- package/dist/node/adapters/webchat.js +160 -136
- package/dist/node/adapters/webchat.js.map +1 -0
- package/dist/node/adapters/whatsapp.js +212 -215
- package/dist/node/adapters/whatsapp.js.map +1 -0
- package/dist/node/cli.js +884 -653
- package/dist/node/cli.js.map +1 -0
- package/dist/node/config.js +20 -18
- package/dist/node/config.js.map +1 -0
- package/dist/node/gateway-client.js +191 -181
- package/dist/node/gateway-client.js.map +1 -0
- package/dist/node/portal/clipboard.js +161 -130
- package/dist/node/portal/clipboard.js.map +1 -0
- package/dist/node/portal/discovery.js +51 -45
- package/dist/node/portal/discovery.js.map +1 -0
- package/dist/node/portal/forward.js +64 -58
- package/dist/node/portal/forward.js.map +1 -0
- package/dist/node/portal/index.js +246 -221
- package/dist/node/portal/index.js.map +1 -0
- package/dist/node/portal/multiplexer.js +192 -182
- package/dist/node/portal/multiplexer.js.map +1 -0
- package/dist/node/portal/permissions.js +102 -70
- package/dist/node/portal/permissions.js.map +1 -0
- package/dist/node/portal/protocol.js +153 -116
- package/dist/node/portal/protocol.js.map +1 -0
- package/dist/node/portal/screen.js +80 -69
- package/dist/node/portal/screen.js.map +1 -0
- package/dist/node/portal/session.js +124 -117
- package/dist/node/portal/session.js.map +1 -0
- package/dist/node/portal/shell.js +140 -113
- package/dist/node/portal/shell.js.map +1 -0
- package/dist/node/portal/stream.js +77 -75
- package/dist/node/portal/stream.js.map +1 -0
- package/dist/node/portal/transfer.js +190 -167
- package/dist/node/portal/transfer.js.map +1 -0
- package/dist/node/portal/ui.js +124 -99
- package/dist/node/portal/ui.js.map +1 -0
- package/dist/node/remote-desktop/compile-helper.js +50 -45
- package/dist/node/remote-desktop/compile-helper.js.map +1 -0
- package/dist/node/remote-desktop/index.js +215 -187
- package/dist/node/remote-desktop/index.js.map +1 -0
- package/dist/node/remote-desktop/protocol.js +45 -29
- package/dist/node/remote-desktop/protocol.js.map +1 -0
- package/dist/node/runtime.js +493 -410
- package/dist/node/runtime.js.map +1 -0
- package/dist/server/handlers/__test-utils__/test-db.js +39 -89
- package/dist/server/handlers/__test-utils__/test-db.js.map +1 -0
- package/dist/server/handlers/analytics.js +467 -261
- package/dist/server/handlers/analytics.js.map +1 -0
- package/dist/server/handlers/api-docs.d.ts +6 -0
- package/dist/server/handlers/api-docs.js +1613 -0
- package/dist/server/handlers/api-docs.js.map +1 -0
- package/dist/server/handlers/api-keys.js +295 -232
- package/dist/server/handlers/api-keys.js.map +1 -0
- package/dist/server/handlers/billing.js +330 -239
- package/dist/server/handlers/billing.js.map +1 -0
- package/dist/server/handlers/browser.js +468 -395
- package/dist/server/handlers/browser.js.map +1 -0
- package/dist/server/handlers/catalog.js +1377 -978
- package/dist/server/handlers/catalog.js.map +1 -0
- package/dist/server/handlers/clickhouse.js +157 -109
- package/dist/server/handlers/clickhouse.js.map +1 -0
- package/dist/server/handlers/comms.d.ts +0 -53
- package/dist/server/handlers/comms.js +1443 -970
- package/dist/server/handlers/comms.js.map +1 -0
- package/dist/server/handlers/creations.js +461 -394
- package/dist/server/handlers/creations.js.map +1 -0
- package/dist/server/handlers/crm.js +1082 -791
- package/dist/server/handlers/crm.js.map +1 -0
- package/dist/server/handlers/discovery.js +251 -232
- package/dist/server/handlers/discovery.js.map +1 -0
- package/dist/server/handlers/embeddings.js +241 -164
- package/dist/server/handlers/embeddings.js.map +1 -0
- package/dist/server/handlers/enrichment.js +887 -718
- package/dist/server/handlers/enrichment.js.map +1 -0
- package/dist/server/handlers/image-gen.js +467 -376
- package/dist/server/handlers/image-gen.js.map +1 -0
- package/dist/server/handlers/inventory.js +797 -424
- package/dist/server/handlers/inventory.js.map +1 -0
- package/dist/server/handlers/kali.js +272 -230
- package/dist/server/handlers/kali.js.map +1 -0
- package/dist/server/handlers/llm-providers.js +803 -580
- package/dist/server/handlers/llm-providers.js.map +1 -0
- package/dist/server/handlers/local-agent.js +133 -105
- package/dist/server/handlers/local-agent.js.map +1 -0
- package/dist/server/handlers/media.js +1179 -857
- package/dist/server/handlers/media.js.map +1 -0
- package/dist/server/handlers/meta-ads.js +2669 -2093
- package/dist/server/handlers/meta-ads.js.map +1 -0
- package/dist/server/handlers/nodes.js +1321 -913
- package/dist/server/handlers/nodes.js.map +1 -0
- package/dist/server/handlers/operations.js +183 -157
- package/dist/server/handlers/operations.js.map +1 -0
- package/dist/server/handlers/platform.js +346 -210
- package/dist/server/handlers/platform.js.map +1 -0
- package/dist/server/handlers/remove-bg.js +118 -86
- package/dist/server/handlers/remove-bg.js.map +1 -0
- package/dist/server/handlers/storefront.js +586 -446
- package/dist/server/handlers/storefront.js.map +1 -0
- package/dist/server/handlers/supply-chain.js +546 -326
- package/dist/server/handlers/supply-chain.js.map +1 -0
- package/dist/server/handlers/transcription.js +106 -97
- package/dist/server/handlers/transcription.js.map +1 -0
- package/dist/server/handlers/video-gen.js +593 -424
- package/dist/server/handlers/video-gen.js.map +1 -0
- package/dist/server/handlers/voice.js +1458 -1017
- package/dist/server/handlers/voice.js.map +1 -0
- package/dist/server/handlers/workflow-steps.js +2837 -2116
- package/dist/server/handlers/workflow-steps.js.map +1 -0
- package/dist/server/handlers/workflows.js +1630 -933
- package/dist/server/handlers/workflows.js.map +1 -0
- package/dist/server/index.js +3166 -2390
- package/dist/server/index.js.map +1 -0
- package/dist/server/lib/batch-client.js +471 -409
- package/dist/server/lib/batch-client.js.map +1 -0
- package/dist/server/lib/clickhouse-buffer.js +118 -104
- package/dist/server/lib/clickhouse-buffer.js.map +1 -0
- package/dist/server/lib/clickhouse-client.js +107 -107
- package/dist/server/lib/clickhouse-client.js.map +1 -0
- package/dist/server/lib/coa-renderer.js +1786 -356
- package/dist/server/lib/coa-renderer.js.map +1 -0
- package/dist/server/lib/code-worker-pool.js +227 -177
- package/dist/server/lib/code-worker-pool.js.map +1 -0
- package/dist/server/lib/code-worker.js +174 -164
- package/dist/server/lib/code-worker.js.map +1 -0
- package/dist/server/lib/compaction-service.d.ts +2 -12
- package/dist/server/lib/compaction-service.js +74 -184
- package/dist/server/lib/compaction-service.js.map +1 -0
- package/dist/server/lib/logger.js +36 -24
- package/dist/server/lib/logger.js.map +1 -0
- package/dist/server/lib/otel.js +101 -80
- package/dist/server/lib/otel.js.map +1 -0
- package/dist/server/lib/pdf-renderer.d.ts +1 -1
- package/dist/server/lib/pdf-renderer.js +954 -776
- package/dist/server/lib/pdf-renderer.js.map +1 -0
- package/dist/server/lib/prompt-sanitizer.js +188 -108
- package/dist/server/lib/prompt-sanitizer.js.map +1 -0
- package/dist/server/lib/provider-capabilities.js +136 -138
- package/dist/server/lib/provider-capabilities.js.map +1 -0
- package/dist/server/lib/provider-failover.js +190 -168
- package/dist/server/lib/provider-failover.js.map +1 -0
- package/dist/server/lib/rate-limiter.js +186 -117
- package/dist/server/lib/rate-limiter.js.map +1 -0
- package/dist/server/lib/react-pdf-layout.js +551 -382
- package/dist/server/lib/react-pdf-layout.js.map +1 -0
- package/dist/server/lib/server-agent-loop.d.ts +9 -0
- package/dist/server/lib/server-agent-loop.js +906 -624
- package/dist/server/lib/server-agent-loop.js.map +1 -0
- package/dist/server/lib/server-subagent.d.ts +2 -0
- package/dist/server/lib/server-subagent.js +260 -162
- package/dist/server/lib/server-subagent.js.map +1 -0
- package/dist/server/lib/session-checkpoint.js +105 -96
- package/dist/server/lib/session-checkpoint.js.map +1 -0
- package/dist/server/lib/ssrf-guard.js +193 -184
- package/dist/server/lib/ssrf-guard.js.map +1 -0
- package/dist/server/lib/supabase-client.js +94 -82
- package/dist/server/lib/supabase-client.js.map +1 -0
- package/dist/server/lib/template-resolver.js +154 -176
- package/dist/server/lib/template-resolver.js.map +1 -0
- package/dist/server/lib/utils.js +242 -133
- package/dist/server/lib/utils.js.map +1 -0
- package/dist/server/local-agent-gateway.d.ts +2 -2
- package/dist/server/local-agent-gateway.js +785 -627
- package/dist/server/local-agent-gateway.js.map +1 -0
- package/dist/server/providers/anthropic.js +254 -176
- package/dist/server/providers/anthropic.js.map +1 -0
- package/dist/server/providers/bedrock.js +221 -162
- package/dist/server/providers/bedrock.js.map +1 -0
- package/dist/server/providers/gemini.js +548 -418
- package/dist/server/providers/gemini.js.map +1 -0
- package/dist/server/providers/openai.js +571 -437
- package/dist/server/providers/openai.js.map +1 -0
- package/dist/server/providers/registry.js +23 -18
- package/dist/server/providers/registry.js.map +1 -0
- package/dist/server/providers/shared.js +123 -95
- package/dist/server/providers/shared.js.map +1 -0
- package/dist/server/providers/types.js +1 -11
- package/dist/server/providers/types.js.map +1 -0
- package/dist/server/proxy-handlers.js +209 -165
- package/dist/server/proxy-handlers.js.map +1 -0
- package/dist/server/tool-router.d.ts +13 -0
- package/dist/server/tool-router.js +960 -598
- package/dist/server/tool-router.js.map +1 -0
- package/dist/server/validation.js +248 -188
- package/dist/server/validation.js.map +1 -0
- package/dist/server/worker.js +202 -133
- package/dist/server/worker.js.map +1 -0
- package/dist/setup.d.ts +2 -2
- package/dist/setup.js +151 -147
- package/dist/setup.js.map +1 -0
- package/dist/shared/agent-core.d.ts +191 -24
- package/dist/shared/agent-core.js +971 -462
- package/dist/shared/agent-core.js.map +1 -0
- package/dist/shared/anthropic-types.js +1 -6
- package/dist/shared/anthropic-types.js.map +1 -0
- package/dist/shared/api-client.d.ts +17 -9
- package/dist/shared/api-client.js +419 -327
- package/dist/shared/api-client.js.map +1 -0
- package/dist/shared/compaction.d.ts +36 -0
- package/dist/shared/compaction.js +138 -0
- package/dist/shared/compaction.js.map +1 -0
- package/dist/shared/constants.js +67 -64
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/sse-parser.js +221 -219
- package/dist/shared/sse-parser.js.map +1 -0
- package/dist/shared/tool-dispatch.d.ts +4 -2
- package/dist/shared/tool-dispatch.js +226 -165
- package/dist/shared/tool-dispatch.js.map +1 -0
- package/dist/shared/types.js +1 -6
- package/dist/shared/types.js.map +1 -0
- package/dist/types/cli-highlight.d.js +2 -0
- package/dist/types/cli-highlight.d.js.map +1 -0
- package/dist/types/diff.d.js +2 -0
- package/dist/types/diff.d.js.map +1 -0
- package/dist/types/pdf-parse.d.js +2 -0
- package/dist/types/pdf-parse.d.js.map +1 -0
- package/dist/updater.d.ts +1 -1
- package/dist/updater.js +118 -92
- package/dist/updater.js.map +1 -0
- package/dist/webchat/widget.js +227 -380
- package/dist/webchat/widget.js.map +1 -0
- package/package.json +22 -10
- package/vendor/ink/build/ansi-tokenizer.d.ts +38 -0
- package/vendor/ink/build/ansi-tokenizer.js +316 -0
- package/vendor/ink/build/ansi-tokenizer.js.map +1 -0
- package/vendor/ink/build/apply-styles.js +175 -0
- package/vendor/ink/build/build-layout.js +77 -0
- package/vendor/ink/build/calculate-wrapped-text.js +53 -0
- package/vendor/ink/build/colorize.d.ts +3 -0
- package/vendor/ink/build/colorize.js +48 -0
- package/vendor/ink/build/colorize.js.map +1 -0
- package/vendor/ink/build/components/AccessibilityContext.d.ts +3 -0
- package/vendor/ink/build/components/AccessibilityContext.js +5 -0
- package/vendor/ink/build/components/AccessibilityContext.js.map +1 -0
- package/vendor/ink/build/components/App.d.ts +18 -0
- package/vendor/ink/build/components/App.js +351 -0
- package/vendor/ink/build/components/App.js.map +1 -0
- package/vendor/ink/build/components/AppContext.d.ts +15 -0
- package/vendor/ink/build/components/AppContext.js +11 -0
- package/vendor/ink/build/components/AppContext.js.map +1 -0
- package/vendor/ink/build/components/BackgroundContext.d.ts +4 -0
- package/vendor/ink/build/components/BackgroundContext.js +3 -0
- package/vendor/ink/build/components/BackgroundContext.js.map +1 -0
- package/vendor/ink/build/components/Box.d.ts +117 -0
- package/vendor/ink/build/components/Box.js +34 -0
- package/vendor/ink/build/components/Box.js.map +1 -0
- package/vendor/ink/build/components/Color.js +62 -0
- package/vendor/ink/build/components/Cursor.d.ts +83 -0
- package/vendor/ink/build/components/Cursor.js +53 -0
- package/vendor/ink/build/components/Cursor.js.map +1 -0
- package/vendor/ink/build/components/CursorContext.d.ts +11 -0
- package/vendor/ink/build/components/CursorContext.js +8 -0
- package/vendor/ink/build/components/CursorContext.js.map +1 -0
- package/vendor/ink/build/components/ErrorBoundary.d.ts +18 -0
- package/vendor/ink/build/components/ErrorBoundary.js +23 -0
- package/vendor/ink/build/components/ErrorBoundary.js.map +1 -0
- package/vendor/ink/build/components/ErrorOverview.d.ts +6 -0
- package/vendor/ink/build/components/ErrorOverview.js +84 -0
- package/vendor/ink/build/components/ErrorOverview.js.map +1 -0
- package/vendor/ink/build/components/FocusContext.d.ts +16 -0
- package/vendor/ink/build/components/FocusContext.js +17 -0
- package/vendor/ink/build/components/FocusContext.js.map +1 -0
- package/vendor/ink/build/components/Newline.d.ts +13 -0
- package/vendor/ink/build/components/Newline.js +8 -0
- package/vendor/ink/build/components/Newline.js.map +1 -0
- package/vendor/ink/build/components/Spacer.d.ts +7 -0
- package/vendor/ink/build/components/Spacer.js +11 -0
- package/vendor/ink/build/components/Spacer.js.map +1 -0
- package/vendor/ink/build/components/Static.d.ts +24 -0
- package/vendor/ink/build/components/Static.js +28 -0
- package/vendor/ink/build/components/Static.js.map +1 -0
- package/vendor/ink/build/components/StderrContext.d.ts +15 -0
- package/vendor/ink/build/components/StderrContext.js +13 -0
- package/vendor/ink/build/components/StderrContext.js.map +1 -0
- package/vendor/ink/build/components/StdinContext.d.ts +22 -0
- package/vendor/ink/build/components/StdinContext.js +19 -0
- package/vendor/ink/build/components/StdinContext.js.map +1 -0
- package/vendor/ink/build/components/StdoutContext.d.ts +15 -0
- package/vendor/ink/build/components/StdoutContext.js +13 -0
- package/vendor/ink/build/components/StdoutContext.js.map +1 -0
- package/vendor/ink/build/components/Text.d.ts +55 -0
- package/vendor/ink/build/components/Text.js +50 -0
- package/vendor/ink/build/components/Text.js.map +1 -0
- package/vendor/ink/build/components/Transform.d.ts +16 -0
- package/vendor/ink/build/components/Transform.js +15 -0
- package/vendor/ink/build/components/Transform.js.map +1 -0
- package/vendor/ink/build/cursor-helpers.d.ts +38 -0
- package/vendor/ink/build/cursor-helpers.js +56 -0
- package/vendor/ink/build/cursor-helpers.js.map +1 -0
- package/vendor/ink/build/devtools-window-polyfill.d.ts +1 -0
- package/vendor/ink/build/devtools-window-polyfill.js +65 -0
- package/vendor/ink/build/devtools-window-polyfill.js.map +1 -0
- package/vendor/ink/build/devtools.d.ts +1 -0
- package/vendor/ink/build/devtools.js +11 -0
- package/vendor/ink/build/devtools.js.map +1 -0
- package/vendor/ink/build/dom.d.ts +56 -0
- package/vendor/ink/build/dom.js +124 -0
- package/vendor/ink/build/dom.js.map +1 -0
- package/vendor/ink/build/experimental/apply-style.js +140 -0
- package/vendor/ink/build/experimental/dom.js +123 -0
- package/vendor/ink/build/experimental/output.js +91 -0
- package/vendor/ink/build/experimental/reconciler.js +141 -0
- package/vendor/ink/build/experimental/renderer.js +81 -0
- package/vendor/ink/build/get-max-width.d.ts +3 -0
- package/vendor/ink/build/get-max-width.js +10 -0
- package/vendor/ink/build/get-max-width.js.map +1 -0
- package/vendor/ink/build/hooks/use-app.d.ts +5 -0
- package/vendor/ink/build/hooks/use-app.js +8 -0
- package/vendor/ink/build/hooks/use-app.js.map +1 -0
- package/vendor/ink/build/hooks/use-cursor.d.ts +12 -0
- package/vendor/ink/build/hooks/use-cursor.js +29 -0
- package/vendor/ink/build/hooks/use-cursor.js.map +1 -0
- package/vendor/ink/build/hooks/use-focus-manager.d.ts +28 -0
- package/vendor/ink/build/hooks/use-focus-manager.js +17 -0
- package/vendor/ink/build/hooks/use-focus-manager.js.map +1 -0
- package/vendor/ink/build/hooks/use-focus.d.ts +29 -0
- package/vendor/ink/build/hooks/use-focus.js +42 -0
- package/vendor/ink/build/hooks/use-focus.js.map +1 -0
- package/vendor/ink/build/hooks/use-input.d.ts +131 -0
- package/vendor/ink/build/hooks/use-input.js +124 -0
- package/vendor/ink/build/hooks/use-input.js.map +1 -0
- package/vendor/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
- package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
- package/vendor/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
- package/vendor/ink/build/hooks/use-stderr.d.ts +5 -0
- package/vendor/ink/build/hooks/use-stderr.js +8 -0
- package/vendor/ink/build/hooks/use-stderr.js.map +1 -0
- package/vendor/ink/build/hooks/use-stdin.d.ts +5 -0
- package/vendor/ink/build/hooks/use-stdin.js +8 -0
- package/vendor/ink/build/hooks/use-stdin.js.map +1 -0
- package/vendor/ink/build/hooks/use-stdout.d.ts +5 -0
- package/vendor/ink/build/hooks/use-stdout.js +8 -0
- package/vendor/ink/build/hooks/use-stdout.js.map +1 -0
- package/vendor/ink/build/hooks/useInput.js +38 -0
- package/vendor/ink/build/index.d.ts +34 -0
- package/vendor/ink/build/index.js +20 -0
- package/vendor/ink/build/index.js.map +1 -0
- package/vendor/ink/build/ink.d.ts +90 -0
- package/vendor/ink/build/ink.js +654 -0
- package/vendor/ink/build/ink.js.map +1 -0
- package/vendor/ink/build/input-parser.d.ts +7 -0
- package/vendor/ink/build/input-parser.js +154 -0
- package/vendor/ink/build/input-parser.js.map +1 -0
- package/vendor/ink/build/instance.js +205 -0
- package/vendor/ink/build/instances.d.ts +3 -0
- package/vendor/ink/build/instances.js +8 -0
- package/vendor/ink/build/instances.js.map +1 -0
- package/vendor/ink/build/kitty-keyboard.d.ts +23 -0
- package/vendor/ink/build/kitty-keyboard.js +32 -0
- package/vendor/ink/build/kitty-keyboard.js.map +1 -0
- package/vendor/ink/build/layout.d.ts +7 -0
- package/vendor/ink/build/layout.js +33 -0
- package/vendor/ink/build/layout.js.map +1 -0
- package/vendor/ink/build/log-update.d.ts +19 -0
- package/vendor/ink/build/log-update.js +243 -0
- package/vendor/ink/build/log-update.js.map +1 -0
- package/vendor/ink/build/measure-element.d.ts +16 -0
- package/vendor/ink/build/measure-element.js +9 -0
- package/vendor/ink/build/measure-element.js.map +1 -0
- package/vendor/ink/build/measure-text.d.ts +6 -0
- package/vendor/ink/build/measure-text.js +21 -0
- package/vendor/ink/build/measure-text.js.map +1 -0
- package/vendor/ink/build/options.d.ts +52 -0
- package/vendor/ink/build/options.js +2 -0
- package/vendor/ink/build/options.js.map +1 -0
- package/vendor/ink/build/output.d.ts +35 -0
- package/vendor/ink/build/output.js +183 -0
- package/vendor/ink/build/output.js.map +1 -0
- package/vendor/ink/build/parse-keypress.d.ts +22 -0
- package/vendor/ink/build/parse-keypress.js +493 -0
- package/vendor/ink/build/parse-keypress.js.map +1 -0
- package/vendor/ink/build/reconciler.d.ts +4 -0
- package/vendor/ink/build/reconciler.js +274 -0
- package/vendor/ink/build/reconciler.js.map +1 -0
- package/vendor/ink/build/render-background.d.ts +4 -0
- package/vendor/ink/build/render-background.js +25 -0
- package/vendor/ink/build/render-background.js.map +1 -0
- package/vendor/ink/build/render-border.d.ts +4 -0
- package/vendor/ink/build/render-border.js +73 -0
- package/vendor/ink/build/render-border.js.map +1 -0
- package/vendor/ink/build/render-node-to-output.d.ts +14 -0
- package/vendor/ink/build/render-node-to-output.js +147 -0
- package/vendor/ink/build/render-node-to-output.js.map +1 -0
- package/vendor/ink/build/render-to-string.d.ts +38 -0
- package/vendor/ink/build/render-to-string.js +115 -0
- package/vendor/ink/build/render-to-string.js.map +1 -0
- package/vendor/ink/build/render.d.ts +121 -0
- package/vendor/ink/build/render.js +55 -0
- package/vendor/ink/build/render.js.map +1 -0
- package/vendor/ink/build/renderer.d.ts +8 -0
- package/vendor/ink/build/renderer.js +55 -0
- package/vendor/ink/build/renderer.js.map +1 -0
- package/vendor/ink/build/sanitize-ansi.d.ts +2 -0
- package/vendor/ink/build/sanitize-ansi.js +27 -0
- package/vendor/ink/build/sanitize-ansi.js.map +1 -0
- package/vendor/ink/build/screen-reader-update.d.ts +13 -0
- package/vendor/ink/build/screen-reader-update.js +38 -0
- package/vendor/ink/build/screen-reader-update.js.map +1 -0
- package/vendor/ink/build/squash-text-nodes.d.ts +3 -0
- package/vendor/ink/build/squash-text-nodes.js +36 -0
- package/vendor/ink/build/squash-text-nodes.js.map +1 -0
- package/vendor/ink/build/styles.d.ts +240 -0
- package/vendor/ink/build/styles.js +232 -0
- package/vendor/ink/build/styles.js.map +1 -0
- package/vendor/ink/build/utils.d.ts +2 -0
- package/vendor/ink/build/utils.js +4 -0
- package/vendor/ink/build/utils.js.map +1 -0
- package/vendor/ink/build/wrap-text.d.ts +3 -0
- package/vendor/ink/build/wrap-text.js +31 -0
- package/vendor/ink/build/wrap-text.js.map +1 -0
- package/vendor/ink/build/write-synchronized.d.ts +4 -0
- package/vendor/ink/build/write-synchronized.js +7 -0
- package/vendor/ink/build/write-synchronized.js.map +1 -0
- package/vendor/ink/license +10 -0
- package/vendor/ink/node_modules/@types/node/LICENSE +21 -0
- package/vendor/ink/node_modules/@types/node/README.md +15 -0
- package/vendor/ink/node_modules/@types/node/assert/strict.d.ts +105 -0
- package/vendor/ink/node_modules/@types/node/assert.d.ts +955 -0
- package/vendor/ink/node_modules/@types/node/async_hooks.d.ts +623 -0
- package/vendor/ink/node_modules/@types/node/buffer.buffer.d.ts +466 -0
- package/vendor/ink/node_modules/@types/node/buffer.d.ts +1810 -0
- package/vendor/ink/node_modules/@types/node/child_process.d.ts +1428 -0
- package/vendor/ink/node_modules/@types/node/cluster.d.ts +486 -0
- package/vendor/ink/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
- package/vendor/ink/node_modules/@types/node/console.d.ts +151 -0
- package/vendor/ink/node_modules/@types/node/constants.d.ts +20 -0
- package/vendor/ink/node_modules/@types/node/crypto.d.ts +4065 -0
- package/vendor/ink/node_modules/@types/node/dgram.d.ts +564 -0
- package/vendor/ink/node_modules/@types/node/diagnostics_channel.d.ts +576 -0
- package/vendor/ink/node_modules/@types/node/dns/promises.d.ts +503 -0
- package/vendor/ink/node_modules/@types/node/dns.d.ts +922 -0
- package/vendor/ink/node_modules/@types/node/domain.d.ts +166 -0
- package/vendor/ink/node_modules/@types/node/events.d.ts +1054 -0
- package/vendor/ink/node_modules/@types/node/fs/promises.d.ts +1329 -0
- package/vendor/ink/node_modules/@types/node/fs.d.ts +4676 -0
- package/vendor/ink/node_modules/@types/node/globals.d.ts +150 -0
- package/vendor/ink/node_modules/@types/node/globals.typedarray.d.ts +101 -0
- package/vendor/ink/node_modules/@types/node/http.d.ts +2167 -0
- package/vendor/ink/node_modules/@types/node/http2.d.ts +2480 -0
- package/vendor/ink/node_modules/@types/node/https.d.ts +405 -0
- package/vendor/ink/node_modules/@types/node/index.d.ts +115 -0
- package/vendor/ink/node_modules/@types/node/inspector/promises.d.ts +41 -0
- package/vendor/ink/node_modules/@types/node/inspector.d.ts +224 -0
- package/vendor/ink/node_modules/@types/node/inspector.generated.d.ts +4226 -0
- package/vendor/ink/node_modules/@types/node/module.d.ts +819 -0
- package/vendor/ink/node_modules/@types/node/net.d.ts +933 -0
- package/vendor/ink/node_modules/@types/node/os.d.ts +507 -0
- package/vendor/ink/node_modules/@types/node/package.json +155 -0
- package/vendor/ink/node_modules/@types/node/path/posix.d.ts +8 -0
- package/vendor/ink/node_modules/@types/node/path/win32.d.ts +8 -0
- package/vendor/ink/node_modules/@types/node/path.d.ts +187 -0
- package/vendor/ink/node_modules/@types/node/perf_hooks.d.ts +643 -0
- package/vendor/ink/node_modules/@types/node/process.d.ts +2156 -0
- package/vendor/ink/node_modules/@types/node/punycode.d.ts +117 -0
- package/vendor/ink/node_modules/@types/node/querystring.d.ts +152 -0
- package/vendor/ink/node_modules/@types/node/quic.d.ts +910 -0
- package/vendor/ink/node_modules/@types/node/readline/promises.d.ts +161 -0
- package/vendor/ink/node_modules/@types/node/readline.d.ts +541 -0
- package/vendor/ink/node_modules/@types/node/repl.d.ts +415 -0
- package/vendor/ink/node_modules/@types/node/sea.d.ts +162 -0
- package/vendor/ink/node_modules/@types/node/sqlite.d.ts +955 -0
- package/vendor/ink/node_modules/@types/node/stream/consumers.d.ts +38 -0
- package/vendor/ink/node_modules/@types/node/stream/promises.d.ts +211 -0
- package/vendor/ink/node_modules/@types/node/stream/web.d.ts +296 -0
- package/vendor/ink/node_modules/@types/node/stream.d.ts +1760 -0
- package/vendor/ink/node_modules/@types/node/string_decoder.d.ts +67 -0
- package/vendor/ink/node_modules/@types/node/test/reporters.d.ts +96 -0
- package/vendor/ink/node_modules/@types/node/test.d.ts +2240 -0
- package/vendor/ink/node_modules/@types/node/timers/promises.d.ts +108 -0
- package/vendor/ink/node_modules/@types/node/timers.d.ts +159 -0
- package/vendor/ink/node_modules/@types/node/tls.d.ts +1198 -0
- package/vendor/ink/node_modules/@types/node/trace_events.d.ts +197 -0
- package/vendor/ink/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
- package/vendor/ink/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
- package/vendor/ink/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
- package/vendor/ink/node_modules/@types/node/ts5.6/index.d.ts +117 -0
- package/vendor/ink/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
- package/vendor/ink/node_modules/@types/node/ts5.7/index.d.ts +117 -0
- package/vendor/ink/node_modules/@types/node/tty.d.ts +250 -0
- package/vendor/ink/node_modules/@types/node/url.d.ts +519 -0
- package/vendor/ink/node_modules/@types/node/util/types.d.ts +558 -0
- package/vendor/ink/node_modules/@types/node/util.d.ts +1662 -0
- package/vendor/ink/node_modules/@types/node/v8.d.ts +983 -0
- package/vendor/ink/node_modules/@types/node/vm.d.ts +1208 -0
- package/vendor/ink/node_modules/@types/node/wasi.d.ts +202 -0
- package/vendor/ink/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
- package/vendor/ink/node_modules/@types/node/web-globals/blob.d.ts +23 -0
- package/vendor/ink/node_modules/@types/node/web-globals/console.d.ts +9 -0
- package/vendor/ink/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
- package/vendor/ink/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
- package/vendor/ink/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
- package/vendor/ink/node_modules/@types/node/web-globals/events.d.ts +106 -0
- package/vendor/ink/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
- package/vendor/ink/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
- package/vendor/ink/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
- package/vendor/ink/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
- package/vendor/ink/node_modules/@types/node/web-globals/performance.d.ts +45 -0
- package/vendor/ink/node_modules/@types/node/web-globals/storage.d.ts +24 -0
- package/vendor/ink/node_modules/@types/node/web-globals/streams.d.ts +115 -0
- package/vendor/ink/node_modules/@types/node/web-globals/timers.d.ts +44 -0
- package/vendor/ink/node_modules/@types/node/web-globals/url.d.ts +24 -0
- package/vendor/ink/node_modules/@types/node/worker_threads.d.ts +717 -0
- package/vendor/ink/node_modules/@types/node/zlib.d.ts +618 -0
- package/vendor/ink/node_modules/node-pty/LICENSE +69 -0
- package/vendor/ink/node_modules/node-pty/README.md +164 -0
- package/vendor/ink/node_modules/node-pty/binding.gyp +150 -0
- package/vendor/ink/node_modules/node-pty/lib/conpty_console_list_agent.js +25 -0
- package/vendor/ink/node_modules/node-pty/lib/eventEmitter2.js +47 -0
- package/vendor/ink/node_modules/node-pty/lib/index.js +52 -0
- package/vendor/ink/node_modules/node-pty/lib/interfaces.js +7 -0
- package/vendor/ink/node_modules/node-pty/lib/shared/conout.js +11 -0
- package/vendor/ink/node_modules/node-pty/lib/terminal.js +190 -0
- package/vendor/ink/node_modules/node-pty/lib/types.js +7 -0
- package/vendor/ink/node_modules/node-pty/lib/unixTerminal.js +349 -0
- package/vendor/ink/node_modules/node-pty/lib/utils.js +39 -0
- package/vendor/ink/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
- package/vendor/ink/node_modules/node-pty/lib/windowsPtyAgent.js +287 -0
- package/vendor/ink/node_modules/node-pty/lib/windowsTerminal.js +201 -0
- package/vendor/ink/node_modules/node-pty/lib/worker/conoutSocketWorker.js +22 -0
- package/vendor/ink/node_modules/node-pty/package.json +65 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/linux-arm64/pty.node +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/linux-x64/pty.node +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/vendor/ink/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
- package/vendor/ink/node_modules/node-pty/scripts/post-install.js +76 -0
- package/vendor/ink/node_modules/node-pty/scripts/prebuild.js +34 -0
- package/vendor/ink/node_modules/node-pty/src/unix/pty.cc +875 -0
- package/vendor/ink/node_modules/node-pty/src/unix/spawn-helper.cc +23 -0
- package/vendor/ink/node_modules/node-pty/src/win/conpty.cc +582 -0
- package/vendor/ink/node_modules/node-pty/src/win/conpty.h +41 -0
- package/vendor/ink/node_modules/node-pty/src/win/conpty_console_list.cc +44 -0
- package/vendor/ink/node_modules/node-pty/src/win/path_util.cc +95 -0
- package/vendor/ink/node_modules/node-pty/src/win/path_util.h +26 -0
- package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/OpenConsole.exe +0 -0
- package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/conpty.dll +0 -0
- package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/OpenConsole.exe +0 -0
- package/vendor/ink/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/conpty.dll +0 -0
- package/vendor/ink/node_modules/node-pty/typings/node-pty.d.ts +215 -0
- package/vendor/ink/node_modules/undici-types/LICENSE +21 -0
- package/vendor/ink/node_modules/undici-types/README.md +6 -0
- package/vendor/ink/node_modules/undici-types/agent.d.ts +32 -0
- package/vendor/ink/node_modules/undici-types/api.d.ts +43 -0
- package/vendor/ink/node_modules/undici-types/balanced-pool.d.ts +30 -0
- package/vendor/ink/node_modules/undici-types/cache-interceptor.d.ts +173 -0
- package/vendor/ink/node_modules/undici-types/cache.d.ts +36 -0
- package/vendor/ink/node_modules/undici-types/client-stats.d.ts +15 -0
- package/vendor/ink/node_modules/undici-types/client.d.ts +108 -0
- package/vendor/ink/node_modules/undici-types/connector.d.ts +34 -0
- package/vendor/ink/node_modules/undici-types/content-type.d.ts +21 -0
- package/vendor/ink/node_modules/undici-types/cookies.d.ts +30 -0
- package/vendor/ink/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
- package/vendor/ink/node_modules/undici-types/dispatcher.d.ts +276 -0
- package/vendor/ink/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
- package/vendor/ink/node_modules/undici-types/errors.d.ts +161 -0
- package/vendor/ink/node_modules/undici-types/eventsource.d.ts +66 -0
- package/vendor/ink/node_modules/undici-types/fetch.d.ts +211 -0
- package/vendor/ink/node_modules/undici-types/formdata.d.ts +108 -0
- package/vendor/ink/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/vendor/ink/node_modules/undici-types/global-origin.d.ts +7 -0
- package/vendor/ink/node_modules/undici-types/h2c-client.d.ts +73 -0
- package/vendor/ink/node_modules/undici-types/handlers.d.ts +15 -0
- package/vendor/ink/node_modules/undici-types/header.d.ts +160 -0
- package/vendor/ink/node_modules/undici-types/index.d.ts +88 -0
- package/vendor/ink/node_modules/undici-types/interceptors.d.ts +73 -0
- package/vendor/ink/node_modules/undici-types/mock-agent.d.ts +68 -0
- package/vendor/ink/node_modules/undici-types/mock-call-history.d.ts +111 -0
- package/vendor/ink/node_modules/undici-types/mock-client.d.ts +27 -0
- package/vendor/ink/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/vendor/ink/node_modules/undici-types/mock-interceptor.d.ts +94 -0
- package/vendor/ink/node_modules/undici-types/mock-pool.d.ts +27 -0
- package/vendor/ink/node_modules/undici-types/package.json +55 -0
- package/vendor/ink/node_modules/undici-types/patch.d.ts +29 -0
- package/vendor/ink/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/vendor/ink/node_modules/undici-types/pool.d.ts +41 -0
- package/vendor/ink/node_modules/undici-types/proxy-agent.d.ts +29 -0
- package/vendor/ink/node_modules/undici-types/readable.d.ts +68 -0
- package/vendor/ink/node_modules/undici-types/retry-agent.d.ts +8 -0
- package/vendor/ink/node_modules/undici-types/retry-handler.d.ts +125 -0
- package/vendor/ink/node_modules/undici-types/round-robin-pool.d.ts +41 -0
- package/vendor/ink/node_modules/undici-types/snapshot-agent.d.ts +109 -0
- package/vendor/ink/node_modules/undici-types/util.d.ts +18 -0
- package/vendor/ink/node_modules/undici-types/utility.d.ts +7 -0
- package/vendor/ink/node_modules/undici-types/webidl.d.ts +341 -0
- package/vendor/ink/node_modules/undici-types/websocket.d.ts +186 -0
- package/vendor/ink/package.json +201 -0
- package/vendor/ink/readme.md +2636 -0
- package/bin/swag-agent.js +0 -9
- package/dist/server/lib/pg-rate-limiter.d.ts +0 -21
- package/dist/server/lib/pg-rate-limiter.js +0 -86
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-lead.js","names":["EventEmitter","createTeam","loadTeam","saveTeam","addTeammate","addTask","getTeamProgress","setTeamStatus","sendMessage","getUnreadMessages","markMessagesRead","failTask","updateTeammate","spawnTeammate","logSpan","generateTraceId","generateSpanId","getConversationId","PKG_VERSION","resolveConfig","getGlobalEmitter","AGENT_DEFAULTS","loadCLIAgentConfig","MODELS","getModelShortName","decomposeTask","sanitizePrompts","loadServerToolDefinitions","TEAM_TIMEOUT_MS","teamTimeoutMs","WORKER_STALL_MS","workerStallMs","TEAM_REVIEW_MAX_TOKENS","teamReviewMaxTokens","TeamLead","teamId","workers","Map","lastMessageTime","teamTimer","stallInterval","resolveTeam","startTime","constructor","traceId","spanId","generateTeammateNames","tasks","count","roles","names","usedRoles","Set","i","length","desc","description","toLowerCase","role","includes","has","suffix","add","push","config","Date","now","team","name","id","emit","emitter","emitTeamStart","teammateCount","action","durationMs","context","conversationId","source","serviceName","serviceVersion","storeId","undefined","details","is_team","is_team_coordinator","team_id","team_name","teammate_count","task_count","model","display_name","display_icon","display_color","taskIdMap","taskConfig","task","files","set","taskId","freshTeam","dependencies","find","t","map","dep","get","filter","Boolean","teammateNames","status","teammateId","runTeam","Error","dbAgent","context_config","cc","team_timeout_ms","worker_stall_ms","team_review_max_tokens","cwd","process","teammates","preloadedConfig","preloadedServerTools","Promise","all","catch","parentConversationId","spawned","teammate","child","on","msg","handleTeammateMessage","err","error","message","handleTeammateFailure","code","signal","delete","checkCompletion","resolve","cleanup","clearTimeout","clearInterval","forceComplete","reason","kill","clear","buildResult","resetTeamTimer","setTimeout","size","setInterval","lastMsg","teammateName","type","content","emitTeamProgress","emitTeamTask","tokensUsed","errorMessage","inProgressTask","assignedTo","currentTask","success","summary","taskResults","input","output","progress","totalIn","totalOut","result","blocked","completed","total","parentSpanId","inputTokens","outputTokens","tasks_total","tasks_completed","tasks_failed","percent_complete","percentComplete","emitTeamDone","sendToTeammate","broadcast","getMessages","messages","m","from","getProgress","stop","runAgentTeam","lead","aborted","addEventListener","once","runAutoTeam","opts","maxTeammates","workingDirectory","shouldReview","review","decomposition","maxCells","warnings","sub_tasks","console","warn","join","st","extractFiles","prompt","embedded","preReadFiles","slice","reviewResults","matches","match","trim","MAX_FILE_PREVIEW_CHARS","MAX_TOTAL_EMBED_CHARS","readFileSync","statSync","sections","totalChars","file","fullPath","startsWith","stat","isFile","preview","truncated","originalTask","getValidToken","getProxyUrl","callServerProxy","buildAPIRequest","parseSSEStream","collectStreamResult","token","taskSummaries","apiConfig","HAIKU","contextProfile","stream","proxyUrl","system","text","tools","timeoutMs","collected"],"sources":["../../../src/cli/services/team-lead.ts"],"sourcesContent":["/**\n * Team Lead — Coordinator for Agent Teams\n *\n * Following Anthropic's official patterns:\n * - Spawns and manages teammates\n * - Creates and assigns tasks\n * - Monitors progress\n * - Synthesizes results\n */\n\nimport type { ChildProcess } from \"child_process\";\nimport { EventEmitter } from \"events\";\nimport {\n createTeam,\n loadTeam,\n saveTeam,\n addTeammate,\n addTask,\n getTeamProgress,\n setTeamStatus,\n sendMessage,\n getUnreadMessages,\n markMessagesRead,\n failTask,\n updateTeammate,\n} from \"./team-state.js\";\nimport { spawnTeammate, TeammateMessage } from \"./teammate.js\";\nimport { logSpan, generateTraceId, generateSpanId, getConversationId, PKG_VERSION } from \"./telemetry.js\";\nimport { resolveConfig } from \"./config-store.js\";\nimport { getGlobalEmitter } from \"./agent-events.js\";\nimport { AGENT_DEFAULTS } from \"../../shared/agent-core.js\";\nimport { loadCLIAgentConfig } from \"./agent-config.js\";\nimport { MODELS } from \"../../shared/constants.js\";\nimport { getModelShortName } from \"./agent-loop.js\";\nimport { decomposeTask, sanitizePrompts } from \"./task-decomposer.js\";\n\nimport { loadServerToolDefinitions } from \"./server-tools.js\";\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport interface TeamConfig {\n name: string;\n teammateCount: number;\n model?: \"sonnet\" | \"opus\" | \"haiku\";\n tasks: Array<{\n description: string;\n model?: string; // Per-task model override (e.g. \"haiku\", \"sonnet\", \"opus\")\n files?: string[];\n dependencies?: string[]; // Task descriptions (matched to IDs after creation)\n }>;\n // Optional teammate names/roles - if not provided, names are generated from tasks\n teammateNames?: string[];\n}\n\nexport interface TeamResult {\n success: boolean;\n teamId: string;\n summary: string;\n taskResults: Array<{\n description: string;\n result: string;\n status: \"completed\" | \"failed\";\n }>;\n tokensUsed: { input: number; output: number };\n durationMs: number;\n}\n\n// ============================================================================\n// TEAM LEAD CLASS\n// ============================================================================\n\nlet TEAM_TIMEOUT_MS: number = AGENT_DEFAULTS.teamTimeoutMs;\nlet WORKER_STALL_MS: number = AGENT_DEFAULTS.workerStallMs;\nlet TEAM_REVIEW_MAX_TOKENS: number = AGENT_DEFAULTS.teamReviewMaxTokens;\n\nexport class TeamLead extends EventEmitter {\n private teamId: string | null = null;\n private workers: Map<string, ChildProcess> = new Map();\n private lastMessageTime: Map<string, number> = new Map();\n private teamTimer: ReturnType<typeof setTimeout> | null = null;\n private stallInterval: ReturnType<typeof setInterval> | null = null;\n private resolveTeam: ((result: TeamResult) => void) | null = null;\n private traceId: string;\n private spanId: string;\n private startTime: number = 0;\n\n constructor() {\n super();\n this.traceId = generateTraceId();\n this.spanId = generateSpanId();\n }\n\n /**\n * Generate meaningful teammate names from task descriptions\n * Extracts key action words to create role-based names\n */\n private generateTeammateNames(tasks: TeamConfig[\"tasks\"], count: number): string[] {\n const roles = [\n \"Researcher\", \"Analyst\", \"Writer\", \"Reviewer\",\n \"Coordinator\", \"Specialist\", \"Explorer\", \"Synthesizer\"\n ];\n\n // Extract keywords from task descriptions\n const names: string[] = [];\n const usedRoles = new Set<string>();\n\n for (let i = 0; i < count; i++) {\n if (i < tasks.length) {\n const desc = tasks[i].description.toLowerCase();\n\n // Match task keywords to roles\n let role: string;\n if (desc.includes(\"research\") || desc.includes(\"search\") || desc.includes(\"find\")) {\n role = \"Researcher\";\n } else if (desc.includes(\"analyze\") || desc.includes(\"analysis\") || desc.includes(\"review\")) {\n role = \"Analyst\";\n } else if (desc.includes(\"write\") || desc.includes(\"create\") || desc.includes(\"draft\")) {\n role = \"Writer\";\n } else if (desc.includes(\"compile\") || desc.includes(\"combine\") || desc.includes(\"synthesize\")) {\n role = \"Synthesizer\";\n } else if (desc.includes(\"explore\") || desc.includes(\"investigate\")) {\n role = \"Explorer\";\n } else {\n // Use a generic role\n role = roles[i % roles.length];\n }\n\n // Avoid duplicate names by adding number if needed\n if (usedRoles.has(role)) {\n let suffix = 2;\n while (usedRoles.has(`${role} ${suffix}`)) suffix++;\n role = `${role} ${suffix}`;\n }\n usedRoles.add(role);\n names.push(role);\n } else {\n // More teammates than tasks - use generic names\n names.push(roles[i % roles.length]);\n }\n }\n\n return names;\n }\n\n // ============================================================================\n // TEAM CREATION\n // ============================================================================\n\n async createTeam(config: TeamConfig): Promise<string> {\n this.startTime = Date.now();\n\n // Create team\n const team = createTeam(config.name, \"lead\");\n this.teamId = team.id;\n\n this.emit(\"team_created\", { teamId: team.id, name: config.name });\n\n // Emit to global emitter for UI\n const emitter = getGlobalEmitter();\n emitter.emitTeamStart(team.id, config.name, config.teammateCount, config.tasks.length);\n\n // Log team creation\n logSpan({\n action: \"team.create\",\n durationMs: 0,\n context: {\n traceId: this.traceId,\n spanId: this.spanId,\n conversationId: getConversationId(),\n source: \"claude_code\",\n serviceName: \"whale-cli\",\n serviceVersion: PKG_VERSION,\n },\n storeId: resolveConfig().storeId || undefined,\n details: {\n // Team identification (for blackops detection)\n is_team: true,\n is_team_coordinator: true,\n team_id: team.id,\n team_name: config.name,\n teammate_count: config.teammateCount,\n task_count: config.tasks.length,\n model: config.model || getModelShortName(),\n // Display metadata\n display_name: `Team: ${config.name}`,\n display_icon: \"person.3.fill\",\n display_color: \"#10B981\",\n },\n });\n\n // Create tasks\n const taskIdMap = new Map<string, string>(); // description -> id\n for (const taskConfig of config.tasks) {\n const task = await addTask(team.id, {\n description: taskConfig.description,\n files: taskConfig.files,\n model: taskConfig.model,\n });\n\n if (task) {\n taskIdMap.set(taskConfig.description, task.id);\n this.emit(\"task_created\", { taskId: task.id, description: taskConfig.description });\n }\n }\n\n // Set up dependencies (now that we have IDs)\n const freshTeam = loadTeam(team.id)!;\n for (const taskConfig of config.tasks) {\n if (taskConfig.dependencies?.length) {\n const task = freshTeam.tasks.find(t => t.description === taskConfig.description);\n if (task) {\n task.dependencies = taskConfig.dependencies\n .map(dep => taskIdMap.get(dep))\n .filter(Boolean) as string[];\n }\n }\n }\n saveTeam(freshTeam);\n\n // Create teammates with meaningful names\n const model = config.model || getModelShortName();\n\n // Generate teammate names from tasks if not provided\n const teammateNames = config.teammateNames || this.generateTeammateNames(config.tasks, config.teammateCount);\n\n for (let i = 0; i < config.teammateCount; i++) {\n const name = teammateNames[i] || `Agent ${i + 1}`;\n const id = `teammate-${i + 1}-${Date.now()}`;\n\n await addTeammate(team.id, {\n id,\n name,\n model,\n status: \"idle\",\n });\n\n this.emit(\"teammate_created\", { teammateId: id, name });\n }\n\n return team.id;\n }\n\n // ============================================================================\n // TEAM EXECUTION\n // ============================================================================\n\n async runTeam(): Promise<TeamResult> {\n if (!this.teamId) {\n throw new Error(\"No team created. Call createTeam first.\");\n }\n\n // Resolve config from DB (single source of truth) before starting\n const dbAgent = await loadCLIAgentConfig();\n if (dbAgent?.context_config) {\n const cc = dbAgent.context_config;\n TEAM_TIMEOUT_MS = cc.team_timeout_ms ?? TEAM_TIMEOUT_MS;\n WORKER_STALL_MS = cc.worker_stall_ms ?? WORKER_STALL_MS;\n TEAM_REVIEW_MAX_TOKENS = cc.team_review_max_tokens ?? TEAM_REVIEW_MAX_TOKENS;\n }\n\n const team = loadTeam(this.teamId)!;\n const cwd = process.cwd();\n\n this.emit(\"team_started\", { teamId: this.teamId, teammateCount: team.teammates.length });\n\n // Pre-load config and server tools ONCE — avoids N redundant DB/API calls from children.\n // This is the main optimization for team launch speed (was 2-3 min, now seconds).\n const [preloadedConfig, preloadedServerTools] = await Promise.all([\n loadCLIAgentConfig(),\n loadServerToolDefinitions().catch(() => [] as any[]),\n ]);\n\n // Spawn ALL child processes in parallel (fork is fast, sequential await was wasteful)\n const parentConversationId = getConversationId();\n const spawned = await Promise.all(\n team.teammates.map(async (teammate) => ({\n teammate,\n child: await spawnTeammate(\n this.teamId!,\n teammate.id,\n teammate.name,\n teammate.model,\n cwd,\n parentConversationId,\n team.name,\n preloadedConfig,\n preloadedServerTools,\n ),\n })),\n );\n\n // Wire up IPC handlers after all processes are spawned\n for (const { teammate, child } of spawned) {\n this.lastMessageTime.set(teammate.id, Date.now());\n\n // Handle messages from child process via IPC\n child.on(\"message\", (msg: TeammateMessage) => {\n this.lastMessageTime.set(msg.teammateId, Date.now());\n this.handleTeammateMessage(msg);\n });\n\n child.on(\"error\", (err) => {\n this.emit(\"teammate_error\", { teammateId: teammate.id, error: err.message });\n // Fail any in-progress task when child crashes\n this.handleTeammateFailure(teammate.id, err.message);\n });\n\n child.on(\"exit\", (code, signal) => {\n if (code !== 0 && code !== null) {\n this.emit(\"teammate_exit\", { teammateId: teammate.id, code });\n // Fail any in-progress task on non-zero exit\n this.handleTeammateFailure(teammate.id, `Process exited with code ${code}`);\n } else if (signal) {\n this.emit(\"teammate_exit\", { teammateId: teammate.id, signal });\n this.handleTeammateFailure(teammate.id, `Process killed by signal ${signal}`);\n }\n this.workers.delete(teammate.id);\n this.checkCompletion();\n });\n\n this.workers.set(teammate.id, child);\n }\n\n // Wait for all workers to complete — with adaptive timeout and stall detection\n return new Promise((resolve) => {\n this.resolveTeam = resolve;\n\n const cleanup = () => {\n if (this.teamTimer) { clearTimeout(this.teamTimer); this.teamTimer = null; }\n if (this.stallInterval) { clearInterval(this.stallInterval); this.stallInterval = null; }\n };\n\n const forceComplete = (reason: string) => {\n cleanup();\n this.resolveTeam = null; // Prevent double-resolve from checkCompletion\n // Kill all remaining child processes\n for (const [id, child] of this.workers) {\n this.emit(\"teammate_timeout\", { teammateId: id, reason });\n this.handleTeammateFailure(id, `Terminated: ${reason}`);\n child.kill();\n }\n this.workers.clear();\n if (this.teamId) setTeamStatus(this.teamId, \"completed\");\n resolve(this.buildResult());\n };\n\n // No global team timeout (Claude Code parity) — teams run until done.\n // Per-worker stall detection (below) is the safety guard for hung processes.\n // TEAM_TIMEOUT_MS > 0 enables optional adaptive timeout for server/workflow paths.\n if (TEAM_TIMEOUT_MS > 0) {\n const resetTeamTimer = () => {\n if (this.teamTimer) clearTimeout(this.teamTimer);\n this.teamTimer = setTimeout(() => {\n if (this.workers.size > 0) {\n forceComplete(`Team timeout (no progress for ${TEAM_TIMEOUT_MS / 1000}s)`);\n }\n }, TEAM_TIMEOUT_MS);\n };\n this.on(\"teammate_progress\", () => resetTeamTimer());\n this.on(\"task_started\", () => resetTeamTimer());\n this.on(\"task_completed\", () => resetTeamTimer());\n resetTeamTimer();\n }\n\n // Stall detection — check every 5s for stalled workers (was 15s, added up to 195s worst-case detection)\n this.stallInterval = setInterval(() => {\n if (this.workers.size === 0) {\n cleanup();\n return;\n }\n\n const now = Date.now();\n for (const [id, child] of this.workers) {\n const lastMsg = this.lastMessageTime.get(id) || 0;\n if (now - lastMsg > WORKER_STALL_MS) {\n this.emit(\"teammate_timeout\", { teammateId: id, reason: \"stall\" });\n this.handleTeammateFailure(id, `Process stalled (no messages for ${WORKER_STALL_MS / 1000}s)`);\n child.kill();\n this.workers.delete(id);\n }\n }\n }, 5_000);\n });\n }\n\n // ============================================================================\n // MESSAGE HANDLING\n // ============================================================================\n\n private handleTeammateMessage(msg: TeammateMessage): void {\n const emitter = getGlobalEmitter();\n const team = this.teamId ? loadTeam(this.teamId) : null;\n const teammate = team?.teammates.find(t => t.id === msg.teammateId);\n const teammateName = teammate?.name || msg.teammateId;\n\n switch (msg.type) {\n case \"progress\":\n this.emit(\"teammate_progress\", {\n teammateId: msg.teammateId,\n taskId: msg.taskId,\n content: msg.content,\n });\n // Emit to global emitter for UI\n if (this.teamId) {\n emitter.emitTeamProgress(this.teamId, msg.teammateId, teammateName, msg.content, msg.taskId);\n }\n break;\n\n case \"task_started\":\n this.emit(\"task_started\", {\n teammateId: msg.teammateId,\n taskId: msg.taskId,\n content: msg.content,\n });\n // Emit to global emitter for UI\n if (this.teamId && msg.taskId) {\n emitter.emitTeamTask(this.teamId, msg.teammateId, msg.taskId, msg.content, \"started\");\n }\n break;\n\n case \"task_completed\":\n this.emit(\"task_completed\", {\n teammateId: msg.teammateId,\n taskId: msg.taskId,\n content: msg.content,\n });\n // Emit to global emitter for UI\n if (this.teamId && msg.taskId) {\n emitter.emitTeamTask(this.teamId, msg.teammateId, msg.taskId, msg.content, \"completed\", msg.content);\n }\n break;\n\n case \"message_sent\":\n this.emit(\"message_sent\", {\n teammateId: msg.teammateId,\n content: msg.content,\n });\n break;\n\n case \"done\": {\n this.emit(\"teammate_done\", {\n teammateId: msg.teammateId,\n content: msg.content,\n tokensUsed: msg.tokensUsed,\n });\n // Emit UI event so TeamPanel shows \"done\" (overrides any prior \"failed\" from task errors)\n const teammateName = this.teamId\n ? loadTeam(this.teamId)?.teammates.find(t => t.id === msg.teammateId)?.name\n : undefined;\n emitter.emitTeamProgress(this.teamId!, msg.teammateId, teammateName || msg.teammateId, \"done\");\n break;\n }\n\n case \"error\":\n this.emit(\"teammate_error\", {\n teammateId: msg.teammateId,\n content: msg.content,\n });\n // Fail any in-progress task when teammate reports error\n this.handleTeammateFailure(msg.teammateId, msg.content);\n break;\n }\n }\n\n // ============================================================================\n // FAILURE HANDLING\n // ============================================================================\n\n private async handleTeammateFailure(teammateId: string, errorMessage: string): Promise<void> {\n if (!this.teamId) return;\n\n const team = loadTeam(this.teamId);\n if (!team) return;\n\n const teammate = team.teammates.find(t => t.id === teammateId);\n if (!teammate) return;\n\n // Find and fail the task this teammate was working on\n const inProgressTask = team.tasks.find(\n t => t.status === \"in_progress\" && t.assignedTo === teammateId\n );\n\n if (inProgressTask) {\n await failTask(this.teamId, inProgressTask.id, errorMessage);\n this.emit(\"task_failed\", {\n teammateId,\n taskId: inProgressTask.id,\n error: errorMessage,\n });\n\n // Emit to global emitter for UI\n const emitter = getGlobalEmitter();\n emitter.emitTeamTask(\n this.teamId,\n teammateId,\n inProgressTask.id,\n inProgressTask.description,\n \"failed\",\n errorMessage\n );\n }\n\n // Update teammate status (use \"done\" since \"error\" isn't a valid status)\n await updateTeammate(this.teamId, teammateId, {\n status: \"done\",\n currentTask: undefined,\n });\n }\n\n // ============================================================================\n // COMPLETION\n // ============================================================================\n\n private checkCompletion(): void {\n if (this.workers.size === 0 && this.teamId) {\n // Clean up timers\n if (this.teamTimer) { clearTimeout(this.teamTimer); this.teamTimer = null; }\n if (this.stallInterval) { clearInterval(this.stallInterval); this.stallInterval = null; }\n setTeamStatus(this.teamId, \"completed\");\n this.emit(\"team_completed\", { teamId: this.teamId });\n // Resolve the runTeam() promise\n if (this.resolveTeam) {\n this.resolveTeam(this.buildResult());\n this.resolveTeam = null;\n }\n }\n }\n\n private buildResult(): TeamResult {\n if (!this.teamId) {\n return {\n success: false,\n teamId: \"\",\n summary: \"No team created\",\n taskResults: [],\n tokensUsed: { input: 0, output: 0 },\n durationMs: Date.now() - this.startTime,\n };\n }\n\n const team = loadTeam(this.teamId)!;\n const progress = getTeamProgress(team);\n\n // Calculate total tokens\n let totalIn = 0;\n let totalOut = 0;\n for (const teammate of team.teammates) {\n totalIn += teammate.tokensUsed.input;\n totalOut += teammate.tokensUsed.output;\n }\n\n // Build task results\n const taskResults = team.tasks.map(t => ({\n description: t.description,\n result: t.result || t.error || \"Not completed\",\n status: t.status === \"completed\" ? \"completed\" as const : \"failed\" as const,\n }));\n\n const durationMs = Date.now() - this.startTime;\n const success = progress.blocked === 0 && progress.completed === progress.total;\n\n // Log team completion\n logSpan({\n action: \"team.complete\",\n durationMs,\n context: {\n traceId: this.traceId,\n spanId: generateSpanId(),\n parentSpanId: this.spanId,\n source: \"claude_code\",\n serviceName: \"whale-cli\",\n serviceVersion: PKG_VERSION,\n inputTokens: totalIn,\n outputTokens: totalOut,\n },\n storeId: resolveConfig().storeId || undefined,\n details: {\n // Team identification (for blackops detection)\n is_team: true,\n is_team_coordinator: true,\n team_id: this.teamId,\n team_name: team.name,\n // Metrics\n tasks_total: progress.total,\n tasks_completed: progress.completed,\n tasks_failed: progress.blocked,\n teammates: team.teammates.length,\n percent_complete: progress.percentComplete,\n // Display metadata\n display_name: `Team Complete: ${team.name}`,\n display_icon: \"checkmark.circle.fill\",\n display_color: success ? \"#10B981\" : \"#EF4444\",\n },\n });\n\n // Emit team done to global emitter for UI\n const emitter = getGlobalEmitter();\n emitter.emitTeamDone(\n this.teamId,\n success,\n `${progress.completed}/${progress.total} tasks completed`,\n progress.completed,\n progress.total,\n { input: totalIn, output: totalOut },\n durationMs\n );\n\n return {\n success,\n teamId: this.teamId,\n summary: `${progress.completed}/${progress.total} tasks completed (${progress.percentComplete}%)`,\n taskResults,\n tokensUsed: { input: totalIn, output: totalOut },\n durationMs,\n };\n }\n\n // ============================================================================\n // CONTROL METHODS\n // ============================================================================\n\n async sendToTeammate(teammateId: string, message: string): Promise<boolean> {\n if (!this.teamId) return false;\n const result = await sendMessage(this.teamId, \"lead\", teammateId, message);\n return !!result;\n }\n\n async broadcast(message: string): Promise<boolean> {\n if (!this.teamId) return false;\n const result = await sendMessage(this.teamId, \"lead\", \"all\", message);\n return !!result;\n }\n\n async getMessages(): Promise<Array<{ from: string; content: string }>> {\n if (!this.teamId) return [];\n const messages = await getUnreadMessages(this.teamId, \"lead\");\n if (messages.length > 0) {\n await markMessagesRead(this.teamId, messages.map(m => m.id));\n }\n return messages.map(m => ({ from: m.from, content: m.content }));\n }\n\n getProgress(): { total: number; completed: number; percentComplete: number } | null {\n if (!this.teamId) return null;\n const team = loadTeam(this.teamId);\n if (!team) return null;\n return getTeamProgress(team);\n }\n\n stop(): void {\n // Kill all child processes\n for (const [id, child] of this.workers) {\n child.kill();\n this.emit(\"teammate_stopped\", { teammateId: id });\n }\n this.workers.clear();\n\n if (this.teamId) {\n setTeamStatus(this.teamId, \"failed\");\n }\n\n // Clean up timers\n if (this.teamTimer) { clearTimeout(this.teamTimer); this.teamTimer = null; }\n if (this.stallInterval) { clearInterval(this.stallInterval); this.stallInterval = null; }\n\n // Resolve the runTeam() promise to prevent hang\n if (this.resolveTeam) {\n this.resolveTeam(this.buildResult());\n this.resolveTeam = null;\n }\n }\n}\n\n// ============================================================================\n// CONVENIENCE FUNCTION\n// ============================================================================\n\nexport async function runAgentTeam(config: TeamConfig, signal?: AbortSignal): Promise<TeamResult> {\n const lead = new TeamLead();\n // Events are handled via global emitter -> ChatApp UI\n // No stderr writes here to avoid interfering with Ink rendering\n await lead.createTeam(config);\n\n // Wire signal to stop the team on abort (ESC)\n if (signal) {\n if (signal.aborted) {\n lead.stop();\n return lead[\"buildResult\"]();\n }\n signal.addEventListener(\"abort\", () => lead.stop(), { once: true });\n }\n\n return lead.runTeam();\n}\n\n// ============================================================================\n// AUTO-DECOMPOSE + REVIEW\n// ============================================================================\n\nexport interface AutoTeamOptions {\n maxTeammates?: number; // default 4\n model?: \"sonnet\" | \"opus\" | \"haiku\";\n workingDirectory?: string;\n review?: boolean; // default true — run a review pass after completion\n signal?: AbortSignal; // AbortSignal for cancellation (ESC)\n}\n\n/**\n * Auto-decompose a task into sub-tasks and run them as a team.\n *\n * Uses Claude (haiku) to break the task into parallel sub-tasks with\n * file ownership, then spawns a team to execute them. Optionally runs\n * a lightweight review pass to summarize results and flag issues.\n */\nexport async function runAutoTeam(\n task: string,\n opts: AutoTeamOptions = {},\n): Promise<TeamResult & { review?: string; warnings?: string[] }> {\n const maxTeammates = opts.maxTeammates ?? 4;\n const model = opts.model || \"sonnet\";\n const workingDirectory = opts.workingDirectory || process.cwd();\n const shouldReview = opts.review !== false;\n\n // 1. Decompose\n const decomposition = await decomposeTask(task, {\n maxCells: maxTeammates,\n workingDirectory,\n });\n\n // 2. Sanitize prompts\n const warnings = sanitizePrompts(decomposition.sub_tasks);\n if (warnings.length > 0) {\n console.warn(`[team] Sanitization warnings:\\n${warnings.join(\"\\n\")}`);\n }\n\n // 3. Map sub-tasks to TeamConfig (pre-embed reference file content)\n const tasks = await Promise.all(decomposition.sub_tasks.map(async (st) => {\n const files = extractFiles(st.prompt);\n const embedded = await preReadFiles(files, workingDirectory);\n return {\n description: st.prompt + embedded,\n files,\n };\n }));\n\n const config: TeamConfig = {\n name: decomposition.summary.slice(0, 60) || \"Auto Team\",\n teammateCount: tasks.length,\n model,\n tasks,\n };\n\n // 4. Run team\n const result = await runAgentTeam(config, opts.signal);\n\n // 5. Optional review\n let review: string | undefined;\n if (shouldReview && result.taskResults.length > 0) {\n review = await reviewResults(task, result);\n }\n\n return { ...result, review, warnings: warnings.length > 0 ? warnings : undefined };\n}\n\n/** Extract file paths mentioned in a sub-task prompt. */\nfunction extractFiles(prompt: string): string[] {\n const matches = prompt.match(/(?:^|\\s)((?:src|lib|app|pages|components|test|spec|public)\\/[\\w./-]+)/gm);\n return matches ? [...new Set(matches.map(m => m.trim()))] : [];\n}\n\nconst MAX_FILE_PREVIEW_CHARS = 2000; // Per file\nconst MAX_TOTAL_EMBED_CHARS = 8000; // Per task\n\n/** Pre-read files mentioned in task prompts and return their content for embedding. */\nasync function preReadFiles(files: string[], cwd: string): Promise<string> {\n if (files.length === 0) return \"\";\n\n const { readFileSync, statSync } = await import(\"fs\");\n const { join } = await import(\"path\");\n\n const sections: string[] = [];\n let totalChars = 0;\n\n for (const file of files) {\n if (totalChars >= MAX_TOTAL_EMBED_CHARS) break;\n const fullPath = file.startsWith(\"/\") ? file : join(cwd, file);\n try {\n const stat = statSync(fullPath);\n if (!stat.isFile() || stat.size > 50_000) continue; // Skip dirs and huge files\n const content = readFileSync(fullPath, \"utf-8\");\n const preview = content.slice(0, MAX_FILE_PREVIEW_CHARS);\n const truncated = preview.length < content.length ? \"\\n... (truncated)\" : \"\";\n sections.push(`### ${file}\\n\\`\\`\\`\\n${preview}${truncated}\\n\\`\\`\\``);\n totalChars += preview.length;\n } catch {\n // File doesn't exist or can't be read — skip silently\n }\n }\n\n if (sections.length === 0) return \"\";\n return `\\n\\n## Reference Files (pre-loaded — no need to re-read these)\\n${sections.join(\"\\n\\n\")}`;\n}\n\n/** Lightweight review of team results using Claude haiku via proxy. */\nasync function reviewResults(\n originalTask: string,\n result: TeamResult,\n): Promise<string | undefined> {\n const { getValidToken } = await import(\"./auth-service.js\");\n const { getProxyUrl } = await import(\"./config-store.js\");\n const { callServerProxy, buildAPIRequest } = await import(\"../../shared/api-client.js\");\n const { parseSSEStream, collectStreamResult } = await import(\"../../shared/sse-parser.js\");\n\n const token = await getValidToken();\n if (!token) return undefined;\n\n try {\n const taskSummaries = result.taskResults\n .map((t, i) => `Task ${i + 1} [${t.status}]: ${t.description.slice(0, 100)}\\nResult: ${t.result.slice(0, 200)}`)\n .join(\"\\n\\n\");\n\n const apiConfig = buildAPIRequest({ model: MODELS.HAIKU, contextProfile: \"subagent\" });\n\n const stream = await callServerProxy({\n proxyUrl: getProxyUrl(),\n token,\n model: MODELS.HAIKU,\n system: [{ type: \"text\", text: \"You are a code review assistant. Given the original task and the results from parallel agents, provide a brief (2-4 sentence) assessment: were the goals met? Any conflicts or gaps between agents' work? Any follow-up needed?\" }],\n messages: [{\n role: \"user\",\n content: `Original task: ${originalTask}\\n\\nTeam results (${result.taskResults.length} agents):\\n${taskSummaries}`,\n }],\n tools: [],\n apiConfig,\n timeoutMs: 15_000,\n });\n\n const collected = await collectStreamResult(parseSSEStream(stream));\n return collected.text || undefined;\n } catch {\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|