whale-code 6.5.6 → 6.5.7
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 +1 -1
- 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 +5 -4
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-tools.js","names":["loadTodos","setTodoSessionId","getTodoState","readFile","writeFile","editFile","multiEdit","notebookEdit","listDirectory","searchFiles","searchContent","resolvePath","readFileSync","existsSync","statSync","resolve","globSearch","grepSearch","runCommand","bashOutput","killShell","listShellsFn","webFetch","webSearch","tasksTool","taskTool","teamCreateTool","teamAutoTool","taskOutput","taskStop","configTool","askUser","lspTool","skillTool","LOCAL_TOOL_NAMES","Set","isLocalTool","name","has","LOCAL_TOOL_DEFINITIONS","description","input_schema","type","properties","path","offset","limit","pages","required","pattern","content","old_string","new_string","replace_all","recursive","query","file_pattern","command","working_directory","timeout","run_in_background","glob","output_mode","enum","context","before","after","case_insensitive","head_limit","multiline","notebook_path","cell_id","new_source","cell_type","edit_mode","url","prompt","allowed_domains","items","blocked_domains","action","subject","activeForm","metadata","taskId","status","subject_update","addBlocks","addBlockedBy","owner","file_path","edits","subagent_type","model","max_turns","team_name","mode","teammate_count","tasks","files","dependencies","task","max_teammates","review","bash_id","filter","shell_id","task_id","block","setting","value","operation","filePath","line","character","question","options","label","skill","args","BINARY_EXTENSIONS","READ_MANY_TRUNCATE_LINES","READ_MANY_SHOW_LINES","readManyFiles","input","basePath","process","cwd","Math","min","max","globResult","success","output","outputLines","split","allFiles","slice","Boolean","totalFound","length","filesToRead","parts","filesRead","skipped","ext","pop","toLowerCase","push","absPath","targetPath","stat","size","toFixed","lines","truncated","join","err","summary","executeLocalTool","signal"],"sources":["../../../src/cli/services/local-tools.ts"],"sourcesContent":["/**\n * Local Tools — tool registry, definitions, and dispatcher\n *\n * This is a thin facade: tool implementations live in `./tools/`.\n * All consumers import from this file for backward compatibility.\n */\n\n// Re-export task persistence API (used by ChatApp, agent-loop)\nexport { loadTodos, setTodoSessionId, getTodoState } from \"./tools/task-manager.js\";\n\n// Import tool implementations from extracted modules\nimport { readFile, writeFile, editFile, multiEdit, notebookEdit, listDirectory, searchFiles, searchContent, resolvePath } from \"./tools/file-ops.js\";\nimport { readFileSync, existsSync, statSync } from \"fs\";\nimport { resolve } from \"path\";\nimport { globSearch, grepSearch } from \"./tools/search-tools.js\";\nimport { runCommand, bashOutput, killShell, listShellsFn } from \"./tools/shell-exec.js\";\nimport { webFetch, webSearch } from \"./tools/web-tools.js\";\nimport { tasksTool } from \"./tools/task-manager.js\";\nimport { taskTool, teamCreateTool, teamAutoTool, taskOutput, taskStop, configTool, askUser, lspTool, skillTool } from \"./tools/agent-tools.js\";\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport interface LocalToolDefinition {\n name: string;\n description: string;\n input_schema: {\n type: \"object\";\n properties: Record<string, unknown>;\n required: string[];\n };\n}\n\nimport { ToolResult } from \"../../shared/types.js\";\nexport type { ToolResult };\n\n// ============================================================================\n// TOOL NAMES\n// ============================================================================\n\nexport const LOCAL_TOOL_NAMES = new Set([\n // Original\n \"read_file\",\n \"read_many_files\",\n \"write_file\",\n \"edit_file\",\n \"list_directory\",\n \"search_files\",\n \"search_content\",\n \"run_command\",\n // New (Claude Code parity)\n \"glob\",\n \"grep\",\n \"notebook_edit\",\n \"web_fetch\",\n \"tasks\", // Replaces todo_write — action-based CRUD with IDs, deps\n \"multi_edit\", // Multi-edit tool\n \"task\", // Subagent tool\n \"team_create\", // Agent team tool (explicit tasks)\n \"team_auto\", // Auto-decompose + parallel team + review\n // Background process tools\n \"bash_output\",\n \"kill_shell\",\n \"list_shells\",\n // Background task tools (shells + agents)\n \"task_output\",\n \"task_stop\",\n // Web search\n \"web_search\",\n // Claude Code parity — consolidated tools\n \"config\", // Settings + plan mode\n \"ask_user\", // Structured questions\n // Code intelligence\n \"lsp\",\n // Skills\n \"skill\",\n]);\n\nexport function isLocalTool(name: string): boolean {\n return LOCAL_TOOL_NAMES.has(name);\n}\n\n// ============================================================================\n// TOOL DEFINITIONS (for Anthropic API)\n// ============================================================================\n\nexport const LOCAL_TOOL_DEFINITIONS: LocalToolDefinition[] = [\n // ------------------------------------------------------------------\n // ENHANCED ORIGINALS\n // ------------------------------------------------------------------\n {\n name: \"read_file\",\n description: \"Read file contents. Supports line-based pagination for large files. Reads images (png/jpg/gif/webp) as visual content. Reads audio files (mp3/wav/aiff/aac/ogg/flac/m4a) as audio content. Extracts text from PDFs. For multiple files, emit all read_file calls in one response — they execute in parallel. IMPORTANT: when reading files in an unfamiliar directory, first use list_directory or glob to confirm exact paths — do NOT guess paths, especially in projects with nested structures (e.g. Xcode, Gradle).\",\n input_schema: {\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Absolute or relative path to the file\" },\n offset: { type: \"number\", description: \"Line number to start reading from (1-based). Omit to read from start.\" },\n limit: { type: \"number\", description: \"Max number of lines to read. Omit to read all.\" },\n pages: { type: \"string\", description: \"Page range for PDFs (e.g. '1-5', '3', '10-20'). Only for .pdf files.\" },\n },\n required: [\"path\"],\n },\n },\n {\n name: \"read_many_files\",\n description: \"Read multiple files matching glob patterns in a single call. More efficient than multiple read_file calls. Returns concatenated content with file headers. Files >500 lines are truncated to first 100 lines.\",\n input_schema: {\n type: \"object\",\n properties: {\n pattern: { type: \"string\", description: \"Glob pattern like 'src/**/*.ts' or '*.json'\" },\n path: { type: \"string\", description: \"Base directory to search in (defaults to cwd)\" },\n limit: { type: \"number\", description: \"Max files to read (default 20, max 50)\" },\n },\n required: [\"pattern\"],\n },\n },\n {\n name: \"write_file\",\n description: \"Write content to a file, creating it and parent directories if needed. For multiple independent files, emit all write_file calls in one response.\",\n input_schema: {\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Absolute or relative path to the file\" },\n content: { type: \"string\", description: \"Content to write to the file\" },\n },\n required: [\"path\", \"content\"],\n },\n },\n {\n name: \"edit_file\",\n description: \"Edit a file by replacing an exact string match. Supports replacing all occurrences.\",\n input_schema: {\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Absolute or relative path to the file\" },\n old_string: { type: \"string\", description: \"Exact text to find in the file\" },\n new_string: { type: \"string\", description: \"Text to replace old_string with\" },\n replace_all: { type: \"boolean\", description: \"Replace ALL occurrences (default false — replaces first only)\" },\n },\n required: [\"path\", \"old_string\", \"new_string\"],\n },\n },\n {\n name: \"list_directory\",\n description: \"List files and directories at the specified path\",\n input_schema: {\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Absolute or relative path to the directory\" },\n recursive: { type: \"boolean\", description: \"List recursively (default false, max 200 entries)\" },\n },\n required: [\"path\"],\n },\n },\n {\n name: \"search_files\",\n description: \"Search for files matching a name pattern using find\",\n input_schema: {\n type: \"object\",\n properties: {\n pattern: { type: \"string\", description: \"File name pattern (e.g. *.ts, *.swift)\" },\n path: { type: \"string\", description: \"Directory to search in\" },\n },\n required: [\"pattern\", \"path\"],\n },\n },\n {\n name: \"search_content\",\n description: \"Search for text content in files (grep-like). For advanced search, use the 'grep' tool.\",\n input_schema: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"Text or regex pattern to search for\" },\n path: { type: \"string\", description: \"Directory to search in\" },\n file_pattern: { type: \"string\", description: \"Optional file glob filter (e.g. *.ts)\" },\n },\n required: [\"query\", \"path\"],\n },\n },\n {\n name: \"run_command\",\n description: \"Execute a shell command. Output streams live. Use run_in_background:true for dev servers/watchers — after starting, use bash_output to verify. On macOS use python3 not python.\",\n input_schema: {\n type: \"object\",\n properties: {\n command: { type: \"string\", description: \"Shell command to execute\" },\n working_directory: { type: \"string\", description: \"Working directory for the command\" },\n timeout: { type: \"number\", description: \"Timeout in milliseconds (default 30000, max 300000)\" },\n description: { type: \"string\", description: \"Short description of what this command does\" },\n run_in_background: { type: \"boolean\", description: \"Run in background (for dev servers, watchers). Returns process ID immediately.\" },\n },\n required: [\"command\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: GLOB — pattern-based file finder\n // ------------------------------------------------------------------\n {\n name: \"glob\",\n description: \"Fast file pattern matching. Use glob patterns like '**/*.ts' or 'src/**/*.tsx'. Returns matching file paths. For multiple patterns, emit all glob calls in one response — they execute in parallel.\",\n input_schema: {\n type: \"object\",\n properties: {\n pattern: { type: \"string\", description: \"Glob pattern (e.g. '**/*.ts', 'src/**/*.tsx', '*.json')\" },\n path: { type: \"string\", description: \"Base directory to search in (defaults to cwd)\" },\n },\n required: [\"pattern\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: GREP — advanced content search\n // ------------------------------------------------------------------\n {\n name: \"grep\",\n description: \"Search file contents with regex, context lines, and multiple output modes. More powerful than search_content. For multiple patterns, emit all grep calls in one response — they execute in parallel.\",\n input_schema: {\n type: \"object\",\n properties: {\n pattern: { type: \"string\", description: \"Regex pattern to search for\" },\n path: { type: \"string\", description: \"File or directory to search in (defaults to cwd)\" },\n glob: { type: \"string\", description: \"Glob pattern to filter files (e.g. '*.ts', '*.{ts,tsx}')\" },\n output_mode: {\n type: \"string\",\n enum: [\"content\", \"files_with_matches\", \"count\"],\n description: \"Output mode: 'content' shows matching lines, 'files_with_matches' shows file paths (default), 'count' shows match counts\",\n },\n context: { type: \"number\", description: \"Lines of context before and after each match\" },\n before: { type: \"number\", description: \"Lines to show before each match (-B)\" },\n after: { type: \"number\", description: \"Lines to show after each match (-A)\" },\n case_insensitive: { type: \"boolean\", description: \"Case insensitive search (default false)\" },\n type: { type: \"string\", description: \"File type shorthand: js, ts, py, go, rust, java, etc.\" },\n head_limit: { type: \"number\", description: \"Max results to return (default 200)\" },\n offset: { type: \"number\", description: \"Skip first N entries before applying head_limit (default 0)\" },\n multiline: { type: \"boolean\", description: \"Enable multiline mode where . matches newlines (requires rg)\" },\n },\n required: [\"pattern\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: NOTEBOOK_EDIT — Jupyter notebook cell editing\n // ------------------------------------------------------------------\n {\n name: \"notebook_edit\",\n description: \"Edit Jupyter notebook (.ipynb) cells: replace, insert, or delete cells.\",\n input_schema: {\n type: \"object\",\n properties: {\n notebook_path: { type: \"string\", description: \"Path to the .ipynb file\" },\n cell_id: { type: \"string\", description: \"Cell ID or 0-based index. For insert, new cell goes after this.\" },\n new_source: { type: \"string\", description: \"New source code/markdown for the cell\" },\n cell_type: { type: \"string\", enum: [\"code\", \"markdown\"], description: \"Cell type (required for insert)\" },\n edit_mode: { type: \"string\", enum: [\"replace\", \"insert\", \"delete\"], description: \"Edit mode (default: replace)\" },\n },\n required: [\"notebook_path\", \"new_source\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: WEB_FETCH — fetch URL content\n // ------------------------------------------------------------------\n {\n name: \"web_fetch\",\n description: \"Fetch content from a URL and return as cleaned text/markdown. Strips HTML, scripts, styles.\",\n input_schema: {\n type: \"object\",\n properties: {\n url: { type: \"string\", description: \"URL to fetch\" },\n prompt: { type: \"string\", description: \"What to extract from the page (used for context)\" },\n },\n required: [\"url\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: WEB_SEARCH — search the web via Exa API\n // ------------------------------------------------------------------\n {\n name: \"web_search\",\n description: \"Search the web for current information. Returns titles, URLs, and snippets.\",\n input_schema: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"Search query\" },\n allowed_domains: { type: \"array\", items: { type: \"string\" }, description: \"Only include results from these domains\" },\n blocked_domains: { type: \"array\", items: { type: \"string\" }, description: \"Exclude results from these domains\" },\n },\n required: [\"query\"],\n },\n },\n\n // ------------------------------------------------------------------\n // TASKS — action-based CRUD for structured task tracking\n // ------------------------------------------------------------------\n {\n name: \"tasks\",\n description: \"Track tasks for the current session. Actions: create (returns ID), update (status/deps), list (summary), get (full details). Supports dependencies via blocks/blockedBy.\",\n input_schema: {\n type: \"object\",\n properties: {\n action: {\n type: \"string\",\n enum: [\"create\", \"update\", \"list\", \"get\"],\n description: \"Action to perform\",\n },\n // For create:\n subject: { type: \"string\", description: \"Brief title in imperative form (create)\" },\n description: { type: \"string\", description: \"Detailed description (create/update)\" },\n activeForm: { type: \"string\", description: \"Present continuous spinner text (create/update)\" },\n metadata: { type: \"object\", description: \"Arbitrary metadata (create/update)\" },\n // For update/get:\n taskId: { type: \"string\", description: \"Task ID (update/get)\" },\n status: { type: \"string\", enum: [\"pending\", \"in_progress\", \"completed\", \"deleted\"], description: \"New status (update)\" },\n subject_update: { type: \"string\", description: \"New subject (update)\" },\n addBlocks: { type: \"array\", items: { type: \"string\" }, description: \"Task IDs this task blocks (update)\" },\n addBlockedBy: { type: \"array\", items: { type: \"string\" }, description: \"Task IDs that block this task (update)\" },\n owner: { type: \"string\", description: \"Task owner (update)\" },\n },\n required: [\"action\"],\n },\n },\n // ------------------------------------------------------------------\n // NEW: MULTI_EDIT — multiple edits to one file in a single call\n // ------------------------------------------------------------------\n {\n name: \"multi_edit\",\n description: \"Apply multiple edits to one file in a single call. Edits applied sequentially. Fails if any old_string not found.\",\n input_schema: {\n type: \"object\",\n properties: {\n file_path: { type: \"string\", description: \"Absolute or relative path to the file\" },\n edits: {\n type: \"array\",\n description: \"Array of edits to apply sequentially\",\n items: {\n type: \"object\",\n properties: {\n old_string: { type: \"string\", description: \"Exact text to find\" },\n new_string: { type: \"string\", description: \"Text to replace with\" },\n },\n required: [\"old_string\", \"new_string\"],\n },\n },\n },\n required: [\"file_path\", \"edits\"],\n },\n },\n // ------------------------------------------------------------------\n // TASK — subagent for discrete tasks\n // ------------------------------------------------------------------\n {\n name: \"task\",\n description: \"Launch a subagent in isolated context. Subagents have full tool access and batch multiple tool calls per turn (glob + grep + read_file in parallel). Launch multiple task calls in one response for parallel execution. Use for any work requiring 3+ tool calls. Subagents complete in 2-8 turns autonomously.\",\n input_schema: {\n type: \"object\",\n properties: {\n prompt: { type: \"string\", description: \"Specific task with clear completion criteria\" },\n subagent_type: {\n type: \"string\",\n enum: [\"explore\", \"plan\", \"general-purpose\", \"research\"],\n description: \"Agent type: explore=find, plan=design, general-purpose=do, research=lookup\",\n },\n model: {\n type: \"string\",\n enum: [\"sonnet\", \"opus\", \"haiku\"],\n description: \"Haiku for quick tasks, Sonnet (default) for most, Opus for complex\",\n },\n run_in_background: {\n type: \"boolean\",\n description: \"Run agent in background. Returns output_file path to check progress via task_output.\",\n },\n max_turns: {\n type: \"number\",\n description: \"Max agentic turns (1-50). Default 8.\",\n },\n name: {\n type: \"string\",\n description: \"Display name for the agent.\",\n },\n description: {\n type: \"string\",\n description: \"Short 3-5 word description of the task.\",\n },\n team_name: {\n type: \"string\",\n description: \"Team name for spawning. Uses current team context if omitted.\",\n },\n mode: {\n type: \"string\",\n enum: [\"default\", \"plan\", \"yolo\"],\n description: \"Permission mode for spawned agent (default inherits parent).\",\n },\n },\n required: [\"prompt\", \"subagent_type\"],\n },\n },\n // ------------------------------------------------------------------\n // TEAM — parallel agent team for large tasks\n // ------------------------------------------------------------------\n {\n name: \"team_create\",\n description: \"Create an Agent Team — multiple full Claude instances in parallel. Each teammate has full tool access, can spawn subagents via 'task' tool, and batches tool calls. Teammates → subagents → batch tools. Size tasks for 5-6 items per teammate. Include file lists to prevent conflicts.\",\n input_schema: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n description: \"Team name (e.g., 'Feature Implementation Team')\",\n },\n teammate_count: {\n type: \"number\",\n description: \"Number of teammates to spawn (2-5 recommended)\",\n },\n model: {\n type: \"string\",\n enum: [\"sonnet\", \"opus\", \"haiku\"],\n description: \"Model for all teammates (default: sonnet)\",\n },\n tasks: {\n type: \"array\",\n description: \"Tasks for the team to complete\",\n items: {\n type: \"object\",\n properties: {\n description: {\n type: \"string\",\n description: \"Clear task description with completion criteria\",\n },\n model: {\n type: \"string\",\n description: \"Model for this task: haiku (lookups), sonnet (analysis), opus (complex reasoning). Overrides team default.\",\n },\n files: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Files this task will modify (for conflict prevention)\",\n },\n dependencies: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Task descriptions that must complete first\",\n },\n },\n required: [\"description\"],\n },\n },\n },\n required: [\"name\", \"teammate_count\", \"tasks\"],\n },\n },\n {\n name: \"team_auto\",\n description: \"Auto-decompose a task and run it as a parallel agent team. AI breaks the task into sub-tasks with file ownership, spawns teammates, executes in parallel, and reviews results. Use this for large tasks where you don't want to manually plan the decomposition.\",\n input_schema: {\n type: \"object\",\n properties: {\n task: {\n type: \"string\",\n description: \"The task to decompose and execute (e.g., 'Refactor all components to use TypeScript strict mode')\",\n },\n max_teammates: {\n type: \"number\",\n description: \"Maximum number of parallel teammates (default: 4, max: 6)\",\n },\n model: {\n type: \"string\",\n enum: [\"sonnet\", \"opus\", \"haiku\"],\n description: \"Model for teammates (default: sonnet)\",\n },\n working_directory: {\n type: \"string\",\n description: \"Project directory to work in (default: cwd)\",\n },\n review: {\n type: \"boolean\",\n description: \"Run a review pass after completion (default: true)\",\n },\n },\n required: [\"task\"],\n },\n },\n\n // ------------------------------------------------------------------\n // BACKGROUND PROCESS TOOLS\n // ------------------------------------------------------------------\n {\n name: \"bash_output\",\n description: \"Read output from a running or completed background shell process. Returns only NEW output since the last read.\",\n input_schema: {\n type: \"object\",\n properties: {\n bash_id: { type: \"string\", description: \"The process ID returned when starting the background process\" },\n filter: { type: \"string\", description: \"Optional regex to filter output lines\" },\n },\n required: [\"bash_id\"],\n },\n },\n {\n name: \"kill_shell\",\n description: \"Terminate a running background shell process\",\n input_schema: {\n type: \"object\",\n properties: {\n shell_id: { type: \"string\", description: \"The process ID to kill\" },\n },\n required: [\"shell_id\"],\n },\n },\n {\n name: \"list_shells\",\n description: \"List all background shell processes (running and recent completed)\",\n input_schema: {\n type: \"object\",\n properties: {},\n required: [],\n },\n },\n // ------------------------------------------------------------------\n // TASK OUTPUT / TASK STOP — unified background task management\n // ------------------------------------------------------------------\n {\n name: \"task_output\",\n description: \"Get output from a background task (shell or agent). Returns status and output content.\",\n input_schema: {\n type: \"object\",\n properties: {\n task_id: { type: \"string\", description: \"The task/agent ID (e.g. shell-xxx or agent-xxx)\" },\n block: { type: \"boolean\", description: \"Wait for completion (default: true)\" },\n timeout: { type: \"number\", description: \"Max wait time in ms (default: 30000)\" },\n },\n required: [\"task_id\"],\n },\n },\n {\n name: \"task_stop\",\n description: \"Stop a running background task (shell or agent) by ID.\",\n input_schema: {\n type: \"object\",\n properties: {\n task_id: { type: \"string\", description: \"The task ID to stop\" },\n },\n required: [\"task_id\"],\n },\n },\n\n // ------------------------------------------------------------------\n // CONFIG — runtime settings + mode control (consolidated)\n // ------------------------------------------------------------------\n {\n name: \"config\",\n description: \"Read or write CLI settings. Omit value to read. Keys: model (sonnet/opus/haiku), mode (default/plan/yolo — plan restricts to read-only tools), memory. Use mode=plan before non-trivial tasks to explore first, mode=default to resume full access.\",\n input_schema: {\n type: \"object\",\n properties: {\n setting: { type: \"string\", description: \"Setting key: 'model', 'mode', 'memory'\" },\n value: { type: \"string\", description: \"New value. Omit to read current value.\" },\n },\n required: [\"setting\"],\n },\n },\n\n // ------------------------------------------------------------------\n // LSP — Language Server Protocol code intelligence\n // ------------------------------------------------------------------\n {\n name: \"lsp\",\n description: \"Code intelligence via Language Server Protocol. Supports: goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls. Requires a language server installed for the file type.\",\n input_schema: {\n type: \"object\",\n properties: {\n operation: {\n type: \"string\",\n enum: [\n \"goToDefinition\",\n \"findReferences\",\n \"hover\",\n \"documentSymbol\",\n \"workspaceSymbol\",\n \"goToImplementation\",\n \"prepareCallHierarchy\",\n \"incomingCalls\",\n \"outgoingCalls\",\n ],\n description: \"LSP operation to perform\",\n },\n filePath: { type: \"string\", description: \"Absolute or relative path to the file\" },\n line: { type: \"number\", description: \"Line number (1-based, as shown in editors)\" },\n character: { type: \"number\", description: \"Character offset (1-based, as shown in editors)\" },\n query: { type: \"string\", description: \"Search query for workspaceSymbol operation (optional, defaults to all symbols)\" },\n },\n required: [\"operation\", \"filePath\", \"line\", \"character\"],\n },\n },\n\n // ------------------------------------------------------------------\n // ASK_USER — structured multi-choice question\n // ------------------------------------------------------------------\n {\n name: \"ask_user\",\n description: \"Ask the user a structured question with predefined options. Use to gather preferences, clarify requirements, or get decisions during execution. The user can always type a custom answer.\",\n input_schema: {\n type: \"object\",\n properties: {\n question: { type: \"string\", description: \"The question to ask\" },\n options: {\n type: \"array\",\n description: \"2-4 options for the user to choose from\",\n items: {\n type: \"object\",\n properties: {\n label: { type: \"string\", description: \"Short option label (1-5 words)\" },\n description: { type: \"string\", description: \"Explanation of what this option means\" },\n },\n required: [\"label\", \"description\"],\n },\n },\n },\n required: [\"question\", \"options\"],\n },\n },\n\n // ------------------------------------------------------------------\n // SKILL — invoke named skills (model-callable)\n // ------------------------------------------------------------------\n {\n name: \"skill\",\n description: \"Invoke a named skill. Skills provide specialized workflows like committing code, reviewing PRs, etc. Built-in skills: commit, review, review-pr. Custom skills from .whale/commands/ and ~/.whale/commands/.\",\n input_schema: {\n type: \"object\",\n properties: {\n skill: { type: \"string\", description: \"Skill name (e.g., 'commit', 'review-pr')\" },\n args: { type: \"string\", description: \"Optional arguments for the skill\" },\n },\n required: [\"skill\"],\n },\n },\n];\n\n// ============================================================================\n// READ MANY FILES — reads multiple files matching glob patterns\n// ============================================================================\n\nconst BINARY_EXTENSIONS = new Set([\n \"png\", \"jpg\", \"jpeg\", \"gif\", \"webp\", \"bmp\", \"ico\", \"svg\",\n \"mp3\", \"wav\", \"aiff\", \"aac\", \"ogg\", \"flac\", \"m4a\",\n \"mp4\", \"mov\", \"avi\", \"mkv\", \"webm\",\n \"zip\", \"tar\", \"gz\", \"bz2\", \"7z\", \"rar\",\n \"exe\", \"dll\", \"so\", \"dylib\", \"o\", \"a\",\n \"woff\", \"woff2\", \"ttf\", \"otf\", \"eot\",\n \"pdf\",\n]);\n\nconst READ_MANY_TRUNCATE_LINES = 2000;\nconst READ_MANY_SHOW_LINES = 500;\n\nasync function readManyFiles(input: Record<string, unknown>): Promise<ToolResult> {\n const pattern = input.pattern as string;\n const basePath = (input.path as string) || process.cwd();\n const limit = Math.min(Math.max((input.limit as number) || 20, 1), 50);\n\n // Use globSearch to find matching files\n const globResult = globSearch({ pattern, path: basePath });\n if (!globResult.success) {\n return { success: false, output: globResult.output };\n }\n\n // Parse file paths from globSearch output (format: \"N files:\\npath1\\npath2\\n...\")\n const outputLines = globResult.output.split(\"\\n\");\n if (outputLines[0] === \"No files found\") {\n return { success: true, output: \"No files matched the pattern.\" };\n }\n\n // First line is \"N files:\", rest are paths\n const allFiles = outputLines.slice(1).filter(Boolean);\n const totalFound = allFiles.length;\n const filesToRead = allFiles.slice(0, limit);\n\n const parts: string[] = [];\n let filesRead = 0;\n let skipped = 0;\n\n for (const filePath of filesToRead) {\n const ext = filePath.split(\".\").pop()?.toLowerCase() || \"\";\n\n // Skip binary files (images, audio, video, archives, etc.)\n if (BINARY_EXTENSIONS.has(ext)) {\n parts.push(`=== ${filePath} ===\\n[Binary file — ${ext}]\\n`);\n skipped++;\n continue;\n }\n\n const absPath = resolve(resolvePath(basePath), resolvePath(filePath));\n const targetPath = existsSync(absPath) ? absPath : filePath;\n\n if (!existsSync(targetPath)) {\n parts.push(`=== ${filePath} ===\\n[File not found]\\n`);\n skipped++;\n continue;\n }\n\n try {\n const stat = statSync(targetPath);\n // Skip files > 1MB\n if (stat.size > 1_000_000) {\n parts.push(`=== ${filePath} ===\\n[File too large: ${(stat.size / 1024).toFixed(0)}KB]\\n`);\n skipped++;\n continue;\n }\n\n const content = readFileSync(targetPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n\n if (lines.length > READ_MANY_TRUNCATE_LINES) {\n const truncated = lines.slice(0, READ_MANY_SHOW_LINES).join(\"\\n\");\n parts.push(`=== ${filePath} ===\\n${truncated}\\n[... truncated — ${lines.length} total lines, showing first ${READ_MANY_SHOW_LINES}]\\n`);\n } else {\n parts.push(`=== ${filePath} ===\\n${content}\\n`);\n }\n filesRead++;\n } catch (err) {\n parts.push(`=== ${filePath} ===\\n[Error reading file: ${err}]\\n`);\n skipped++;\n }\n }\n\n const summary = `Read ${filesRead} files, skipped ${skipped}${totalFound > limit ? `, ${totalFound - limit} more matched but not read (limit: ${limit})` : \"\"} — ${totalFound} total matches`;\n parts.push(summary);\n\n return { success: true, output: parts.join(\"\\n\") };\n}\n\n// ============================================================================\n// EXECUTOR — dispatches to tool implementations in ./tools/\n// ============================================================================\n\nexport async function executeLocalTool(\n name: string,\n input: Record<string, unknown>,\n signal?: AbortSignal,\n): Promise<ToolResult> {\n try {\n switch (name) {\n // File operations (tools/file-ops.ts)\n case \"read_file\": return await readFile(input);\n case \"read_many_files\": return await readManyFiles(input);\n case \"write_file\": return writeFile(input);\n case \"edit_file\": return editFile(input);\n case \"list_directory\": return listDirectory(input);\n case \"search_files\": return searchFiles(input);\n case \"search_content\": return searchContent(input);\n case \"multi_edit\": return multiEdit(input);\n case \"notebook_edit\": return notebookEdit(input);\n // Search (tools/search-tools.ts)\n case \"glob\": return globSearch(input);\n case \"grep\": return grepSearch(input);\n // Shell execution (tools/shell-exec.ts)\n case \"run_command\": return await runCommand(input);\n case \"bash_output\": return bashOutput(input);\n case \"kill_shell\": return killShell(input);\n case \"list_shells\": return listShellsFn();\n // Web (tools/web-tools.ts)\n case \"web_fetch\": return await webFetch(input);\n case \"web_search\": return await webSearch(input);\n // Tasks (tools/task-manager.ts)\n case \"tasks\": return tasksTool(input);\n // Agent tools (tools/agent-tools.ts)\n case \"task\": return await taskTool(input, signal);\n case \"team_create\": return await teamCreateTool(input, signal);\n case \"team_auto\": return await teamAutoTool(input, signal);\n case \"task_output\": return await taskOutput(input);\n case \"task_stop\": return taskStop(input);\n case \"config\": return configTool(input);\n case \"ask_user\": return askUser(input);\n case \"lsp\": return await lspTool(input);\n case \"skill\": return skillTool(input);\n default: return { success: false, output: `Unknown local tool: ${name}` };\n }\n } catch (err) {\n return { success: false, output: `Error: ${err}` };\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,SAAS,EAAEC,gBAAgB,EAAEC,YAAY,QAAQ,yBAAyB;;AAEnF;AACA,SAASC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,YAAY,EAAEC,aAAa,EAAEC,WAAW,EAAEC,aAAa,EAAEC,WAAW,QAAQ,qBAAqB;AACpJ,SAASC,YAAY,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,IAAI;AACvD,SAASC,OAAO,QAAQ,MAAM;AAC9B,SAASC,UAAU,EAAEC,UAAU,QAAQ,yBAAyB;AAChE,SAASC,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,YAAY,QAAQ,uBAAuB;AACvF,SAASC,QAAQ,EAAEC,SAAS,QAAQ,sBAAsB;AAC1D,SAASC,SAAS,QAAQ,yBAAyB;AACnD,SAASC,QAAQ,EAAEC,cAAc,EAAEC,YAAY,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,QAAQ,wBAAwB;;AAE9I;AACA;AACA;;AAeA;AACA;AACA;;AAEA,OAAO,MAAMC,gBAAgB,GAAG,IAAIC,GAAG,CAAC;AACtC;AACA,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,aAAa;AACb;AACA,MAAM,EACN,MAAM,EACN,eAAe,EACf,WAAW,EACX,OAAO;AAAE;AACT,YAAY;AAAE;AACd,MAAM;AAAE;AACR,aAAa;AAAE;AACf,WAAW;AAAI;AACf;AACA,aAAa,EACb,YAAY,EACZ,aAAa;AACb;AACA,aAAa,EACb,WAAW;AACX;AACA,YAAY;AACZ;AACA,QAAQ;AAAE;AACV,UAAU;AAAE;AACZ;AACA,KAAK;AACL;AACA,OAAO,CACR,CAAC;AAEF,OAAO,SAASC,WAAWA,CAACC,IAAY,EAAW;EACjD,OAAOH,gBAAgB,CAACI,GAAG,CAACD,IAAI,CAAC;AACnC;;AAEA;AACA;AACA;;AAEA,OAAO,MAAME,sBAA6C,GAAG;AAC3D;AACA;AACA;AACA;EACEF,IAAI,EAAE,WAAW;EACjBG,WAAW,EAAE,0fAA0f;EACvgBC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVC,IAAI,EAAE;QAAEF,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwC,CAAC;MAC9EK,MAAM,EAAE;QAAEH,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwE,CAAC;MAChHM,KAAK,EAAE;QAAEJ,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAiD,CAAC;MACxFO,KAAK,EAAE;QAAEL,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAuE;IAC/G,CAAC;IACDQ,QAAQ,EAAE,CAAC,MAAM;EACnB;AACF,CAAC,EACD;EACEX,IAAI,EAAE,iBAAiB;EACvBG,WAAW,EAAE,+MAA+M;EAC5NC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVM,OAAO,EAAE;QAAEP,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA8C,CAAC;MACvFI,IAAI,EAAE;QAAEF,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAgD,CAAC;MACtFM,KAAK,EAAE;QAAEJ,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAyC;IACjF,CAAC;IACDQ,QAAQ,EAAE,CAAC,SAAS;EACtB;AACF,CAAC,EACD;EACEX,IAAI,EAAE,YAAY;EAClBG,WAAW,EAAE,mJAAmJ;EAChKC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVC,IAAI,EAAE;QAAEF,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwC,CAAC;MAC9EU,OAAO,EAAE;QAAER,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA+B;IACzE,CAAC;IACDQ,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS;EAC9B;AACF,CAAC,EACD;EACEX,IAAI,EAAE,WAAW;EACjBG,WAAW,EAAE,qFAAqF;EAClGC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVC,IAAI,EAAE;QAAEF,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwC,CAAC;MAC9EW,UAAU,EAAE;QAAET,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAiC,CAAC;MAC7EY,UAAU,EAAE;QAAEV,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAkC,CAAC;MAC9Ea,WAAW,EAAE;QAAEX,IAAI,EAAE,SAAS;QAAEF,WAAW,EAAE;MAAgE;IAC/G,CAAC;IACDQ,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY;EAC/C;AACF,CAAC,EACD;EACEX,IAAI,EAAE,gBAAgB;EACtBG,WAAW,EAAE,kDAAkD;EAC/DC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVC,IAAI,EAAE;QAAEF,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA6C,CAAC;MACnFc,SAAS,EAAE;QAAEZ,IAAI,EAAE,SAAS;QAAEF,WAAW,EAAE;MAAoD;IACjG,CAAC;IACDQ,QAAQ,EAAE,CAAC,MAAM;EACnB;AACF,CAAC,EACD;EACEX,IAAI,EAAE,cAAc;EACpBG,WAAW,EAAE,qDAAqD;EAClEC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVM,OAAO,EAAE;QAAEP,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAyC,CAAC;MAClFI,IAAI,EAAE;QAAEF,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAyB;IAChE,CAAC;IACDQ,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM;EAC9B;AACF,CAAC,EACD;EACEX,IAAI,EAAE,gBAAgB;EACtBG,WAAW,EAAE,yFAAyF;EACtGC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVY,KAAK,EAAE;QAAEb,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAsC,CAAC;MAC7EI,IAAI,EAAE;QAAEF,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAyB,CAAC;MAC/DgB,YAAY,EAAE;QAAEd,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwC;IACvF,CAAC;IACDQ,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM;EAC5B;AACF,CAAC,EACD;EACEX,IAAI,EAAE,aAAa;EACnBG,WAAW,EAAE,iLAAiL;EAC9LC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVc,OAAO,EAAE;QAAEf,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA2B,CAAC;MACpEkB,iBAAiB,EAAE;QAAEhB,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAoC,CAAC;MACvFmB,OAAO,EAAE;QAAEjB,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAsD,CAAC;MAC/FA,WAAW,EAAE;QAAEE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA8C,CAAC;MAC3FoB,iBAAiB,EAAE;QAAElB,IAAI,EAAE,SAAS;QAAEF,WAAW,EAAE;MAAiF;IACtI,CAAC;IACDQ,QAAQ,EAAE,CAAC,SAAS;EACtB;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,MAAM;EACZG,WAAW,EAAE,qMAAqM;EAClNC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVM,OAAO,EAAE;QAAEP,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA0D,CAAC;MACnGI,IAAI,EAAE;QAAEF,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAgD;IACvF,CAAC;IACDQ,QAAQ,EAAE,CAAC,SAAS;EACtB;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,MAAM;EACZG,WAAW,EAAE,sMAAsM;EACnNC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVM,OAAO,EAAE;QAAEP,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA8B,CAAC;MACvEI,IAAI,EAAE;QAAEF,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAmD,CAAC;MACzFqB,IAAI,EAAE;QAAEnB,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA2D,CAAC;MACjGsB,WAAW,EAAE;QACXpB,IAAI,EAAE,QAAQ;QACdqB,IAAI,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,OAAO,CAAC;QAChDvB,WAAW,EAAE;MACf,CAAC;MACDwB,OAAO,EAAE;QAAEtB,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA+C,CAAC;MACxFyB,MAAM,EAAE;QAAEvB,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAuC,CAAC;MAC/E0B,KAAK,EAAE;QAAExB,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAsC,CAAC;MAC7E2B,gBAAgB,EAAE;QAAEzB,IAAI,EAAE,SAAS;QAAEF,WAAW,EAAE;MAA0C,CAAC;MAC7FE,IAAI,EAAE;QAAEA,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwD,CAAC;MAC9F4B,UAAU,EAAE;QAAE1B,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAsC,CAAC;MAClFK,MAAM,EAAE;QAAEH,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA8D,CAAC;MACtG6B,SAAS,EAAE;QAAE3B,IAAI,EAAE,SAAS;QAAEF,WAAW,EAAE;MAA+D;IAC5G,CAAC;IACDQ,QAAQ,EAAE,CAAC,SAAS;EACtB;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,eAAe;EACrBG,WAAW,EAAE,yEAAyE;EACtFC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACV2B,aAAa,EAAE;QAAE5B,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA0B,CAAC;MACzE+B,OAAO,EAAE;QAAE7B,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAkE,CAAC;MAC3GgC,UAAU,EAAE;QAAE9B,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwC,CAAC;MACpFiC,SAAS,EAAE;QAAE/B,IAAI,EAAE,QAAQ;QAAEqB,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;QAAEvB,WAAW,EAAE;MAAkC,CAAC;MACzGkC,SAAS,EAAE;QAAEhC,IAAI,EAAE,QAAQ;QAAEqB,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAAEvB,WAAW,EAAE;MAA+B;IAClH,CAAC;IACDQ,QAAQ,EAAE,CAAC,eAAe,EAAE,YAAY;EAC1C;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,WAAW;EACjBG,WAAW,EAAE,6FAA6F;EAC1GC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVgC,GAAG,EAAE;QAAEjC,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAe,CAAC;MACpDoC,MAAM,EAAE;QAAElC,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAmD;IAC5F,CAAC;IACDQ,QAAQ,EAAE,CAAC,KAAK;EAClB;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,YAAY;EAClBG,WAAW,EAAE,6EAA6E;EAC1FC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVY,KAAK,EAAE;QAAEb,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAe,CAAC;MACtDqC,eAAe,EAAE;QAAEnC,IAAI,EAAE,OAAO;QAAEoC,KAAK,EAAE;UAAEpC,IAAI,EAAE;QAAS,CAAC;QAAEF,WAAW,EAAE;MAA0C,CAAC;MACrHuC,eAAe,EAAE;QAAErC,IAAI,EAAE,OAAO;QAAEoC,KAAK,EAAE;UAAEpC,IAAI,EAAE;QAAS,CAAC;QAAEF,WAAW,EAAE;MAAqC;IACjH,CAAC;IACDQ,QAAQ,EAAE,CAAC,OAAO;EACpB;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,OAAO;EACbG,WAAW,EAAE,0KAA0K;EACvLC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVqC,MAAM,EAAE;QACNtC,IAAI,EAAE,QAAQ;QACdqB,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;QACzCvB,WAAW,EAAE;MACf,CAAC;MACD;MACAyC,OAAO,EAAE;QAAEvC,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA0C,CAAC;MACnFA,WAAW,EAAE;QAAEE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAuC,CAAC;MACpF0C,UAAU,EAAE;QAAExC,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAkD,CAAC;MAC9F2C,QAAQ,EAAE;QAAEzC,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAqC,CAAC;MAC/E;MACA4C,MAAM,EAAE;QAAE1C,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAuB,CAAC;MAC/D6C,MAAM,EAAE;QAAE3C,IAAI,EAAE,QAAQ;QAAEqB,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC;QAAEvB,WAAW,EAAE;MAAsB,CAAC;MACxH8C,cAAc,EAAE;QAAE5C,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAuB,CAAC;MACvE+C,SAAS,EAAE;QAAE7C,IAAI,EAAE,OAAO;QAAEoC,KAAK,EAAE;UAAEpC,IAAI,EAAE;QAAS,CAAC;QAAEF,WAAW,EAAE;MAAqC,CAAC;MAC1GgD,YAAY,EAAE;QAAE9C,IAAI,EAAE,OAAO;QAAEoC,KAAK,EAAE;UAAEpC,IAAI,EAAE;QAAS,CAAC;QAAEF,WAAW,EAAE;MAAyC,CAAC;MACjHiD,KAAK,EAAE;QAAE/C,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAsB;IAC9D,CAAC;IACDQ,QAAQ,EAAE,CAAC,QAAQ;EACrB;AACF,CAAC;AACD;AACA;AACA;AACA;EACEX,IAAI,EAAE,YAAY;EAClBG,WAAW,EAAE,mHAAmH;EAChIC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACV+C,SAAS,EAAE;QAAEhD,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwC,CAAC;MACnFmD,KAAK,EAAE;QACLjD,IAAI,EAAE,OAAO;QACbF,WAAW,EAAE,sCAAsC;QACnDsC,KAAK,EAAE;UACLpC,IAAI,EAAE,QAAQ;UACdC,UAAU,EAAE;YACVQ,UAAU,EAAE;cAAET,IAAI,EAAE,QAAQ;cAAEF,WAAW,EAAE;YAAqB,CAAC;YACjEY,UAAU,EAAE;cAAEV,IAAI,EAAE,QAAQ;cAAEF,WAAW,EAAE;YAAuB;UACpE,CAAC;UACDQ,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY;QACvC;MACF;IACF,CAAC;IACDA,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO;EACjC;AACF,CAAC;AACD;AACA;AACA;AACA;EACEX,IAAI,EAAE,MAAM;EACZG,WAAW,EAAE,iTAAiT;EAC9TC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACViC,MAAM,EAAE;QAAElC,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA+C,CAAC;MACvFoD,aAAa,EAAE;QACblD,IAAI,EAAE,QAAQ;QACdqB,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC;QACxDvB,WAAW,EAAE;MACf,CAAC;MACDqD,KAAK,EAAE;QACLnD,IAAI,EAAE,QAAQ;QACdqB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;QACjCvB,WAAW,EAAE;MACf,CAAC;MACDoB,iBAAiB,EAAE;QACjBlB,IAAI,EAAE,SAAS;QACfF,WAAW,EAAE;MACf,CAAC;MACDsD,SAAS,EAAE;QACTpD,IAAI,EAAE,QAAQ;QACdF,WAAW,EAAE;MACf,CAAC;MACDH,IAAI,EAAE;QACJK,IAAI,EAAE,QAAQ;QACdF,WAAW,EAAE;MACf,CAAC;MACDA,WAAW,EAAE;QACXE,IAAI,EAAE,QAAQ;QACdF,WAAW,EAAE;MACf,CAAC;MACDuD,SAAS,EAAE;QACTrD,IAAI,EAAE,QAAQ;QACdF,WAAW,EAAE;MACf,CAAC;MACDwD,IAAI,EAAE;QACJtD,IAAI,EAAE,QAAQ;QACdqB,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QACjCvB,WAAW,EAAE;MACf;IACF,CAAC;IACDQ,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe;EACtC;AACF,CAAC;AACD;AACA;AACA;AACA;EACEX,IAAI,EAAE,aAAa;EACnBG,WAAW,EAAE,0RAA0R;EACvSC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVN,IAAI,EAAE;QACJK,IAAI,EAAE,QAAQ;QACdF,WAAW,EAAE;MACf,CAAC;MACDyD,cAAc,EAAE;QACdvD,IAAI,EAAE,QAAQ;QACdF,WAAW,EAAE;MACf,CAAC;MACDqD,KAAK,EAAE;QACLnD,IAAI,EAAE,QAAQ;QACdqB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;QACjCvB,WAAW,EAAE;MACf,CAAC;MACD0D,KAAK,EAAE;QACLxD,IAAI,EAAE,OAAO;QACbF,WAAW,EAAE,gCAAgC;QAC7CsC,KAAK,EAAE;UACLpC,IAAI,EAAE,QAAQ;UACdC,UAAU,EAAE;YACVH,WAAW,EAAE;cACXE,IAAI,EAAE,QAAQ;cACdF,WAAW,EAAE;YACf,CAAC;YACDqD,KAAK,EAAE;cACLnD,IAAI,EAAE,QAAQ;cACdF,WAAW,EAAE;YACf,CAAC;YACD2D,KAAK,EAAE;cACLzD,IAAI,EAAE,OAAO;cACboC,KAAK,EAAE;gBAAEpC,IAAI,EAAE;cAAS,CAAC;cACzBF,WAAW,EAAE;YACf,CAAC;YACD4D,YAAY,EAAE;cACZ1D,IAAI,EAAE,OAAO;cACboC,KAAK,EAAE;gBAAEpC,IAAI,EAAE;cAAS,CAAC;cACzBF,WAAW,EAAE;YACf;UACF,CAAC;UACDQ,QAAQ,EAAE,CAAC,aAAa;QAC1B;MACF;IACF,CAAC;IACDA,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO;EAC9C;AACF,CAAC,EACD;EACEX,IAAI,EAAE,WAAW;EACjBG,WAAW,EAAE,kQAAkQ;EAC/QC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACV0D,IAAI,EAAE;QACJ3D,IAAI,EAAE,QAAQ;QACdF,WAAW,EAAE;MACf,CAAC;MACD8D,aAAa,EAAE;QACb5D,IAAI,EAAE,QAAQ;QACdF,WAAW,EAAE;MACf,CAAC;MACDqD,KAAK,EAAE;QACLnD,IAAI,EAAE,QAAQ;QACdqB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;QACjCvB,WAAW,EAAE;MACf,CAAC;MACDkB,iBAAiB,EAAE;QACjBhB,IAAI,EAAE,QAAQ;QACdF,WAAW,EAAE;MACf,CAAC;MACD+D,MAAM,EAAE;QACN7D,IAAI,EAAE,SAAS;QACfF,WAAW,EAAE;MACf;IACF,CAAC;IACDQ,QAAQ,EAAE,CAAC,MAAM;EACnB;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,aAAa;EACnBG,WAAW,EAAE,gHAAgH;EAC7HC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACV6D,OAAO,EAAE;QAAE9D,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA+D,CAAC;MACxGiE,MAAM,EAAE;QAAE/D,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwC;IACjF,CAAC;IACDQ,QAAQ,EAAE,CAAC,SAAS;EACtB;AACF,CAAC,EACD;EACEX,IAAI,EAAE,YAAY;EAClBG,WAAW,EAAE,8CAA8C;EAC3DC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACV+D,QAAQ,EAAE;QAAEhE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAyB;IACpE,CAAC;IACDQ,QAAQ,EAAE,CAAC,UAAU;EACvB;AACF,CAAC,EACD;EACEX,IAAI,EAAE,aAAa;EACnBG,WAAW,EAAE,oEAAoE;EACjFC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE,CAAC,CAAC;IACdK,QAAQ,EAAE;EACZ;AACF,CAAC;AACD;AACA;AACA;AACA;EACEX,IAAI,EAAE,aAAa;EACnBG,WAAW,EAAE,wFAAwF;EACrGC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVgE,OAAO,EAAE;QAAEjE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAkD,CAAC;MAC3FoE,KAAK,EAAE;QAAElE,IAAI,EAAE,SAAS;QAAEF,WAAW,EAAE;MAAsC,CAAC;MAC9EmB,OAAO,EAAE;QAAEjB,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAuC;IACjF,CAAC;IACDQ,QAAQ,EAAE,CAAC,SAAS;EACtB;AACF,CAAC,EACD;EACEX,IAAI,EAAE,WAAW;EACjBG,WAAW,EAAE,wDAAwD;EACrEC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVgE,OAAO,EAAE;QAAEjE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAsB;IAChE,CAAC;IACDQ,QAAQ,EAAE,CAAC,SAAS;EACtB;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,QAAQ;EACdG,WAAW,EAAE,qPAAqP;EAClQC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVkE,OAAO,EAAE;QAAEnE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAyC,CAAC;MAClFsE,KAAK,EAAE;QAAEpE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAyC;IACjF,CAAC;IACDQ,QAAQ,EAAE,CAAC,SAAS;EACtB;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,KAAK;EACXG,WAAW,EAAE,mQAAmQ;EAChRC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVoE,SAAS,EAAE;QACTrE,IAAI,EAAE,QAAQ;QACdqB,IAAI,EAAE,CACJ,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,CAChB;QACDvB,WAAW,EAAE;MACf,CAAC;MACDwE,QAAQ,EAAE;QAAEtE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAwC,CAAC;MAClFyE,IAAI,EAAE;QAAEvE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA6C,CAAC;MACnF0E,SAAS,EAAE;QAAExE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAkD,CAAC;MAC7Fe,KAAK,EAAE;QAAEb,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAiF;IACzH,CAAC;IACDQ,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW;EACzD;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,UAAU;EAChBG,WAAW,EAAE,2LAA2L;EACxMC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACVwE,QAAQ,EAAE;QAAEzE,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAsB,CAAC;MAChE4E,OAAO,EAAE;QACP1E,IAAI,EAAE,OAAO;QACbF,WAAW,EAAE,yCAAyC;QACtDsC,KAAK,EAAE;UACLpC,IAAI,EAAE,QAAQ;UACdC,UAAU,EAAE;YACV0E,KAAK,EAAE;cAAE3E,IAAI,EAAE,QAAQ;cAAEF,WAAW,EAAE;YAAiC,CAAC;YACxEA,WAAW,EAAE;cAAEE,IAAI,EAAE,QAAQ;cAAEF,WAAW,EAAE;YAAwC;UACtF,CAAC;UACDQ,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa;QACnC;MACF;IACF,CAAC;IACDA,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS;EAClC;AACF,CAAC;AAED;AACA;AACA;AACA;EACEX,IAAI,EAAE,OAAO;EACbG,WAAW,EAAE,8MAA8M;EAC3NC,YAAY,EAAE;IACZC,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAE;MACV2E,KAAK,EAAE;QAAE5E,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAA2C,CAAC;MAClF+E,IAAI,EAAE;QAAE7E,IAAI,EAAE,QAAQ;QAAEF,WAAW,EAAE;MAAmC;IAC1E,CAAC;IACDQ,QAAQ,EAAE,CAAC,OAAO;EACpB;AACF,CAAC,CACF;;AAED;AACA;AACA;;AAEA,MAAMwE,iBAAiB,GAAG,IAAIrF,GAAG,CAAC,CAChC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EACxD,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EACjD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAClC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EACtC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EACrC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EACpC,KAAK,CACN,CAAC;AAEF,MAAMsF,wBAAwB,GAAG,IAAI;AACrC,MAAMC,oBAAoB,GAAG,GAAG;AAEhC,eAAeC,aAAaA,CAACC,KAA8B,EAAuB;EAChF,MAAM3E,OAAO,GAAG2E,KAAK,CAAC3E,OAAiB;EACvC,MAAM4E,QAAQ,GAAID,KAAK,CAAChF,IAAI,IAAekF,OAAO,CAACC,GAAG,CAAC,CAAC;EACxD,MAAMjF,KAAK,GAAGkF,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,GAAG,CAAEN,KAAK,CAAC9E,KAAK,IAAe,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;EAEtE;EACA,MAAMqF,UAAU,GAAGnH,UAAU,CAAC;IAAEiC,OAAO;IAAEL,IAAI,EAAEiF;EAAS,CAAC,CAAC;EAC1D,IAAI,CAACM,UAAU,CAACC,OAAO,EAAE;IACvB,OAAO;MAAEA,OAAO,EAAE,KAAK;MAAEC,MAAM,EAAEF,UAAU,CAACE;IAAO,CAAC;EACtD;;EAEA;EACA,MAAMC,WAAW,GAAGH,UAAU,CAACE,MAAM,CAACE,KAAK,CAAC,IAAI,CAAC;EACjD,IAAID,WAAW,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE;IACvC,OAAO;MAAEF,OAAO,EAAE,IAAI;MAAEC,MAAM,EAAE;IAAgC,CAAC;EACnE;;EAEA;EACA,MAAMG,QAAQ,GAAGF,WAAW,CAACG,KAAK,CAAC,CAAC,CAAC,CAAChC,MAAM,CAACiC,OAAO,CAAC;EACrD,MAAMC,UAAU,GAAGH,QAAQ,CAACI,MAAM;EAClC,MAAMC,WAAW,GAAGL,QAAQ,CAACC,KAAK,CAAC,CAAC,EAAE3F,KAAK,CAAC;EAE5C,MAAMgG,KAAe,GAAG,EAAE;EAC1B,IAAIC,SAAS,GAAG,CAAC;EACjB,IAAIC,OAAO,GAAG,CAAC;EAEf,KAAK,MAAMhC,QAAQ,IAAI6B,WAAW,EAAE;IAClC,MAAMI,GAAG,GAAGjC,QAAQ,CAACuB,KAAK,CAAC,GAAG,CAAC,CAACW,GAAG,CAAC,CAAC,EAAEC,WAAW,CAAC,CAAC,IAAI,EAAE;;IAE1D;IACA,IAAI3B,iBAAiB,CAAClF,GAAG,CAAC2G,GAAG,CAAC,EAAE;MAC9BH,KAAK,CAACM,IAAI,CAAC,OAAOpC,QAAQ,wBAAwBiC,GAAG,KAAK,CAAC;MAC3DD,OAAO,EAAE;MACT;IACF;IAEA,MAAMK,OAAO,GAAGtI,OAAO,CAACJ,WAAW,CAACkH,QAAQ,CAAC,EAAElH,WAAW,CAACqG,QAAQ,CAAC,CAAC;IACrE,MAAMsC,UAAU,GAAGzI,UAAU,CAACwI,OAAO,CAAC,GAAGA,OAAO,GAAGrC,QAAQ;IAE3D,IAAI,CAACnG,UAAU,CAACyI,UAAU,CAAC,EAAE;MAC3BR,KAAK,CAACM,IAAI,CAAC,OAAOpC,QAAQ,0BAA0B,CAAC;MACrDgC,OAAO,EAAE;MACT;IACF;IAEA,IAAI;MACF,MAAMO,IAAI,GAAGzI,QAAQ,CAACwI,UAAU,CAAC;MACjC;MACA,IAAIC,IAAI,CAACC,IAAI,GAAG,SAAS,EAAE;QACzBV,KAAK,CAACM,IAAI,CAAC,OAAOpC,QAAQ,0BAA0B,CAACuC,IAAI,CAACC,IAAI,GAAG,IAAI,EAAEC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACzFT,OAAO,EAAE;QACT;MACF;MAEA,MAAM9F,OAAO,GAAGtC,YAAY,CAAC0I,UAAU,EAAE,OAAO,CAAC;MACjD,MAAMI,KAAK,GAAGxG,OAAO,CAACqF,KAAK,CAAC,IAAI,CAAC;MAEjC,IAAImB,KAAK,CAACd,MAAM,GAAGnB,wBAAwB,EAAE;QAC3C,MAAMkC,SAAS,GAAGD,KAAK,CAACjB,KAAK,CAAC,CAAC,EAAEf,oBAAoB,CAAC,CAACkC,IAAI,CAAC,IAAI,CAAC;QACjEd,KAAK,CAACM,IAAI,CAAC,OAAOpC,QAAQ,SAAS2C,SAAS,sBAAsBD,KAAK,CAACd,MAAM,+BAA+BlB,oBAAoB,KAAK,CAAC;MACzI,CAAC,MAAM;QACLoB,KAAK,CAACM,IAAI,CAAC,OAAOpC,QAAQ,SAAS9D,OAAO,IAAI,CAAC;MACjD;MACA6F,SAAS,EAAE;IACb,CAAC,CAAC,OAAOc,GAAG,EAAE;MACZf,KAAK,CAACM,IAAI,CAAC,OAAOpC,QAAQ,8BAA8B6C,GAAG,KAAK,CAAC;MACjEb,OAAO,EAAE;IACX;EACF;EAEA,MAAMc,OAAO,GAAG,QAAQf,SAAS,mBAAmBC,OAAO,GAAGL,UAAU,GAAG7F,KAAK,GAAG,KAAK6F,UAAU,GAAG7F,KAAK,sCAAsCA,KAAK,GAAG,GAAG,EAAE,MAAM6F,UAAU,gBAAgB;EAC7LG,KAAK,CAACM,IAAI,CAACU,OAAO,CAAC;EAEnB,OAAO;IAAE1B,OAAO,EAAE,IAAI;IAAEC,MAAM,EAAES,KAAK,CAACc,IAAI,CAAC,IAAI;EAAE,CAAC;AACpD;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeG,gBAAgBA,CACpC1H,IAAY,EACZuF,KAA8B,EAC9BoC,MAAoB,EACC;EACrB,IAAI;IACF,QAAQ3H,IAAI;MACV;MACA,KAAK,WAAW;QAAQ,OAAO,MAAMlC,QAAQ,CAACyH,KAAK,CAAC;MACpD,KAAK,iBAAiB;QAAE,OAAO,MAAMD,aAAa,CAACC,KAAK,CAAC;MACzD,KAAK,YAAY;QAAO,OAAOxH,SAAS,CAACwH,KAAK,CAAC;MAC/C,KAAK,WAAW;QAAQ,OAAOvH,QAAQ,CAACuH,KAAK,CAAC;MAC9C,KAAK,gBAAgB;QAAG,OAAOpH,aAAa,CAACoH,KAAK,CAAC;MACnD,KAAK,cAAc;QAAK,OAAOnH,WAAW,CAACmH,KAAK,CAAC;MACjD,KAAK,gBAAgB;QAAG,OAAOlH,aAAa,CAACkH,KAAK,CAAC;MACnD,KAAK,YAAY;QAAO,OAAOtH,SAAS,CAACsH,KAAK,CAAC;MAC/C,KAAK,eAAe;QAAI,OAAOrH,YAAY,CAACqH,KAAK,CAAC;MAClD;MACA,KAAK,MAAM;QAAa,OAAO5G,UAAU,CAAC4G,KAAK,CAAC;MAChD,KAAK,MAAM;QAAa,OAAO3G,UAAU,CAAC2G,KAAK,CAAC;MAChD;MACA,KAAK,aAAa;QAAM,OAAO,MAAM1G,UAAU,CAAC0G,KAAK,CAAC;MACtD,KAAK,aAAa;QAAM,OAAOzG,UAAU,CAACyG,KAAK,CAAC;MAChD,KAAK,YAAY;QAAO,OAAOxG,SAAS,CAACwG,KAAK,CAAC;MAC/C,KAAK,aAAa;QAAM,OAAOvG,YAAY,CAAC,CAAC;MAC7C;MACA,KAAK,WAAW;QAAQ,OAAO,MAAMC,QAAQ,CAACsG,KAAK,CAAC;MACpD,KAAK,YAAY;QAAO,OAAO,MAAMrG,SAAS,CAACqG,KAAK,CAAC;MACrD;MACA,KAAK,OAAO;QAAY,OAAOpG,SAAS,CAACoG,KAAK,CAAC;MAC/C;MACA,KAAK,MAAM;QAAa,OAAO,MAAMnG,QAAQ,CAACmG,KAAK,EAAEoC,MAAM,CAAC;MAC5D,KAAK,aAAa;QAAM,OAAO,MAAMtI,cAAc,CAACkG,KAAK,EAAEoC,MAAM,CAAC;MAClE,KAAK,WAAW;QAAQ,OAAO,MAAMrI,YAAY,CAACiG,KAAK,EAAEoC,MAAM,CAAC;MAChE,KAAK,aAAa;QAAM,OAAO,MAAMpI,UAAU,CAACgG,KAAK,CAAC;MACtD,KAAK,WAAW;QAAQ,OAAO/F,QAAQ,CAAC+F,KAAK,CAAC;MAC9C,KAAK,QAAQ;QAAW,OAAO9F,UAAU,CAAC8F,KAAK,CAAC;MAChD,KAAK,UAAU;QAAS,OAAO7F,OAAO,CAAC6F,KAAK,CAAC;MAC7C,KAAK,KAAK;QAAc,OAAO,MAAM5F,OAAO,CAAC4F,KAAK,CAAC;MACnD,KAAK,OAAO;QAAY,OAAO3F,SAAS,CAAC2F,KAAK,CAAC;MAC/C;QAAwB,OAAO;UAAEQ,OAAO,EAAE,KAAK;UAAEC,MAAM,EAAE,uBAAuBhG,IAAI;QAAG,CAAC;IAC1F;EACF,CAAC,CAAC,OAAOwH,GAAG,EAAE;IACZ,OAAO;MAAEzB,OAAO,EAAE,KAAK;MAAEC,MAAM,EAAE,UAAUwB,GAAG;IAAG,CAAC;EACpD;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"local-tools.js","names":["loadTodos","setTodoSessionId","getTodoState","readFile","writeFile","editFile","multiEdit","notebookEdit","listDirectory","searchFiles","searchContent","diffFiles","resolvePath","readFileSync","existsSync","statSync","resolve","globSearch","grepSearch","runCommand","bashOutput","killShell","listShellsFn","webFetch","webSearch","tasksTool","taskTool","teamCreateTool","teamAutoTool","taskOutput","taskStop","configTool","askUser","lspTool","skillTool","LOCAL_TOOL_NAMES","Set","isLocalTool","name","has","LOCAL_TOOL_DEFINITIONS","description","input_schema","type","properties","path","offset","limit","pages","required","pattern","content","old_string","new_string","replace_all","recursive","query","file_pattern","command","working_directory","timeout","run_in_background","glob","output_mode","enum","context","before","after","case_insensitive","head_limit","multiline","notebook_path","cell_id","new_source","cell_type","edit_mode","url","prompt","allowed_domains","items","blocked_domains","action","subject","activeForm","metadata","taskId","status","subject_update","addBlocks","addBlockedBy","owner","file_path","edits","subagent_type","model","max_turns","team_name","mode","teammate_count","tasks","files","dependencies","task","max_teammates","bash_id","filter","shell_id","task_id","block","setting","value","operation","filePath","line","character","question","options","label","skill","args","BINARY_EXTENSIONS","READ_MANY_TRUNCATE_LINES","READ_MANY_SHOW_LINES","readManyFiles","input","basePath","process","cwd","Math","min","max","globResult","success","output","outputLines","split","allFiles","slice","Boolean","totalFound","length","filesToRead","parts","filesRead","skipped","ext","pop","toLowerCase","push","absPath","targetPath","stat","size","toFixed","lines","truncated","join","err","summary","executeLocalTool","signal"],"sources":["../../../src/cli/services/local-tools.ts"],"sourcesContent":["/**\n * Local Tools — tool registry, definitions, and dispatcher\n *\n * This is a thin facade: tool implementations live in `./tools/`.\n * All consumers import from this file for backward compatibility.\n */\n\n// Re-export task persistence API (used by ChatApp, agent-loop)\nexport { loadTodos, setTodoSessionId, getTodoState } from \"./tools/task-manager.js\";\n\n// Import tool implementations from extracted modules\nimport { readFile, writeFile, editFile, multiEdit, notebookEdit, listDirectory, searchFiles, searchContent, diffFiles, resolvePath } from \"./tools/file-ops.js\";\nimport { readFileSync, existsSync, statSync } from \"fs\";\nimport { resolve } from \"path\";\nimport { globSearch, grepSearch } from \"./tools/search-tools.js\";\nimport { runCommand, bashOutput, killShell, listShellsFn } from \"./tools/shell-exec.js\";\nimport { webFetch, webSearch } from \"./tools/web-tools.js\";\nimport { tasksTool } from \"./tools/task-manager.js\";\nimport { taskTool, teamCreateTool, teamAutoTool, taskOutput, taskStop, configTool, askUser, lspTool, skillTool } from \"./tools/agent-tools.js\";\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport interface LocalToolDefinition {\n name: string;\n description: string;\n input_schema: {\n type: \"object\";\n properties: Record<string, unknown>;\n required: string[];\n };\n}\n\nimport { ToolResult } from \"../../shared/types.js\";\nexport type { ToolResult };\n\n// ============================================================================\n// TOOL NAMES\n// ============================================================================\n\nexport const LOCAL_TOOL_NAMES = new Set([\n // Original\n \"read_file\",\n \"read_many_files\",\n \"write_file\",\n \"edit_file\",\n \"list_directory\",\n \"search_files\",\n \"search_content\",\n \"run_command\",\n // New (Claude Code parity)\n \"glob\",\n \"grep\",\n \"notebook_edit\",\n \"web_fetch\",\n \"tasks\", // Replaces todo_write — action-based CRUD with IDs, deps\n \"multi_edit\", // Multi-edit tool\n \"task\", // Subagent tool\n \"team_create\", // Agent team tool (explicit tasks)\n \"team_auto\", // Auto-decompose + parallel team\n // Background process tools\n \"bash_output\",\n \"kill_shell\",\n \"list_shells\",\n // Background task tools (shells + agents)\n \"task_output\",\n \"task_stop\",\n // Web search\n \"web_search\",\n // Claude Code parity — consolidated tools\n \"config\", // Settings + plan mode\n \"ask_user\", // Structured questions\n // Code intelligence\n \"lsp\",\n // Skills\n \"skill\",\n]);\n\nexport function isLocalTool(name: string): boolean {\n return LOCAL_TOOL_NAMES.has(name);\n}\n\n// ============================================================================\n// TOOL DEFINITIONS (for Anthropic API)\n// ============================================================================\n\nexport const LOCAL_TOOL_DEFINITIONS: LocalToolDefinition[] = [\n // ------------------------------------------------------------------\n // ENHANCED ORIGINALS\n // ------------------------------------------------------------------\n {\n name: \"read_file\",\n description: \"Read file contents. Supports line-based pagination for large files. Reads images (png/jpg/gif/webp) as visual content. Reads audio files (mp3/wav/aiff/aac/ogg/flac/m4a) as audio content. Extracts text from PDFs. For multiple files, emit all read_file calls in one response — they execute in parallel. IMPORTANT: when reading files in an unfamiliar directory, first use list_directory or glob to confirm exact paths — do NOT guess paths, especially in projects with nested structures (e.g. Xcode, Gradle).\",\n input_schema: {\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Absolute or relative path to the file\" },\n offset: { type: \"number\", description: \"Line number to start reading from (1-based). Omit to read from start.\" },\n limit: { type: \"number\", description: \"Max number of lines to read. Omit to read all.\" },\n pages: { type: \"string\", description: \"Page range for PDFs (e.g. '1-5', '3', '10-20'). Only for .pdf files.\" },\n },\n required: [\"path\"],\n },\n },\n {\n name: \"read_many_files\",\n description: \"Read multiple files matching glob patterns in a single call. More efficient than multiple read_file calls. Returns concatenated content with file headers. Files >500 lines are truncated to first 100 lines.\",\n input_schema: {\n type: \"object\",\n properties: {\n pattern: { type: \"string\", description: \"Glob pattern like 'src/**/*.ts' or '*.json'\" },\n path: { type: \"string\", description: \"Base directory to search in (defaults to cwd)\" },\n limit: { type: \"number\", description: \"Max files to read (default 20, max 50)\" },\n },\n required: [\"pattern\"],\n },\n },\n {\n name: \"write_file\",\n description: \"Write content to a file, creating it and parent directories if needed. For multiple independent files, emit all write_file calls in one response.\",\n input_schema: {\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Absolute or relative path to the file\" },\n content: { type: \"string\", description: \"Content to write to the file\" },\n },\n required: [\"path\", \"content\"],\n },\n },\n {\n name: \"edit_file\",\n description: \"Edit a file by replacing an exact string match. Supports replacing all occurrences.\",\n input_schema: {\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Absolute or relative path to the file\" },\n old_string: { type: \"string\", description: \"Exact text to find in the file\" },\n new_string: { type: \"string\", description: \"Text to replace old_string with\" },\n replace_all: { type: \"boolean\", description: \"Replace ALL occurrences (default false — replaces first only)\" },\n },\n required: [\"path\", \"old_string\", \"new_string\"],\n },\n },\n {\n name: \"list_directory\",\n description: \"List files and directories at the specified path\",\n input_schema: {\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Absolute or relative path to the directory\" },\n recursive: { type: \"boolean\", description: \"List recursively (default false, max 200 entries)\" },\n },\n required: [\"path\"],\n },\n },\n {\n name: \"search_files\",\n description: \"Search for files matching a name pattern using find\",\n input_schema: {\n type: \"object\",\n properties: {\n pattern: { type: \"string\", description: \"File name pattern (e.g. *.ts, *.swift)\" },\n path: { type: \"string\", description: \"Directory to search in\" },\n },\n required: [\"pattern\", \"path\"],\n },\n },\n {\n name: \"search_content\",\n description: \"Search for text content in files (grep-like). For advanced search, use the 'grep' tool.\",\n input_schema: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"Text or regex pattern to search for\" },\n path: { type: \"string\", description: \"Directory to search in\" },\n file_pattern: { type: \"string\", description: \"Optional file glob filter (e.g. *.ts)\" },\n },\n required: [\"query\", \"path\"],\n },\n },\n {\n name: \"run_command\",\n description: \"Execute a shell command. Output streams live. Use run_in_background:true for dev servers/watchers — after starting, use bash_output to verify. On macOS use python3 not python.\",\n input_schema: {\n type: \"object\",\n properties: {\n command: { type: \"string\", description: \"Shell command to execute\" },\n working_directory: { type: \"string\", description: \"Working directory for the command\" },\n timeout: { type: \"number\", description: \"Timeout in milliseconds (default 30000, max 300000)\" },\n description: { type: \"string\", description: \"Short description of what this command does\" },\n run_in_background: { type: \"boolean\", description: \"Run in background (for dev servers, watchers). Returns process ID immediately.\" },\n },\n required: [\"command\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: GLOB — pattern-based file finder\n // ------------------------------------------------------------------\n {\n name: \"glob\",\n description: \"Fast file pattern matching. Use glob patterns like '**/*.ts' or 'src/**/*.tsx'. Returns matching file paths. For multiple patterns, emit all glob calls in one response — they execute in parallel.\",\n input_schema: {\n type: \"object\",\n properties: {\n pattern: { type: \"string\", description: \"Glob pattern (e.g. '**/*.ts', 'src/**/*.tsx', '*.json')\" },\n path: { type: \"string\", description: \"Base directory to search in (defaults to cwd)\" },\n },\n required: [\"pattern\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: GREP — advanced content search\n // ------------------------------------------------------------------\n {\n name: \"grep\",\n description: \"Search file contents with regex, context lines, and multiple output modes. More powerful than search_content. For multiple patterns, emit all grep calls in one response — they execute in parallel.\",\n input_schema: {\n type: \"object\",\n properties: {\n pattern: { type: \"string\", description: \"Regex pattern to search for\" },\n path: { type: \"string\", description: \"File or directory to search in (defaults to cwd)\" },\n glob: { type: \"string\", description: \"Glob pattern to filter files (e.g. '*.ts', '*.{ts,tsx}')\" },\n output_mode: {\n type: \"string\",\n enum: [\"content\", \"files_with_matches\", \"count\"],\n description: \"Output mode: 'content' shows matching lines, 'files_with_matches' shows file paths (default), 'count' shows match counts\",\n },\n context: { type: \"number\", description: \"Lines of context before and after each match\" },\n before: { type: \"number\", description: \"Lines to show before each match (-B)\" },\n after: { type: \"number\", description: \"Lines to show after each match (-A)\" },\n case_insensitive: { type: \"boolean\", description: \"Case insensitive search (default false)\" },\n type: { type: \"string\", description: \"File type shorthand: js, ts, py, go, rust, java, etc.\" },\n head_limit: { type: \"number\", description: \"Max results to return (default 200)\" },\n offset: { type: \"number\", description: \"Skip first N entries before applying head_limit (default 0)\" },\n multiline: { type: \"boolean\", description: \"Enable multiline mode where . matches newlines (requires rg)\" },\n },\n required: [\"pattern\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: NOTEBOOK_EDIT — Jupyter notebook cell editing\n // ------------------------------------------------------------------\n {\n name: \"notebook_edit\",\n description: \"Edit Jupyter notebook (.ipynb) cells: replace, insert, or delete cells.\",\n input_schema: {\n type: \"object\",\n properties: {\n notebook_path: { type: \"string\", description: \"Path to the .ipynb file\" },\n cell_id: { type: \"string\", description: \"Cell ID or 0-based index. For insert, new cell goes after this.\" },\n new_source: { type: \"string\", description: \"New source code/markdown for the cell\" },\n cell_type: { type: \"string\", enum: [\"code\", \"markdown\"], description: \"Cell type (required for insert)\" },\n edit_mode: { type: \"string\", enum: [\"replace\", \"insert\", \"delete\"], description: \"Edit mode (default: replace)\" },\n },\n required: [\"notebook_path\", \"new_source\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: WEB_FETCH — fetch URL content\n // ------------------------------------------------------------------\n {\n name: \"web_fetch\",\n description: \"Fetch content from a URL and return as cleaned text/markdown. Strips HTML, scripts, styles.\",\n input_schema: {\n type: \"object\",\n properties: {\n url: { type: \"string\", description: \"URL to fetch\" },\n prompt: { type: \"string\", description: \"What to extract from the page (used for context)\" },\n },\n required: [\"url\"],\n },\n },\n\n // ------------------------------------------------------------------\n // NEW: WEB_SEARCH — search the web via Exa API\n // ------------------------------------------------------------------\n {\n name: \"web_search\",\n description: \"Search the web for current information. Returns titles, URLs, and snippets.\",\n input_schema: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"Search query\" },\n allowed_domains: { type: \"array\", items: { type: \"string\" }, description: \"Only include results from these domains\" },\n blocked_domains: { type: \"array\", items: { type: \"string\" }, description: \"Exclude results from these domains\" },\n },\n required: [\"query\"],\n },\n },\n\n // ------------------------------------------------------------------\n // TASKS — action-based CRUD for structured task tracking\n // ------------------------------------------------------------------\n {\n name: \"tasks\",\n description: \"Track tasks for the current session. Actions: create (returns ID), update (status/deps), list (summary), get (full details). Supports dependencies via blocks/blockedBy.\",\n input_schema: {\n type: \"object\",\n properties: {\n action: {\n type: \"string\",\n enum: [\"create\", \"update\", \"list\", \"get\"],\n description: \"Action to perform\",\n },\n // For create:\n subject: { type: \"string\", description: \"Brief title in imperative form (create)\" },\n description: { type: \"string\", description: \"Detailed description (create/update)\" },\n activeForm: { type: \"string\", description: \"Present continuous spinner text (create/update)\" },\n metadata: { type: \"object\", description: \"Arbitrary metadata (create/update)\" },\n // For update/get:\n taskId: { type: \"string\", description: \"Task ID (update/get)\" },\n status: { type: \"string\", enum: [\"pending\", \"in_progress\", \"completed\", \"deleted\"], description: \"New status (update)\" },\n subject_update: { type: \"string\", description: \"New subject (update)\" },\n addBlocks: { type: \"array\", items: { type: \"string\" }, description: \"Task IDs this task blocks (update)\" },\n addBlockedBy: { type: \"array\", items: { type: \"string\" }, description: \"Task IDs that block this task (update)\" },\n owner: { type: \"string\", description: \"Task owner (update)\" },\n },\n required: [\"action\"],\n },\n },\n // ------------------------------------------------------------------\n // NEW: MULTI_EDIT — multiple edits to one file in a single call\n // ------------------------------------------------------------------\n {\n name: \"multi_edit\",\n description: \"Apply multiple edits to one file in a single call. Edits applied sequentially. Fails if any old_string not found.\",\n input_schema: {\n type: \"object\",\n properties: {\n file_path: { type: \"string\", description: \"Absolute or relative path to the file\" },\n edits: {\n type: \"array\",\n description: \"Array of edits to apply sequentially\",\n items: {\n type: \"object\",\n properties: {\n old_string: { type: \"string\", description: \"Exact text to find\" },\n new_string: { type: \"string\", description: \"Text to replace with\" },\n },\n required: [\"old_string\", \"new_string\"],\n },\n },\n },\n required: [\"file_path\", \"edits\"],\n },\n },\n // ------------------------------------------------------------------\n // TASK — subagent for discrete tasks\n // ------------------------------------------------------------------\n {\n name: \"task\",\n description: \"Launch a subagent in isolated context. Subagents have full tool access and batch multiple tool calls per turn (glob + grep + read_file in parallel). Launch multiple task calls in one response for parallel execution. Use for any work requiring 3+ tool calls. Subagents complete in 2-8 turns autonomously.\",\n input_schema: {\n type: \"object\",\n properties: {\n prompt: { type: \"string\", description: \"Specific task with clear completion criteria\" },\n subagent_type: {\n type: \"string\",\n enum: [\"explore\", \"plan\", \"general-purpose\", \"research\"],\n description: \"Agent type: explore=find, plan=design, general-purpose=do, research=lookup\",\n },\n model: {\n type: \"string\",\n enum: [\"sonnet\", \"opus\", \"haiku\"],\n description: \"Haiku for quick tasks, Sonnet (default) for most, Opus for complex\",\n },\n run_in_background: {\n type: \"boolean\",\n description: \"Run agent in background. Returns output_file path to check progress via task_output.\",\n },\n max_turns: {\n type: \"number\",\n description: \"Max agentic turns (1-50). Default 8.\",\n },\n name: {\n type: \"string\",\n description: \"Display name for the agent.\",\n },\n description: {\n type: \"string\",\n description: \"Short 3-5 word description of the task.\",\n },\n team_name: {\n type: \"string\",\n description: \"Team name for spawning. Uses current team context if omitted.\",\n },\n mode: {\n type: \"string\",\n enum: [\"default\", \"plan\", \"yolo\"],\n description: \"Permission mode for spawned agent (default inherits parent).\",\n },\n },\n required: [\"prompt\", \"subagent_type\"],\n },\n },\n // ------------------------------------------------------------------\n // TEAM — parallel agent team for large tasks (non-blocking)\n // ------------------------------------------------------------------\n {\n name: \"team_create\",\n description: \"Create an Agent Team — multiple full Claude instances in parallel. Returns immediately with a team_id. Use task_output to check progress and task_stop to kill stuck teammates. Each teammate has full tool access. Size tasks for 5-6 items per teammate. Include file lists to prevent conflicts.\",\n input_schema: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n description: \"Team name (e.g., 'Feature Implementation Team')\",\n },\n teammate_count: {\n type: \"number\",\n description: \"Number of teammates to spawn (2-5 recommended)\",\n },\n model: {\n type: \"string\",\n enum: [\"sonnet\", \"opus\", \"haiku\"],\n description: \"Model for all teammates (default: sonnet)\",\n },\n tasks: {\n type: \"array\",\n description: \"Tasks for the team to complete\",\n items: {\n type: \"object\",\n properties: {\n description: {\n type: \"string\",\n description: \"Clear task description with completion criteria\",\n },\n model: {\n type: \"string\",\n description: \"Model for this task: haiku (lookups), sonnet (analysis), opus (complex reasoning). Overrides team default.\",\n },\n files: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Files this task will modify (for conflict prevention)\",\n },\n dependencies: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Task descriptions that must complete first\",\n },\n },\n required: [\"description\"],\n },\n },\n },\n required: [\"name\", \"teammate_count\", \"tasks\"],\n },\n },\n {\n name: \"team_auto\",\n description: \"Auto-decompose a task and run it as a parallel agent team. AI breaks the task into sub-tasks with file ownership, spawns teammates, executes in parallel. Returns a team_id — use team_status to monitor progress and team_stop to kill stuck teammates.\",\n input_schema: {\n type: \"object\",\n properties: {\n task: {\n type: \"string\",\n description: \"The task to decompose and execute (e.g., 'Refactor all components to use TypeScript strict mode')\",\n },\n max_teammates: {\n type: \"number\",\n description: \"Maximum number of parallel teammates (default: 4, max: 6)\",\n },\n model: {\n type: \"string\",\n enum: [\"sonnet\", \"opus\", \"haiku\"],\n description: \"Model for teammates (default: sonnet)\",\n },\n working_directory: {\n type: \"string\",\n description: \"Project directory to work in (default: cwd)\",\n },\n },\n required: [\"task\"],\n },\n },\n\n // ------------------------------------------------------------------\n // BACKGROUND PROCESS TOOLS\n // ------------------------------------------------------------------\n {\n name: \"bash_output\",\n description: \"Read output from a running or completed background shell process. Returns only NEW output since the last read.\",\n input_schema: {\n type: \"object\",\n properties: {\n bash_id: { type: \"string\", description: \"The process ID returned when starting the background process\" },\n filter: { type: \"string\", description: \"Optional regex to filter output lines\" },\n },\n required: [\"bash_id\"],\n },\n },\n {\n name: \"kill_shell\",\n description: \"Terminate a running background shell process\",\n input_schema: {\n type: \"object\",\n properties: {\n shell_id: { type: \"string\", description: \"The process ID to kill\" },\n },\n required: [\"shell_id\"],\n },\n },\n {\n name: \"list_shells\",\n description: \"List all background shell processes (running and recent completed)\",\n input_schema: {\n type: \"object\",\n properties: {},\n required: [],\n },\n },\n // ------------------------------------------------------------------\n // TASK OUTPUT / TASK STOP — unified background task management\n // ------------------------------------------------------------------\n {\n name: \"task_output\",\n description: \"Get output from a background task (shell or agent). Returns status and output content.\",\n input_schema: {\n type: \"object\",\n properties: {\n task_id: { type: \"string\", description: \"The task/agent ID (e.g. shell-xxx or agent-xxx)\" },\n block: { type: \"boolean\", description: \"Wait for completion (default: true)\" },\n timeout: { type: \"number\", description: \"Max wait time in ms (default: 30000)\" },\n },\n required: [\"task_id\"],\n },\n },\n {\n name: \"task_stop\",\n description: \"Stop a running background task (shell or agent) by ID.\",\n input_schema: {\n type: \"object\",\n properties: {\n task_id: { type: \"string\", description: \"The task ID to stop\" },\n },\n required: [\"task_id\"],\n },\n },\n\n // ------------------------------------------------------------------\n // CONFIG — runtime settings + mode control (consolidated)\n // ------------------------------------------------------------------\n {\n name: \"config\",\n description: \"Read or write CLI settings. Omit value to read. Keys: model (sonnet/opus/haiku), mode (default/plan/yolo — plan restricts to read-only tools), memory. Use mode=plan before non-trivial tasks to explore first, mode=default to resume full access.\",\n input_schema: {\n type: \"object\",\n properties: {\n setting: { type: \"string\", description: \"Setting key: 'model', 'mode', 'memory'\" },\n value: { type: \"string\", description: \"New value. Omit to read current value.\" },\n },\n required: [\"setting\"],\n },\n },\n\n // ------------------------------------------------------------------\n // LSP — Language Server Protocol code intelligence\n // ------------------------------------------------------------------\n {\n name: \"lsp\",\n description: \"Code intelligence via Language Server Protocol. Supports: goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls. Requires a language server installed for the file type.\",\n input_schema: {\n type: \"object\",\n properties: {\n operation: {\n type: \"string\",\n enum: [\n \"goToDefinition\",\n \"findReferences\",\n \"hover\",\n \"documentSymbol\",\n \"workspaceSymbol\",\n \"goToImplementation\",\n \"prepareCallHierarchy\",\n \"incomingCalls\",\n \"outgoingCalls\",\n ],\n description: \"LSP operation to perform\",\n },\n filePath: { type: \"string\", description: \"Absolute or relative path to the file\" },\n line: { type: \"number\", description: \"Line number (1-based, as shown in editors)\" },\n character: { type: \"number\", description: \"Character offset (1-based, as shown in editors)\" },\n query: { type: \"string\", description: \"Search query for workspaceSymbol operation (optional, defaults to all symbols)\" },\n },\n required: [\"operation\", \"filePath\", \"line\", \"character\"],\n },\n },\n\n // ------------------------------------------------------------------\n // ASK_USER — structured multi-choice question\n // ------------------------------------------------------------------\n {\n name: \"ask_user\",\n description: \"Ask the user a structured question with predefined options. Use to gather preferences, clarify requirements, or get decisions during execution. The user can always type a custom answer.\",\n input_schema: {\n type: \"object\",\n properties: {\n question: { type: \"string\", description: \"The question to ask\" },\n options: {\n type: \"array\",\n description: \"2-4 options for the user to choose from\",\n items: {\n type: \"object\",\n properties: {\n label: { type: \"string\", description: \"Short option label (1-5 words)\" },\n description: { type: \"string\", description: \"Explanation of what this option means\" },\n },\n required: [\"label\", \"description\"],\n },\n },\n },\n required: [\"question\", \"options\"],\n },\n },\n\n // ------------------------------------------------------------------\n // SKILL — invoke named skills (model-callable)\n // ------------------------------------------------------------------\n {\n name: \"skill\",\n description: \"Invoke a named skill. Skills provide specialized workflows like committing code, reviewing PRs, etc. Built-in skills: commit, review, review-pr. Custom skills from .whale/commands/ and ~/.whale/commands/.\",\n input_schema: {\n type: \"object\",\n properties: {\n skill: { type: \"string\", description: \"Skill name (e.g., 'commit', 'review-pr')\" },\n args: { type: \"string\", description: \"Optional arguments for the skill\" },\n },\n required: [\"skill\"],\n },\n },\n];\n\n// ============================================================================\n// READ MANY FILES — reads multiple files matching glob patterns\n// ============================================================================\n\nconst BINARY_EXTENSIONS = new Set([\n \"png\", \"jpg\", \"jpeg\", \"gif\", \"webp\", \"bmp\", \"ico\", \"svg\",\n \"mp3\", \"wav\", \"aiff\", \"aac\", \"ogg\", \"flac\", \"m4a\",\n \"mp4\", \"mov\", \"avi\", \"mkv\", \"webm\",\n \"zip\", \"tar\", \"gz\", \"bz2\", \"7z\", \"rar\",\n \"exe\", \"dll\", \"so\", \"dylib\", \"o\", \"a\",\n \"woff\", \"woff2\", \"ttf\", \"otf\", \"eot\",\n \"pdf\",\n]);\n\nconst READ_MANY_TRUNCATE_LINES = 2000;\nconst READ_MANY_SHOW_LINES = 500;\n\nasync function readManyFiles(input: Record<string, unknown>): Promise<ToolResult> {\n const pattern = input.pattern as string;\n const basePath = (input.path as string) || process.cwd();\n const limit = Math.min(Math.max((input.limit as number) || 20, 1), 50);\n\n // Use globSearch to find matching files\n const globResult = globSearch({ pattern, path: basePath });\n if (!globResult.success) {\n return { success: false, output: globResult.output };\n }\n\n // Parse file paths from globSearch output (format: \"N files:\\npath1\\npath2\\n...\")\n const outputLines = globResult.output.split(\"\\n\");\n if (outputLines[0] === \"No files found\") {\n return { success: true, output: \"No files matched the pattern.\" };\n }\n\n // First line is \"N files:\", rest are paths\n const allFiles = outputLines.slice(1).filter(Boolean);\n const totalFound = allFiles.length;\n const filesToRead = allFiles.slice(0, limit);\n\n const parts: string[] = [];\n let filesRead = 0;\n let skipped = 0;\n\n for (const filePath of filesToRead) {\n const ext = filePath.split(\".\").pop()?.toLowerCase() || \"\";\n\n // Skip binary files (images, audio, video, archives, etc.)\n if (BINARY_EXTENSIONS.has(ext)) {\n parts.push(`=== ${filePath} ===\\n[Binary file — ${ext}]\\n`);\n skipped++;\n continue;\n }\n\n const absPath = resolve(resolvePath(basePath), resolvePath(filePath));\n const targetPath = existsSync(absPath) ? absPath : filePath;\n\n if (!existsSync(targetPath)) {\n parts.push(`=== ${filePath} ===\\n[File not found]\\n`);\n skipped++;\n continue;\n }\n\n try {\n const stat = statSync(targetPath);\n // Skip files > 1MB\n if (stat.size > 1_000_000) {\n parts.push(`=== ${filePath} ===\\n[File too large: ${(stat.size / 1024).toFixed(0)}KB]\\n`);\n skipped++;\n continue;\n }\n\n const content = readFileSync(targetPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n\n if (lines.length > READ_MANY_TRUNCATE_LINES) {\n const truncated = lines.slice(0, READ_MANY_SHOW_LINES).join(\"\\n\");\n parts.push(`=== ${filePath} ===\\n${truncated}\\n[... truncated — ${lines.length} total lines, showing first ${READ_MANY_SHOW_LINES}]\\n`);\n } else {\n parts.push(`=== ${filePath} ===\\n${content}\\n`);\n }\n filesRead++;\n } catch (err) {\n parts.push(`=== ${filePath} ===\\n[Error reading file: ${err}]\\n`);\n skipped++;\n }\n }\n\n const summary = `Read ${filesRead} files, skipped ${skipped}${totalFound > limit ? `, ${totalFound - limit} more matched but not read (limit: ${limit})` : \"\"} — ${totalFound} total matches`;\n parts.push(summary);\n\n return { success: true, output: parts.join(\"\\n\") };\n}\n\n// ============================================================================\n// EXECUTOR — dispatches to tool implementations in ./tools/\n// ============================================================================\n\nexport async function executeLocalTool(\n name: string,\n input: Record<string, unknown>,\n signal?: AbortSignal,\n): Promise<ToolResult> {\n try {\n switch (name) {\n // File operations (tools/file-ops.ts)\n case \"read_file\": return await readFile(input);\n case \"read_many_files\": return await readManyFiles(input);\n case \"write_file\": return writeFile(input);\n case \"edit_file\": return editFile(input);\n case \"list_directory\": return listDirectory(input);\n case \"search_files\": return searchFiles(input);\n case \"search_content\": return searchContent(input);\n case \"multi_edit\": return multiEdit(input);\n case \"notebook_edit\": return notebookEdit(input);\n case \"diff_files\": return diffFiles(input);\n // Search (tools/search-tools.ts)\n case \"glob\": return globSearch(input);\n case \"grep\": return grepSearch(input);\n // Shell execution (tools/shell-exec.ts)\n case \"run_command\": return await runCommand(input);\n case \"bash_output\": return bashOutput(input);\n case \"kill_shell\": return killShell(input);\n case \"list_shells\": return listShellsFn();\n // Web (tools/web-tools.ts)\n case \"web_fetch\": return await webFetch(input);\n case \"web_search\": return await webSearch(input);\n // Tasks (tools/task-manager.ts)\n case \"tasks\": return tasksTool(input);\n // Agent tools (tools/agent-tools.ts)\n case \"task\": return await taskTool(input, signal);\n case \"team_create\": return await teamCreateTool(input, signal);\n case \"team_auto\": return await teamAutoTool(input, signal);\n case \"task_output\": return await taskOutput(input);\n case \"task_stop\": return taskStop(input);\n case \"config\": return configTool(input);\n case \"ask_user\": return askUser(input);\n case \"lsp\": return await lspTool(input);\n case \"skill\": return skillTool(input);\n default: return { success: false, output: `Unknown local tool: ${name}` };\n }\n } catch (err) {\n return { success: false, output: `Error: ${err}` };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP Config — Language server configurations and file extension mappings
|
|
3
|
+
*/
|
|
4
|
+
export interface LanguageConfig {
|
|
5
|
+
id: string;
|
|
6
|
+
languageIds: string[];
|
|
7
|
+
binaries: string[];
|
|
8
|
+
args: string[];
|
|
9
|
+
installHint: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const LANG_CONFIGS: LanguageConfig[];
|
|
12
|
+
export declare const EXT_TO_LANGID: Record<string, string>;
|
|
13
|
+
export declare const LANGID_TO_CONFIG: Map<string, LanguageConfig>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP Config — Language server configurations and file extension mappings
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// LANGUAGE CONFIG
|
|
7
|
+
// ============================================================================
|
|
8
|
+
|
|
9
|
+
export const LANG_CONFIGS = [{
|
|
10
|
+
id: "typescript",
|
|
11
|
+
languageIds: ["typescript", "typescriptreact", "javascript", "javascriptreact"],
|
|
12
|
+
binaries: ["typescript-language-server"],
|
|
13
|
+
args: ["--stdio"],
|
|
14
|
+
installHint: "npm i -g typescript-language-server typescript"
|
|
15
|
+
}, {
|
|
16
|
+
id: "python",
|
|
17
|
+
languageIds: ["python"],
|
|
18
|
+
binaries: ["pyright-langserver", "pylsp", "python-language-server"],
|
|
19
|
+
args: ["--stdio"],
|
|
20
|
+
installHint: "npm i -g pyright"
|
|
21
|
+
}, {
|
|
22
|
+
id: "rust",
|
|
23
|
+
languageIds: ["rust"],
|
|
24
|
+
binaries: ["rust-analyzer"],
|
|
25
|
+
args: [],
|
|
26
|
+
installHint: "rustup component add rust-analyzer"
|
|
27
|
+
}, {
|
|
28
|
+
id: "go",
|
|
29
|
+
languageIds: ["go"],
|
|
30
|
+
binaries: ["gopls"],
|
|
31
|
+
args: ["serve"],
|
|
32
|
+
installHint: "go install golang.org/x/tools/gopls@latest"
|
|
33
|
+
}, {
|
|
34
|
+
id: "clangd",
|
|
35
|
+
languageIds: ["c", "cpp"],
|
|
36
|
+
binaries: ["clangd"],
|
|
37
|
+
args: [],
|
|
38
|
+
installHint: "brew install llvm (or apt install clangd)"
|
|
39
|
+
}, {
|
|
40
|
+
id: "java",
|
|
41
|
+
languageIds: ["java"],
|
|
42
|
+
binaries: ["jdtls"],
|
|
43
|
+
args: [],
|
|
44
|
+
installHint: "brew install jdtls"
|
|
45
|
+
}];
|
|
46
|
+
export const EXT_TO_LANGID = {
|
|
47
|
+
".ts": "typescript",
|
|
48
|
+
".tsx": "typescriptreact",
|
|
49
|
+
".js": "javascript",
|
|
50
|
+
".jsx": "javascriptreact",
|
|
51
|
+
".mjs": "javascript",
|
|
52
|
+
".cjs": "javascript",
|
|
53
|
+
".py": "python",
|
|
54
|
+
".rs": "rust",
|
|
55
|
+
".go": "go",
|
|
56
|
+
".c": "c",
|
|
57
|
+
".h": "c",
|
|
58
|
+
".cpp": "cpp",
|
|
59
|
+
".cc": "cpp",
|
|
60
|
+
".cxx": "cpp",
|
|
61
|
+
".hpp": "cpp",
|
|
62
|
+
".java": "java"
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// Build lookup: languageId -> config
|
|
66
|
+
export const LANGID_TO_CONFIG = new Map();
|
|
67
|
+
for (const cfg of LANG_CONFIGS) {
|
|
68
|
+
for (const lid of cfg.languageIds) {
|
|
69
|
+
LANGID_TO_CONFIG.set(lid, cfg);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=lsp-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-config.js","names":["LANG_CONFIGS","id","languageIds","binaries","args","installHint","EXT_TO_LANGID","LANGID_TO_CONFIG","Map","cfg","lid","set"],"sources":["../../../src/cli/services/lsp-config.ts"],"sourcesContent":["/**\n * LSP Config — Language server configurations and file extension mappings\n */\n\n// ============================================================================\n// LANGUAGE CONFIG\n// ============================================================================\n\nexport interface LanguageConfig {\n id: string; // Canonical server group (dedup key)\n languageIds: string[]; // LSP language IDs this server handles\n binaries: string[]; // Try in order\n args: string[];\n installHint: string;\n}\n\nexport const LANG_CONFIGS: LanguageConfig[] = [\n {\n id: \"typescript\",\n languageIds: [\"typescript\", \"typescriptreact\", \"javascript\", \"javascriptreact\"],\n binaries: [\"typescript-language-server\"],\n args: [\"--stdio\"],\n installHint: \"npm i -g typescript-language-server typescript\",\n },\n {\n id: \"python\",\n languageIds: [\"python\"],\n binaries: [\"pyright-langserver\", \"pylsp\", \"python-language-server\"],\n args: [\"--stdio\"],\n installHint: \"npm i -g pyright\",\n },\n {\n id: \"rust\",\n languageIds: [\"rust\"],\n binaries: [\"rust-analyzer\"],\n args: [],\n installHint: \"rustup component add rust-analyzer\",\n },\n {\n id: \"go\",\n languageIds: [\"go\"],\n binaries: [\"gopls\"],\n args: [\"serve\"],\n installHint: \"go install golang.org/x/tools/gopls@latest\",\n },\n {\n id: \"clangd\",\n languageIds: [\"c\", \"cpp\"],\n binaries: [\"clangd\"],\n args: [],\n installHint: \"brew install llvm (or apt install clangd)\",\n },\n {\n id: \"java\",\n languageIds: [\"java\"],\n binaries: [\"jdtls\"],\n args: [],\n installHint: \"brew install jdtls\",\n },\n];\n\nexport const EXT_TO_LANGID: Record<string, string> = {\n \".ts\": \"typescript\", \".tsx\": \"typescriptreact\",\n \".js\": \"javascript\", \".jsx\": \"javascriptreact\",\n \".mjs\": \"javascript\", \".cjs\": \"javascript\",\n \".py\": \"python\", \".rs\": \"rust\", \".go\": \"go\",\n \".c\": \"c\", \".h\": \"c\",\n \".cpp\": \"cpp\", \".cc\": \"cpp\", \".cxx\": \"cpp\", \".hpp\": \"cpp\",\n \".java\": \"java\",\n};\n\n// Build lookup: languageId -> config\nexport const LANGID_TO_CONFIG = new Map<string, LanguageConfig>();\nfor (const cfg of LANG_CONFIGS) {\n for (const lid of cfg.languageIds) {\n LANGID_TO_CONFIG.set(lid, cfg);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAUA,OAAO,MAAMA,YAA8B,GAAG,CAC5C;EACEC,EAAE,EAAE,YAAY;EAChBC,WAAW,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,CAAC;EAC/EC,QAAQ,EAAE,CAAC,4BAA4B,CAAC;EACxCC,IAAI,EAAE,CAAC,SAAS,CAAC;EACjBC,WAAW,EAAE;AACf,CAAC,EACD;EACEJ,EAAE,EAAE,QAAQ;EACZC,WAAW,EAAE,CAAC,QAAQ,CAAC;EACvBC,QAAQ,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,wBAAwB,CAAC;EACnEC,IAAI,EAAE,CAAC,SAAS,CAAC;EACjBC,WAAW,EAAE;AACf,CAAC,EACD;EACEJ,EAAE,EAAE,MAAM;EACVC,WAAW,EAAE,CAAC,MAAM,CAAC;EACrBC,QAAQ,EAAE,CAAC,eAAe,CAAC;EAC3BC,IAAI,EAAE,EAAE;EACRC,WAAW,EAAE;AACf,CAAC,EACD;EACEJ,EAAE,EAAE,IAAI;EACRC,WAAW,EAAE,CAAC,IAAI,CAAC;EACnBC,QAAQ,EAAE,CAAC,OAAO,CAAC;EACnBC,IAAI,EAAE,CAAC,OAAO,CAAC;EACfC,WAAW,EAAE;AACf,CAAC,EACD;EACEJ,EAAE,EAAE,QAAQ;EACZC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;EACzBC,QAAQ,EAAE,CAAC,QAAQ,CAAC;EACpBC,IAAI,EAAE,EAAE;EACRC,WAAW,EAAE;AACf,CAAC,EACD;EACEJ,EAAE,EAAE,MAAM;EACVC,WAAW,EAAE,CAAC,MAAM,CAAC;EACrBC,QAAQ,EAAE,CAAC,OAAO,CAAC;EACnBC,IAAI,EAAE,EAAE;EACRC,WAAW,EAAE;AACf,CAAC,CACF;AAED,OAAO,MAAMC,aAAqC,GAAG;EACnD,KAAK,EAAE,YAAY;EAAE,MAAM,EAAE,iBAAiB;EAC9C,KAAK,EAAE,YAAY;EAAE,MAAM,EAAE,iBAAiB;EAC9C,MAAM,EAAE,YAAY;EAAE,MAAM,EAAE,YAAY;EAC1C,KAAK,EAAE,QAAQ;EAAE,KAAK,EAAE,MAAM;EAAE,KAAK,EAAE,IAAI;EAC3C,IAAI,EAAE,GAAG;EAAE,IAAI,EAAE,GAAG;EACpB,MAAM,EAAE,KAAK;EAAE,KAAK,EAAE,KAAK;EAAE,MAAM,EAAE,KAAK;EAAE,MAAM,EAAE,KAAK;EACzD,OAAO,EAAE;AACX,CAAC;;AAED;AACA,OAAO,MAAMC,gBAAgB,GAAG,IAAIC,GAAG,CAAyB,CAAC;AACjE,KAAK,MAAMC,GAAG,IAAIT,YAAY,EAAE;EAC9B,KAAK,MAAMU,GAAG,IAAID,GAAG,CAACP,WAAW,EAAE;IACjCK,gBAAgB,CAACI,GAAG,CAACD,GAAG,EAAED,GAAG,CAAC;EAChC;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP Formatters — Result formatting for LSP operations
|
|
3
|
+
*/
|
|
4
|
+
export declare function uriToPath(uri: string): string;
|
|
5
|
+
export declare function formatLocations(result: any, label: string): string;
|
|
6
|
+
export declare function formatHover(result: any): string;
|
|
7
|
+
export declare function formatDocumentSymbols(result: any, filePath: string): string;
|
|
8
|
+
export declare function formatWorkspaceSymbols(result: any): string;
|
|
9
|
+
export declare function formatCallHierarchyItems(result: any): string;
|
|
10
|
+
export declare function formatIncomingCalls(result: any): string;
|
|
11
|
+
export declare function formatOutgoingCalls(result: any): string;
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP Formatters — Result formatting for LSP operations
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// HELPERS
|
|
7
|
+
// ============================================================================
|
|
8
|
+
|
|
9
|
+
export function uriToPath(uri) {
|
|
10
|
+
if (uri.startsWith("file://")) return decodeURIComponent(uri.slice(7));
|
|
11
|
+
return decodeURIComponent(uri);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// SYMBOL KINDS
|
|
16
|
+
// ============================================================================
|
|
17
|
+
|
|
18
|
+
const SYMBOL_KIND_NAMES = {
|
|
19
|
+
1: "File",
|
|
20
|
+
2: "Module",
|
|
21
|
+
3: "Namespace",
|
|
22
|
+
4: "Package",
|
|
23
|
+
5: "Class",
|
|
24
|
+
6: "Method",
|
|
25
|
+
7: "Property",
|
|
26
|
+
8: "Field",
|
|
27
|
+
9: "Constructor",
|
|
28
|
+
10: "Enum",
|
|
29
|
+
11: "Interface",
|
|
30
|
+
12: "Function",
|
|
31
|
+
13: "Variable",
|
|
32
|
+
14: "Constant",
|
|
33
|
+
15: "String",
|
|
34
|
+
16: "Number",
|
|
35
|
+
17: "Boolean",
|
|
36
|
+
18: "Array",
|
|
37
|
+
19: "Object",
|
|
38
|
+
20: "Key",
|
|
39
|
+
21: "Null",
|
|
40
|
+
22: "EnumMember",
|
|
41
|
+
23: "Struct",
|
|
42
|
+
24: "Event",
|
|
43
|
+
25: "Operator",
|
|
44
|
+
26: "TypeParameter"
|
|
45
|
+
};
|
|
46
|
+
function symbolKindName(kind) {
|
|
47
|
+
return SYMBOL_KIND_NAMES[kind] || `Kind(${kind})`;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// ============================================================================
|
|
51
|
+
// LOCATION FORMATTERS
|
|
52
|
+
// ============================================================================
|
|
53
|
+
|
|
54
|
+
function normalizeLocations(result) {
|
|
55
|
+
if (!result) return [];
|
|
56
|
+
if (Array.isArray(result)) {
|
|
57
|
+
return result.map(item => {
|
|
58
|
+
if (item.targetUri) {
|
|
59
|
+
return {
|
|
60
|
+
uri: item.targetUri,
|
|
61
|
+
range: item.targetSelectionRange || item.targetRange
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return item;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
if (result.uri) return [result];
|
|
68
|
+
if (result.targetUri) {
|
|
69
|
+
return [{
|
|
70
|
+
uri: result.targetUri,
|
|
71
|
+
range: result.targetSelectionRange || result.targetRange
|
|
72
|
+
}];
|
|
73
|
+
}
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
export function formatLocations(result, label) {
|
|
77
|
+
const locations = normalizeLocations(result);
|
|
78
|
+
if (locations.length === 0) return `No ${label.toLowerCase()} found.`;
|
|
79
|
+
const byFile = new Map();
|
|
80
|
+
for (const loc of locations) {
|
|
81
|
+
const path = uriToPath(loc.uri);
|
|
82
|
+
if (!byFile.has(path)) byFile.set(path, []);
|
|
83
|
+
byFile.get(path).push({
|
|
84
|
+
line: loc.range.start.line + 1,
|
|
85
|
+
char: loc.range.start.character + 1
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
const lines = [`${label} (${locations.length}):`];
|
|
89
|
+
for (const [path, positions] of byFile) {
|
|
90
|
+
if (byFile.size > 1) lines.push(` ${path}`);
|
|
91
|
+
for (const pos of positions) {
|
|
92
|
+
const prefix = byFile.size > 1 ? " " : " ";
|
|
93
|
+
lines.push(`${prefix}${path}:${pos.line}:${pos.char}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return lines.join("\n");
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// ============================================================================
|
|
100
|
+
// HOVER FORMATTER
|
|
101
|
+
// ============================================================================
|
|
102
|
+
|
|
103
|
+
export function formatHover(result) {
|
|
104
|
+
if (!result || !result.contents) return "No hover information.";
|
|
105
|
+
const contents = result.contents;
|
|
106
|
+
if (typeof contents === "string") return contents;
|
|
107
|
+
if (contents.kind === "markdown" || contents.kind === "plaintext") {
|
|
108
|
+
return contents.value || "";
|
|
109
|
+
}
|
|
110
|
+
if (contents.language && contents.value) {
|
|
111
|
+
return `\`\`\`${contents.language}\n${contents.value}\n\`\`\``;
|
|
112
|
+
}
|
|
113
|
+
if (Array.isArray(contents)) {
|
|
114
|
+
return contents.map(c => {
|
|
115
|
+
if (typeof c === "string") return c;
|
|
116
|
+
if (c.language && c.value) return `\`\`\`${c.language}\n${c.value}\n\`\`\``;
|
|
117
|
+
if (c.value) return c.value;
|
|
118
|
+
return String(c);
|
|
119
|
+
}).join("\n\n");
|
|
120
|
+
}
|
|
121
|
+
return JSON.stringify(contents, null, 2);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// ============================================================================
|
|
125
|
+
// DOCUMENT SYMBOL FORMATTER
|
|
126
|
+
// ============================================================================
|
|
127
|
+
|
|
128
|
+
export function formatDocumentSymbols(result, filePath) {
|
|
129
|
+
if (!result || !Array.isArray(result) || result.length === 0) {
|
|
130
|
+
return `No symbols found in ${filePath}`;
|
|
131
|
+
}
|
|
132
|
+
const lines = [`Symbols in ${filePath}:`];
|
|
133
|
+
function walk(symbols, indent) {
|
|
134
|
+
for (const sym of symbols) {
|
|
135
|
+
const kind = symbolKindName(sym.kind);
|
|
136
|
+
const line = sym.range?.start?.line != null ? sym.range.start.line + 1 : sym.location?.range?.start?.line != null ? sym.location.range.start.line + 1 : "?";
|
|
137
|
+
lines.push(`${" ".repeat(indent + 1)}${kind} ${sym.name} :${line}`);
|
|
138
|
+
if (sym.children?.length) walk(sym.children, indent + 1);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
walk(result, 0);
|
|
142
|
+
return lines.join("\n");
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// ============================================================================
|
|
146
|
+
// WORKSPACE SYMBOL FORMATTER
|
|
147
|
+
// ============================================================================
|
|
148
|
+
|
|
149
|
+
export function formatWorkspaceSymbols(result) {
|
|
150
|
+
if (!result || !Array.isArray(result) || result.length === 0) {
|
|
151
|
+
return "No workspace symbols found.";
|
|
152
|
+
}
|
|
153
|
+
const lines = [`Workspace symbols (${result.length}):`];
|
|
154
|
+
for (const sym of result.slice(0, 100)) {
|
|
155
|
+
const kind = symbolKindName(sym.kind);
|
|
156
|
+
const path = sym.location?.uri ? uriToPath(sym.location.uri) : "?";
|
|
157
|
+
const line = sym.location?.range?.start?.line != null ? sym.location.range.start.line + 1 : "?";
|
|
158
|
+
lines.push(` ${kind} ${sym.name} ${path}:${line}`);
|
|
159
|
+
}
|
|
160
|
+
if (result.length > 100) lines.push(` ... and ${result.length - 100} more`);
|
|
161
|
+
return lines.join("\n");
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// ============================================================================
|
|
165
|
+
// CALL HIERARCHY FORMATTERS
|
|
166
|
+
// ============================================================================
|
|
167
|
+
|
|
168
|
+
export function formatCallHierarchyItems(result) {
|
|
169
|
+
if (!result || !Array.isArray(result) || result.length === 0) {
|
|
170
|
+
return "No call hierarchy item found at this position.";
|
|
171
|
+
}
|
|
172
|
+
const lines = ["Call hierarchy items:"];
|
|
173
|
+
for (const item of result) {
|
|
174
|
+
const kind = symbolKindName(item.kind);
|
|
175
|
+
const path = item.uri ? uriToPath(item.uri) : "?";
|
|
176
|
+
const line = item.range?.start?.line != null ? item.range.start.line + 1 : "?";
|
|
177
|
+
lines.push(` ${kind} ${item.name} ${path}:${line}`);
|
|
178
|
+
}
|
|
179
|
+
return lines.join("\n");
|
|
180
|
+
}
|
|
181
|
+
export function formatIncomingCalls(result) {
|
|
182
|
+
if (!result || !Array.isArray(result) || result.length === 0) {
|
|
183
|
+
return "No incoming calls found.";
|
|
184
|
+
}
|
|
185
|
+
const lines = [`Incoming calls (${result.length}):`];
|
|
186
|
+
for (const call of result) {
|
|
187
|
+
const from = call.from;
|
|
188
|
+
const kind = symbolKindName(from.kind);
|
|
189
|
+
const path = from.uri ? uriToPath(from.uri) : "?";
|
|
190
|
+
const line = from.range?.start?.line != null ? from.range.start.line + 1 : "?";
|
|
191
|
+
lines.push(` ${kind} ${from.name} ${path}:${line}`);
|
|
192
|
+
}
|
|
193
|
+
return lines.join("\n");
|
|
194
|
+
}
|
|
195
|
+
export function formatOutgoingCalls(result) {
|
|
196
|
+
if (!result || !Array.isArray(result) || result.length === 0) {
|
|
197
|
+
return "No outgoing calls found.";
|
|
198
|
+
}
|
|
199
|
+
const lines = [`Outgoing calls (${result.length}):`];
|
|
200
|
+
for (const call of result) {
|
|
201
|
+
const to = call.to;
|
|
202
|
+
const kind = symbolKindName(to.kind);
|
|
203
|
+
const path = to.uri ? uriToPath(to.uri) : "?";
|
|
204
|
+
const line = to.range?.start?.line != null ? to.range.start.line + 1 : "?";
|
|
205
|
+
lines.push(` ${kind} ${to.name} ${path}:${line}`);
|
|
206
|
+
}
|
|
207
|
+
return lines.join("\n");
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=lsp-formatters.js.map
|