whale-code 6.5.6 → 6.5.8
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 +15 -3
- package/bin/whale-code.js +23 -0
- package/dist/cli/__tests__/print-mode-streaming.test.js +270 -0
- package/dist/cli/__tests__/print-mode.basic-output.test.js +230 -0
- package/dist/cli/__tests__/print-mode.session-errors.test.js +252 -0
- package/dist/cli/__tests__/print-mode.test.js +273 -0
- package/dist/cli/__tests__/serve-mode-messages.test.js +338 -0
- package/dist/cli/__tests__/serve-mode.messages.part2.test.js +266 -0
- package/dist/cli/__tests__/serve-mode.messages.test.js +277 -0
- package/dist/cli/__tests__/serve-mode.startup-http.test.js +279 -0
- package/dist/cli/__tests__/serve-mode.test.js +345 -0
- package/dist/cli/app.d.ts +1 -0
- package/dist/cli/app.js +8 -2
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/chat/ChatApp.d.ts +8 -36
- package/dist/cli/chat/ChatApp.js +135 -450
- package/dist/cli/chat/ChatApp.js.map +1 -1
- package/dist/cli/chat/ChatInput.d.ts +3 -2
- package/dist/cli/chat/ChatInput.js +37 -14
- package/dist/cli/chat/ChatInput.js.map +1 -1
- package/dist/cli/chat/ImsgManager.d.ts +20 -0
- package/dist/cli/chat/ImsgManager.js +341 -0
- package/dist/cli/chat/ImsgManager.js.map +1 -0
- package/dist/cli/chat/MarkdownText.d.ts +2 -1
- package/dist/cli/chat/MarkdownText.js +12 -8
- package/dist/cli/chat/MarkdownText.js.map +1 -1
- package/dist/cli/chat/MemoryManager.js +3 -2
- package/dist/cli/chat/MemoryManager.js.map +1 -1
- package/dist/cli/chat/MessageList.d.ts +1 -1
- package/dist/cli/chat/MessageList.js +119 -114
- package/dist/cli/chat/MessageList.js.map +1 -1
- package/dist/cli/chat/NodeManager.js +57 -170
- package/dist/cli/chat/NodeManager.js.map +1 -1
- package/dist/cli/chat/OverlayContext.d.ts +27 -0
- package/dist/cli/chat/OverlayContext.js +2 -0
- package/dist/cli/chat/OverlayContext.js.map +1 -0
- package/dist/cli/chat/PlanApproval.js +3 -2
- package/dist/cli/chat/PlanApproval.js.map +1 -1
- package/dist/cli/chat/RewindConfirmation.d.ts +12 -0
- package/dist/cli/chat/RewindConfirmation.js +243 -0
- package/dist/cli/chat/RewindConfirmation.js.map +1 -0
- package/dist/cli/chat/RewindViewer.js +5 -4
- package/dist/cli/chat/RewindViewer.js.map +1 -1
- package/dist/cli/chat/SessionManager.js +3 -2
- package/dist/cli/chat/SessionManager.js.map +1 -1
- package/dist/cli/chat/SlashMenu.d.ts +7 -24
- package/dist/cli/chat/SlashMenu.js +14 -183
- package/dist/cli/chat/SlashMenu.js.map +1 -1
- package/dist/cli/chat/StatusBar.d.ts +5 -2
- package/dist/cli/chat/StatusBar.js +80 -65
- package/dist/cli/chat/StatusBar.js.map +1 -1
- package/dist/cli/chat/StreamingText.d.ts +2 -1
- package/dist/cli/chat/StreamingText.js +2 -2
- package/dist/cli/chat/StreamingText.js.map +1 -1
- package/dist/cli/chat/SubagentPanel.d.ts +6 -6
- package/dist/cli/chat/SubagentPanel.js +159 -537
- package/dist/cli/chat/SubagentPanel.js.map +1 -1
- package/dist/cli/chat/TeamPanel.js +2 -30
- package/dist/cli/chat/TeamPanel.js.map +1 -1
- package/dist/cli/chat/ToolIndicator.d.ts +7 -23
- package/dist/cli/chat/ToolIndicator.js +543 -1443
- package/dist/cli/chat/ToolIndicator.js.map +1 -1
- package/dist/cli/chat/chat-input-menu-handler.d.ts +32 -0
- package/dist/cli/chat/components/LiveArea.d.ts +12 -0
- package/dist/cli/chat/components/LiveArea.js +252 -0
- package/dist/cli/chat/components/LiveArea.js.map +1 -0
- package/dist/cli/chat/components/OverlayRouter.d.ts +13 -0
- package/dist/cli/chat/components/OverlayRouter.js +257 -0
- package/dist/cli/chat/components/OverlayRouter.js.map +1 -0
- package/dist/cli/chat/components/StaticMessages.d.ts +9 -0
- package/dist/cli/chat/components/StaticMessages.js +132 -0
- package/dist/cli/chat/components/StaticMessages.js.map +1 -0
- package/dist/cli/chat/hooks/agent-loop-events.d.ts +77 -0
- package/dist/cli/chat/hooks/agent-loop-events.js +171 -0
- package/dist/cli/chat/hooks/agent-loop-events.js.map +1 -0
- package/dist/cli/chat/hooks/slash-command-config-system.d.ts +11 -0
- package/dist/cli/chat/hooks/slash-command-config-system.js +177 -0
- package/dist/cli/chat/hooks/slash-command-config-system.js.map +1 -0
- package/dist/cli/chat/hooks/slash-command-handlers-system.d.ts +12 -0
- package/dist/cli/chat/hooks/slash-command-handlers-system.js +127 -0
- package/dist/cli/chat/hooks/slash-command-handlers-system.js.map +1 -0
- package/dist/cli/chat/hooks/slash-command-handlers.d.ts +21 -0
- package/dist/cli/chat/hooks/slash-command-handlers.js +222 -0
- package/dist/cli/chat/hooks/slash-command-handlers.js.map +1 -0
- package/dist/cli/chat/hooks/slash-imsg-handlers.js +148 -0
- package/dist/cli/chat/hooks/slash-imsg-handlers.js.map +1 -0
- package/dist/cli/chat/hooks/slash-node-handlers.d.ts +26 -0
- package/dist/cli/chat/hooks/slash-node-handlers.js +226 -0
- package/dist/cli/chat/hooks/slash-node-handlers.js.map +1 -0
- package/dist/cli/chat/hooks/useAgentLoop.d.ts +2 -21
- package/dist/cli/chat/hooks/useAgentLoop.js +258 -401
- package/dist/cli/chat/hooks/useAgentLoop.js.map +1 -1
- package/dist/cli/chat/hooks/useElapsedClock.d.ts +19 -0
- package/dist/cli/chat/hooks/useElapsedClock.js +80 -0
- package/dist/cli/chat/hooks/useElapsedClock.js.map +1 -0
- package/dist/cli/chat/hooks/useOverlayHandlers.d.ts +23 -0
- package/dist/cli/chat/hooks/useOverlayHandlers.js +125 -0
- package/dist/cli/chat/hooks/useOverlayHandlers.js.map +1 -0
- package/dist/cli/chat/hooks/useSlashCommands.d.ts +14 -22
- package/dist/cli/chat/hooks/useSlashCommands.js +99 -720
- package/dist/cli/chat/hooks/useSlashCommands.js.map +1 -1
- package/dist/cli/chat/hooks/useStreamingReducer.d.ts +66 -0
- package/dist/cli/chat/imsg-manager-render.d.ts +29 -0
- package/dist/cli/chat/imsg-manager-render.js +294 -0
- package/dist/cli/chat/imsg-manager-render.js.map +1 -0
- package/dist/cli/chat/slash-commands.d.ts +37 -0
- package/dist/cli/chat/slash-commands.js +194 -0
- package/dist/cli/chat/slash-commands.js.map +1 -0
- package/dist/cli/chat/store.d.ts +115 -0
- package/dist/cli/chat/store.js +177 -0
- package/dist/cli/chat/store.js.map +1 -0
- package/dist/cli/chat/tool-indicator-helpers.d.ts +14 -0
- package/dist/cli/chat/tool-indicator-helpers.js +167 -0
- package/dist/cli/chat/tool-indicator-helpers.js.map +1 -0
- package/dist/cli/chat/tool-indicator-summary.d.ts +6 -0
- package/dist/cli/chat/tool-indicator-summary.js +103 -0
- package/dist/cli/chat/tool-indicator-summary.js.map +1 -0
- package/dist/cli/chat/tool-indicator-types.d.ts +66 -0
- package/dist/cli/chat/tool-indicator-types.js +177 -0
- package/dist/cli/chat/tool-indicator-types.js.map +1 -0
- package/dist/cli/commands/__tests__/config-cmd.test.js +270 -0
- package/dist/cli/commands/__tests__/doctor.test.js +257 -0
- package/dist/cli/commands/__tests__/imsg-node-bridge.test.js +99 -0
- package/dist/cli/commands/__tests__/imsg-utils.test.js +73 -0
- package/dist/cli/commands/__tests__/init.test.js +214 -0
- package/dist/cli/commands/__tests__/mcp.test.js +287 -0
- package/dist/cli/commands/imsg-config.d.ts +31 -0
- package/dist/cli/commands/imsg-config.js +104 -0
- package/dist/cli/commands/imsg-config.js.map +1 -0
- package/dist/cli/commands/imsg-node-bridge.d.ts +25 -0
- package/dist/cli/commands/imsg-node-bridge.js +229 -0
- package/dist/cli/commands/imsg-node-bridge.js.map +1 -0
- package/dist/cli/commands/imsg-utils.d.ts +14 -0
- package/dist/cli/commands/imsg-utils.js +42 -0
- package/dist/cli/commands/imsg-utils.js.map +1 -0
- package/dist/cli/commands/imsg-watcher-helpers.d.ts +40 -0
- package/dist/cli/commands/imsg-watcher-helpers.js +184 -0
- package/dist/cli/commands/imsg-watcher-helpers.js.map +1 -0
- package/dist/cli/commands/imsg-watcher.d.ts +11 -0
- package/dist/cli/commands/imsg-watcher.js +230 -0
- package/dist/cli/commands/imsg-watcher.js.map +1 -0
- package/dist/cli/commands/imsg.d.ts +14 -0
- package/dist/cli/commands/imsg.js +181 -0
- package/dist/cli/commands/imsg.js.map +1 -0
- package/dist/cli/commands/sessions.d.ts +9 -0
- package/dist/cli/commands/sessions.js +93 -0
- package/dist/cli/commands/sessions.js.map +1 -0
- package/dist/cli/login/LoginApp.js +3 -0
- package/dist/cli/login/LoginApp.js.map +1 -1
- package/dist/cli/serve-mode-persistence.d.ts +18 -0
- package/dist/cli/serve-mode-persistence.js +157 -0
- package/dist/cli/serve-mode-persistence.js.map +1 -0
- package/dist/cli/serve-mode-query.d.ts +9 -0
- package/dist/cli/serve-mode-query.js +247 -0
- package/dist/cli/serve-mode-query.js.map +1 -0
- package/dist/cli/serve-mode-types.d.ts +29 -0
- package/dist/cli/serve-mode-types.js +56 -0
- package/dist/cli/serve-mode-types.js.map +1 -0
- package/dist/cli/services/__tests__/agent-definitions.test.js +153 -0
- package/dist/cli/services/__tests__/agent-events-global.test.js +39 -0
- package/dist/cli/services/__tests__/agent-events.part2.test.js +113 -0
- package/dist/cli/services/__tests__/agent-events.test.js +157 -0
- package/dist/cli/services/__tests__/agent-loop-auth.test.js +392 -0
- package/dist/cli/services/__tests__/agent-loop-budget.test.js +389 -0
- package/dist/cli/services/__tests__/agent-loop-tools-lifecycle.test.js +430 -0
- package/dist/cli/services/__tests__/agent-loop-tools-maxturns.test.js +486 -0
- package/dist/cli/services/__tests__/agent-loop-utils-execution.test.js +528 -0
- package/dist/cli/services/__tests__/agent-loop-utils-helpers.test.js +466 -0
- package/dist/cli/services/__tests__/agent-worker-base-execute.test.js +257 -0
- package/dist/cli/services/__tests__/agent-worker-base-helpers.test.js +198 -0
- package/dist/cli/services/__tests__/agent-worker-base.test.js +278 -0
- package/dist/cli/services/__tests__/auth-service-exports.test.js +41 -0
- package/dist/cli/services/__tests__/auth-service.part2.test.js +169 -0
- package/dist/cli/services/__tests__/auth-service.test.js +242 -0
- package/dist/cli/services/__tests__/background-processes.test.js +282 -0
- package/dist/cli/services/__tests__/claude-md-loader.test.js +134 -0
- package/dist/cli/services/__tests__/config-store.test.js +247 -0
- package/dist/cli/services/__tests__/debug-log.test.js +199 -0
- package/dist/cli/services/__tests__/edge-cases-caching.test.js +174 -0
- package/dist/cli/services/__tests__/edge-cases-compaction-core.test.js +226 -0
- package/dist/cli/services/__tests__/edge-cases-compaction-openai.test.js +152 -0
- package/dist/cli/services/__tests__/edge-cases-compaction-shapes.test.js +53 -0
- package/dist/cli/services/__tests__/edge-cases-compaction-thinking.test.js +226 -0
- package/dist/cli/services/__tests__/edge-cases-compaction.test.js +131 -0
- package/dist/cli/services/__tests__/edge-cases-paths.test.js +86 -0
- package/dist/cli/services/__tests__/error-logger-messages.test.js +81 -0
- package/dist/cli/services/__tests__/error-logger-transport.test.js +119 -0
- package/dist/cli/services/__tests__/error-logger.test.js +264 -0
- package/dist/cli/services/__tests__/file-history.test.js +136 -0
- package/dist/cli/services/__tests__/git-context-cache-reset.test.js +223 -0
- package/dist/cli/services/__tests__/git-context.test.js +241 -0
- package/dist/cli/services/__tests__/interactive-tools-execute.test.js +166 -0
- package/dist/cli/services/__tests__/interactive-tools-plan.test.js +197 -0
- package/dist/cli/services/__tests__/interactive-tools.part2.test.js +168 -0
- package/dist/cli/services/__tests__/interactive-tools.test.js +179 -0
- package/dist/cli/services/__tests__/keybinding-manager.test.js +205 -0
- package/dist/cli/services/__tests__/local-tools-dispatch.test.js +404 -0
- package/dist/cli/services/__tests__/local-tools.test.js +238 -0
- package/dist/cli/services/__tests__/lsp-manager.test.js +364 -0
- package/dist/cli/services/__tests__/mcp-client-connect-disconnect.test.js +310 -0
- package/dist/cli/services/__tests__/mcp-client.test.js +93 -0
- package/dist/cli/services/__tests__/memory-manager.test.js +154 -0
- package/dist/cli/services/__tests__/model-manager-utils.test.js +154 -0
- package/dist/cli/services/__tests__/model-manager.test.js +175 -0
- package/dist/cli/services/__tests__/permission-modes.test.js +222 -0
- package/dist/cli/services/__tests__/ripgrep.test.js +328 -0
- package/dist/cli/services/__tests__/server-tools-execute.test.js +317 -0
- package/dist/cli/services/__tests__/server-tools.test.js +272 -0
- package/dist/cli/services/__tests__/session-persistence.test.js +245 -0
- package/dist/cli/services/__tests__/subagent-basic.test.js +489 -0
- package/dist/cli/services/__tests__/subagent-edge.test.js +545 -0
- package/dist/cli/services/__tests__/subagent-prompts.test.js +558 -0
- package/dist/cli/services/__tests__/subagent-worker-errors.test.js +255 -0
- package/dist/cli/services/__tests__/subagent-worker.test.js +242 -0
- package/dist/cli/services/__tests__/system-prompt.test.js +210 -0
- package/dist/cli/services/__tests__/team-lead-comms-messaging.test.js +250 -0
- package/dist/cli/services/__tests__/team-lead-comms-result.test.js +232 -0
- package/dist/cli/services/__tests__/team-lead-comms-stop.test.js +344 -0
- package/dist/cli/services/__tests__/team-lead-comms.test.js +285 -0
- package/dist/cli/services/__tests__/team-lead-create.test.js +327 -0
- package/dist/cli/services/__tests__/team-lead-run.test.js +318 -0
- package/dist/cli/services/__tests__/team-lead-stop.test.js +199 -0
- package/dist/cli/services/__tests__/team-state-comms.test.js +240 -0
- package/dist/cli/services/__tests__/team-state-core.test.js +230 -0
- package/dist/cli/services/__tests__/team-state-tasks-complete-fail-available.test.js +224 -0
- package/dist/cli/services/__tests__/team-state-tasks.test.js +184 -0
- package/dist/cli/services/__tests__/telemetry-ai-metadata.test.js +116 -0
- package/dist/cli/services/__tests__/telemetry.part2.test.js +195 -0
- package/dist/cli/services/__tests__/telemetry.test.js +176 -0
- package/dist/cli/services/agent-event-types.d.ts +148 -0
- package/dist/cli/services/agent-event-types.js +2 -0
- package/dist/cli/services/agent-event-types.js.map +1 -0
- package/dist/cli/services/agent-loop-iteration.d.ts +13 -0
- package/dist/cli/services/agent-loop-setup.d.ts +32 -0
- package/dist/cli/services/agent-loop-shell-summarize.d.ts +11 -0
- package/dist/cli/services/agent-loop-shell-summarize.js +94 -0
- package/dist/cli/services/agent-loop-shell-summarize.js.map +1 -0
- package/dist/cli/services/agent-loop-tools.d.ts +37 -0
- package/dist/cli/services/agent-loop-tools.js +243 -0
- package/dist/cli/services/agent-loop-tools.js.map +1 -0
- package/dist/cli/services/agent-loop-types.d.ts +52 -0
- package/dist/cli/services/agent-loop-types.js +25 -0
- package/dist/cli/services/agent-loop-types.js.map +1 -0
- package/dist/cli/services/agent-loop.d.ts +2 -2
- package/dist/cli/services/agent-loop.js +162 -17
- package/dist/cli/services/agent-loop.js.map +1 -1
- package/dist/cli/services/agent-worker-base-api.d.ts +19 -0
- package/dist/cli/services/agent-worker-base-helpers.d.ts +27 -0
- package/dist/cli/services/agent-worker-base-tools.d.ts +16 -0
- package/dist/cli/services/agent-worker-base-types.d.ts +81 -0
- package/dist/cli/services/agent-worker-base.js +1 -1
- package/dist/cli/services/agent-worker-base.js.map +1 -1
- package/dist/cli/services/auth-service.js +19 -19
- package/dist/cli/services/auth-service.js.map +1 -1
- package/dist/cli/services/background-agents.d.ts +26 -0
- package/dist/cli/services/background-processes-ops.d.ts +24 -0
- package/dist/cli/services/background-processes.d.ts +2 -1
- package/dist/cli/services/background-processes.js +7 -3
- package/dist/cli/services/background-processes.js.map +1 -1
- package/dist/cli/services/background-tool-defs.d.ts +50 -0
- package/dist/cli/services/cli-agent-loop.d.ts +41 -0
- package/dist/cli/services/cli-agent-loop.js +104 -0
- package/dist/cli/services/cli-agent-loop.js.map +1 -0
- package/dist/cli/services/config-modules-model.test.js +133 -0
- package/dist/cli/services/config-modules-permission.test.js +85 -0
- package/dist/cli/services/config-modules-permissions.test.js +85 -0
- package/dist/cli/services/config-modules-session.test.js +297 -0
- package/dist/cli/services/config-store.d.ts +5 -0
- package/dist/cli/services/config-store.js +90 -5
- package/dist/cli/services/config-store.js.map +1 -1
- package/dist/cli/services/error-logger-internals.d.ts +25 -0
- package/dist/cli/services/error-logger-internals.js +111 -0
- package/dist/cli/services/error-logger-internals.js.map +1 -0
- package/dist/cli/services/format-server-response-columns.test.js +265 -0
- package/dist/cli/services/format-server-response-fallback.test.js +65 -0
- package/dist/cli/services/format-server-response-formatters.d.ts +18 -0
- package/dist/cli/services/format-server-response-formatters.js +195 -0
- package/dist/cli/services/format-server-response-formatters.js.map +1 -0
- package/dist/cli/services/format-server-response-primitives-basic.test.js +261 -0
- package/dist/cli/services/format-server-response-primitives-nested.test.js +188 -0
- package/dist/cli/services/format-server-response-primitives.test.js +300 -0
- package/dist/cli/services/format-server-response-realworld.test.js +248 -0
- package/dist/cli/services/format-server-response-values.test.js +247 -0
- package/dist/cli/services/format-server-response.js +5 -3
- package/dist/cli/services/format-server-response.js.map +1 -1
- package/dist/cli/services/hooks-execute.d.ts +47 -0
- package/dist/cli/services/hooks-execute.js +181 -0
- package/dist/cli/services/hooks-execute.js.map +1 -0
- package/dist/cli/services/hooks-runners.test.js +184 -0
- package/dist/cli/services/hooks.glob-load.test.js +233 -0
- package/dist/cli/services/hooks.run-hooks.test.js +184 -0
- package/dist/cli/services/hooks.test.js +233 -0
- package/dist/cli/services/interactive-tool-defs.d.ts +80 -0
- package/dist/cli/services/interactive-tools.d.ts +5 -2
- package/dist/cli/services/interactive-tools.js +47 -33
- package/dist/cli/services/interactive-tools.js.map +1 -1
- package/dist/cli/services/keybinding-manager.d.ts +2 -0
- package/dist/cli/services/keybinding-manager.js +5 -0
- package/dist/cli/services/keybinding-manager.js.map +1 -1
- package/dist/cli/services/local-tools-agent-defs-tasks.d.ts +6 -0
- package/dist/cli/services/local-tools-agent-defs-tasks.js +245 -0
- package/dist/cli/services/local-tools-agent-defs-tasks.js.map +1 -0
- package/dist/cli/services/local-tools-agent-defs-utils.d.ts +6 -0
- package/dist/cli/services/local-tools-agent-defs-utils.js +198 -0
- package/dist/cli/services/local-tools-agent-defs-utils.js.map +1 -0
- package/dist/cli/services/local-tools-agent-defs.d.ts +10 -0
- package/dist/cli/services/local-tools-agent-defs.js +13 -0
- package/dist/cli/services/local-tools-agent-defs.js.map +1 -0
- package/dist/cli/services/local-tools-definitions.d.ts +6 -0
- package/dist/cli/services/local-tools-files.test.js +256 -0
- package/dist/cli/services/local-tools-read-many.d.ts +6 -0
- package/dist/cli/services/local-tools.js +7 -9
- package/dist/cli/services/local-tools.js.map +1 -1
- package/dist/cli/services/lsp-config.d.ts +13 -0
- package/dist/cli/services/lsp-config.js +72 -0
- package/dist/cli/services/lsp-config.js.map +1 -0
- package/dist/cli/services/lsp-formatters.d.ts +11 -0
- package/dist/cli/services/lsp-formatters.js +209 -0
- package/dist/cli/services/lsp-formatters.js.map +1 -0
- package/dist/cli/services/lsp-protocol.d.ts +9 -0
- package/dist/cli/services/lsp-protocol.js +40 -0
- package/dist/cli/services/lsp-protocol.js.map +1 -0
- package/dist/cli/services/lsp-server-docs.d.ts +8 -0
- package/dist/cli/services/lsp-server-docs.js +132 -0
- package/dist/cli/services/lsp-server-docs.js.map +1 -0
- package/dist/cli/services/lsp-server-documents.d.ts +8 -0
- package/dist/cli/services/lsp-server-documents.js +132 -0
- package/dist/cli/services/lsp-server-documents.js.map +1 -0
- package/dist/cli/services/lsp-server.d.ts +40 -0
- package/dist/cli/services/lsp-server.js +270 -0
- package/dist/cli/services/lsp-server.js.map +1 -0
- package/dist/cli/services/model-router.test.js +245 -0
- package/dist/cli/services/permission-modes.js +16 -3
- package/dist/cli/services/permission-modes.js.map +1 -1
- package/dist/cli/services/project-index.d.ts +41 -0
- package/dist/cli/services/project-index.js +286 -0
- package/dist/cli/services/project-index.js.map +1 -0
- package/dist/cli/services/rewind-rewindTo.test.js +202 -0
- package/dist/cli/services/rewind.test.js +175 -0
- package/dist/cli/services/sandbox.test.js +198 -0
- package/dist/cli/services/server-tools-client.d.ts +46 -0
- package/dist/cli/services/server-tools-client.js +211 -0
- package/dist/cli/services/server-tools-client.js.map +1 -0
- package/dist/cli/services/server-tools-media.d.ts +21 -0
- package/dist/cli/services/server-tools-media.js +163 -0
- package/dist/cli/services/server-tools-media.js.map +1 -0
- package/dist/cli/services/server-tools-preprocess.d.ts +23 -0
- package/dist/cli/services/server-tools-preprocess.js +386 -0
- package/dist/cli/services/server-tools-preprocess.js.map +1 -0
- package/dist/cli/services/server-tools.d.ts +2 -0
- package/dist/cli/services/server-tools.js +40 -15
- package/dist/cli/services/server-tools.js.map +1 -1
- package/dist/cli/services/session-client.d.ts +78 -0
- package/dist/cli/services/session-client.js +197 -0
- package/dist/cli/services/session-client.js.map +1 -0
- package/dist/cli/services/session-persistence.d.ts +3 -0
- package/dist/cli/services/session-persistence.js +12 -0
- package/dist/cli/services/session-persistence.js.map +1 -1
- package/dist/cli/services/subagent-execution.d.ts +12 -0
- package/dist/cli/services/subagent-loop-v2.d.ts +36 -0
- package/dist/cli/services/subagent-loop-v2.js +238 -0
- package/dist/cli/services/subagent-loop-v2.js.map +1 -0
- package/dist/cli/services/subagent-tools.d.ts +10 -0
- package/dist/cli/services/subagent-tools.js +96 -0
- package/dist/cli/services/subagent-tools.js.map +1 -0
- package/dist/cli/services/subagent-types.d.ts +57 -0
- package/dist/cli/services/subagent-types.js +218 -0
- package/dist/cli/services/subagent-types.js.map +1 -0
- package/dist/cli/services/subagent.js +3 -2
- package/dist/cli/services/subagent.js.map +1 -1
- package/dist/cli/services/system-prompt.js +26 -3
- package/dist/cli/services/system-prompt.js.map +1 -1
- package/dist/cli/services/team-lead-auto.d.ts +11 -0
- package/dist/cli/services/team-lead-execution.d.ts +28 -0
- package/dist/cli/services/team-lead-types.d.ts +37 -0
- package/dist/cli/services/team-lead-types.js +2 -0
- package/dist/cli/services/team-lead-types.js.map +1 -0
- package/dist/cli/services/team-lead.d.ts +60 -0
- package/dist/cli/services/team-lead.js +148 -11
- package/dist/cli/services/team-lead.js.map +1 -1
- package/dist/cli/services/team-state-members.d.ts +11 -0
- package/dist/cli/services/team-state-members.js +185 -0
- package/dist/cli/services/team-state-members.js.map +1 -0
- package/dist/cli/services/team-state-messaging.d.ts +16 -0
- package/dist/cli/services/team-state-messaging.js +90 -0
- package/dist/cli/services/team-state-messaging.js.map +1 -0
- package/dist/cli/services/team-state-tasks.d.ts +12 -0
- package/dist/cli/services/team-state-tasks.js +23 -0
- package/dist/cli/services/team-state-tasks.js.map +1 -0
- package/dist/cli/services/team-state-types.d.ts +54 -0
- package/dist/cli/services/team-state-types.js +129 -0
- package/dist/cli/services/team-state-types.js.map +1 -0
- package/dist/cli/services/team-state.d.ts +5 -0
- package/dist/cli/services/team-state.js +29 -0
- package/dist/cli/services/team-state.js.map +1 -1
- package/dist/cli/services/teammate-loop.js +557 -0
- package/dist/cli/services/teammate-loop.js.map +1 -0
- package/dist/cli/services/teammate-prompt.d.ts +2 -0
- package/dist/cli/services/teammate-prompt.js +68 -0
- package/dist/cli/services/teammate-prompt.js.map +1 -0
- package/dist/cli/services/teammate-tools.d.ts +6 -0
- package/dist/cli/services/teammate-tools.js +158 -0
- package/dist/cli/services/teammate-tools.js.map +1 -0
- package/dist/cli/services/teammate-types.d.ts +36 -0
- package/dist/cli/services/teammate-types.js +43 -0
- package/dist/cli/services/teammate-types.js.map +1 -0
- package/dist/cli/services/teammate-worker-helpers.d.ts +71 -0
- package/dist/cli/services/teammate-worker-helpers.js +183 -0
- package/dist/cli/services/teammate-worker-helpers.js.map +1 -0
- package/dist/cli/services/teammate-worker-task-cleanup.d.ts +27 -0
- package/dist/cli/services/teammate-worker-task-cleanup.js +91 -0
- package/dist/cli/services/teammate-worker-task-cleanup.js.map +1 -0
- package/dist/cli/services/teammate-worker-task-loop.d.ts +35 -0
- package/dist/cli/services/teammate-worker-task-loop.js +273 -0
- package/dist/cli/services/teammate-worker-task-loop.js.map +1 -0
- package/dist/cli/services/teammate-worker.d.ts +13 -0
- package/dist/cli/services/teammate-worker.js +294 -0
- package/dist/cli/services/teammate-worker.js.map +1 -0
- package/dist/cli/services/telemetry-spans.d.ts +17 -0
- package/dist/cli/services/telemetry-spans.js +172 -0
- package/dist/cli/services/telemetry-spans.js.map +1 -0
- package/dist/cli/services/tools/__tests__/agent-tools-tasks-teams.test.js +250 -0
- package/dist/cli/services/tools/__tests__/agent-tools-teams.test.js +200 -0
- package/dist/cli/services/tools/__tests__/agent-tools.test.js +340 -0
- package/dist/cli/services/tools/__tests__/file-ops-cache.test.js +152 -0
- package/dist/cli/services/tools/__tests__/file-ops-notebook.test.js +249 -0
- package/dist/cli/services/tools/__tests__/file-ops-read.test.js +261 -0
- package/dist/cli/services/tools/__tests__/file-ops-write.test.js +292 -0
- package/dist/cli/services/tools/__tests__/search-tools-rg.test.js +92 -0
- package/dist/cli/services/tools/__tests__/search-tools.part2.test.js +174 -0
- package/dist/cli/services/tools/__tests__/search-tools.test.js +227 -0
- package/dist/cli/services/tools/__tests__/shell-exec-allowed-core.test.js +163 -0
- package/dist/cli/services/tools/__tests__/shell-exec-allowed-extended.test.js +220 -0
- package/dist/cli/services/tools/__tests__/shell-exec-allowed.part2.test.js +215 -0
- package/dist/cli/services/tools/__tests__/shell-exec-allowed.test.js +154 -0
- package/dist/cli/services/tools/__tests__/shell-exec-blocked.test.js +132 -0
- package/dist/cli/services/tools/__tests__/shell-exec-execution.test.js +245 -0
- package/dist/cli/services/tools/__tests__/task-manager-create.test.js +110 -0
- package/dist/cli/services/tools/__tests__/task-manager-crud.test.js +339 -0
- package/dist/cli/services/tools/__tests__/task-manager-list-get.test.js +343 -0
- package/dist/cli/services/tools/__tests__/task-manager-query.test.js +346 -0
- package/dist/cli/services/tools/__tests__/task-manager-routing.test.js +58 -0
- package/dist/cli/services/tools/__tests__/task-manager-update.test.js +224 -0
- package/dist/cli/services/tools/__tests__/task-manager.test.js +159 -0
- package/dist/cli/services/tools/__tests__/web-tools-html-search.test.js +227 -0
- package/dist/cli/services/tools/__tests__/web-tools.test.js +285 -0
- package/dist/cli/services/tools/agent-tools-tasks.d.ts +10 -0
- package/dist/cli/services/tools/agent-tools-tasks.js +216 -0
- package/dist/cli/services/tools/agent-tools-tasks.js.map +1 -0
- package/dist/cli/services/tools/agent-tools-team.d.ts +8 -0
- package/dist/cli/services/tools/agent-tools-team.js +101 -0
- package/dist/cli/services/tools/agent-tools-team.js.map +1 -0
- package/dist/cli/services/tools/agent-tools.js +115 -42
- package/dist/cli/services/tools/agent-tools.js.map +1 -1
- package/dist/cli/services/tools/file-ops-notebook.d.ts +9 -0
- package/dist/cli/services/tools/file-ops-notebook.js +186 -0
- package/dist/cli/services/tools/file-ops-notebook.js.map +1 -0
- package/dist/cli/services/tools/file-ops-read.d.ts +11 -0
- package/dist/cli/services/tools/file-ops-read.js +237 -0
- package/dist/cli/services/tools/file-ops-read.js.map +1 -0
- package/dist/cli/services/tools/file-ops-write.d.ts +8 -0
- package/dist/cli/services/tools/file-ops-write.js +260 -0
- package/dist/cli/services/tools/file-ops-write.js.map +1 -0
- package/dist/cli/services/tools/file-ops.d.ts +1 -0
- package/dist/cli/services/tools/file-ops.js +167 -0
- package/dist/cli/services/tools/file-ops.js.map +1 -1
- package/dist/cli/services/tools/html-to-text.d.ts +6 -0
- package/dist/cli/services/tools/html-to-text.js +118 -0
- package/dist/cli/services/tools/html-to-text.js.map +1 -0
- package/dist/cli/services/tools/shell-exec.test.js +148 -0
- package/dist/cli/services/tools/ssrf-guard.d.ts +6 -0
- package/dist/cli/services/tools/ssrf-guard.js +80 -0
- package/dist/cli/services/tools/ssrf-guard.js.map +1 -0
- package/dist/cli/setup/SetupComponents.d.ts +10 -0
- package/dist/cli/setup/SetupComponents.js +144 -0
- package/dist/cli/setup/SetupComponents.js.map +1 -0
- package/dist/cli/setup/setup-cli-targets.d.ts +9 -0
- package/dist/cli/setup/setup-cli-targets.js +49 -0
- package/dist/cli/setup/setup-cli-targets.js.map +1 -0
- package/dist/cli/shared/InlineErrorBoundary.d.ts +22 -0
- package/dist/cli/shared/InlineErrorBoundary.js +35 -0
- package/dist/cli/shared/InlineErrorBoundary.js.map +1 -0
- package/dist/cli/shared/MatrixIntro.js +2 -1
- package/dist/cli/shared/MatrixIntro.js.map +1 -1
- package/dist/cli/shared/SharedTick.d.ts +10 -0
- package/dist/cli/shared/SpinnerSlot.d.ts +16 -8
- package/dist/cli/shared/SpinnerSlot.js +122 -29
- package/dist/cli/shared/SpinnerSlot.js.map +1 -1
- package/dist/cli/shared/WhaleBanner.js +3 -2
- package/dist/cli/shared/WhaleBanner.js.map +1 -1
- package/dist/cli/shared/__tests__/markdown.test.js +188 -0
- package/dist/cli/shared/format-utils.d.ts +16 -0
- package/dist/cli/shared/format-utils.js +121 -0
- package/dist/cli/shared/format-utils.js.map +1 -0
- package/dist/cli/shared/markdown-chart.d.ts +8 -0
- package/dist/cli/shared/markdown-chart.js +92 -0
- package/dist/cli/shared/markdown-chart.js.map +1 -0
- package/dist/cli/shared/markdown-diff.d.ts +15 -0
- package/dist/cli/shared/markdown-diff.js +205 -0
- package/dist/cli/shared/markdown-diff.js.map +1 -0
- package/dist/cli/shared/markdown-helpers.d.ts +33 -0
- package/dist/cli/shared/markdown-helpers.js +129 -0
- package/dist/cli/shared/markdown-helpers.js.map +1 -0
- package/dist/cli/shared/markdown-table.d.ts +10 -0
- package/dist/cli/shared/markdown-table.js +227 -0
- package/dist/cli/shared/markdown-table.js.map +1 -0
- package/dist/cli/shared/markdown.d.ts +2 -6
- package/dist/cli/shared/markdown.js +8 -115
- package/dist/cli/shared/markdown.js.map +1 -1
- package/dist/cli/shared/useLatestRef.d.ts +11 -0
- package/dist/cli/shared/useLatestRef.js +34 -0
- package/dist/cli/shared/useLatestRef.js.map +1 -0
- package/dist/cli/shared/useSyncState.d.ts +11 -0
- package/dist/cli/shared/useSyncState.js +39 -0
- package/dist/cli/shared/useSyncState.js.map +1 -0
- package/dist/cli/stores/StoreApp.js +3 -1
- package/dist/cli/stores/StoreApp.js.map +1 -1
- package/dist/index-agent.d.ts +11 -0
- package/dist/index-agent.js +83 -0
- package/dist/index-agent.js.map +1 -0
- package/dist/index-auth.d.ts +22 -0
- package/dist/index-auth.js +114 -0
- package/dist/index-auth.js.map +1 -0
- package/dist/index-handlers.d.ts +25 -0
- package/dist/index-handlers.js +164 -0
- package/dist/index-handlers.js.map +1 -0
- package/dist/index-tools.d.ts +22 -0
- package/dist/index-tools.js +115 -0
- package/dist/index-tools.js.map +1 -0
- package/dist/local-agent/__tests__/connection-disconnect.test.js +201 -0
- package/dist/local-agent/__tests__/connection-lifecycle.test.js +289 -0
- package/dist/local-agent/__tests__/connection-msghandling.test.js +311 -0
- package/dist/local-agent/__tests__/connection-reconnect.test.js +230 -0
- package/dist/local-agent/__tests__/connection-toolexec.test.js +253 -0
- package/dist/local-agent/__tests__/discovery.test.js +328 -0
- package/dist/local-agent/__tests__/executor-background.test.js +219 -0
- package/dist/local-agent/__tests__/executor-exec.test.js +221 -0
- package/dist/local-agent/__tests__/executor-jobs-sessions.test.js +220 -0
- package/dist/local-agent/__tests__/executor-system-info.test.js +133 -0
- package/dist/local-agent/__tests__/executor-systeminfo.test.js +109 -0
- package/dist/local-agent/__tests__/executor.test.js +235 -0
- package/dist/local-agent/__tests__/index.test.js +139 -0
- package/dist/local-agent/connection-handlers.d.ts +8 -0
- package/dist/local-agent/connection-handlers.js +112 -0
- package/dist/local-agent/connection-handlers.js.map +1 -0
- package/dist/local-agent/connection-tools.d.ts +8 -0
- package/dist/local-agent/connection-tools.js +111 -0
- package/dist/local-agent/connection-tools.js.map +1 -0
- package/dist/local-agent/executor-jobs.d.ts +12 -0
- package/dist/local-agent/executor-jobs.js +143 -0
- package/dist/local-agent/executor-jobs.js.map +1 -0
- package/dist/local-agent/executor.d.ts +3 -0
- package/dist/local-agent/executor.js +2 -2
- package/dist/local-agent/executor.js.map +1 -1
- package/dist/node/__tests__/cli-channels.test.js +293 -0
- package/dist/node/__tests__/cli-config-edge.test.js +154 -0
- package/dist/node/__tests__/cli-config.test.js +215 -0
- package/dist/node/__tests__/config.test.js +292 -0
- package/dist/node/__tests__/runtime-heartbeat.test.js +153 -0
- package/dist/node/__tests__/runtime-lifecycle-init.test.js +263 -0
- package/dist/node/__tests__/runtime-lifecycle-stats.test.js +180 -0
- package/dist/node/__tests__/runtime-lifecycle.test.js +305 -0
- package/dist/node/__tests__/runtime-relay.test.js +341 -0
- package/dist/node/adapters/__tests__/base.test.js +286 -0
- package/dist/node/adapters/__tests__/discord.test.js +284 -0
- package/dist/node/adapters/__tests__/email-send.test.js +295 -0
- package/dist/node/adapters/__tests__/email.inbound-send.test.js +217 -0
- package/dist/node/adapters/__tests__/email.lifecycle.test.js +211 -0
- package/dist/node/adapters/__tests__/email.test.js +290 -0
- package/dist/node/adapters/__tests__/email.webhook-send.test.js +251 -0
- package/dist/node/adapters/__tests__/imessage-filter.test.js +183 -0
- package/dist/node/adapters/__tests__/imessage-lifecycle.test.js +215 -0
- package/dist/node/adapters/__tests__/imessage-send-restart.test.js +227 -0
- package/dist/node/adapters/__tests__/slack.part2.test.js +135 -0
- package/dist/node/adapters/__tests__/slack.test.js +241 -0
- package/dist/node/adapters/__tests__/sms-extras.test.js +108 -0
- package/dist/node/adapters/__tests__/sms-lifecycle.test.js +203 -0
- package/dist/node/adapters/__tests__/sms-messaging.test.js +266 -0
- package/dist/node/adapters/__tests__/sms.part2.test.js +174 -0
- package/dist/node/adapters/__tests__/sms.test.js +253 -0
- package/dist/node/adapters/__tests__/telegram-polling.test.js +256 -0
- package/dist/node/adapters/__tests__/telegram-send.test.js +166 -0
- package/dist/node/adapters/__tests__/webchat-inbound.test.js +188 -0
- package/dist/node/adapters/__tests__/webchat-outbound.test.js +178 -0
- package/dist/node/adapters/__tests__/whatsapp-inbound.test.js +200 -0
- package/dist/node/adapters/__tests__/whatsapp-send.test.js +212 -0
- package/dist/node/adapters/__tests__/whatsapp.test.js +280 -0
- package/dist/node/adapters/discord-gateway.d.ts +42 -0
- package/dist/node/adapters/discord-gateway.js +169 -0
- package/dist/node/adapters/discord-gateway.js.map +1 -0
- package/dist/node/adapters/imessage.d.ts +11 -0
- package/dist/node/adapters/imessage.js +23 -6
- package/dist/node/adapters/imessage.js.map +1 -1
- package/dist/node/cli-channels.d.ts +6 -0
- package/dist/node/cli-channels.js +229 -0
- package/dist/node/cli-channels.js.map +1 -0
- package/dist/node/cli-node.d.ts +9 -0
- package/dist/node/cli-node.js +186 -0
- package/dist/node/cli-node.js.map +1 -0
- package/dist/node/cli-portal.d.ts +11 -0
- package/dist/node/cli-portal.js +503 -0
- package/dist/node/cli-portal.js.map +1 -0
- package/dist/node/portal/portal-target.d.ts +16 -0
- package/dist/node/portal/portal-target.js +102 -0
- package/dist/node/portal/portal-target.js.map +1 -0
- package/dist/node/portal/protocol-frames.d.ts +33 -0
- package/dist/node/portal/protocol-frames.js +170 -0
- package/dist/node/portal/protocol-frames.js.map +1 -0
- package/dist/node/runtime-network.d.ts +25 -0
- package/dist/node/runtime-network.js +226 -0
- package/dist/node/runtime-network.js.map +1 -0
- package/dist/node/runtime-utils.d.ts +27 -0
- package/dist/node/runtime-utils.js +99 -0
- package/dist/node/runtime-utils.js.map +1 -0
- package/dist/node/runtime.d.ts +1 -0
- package/dist/node/runtime.js +71 -1
- package/dist/node/runtime.js.map +1 -1
- package/dist/node/task-runner.d.ts +33 -0
- package/dist/node/task-runner.js +276 -0
- package/dist/node/task-runner.js.map +1 -0
- package/dist/server/__tests__/gateway-fast-fail.test.js +160 -0
- package/dist/server/__tests__/local-agent-gateway.test.js +186 -0
- package/dist/server/__tests__/proxy-handlers-delegation.test.js +240 -0
- package/dist/server/__tests__/proxy-handlers-validation.test.js +211 -0
- package/dist/server/__tests__/proxy-handlers.part2.test.js +240 -0
- package/dist/server/__tests__/proxy-handlers.test.js +213 -0
- package/dist/server/__tests__/strip-base64-e2e.test.js +303 -0
- package/dist/server/__tests__/strip-base64.test.js +256 -0
- package/dist/server/__tests__/tool-router-agent-tools.test.js +324 -0
- package/dist/server/__tests__/tool-router-execute-core.test.js +357 -0
- package/dist/server/__tests__/tool-router-execute-permissions.test.js +332 -0
- package/dist/server/__tests__/tool-router-execute.test.js +348 -0
- package/dist/server/__tests__/tool-router-load.test.js +432 -0
- package/dist/server/__tests__/tool-router-permissions.test.js +359 -0
- package/dist/server/__tests__/tool-router-registry-cache.test.js +383 -0
- package/dist/server/__tests__/tool-router-registry-handlers.test.js +272 -0
- package/dist/server/__tests__/tool-router-registry.test.js +331 -0
- package/dist/server/__tests__/validation-inventory.test.js +250 -0
- package/dist/server/__tests__/validation-misc.test.js +243 -0
- package/dist/server/__tests__/validation-supply-chain.test.js +188 -0
- package/dist/server/__tests__/worker.test.js +265 -0
- package/dist/server/handlers/__test-utils__/test-db.d.ts +2 -0
- package/dist/server/handlers/__test-utils__/test-db.js +14 -1
- package/dist/server/handlers/__test-utils__/test-db.js.map +1 -1
- package/dist/server/handlers/__tests__/conversation-lock.test.js +117 -0
- package/dist/server/handlers/__tests__/e2e/auth-cross-platform-login.e2e.test.js +268 -0
- package/dist/server/handlers/__tests__/e2e/auth-cross-platform-tokens.e2e.test.js +264 -0
- package/dist/server/handlers/__tests__/e2e/email-pipeline-send.e2e.test.js +214 -0
- package/dist/server/handlers/__tests__/e2e/email-pipeline-threads.e2e.test.js +168 -0
- package/dist/server/handlers/__tests__/e2e/error-logging-pipeline-dedup.e2e.test.js +229 -0
- package/dist/server/handlers/__tests__/e2e/error-logging-pipeline.e2e.test.js +239 -0
- package/dist/server/handlers/__tests__/e2e/error-logging-rate-limit.e2e.test.js +150 -0
- package/dist/server/handlers/__tests__/e2e/inventory-sync-guards.e2e.test.js +177 -0
- package/dist/server/handlers/__tests__/e2e/inventory-sync.e2e.test.js +228 -0
- package/dist/server/handlers/__tests__/e2e/inventory-sync.part2.e2e.test.js +188 -0
- package/dist/server/handlers/__tests__/e2e/order-lifecycle-fulfillment.e2e.test.js +295 -0
- package/dist/server/handlers/__tests__/e2e/order-lifecycle.e2e.test.js +277 -0
- package/dist/server/handlers/__tests__/e2e/order-lifecycle.fulfillment.e2e.test.js +307 -0
- package/dist/server/handlers/__tests__/e2e/order-lifecycle.setup.e2e.test.js +177 -0
- package/dist/server/handlers/__tests__/e2e/storefront-checkout-cart.e2e.test.js +255 -0
- package/dist/server/handlers/__tests__/e2e/storefront-checkout-webhook.e2e.test.js +231 -0
- package/dist/server/handlers/__tests__/e2e/workflow-execution-failures.e2e.test.js +235 -0
- package/dist/server/handlers/__tests__/e2e/workflow-execution.e2e.test.js +294 -0
- package/dist/server/handlers/__tests__/e2e/workflow-security.e2e.test.js +311 -0
- package/dist/server/handlers/__tests__/e2e/workflow-security.part2.e2e.test.js +267 -0
- package/dist/server/handlers/__tests__/workflow-cache.test.js +237 -0
- package/dist/server/handlers/analytics-errors-edge.test.js +173 -0
- package/dist/server/handlers/analytics.js +88 -1
- package/dist/server/handlers/analytics.js.map +1 -1
- package/dist/server/handlers/analytics.test.js +280 -0
- package/dist/server/handlers/api-docs-examples-ext.d.ts +9 -0
- package/dist/server/handlers/api-docs-examples-ext.js +278 -0
- package/dist/server/handlers/api-docs-examples-ext.js.map +1 -0
- package/dist/server/handlers/api-docs-examples.d.ts +8 -0
- package/dist/server/handlers/api-docs-examples.js +221 -0
- package/dist/server/handlers/api-docs-examples.js.map +1 -0
- package/dist/server/handlers/api-docs-sections-ext.d.ts +2 -0
- package/dist/server/handlers/api-docs-sections-ext.js +497 -0
- package/dist/server/handlers/api-docs-sections-ext.js.map +1 -0
- package/dist/server/handlers/api-docs-sections.d.ts +21 -0
- package/dist/server/handlers/api-docs-sections.js +293 -0
- package/dist/server/handlers/api-docs-sections.js.map +1 -0
- package/dist/server/handlers/api-docs.d.ts +2 -0
- package/dist/server/handlers/api-docs.js +177 -0
- package/dist/server/handlers/api-docs.js.map +1 -1
- package/dist/server/handlers/api-keys.part2.test.js +157 -0
- package/dist/server/handlers/api-keys.test.js +161 -0
- package/dist/server/handlers/billing-core.d.ts +28 -0
- package/dist/server/handlers/billing-core.js +126 -0
- package/dist/server/handlers/billing-core.js.map +1 -0
- package/dist/server/handlers/billing-routes.d.ts +9 -0
- package/dist/server/handlers/billing-routes.js +243 -0
- package/dist/server/handlers/billing-routes.js.map +1 -0
- package/dist/server/handlers/billing-routes.test.js +123 -0
- package/dist/server/handlers/billing.test.js +215 -0
- package/dist/server/handlers/browser-actions-errors.test.js +94 -0
- package/dist/server/handlers/browser-actions.d.ts +35 -0
- package/dist/server/handlers/browser-actions.js +171 -0
- package/dist/server/handlers/browser-actions.js.map +1 -0
- package/dist/server/handlers/browser-actions.part2.test.js +190 -0
- package/dist/server/handlers/browser-actions.test.js +190 -0
- package/dist/server/handlers/browser-captcha.d.ts +6 -0
- package/dist/server/handlers/browser-captcha.js +172 -0
- package/dist/server/handlers/browser-captcha.js.map +1 -0
- package/dist/server/handlers/browser-lifecycle.d.ts +9 -0
- package/dist/server/handlers/browser-lifecycle.js +142 -0
- package/dist/server/handlers/browser-lifecycle.js.map +1 -0
- package/dist/server/handlers/browser-validation.test.js +257 -0
- package/dist/server/handlers/catalog-advanced.d.ts +9 -0
- package/dist/server/handlers/catalog-advanced.js +352 -0
- package/dist/server/handlers/catalog-advanced.js.map +1 -0
- package/dist/server/handlers/catalog-categories.d.ts +5 -0
- package/dist/server/handlers/catalog-categories.js +181 -0
- package/dist/server/handlers/catalog-categories.js.map +1 -0
- package/dist/server/handlers/catalog-products.d.ts +5 -0
- package/dist/server/handlers/catalog-products.js +404 -0
- package/dist/server/handlers/catalog-products.js.map +1 -0
- package/dist/server/handlers/catalog-schemas.d.ts +5 -0
- package/dist/server/handlers/catalog-schemas.js +426 -0
- package/dist/server/handlers/catalog-schemas.js.map +1 -0
- package/dist/server/handlers/catalog.test.js +297 -0
- package/dist/server/handlers/comms-documents-advanced.d.ts +8 -0
- package/dist/server/handlers/comms-documents-advanced.js +159 -0
- package/dist/server/handlers/comms-documents-advanced.js.map +1 -0
- package/dist/server/handlers/comms-documents.d.ts +10 -0
- package/dist/server/handlers/comms-documents.js +445 -0
- package/dist/server/handlers/comms-documents.js.map +1 -0
- package/dist/server/handlers/comms-email.d.ts +10 -0
- package/dist/server/handlers/comms-email.js +492 -0
- package/dist/server/handlers/comms-email.js.map +1 -0
- package/dist/server/handlers/comms-pdf-generation.d.ts +8 -0
- package/dist/server/handlers/comms-pdf-generation.js +327 -0
- package/dist/server/handlers/comms-pdf-generation.js.map +1 -0
- package/dist/server/handlers/comms-pdf-helpers.d.ts +9 -0
- package/dist/server/handlers/comms-pdf-helpers.js +126 -0
- package/dist/server/handlers/comms-pdf-helpers.js.map +1 -0
- package/dist/server/handlers/comms-shared.d.ts +3 -0
- package/dist/server/handlers/comms-shared.js +28 -0
- package/dist/server/handlers/comms-shared.js.map +1 -0
- package/dist/server/handlers/comms.test.js +289 -0
- package/dist/server/handlers/creations-actions.d.ts +21 -0
- package/dist/server/handlers/creations-actions.js +250 -0
- package/dist/server/handlers/creations-actions.js.map +1 -0
- package/dist/server/handlers/creations-advanced-collections.test.js +214 -0
- package/dist/server/handlers/creations-advanced-generate.test.js +142 -0
- package/dist/server/handlers/creations-advanced.test.js +171 -0
- package/dist/server/handlers/creations-collections-preview.test.js +214 -0
- package/dist/server/handlers/creations-crud.d.ts +35 -0
- package/dist/server/handlers/creations-crud.js +248 -0
- package/dist/server/handlers/creations-crud.js.map +1 -0
- package/dist/server/handlers/creations-crud.test.js +260 -0
- package/dist/server/handlers/creations-generate.d.ts +21 -0
- package/dist/server/handlers/creations-generate.js +256 -0
- package/dist/server/handlers/creations-generate.js.map +1 -0
- package/dist/server/handlers/creations-mutations.test.js +197 -0
- package/dist/server/handlers/crm-customers-read.d.ts +58 -0
- package/dist/server/handlers/crm-customers-read.js +208 -0
- package/dist/server/handlers/crm-customers-read.js.map +1 -0
- package/dist/server/handlers/crm-customers-write.d.ts +54 -0
- package/dist/server/handlers/crm-customers-write.js +414 -0
- package/dist/server/handlers/crm-customers-write.js.map +1 -0
- package/dist/server/handlers/crm-utils.d.ts +6 -0
- package/dist/server/handlers/crm-utils.js +19 -0
- package/dist/server/handlers/crm-utils.js.map +1 -0
- package/dist/server/handlers/crm.test.js +179 -0
- package/dist/server/handlers/discovery-advertise.d.ts +18 -0
- package/dist/server/handlers/discovery-advertise.js +101 -0
- package/dist/server/handlers/discovery-advertise.js.map +1 -0
- package/dist/server/handlers/discovery-advertise.test.js +185 -0
- package/dist/server/handlers/discovery-scan.d.ts +19 -0
- package/dist/server/handlers/discovery-scan.js +107 -0
- package/dist/server/handlers/discovery-scan.js.map +1 -0
- package/dist/server/handlers/discovery-scan.test.js +233 -0
- package/dist/server/handlers/embeddings-embed-search.test.js +196 -0
- package/dist/server/handlers/embeddings-index-delete-stats.test.js +140 -0
- package/dist/server/handlers/embeddings-search.test.js +221 -0
- package/dist/server/handlers/embeddings.test.js +137 -0
- package/dist/server/handlers/enrichment-breach.d.ts +8 -0
- package/dist/server/handlers/enrichment-breach.js +266 -0
- package/dist/server/handlers/enrichment-breach.js.map +1 -0
- package/dist/server/handlers/enrichment-data.d.ts +13 -0
- package/dist/server/handlers/enrichment-data.js +145 -0
- package/dist/server/handlers/enrichment-data.js.map +1 -0
- package/dist/server/handlers/enrichment-enrich.d.ts +6 -0
- package/dist/server/handlers/enrichment-enrich.js +235 -0
- package/dist/server/handlers/enrichment-enrich.js.map +1 -0
- package/dist/server/handlers/enrichment-helpers.d.ts +10 -0
- package/dist/server/handlers/enrichment-helpers.js +17 -0
- package/dist/server/handlers/enrichment-helpers.js.map +1 -0
- package/dist/server/handlers/enrichment-mutations.test.js +240 -0
- package/dist/server/handlers/enrichment-queries.test.js +181 -0
- package/dist/server/handlers/enrichment-validation.test.js +177 -0
- package/dist/server/handlers/enrichment-writes.d.ts +16 -0
- package/dist/server/handlers/enrichment-writes.js +226 -0
- package/dist/server/handlers/enrichment-writes.js.map +1 -0
- package/dist/server/handlers/image-gen-actions.d.ts +18 -0
- package/dist/server/handlers/image-gen-actions.js +183 -0
- package/dist/server/handlers/image-gen-actions.js.map +1 -0
- package/dist/server/handlers/image-gen-providers.d.ts +29 -0
- package/dist/server/handlers/image-gen-providers.js +161 -0
- package/dist/server/handlers/image-gen-providers.js.map +1 -0
- package/dist/server/handlers/image-gen.test.js +205 -0
- package/dist/server/handlers/inventory-audit.d.ts +10 -0
- package/dist/server/handlers/inventory-audit.js +90 -0
- package/dist/server/handlers/inventory-audit.js.map +1 -0
- package/dist/server/handlers/inventory-helpers.d.ts +8 -0
- package/dist/server/handlers/inventory-helpers.js +19 -0
- package/dist/server/handlers/inventory-helpers.js.map +1 -0
- package/dist/server/handlers/inventory-query.d.ts +67 -0
- package/dist/server/handlers/inventory-query.js +299 -0
- package/dist/server/handlers/inventory-query.js.map +1 -0
- package/dist/server/handlers/inventory.test.js +380 -0
- package/dist/server/handlers/kali-background.test.js +222 -0
- package/dist/server/handlers/kali-errors.test.js +92 -0
- package/dist/server/handlers/kali-validation.test.js +234 -0
- package/dist/server/handlers/llm-providers-actions.test.js +220 -0
- package/dist/server/handlers/llm-providers-anthropic.test.js +239 -0
- package/dist/server/handlers/llm-providers-clients.d.ts +6 -0
- package/dist/server/handlers/llm-providers-clients.js +296 -0
- package/dist/server/handlers/llm-providers-clients.js.map +1 -0
- package/dist/server/handlers/llm-providers-credentials.d.ts +3 -0
- package/dist/server/handlers/llm-providers-credentials.js +109 -0
- package/dist/server/handlers/llm-providers-credentials.js.map +1 -0
- package/dist/server/handlers/llm-providers-failover.test.js +232 -0
- package/dist/server/handlers/llm-providers-models.d.ts +67 -0
- package/dist/server/handlers/llm-providers-models.js +213 -0
- package/dist/server/handlers/llm-providers-models.js.map +1 -0
- package/dist/server/handlers/llm-providers-providers.test.js +300 -0
- package/dist/server/handlers/llm-providers-validation.test.js +239 -0
- package/dist/server/handlers/local-agent-tools.test.js +224 -0
- package/dist/server/handlers/local-agent.test.js +198 -0
- package/dist/server/handlers/local-agent.tools-status.test.js +204 -0
- package/dist/server/handlers/local-agent.validation-exec.test.js +182 -0
- package/dist/server/handlers/media-actions.d.ts +14 -0
- package/dist/server/handlers/media-actions.js +398 -0
- package/dist/server/handlers/media-actions.js.map +1 -0
- package/dist/server/handlers/media-crud.d.ts +9 -0
- package/dist/server/handlers/media-crud.js +365 -0
- package/dist/server/handlers/media-crud.js.map +1 -0
- package/dist/server/handlers/media-upload.d.ts +4 -0
- package/dist/server/handlers/media-upload.js +179 -0
- package/dist/server/handlers/media-upload.js.map +1 -0
- package/dist/server/handlers/media-utils.d.ts +14 -0
- package/dist/server/handlers/media-utils.js +33 -0
- package/dist/server/handlers/media-utils.js.map +1 -0
- package/dist/server/handlers/meta-ads-advanced.d.ts +46 -0
- package/dist/server/handlers/meta-ads-advanced.js +222 -0
- package/dist/server/handlers/meta-ads-advanced.js.map +1 -0
- package/dist/server/handlers/meta-ads-audience-rules.test.js +243 -0
- package/dist/server/handlers/meta-ads-audience-targeting.test.js +205 -0
- package/dist/server/handlers/meta-ads-audiences-targeting.test.js +383 -0
- package/dist/server/handlers/meta-ads-audiences.d.ts +48 -0
- package/dist/server/handlers/meta-ads-audiences.js +214 -0
- package/dist/server/handlers/meta-ads-audiences.js.map +1 -0
- package/dist/server/handlers/meta-ads-crud-ads.test.js +136 -0
- package/dist/server/handlers/meta-ads-crud-campaigns.test.js +189 -0
- package/dist/server/handlers/meta-ads-crud-create.test.js +303 -0
- package/dist/server/handlers/meta-ads-crud-list-update.test.js +259 -0
- package/dist/server/handlers/meta-ads-crud-read.d.ts +78 -0
- package/dist/server/handlers/meta-ads-crud-read.js +204 -0
- package/dist/server/handlers/meta-ads-crud-read.js.map +1 -0
- package/dist/server/handlers/meta-ads-crud-write.d.ts +105 -0
- package/dist/server/handlers/meta-ads-crud-write.js +390 -0
- package/dist/server/handlers/meta-ads-crud-write.js.map +1 -0
- package/dist/server/handlers/meta-ads-crud.d.ts +9 -0
- package/dist/server/handlers/meta-ads-crud.js +12 -0
- package/dist/server/handlers/meta-ads-crud.js.map +1 -0
- package/dist/server/handlers/meta-ads-delete-publish-sync.test.js +282 -0
- package/dist/server/handlers/meta-ads-graph-api.d.ts +25 -0
- package/dist/server/handlers/meta-ads-graph-api.js +155 -0
- package/dist/server/handlers/meta-ads-graph-api.js.map +1 -0
- package/dist/server/handlers/meta-ads-insights.test.js +80 -0
- package/dist/server/handlers/meta-ads-list-get.test.js +237 -0
- package/dist/server/handlers/meta-ads-media.d.ts +16 -0
- package/dist/server/handlers/meta-ads-media.js +205 -0
- package/dist/server/handlers/meta-ads-media.js.map +1 -0
- package/dist/server/handlers/meta-ads-pixels-rules.d.ts +127 -0
- package/dist/server/handlers/meta-ads-pixels-rules.js +463 -0
- package/dist/server/handlers/meta-ads-pixels-rules.js.map +1 -0
- package/dist/server/handlers/meta-ads-publish-ad.d.ts +11 -0
- package/dist/server/handlers/meta-ads-publish-ad.js +229 -0
- package/dist/server/handlers/meta-ads-publish-ad.js.map +1 -0
- package/dist/server/handlers/meta-ads-publish-delete.test.js +254 -0
- package/dist/server/handlers/meta-ads-publish-helpers.js +117 -0
- package/dist/server/handlers/meta-ads-publish-helpers.js.map +1 -0
- package/dist/server/handlers/meta-ads-publish-sync.test.js +205 -0
- package/dist/server/handlers/meta-ads-publish.d.ts +14 -0
- package/dist/server/handlers/meta-ads-publish.js +194 -0
- package/dist/server/handlers/meta-ads-publish.js.map +1 -0
- package/dist/server/handlers/meta-ads-publish.test.js +254 -0
- package/dist/server/handlers/meta-ads-sync-insights.test.js +184 -0
- package/dist/server/handlers/meta-ads-targeting.d.ts +27 -0
- package/dist/server/handlers/meta-ads-targeting.js +323 -0
- package/dist/server/handlers/meta-ads-targeting.js.map +1 -0
- package/dist/server/handlers/meta-ads-types.d.ts +49 -0
- package/dist/server/handlers/meta-ads-types.js +59 -0
- package/dist/server/handlers/meta-ads-types.js.map +1 -0
- package/dist/server/handlers/meta-ads-update.test.js +117 -0
- package/dist/server/handlers/meta-ads.d.ts +25 -0
- package/dist/server/handlers/meta-ads.js +392 -3
- package/dist/server/handlers/meta-ads.js.map +1 -1
- package/dist/server/handlers/nodes-channels.test.js +413 -0
- package/dist/server/handlers/nodes-events.test.js +131 -0
- package/dist/server/handlers/nodes-handlers-channels-messages.d.ts +20 -0
- package/dist/server/handlers/nodes-handlers-channels-messages.js +314 -0
- package/dist/server/handlers/nodes-handlers-channels-messages.js.map +1 -0
- package/dist/server/handlers/nodes-handlers-channels.d.ts +19 -0
- package/dist/server/handlers/nodes-handlers-channels.js +225 -0
- package/dist/server/handlers/nodes-handlers-channels.js.map +1 -0
- package/dist/server/handlers/nodes-handlers-mgmt.d.ts +33 -0
- package/dist/server/handlers/nodes-handlers-mgmt.js +418 -0
- package/dist/server/handlers/nodes-handlers-mgmt.js.map +1 -0
- package/dist/server/handlers/nodes-list-delete.test.js +171 -0
- package/dist/server/handlers/nodes-messages-delivery.test.js +208 -0
- package/dist/server/handlers/nodes-messages.test.js +211 -0
- package/dist/server/handlers/nodes-register.test.js +277 -0
- package/dist/server/handlers/nodes-routes-channels.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-channels.js +217 -0
- package/dist/server/handlers/nodes-routes-channels.js.map +1 -0
- package/dist/server/handlers/nodes-routes-crud.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-crud.js +290 -0
- package/dist/server/handlers/nodes-routes-crud.js.map +1 -0
- package/dist/server/handlers/nodes-routes-delivery.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-delivery.js +226 -0
- package/dist/server/handlers/nodes-routes-delivery.js.map +1 -0
- package/dist/server/handlers/nodes-routes-messages.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-messages.js +218 -0
- package/dist/server/handlers/nodes-routes-messages.js.map +1 -0
- package/dist/server/handlers/nodes-routes-register.d.ts +9 -0
- package/dist/server/handlers/nodes-routes-register.js +239 -0
- package/dist/server/handlers/nodes-routes-register.js.map +1 -0
- package/dist/server/handlers/nodes-types.d.ts +82 -0
- package/dist/server/handlers/nodes-types.js +220 -0
- package/dist/server/handlers/nodes-types.js.map +1 -0
- package/dist/server/handlers/nodes-utils.d.ts +70 -0
- package/dist/server/handlers/nodes-utils.js +214 -0
- package/dist/server/handlers/nodes-utils.js.map +1 -0
- package/dist/server/handlers/nodes.test.js +353 -0
- package/dist/server/handlers/operations.test.js +136 -0
- package/dist/server/handlers/platform-telemetry.d.ts +10 -0
- package/dist/server/handlers/platform-telemetry.js +372 -0
- package/dist/server/handlers/platform-telemetry.js.map +1 -0
- package/dist/server/handlers/platform-telemetry.test.js +200 -0
- package/dist/server/handlers/platform-websearch.test.js +160 -0
- package/dist/server/handlers/sessions-handlers.d.ts +23 -0
- package/dist/server/handlers/sessions-handlers.js +374 -0
- package/dist/server/handlers/sessions-handlers.js.map +1 -0
- package/dist/server/handlers/storefront-cart.d.ts +31 -0
- package/dist/server/handlers/storefront-cart.js +381 -0
- package/dist/server/handlers/storefront-cart.js.map +1 -0
- package/dist/server/handlers/storefront.test.js +329 -0
- package/dist/server/handlers/supply-chain-transfers.d.ts +10 -0
- package/dist/server/handlers/supply-chain-transfers.js +214 -0
- package/dist/server/handlers/supply-chain-transfers.js.map +1 -0
- package/dist/server/handlers/supply-chain-utils.d.ts +2 -0
- package/dist/server/handlers/supply-chain-utils.js +21 -0
- package/dist/server/handlers/supply-chain-utils.js.map +1 -0
- package/dist/server/handlers/supply-chain.test.js +347 -0
- package/dist/server/handlers/transcription.test.js +118 -0
- package/dist/server/handlers/video-gen-providers.d.ts +30 -0
- package/dist/server/handlers/video-gen-providers.js +205 -0
- package/dist/server/handlers/video-gen-providers.js.map +1 -0
- package/dist/server/handlers/video-gen-sora.d.ts +5 -0
- package/dist/server/handlers/video-gen-sora.js +87 -0
- package/dist/server/handlers/video-gen-sora.js.map +1 -0
- package/dist/server/handlers/video-gen-veo.js +114 -0
- package/dist/server/handlers/video-gen-veo.js.map +1 -0
- package/dist/server/handlers/video-gen.test.js +146 -0
- package/dist/server/handlers/voice-handlers-audio.d.ts +9 -0
- package/dist/server/handlers/voice-handlers-audio.js +229 -0
- package/dist/server/handlers/voice-handlers-audio.js.map +1 -0
- package/dist/server/handlers/voice-handlers-music.d.ts +5 -0
- package/dist/server/handlers/voice-handlers-music.js +124 -0
- package/dist/server/handlers/voice-handlers-music.js.map +1 -0
- package/dist/server/handlers/voice-handlers-pvc.d.ts +8 -0
- package/dist/server/handlers/voice-handlers-pvc.js +345 -0
- package/dist/server/handlers/voice-handlers-pvc.js.map +1 -0
- package/dist/server/handlers/voice-handlers-tts.d.ts +5 -0
- package/dist/server/handlers/voice-handlers-tts.js +142 -0
- package/dist/server/handlers/voice-handlers-tts.js.map +1 -0
- package/dist/server/handlers/voice-handlers-voices.d.ts +8 -0
- package/dist/server/handlers/voice-handlers-voices.js +321 -0
- package/dist/server/handlers/voice-handlers-voices.js.map +1 -0
- package/dist/server/handlers/voice-utils.d.ts +32 -0
- package/dist/server/handlers/voice-utils.js +281 -0
- package/dist/server/handlers/voice-utils.js.map +1 -0
- package/dist/server/handlers/voice.test.js +153 -0
- package/dist/server/handlers/workflow-crud-advanced.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-advanced.js +275 -0
- package/dist/server/handlers/workflow-crud-advanced.js.map +1 -0
- package/dist/server/handlers/workflow-crud-core.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-core.js +286 -0
- package/dist/server/handlers/workflow-crud-core.js.map +1 -0
- package/dist/server/handlers/workflow-crud-events.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-events.js +483 -0
- package/dist/server/handlers/workflow-crud-events.js.map +1 -0
- package/dist/server/handlers/workflow-crud-runs-lifecycle.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-runs-lifecycle.js +231 -0
- package/dist/server/handlers/workflow-crud-runs-lifecycle.js.map +1 -0
- package/dist/server/handlers/workflow-crud-runs-versioning.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-runs-versioning.js +319 -0
- package/dist/server/handlers/workflow-crud-runs-versioning.js.map +1 -0
- package/dist/server/handlers/workflow-crud-runs.d.ts +8 -0
- package/dist/server/handlers/workflow-crud-runs.js +18 -0
- package/dist/server/handlers/workflow-crud-runs.js.map +1 -0
- package/dist/server/handlers/workflow-steps-advancement.d.ts +13 -0
- package/dist/server/handlers/workflow-steps-advancement.js +197 -0
- package/dist/server/handlers/workflow-steps-advancement.js.map +1 -0
- package/dist/server/handlers/workflow-steps-circuit-breaker.d.ts +7 -0
- package/dist/server/handlers/workflow-steps-circuit-breaker.js +131 -0
- package/dist/server/handlers/workflow-steps-circuit-breaker.js.map +1 -0
- package/dist/server/handlers/workflow-steps-completion.d.ts +5 -0
- package/dist/server/handlers/workflow-steps-completion.js +254 -0
- package/dist/server/handlers/workflow-steps-completion.js.map +1 -0
- package/dist/server/handlers/workflow-steps-cron.d.ts +4 -0
- package/dist/server/handlers/workflow-steps-cron.js +259 -0
- package/dist/server/handlers/workflow-steps-cron.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine-execute.d.ts +3 -0
- package/dist/server/handlers/workflow-steps-engine-execute.js +388 -0
- package/dist/server/handlers/workflow-steps-engine-execute.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine-inline.d.ts +2 -0
- package/dist/server/handlers/workflow-steps-engine-inline.js +91 -0
- package/dist/server/handlers/workflow-steps-engine-inline.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine-persist.d.ts +5 -0
- package/dist/server/handlers/workflow-steps-engine-persist.js +192 -0
- package/dist/server/handlers/workflow-steps-engine-persist.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine-process.d.ts +7 -0
- package/dist/server/handlers/workflow-steps-engine-process.js +290 -0
- package/dist/server/handlers/workflow-steps-engine-process.js.map +1 -0
- package/dist/server/handlers/workflow-steps-engine.d.ts +3 -0
- package/dist/server/handlers/workflow-steps-engine.js +10 -0
- package/dist/server/handlers/workflow-steps-engine.js.map +1 -0
- package/dist/server/handlers/workflow-steps-executors-llm.d.ts +7 -0
- package/dist/server/handlers/workflow-steps-executors-llm.js +265 -0
- package/dist/server/handlers/workflow-steps-executors-llm.js.map +1 -0
- package/dist/server/handlers/workflow-steps-executors.d.ts +9 -0
- package/dist/server/handlers/workflow-steps-executors.js +188 -0
- package/dist/server/handlers/workflow-steps-executors.js.map +1 -0
- package/dist/server/handlers/workflow-steps-maintenance.d.ts +4 -0
- package/dist/server/handlers/workflow-steps-maintenance.js +256 -0
- package/dist/server/handlers/workflow-steps-maintenance.js.map +1 -0
- package/dist/server/handlers/workflow-steps-types.d.ts +84 -0
- package/dist/server/handlers/workflow-steps-types.js +179 -0
- package/dist/server/handlers/workflow-steps-types.js.map +1 -0
- package/dist/server/handlers/workflow-steps-webhook.d.ts +5 -0
- package/dist/server/handlers/workflow-steps-webhook.js +179 -0
- package/dist/server/handlers/workflow-steps-webhook.js.map +1 -0
- package/dist/server/handlers/workflow-steps.test.js +330 -0
- package/dist/server/handlers/workflows-extras.test.js +65 -0
- package/dist/server/handlers/workflows.part2.test.js +170 -0
- package/dist/server/handlers/workflows.test.js +281 -0
- package/dist/server/index.js +81 -1720
- package/dist/server/index.js.map +1 -1
- package/dist/server/lib/__tests__/batch-client-conversion-jsonl.test.js +171 -0
- package/dist/server/lib/__tests__/batch-client-polling.test.js +292 -0
- package/dist/server/lib/__tests__/batch-client-queue.test.js +270 -0
- package/dist/server/lib/__tests__/clickhouse-buffer.test.js +236 -0
- package/dist/server/lib/__tests__/code-worker-edge-cases.test.js +118 -0
- package/dist/server/lib/__tests__/code-worker-pool-execute.test.js +193 -0
- package/dist/server/lib/__tests__/code-worker-pool-execution.test.js +165 -0
- package/dist/server/lib/__tests__/code-worker-pool-init.test.js +131 -0
- package/dist/server/lib/__tests__/code-worker-pool.test.js +194 -0
- package/dist/server/lib/__tests__/code-worker-sandbox-ops.test.js +123 -0
- package/dist/server/lib/__tests__/code-worker-sandbox.test.js +217 -0
- package/dist/server/lib/__tests__/code-worker.test.js +179 -0
- package/dist/server/lib/__tests__/compaction-service-generate.test.js +229 -0
- package/dist/server/lib/__tests__/compaction-service.test.js +319 -0
- package/dist/server/lib/__tests__/otel.test.js +146 -0
- package/dist/server/lib/__tests__/prompt-sanitizer-validation.test.js +165 -0
- package/dist/server/lib/__tests__/prompt-sanitizer.sanitize.test.js +343 -0
- package/dist/server/lib/__tests__/prompt-sanitizer.test.js +328 -0
- package/dist/server/lib/__tests__/prompt-sanitizer.validate-tool.test.js +145 -0
- package/dist/server/lib/__tests__/provider-capabilities.test.js +263 -0
- package/dist/server/lib/__tests__/provider-failover-routing.test.js +145 -0
- package/dist/server/lib/__tests__/provider-failover-state.test.js +131 -0
- package/dist/server/lib/__tests__/rate-limiter-budgets.test.js +216 -0
- package/dist/server/lib/__tests__/rate-limiter.budgets-tools.test.js +113 -0
- package/dist/server/lib/__tests__/rate-limiter.check-request.test.js +141 -0
- package/dist/server/lib/__tests__/rate-limiter.stats-lifecycle.test.js +135 -0
- package/dist/server/lib/__tests__/rate-limiter.test.js +207 -0
- package/dist/server/lib/__tests__/server-agent-loop-abort-conditions.test.js +544 -0
- package/dist/server/lib/__tests__/server-agent-loop-abort.part2.test.js +504 -0
- package/dist/server/lib/__tests__/server-agent-loop-abort.test.js +396 -0
- package/dist/server/lib/__tests__/server-agent-loop-compaction.test.js +397 -0
- package/dist/server/lib/__tests__/server-agent-loop-failover.test.js +356 -0
- package/dist/server/lib/__tests__/server-agent-loop-features-caching.test.js +519 -0
- package/dist/server/lib/__tests__/server-agent-loop-features-edges.test.js +512 -0
- package/dist/server/lib/__tests__/server-subagent-bailout.test.js +194 -0
- package/dist/server/lib/__tests__/server-subagent-basics.test.js +348 -0
- package/dist/server/lib/__tests__/server-subagent-errors-abort.test.js +319 -0
- package/dist/server/lib/__tests__/server-subagent-errors-progress.test.js +253 -0
- package/dist/server/lib/__tests__/server-subagent-errors.part2.test.js +253 -0
- package/dist/server/lib/__tests__/server-subagent-errors.test.js +319 -0
- package/dist/server/lib/__tests__/session-checkpoint-load.test.js +275 -0
- package/dist/server/lib/__tests__/session-checkpoint-save.test.js +159 -0
- package/dist/server/lib/__tests__/ssrf-guard.test.js +93 -0
- package/dist/server/lib/__tests__/supabase-client.test.js +111 -0
- package/dist/server/lib/__tests__/template-resolver.test.js +317 -0
- package/dist/server/lib/__tests__/utils-timeout.test.js +49 -0
- package/dist/server/lib/__tests__/utils.test.js +322 -0
- package/dist/server/lib/agent-loop-executor.d.ts +7 -0
- package/dist/server/lib/agent-loop-executor.js +224 -0
- package/dist/server/lib/agent-loop-executor.js.map +1 -0
- package/dist/server/lib/agent-loop-turn.d.ts +53 -0
- package/dist/server/lib/agent-loop-turn.js +166 -0
- package/dist/server/lib/agent-loop-turn.js.map +1 -0
- package/dist/server/lib/agent-loop-types.d.ts +118 -0
- package/dist/server/lib/agent-loop-types.js +53 -0
- package/dist/server/lib/agent-loop-types.js.map +1 -0
- package/dist/server/lib/batch-client-anthropic.d.ts +10 -0
- package/dist/server/lib/batch-client-anthropic.js +144 -0
- package/dist/server/lib/batch-client-anthropic.js.map +1 -0
- package/dist/server/lib/batch-client-openai.d.ts +10 -0
- package/dist/server/lib/batch-client-openai.js +172 -0
- package/dist/server/lib/batch-client-openai.js.map +1 -0
- package/dist/server/lib/batch-client-types.d.ts +54 -0
- package/dist/server/lib/batch-client-types.js +27 -0
- package/dist/server/lib/batch-client-types.js.map +1 -0
- package/dist/server/lib/coa-renderer-components.d.ts +15 -0
- package/dist/server/lib/coa-renderer-components.js +361 -0
- package/dist/server/lib/coa-renderer-components.js.map +1 -0
- package/dist/server/lib/coa-renderer-pages.d.ts +15 -0
- package/dist/server/lib/coa-renderer-pages.js +467 -0
- package/dist/server/lib/coa-renderer-pages.js.map +1 -0
- package/dist/server/lib/coa-renderer-styles.d.ts +525 -0
- package/dist/server/lib/coa-renderer-styles.js +540 -0
- package/dist/server/lib/coa-renderer-styles.js.map +1 -0
- package/dist/server/lib/coa-renderer-tokens.d.ts +107 -0
- package/dist/server/lib/coa-renderer-tokens.js +46 -0
- package/dist/server/lib/coa-renderer-tokens.js.map +1 -0
- package/dist/server/lib/pdf-renderer-calc.d.ts +7 -0
- package/dist/server/lib/pdf-renderer-calc.js +272 -0
- package/dist/server/lib/pdf-renderer-calc.js.map +1 -0
- package/dist/server/lib/pdf-renderer-generation.d.ts +73 -0
- package/dist/server/lib/pdf-renderer-generation.js +298 -0
- package/dist/server/lib/pdf-renderer-generation.js.map +1 -0
- package/dist/server/lib/pdf-renderer-layout.d.ts +2 -0
- package/dist/server/lib/pdf-renderer-layout.js +144 -0
- package/dist/server/lib/pdf-renderer-layout.js.map +1 -0
- package/dist/server/lib/pdf-renderer-validation.d.ts +14 -0
- package/dist/server/lib/pdf-renderer-validation.js +220 -0
- package/dist/server/lib/pdf-renderer-validation.js.map +1 -0
- package/dist/server/lib/react-pdf-layout-elements.d.ts +8 -0
- package/dist/server/lib/react-pdf-layout-elements.js +366 -0
- package/dist/server/lib/react-pdf-layout-elements.js.map +1 -0
- package/dist/server/lib/react-pdf-layout-labels.d.ts +38 -0
- package/dist/server/lib/react-pdf-layout-labels.js +217 -0
- package/dist/server/lib/react-pdf-layout-labels.js.map +1 -0
- package/dist/server/lib/server-agent-loop-init.d.ts +28 -0
- package/dist/server/lib/server-agent-loop-init.js +138 -0
- package/dist/server/lib/server-agent-loop-init.js.map +1 -0
- package/dist/server/lib/server-agent-loop-v2.d.ts +110 -0
- package/dist/server/lib/server-agent-loop-v2.js +340 -0
- package/dist/server/lib/server-agent-loop-v2.js.map +1 -0
- package/dist/server/lib/server-agent-loop.js +2 -1
- package/dist/server/lib/server-agent-loop.js.map +1 -1
- package/dist/server/lib/server-subagent-loop.d.ts +3 -0
- package/dist/server/lib/server-subagent-loop.js +267 -0
- package/dist/server/lib/server-subagent-loop.js.map +1 -0
- package/dist/server/lib/session-types.d.ts +106 -0
- package/dist/server/lib/session-types.js +2 -0
- package/dist/server/lib/session-types.js.map +1 -0
- package/dist/server/local-agent-gateway-api.d.ts +34 -0
- package/dist/server/local-agent-gateway-api.js +156 -0
- package/dist/server/local-agent-gateway-api.js.map +1 -0
- package/dist/server/local-agent-gateway-handler.d.ts +3 -0
- package/dist/server/local-agent-gateway-handler.js +292 -0
- package/dist/server/local-agent-gateway-handler.js.map +1 -0
- package/dist/server/local-agent-gateway-init.d.ts +21 -0
- package/dist/server/local-agent-gateway-init.js +143 -0
- package/dist/server/local-agent-gateway-init.js.map +1 -0
- package/dist/server/local-agent-gateway-messages.d.ts +12 -0
- package/dist/server/local-agent-gateway-messages.js +108 -0
- package/dist/server/local-agent-gateway-messages.js.map +1 -0
- package/dist/server/local-agent-gateway-stats.d.ts +53 -0
- package/dist/server/local-agent-gateway-stats.js +129 -0
- package/dist/server/local-agent-gateway-stats.js.map +1 -0
- package/dist/server/local-agent-gateway-types.d.ts +94 -0
- package/dist/server/local-agent-gateway-types.js +78 -0
- package/dist/server/local-agent-gateway-types.js.map +1 -0
- package/dist/server/local-agent-gateway.d.ts +6 -0
- package/dist/server/local-agent-gateway.js +40 -0
- package/dist/server/local-agent-gateway.js.map +1 -1
- package/dist/server/providers/__tests__/anthropic-adapter.test.js +228 -0
- package/dist/server/providers/__tests__/anthropic-betas-toolchoice.test.js +257 -0
- package/dist/server/providers/__tests__/anthropic-errors.test.js +262 -0
- package/dist/server/providers/__tests__/anthropic-stream-core.test.js +275 -0
- package/dist/server/providers/__tests__/anthropic-streaming-betas.test.js +247 -0
- package/dist/server/providers/__tests__/anthropic-streaming-core.test.js +275 -0
- package/dist/server/providers/__tests__/bedrock-config.test.js +177 -0
- package/dist/server/providers/__tests__/bedrock-stream-behavior-streaming.test.js +272 -0
- package/dist/server/providers/__tests__/bedrock-stream-behavior-toolchoice.test.js +214 -0
- package/dist/server/providers/__tests__/bedrock-stream-behavior.part2.test.js +165 -0
- package/dist/server/providers/__tests__/bedrock-stream-behavior.test.js +309 -0
- package/dist/server/providers/__tests__/bedrock-stream-body-credentials.test.js +170 -0
- package/dist/server/providers/__tests__/bedrock-stream-body-extras.test.js +183 -0
- package/dist/server/providers/__tests__/bedrock-stream-body-request.test.js +305 -0
- package/dist/server/providers/__tests__/bedrock-stream-body.part2.test.js +305 -0
- package/dist/server/providers/__tests__/bedrock-stream-body.test.js +175 -0
- package/dist/server/providers/__tests__/bedrock-stream-errors.test.js +165 -0
- package/dist/server/providers/__tests__/gemini-config-methods.test.js +182 -0
- package/dist/server/providers/__tests__/gemini-config-streaming.test.js +257 -0
- package/dist/server/providers/__tests__/gemini-conversion-messages.test.js +247 -0
- package/dist/server/providers/__tests__/gemini-conversion-schema.test.js +365 -0
- package/dist/server/providers/__tests__/gemini-tools-choice.test.js +221 -0
- package/dist/server/providers/__tests__/gemini-tools-fn.test.js +252 -0
- package/dist/server/providers/__tests__/openai-config.test.js +194 -0
- package/dist/server/providers/__tests__/openai-conversion.test.js +276 -0
- package/dist/server/providers/__tests__/openai-messages.test.js +261 -0
- package/dist/server/providers/__tests__/openai-streaming.test.js +394 -0
- package/dist/server/providers/__tests__/openai-tools-cache.test.js +227 -0
- package/dist/server/providers/__tests__/registry.test.js +183 -0
- package/dist/server/providers/__tests__/shared.test.js +297 -0
- package/dist/server/providers/gemini-conversion.d.ts +17 -0
- package/dist/server/providers/gemini-conversion.js +185 -0
- package/dist/server/providers/gemini-conversion.js.map +1 -0
- package/dist/server/providers/gemini-streaming.d.ts +18 -0
- package/dist/server/providers/gemini-streaming.js +187 -0
- package/dist/server/providers/gemini-streaming.js.map +1 -0
- package/dist/server/providers/openai-adapter.d.ts +15 -0
- package/dist/server/providers/openai-adapter.js +423 -0
- package/dist/server/providers/openai-adapter.js.map +1 -0
- package/dist/server/providers/openai-conversion.d.ts +21 -0
- package/dist/server/providers/openai-conversion.js +191 -0
- package/dist/server/providers/openai-conversion.js.map +1 -0
- package/dist/server/server-agent.d.ts +21 -0
- package/dist/server/server-agent.js +162 -0
- package/dist/server/server-agent.js.map +1 -0
- package/dist/server/server-chat.d.ts +6 -0
- package/dist/server/server-chat.js +210 -0
- package/dist/server/server-chat.js.map +1 -0
- package/dist/server/server-cost-guard.d.ts +16 -0
- package/dist/server/server-cost-guard.js +141 -0
- package/dist/server/server-cost-guard.js.map +1 -0
- package/dist/server/server-executors.d.ts +10 -0
- package/dist/server/server-executors.js +110 -0
- package/dist/server/server-executors.js.map +1 -0
- package/dist/server/server-helpers.d.ts +49 -0
- package/dist/server/server-helpers.js +210 -0
- package/dist/server/server-helpers.js.map +1 -0
- package/dist/server/server-persist.d.ts +43 -0
- package/dist/server/server-persist.js +249 -0
- package/dist/server/server-persist.js.map +1 -0
- package/dist/server/server-rate-limit.d.ts +9 -0
- package/dist/server/server-rate-limit.js +77 -0
- package/dist/server/server-rate-limit.js.map +1 -0
- package/dist/server/server-routes-approvals.d.ts +4 -0
- package/dist/server/server-routes-approvals.js +238 -0
- package/dist/server/server-routes-approvals.js.map +1 -0
- package/dist/server/server-routes-auth.d.ts +7 -0
- package/dist/server/server-routes-auth.js +532 -0
- package/dist/server/server-routes-auth.js.map +1 -0
- package/dist/server/server-routes-events.d.ts +4 -0
- package/dist/server/server-routes-events.js +167 -0
- package/dist/server/server-routes-events.js.map +1 -0
- package/dist/server/server-routes-public.d.ts +24 -0
- package/dist/server/server-routes-public.js +453 -0
- package/dist/server/server-routes-public.js.map +1 -0
- package/dist/server/server-routes-waitpoints.d.ts +4 -0
- package/dist/server/server-routes-waitpoints.js +190 -0
- package/dist/server/server-routes-waitpoints.js.map +1 -0
- package/dist/server/server-routes-webchat.d.ts +14 -0
- package/dist/server/server-routes-webchat.js +307 -0
- package/dist/server/server-routes-webchat.js.map +1 -0
- package/dist/server/server-routes-workflows.d.ts +5 -0
- package/dist/server/server-routes-workflows.js +289 -0
- package/dist/server/server-routes-workflows.js.map +1 -0
- package/dist/server/server-sse.d.ts +13 -0
- package/dist/server/server-sse.js +197 -0
- package/dist/server/server-sse.js.map +1 -0
- package/dist/server/server-store-circuit-breaker.d.ts +32 -0
- package/dist/server/server-store-circuit-breaker.js +211 -0
- package/dist/server/server-store-circuit-breaker.js.map +1 -0
- package/dist/server/server-store.d.ts +5 -0
- package/dist/server/server-store.js +71 -0
- package/dist/server/server-store.js.map +1 -0
- package/dist/server/server-trace.d.ts +41 -0
- package/dist/server/server-trace.js +133 -0
- package/dist/server/server-trace.js.map +1 -0
- package/dist/server/server-worker.d.ts +4 -0
- package/dist/server/server-worker.js +127 -0
- package/dist/server/server-worker.js.map +1 -0
- package/dist/server/session-events.d.ts +27 -0
- package/dist/server/session-events.js +69 -0
- package/dist/server/session-events.js.map +1 -0
- package/dist/server/session-manager.d.ts +52 -0
- package/dist/server/session-manager.js +502 -0
- package/dist/server/session-manager.js.map +1 -0
- package/dist/server/tool-router-discovery.d.ts +33 -0
- package/dist/server/tool-router-discovery.js +218 -0
- package/dist/server/tool-router-discovery.js.map +1 -0
- package/dist/server/tool-router-types.d.ts +91 -0
- package/dist/server/tool-router-types.js +336 -0
- package/dist/server/tool-router-types.js.map +1 -0
- package/dist/server/tool-router-user-tools.d.ts +16 -0
- package/dist/server/tool-router-user-tools.js +269 -0
- package/dist/server/tool-router-user-tools.js.map +1 -0
- package/dist/server/validation-schemas.d.ts +12 -0
- package/dist/server/validation-schemas.js +251 -0
- package/dist/server/validation-schemas.js.map +1 -0
- package/dist/shared/agent-core-config.d.ts +12 -0
- package/dist/shared/agent-core-config.js +77 -0
- package/dist/shared/agent-core-config.js.map +1 -0
- package/dist/shared/agent-core-config.test.js +132 -0
- package/dist/shared/agent-core-context-thinking.test.js +293 -0
- package/dist/shared/agent-core-loop-calls.test.js +174 -0
- package/dist/shared/agent-core-loop-detector-bail.test.js +201 -0
- package/dist/shared/agent-core-loop-detector.test.js +195 -0
- package/dist/shared/agent-core-loop-errors.test.js +258 -0
- package/dist/shared/agent-core-loop.d.ts +53 -0
- package/dist/shared/agent-core-loop.js +251 -0
- package/dist/shared/agent-core-loop.js.map +1 -0
- package/dist/shared/agent-core-pricing.test.js +191 -0
- package/dist/shared/agent-core-sanitize-retry.test.js +129 -0
- package/dist/shared/agent-core-tools.d.ts +32 -0
- package/dist/shared/agent-core-tools.js +323 -0
- package/dist/shared/agent-core-tools.js.map +1 -0
- package/dist/shared/agent-core-types.d.ts +182 -0
- package/dist/shared/agent-core-types.js +265 -0
- package/dist/shared/agent-core-types.js.map +1 -0
- package/dist/shared/agent-core.js +1 -1
- package/dist/shared/agent-core.js.map +1 -1
- package/dist/shared/agent-loop-base.d.ts +130 -0
- package/dist/shared/agent-loop-base.js +347 -0
- package/dist/shared/agent-loop-base.js.map +1 -0
- package/dist/shared/api-client-build-request.test.js +228 -0
- package/dist/shared/api-client-build-system-caching.test.js +107 -0
- package/dist/shared/api-client-build.test.js +223 -0
- package/dist/shared/api-client-config.d.ts +21 -0
- package/dist/shared/api-client-helpers.d.ts +57 -0
- package/dist/shared/api-client-helpers.test.js +261 -0
- package/dist/shared/api-client-proxy-happy.test.js +255 -0
- package/dist/shared/api-client-proxy-retry.test.js +307 -0
- package/dist/shared/api-client-proxy.d.ts +26 -0
- package/dist/shared/api-client-proxy.test.js +255 -0
- package/dist/shared/api-client-retry.test.js +307 -0
- package/dist/shared/api-client-system-trimming.test.js +261 -0
- package/dist/shared/api-client-trimming.d.ts +36 -0
- package/dist/shared/api-client.js.map +1 -1
- package/dist/shared/api-client.test.js +228 -0
- package/dist/shared/compaction-thinking.test.js +315 -0
- package/dist/shared/compaction-trimming.test.js +223 -0
- package/dist/shared/exec-validator.d.ts +29 -0
- package/dist/shared/exec-validator.js +106 -0
- package/dist/shared/exec-validator.js.map +1 -0
- package/dist/shared/imsg-constants.d.ts +8 -0
- package/dist/shared/imsg-constants.js +13 -0
- package/dist/shared/imsg-constants.js.map +1 -0
- package/dist/shared/sse-parser-callbacks.test.js +422 -0
- package/dist/shared/sse-parser-collect.test.js +252 -0
- package/dist/shared/sse-parser-e2e.test.js +558 -0
- package/dist/shared/sse-parser-parse.test.js +253 -0
- package/dist/shared/tool-dispatch-advanced-batch-build.test.js +405 -0
- package/dist/shared/tool-dispatch-advanced.test.js +320 -0
- package/dist/shared/tool-dispatch-basic.test.js +278 -0
- package/dist/shared/tool-dispatch-content.d.ts +14 -0
- package/dist/shared/tool-dispatch-parallel.test.js +378 -0
- package/dist/shared/tool-dispatch.js +1 -1
- package/dist/shared/tool-dispatch.js.map +1 -1
- package/dist/webchat/__tests__/widget-messaging.test.js +323 -0
- package/dist/webchat/__tests__/widget.test.js +273 -0
- package/dist/webchat/widget-styles.d.ts +7 -0
- package/dist/webchat/widget-styles.js +11 -0
- package/dist/webchat/widget-styles.js.map +1 -0
- package/package.json +7 -5
- package/src/cli/services/builtin-skills/verify.md +72 -0
- package/vendor/ink/build/ink.js +33 -10
- package/vendor/ink/build/log-update.js +11 -4
- package/whale-logo.png +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentLoop.js","names":["useRef","runAgentLoop","AgentEventEmitter","listBackups","useAgentLoop","deps","isStreaming","thinkingEnabled","conversationRef","abortRef","accTextRef","lastContentUpdateRef","thinkingChunksRef","thinkingDoneRef","rewindManagerRef","turnIndexRef","setMessages","setStreamingText","setIsStreaming","setActiveTools","setSubagentActivity","setCompletedSubagents","setTeamState","flushTimerRef","handleSend","userMessage","images","prev","role","text","map","img","name","Map","current","abort","AbortController","toolCalls","usage","dirty","tools","team","subagents","messages","subagentMap","pendingCompleted","pendingToolMsgs","markDirty","field","setTimeout","flushAll","cancelFlush","clearTimeout","teamName","tasksCompleted","teamCompleted","tasksTotal","teamTotal","teammates","teammateStatus","length","batch","splice","Date","now","flushText","trim","emitter","unsub","onEvent","event","type","chunkCount","idx","findIndex","t","toolName","status","result","lines","line","split","slice","join","progress","taskCount","clear","existing","get","teammateId","set","taskDescription","startTime","teammateName","message","id","agentType","model","description","turn","agentId","input","toolInput","i","success","durationMs","delete","push","toolCount","tokens","base64","mediaType","conversationHistory","abortSignal","signal","thinking","callbacks","onText","onToolStart","onToolResult","completedTool","JSON","stringify","FILE_TOOLS","includes","filePath","file_path","backups","fileName","pop","backup","find","b","endsWith","isNewFile","op","trackFileChange","backupPath","path","operation","onUsage","input_tokens","output_tokens","thinking_tokens","costUsd","cacheReadTokens","cacheCreationTokens","cache_read_tokens","cache_creation_tokens","onAutoCompact","before","after","tokensSaved","toFixed","onDone","finalMessages","destroy","prevCompleted","all","completedSubagents","finalText","fileChanges","getCurrentFileChanges","summary","addCheckpoint","commitTurn","onError","err","partialMessages"],"sources":["../../../../src/cli/chat/hooks/useAgentLoop.ts"],"sourcesContent":["/**\n * useAgentLoop — agent loop runner extracted from ChatApp\n *\n * All consumers should import from ChatApp (re-export facade).\n */\n\nimport { useRef } from \"react\";\nimport type Anthropic from \"@anthropic-ai/sdk\";\nimport { runAgentLoop } from \"../../services/agent-loop.js\";\nimport { AgentEventEmitter, type AgentEvent } from \"../../services/agent-events.js\";\nimport { RewindManager } from \"../../services/rewind.js\";\nimport { listBackups } from \"../../services/file-history.js\";\nimport type { ChatMessage, ToolCall } from \"../MessageList.js\";\nimport type { SubagentActivityState, CompletedSubagentInfo } from \"../SubagentPanel.js\";\nimport type { ImageAttachment } from \"../ChatInput.js\";\n\nexport interface AgentLoopDeps {\n isStreaming: boolean;\n thinkingEnabled: boolean;\n conversationRef: React.MutableRefObject<Anthropic.MessageParam[]>;\n abortRef: React.MutableRefObject<AbortController | null>;\n accTextRef: React.MutableRefObject<string>;\n lastContentUpdateRef: React.MutableRefObject<number>;\n thinkingChunksRef: React.MutableRefObject<number>;\n thinkingDoneRef: React.MutableRefObject<boolean>;\n // Rewind\n rewindManagerRef: React.MutableRefObject<RewindManager>;\n turnIndexRef: React.MutableRefObject<number>;\n // State setters\n setMessages: React.Dispatch<React.SetStateAction<ChatMessage[]>>;\n setStreamingText: React.Dispatch<React.SetStateAction<string>>;\n setIsStreaming: React.Dispatch<React.SetStateAction<boolean>>;\n setActiveTools: React.Dispatch<React.SetStateAction<ToolCall[]>>;\n setSubagentActivity: React.Dispatch<React.SetStateAction<Map<string, SubagentActivityState>>>;\n setCompletedSubagents: React.Dispatch<React.SetStateAction<CompletedSubagentInfo[]>>;\n setTeamState: React.Dispatch<React.SetStateAction<{\n name: string;\n tasksCompleted: number;\n tasksTotal: number;\n teammates: Map<string, { name: string; status: string; startTime: number }>;\n } | null>>;\n}\n\nexport function useAgentLoop(deps: AgentLoopDeps) {\n const {\n isStreaming, thinkingEnabled, conversationRef, abortRef,\n accTextRef, lastContentUpdateRef, thinkingChunksRef, thinkingDoneRef,\n rewindManagerRef, turnIndexRef,\n setMessages, setStreamingText, setIsStreaming, setActiveTools,\n setSubagentActivity, setCompletedSubagents, setTeamState,\n } = deps;\n\n // Single ref for the unified flush timer — survives across handleSend calls for cleanup\n const flushTimerRef = useRef<NodeJS.Timeout | null>(null);\n\n const handleSend = async (userMessage: string, images?: ImageAttachment[]) => {\n if (isStreaming) return;\n setMessages((prev) => [...prev, {\n role: \"user\",\n text: userMessage,\n images: images?.map(img => img.name),\n }]);\n setStreamingText(\"\");\n setActiveTools([]);\n setSubagentActivity(new Map());\n setCompletedSubagents([]);\n setTeamState(null);\n setIsStreaming(true);\n thinkingChunksRef.current = 0;\n thinkingDoneRef.current = false;\n\n const abort = new AbortController();\n abortRef.current = abort;\n accTextRef.current = \"\";\n const toolCalls: ToolCall[] = [];\n let usage: {\n input_tokens: number;\n output_tokens: number;\n thinking_tokens?: number;\n model?: string;\n costUsd?: number;\n cache_read_tokens?: number;\n cache_creation_tokens?: number;\n } | undefined;\n\n // ── Unified render batching ──\n // All events accumulate in local state; ONE 100ms timer flushes all dirty fields.\n // This replaces 3 separate timers (text: 150ms, tool_output: 250ms, team: 200ms)\n // and adds batching for previously-unbatched subagent events.\n const dirty = { text: false, tools: false, team: false, subagents: false, messages: false };\n const subagentMap = new Map<string, SubagentActivityState>();\n const pendingCompleted: CompletedSubagentInfo[] = [];\n const pendingToolMsgs: ChatMessage[] = [];\n\n function markDirty(field: keyof typeof dirty) {\n dirty[field] = true;\n if (!flushTimerRef.current) {\n flushTimerRef.current = setTimeout(flushAll, 200);\n }\n }\n\n function cancelFlush() {\n if (flushTimerRef.current) {\n clearTimeout(flushTimerRef.current);\n flushTimerRef.current = null;\n }\n }\n\n function flushAll() {\n flushTimerRef.current = null;\n if (dirty.text) { setStreamingText(accTextRef.current); dirty.text = false; }\n if (dirty.tools) { setActiveTools([...toolCalls]); dirty.tools = false; }\n if (dirty.team) {\n setTeamState({\n name: teamName, tasksCompleted: teamCompleted,\n tasksTotal: teamTotal, teammates: new Map(teammateStatus),\n });\n dirty.team = false;\n }\n if (dirty.subagents) {\n setSubagentActivity(new Map(subagentMap));\n if (pendingCompleted.length > 0) {\n const batch = pendingCompleted.splice(0);\n setCompletedSubagents(prev => [...prev, ...batch]);\n }\n dirty.subagents = false;\n }\n if (dirty.messages) {\n const batch = pendingToolMsgs.splice(0);\n if (batch.length > 0) {\n setMessages(prev => [...prev, ...batch]);\n }\n dirty.messages = false;\n }\n lastContentUpdateRef.current = Date.now();\n }\n\n const flushText = () => {\n const text = accTextRef.current;\n if (text.trim()) {\n setMessages(prev => [...prev, { role: \"assistant\" as const, text }]);\n }\n accTextRef.current = \"\";\n dirty.text = false;\n setStreamingText(\"\");\n };\n\n const emitter = new AgentEventEmitter();\n\n // Team tracking\n let teamName = \"\";\n let teamTotal = 0;\n let teamCompleted = 0;\n const teammateStatus = new Map<string, { name: string; status: string; startTime: number }>();\n\n const unsub = emitter.onEvent((event: AgentEvent) => {\n switch (event.type) {\n case \"thinking\":\n thinkingChunksRef.current = event.chunkCount;\n markDirty(\"text\");\n break;\n\n case \"text\":\n if (thinkingChunksRef.current > 0 && !thinkingDoneRef.current) {\n thinkingDoneRef.current = true;\n markDirty(\"text\");\n }\n accTextRef.current += event.text;\n markDirty(\"text\");\n break;\n\n case \"tool_output\": {\n const idx = toolCalls.findIndex(t => t.name === event.toolName && t.status === \"running\");\n if (idx >= 0) {\n const prev = toolCalls[idx].result || \"\";\n const lines = (prev + \"\\n\" + event.line).split(\"\\n\");\n toolCalls[idx].result = lines.slice(-4).join(\"\\n\").trim();\n markDirty(\"tools\");\n }\n break;\n }\n\n case \"tool_progress\": {\n const idx = toolCalls.findIndex(t => t.name === event.toolName && t.status === \"running\");\n if (idx >= 0) {\n toolCalls[idx].progress = event.progress;\n markDirty(\"tools\");\n }\n break;\n }\n\n case \"team_start\":\n teamName = event.name;\n teamTotal = event.taskCount;\n teamCompleted = 0;\n teammateStatus.clear();\n markDirty(\"team\");\n break;\n\n case \"team_task\":\n if (event.status === \"started\") {\n const existing = teammateStatus.get(event.teammateId);\n teammateStatus.set(event.teammateId, { name: existing?.name || event.teammateId, status: event.taskDescription.slice(0, 50), startTime: existing?.startTime || Date.now() });\n } else if (event.status === \"completed\") {\n teamCompleted++;\n const existing = teammateStatus.get(event.teammateId);\n teammateStatus.set(event.teammateId, { name: existing?.name || event.teammateId, status: \"done\", startTime: existing?.startTime || Date.now() });\n } else if (event.status === \"failed\") {\n // Task failed, but teammate is still alive — show the failure briefly\n // as progress, don't permanently mark the teammate as \"failed\".\n // The teammate will claim the next task or send \"done\" when finished.\n const existing = teammateStatus.get(event.teammateId);\n teammateStatus.set(event.teammateId, { name: existing?.name || event.teammateId, status: \"retrying…\", startTime: existing?.startTime || Date.now() });\n }\n markDirty(\"team\");\n break;\n\n case \"team_progress\": {\n const existing = teammateStatus.get(event.teammateId);\n teammateStatus.set(event.teammateId, { name: event.teammateName || event.teammateId, status: event.message.slice(0, 50), startTime: existing?.startTime || Date.now() });\n markDirty(\"team\");\n break;\n }\n\n case \"team_done\":\n cancelFlush();\n setTeamState(null);\n accTextRef.current = \"\";\n setStreamingText(\"\");\n break;\n\n\n case \"subagent_start\":\n subagentMap.set(event.id, {\n type: event.agentType,\n model: event.model,\n description: event.description,\n turn: 0,\n message: \"starting\\u2026\",\n tools: [],\n startTime: Date.now(),\n });\n markDirty(\"subagents\");\n break;\n\n case \"subagent_progress\": {\n const existing = subagentMap.get(event.id);\n if (existing) {\n subagentMap.set(event.id, {\n ...existing,\n turn: event.turn || existing.turn,\n message: event.message,\n });\n markDirty(\"subagents\");\n }\n break;\n }\n\n case \"subagent_tool_start\": {\n const existing = subagentMap.get(event.agentId);\n if (existing) {\n subagentMap.set(event.agentId, {\n ...existing,\n tools: [...existing.tools, {\n name: event.toolName,\n status: \"running\" as const,\n input: event.toolInput,\n }],\n });\n markDirty(\"subagents\");\n }\n break;\n }\n\n case \"subagent_tool_end\": {\n const existing = subagentMap.get(event.agentId);\n if (existing) {\n const tools = [...existing.tools];\n for (let i = tools.length - 1; i >= 0; i--) {\n if (tools[i].name === event.toolName && tools[i].status === \"running\") {\n tools[i] = { ...tools[i], status: event.success ? \"success\" : \"error\", durationMs: event.durationMs };\n break;\n }\n }\n subagentMap.set(event.agentId, { ...existing, tools });\n markDirty(\"subagents\");\n }\n break;\n }\n\n case \"subagent_done\": {\n const existing = subagentMap.get(event.id);\n subagentMap.delete(event.id);\n if (existing) {\n pendingCompleted.push({\n id: event.id,\n type: event.agentType,\n description: existing.description || \"\",\n toolCount: event.tools.length,\n tokens: event.tokens,\n durationMs: event.durationMs,\n success: event.success,\n });\n }\n markDirty(\"subagents\");\n break;\n }\n\n case \"done\":\n cancelFlush();\n accTextRef.current = event.text;\n break;\n }\n });\n\n await runAgentLoop({\n message: userMessage,\n images: images?.map(img => ({ base64: img.base64, mediaType: img.mediaType })),\n conversationHistory: conversationRef.current,\n abortSignal: abort.signal,\n emitter,\n thinking: thinkingEnabled,\n callbacks: {\n onText: () => {},\n onToolStart: (name, input) => {\n if (input) {\n // Update existing running tool with input, or create it if missing\n const idx = toolCalls.findIndex(t => t.name === name && t.status === \"running\" && !t.input);\n if (idx >= 0) {\n toolCalls[idx].input = input;\n } else {\n // dispatchTools.onStart fires with input directly — add the tool now.\n // Don't flushText() here — text was already flushed by the streaming\n // parser's tool_use transition before dispatchTools executes.\n toolCalls.push({ name, status: \"running\", input });\n }\n setActiveTools([...toolCalls]);\n lastContentUpdateRef.current = Date.now();\n return;\n }\n flushText();\n toolCalls.push({ name, status: \"running\" });\n setActiveTools([...toolCalls]);\n lastContentUpdateRef.current = Date.now();\n },\n onToolResult: (name, success, result, input, durationMs) => {\n dirty.tools = false;\n const completedTool: ToolCall = {\n name,\n status: success ? \"success\" : \"error\",\n result: typeof result === \"string\" ? result : JSON.stringify(result),\n input,\n durationMs,\n };\n const idx = toolCalls.findIndex((t) => t.name === name && t.status === \"running\");\n if (idx >= 0) toolCalls.splice(idx, 1);\n\n // Track file changes for rewind\n if (success && input) {\n const FILE_TOOLS = [\"write_file\", \"edit_file\", \"multi_edit\"];\n if (FILE_TOOLS.includes(name)) {\n try {\n const filePath = (input as Record<string, unknown>).file_path as string | undefined;\n if (filePath) {\n // Find the most recent backup for this file from file-history\n const backups = listBackups();\n const fileName = filePath.split(\"/\").pop() || \"\";\n const backup = backups.find(b => b.name.endsWith(`-${fileName}`));\n const isNewFile = !backup; // No backup means file didn't exist before\n const op = name === \"write_file\" ? \"write\" as const\n : name === \"edit_file\" ? \"edit\" as const\n : \"multi_edit\" as const;\n rewindManagerRef.current.trackFileChange({\n filePath,\n backupPath: backup?.path || \"\",\n operation: op,\n isNewFile,\n });\n }\n } catch {\n // Best effort — don't fail the actual operation\n }\n }\n }\n\n // Batch tool result messages — flushed via the 100ms dirty timer.\n // This prevents 9 parallel failures from causing 9 separate Ink render\n // cycles, which triggers fullscreen repaints and flickering.\n pendingToolMsgs.push({ role: \"assistant\" as const, text: \"\", toolCalls: [completedTool] });\n markDirty(\"messages\");\n setActiveTools([...toolCalls]);\n accTextRef.current = \"\";\n setStreamingText(\"\");\n lastContentUpdateRef.current = Date.now();\n },\n onUsage: (input_tokens, output_tokens, thinking_tokens, model, costUsd, cacheReadTokens, cacheCreationTokens) => {\n usage = { input_tokens, output_tokens, thinking_tokens, model, costUsd, cache_read_tokens: cacheReadTokens, cache_creation_tokens: cacheCreationTokens };\n },\n onAutoCompact: (before, after, tokensSaved) => {\n setMessages((prev) => [...prev, {\n role: \"assistant\" as const,\n text: ` Context auto-compacted: ${before} messages -> ${after} messages (~${(tokensSaved / 1000).toFixed(0)}K tokens freed)`,\n }]);\n },\n onDone: (finalMessages) => {\n unsub();\n emitter.destroy();\n cancelFlush();\n // Flush any batched tool result messages before final message\n if (pendingToolMsgs.length > 0) {\n const batch = pendingToolMsgs.splice(0);\n setMessages(prev => [...prev, ...batch]);\n }\n setStreamingText(\"\");\n setCompletedSubagents(prevCompleted => {\n // Include any pending completed subagents from the batch\n const all = [...prevCompleted, ...pendingCompleted.splice(0)];\n if (all.length > 0) {\n setMessages(prev => [...prev, {\n role: \"assistant\" as const,\n text: \"\",\n completedSubagents: all,\n }]);\n }\n return [];\n });\n const finalText = accTextRef.current;\n if (finalText.trim() || usage) {\n setMessages((prev) => [...prev, {\n role: \"assistant\" as const,\n text: finalText,\n usage,\n }]);\n }\n\n // Record rewind checkpoint for this turn\n setMessages(prev => {\n const fileChanges = rewindManagerRef.current.getCurrentFileChanges();\n const summary = finalText.trim() || \"(tool-only turn)\";\n rewindManagerRef.current.addCheckpoint(\n turnIndexRef.current,\n prev.length,\n summary,\n fileChanges,\n );\n rewindManagerRef.current.commitTurn();\n turnIndexRef.current++;\n return prev;\n });\n\n setStreamingText(\"\");\n setActiveTools([]);\n setSubagentActivity(new Map());\n setTeamState(null);\n setIsStreaming(false);\n abortRef.current = null;\n conversationRef.current = finalMessages;\n },\n onError: (err, partialMessages) => {\n unsub();\n emitter.destroy();\n cancelFlush();\n // Flush any batched tool result messages before error message\n if (pendingToolMsgs.length > 0) {\n const batch = pendingToolMsgs.splice(0);\n setMessages(prev => [...prev, ...batch]);\n }\n if (err !== \"Cancelled\") {\n setMessages((prev) => [...prev, { role: \"assistant\", text: `\\x1b[31m\\u2718 Error: ${err}\\x1b[0m` }]);\n }\n setStreamingText(\"\");\n setActiveTools([]);\n setSubagentActivity(new Map());\n setCompletedSubagents([]);\n setTeamState(null);\n setIsStreaming(false);\n abortRef.current = null;\n if (partialMessages && partialMessages.length > 0) {\n conversationRef.current = partialMessages;\n }\n },\n },\n });\n };\n\n return { handleSend };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useAgentLoop.js","names":["useRef","runAgentLoop","AgentEventEmitter","saveSession","listBackups","getChatStore","handleThinking","handleText","handleToolOutput","handleToolProgress","handleTeamStart","handleTeamTask","handleTeamProgress","handleTeamDone","handleSubagentStart","handleSubagentProgress","handleSubagentToolStart","handleSubagentToolEnd","handleSubagentDone","handleDone","useAgentLoop","deps","conversationRef","abortRef","accTextRef","lastContentUpdateRef","thinkingChunksRef","thinkingDoneRef","rewindManagerRef","turnIndexRef","flushTimerRef","handleSend","userMessage","images","store","isStreaming","thinkingEnabled","getState","current","clearTimeout","addMessage","role","text","map","img","name","resetStreamingState","setIsStreaming","abort","AbortController","toolCalls","usage","dirty","tools","team","subagents","messages","thinking","thinkingBuffer","value","subagentMap","Map","pendingCompleted","pendingToolMsgs","teamName","teamTotal","teamCompleted","teammateStatus","markDirty","field","setTimeout","flushAll","cancelFlush","s","setStreamingText","setThinkingText","setActiveTools","setTeamState","tasksCompleted","tasksTotal","teammates","setSubagentActivity","length","setCompletedSubagents","prev","splice","batch","setMessages","Date","now","flushText","trim","emitter","thinkingRefs","eventCtx","EVENT_HANDLERS","e","tool_output","tool_progress","team_start","team_task","team_progress","team_done","v","subagent_start","subagent_progress","subagent_tool_start","subagent_tool_end","subagent_done","done","unsub","onEvent","event","type","message","base64","mediaType","conversationHistory","abortSignal","signal","callbacks","onText","onToolStart","input","idx","findIndex","t","status","push","onToolResult","success","result","durationMs","completedTool","JSON","stringify","FILE_TOOLS","includes","filePath","file_path","backups","fileName","split","pop","backup","find","b","endsWith","trackFileChange","backupPath","path","operation","isNewFile","onUsage","input_tokens","output_tokens","thinking_tokens","model","costUsd","cacheReadTokens","cacheCreationTokens","cache_read_tokens","cache_creation_tokens","onAutoCompact","before","after","tokensSaved","toFixed","onDone","finalMessages","destroy","clear","allCompleted","completedSubagents","finalText","finishStreaming","fileChanges","getCurrentFileChanges","addCheckpoint","commitTurn","sid","sessionId","onError","err","partialMessages","errMsg","Error","String"],"sources":["../../../../src/cli/chat/hooks/useAgentLoop.ts"],"sourcesContent":["/**\n * useAgentLoop — agent loop runner extracted from ChatApp\n *\n * Uses Zustand store for all state updates.\n * Event handlers extracted to agent-loop-events.ts.\n */\n\nimport { useRef } from \"react\";\nimport type Anthropic from \"@anthropic-ai/sdk\";\nimport { runAgentLoop } from \"../../services/agent-loop.js\";\nimport { AgentEventEmitter, type AgentEvent } from \"../../services/agent-events.js\";\nimport { RewindManager } from \"../../services/rewind.js\";\nimport { saveSession } from \"../../services/session-persistence.js\";\nimport { listBackups } from \"../../services/file-history.js\";\nimport type { ChatMessage, ToolCall } from \"../MessageList.js\";\nimport type { SubagentActivityState, CompletedSubagentInfo } from \"../SubagentPanel.js\";\nimport type { ImageAttachment } from \"../ChatInput.js\";\nimport { getChatStore } from \"../store.js\";\nimport {\n type EventCtx, type TeamRefs, type ThinkingRefs,\n handleThinking, handleText, handleToolOutput, handleToolProgress,\n handleTeamStart, handleTeamTask, handleTeamProgress, handleTeamDone,\n handleSubagentStart, handleSubagentProgress, handleSubagentToolStart,\n handleSubagentToolEnd, handleSubagentDone, handleDone,\n} from \"./agent-loop-events.js\";\n\nexport interface AgentLoopDeps {\n conversationRef: React.MutableRefObject<Anthropic.MessageParam[]>;\n abortRef: React.MutableRefObject<AbortController | null>;\n accTextRef: React.MutableRefObject<string>;\n lastContentUpdateRef: React.MutableRefObject<number>;\n thinkingChunksRef: React.MutableRefObject<number>;\n thinkingDoneRef: React.MutableRefObject<boolean>;\n rewindManagerRef: React.MutableRefObject<RewindManager>;\n turnIndexRef: React.MutableRefObject<number>;\n}\n\nexport function useAgentLoop(deps: AgentLoopDeps) {\n const {\n conversationRef, abortRef,\n accTextRef, lastContentUpdateRef, thinkingChunksRef, thinkingDoneRef,\n rewindManagerRef, turnIndexRef,\n } = deps;\n\n const flushTimerRef = useRef<NodeJS.Timeout | null>(null);\n\n const handleSend = async (userMessage: string, images?: ImageAttachment[]) => {\n const store = getChatStore();\n const { isStreaming, thinkingEnabled } = store.getState();\n if (isStreaming) return;\n\n if (flushTimerRef.current) {\n clearTimeout(flushTimerRef.current);\n flushTimerRef.current = null;\n }\n\n store.getState().addMessage({ role: \"user\", text: userMessage, images: images?.map(img => img.name) });\n store.getState().resetStreamingState();\n store.getState().setIsStreaming(true);\n thinkingChunksRef.current = 0;\n thinkingDoneRef.current = false;\n\n const abort = new AbortController();\n abortRef.current = abort;\n accTextRef.current = \"\";\n const toolCalls: ToolCall[] = [];\n let usage: ChatMessage[\"usage\"];\n\n // Render batching\n const dirty = { text: false, tools: false, team: false, subagents: false, messages: false, thinking: false };\n const thinkingBuffer = { value: \"\" };\n const subagentMap = new Map<string, SubagentActivityState>();\n const pendingCompleted: CompletedSubagentInfo[] = [];\n const pendingToolMsgs: ChatMessage[] = [];\n const team: TeamRefs = { teamName: \"\", teamTotal: 0, teamCompleted: 0 };\n const teammateStatus = new Map<string, { name: string; status: string; startTime: number }>();\n\n function markDirty(field: keyof typeof dirty) {\n dirty[field] = true;\n if (!flushTimerRef.current) flushTimerRef.current = setTimeout(flushAll, 200);\n }\n\n function cancelFlush() {\n if (flushTimerRef.current) { clearTimeout(flushTimerRef.current); flushTimerRef.current = null; }\n }\n\n function flushAll() {\n flushTimerRef.current = null;\n const s = store.getState();\n if (dirty.text) { s.setStreamingText(accTextRef.current); dirty.text = false; }\n if (dirty.thinking) { s.setThinkingText(thinkingBuffer.value); dirty.thinking = false; }\n if (dirty.tools) { s.setActiveTools([...toolCalls]); dirty.tools = false; }\n if (dirty.team) {\n s.setTeamState({ name: team.teamName, tasksCompleted: team.teamCompleted, tasksTotal: team.teamTotal, teammates: new Map(teammateStatus) });\n dirty.team = false;\n }\n if (dirty.subagents) {\n s.setSubagentActivity(new Map(subagentMap));\n if (pendingCompleted.length > 0) s.setCompletedSubagents(prev => [...prev, ...pendingCompleted.splice(0)]);\n dirty.subagents = false;\n }\n if (dirty.messages) {\n const batch = pendingToolMsgs.splice(0);\n if (batch.length > 0) s.setMessages(prev => [...prev, ...batch]);\n dirty.messages = false;\n }\n lastContentUpdateRef.current = Date.now();\n }\n\n const flushText = () => {\n const s = store.getState();\n const text = accTextRef.current;\n if (text.trim()) s.setMessages(prev => [...prev, { role: \"assistant\" as const, text }]);\n accTextRef.current = \"\";\n dirty.text = false;\n s.setStreamingText(\"\");\n thinkingBuffer.value = \"\";\n s.setThinkingText(\"\");\n };\n\n const emitter = new AgentEventEmitter();\n const thinkingRefs: ThinkingRefs = { thinkingChunksRef, thinkingDoneRef, thinkingBuffer, accTextRef };\n const eventCtx: EventCtx = { markDirty, cancelFlush, flushAll, toolCalls, subagentMap, pendingCompleted, teammateStatus };\n\n const EVENT_HANDLERS: Record<string, (event: any) => void> = {\n thinking: (e) => handleThinking(e, eventCtx, thinkingRefs),\n text: (e) => handleText(e, eventCtx, thinkingRefs),\n tool_output: (e) => handleToolOutput(e, eventCtx),\n tool_progress: (e) => handleToolProgress(e, eventCtx),\n team_start: (e) => handleTeamStart(e, eventCtx, team),\n team_task: (e) => handleTeamTask(e, eventCtx, team),\n team_progress: (e) => handleTeamProgress(e, eventCtx),\n team_done: (e) => handleTeamDone(e, eventCtx, team, accTextRef, (v) => store.getState().setTeamState(v), (v) => store.getState().setStreamingText(v)),\n subagent_start: (e) => handleSubagentStart(e, eventCtx),\n subagent_progress: (e) => handleSubagentProgress(e, eventCtx),\n subagent_tool_start: (e) => handleSubagentToolStart(e, eventCtx),\n subagent_tool_end: (e) => handleSubagentToolEnd(e, eventCtx),\n subagent_done: (e) => handleSubagentDone(e, eventCtx),\n done: (e) => handleDone(e, eventCtx, accTextRef),\n };\n\n const unsub = emitter.onEvent((event: AgentEvent) => { EVENT_HANDLERS[event.type]?.(event); });\n\n try {\n await runAgentLoop({\n message: userMessage,\n images: images?.map(img => ({ base64: img.base64, mediaType: img.mediaType })),\n conversationHistory: conversationRef.current,\n abortSignal: abort.signal,\n emitter,\n thinking: thinkingEnabled,\n callbacks: {\n onText: () => {},\n onToolStart: (name, input) => {\n if (input) {\n const idx = toolCalls.findIndex(t => t.name === name && t.status === \"running\" && !t.input);\n if (idx >= 0) { toolCalls[idx].input = input; } else { toolCalls.push({ name, status: \"running\", input }); }\n markDirty(\"tools\");\n lastContentUpdateRef.current = Date.now();\n return;\n }\n flushText();\n toolCalls.push({ name, status: \"running\" });\n markDirty(\"tools\");\n lastContentUpdateRef.current = Date.now();\n },\n onToolResult: (name, success, result, input, durationMs) => {\n const completedTool: ToolCall = { name, status: success ? \"success\" : \"error\", result: typeof result === \"string\" ? result : JSON.stringify(result), input, durationMs };\n const idx = toolCalls.findIndex((t) => t.name === name && t.status === \"running\");\n if (idx >= 0) toolCalls.splice(idx, 1);\n\n if (success && input) {\n const FILE_TOOLS = [\"write_file\", \"edit_file\", \"multi_edit\"];\n if (FILE_TOOLS.includes(name)) {\n try {\n const filePath = (input as Record<string, unknown>).file_path as string | undefined;\n if (filePath) {\n const backups = listBackups();\n const fileName = filePath.split(\"/\").pop() || \"\";\n const backup = backups.find(b => b.name.endsWith(`-${fileName}`));\n rewindManagerRef.current.trackFileChange({\n filePath, backupPath: backup?.path || \"\",\n operation: name === \"write_file\" ? \"write\" : name === \"edit_file\" ? \"edit\" : \"multi_edit\",\n isNewFile: !backup,\n });\n }\n } catch { /* best effort */ }\n }\n }\n\n pendingToolMsgs.push({ role: \"assistant\" as const, text: \"\", toolCalls: [completedTool] });\n markDirty(\"messages\"); markDirty(\"tools\");\n accTextRef.current = \"\"; markDirty(\"text\");\n lastContentUpdateRef.current = Date.now();\n },\n onUsage: (input_tokens, output_tokens, thinking_tokens, model, costUsd, cacheReadTokens, cacheCreationTokens) => {\n usage = { input_tokens, output_tokens, thinking_tokens, model, costUsd, cache_read_tokens: cacheReadTokens, cache_creation_tokens: cacheCreationTokens };\n },\n onAutoCompact: (before, after, tokensSaved) => {\n pendingToolMsgs.push({ role: \"assistant\" as const, text: ` Context auto-compacted: ${before} messages -> ${after} messages (~${(tokensSaved / 1000).toFixed(0)}K tokens freed)` });\n markDirty(\"messages\");\n },\n onDone: (finalMessages) => {\n unsub(); emitter.destroy(); cancelFlush();\n // Clear team refs before flush so dirty.team won't re-create stale state\n team.teamName = \"\"; team.teamTotal = 0; team.teamCompleted = 0; teammateStatus.clear();\n flushAll();\n\n // Collect all pending messages into a single batch\n const batch: ChatMessage[] = [];\n if (pendingToolMsgs.length > 0) batch.push(...pendingToolMsgs.splice(0));\n const allCompleted = [...store.getState().completedSubagents, ...pendingCompleted.splice(0)];\n if (allCompleted.length > 0) batch.push({ role: \"assistant\" as const, text: \"\", completedSubagents: allCompleted });\n const finalText = accTextRef.current;\n if (finalText.trim() || usage) batch.push({ role: \"assistant\" as const, text: finalText, usage });\n\n // Atomic update — commit messages + reset streaming + set isStreaming=false in one render\n store.getState().finishStreaming(batch);\n\n // Rewind checkpoint (no-op on messages, just tracks state)\n store.getState().setMessages(prev => {\n const fileChanges = rewindManagerRef.current.getCurrentFileChanges();\n rewindManagerRef.current.addCheckpoint(turnIndexRef.current, prev.length, finalText.trim() || \"(tool-only turn)\", fileChanges);\n rewindManagerRef.current.commitTurn();\n turnIndexRef.current++;\n return prev;\n });\n abortRef.current = null;\n conversationRef.current = finalMessages;\n\n // Auto-save session to disk after each turn — prevents data loss\n // if the CLI is killed or crashes. Uses the store's sessionId if set\n // (from /save or /resume), otherwise creates a rolling \"current\" session.\n try {\n const sid = store.getState().sessionId || \"current\";\n saveSession(finalMessages, sid);\n } catch { /* best effort — don't block UI */ }\n },\n onError: (err, partialMessages) => {\n unsub(); emitter.destroy(); cancelFlush();\n team.teamName = \"\"; team.teamTotal = 0; team.teamCompleted = 0; teammateStatus.clear();\n flushAll();\n const batch: ChatMessage[] = [];\n if (pendingToolMsgs.length > 0) batch.push(...pendingToolMsgs.splice(0));\n if (err !== \"Cancelled\") batch.push({ role: \"assistant\", text: `\\x1b[31m\\u2718 Error: ${err}\\x1b[0m` });\n store.getState().finishStreaming(batch);\n abortRef.current = null;\n if (partialMessages && partialMessages.length > 0) conversationRef.current = partialMessages;\n },\n },\n });\n } catch (e) {\n // Ensure streaming state is always cleaned up — even if runAgentLoop\n // throws before reaching onDone/onError callbacks\n unsub(); emitter.destroy(); cancelFlush();\n team.teamName = \"\"; team.teamTotal = 0; team.teamCompleted = 0; teammateStatus.clear();\n flushAll();\n const errMsg = e instanceof Error ? e.message : String(e);\n const batch: ChatMessage[] = [];\n if (errMsg !== \"Cancelled\") batch.push({ role: \"assistant\", text: `\\x1b[31m\\u2718 Error: ${errMsg}\\x1b[0m` });\n store.getState().finishStreaming(batch);\n abortRef.current = null;\n }\n };\n\n return { handleSend };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useElapsedClock — shared 1000ms interval for all elapsed-time consumers
|
|
3
|
+
*
|
|
4
|
+
* One global interval drives all subscribers. Components derive their
|
|
5
|
+
* elapsed seconds at read time from (now - startTime).
|
|
6
|
+
*
|
|
7
|
+
* Uses useState + subscribe (not useSyncExternalStore) for
|
|
8
|
+
* compatibility with Ink's custom React renderer.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Returns elapsed seconds since startTime.
|
|
12
|
+
* Uses useState + subscribe instead of useSyncExternalStore
|
|
13
|
+
* for compatibility with Ink's custom React renderer.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useElapsed(startTime: number): number;
|
|
16
|
+
/**
|
|
17
|
+
* Subscribe to elapsed ticks (non-React). Returns unsubscribe function.
|
|
18
|
+
*/
|
|
19
|
+
export declare function subscribeElapsed(cb: () => void): () => void;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { c as _c } from "react/compiler-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* useElapsedClock — shared 1000ms interval for all elapsed-time consumers
|
|
4
|
+
*
|
|
5
|
+
* One global interval drives all subscribers. Components derive their
|
|
6
|
+
* elapsed seconds at read time from (now - startTime).
|
|
7
|
+
*
|
|
8
|
+
* Uses useState + subscribe (not useSyncExternalStore) for
|
|
9
|
+
* compatibility with Ink's custom React renderer.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { useState, useEffect } from "react";
|
|
13
|
+
|
|
14
|
+
// ── Shared clock ──
|
|
15
|
+
// One global 1000ms interval drives all elapsed-time consumers.
|
|
16
|
+
|
|
17
|
+
let tick = 0;
|
|
18
|
+
let intervalId = null;
|
|
19
|
+
const listeners = new Set();
|
|
20
|
+
function advance() {
|
|
21
|
+
tick += 1;
|
|
22
|
+
for (const cb of [...listeners]) {
|
|
23
|
+
try {
|
|
24
|
+
cb();
|
|
25
|
+
} catch {/* don't break the tick loop */}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function subscribe(callback) {
|
|
29
|
+
listeners.add(callback);
|
|
30
|
+
if (!intervalId) {
|
|
31
|
+
intervalId = setInterval(advance, 1000);
|
|
32
|
+
}
|
|
33
|
+
return () => {
|
|
34
|
+
listeners.delete(callback);
|
|
35
|
+
if (listeners.size === 0 && intervalId) {
|
|
36
|
+
clearInterval(intervalId);
|
|
37
|
+
intervalId = null;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// ── Public API ──
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Returns elapsed seconds since startTime.
|
|
46
|
+
* Uses useState + subscribe instead of useSyncExternalStore
|
|
47
|
+
* for compatibility with Ink's custom React renderer.
|
|
48
|
+
*/
|
|
49
|
+
export function useElapsed(startTime) {
|
|
50
|
+
const $ = _c(3);
|
|
51
|
+
const [, forceRender] = useState(0);
|
|
52
|
+
let t0;
|
|
53
|
+
if ($[0] !== forceRender) {
|
|
54
|
+
t0 = () => subscribe(() => forceRender(_temp));
|
|
55
|
+
$[0] = forceRender;
|
|
56
|
+
$[1] = t0;
|
|
57
|
+
} else {
|
|
58
|
+
t0 = $[1];
|
|
59
|
+
}
|
|
60
|
+
let t1;
|
|
61
|
+
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
62
|
+
t1 = [];
|
|
63
|
+
$[2] = t1;
|
|
64
|
+
} else {
|
|
65
|
+
t1 = $[2];
|
|
66
|
+
}
|
|
67
|
+
useEffect(t0, t1);
|
|
68
|
+
return Math.floor((Date.now() - startTime) / 1000);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Subscribe to elapsed ticks (non-React). Returns unsubscribe function.
|
|
73
|
+
*/
|
|
74
|
+
function _temp(n) {
|
|
75
|
+
return n + 1;
|
|
76
|
+
}
|
|
77
|
+
export function subscribeElapsed(cb) {
|
|
78
|
+
return subscribe(cb);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=useElapsedClock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useElapsedClock.js","names":["useState","useEffect","tick","intervalId","listeners","Set","advance","cb","subscribe","callback","add","setInterval","delete","size","clearInterval","useElapsed","startTime","$","_c","forceRender","t0","_temp","t1","Symbol","for","Math","floor","Date","now","n","subscribeElapsed"],"sources":["../../../../src/cli/chat/hooks/useElapsedClock.ts"],"sourcesContent":["/**\n * useElapsedClock — shared 1000ms interval for all elapsed-time consumers\n *\n * One global interval drives all subscribers. Components derive their\n * elapsed seconds at read time from (now - startTime).\n *\n * Uses useState + subscribe (not useSyncExternalStore) for\n * compatibility with Ink's custom React renderer.\n */\n\nimport { useState, useEffect } from \"react\";\n\n// ── Shared clock ──\n// One global 1000ms interval drives all elapsed-time consumers.\n\nlet tick = 0;\nlet intervalId: ReturnType<typeof setInterval> | null = null;\nconst listeners = new Set<() => void>();\n\nfunction advance() {\n tick += 1;\n for (const cb of [...listeners]) {\n try { cb(); } catch { /* don't break the tick loop */ }\n }\n}\n\nfunction subscribe(callback: () => void): () => void {\n listeners.add(callback);\n if (!intervalId) {\n intervalId = setInterval(advance, 1000);\n }\n return () => {\n listeners.delete(callback);\n if (listeners.size === 0 && intervalId) {\n clearInterval(intervalId);\n intervalId = null;\n }\n };\n}\n\n// ── Public API ──\n\n/**\n * Returns elapsed seconds since startTime.\n * Uses useState + subscribe instead of useSyncExternalStore\n * for compatibility with Ink's custom React renderer.\n */\nexport function useElapsed(startTime: number): number {\n const [, forceRender] = useState(0);\n\n useEffect(() => {\n return subscribe(() => forceRender((n) => n + 1));\n }, []);\n\n return Math.floor((Date.now() - startTime) / 1000);\n}\n\n/**\n * Subscribe to elapsed ticks (non-React). Returns unsubscribe function.\n */\nexport function subscribeElapsed(cb: () => void): () => void {\n return subscribe(cb);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,EAAEC,SAAS,QAAQ,OAAO;;AAE3C;AACA;;AAEA,IAAIC,IAAI,GAAG,CAAC;AACZ,IAAIC,UAAiD,GAAG,IAAI;AAC5D,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AAEvC,SAASC,OAAOA,CAAA,EAAG;EACjBJ,IAAI,IAAI,CAAC;EACT,KAAK,MAAMK,EAAE,IAAI,CAAC,GAAGH,SAAS,CAAC,EAAE;IAC/B,IAAI;MAAEG,EAAE,CAAC,CAAC;IAAE,CAAC,CAAC,MAAM,CAAE;EACxB;AACF;AAEA,SAASC,SAASA,CAACC,QAAoB,EAAc;EACnDL,SAAS,CAACM,GAAG,CAACD,QAAQ,CAAC;EACvB,IAAI,CAACN,UAAU,EAAE;IACfA,UAAU,GAAGQ,WAAW,CAACL,OAAO,EAAE,IAAI,CAAC;EACzC;EACA,OAAO,MAAM;IACXF,SAAS,CAACQ,MAAM,CAACH,QAAQ,CAAC;IAC1B,IAAIL,SAAS,CAACS,IAAI,KAAK,CAAC,IAAIV,UAAU,EAAE;MACtCW,aAAa,CAACX,UAAU,CAAC;MACzBA,UAAU,GAAG,IAAI;IACnB;EACF,CAAC;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAAY,WAAAC,SAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL,SAAAC,WAAA,IAAwBnB,QAAQ,CAAC,CAAC,CAAC;EAAC,IAAAoB,EAAA;EAAA,IAAAH,CAAA,QAAAE,WAAA;IAE1BC,EAAA,GAAAA,CAAA,KACDZ,SAAS,CAAC,MAAMW,WAAW,CAACE,KAAY,CAAC,CACjD;IAAAJ,CAAA,MAAAE,WAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,IAAAK,EAAA;EAAA,IAAAL,CAAA,QAAAM,MAAA,CAAAC,GAAA;IAAEF,EAAA,KAAE;IAAAL,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAFLhB,SAAS,CAACmB,EAET,EAAEE,EAAE,CAAC;EAAA,OAECG,IAAI,CAAAC,KAAM,CAAC,CAACC,IAAI,CAAAC,GAAI,CAAC,CAAC,GAAGZ,SAAS,IAAI,IAAI,CAAC;AAAA;;AAGpD;AACA;AACA;AAZO,SAAAK,MAAAQ,CAAA;EAAA,OAIuCA,CAAC,GAAG,CAAC;AAAA;AASnD,OAAO,SAASC,gBAAgBA,CAACvB,EAAc,EAAc;EAC3D,OAAOC,SAAS,CAACD,EAAE,CAAC;AACtB","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useOverlayHandlers — builds the OverlayHandlers object for ChatApp
|
|
3
|
+
*
|
|
4
|
+
* Extracts rewind, plan approval, and imsg daemon logic from ChatApp.
|
|
5
|
+
*/
|
|
6
|
+
import type Anthropic from "@anthropic-ai/sdk";
|
|
7
|
+
import type { OverlayHandlers } from "../OverlayContext.js";
|
|
8
|
+
import { RewindManager } from "../../services/rewind.js";
|
|
9
|
+
interface OverlayHandlerDeps {
|
|
10
|
+
rewindManagerRef: React.MutableRefObject<RewindManager>;
|
|
11
|
+
conversationRef: React.MutableRefObject<Anthropic.MessageParam[]>;
|
|
12
|
+
turnIndexRef: React.MutableRefObject<number>;
|
|
13
|
+
slashHandlers: {
|
|
14
|
+
handleStoreSelect: OverlayHandlers["handleStoreSelect"];
|
|
15
|
+
handleStoreCancel: OverlayHandlers["handleStoreCancel"];
|
|
16
|
+
handleNodeSelect: OverlayHandlers["handleNodeSelect"];
|
|
17
|
+
handleNodeCancel: OverlayHandlers["handleNodeCancel"];
|
|
18
|
+
handleSessionSelect: OverlayHandlers["handleSessionSelect"];
|
|
19
|
+
handleMemoryDelete: OverlayHandlers["handleMemoryDelete"];
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare function buildOverlayHandlers(deps: OverlayHandlerDeps): OverlayHandlers;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useOverlayHandlers — builds the OverlayHandlers object for ChatApp
|
|
3
|
+
*
|
|
4
|
+
* Extracts rewind, plan approval, and imsg daemon logic from ChatApp.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { RewindOutcome } from "../RewindViewer.js";
|
|
8
|
+
import { resolvePlanApproval } from "../../services/interactive-tools.js";
|
|
9
|
+
import { symbols } from "../../shared/Theme.js";
|
|
10
|
+
import { getChatStore } from "../store.js";
|
|
11
|
+
export function buildOverlayHandlers(deps) {
|
|
12
|
+
const {
|
|
13
|
+
rewindManagerRef,
|
|
14
|
+
conversationRef,
|
|
15
|
+
turnIndexRef,
|
|
16
|
+
slashHandlers
|
|
17
|
+
} = deps;
|
|
18
|
+
const store = getChatStore();
|
|
19
|
+
const handlePlanDecision = decision => {
|
|
20
|
+
store.getState().dismissOverlay();
|
|
21
|
+
resolvePlanApproval(decision);
|
|
22
|
+
};
|
|
23
|
+
const handleRewind = (checkpointIndex, outcome) => {
|
|
24
|
+
const rm = rewindManagerRef.current;
|
|
25
|
+
const s = store.getState();
|
|
26
|
+
if (outcome === RewindOutcome.Cancel) {
|
|
27
|
+
s.dismissOverlay();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (outcome === RewindOutcome.RevertOnly) {
|
|
31
|
+
const result = rm.revertFilesFrom(checkpointIndex);
|
|
32
|
+
s.dismissOverlay();
|
|
33
|
+
const total = result.filesReverted.length + result.filesDeleted.length;
|
|
34
|
+
const parts = [];
|
|
35
|
+
if (result.filesReverted.length > 0) parts.push(`${result.filesReverted.length} reverted`);
|
|
36
|
+
if (result.filesDeleted.length > 0) parts.push(`${result.filesDeleted.length} deleted`);
|
|
37
|
+
if (result.errors.length > 0) parts.push(`${result.errors.length} errors`);
|
|
38
|
+
s.addMessage({
|
|
39
|
+
role: "assistant",
|
|
40
|
+
text: total > 0 ? ` ${symbols.check} File changes reverted (${parts.join(", ")})` : ` ${symbols.check} No file changes to revert.`
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const shouldRevertFiles = outcome === RewindOutcome.RewindAndRevert;
|
|
45
|
+
const result = rm.rewindTo(checkpointIndex);
|
|
46
|
+
s.setMessages(prev => prev.slice(0, result.messageCount));
|
|
47
|
+
const targetTurnIndex = rm.getCheckpoints()[checkpointIndex]?.turnIndex ?? 0;
|
|
48
|
+
const conversationSlicePoint = Math.min((targetTurnIndex + 1) * 2, conversationRef.current.length);
|
|
49
|
+
conversationRef.current = conversationRef.current.slice(0, conversationSlicePoint);
|
|
50
|
+
turnIndexRef.current = targetTurnIndex + 1;
|
|
51
|
+
s.dismissOverlay();
|
|
52
|
+
const parts = [];
|
|
53
|
+
if (shouldRevertFiles) {
|
|
54
|
+
if (result.filesReverted.length > 0) parts.push(`${result.filesReverted.length} files reverted`);
|
|
55
|
+
if (result.filesDeleted.length > 0) parts.push(`${result.filesDeleted.length} files deleted`);
|
|
56
|
+
}
|
|
57
|
+
if (result.errors.length > 0) parts.push(`${result.errors.length} revert errors`);
|
|
58
|
+
const detail = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
59
|
+
store.getState().addMessage({
|
|
60
|
+
role: "assistant",
|
|
61
|
+
text: ` ${symbols.check} Rewound to turn ${targetTurnIndex + 1}${detail}`
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
return {
|
|
65
|
+
...slashHandlers,
|
|
66
|
+
handlePlanDecision,
|
|
67
|
+
handleRewind,
|
|
68
|
+
handleImsgClose: resultMessage => {
|
|
69
|
+
store.getState().dismissOverlay();
|
|
70
|
+
if (resultMessage) {
|
|
71
|
+
store.getState().addMessage({
|
|
72
|
+
role: "assistant",
|
|
73
|
+
text: ` ${resultMessage}`
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
handleImsgStopDaemon: () => {
|
|
78
|
+
try {
|
|
79
|
+
const bridge = require("../../commands/imsg-node-bridge.js");
|
|
80
|
+
return bridge.stopImsgNode();
|
|
81
|
+
} catch {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
handleImsgStartDaemon: () => {
|
|
86
|
+
try {
|
|
87
|
+
const bridge = require("../../commands/imsg-node-bridge.js");
|
|
88
|
+
const status = bridge.getImsgNodeStatus();
|
|
89
|
+
if (status) return {
|
|
90
|
+
success: true,
|
|
91
|
+
pid: status.pid
|
|
92
|
+
};
|
|
93
|
+
const {
|
|
94
|
+
spawn: spawnChild
|
|
95
|
+
} = require("child_process");
|
|
96
|
+
const child = spawnChild(process.execPath, [process.argv[1], "imsg", "watch"], {
|
|
97
|
+
detached: true,
|
|
98
|
+
stdio: "ignore",
|
|
99
|
+
env: {
|
|
100
|
+
...process.env
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
child.unref();
|
|
104
|
+
const pid = child.pid ?? null;
|
|
105
|
+
if (pid) {
|
|
106
|
+
try {
|
|
107
|
+
process.kill(pid, 0);
|
|
108
|
+
return {
|
|
109
|
+
success: true,
|
|
110
|
+
pid
|
|
111
|
+
};
|
|
112
|
+
} catch {/* died immediately */}
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
success: false
|
|
116
|
+
};
|
|
117
|
+
} catch {
|
|
118
|
+
return {
|
|
119
|
+
success: false
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=useOverlayHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOverlayHandlers.js","names":["RewindOutcome","resolvePlanApproval","symbols","getChatStore","buildOverlayHandlers","deps","rewindManagerRef","conversationRef","turnIndexRef","slashHandlers","store","handlePlanDecision","decision","getState","dismissOverlay","handleRewind","checkpointIndex","outcome","rm","current","s","Cancel","RevertOnly","result","revertFilesFrom","total","filesReverted","length","filesDeleted","parts","push","errors","addMessage","role","text","check","join","shouldRevertFiles","RewindAndRevert","rewindTo","setMessages","prev","slice","messageCount","targetTurnIndex","getCheckpoints","turnIndex","conversationSlicePoint","Math","min","detail","handleImsgClose","resultMessage","handleImsgStopDaemon","bridge","require","stopImsgNode","handleImsgStartDaemon","status","getImsgNodeStatus","success","pid","spawn","spawnChild","child","process","execPath","argv","detached","stdio","env","unref","kill"],"sources":["../../../../src/cli/chat/hooks/useOverlayHandlers.ts"],"sourcesContent":["/**\n * useOverlayHandlers — builds the OverlayHandlers object for ChatApp\n *\n * Extracts rewind, plan approval, and imsg daemon logic from ChatApp.\n */\n\nimport type Anthropic from \"@anthropic-ai/sdk\";\nimport type { OverlayHandlers } from \"../OverlayContext.js\";\nimport { RewindOutcome } from \"../RewindViewer.js\";\nimport { RewindManager } from \"../../services/rewind.js\";\nimport { resolvePlanApproval, type PlanApprovalDecision } from \"../../services/interactive-tools.js\";\nimport { symbols } from \"../../shared/Theme.js\";\nimport { getChatStore } from \"../store.js\";\n\ninterface OverlayHandlerDeps {\n rewindManagerRef: React.MutableRefObject<RewindManager>;\n conversationRef: React.MutableRefObject<Anthropic.MessageParam[]>;\n turnIndexRef: React.MutableRefObject<number>;\n slashHandlers: {\n handleStoreSelect: OverlayHandlers[\"handleStoreSelect\"];\n handleStoreCancel: OverlayHandlers[\"handleStoreCancel\"];\n handleNodeSelect: OverlayHandlers[\"handleNodeSelect\"];\n handleNodeCancel: OverlayHandlers[\"handleNodeCancel\"];\n handleSessionSelect: OverlayHandlers[\"handleSessionSelect\"];\n handleMemoryDelete: OverlayHandlers[\"handleMemoryDelete\"];\n };\n}\n\nexport function buildOverlayHandlers(deps: OverlayHandlerDeps): OverlayHandlers {\n const { rewindManagerRef, conversationRef, turnIndexRef, slashHandlers } = deps;\n const store = getChatStore();\n\n const handlePlanDecision = (decision: PlanApprovalDecision) => {\n store.getState().dismissOverlay();\n resolvePlanApproval(decision);\n };\n\n const handleRewind = (checkpointIndex: number, outcome: RewindOutcome) => {\n const rm = rewindManagerRef.current;\n const s = store.getState();\n\n if (outcome === RewindOutcome.Cancel) {\n s.dismissOverlay();\n return;\n }\n\n if (outcome === RewindOutcome.RevertOnly) {\n const result = rm.revertFilesFrom(checkpointIndex);\n s.dismissOverlay();\n const total = result.filesReverted.length + result.filesDeleted.length;\n const parts: string[] = [];\n if (result.filesReverted.length > 0) parts.push(`${result.filesReverted.length} reverted`);\n if (result.filesDeleted.length > 0) parts.push(`${result.filesDeleted.length} deleted`);\n if (result.errors.length > 0) parts.push(`${result.errors.length} errors`);\n s.addMessage({\n role: \"assistant\",\n text: total > 0\n ? ` ${symbols.check} File changes reverted (${parts.join(\", \")})`\n : ` ${symbols.check} No file changes to revert.`,\n });\n return;\n }\n\n const shouldRevertFiles = outcome === RewindOutcome.RewindAndRevert;\n const result = rm.rewindTo(checkpointIndex);\n s.setMessages(prev => prev.slice(0, result.messageCount));\n\n const targetTurnIndex = rm.getCheckpoints()[checkpointIndex]?.turnIndex ?? 0;\n const conversationSlicePoint = Math.min(\n (targetTurnIndex + 1) * 2,\n conversationRef.current.length,\n );\n conversationRef.current = conversationRef.current.slice(0, conversationSlicePoint);\n turnIndexRef.current = targetTurnIndex + 1;\n s.dismissOverlay();\n\n const parts: string[] = [];\n if (shouldRevertFiles) {\n if (result.filesReverted.length > 0) parts.push(`${result.filesReverted.length} files reverted`);\n if (result.filesDeleted.length > 0) parts.push(`${result.filesDeleted.length} files deleted`);\n }\n if (result.errors.length > 0) parts.push(`${result.errors.length} revert errors`);\n\n const detail = parts.length > 0 ? ` (${parts.join(\", \")})` : \"\";\n store.getState().addMessage({\n role: \"assistant\",\n text: ` ${symbols.check} Rewound to turn ${targetTurnIndex + 1}${detail}`,\n });\n };\n\n return {\n ...slashHandlers,\n handlePlanDecision,\n handleRewind,\n handleImsgClose: (resultMessage?: string) => {\n store.getState().dismissOverlay();\n if (resultMessage) {\n store.getState().addMessage({ role: \"assistant\", text: ` ${resultMessage}` });\n }\n },\n handleImsgStopDaemon: () => {\n try {\n const bridge = require(\"../../commands/imsg-node-bridge.js\");\n return bridge.stopImsgNode() as boolean;\n } catch { return false; }\n },\n handleImsgStartDaemon: () => {\n try {\n const bridge = require(\"../../commands/imsg-node-bridge.js\");\n const status = bridge.getImsgNodeStatus();\n if (status) return { success: true, pid: status.pid };\n const { spawn: spawnChild } = require(\"child_process\");\n const child = spawnChild(process.execPath, [process.argv[1], \"imsg\", \"watch\"], {\n detached: true, stdio: \"ignore\", env: { ...process.env },\n });\n child.unref();\n const pid = child.pid ?? null;\n if (pid) {\n try { process.kill(pid, 0); return { success: true, pid }; } catch { /* died immediately */ }\n }\n return { success: false };\n } catch { return { success: false }; }\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,45 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* useSlashCommands — slash command handler extracted from ChatApp
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Reads/writes state via the Zustand store — no setter props needed.
|
|
5
|
+
* Only refs and non-state deps are passed in.
|
|
6
|
+
*
|
|
7
|
+
* Delegates to extraction files:
|
|
8
|
+
* slash-command-handlers.ts — info + session commands
|
|
9
|
+
* slash-command-handlers-system.ts — system commands (exit, update, etc.)
|
|
10
|
+
* slash-command-config-system.ts — config/preference commands
|
|
11
|
+
* slash-node-handlers.ts — node management helpers
|
|
5
12
|
*/
|
|
6
13
|
import type Anthropic from "@anthropic-ai/sdk";
|
|
7
14
|
import { type StoreInfo } from "../../services/auth-service.js";
|
|
8
|
-
import type { ChatMessage } from "../MessageList.js";
|
|
9
15
|
import type { NodeInfo } from "../NodeSelector.js";
|
|
10
|
-
import type { NodeActionResult } from "../NodeManager.js";
|
|
11
16
|
import type { SessionMeta } from "../../services/session-persistence.js";
|
|
12
|
-
import
|
|
17
|
+
import { handleNodeToggle, handleNodeRegister } from "./slash-node-handlers.js";
|
|
13
18
|
export interface SlashCommandDeps {
|
|
14
19
|
exit: () => void;
|
|
15
|
-
toolsExpanded: boolean;
|
|
16
|
-
serverToolsAvailable: number;
|
|
17
|
-
sessionId: string | null;
|
|
18
|
-
thinkingEnabled: boolean;
|
|
19
20
|
conversationRef: React.MutableRefObject<Anthropic.MessageParam[]>;
|
|
20
|
-
setMessages: React.Dispatch<React.SetStateAction<ChatMessage[]>>;
|
|
21
|
-
setStreamingText: React.Dispatch<React.SetStateAction<string>>;
|
|
22
|
-
setActiveTools: React.Dispatch<React.SetStateAction<any[]>>;
|
|
23
|
-
setTeamState: React.Dispatch<React.SetStateAction<any>>;
|
|
24
|
-
setOverlay: React.Dispatch<React.SetStateAction<OverlayState>>;
|
|
25
|
-
setCurrentModel: React.Dispatch<React.SetStateAction<string>>;
|
|
26
|
-
setSessionId: React.Dispatch<React.SetStateAction<string | null>>;
|
|
27
|
-
setThinkingEnabled: React.Dispatch<React.SetStateAction<boolean>>;
|
|
28
|
-
setUserLabel: React.Dispatch<React.SetStateAction<string>>;
|
|
29
|
-
setServerToolsAvailable: React.Dispatch<React.SetStateAction<number>>;
|
|
30
21
|
rewindCheckpointCount: number;
|
|
31
22
|
PKG_NAME: string;
|
|
32
23
|
PKG_VERSION: string;
|
|
24
|
+
sendMessage?: (text: string) => void;
|
|
33
25
|
}
|
|
34
26
|
export declare function useSlashCommands(deps: SlashCommandDeps): {
|
|
35
27
|
handleCommand: (command: string) => Promise<void>;
|
|
36
|
-
handleStoreSelect: (
|
|
28
|
+
handleStoreSelect: (storeInfo: StoreInfo) => void;
|
|
37
29
|
handleStoreCancel: () => void;
|
|
38
|
-
handleNodeSelect: (
|
|
30
|
+
handleNodeSelect: (_node: NodeInfo) => void;
|
|
39
31
|
handleNodeCancel: () => void;
|
|
40
32
|
handleSessionSelect: (session: SessionMeta) => void;
|
|
41
33
|
handleMemoryDelete: (index: number) => void;
|
|
42
|
-
handleNodeToggle:
|
|
43
|
-
handleNodeRegister:
|
|
34
|
+
handleNodeToggle: typeof handleNodeToggle;
|
|
35
|
+
handleNodeRegister: typeof handleNodeRegister;
|
|
44
36
|
handleNodeClose: (resultMessage?: string) => void;
|
|
45
37
|
};
|