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":"markdown.js","names":["Marked","markedTerminal","chalk","colors","highlightCode","setRebuildCallback","diffWords","buildPalette","systemBlue","hex","brand","systemCyan","info","systemPink","pink","systemPurple","purple","systemIndigo","indigo","systemGreen","success","systemMint","mint","systemRed","error","systemOrange","warning","text","secondary","tertiary","separator","lavender","roseGold","p","termWidth","process","stdout","columns","contentWidth","toolContentWidth","supportsOsc8","tp","env","TERM_PROGRAM","test","VTE_VERSION","WT_SESSION","KONSOLE_VERSION","hyperlink","url","startsWith","email","slice","display","underline","shortenPathForHeader","fullPath","maxLen","fp","cwd","home","HOME","length","parts","split","file","pop","parent","colorizeFinancials","str","replace","m","buildMarkedInstance","md","use","firstHeading","bold","heading","codespan","strong","em","italic","blockquote","paragraph","body","hr","repeat","link","href","_title","undefined","list","ordered","n","String","listitem","itemText","reflowText","showSectionPrefix","width","Math","min","tab","renderer","code","token","rawLang","lang","colonIdx","indexOf","subtitle","renderBarChart","renderDiff","isCommandOutput","highlightLang","cw","headerWidth","max","displayLang","header","shortSub","pad","lineCount","gutterW","gutterOverhead","maxLineWidth","truncatedCode","map","line","join","highlighted","hLines","l","numbered","i","num","padStart","table","renderTable","buildDiffStyles","diffAddedBg","bgHex","white","diffRemovedBg","diffWordAdded","whiteBright","diffWordRemoved","d","wordDiff","oldLine","newLine","changes","oldSegs","newSegs","change","added","push","value","changed","removed","oldChanged","filter","s","reduce","newChanged","old","new","renderSegments","segs","wordStyle","lineStyle","lines","tw","segments","oldLineNo","newLineNo","seenDiff","hunkMatch","match","parseInt","type","content","lineNo","maxLineNo","out","seg","removes","adds","pairCount","j","r","rPrefix","a","aPrefix","wd","rPad","aPad","raw","prefix","buildBarGradient","teal","barGradient","trim","title","dataLines","entries","label","abs","parseFloat","isNaN","maxVal","e","maxRaw","idealLabelW","fixedOverhead","spaceForLabelAndBar","maxLabelW","floor","barWidth","compact","displayTitle","colorVal","includes","color","labelStr","ratio","filled","round","bar","val","getRowTone","cells","cell","t","isNumericColumn","rows","colIndex","numericCount","total","row","blendHex","b","parse","h","c","ar","ag","ab","br","bg","bb","g","bv","toString","colorizeCell","isHeader","trimmed","badgeMatch","icon","endsWith","getCellText","tokens","headers","N","MIN_COL","minBoxWidth","renderTableCards","overhead","availableForContent","minCol","maxPerCol","numericCols","_","colWidths","dataMax","totalWidth","w","excess","maxIdx","borderColor","border","headerBg","panel","evenRowBg","oddRowBg","positiveBg","negativeBg","hdrCells","padded","padEnd","rowIdx","tone","rowBg","colored","extraPad","innerW","divider","maxHdrLen","hdr","maxValLen","displayVal","valStr","rebuildMarkdownRenderer","getNonFencedText","input","inFence","trimStart","getNonCodeText","closeIncompleteFences","result","outside","forBacktick","unmatched","forBold","boldCount","forItalic","italicCount","renderMarkdown","streaming","safe"],"sources":["../../../src/cli/shared/markdown.ts"],"sourcesContent":["/**\n * Markdown rendering — polished terminal output with shiki syntax highlighting\n *\n * Uses shiki for VS Code-quality syntax highlighting.\n * All chalk instances are rebuilt on theme switch via rebuildMarkdownRenderer().\n * Uses marked + marked-terminal for markdown structure.\n */\n\nimport { Marked } from \"marked\";\nimport { markedTerminal } from \"marked-terminal\";\nimport chalk from \"chalk\";\nimport { colors } from \"./Theme.js\";\nimport { highlightCode, setRebuildCallback } from \"./theme-manager.js\";\nimport { diffWords } from \"diff\";\n\n// Note: chalk.level is auto-detected by supports-color.\n// Apple_Terminal → level 2 (256-color), iTerm.app v3+ → level 3 (24-bit).\n// Do NOT force level 3 — Terminal.app can't render 24-bit codes (shows gray).\n\n// ============================================================================\n// Palette factory — rebuilt on theme switch\n// ============================================================================\n\nfunction buildPalette() {\n return {\n systemBlue: chalk.hex(colors.brand),\n systemCyan: chalk.hex(colors.info),\n systemPink: chalk.hex(colors.pink),\n systemPurple: chalk.hex(colors.purple),\n systemIndigo: chalk.hex(colors.indigo),\n systemGreen: chalk.hex(colors.success),\n systemMint: chalk.hex(colors.mint),\n systemRed: chalk.hex(colors.error),\n systemOrange: chalk.hex(colors.warning),\n text: chalk.hex(colors.text),\n secondary: chalk.hex(colors.secondary),\n tertiary: chalk.hex(colors.tertiary),\n separator: chalk.hex(colors.separator),\n lavender: chalk.hex(colors.lavender),\n roseGold: chalk.hex(colors.roseGold),\n };\n}\n\nlet p = buildPalette();\n\n// ============================================================================\n// Terminal width helpers — single source of truth for layout widths\n// ============================================================================\n\n/** Raw terminal width — use for elements at the outermost level (separators). */\nexport function termWidth(): number {\n return process.stdout.columns || 80;\n}\n\n/** Width for assistant message text (outer padding=2 + message marginLeft=2 = 4). */\nexport function contentWidth(): number {\n return termWidth() - 4;\n}\n\n/** Width for content nested inside tool results (MessageList=2 + ToolIndicator=2 + safety=2) */\nexport function toolContentWidth(): number {\n return termWidth() - 6;\n}\n\n// ============================================================================\n// OSC 8 hyperlinks — only in terminals that support them\n// ============================================================================\n\n/** Detect if terminal supports OSC 8 clickable hyperlinks */\nconst supportsOsc8 = (() => {\n const tp = process.env.TERM_PROGRAM || \"\";\n if (/iterm|wezterm|kitty|hyper|warp|foot|alacritty/i.test(tp)) return true;\n if (process.env.VTE_VERSION) return true; // GNOME Terminal, Tilix\n if (process.env.WT_SESSION) return true; // Windows Terminal\n if (process.env.KONSOLE_VERSION) return true; // Konsole\n // Apple Terminal.app does NOT support OSC 8\n return false;\n})();\n\nfunction hyperlink(url: string, text?: string): string {\n // mailto: → clean email address, no protocol prefix, no OSC 8\n if (url.startsWith(\"mailto:\")) {\n const email = text || url.slice(7);\n return p.systemCyan(email);\n }\n\n // tel: → clean phone number\n if (url.startsWith(\"tel:\")) {\n return p.systemCyan(text || url.slice(4));\n }\n\n const display = text || url;\n\n // OSC 8 clickable links — only where terminal supports them\n if (supportsOsc8) {\n return `\\x1B]8;;${url}\\x07${p.systemCyan.underline(display)}\\x1B]8;;\\x07`;\n }\n\n // Fallback: colored underlined text (no escape sequences)\n return p.systemCyan.underline(display);\n}\n\n// ============================================================================\n// Path helpers\n// ============================================================================\n\n/** Shorten a file path for code block headers */\nfunction shortenPathForHeader(fullPath: string, maxLen = 40): string {\n let fp = fullPath;\n const cwd = process.cwd();\n const home = process.env.HOME || \"\";\n if (fp.startsWith(cwd + \"/\")) fp = fp.slice(cwd.length + 1);\n else if (fp.startsWith(cwd)) fp = fp.slice(cwd.length);\n else if (home && fp.startsWith(home)) fp = \"~\" + fp.slice(home.length);\n if (fp.length <= maxLen) return fp;\n const parts = fp.split(\"/\");\n const file = parts.pop()!;\n if (file.length >= maxLen - 4) return \"…/\" + file.slice(-(maxLen - 4));\n const parent = parts.pop();\n return parent ? \"…/\" + parent + \"/\" + file : \"…/\" + file;\n}\n\n// ============================================================================\n// Financial coloring\n// ============================================================================\n\nfunction colorizeFinancials(str: string): string {\n return str\n // NOTE: URL hyperlinking is handled by marked's GFM autolink + link/href handlers.\n // Do NOT add URL patterns here — it causes links to render 3-5x.\n // Negative dollar amounts → red (-$1,234.56) — require digit after $\n .replace(/(-\\$\\d[\\d,]*\\.?\\d*)/g, (m) => p.systemRed(m))\n // Positive dollar amounts → green ($1,234.56) — require digit after $\n .replace(/((?:^|[^-])\\$\\d[\\d,]*\\.?\\d*)/g, (m) => p.systemGreen(m))\n // Negative percentages → red\n .replace(/(-\\d+\\.?\\d*%)/g, (m) => p.systemRed(m))\n // Positive percentages → cyan\n .replace(/((?:^|[^-])\\d+\\.?\\d*%)/g, (m) => p.systemCyan(m))\n // Explicit positive → green\n .replace(/(\\+\\$?[\\d,]+\\.?\\d*)/g, (m) => p.systemGreen(m))\n // Financial-specific words → green (no generic words like running/ready/started)\n .replace(/\\b(profit|revenue|gain|in stock|available)\\b/gi, (m) => p.systemGreen(m))\n // Financial/status negatives → red\n .replace(/\\b(loss|deduction|deficit|expense|out of stock|low stock|overdue|expired|cancelled|failed|error|crashed|EADDRINUSE|ENOENT)\\b/gi, (m) => p.systemRed(m));\n}\n\n// ============================================================================\n// Markdown renderer factory — rebuilt on theme switch\n// ============================================================================\n\nfunction buildMarkedInstance(): Marked {\n const md = new Marked();\n\n md.use(\n markedTerminal({\n // Headings — bold blue\n firstHeading: p.systemBlue.bold,\n heading: p.systemBlue.bold,\n\n // Inline\n codespan: p.systemPink,\n strong: p.text.bold,\n em: p.lavender.italic,\n\n // Blocks\n blockquote: p.secondary.italic,\n paragraph: (body: string) => colorizeFinancials(body),\n hr: () => p.separator(\"─\".repeat(50)),\n\n // Links — OSC 8 clickable (single source of truth for URL rendering)\n // NOTE: Only use `link` handler, NOT `href` — having both causes double-hyperlinking\n link: (href: string, _title: string, text: string) => hyperlink(href, text !== href ? text : undefined),\n\n // Lists — purple bullets, financial-aware\n list: (body: string, ordered: boolean) => {\n if (ordered) {\n let n = 0;\n return body.replace(/^\\* /gm, () => {\n n++;\n return `${p.systemIndigo(String(n) + \".\")} `;\n });\n }\n return body.replace(/^\\* /gm, `${p.systemPurple(\"●\")} `);\n },\n listitem: (itemText: string) => {\n return colorizeFinancials(itemText);\n },\n\n // Layout — adapt to terminal width\n reflowText: false,\n showSectionPrefix: false,\n width: Math.min(120, contentWidth()),\n tab: 2,\n })\n );\n\n // Register chart + table + code block extensions\n md.use({\n renderer: {\n code(this: unknown, token: { lang?: string; text: string }) {\n const rawLang = token.lang || \"\";\n const code = token.text;\n\n // Parse lang:subtitle (e.g. \"typescript:src/foo.ts\")\n const colonIdx = rawLang.indexOf(\":\");\n const lang = colonIdx > 0 ? rawLang.slice(0, colonIdx) : rawLang;\n const subtitle = colonIdx > 0 ? rawLang.slice(colonIdx + 1) : \"\";\n\n if (lang === \"chart\" || lang === \"bar\") {\n return renderBarChart(code);\n }\n if (lang === \"diff\") {\n return renderDiff(code);\n }\n {\n // Command output mode: bash without subtitle = run_command output\n // → no line numbers, wider content area, clean indent\n const isCommandOutput = (lang === \"bash\" || lang === \"terminal\") && !subtitle;\n const highlightLang = lang === \"terminal\" ? \"bash\" : lang;\n\n // Build header: ── lang ── subtitle ──────\n const cw = contentWidth();\n const headerWidth = Math.max(20, cw - 6);\n const displayLang = isCommandOutput ? \"bash\" : lang;\n let header: string;\n if (displayLang && subtitle) {\n const shortSub = shortenPathForHeader(subtitle, headerWidth - displayLang.length - 10);\n const pad = Math.max(2, headerWidth - displayLang.length - shortSub.length - 6);\n header = p.separator(\" ── \") + p.tertiary(displayLang) + p.separator(\" ── \") + p.secondary(shortSub) + p.separator(` ${\"─\".repeat(pad)}`);\n } else if (displayLang) {\n const pad = Math.max(2, headerWidth - displayLang.length - 3);\n header = p.separator(\" ── \") + p.tertiary(displayLang) + p.separator(` ${\"─\".repeat(pad)}`);\n } else {\n header = p.separator(\" ──\" + \"─\".repeat(headerWidth - 2));\n }\n\n // Calculate max line width to prevent wrapping\n const lineCount = code.split(\"\\n\").length;\n const gutterW = isCommandOutput ? 0 : String(lineCount).length;\n const gutterOverhead = isCommandOutput ? 4 : (2 + gutterW + 3); // \" \" or \" 123 │ \"\n const maxLineWidth = Math.max(20, cw - gutterOverhead - 2);\n\n // Pre-truncate lines BEFORE highlighting (avoids cutting ANSI codes)\n const truncatedCode = code.split(\"\\n\").map((line: string) => {\n if (line.length > maxLineWidth) {\n return line.slice(0, maxLineWidth - 1) + \"…\";\n }\n return line;\n }).join(\"\\n\");\n\n // Highlight with shiki\n const highlighted = highlightLang\n ? highlightCode(truncatedCode, highlightLang)\n : truncatedCode;\n\n const hLines = highlighted.split(\"\\n\");\n\n if (isCommandOutput) {\n // Command output: no line numbers, 4-space indent\n const body = hLines.map(l => \" \" + l).join(\"\\n\");\n return \"\\n\" + header + \"\\n\" + body + \"\\n\";\n } else {\n // Code with line numbers + gutter\n const numbered = hLines.map((l, i) => {\n const num = p.tertiary(String(i + 1).padStart(gutterW));\n return \" \" + num + p.separator(\" │ \") + l;\n }).join(\"\\n\");\n return \"\\n\" + header + \"\\n\" + numbered + \"\\n\";\n }\n }\n },\n table(this: unknown, token: unknown) {\n return renderTable(token);\n },\n },\n });\n\n return md;\n}\n\nlet md = buildMarkedInstance();\n\n// ============================================================================\n// Diff renderer — background colors + word-level diff (Claude Code parity)\n// ============================================================================\n\nfunction buildDiffStyles() {\n return {\n diffAddedBg: chalk.bgHex(colors.diffAddedBg).white,\n diffRemovedBg: chalk.bgHex(colors.diffRemovedBg).white,\n diffWordAdded: chalk.bgHex(colors.diffWordAdded).whiteBright.bold,\n diffWordRemoved: chalk.bgHex(colors.diffWordRemoved).whiteBright.bold,\n };\n}\n\nlet d = buildDiffStyles();\n\n/** Compute word-level diff between two lines using the `diff` library. */\nfunction wordDiff(oldLine: string, newLine: string): { old: {text: string; changed: boolean}[]; new: {text: string; changed: boolean}[] } {\n const changes = diffWords(oldLine, newLine);\n const oldSegs: {text: string; changed: boolean}[] = [];\n const newSegs: {text: string; changed: boolean}[] = [];\n\n for (const change of changes) {\n if (change.added) {\n newSegs.push({ text: change.value, changed: true });\n } else if (change.removed) {\n oldSegs.push({ text: change.value, changed: true });\n } else {\n oldSegs.push({ text: change.value, changed: false });\n newSegs.push({ text: change.value, changed: false });\n }\n }\n\n // If >60% of either line changed, fall back to full-line highlight\n const oldChanged = oldSegs.filter(s => s.changed).reduce((n, s) => n + s.text.length, 0);\n const newChanged = newSegs.filter(s => s.changed).reduce((n, s) => n + s.text.length, 0);\n if ((oldLine.length > 0 && oldChanged / oldLine.length > 0.6) ||\n (newLine.length > 0 && newChanged / newLine.length > 0.6)) {\n return { old: [{text: oldLine, changed: true}], new: [{text: newLine, changed: true}] };\n }\n\n return { old: oldSegs, new: newSegs };\n}\n\n/** Render segments with word-level highlighting */\nfunction renderSegments(segs: {text: string; changed: boolean}[], wordStyle: (s: string) => string, lineStyle: (s: string) => string): string {\n return segs.map(s => s.changed ? wordStyle(s.text) : lineStyle(s.text)).join(\"\");\n}\n\nfunction renderDiff(code: string): string {\n const lines = code.split(\"\\n\");\n const tw = toolContentWidth();\n\n // Parse into segments from unified diff format\n type Seg = { type: \"remove\" | \"add\" | \"context\"; content: string; lineNo: number };\n const segments: Seg[] = [];\n let oldLineNo = 1, newLineNo = 1;\n let seenDiff = false;\n\n for (const line of lines) {\n // Skip file headers (--- a/file, +++ b/file)\n if (line.startsWith(\"---\") || line.startsWith(\"+++\")) continue;\n\n // Hunk header — extract line numbers\n const hunkMatch = line.match(/^@@\\s*-(\\d+)(?:,\\d+)?\\s*\\+(\\d+)(?:,\\d+)?\\s*@@/);\n if (hunkMatch) {\n oldLineNo = parseInt(hunkMatch[1]);\n newLineNo = parseInt(hunkMatch[2]);\n seenDiff = true;\n continue;\n }\n\n // Skip non-diff header lines (e.g., \"File edited:\", \"Applied N edits\")\n if (!seenDiff && !line.startsWith(\"-\") && !line.startsWith(\"+\") && !line.startsWith(\" \")) {\n continue;\n }\n seenDiff = true;\n\n if (line.startsWith(\"-\")) {\n segments.push({ type: \"remove\", content: line.slice(1), lineNo: oldLineNo });\n oldLineNo++;\n } else if (line.startsWith(\"+\")) {\n segments.push({ type: \"add\", content: line.slice(1), lineNo: newLineNo });\n newLineNo++;\n } else {\n const content = line.startsWith(\" \") ? line.slice(1) : line;\n segments.push({ type: \"context\", content, lineNo: newLineNo });\n oldLineNo++;\n newLineNo++;\n }\n }\n\n if (segments.length === 0) return code; // fallback\n\n // Gutter width from max line number\n const maxLineNo = segments.reduce((max, s) => Math.max(max, s.lineNo), 0);\n const gutterW = Math.max(3, String(maxLineNo).length);\n\n const out: string[] = [];\n let i = 0;\n\n while (i < segments.length) {\n const seg = segments[i];\n\n if (seg.type === \"remove\") {\n // Collect consecutive removes\n const removes: Seg[] = [];\n while (i < segments.length && segments[i].type === \"remove\") {\n removes.push(segments[i]);\n i++;\n }\n // Collect consecutive adds\n const adds: Seg[] = [];\n while (i < segments.length && segments[i].type === \"add\") {\n adds.push(segments[i]);\n i++;\n }\n\n // Pair for word-level diff\n const pairCount = Math.min(removes.length, adds.length);\n\n for (let j = 0; j < removes.length; j++) {\n const r = removes[j];\n const rPrefix = `${String(r.lineNo).padStart(gutterW)} - `;\n\n if (j < pairCount) {\n const a = adds[j];\n const aPrefix = `${String(a.lineNo).padStart(gutterW)} + `;\n const wd = wordDiff(r.content, a.content);\n\n // Removed line with word highlights\n const rPad = Math.max(0, tw - rPrefix.length - r.content.length);\n out.push(d.diffRemovedBg(rPrefix) + renderSegments(wd.old, d.diffWordRemoved, d.diffRemovedBg) + d.diffRemovedBg(\" \".repeat(rPad)));\n\n // Added line with word highlights\n const aPad = Math.max(0, tw - aPrefix.length - a.content.length);\n out.push(d.diffAddedBg(aPrefix) + renderSegments(wd.new, d.diffWordAdded, d.diffAddedBg) + d.diffAddedBg(\" \".repeat(aPad)));\n } else {\n // Unpaired remove\n const raw = rPrefix + r.content;\n const pad = Math.max(0, tw - raw.length);\n out.push(d.diffRemovedBg(raw + \" \".repeat(pad)));\n }\n }\n\n // Unpaired adds\n for (let j = pairCount; j < adds.length; j++) {\n const a = adds[j];\n const prefix = `${String(a.lineNo).padStart(gutterW)} + `;\n const raw = prefix + a.content;\n const pad = Math.max(0, tw - raw.length);\n out.push(d.diffAddedBg(raw + \" \".repeat(pad)));\n }\n continue;\n }\n\n if (seg.type === \"add\") {\n // Standalone add (no preceding remove)\n const prefix = `${String(seg.lineNo).padStart(gutterW)} + `;\n const raw = prefix + seg.content;\n const pad = Math.max(0, tw - raw.length);\n out.push(d.diffAddedBg(raw + \" \".repeat(pad)));\n i++;\n continue;\n }\n\n // Context line — dim line number, plain content, no background\n const prefix = p.tertiary(`${String(seg.lineNo).padStart(gutterW)} `);\n out.push(prefix + seg.content);\n i++;\n }\n\n return out.join(\"\\n\") + \"\\n\";\n}\n\n// ============================================================================\n// Bar chart renderer — ```chart code blocks\n// ============================================================================\n\nfunction buildBarGradient() {\n return [\n chalk.hex(colors.purple),\n chalk.hex(colors.indigo),\n chalk.hex(colors.brand),\n chalk.hex(colors.info),\n chalk.hex(colors.teal),\n chalk.hex(colors.success),\n chalk.hex(colors.warning),\n chalk.hex(colors.pink),\n ];\n}\n\nlet barGradient = buildBarGradient();\n\ninterface ChartEntry {\n label: string;\n value: number;\n raw: string;\n}\n\nfunction renderBarChart(code: string): string {\n const lines = code.trim().split(\"\\n\").filter(l => l.trim());\n\n // Optional title — first line without \"label: number\" pattern\n let title = \"\";\n let dataLines = lines;\n if (lines.length > 1 && !/:\\s*[$\\-+]?[\\d,]+/.test(lines[0])) {\n title = lines[0].trim();\n dataLines = lines.slice(1);\n }\n\n // Parse \"Label: $1,234.56\" or \"Label: 42%\" or \"Label: 1000\"\n const entries: ChartEntry[] = [];\n for (const line of dataLines) {\n const m = line.match(/^(.+?):\\s*([+\\-]?\\$?[\\d,]+\\.?\\d*%?)\\s*$/);\n if (!m) continue;\n const label = m[1].trim();\n const raw = m[2].trim();\n const value = Math.abs(parseFloat(raw.replace(/[$,%]/g, \"\")));\n if (!isNaN(value)) entries.push({ label, value, raw });\n }\n\n if (entries.length === 0) return code;\n\n const maxVal = Math.max(...entries.map(e => e.value));\n const maxRaw = Math.max(...entries.map(e => e.raw.length));\n const cw = contentWidth();\n\n // Responsive label width — truncate labels to fit\n const idealLabelW = Math.max(...entries.map(e => e.label.length));\n // Fixed overhead: indent(2) + gap(2) + gap(2) + value(maxRaw) + safety(2)\n const fixedOverhead = 2 + 2 + 2 + maxRaw + 2;\n const spaceForLabelAndBar = cw - fixedOverhead;\n\n // Allocate: label gets up to half, bar gets the rest (min 4)\n const maxLabelW = Math.min(idealLabelW, Math.max(6, Math.floor(spaceForLabelAndBar * 0.4)));\n const barWidth = Math.max(4, spaceForLabelAndBar - maxLabelW);\n\n // If even 4-char bars don't fit, fall back to compact list (no bars)\n const compact = spaceForLabelAndBar < 12;\n\n const out: string[] = [];\n\n if (title) {\n const displayTitle = title.length > cw - 4 ? title.slice(0, cw - 5) + \"…\" : title;\n out.push(` ${p.systemBlue.bold(displayTitle)}`);\n out.push(\"\");\n }\n\n function colorVal(raw: string): string {\n return raw.includes(\"$\") ? p.systemGreen(raw)\n : raw.includes(\"%\") ? p.systemCyan(raw)\n : p.systemMint(raw);\n }\n\n if (compact) {\n // Compact mode: just \"label value\" with color dot\n for (let i = 0; i < entries.length; i++) {\n const e = entries[i];\n const color = barGradient[i % barGradient.length];\n const labelStr = e.label.length > cw - maxRaw - 8\n ? e.label.slice(0, cw - maxRaw - 9) + \"…\"\n : e.label;\n out.push(` ${color(\"●\")} ${p.secondary(labelStr)} ${colorVal(e.raw)}`);\n }\n } else {\n for (let i = 0; i < entries.length; i++) {\n const e = entries[i];\n const ratio = maxVal > 0 ? e.value / maxVal : 0;\n const filled = Math.round(ratio * barWidth);\n const color = barGradient[i % barGradient.length];\n\n const labelStr = e.label.length > maxLabelW\n ? e.label.slice(0, maxLabelW - 1) + \"…\"\n : e.label;\n const label = p.secondary(labelStr.padStart(maxLabelW));\n const bar = color(\"█\".repeat(filled)) + chalk.hex(\"#2C2C2E\")(\"░\".repeat(barWidth - filled));\n const val = colorVal(e.raw.padStart(maxRaw));\n\n out.push(` ${label} ${bar} ${val}`);\n }\n }\n\n return \"\\n\" + out.join(\"\\n\") + \"\\n\";\n}\n\n// ============================================================================\n// Table renderer — polished TUI tables with theme-aware styling\n// ============================================================================\n\n// Row tone detection for background tinting\ntype RowTone = \"positive\" | \"negative\" | \"neutral\";\n\nfunction getRowTone(cells: string[]): RowTone {\n for (const cell of cells) {\n const t = cell.trim();\n if (/^-\\$[\\d,]+/.test(t) || /^-\\d+\\.?\\d*%/.test(t)) return \"negative\";\n if (/^\\+\\d/.test(t) || /^\\+\\$/.test(t)) return \"positive\";\n if (/^`?[✕✗]/.test(t) || /cancelled|failed|rejected|error|out of stock|low stock/i.test(t)) return \"negative\";\n if (/^`?[✓●]/.test(t) || /completed|received|approved|active|success|paid|published/i.test(t)) return \"positive\";\n }\n return \"neutral\";\n}\n\n/** Detect if a column is numeric (for right-alignment) */\nfunction isNumericColumn(rows: string[][], colIndex: number): boolean {\n let numericCount = 0;\n let total = 0;\n for (const row of rows) {\n const val = (row[colIndex] || \"\").trim();\n if (!val) continue;\n total++;\n if (/^[+\\-]?\\$?[\\d,]+\\.?\\d*%?$/.test(val)) numericCount++;\n }\n return total > 0 && numericCount / total > 0.5;\n}\n\n/** Blend two hex colors by ratio (0 = colorA, 1 = colorB) */\nfunction blendHex(a: string, b: string, ratio: number): string {\n const parse = (h: string) => {\n const c = h.replace(\"#\", \"\");\n return [parseInt(c.slice(0, 2), 16), parseInt(c.slice(2, 4), 16), parseInt(c.slice(4, 6), 16)];\n };\n const [ar, ag, ab] = parse(a);\n const [br, bg, bb] = parse(b);\n const r = Math.round(ar + (br - ar) * ratio);\n const g = Math.round(ag + (bg - ag) * ratio);\n const bv = Math.round(ab + (bb - ab) * ratio);\n return `#${r.toString(16).padStart(2, \"0\")}${g.toString(16).padStart(2, \"0\")}${bv.toString(16).padStart(2, \"0\")}`;\n}\n\nfunction colorizeCell(val: string, isHeader: boolean): string {\n const trimmed = val.trim();\n if (!trimmed) return p.text(\"\");\n if (isHeader) return p.systemBlue.bold(trimmed);\n\n // Badge format: `✓ status` or `◆ status` or `○ status` or `✕ status`\n const badgeMatch = trimmed.match(/^`([✓●◆○✕◦])\\s+(.+)`$/);\n if (badgeMatch) {\n const [, icon, label] = badgeMatch;\n if (icon === \"✓\" || icon === \"●\") return p.systemGreen(`${icon} ${label}`);\n if (icon === \"◆\") return p.systemCyan(`${icon} ${label}`);\n if (icon === \"○\") return p.systemOrange(`${icon} ${label}`);\n if (icon === \"✕\") return p.systemRed(`${icon} ${label}`);\n return p.secondary(`${icon} ${label}`);\n }\n\n // Inline code (UUID, SKU, transfer number)\n if (trimmed.startsWith(\"`\") && trimmed.endsWith(\"`\")) {\n return p.systemPurple(trimmed.slice(1, -1));\n }\n\n // Bold text\n if (trimmed.startsWith(\"**\") && trimmed.endsWith(\"**\")) {\n return p.text.bold(trimmed.slice(2, -2));\n }\n\n // Negative values → red\n if (/^-\\$?[\\d,]+\\.?\\d*$/.test(trimmed) || /^-\\d+\\.?\\d*%$/.test(trimmed)) {\n return p.systemRed(trimmed);\n }\n // Positive financial → green\n if (/^\\+?\\$[\\d,]+\\.?\\d*$/.test(trimmed) || /^\\$[\\d,]+\\.?\\d*$/.test(trimmed)) {\n return p.systemGreen(trimmed);\n }\n // Percentages → cyan\n if (/^\\d+\\.?\\d*%$/.test(trimmed)) {\n return p.systemCyan(trimmed);\n }\n // Plain numbers → mint\n if (/^[\\d,]+\\.?\\d*$/.test(trimmed)) {\n return p.systemMint(trimmed);\n }\n // Status words\n if (/^(active|success|complete|approved|in stock|available)/i.test(trimmed)) {\n return p.systemGreen(trimmed);\n }\n if (/^(inactive|error|failed|cancelled|out of stock|low|overdue|expired)/i.test(trimmed)) {\n return p.systemRed(trimmed);\n }\n if (/^(pending|draft|processing)/i.test(trimmed)) {\n return p.systemOrange(trimmed);\n }\n\n return p.text(trimmed);\n}\n\nfunction renderTable(token: any): string {\n function getCellText(cell: any): string {\n if (!cell) return \"\";\n if (typeof cell === \"string\") return cell;\n if (cell.text !== undefined) return String(cell.text);\n if (cell.tokens) {\n return cell.tokens.map((t: any) => t.raw || t.text || \"\").join(\"\");\n }\n return String(cell);\n }\n\n const headers: string[] = (token.header || []).map((h: any) => getCellText(h));\n const rows: string[][] = (token.rows || []).map((row: any) =>\n row.map((cell: any) => getCellText(cell))\n );\n\n if (headers.length === 0) return \"\";\n\n const cw = contentWidth();\n const N = headers.length;\n\n // ── Check if box table can fit ──\n // Minimum box table width: indent(2) + borders(N+1) + N * (minCol + 2 padding)\n const MIN_COL = 3;\n const minBoxWidth = 2 + (N + 1) + N * (MIN_COL + 2);\n\n if (minBoxWidth > cw) {\n // ── Card layout — graceful fallback for narrow terminals ──\n return renderTableCards(headers, rows, cw);\n }\n\n // ── Box table layout ──\n const overhead = 2 + 1 + (N - 1) + 1 + (N * 2);\n const availableForContent = cw - overhead;\n const minCol = cw < 70 ? MIN_COL : cw < 90 ? 5 : 6;\n const maxPerCol = Math.max(minCol, Math.floor(availableForContent / N));\n\n // Detect numeric columns for right-alignment\n const numericCols = headers.map((_, i) => isNumericColumn(rows, i));\n\n // Size columns: fit content up to maxPerCol, respect minCol\n const colWidths = headers.map((h: string, i: number) => {\n const dataMax = rows.reduce((max: number, row: string[]) =>\n Math.max(max, (row[i] || \"\").length), 0);\n return Math.min(maxPerCol, Math.max(minCol, h.length, dataMax) + 2);\n });\n\n // Double-check total width won't overflow (defensive)\n const totalWidth = 2 + 1 + colWidths.reduce((s, w) => s + w + 2, 0) + (N - 1) + 1;\n if (totalWidth > cw) {\n // Shrink largest columns until we fit\n let excess = totalWidth - cw;\n while (excess > 0) {\n const maxIdx = colWidths.indexOf(Math.max(...colWidths));\n if (colWidths[maxIdx] <= MIN_COL) break; // can't shrink further\n colWidths[maxIdx]--;\n excess--;\n }\n }\n\n // ── Colors ──\n const borderColor = blendHex(colors.separator, colors.brand, 0.25);\n const border = chalk.hex(borderColor);\n const headerBg = chalk.bgHex(blendHex(colors.panel, colors.brand, 0.15));\n const evenRowBg = chalk.bgHex(blendHex(colors.panel, colors.text, 0.04));\n const oddRowBg = chalk.bgHex(colors.panel);\n const positiveBg = chalk.bgHex(blendHex(colors.panel, colors.success, 0.12));\n const negativeBg = chalk.bgHex(blendHex(colors.panel, colors.error, 0.12));\n\n const out: string[] = [];\n\n // Top border\n out.push(border(\" ╭\" + colWidths.map((w: number) => \"─\".repeat(w + 2)).join(\"┬\") + \"╮\"));\n\n // Header row\n const hdrCells = headers.map((h: string, i: number) => {\n const display = h.length > colWidths[i] ? h.slice(0, colWidths[i] - 1) + \"…\" : h;\n const padded = numericCols[i] ? display.padStart(colWidths[i]) : display.padEnd(colWidths[i]);\n return headerBg(\" \" + chalk.hex(colors.brand).bold(padded) + \" \");\n }).join(border(\"│\"));\n out.push(border(\" │\") + hdrCells + border(\"│\"));\n\n // Header divider\n out.push(border(\" ├\" + colWidths.map((w: number) => \"━\".repeat(w + 2)).join(\"┿\") + \"┤\"));\n\n // Data rows\n for (let rowIdx = 0; rowIdx < rows.length; rowIdx++) {\n const row = rows[rowIdx];\n const tone = getRowTone(row);\n const rowBg = tone === \"positive\" ? positiveBg\n : tone === \"negative\" ? negativeBg\n : rowIdx % 2 === 0 ? evenRowBg : oddRowBg;\n\n const cells = headers.map((_: string, i: number) => {\n const raw = row[i] || \"\";\n const display = raw.length > colWidths[i] ? raw.slice(0, colWidths[i] - 1) + \"…\" : raw;\n const colored = colorizeCell(display, false);\n const extraPad = Math.max(0, colWidths[i] - display.length);\n if (numericCols[i]) {\n return rowBg(\" \".repeat(extraPad) + \" \" + colored + \" \");\n }\n return rowBg(\" \" + colored + \" \".repeat(extraPad) + \" \");\n }).join(border(\"│\"));\n out.push(border(\" │\") + cells + border(\"│\"));\n }\n\n // Bottom border\n out.push(border(\" ╰\" + colWidths.map((w: number) => \"─\".repeat(w + 2)).join(\"┴\") + \"╯\"));\n\n return \"\\n\" + out.join(\"\\n\") + \"\\n\";\n}\n\n/** Card layout fallback — renders each row as a key: value block. Never overflows. */\nfunction renderTableCards(headers: string[], rows: string[][], cw: number): string {\n const border = chalk.hex(blendHex(colors.separator, colors.brand, 0.25));\n const out: string[] = [];\n const innerW = Math.max(8, cw - 6); // indent(2) + border(2) + padding(2)\n const divider = border(\" \" + \"─\".repeat(innerW + 2));\n\n // Find longest header for label alignment\n const maxHdrLen = Math.min(\n Math.max(...headers.map(h => h.length)),\n Math.floor(innerW * 0.4),\n );\n\n out.push(divider);\n\n for (let rowIdx = 0; rowIdx < rows.length; rowIdx++) {\n const row = rows[rowIdx];\n if (rowIdx > 0) out.push(divider);\n\n for (let i = 0; i < headers.length; i++) {\n const hdr = headers[i].length > maxHdrLen\n ? headers[i].slice(0, maxHdrLen - 1) + \"…\"\n : headers[i];\n const val = row[i] || \"\";\n const maxValLen = innerW - maxHdrLen - 3; // \" label value\"\n const displayVal = val.length > maxValLen\n ? val.slice(0, maxValLen - 1) + \"…\"\n : val;\n\n const labelStr = p.tertiary(hdr.padEnd(maxHdrLen));\n const valStr = colorizeCell(displayVal, false);\n out.push(` ${labelStr} ${valStr}`);\n }\n }\n\n out.push(divider);\n return \"\\n\" + out.join(\"\\n\") + \"\\n\";\n}\n\n// ============================================================================\n// Rebuild — called on theme switch to refresh all chalk instances\n// ============================================================================\n\nexport function rebuildMarkdownRenderer(): void {\n p = buildPalette();\n d = buildDiffStyles();\n barGradient = buildBarGradient();\n md = buildMarkedInstance();\n}\n\n// Register rebuild callback with theme manager\nsetRebuildCallback(rebuildMarkdownRenderer);\n\n// ============================================================================\n// Streaming fence closure — state-tracking approach\n// ============================================================================\n\n/** Extract text outside fenced code blocks */\nfunction getNonFencedText(input: string): string {\n const lines = input.split(\"\\n\");\n const parts: string[] = [];\n let inFence = false;\n for (const line of lines) {\n if (line.trimStart().startsWith(\"```\")) {\n inFence = !inFence;\n continue;\n }\n if (!inFence) parts.push(line);\n }\n return parts.join(\"\\n\");\n}\n\n/** Strip complete inline code spans from text */\nfunction getNonCodeText(t: string): string {\n return t.replace(/``[^`]*``/g, \"\").replace(/`[^`\\n]*`/g, \"\");\n}\n\n/**\n * Close incomplete markdown fences for safe streaming rendering.\n * State-tracking approach: handles nested fences, escaped markers, double-backtick spans.\n */\nexport function closeIncompleteFences(input: string): string {\n let result = input;\n\n // 1. Code fences — walk lines, track open/close state\n let inFence = false;\n for (const line of result.split(\"\\n\")) {\n const trimmed = line.trimStart();\n if (trimmed.startsWith(\"```\")) {\n inFence = !inFence;\n }\n }\n if (inFence) {\n result += \"\\n```\";\n }\n\n // 2. For inline markers, only examine text OUTSIDE fenced code blocks\n const outside = getNonFencedText(result);\n\n // 3. Inline backticks — remove escaped, remove complete spans, count remainder\n let forBacktick = outside.replace(/\\\\`/g, \"\");\n forBacktick = forBacktick.replace(/``[^`]*``/g, \"\"); // double-backtick spans\n forBacktick = forBacktick.replace(/`[^`\\n]*`/g, \"\"); // single-backtick spans\n const unmatched = (forBacktick.match(/`/g) || []).length;\n if (unmatched % 2 !== 0) {\n result += \"`\";\n }\n\n // 4. Bold — count ** in non-code text\n const forBold = getNonCodeText(outside);\n const boldCount = (forBold.match(/\\*\\*/g) || []).length;\n if (boldCount % 2 !== 0) {\n result += \"**\";\n }\n\n // 5. Italic — count standalone * (not part of **) with escape awareness\n const forItalic = forBold.replace(/\\*\\*/g, \"\");\n const italicCount = (forItalic.match(/(?<!\\\\)\\*/g) || []).length;\n if (italicCount % 2 !== 0) {\n result += \"*\";\n }\n\n return result;\n}\n\n/**\n * Render markdown to ANSI-styled terminal string.\n * Optionally applies streaming-safe fence closing.\n */\nexport function renderMarkdown(input: string, streaming = false): string {\n const safe = streaming ? closeIncompleteFences(input) : input;\n const result = md.parse(safe) as string;\n return result.replace(/\\n+$/, \"\");\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"markdown.js","names":["Marked","markedTerminal","chalk","colors","highlightCode","setRebuildCallback","diffWords","buildPalette","termWidth","contentWidth","toolContentWidth","hyperlink","hyperlinkWithPalette","colorizeFinancials","colorizeFinancialsWithPalette","shortenPathForHeader","p","url","text","str","buildMarkedInstance","md","use","firstHeading","systemBlue","bold","heading","codespan","systemPink","strong","em","lavender","italic","blockquote","secondary","paragraph","body","hr","separator","repeat","link","href","_title","undefined","list","ordered","n","replace","systemIndigo","String","systemPurple","listitem","itemText","reflowText","showSectionPrefix","width","Math","min","tab","renderer","code","token","rawLang","lang","colonIdx","indexOf","slice","subtitle","renderBarChart","renderDiff","isCommandOutput","highlightLang","cw","headerWidth","max","displayLang","header","shortSub","length","pad","tertiary","lineCount","split","gutterW","gutterOverhead","maxLineWidth","truncatedCode","map","line","join","highlighted","hLines","l","numbered","i","num","padStart","table","renderTable","buildDiffStyles","diffAddedBg","bgHex","white","diffRemovedBg","diffWordAdded","whiteBright","diffWordRemoved","d","wordDiff","oldLine","newLine","changes","oldSegs","newSegs","change","added","push","value","changed","removed","oldChanged","filter","s","reduce","newChanged","old","new","renderSegments","segs","wordStyle","lineStyle","lines","tw","segments","oldLineNo","newLineNo","seenDiff","startsWith","hunkMatch","match","parseInt","type","content","lineNo","maxLineNo","out","seg","removes","adds","pairCount","j","r","rPrefix","a","aPrefix","wd","rPad","aPad","raw","prefix","buildBarGradient","hex","purple","indigo","brand","info","teal","success","warning","pink","barGradient","trim","title","dataLines","test","entries","m","label","abs","parseFloat","isNaN","maxVal","e","maxRaw","idealLabelW","fixedOverhead","spaceForLabelAndBar","maxLabelW","floor","barWidth","compact","displayTitle","colorVal","includes","systemGreen","systemCyan","systemMint","color","labelStr","ratio","filled","round","bar","val","getRowTone","cells","cell","t","isNumericColumn","rows","colIndex","numericCount","total","row","blendHex","b","parse","h","c","ar","ag","ab","br","bg","bb","g","bv","toString","colorizeCell","isHeader","trimmed","badgeMatch","icon","systemOrange","systemRed","endsWith","getCellText","tokens","headers","N","MIN_COL","minBoxWidth","renderTableCards","overhead","availableForContent","minCol","maxPerCol","numericCols","_","colWidths","dataMax","totalWidth","w","excess","maxIdx","borderColor","border","headerBg","panel","evenRowBg","oddRowBg","positiveBg","negativeBg","error","hdrCells","display","padded","padEnd","rowIdx","tone","rowBg","colored","extraPad","innerW","divider","maxHdrLen","hdr","maxValLen","displayVal","valStr","rebuildMarkdownRenderer","getNonFencedText","input","parts","inFence","trimStart","getNonCodeText","closeIncompleteFences","result","outside","forBacktick","unmatched","forBold","boldCount","forItalic","italicCount","renderMarkdown","streaming","safe"],"sources":["../../../src/cli/shared/markdown.ts"],"sourcesContent":["/**\n * Markdown rendering — polished terminal output with shiki syntax highlighting\n *\n * Uses shiki for VS Code-quality syntax highlighting.\n * All chalk instances are rebuilt on theme switch via rebuildMarkdownRenderer().\n * Uses marked + marked-terminal for markdown structure.\n */\n\nimport { Marked } from \"marked\";\nimport { markedTerminal } from \"marked-terminal\";\nimport chalk from \"chalk\";\nimport { colors } from \"./Theme.js\";\nimport { highlightCode, setRebuildCallback } from \"./theme-manager.js\";\nimport { diffWords } from \"diff\";\nimport {\n buildPalette,\n termWidth, contentWidth, toolContentWidth,\n hyperlink as hyperlinkWithPalette,\n colorizeFinancials as colorizeFinancialsWithPalette,\n shortenPathForHeader,\n} from \"./markdown-helpers.js\";\n\n// Re-export width helpers for consumers that import from markdown.ts\nexport { termWidth, contentWidth, toolContentWidth };\n\n// Note: chalk.level is auto-detected by supports-color.\n// Apple_Terminal → level 2 (256-color), iTerm.app v3+ → level 3 (24-bit).\n// Do NOT force level 3 — Terminal.app can't render 24-bit codes (shows gray).\n\nlet p = buildPalette();\n\n// Thin wrappers that close over module-level palette `p`\n// Source of truth is in markdown-helpers.ts\nfunction hyperlink(url: string, text?: string): string {\n return hyperlinkWithPalette(url, text, p);\n}\n\nfunction colorizeFinancials(str: string): string {\n return colorizeFinancialsWithPalette(str, p);\n}\n\n\n// ============================================================================\n// Markdown renderer factory — rebuilt on theme switch\n// ============================================================================\n\nfunction buildMarkedInstance(): Marked {\n const md = new Marked();\n\n md.use(\n markedTerminal({\n // Headings — bold blue\n firstHeading: p.systemBlue.bold,\n heading: p.systemBlue.bold,\n\n // Inline\n codespan: p.systemPink,\n strong: p.text.bold,\n em: p.lavender.italic,\n\n // Blocks\n blockquote: p.secondary.italic,\n paragraph: (body: string) => colorizeFinancials(body),\n hr: () => p.separator(\"─\".repeat(50)),\n\n // Links — OSC 8 clickable (single source of truth for URL rendering)\n // NOTE: Only use `link` handler, NOT `href` — having both causes double-hyperlinking\n link: (href: string, _title: string, text: string) => hyperlink(href, text !== href ? text : undefined),\n\n // Lists — purple bullets, financial-aware\n list: (body: string, ordered: boolean) => {\n if (ordered) {\n let n = 0;\n return body.replace(/^\\* /gm, () => {\n n++;\n return `${p.systemIndigo(String(n) + \".\")} `;\n });\n }\n return body.replace(/^\\* /gm, `${p.systemPurple(\"●\")} `);\n },\n listitem: (itemText: string) => {\n return colorizeFinancials(itemText);\n },\n\n // Layout — adapt to terminal width\n reflowText: false,\n showSectionPrefix: false,\n width: Math.min(120, contentWidth()),\n tab: 2,\n })\n );\n\n // Register chart + table + code block extensions\n md.use({\n renderer: {\n code(this: unknown, token: { lang?: string; text: string }) {\n const rawLang = token.lang || \"\";\n const code = token.text;\n\n // Parse lang:subtitle (e.g. \"typescript:src/foo.ts\")\n const colonIdx = rawLang.indexOf(\":\");\n const lang = colonIdx > 0 ? rawLang.slice(0, colonIdx) : rawLang;\n const subtitle = colonIdx > 0 ? rawLang.slice(colonIdx + 1) : \"\";\n\n if (lang === \"chart\" || lang === \"bar\") {\n return renderBarChart(code);\n }\n if (lang === \"diff\") {\n return renderDiff(code);\n }\n {\n // Command output mode: bash without subtitle = run_command output\n // → no line numbers, wider content area, clean indent\n const isCommandOutput = (lang === \"bash\" || lang === \"terminal\") && !subtitle;\n const highlightLang = lang === \"terminal\" ? \"bash\" : lang;\n\n // Build header: ── lang ── subtitle ──────\n const cw = contentWidth();\n const headerWidth = Math.max(20, cw - 6);\n const displayLang = isCommandOutput ? \"bash\" : lang;\n let header: string;\n if (displayLang && subtitle) {\n const shortSub = shortenPathForHeader(subtitle, headerWidth - displayLang.length - 10);\n const pad = Math.max(2, headerWidth - displayLang.length - shortSub.length - 6);\n header = p.separator(\" ── \") + p.tertiary(displayLang) + p.separator(\" ── \") + p.secondary(shortSub) + p.separator(` ${\"─\".repeat(pad)}`);\n } else if (displayLang) {\n const pad = Math.max(2, headerWidth - displayLang.length - 3);\n header = p.separator(\" ── \") + p.tertiary(displayLang) + p.separator(` ${\"─\".repeat(pad)}`);\n } else {\n header = p.separator(\" ──\" + \"─\".repeat(headerWidth - 2));\n }\n\n // Calculate max line width to prevent wrapping\n const lineCount = code.split(\"\\n\").length;\n const gutterW = isCommandOutput ? 0 : String(lineCount).length;\n const gutterOverhead = isCommandOutput ? 4 : (2 + gutterW + 3); // \" \" or \" 123 │ \"\n const maxLineWidth = Math.max(20, cw - gutterOverhead - 2);\n\n // Pre-truncate lines BEFORE highlighting (avoids cutting ANSI codes)\n const truncatedCode = code.split(\"\\n\").map((line: string) => {\n if (line.length > maxLineWidth) {\n return line.slice(0, maxLineWidth - 1) + \"…\";\n }\n return line;\n }).join(\"\\n\");\n\n // Highlight with shiki\n const highlighted = highlightLang\n ? highlightCode(truncatedCode, highlightLang)\n : truncatedCode;\n\n const hLines = highlighted.split(\"\\n\");\n\n if (isCommandOutput) {\n // Command output: no line numbers, 4-space indent\n const body = hLines.map(l => \" \" + l).join(\"\\n\");\n return \"\\n\" + header + \"\\n\" + body + \"\\n\";\n } else {\n // Code with line numbers + gutter\n const numbered = hLines.map((l, i) => {\n const num = p.tertiary(String(i + 1).padStart(gutterW));\n return \" \" + num + p.separator(\" │ \") + l;\n }).join(\"\\n\");\n return \"\\n\" + header + \"\\n\" + numbered + \"\\n\";\n }\n }\n },\n table(this: unknown, token: unknown) {\n return renderTable(token);\n },\n },\n });\n\n return md;\n}\n\nlet md = buildMarkedInstance();\n\n// ============================================================================\n// Diff renderer — background colors + word-level diff (Claude Code parity)\n// ============================================================================\n\nfunction buildDiffStyles() {\n return {\n diffAddedBg: chalk.bgHex(colors.diffAddedBg).white,\n diffRemovedBg: chalk.bgHex(colors.diffRemovedBg).white,\n diffWordAdded: chalk.bgHex(colors.diffWordAdded).whiteBright.bold,\n diffWordRemoved: chalk.bgHex(colors.diffWordRemoved).whiteBright.bold,\n };\n}\n\nlet d = buildDiffStyles();\n\n/** Compute word-level diff between two lines using the `diff` library. */\nfunction wordDiff(oldLine: string, newLine: string): { old: {text: string; changed: boolean}[]; new: {text: string; changed: boolean}[] } {\n const changes = diffWords(oldLine, newLine);\n const oldSegs: {text: string; changed: boolean}[] = [];\n const newSegs: {text: string; changed: boolean}[] = [];\n\n for (const change of changes) {\n if (change.added) {\n newSegs.push({ text: change.value, changed: true });\n } else if (change.removed) {\n oldSegs.push({ text: change.value, changed: true });\n } else {\n oldSegs.push({ text: change.value, changed: false });\n newSegs.push({ text: change.value, changed: false });\n }\n }\n\n // If >60% of either line changed, fall back to full-line highlight\n const oldChanged = oldSegs.filter(s => s.changed).reduce((n, s) => n + s.text.length, 0);\n const newChanged = newSegs.filter(s => s.changed).reduce((n, s) => n + s.text.length, 0);\n if ((oldLine.length > 0 && oldChanged / oldLine.length > 0.6) ||\n (newLine.length > 0 && newChanged / newLine.length > 0.6)) {\n return { old: [{text: oldLine, changed: true}], new: [{text: newLine, changed: true}] };\n }\n\n return { old: oldSegs, new: newSegs };\n}\n\n/** Render segments with word-level highlighting */\nfunction renderSegments(segs: {text: string; changed: boolean}[], wordStyle: (s: string) => string, lineStyle: (s: string) => string): string {\n return segs.map(s => s.changed ? wordStyle(s.text) : lineStyle(s.text)).join(\"\");\n}\n\nfunction renderDiff(code: string): string {\n const lines = code.split(\"\\n\");\n const tw = toolContentWidth();\n\n // Parse into segments from unified diff format\n type Seg = { type: \"remove\" | \"add\" | \"context\"; content: string; lineNo: number };\n const segments: Seg[] = [];\n let oldLineNo = 1, newLineNo = 1;\n let seenDiff = false;\n\n for (const line of lines) {\n // Skip file headers (--- a/file, +++ b/file)\n if (line.startsWith(\"---\") || line.startsWith(\"+++\")) continue;\n\n // Hunk header — extract line numbers\n const hunkMatch = line.match(/^@@\\s*-(\\d+)(?:,\\d+)?\\s*\\+(\\d+)(?:,\\d+)?\\s*@@/);\n if (hunkMatch) {\n oldLineNo = parseInt(hunkMatch[1]);\n newLineNo = parseInt(hunkMatch[2]);\n seenDiff = true;\n continue;\n }\n\n // Skip non-diff header lines (e.g., \"File edited:\", \"Applied N edits\")\n if (!seenDiff && !line.startsWith(\"-\") && !line.startsWith(\"+\") && !line.startsWith(\" \")) {\n continue;\n }\n seenDiff = true;\n\n if (line.startsWith(\"-\")) {\n segments.push({ type: \"remove\", content: line.slice(1), lineNo: oldLineNo });\n oldLineNo++;\n } else if (line.startsWith(\"+\")) {\n segments.push({ type: \"add\", content: line.slice(1), lineNo: newLineNo });\n newLineNo++;\n } else {\n const content = line.startsWith(\" \") ? line.slice(1) : line;\n segments.push({ type: \"context\", content, lineNo: newLineNo });\n oldLineNo++;\n newLineNo++;\n }\n }\n\n if (segments.length === 0) return code; // fallback\n\n // Gutter width from max line number\n const maxLineNo = segments.reduce((max, s) => Math.max(max, s.lineNo), 0);\n const gutterW = Math.max(3, String(maxLineNo).length);\n\n const out: string[] = [];\n let i = 0;\n\n while (i < segments.length) {\n const seg = segments[i];\n\n if (seg.type === \"remove\") {\n // Collect consecutive removes\n const removes: Seg[] = [];\n while (i < segments.length && segments[i].type === \"remove\") {\n removes.push(segments[i]);\n i++;\n }\n // Collect consecutive adds\n const adds: Seg[] = [];\n while (i < segments.length && segments[i].type === \"add\") {\n adds.push(segments[i]);\n i++;\n }\n\n // Pair for word-level diff\n const pairCount = Math.min(removes.length, adds.length);\n\n for (let j = 0; j < removes.length; j++) {\n const r = removes[j];\n const rPrefix = `${String(r.lineNo).padStart(gutterW)} - `;\n\n if (j < pairCount) {\n const a = adds[j];\n const aPrefix = `${String(a.lineNo).padStart(gutterW)} + `;\n const wd = wordDiff(r.content, a.content);\n\n // Removed line with word highlights\n const rPad = Math.max(0, tw - rPrefix.length - r.content.length);\n out.push(d.diffRemovedBg(rPrefix) + renderSegments(wd.old, d.diffWordRemoved, d.diffRemovedBg) + d.diffRemovedBg(\" \".repeat(rPad)));\n\n // Added line with word highlights\n const aPad = Math.max(0, tw - aPrefix.length - a.content.length);\n out.push(d.diffAddedBg(aPrefix) + renderSegments(wd.new, d.diffWordAdded, d.diffAddedBg) + d.diffAddedBg(\" \".repeat(aPad)));\n } else {\n // Unpaired remove\n const raw = rPrefix + r.content;\n const pad = Math.max(0, tw - raw.length);\n out.push(d.diffRemovedBg(raw + \" \".repeat(pad)));\n }\n }\n\n // Unpaired adds\n for (let j = pairCount; j < adds.length; j++) {\n const a = adds[j];\n const prefix = `${String(a.lineNo).padStart(gutterW)} + `;\n const raw = prefix + a.content;\n const pad = Math.max(0, tw - raw.length);\n out.push(d.diffAddedBg(raw + \" \".repeat(pad)));\n }\n continue;\n }\n\n if (seg.type === \"add\") {\n // Standalone add (no preceding remove)\n const prefix = `${String(seg.lineNo).padStart(gutterW)} + `;\n const raw = prefix + seg.content;\n const pad = Math.max(0, tw - raw.length);\n out.push(d.diffAddedBg(raw + \" \".repeat(pad)));\n i++;\n continue;\n }\n\n // Context line — dim line number, plain content, no background\n const prefix = p.tertiary(`${String(seg.lineNo).padStart(gutterW)} `);\n out.push(prefix + seg.content);\n i++;\n }\n\n return out.join(\"\\n\") + \"\\n\";\n}\n\n// ============================================================================\n// Bar chart renderer — ```chart code blocks\n// ============================================================================\n\nfunction buildBarGradient() {\n return [\n chalk.hex(colors.purple),\n chalk.hex(colors.indigo),\n chalk.hex(colors.brand),\n chalk.hex(colors.info),\n chalk.hex(colors.teal),\n chalk.hex(colors.success),\n chalk.hex(colors.warning),\n chalk.hex(colors.pink),\n ];\n}\n\nlet barGradient = buildBarGradient();\n\ninterface ChartEntry {\n label: string;\n value: number;\n raw: string;\n}\n\nfunction renderBarChart(code: string): string {\n const lines = code.trim().split(\"\\n\").filter(l => l.trim());\n\n // Optional title — first line without \"label: number\" pattern\n let title = \"\";\n let dataLines = lines;\n if (lines.length > 1 && !/:\\s*[$\\-+]?[\\d,]+/.test(lines[0])) {\n title = lines[0].trim();\n dataLines = lines.slice(1);\n }\n\n // Parse \"Label: $1,234.56\" or \"Label: 42%\" or \"Label: 1000\"\n const entries: ChartEntry[] = [];\n for (const line of dataLines) {\n const m = line.match(/^(.+?):\\s*([+\\-]?\\$?[\\d,]+\\.?\\d*%?)\\s*$/);\n if (!m) continue;\n const label = m[1].trim();\n const raw = m[2].trim();\n const value = Math.abs(parseFloat(raw.replace(/[$,%]/g, \"\")));\n if (!isNaN(value)) entries.push({ label, value, raw });\n }\n\n if (entries.length === 0) return code;\n\n const maxVal = Math.max(...entries.map(e => e.value));\n const maxRaw = Math.max(...entries.map(e => e.raw.length));\n const cw = contentWidth();\n\n // Responsive label width — truncate labels to fit\n const idealLabelW = Math.max(...entries.map(e => e.label.length));\n // Fixed overhead: indent(2) + gap(2) + gap(2) + value(maxRaw) + safety(2)\n const fixedOverhead = 2 + 2 + 2 + maxRaw + 2;\n const spaceForLabelAndBar = cw - fixedOverhead;\n\n // Allocate: label gets up to half, bar gets the rest (min 4)\n const maxLabelW = Math.min(idealLabelW, Math.max(6, Math.floor(spaceForLabelAndBar * 0.4)));\n const barWidth = Math.max(4, spaceForLabelAndBar - maxLabelW);\n\n // If even 4-char bars don't fit, fall back to compact list (no bars)\n const compact = spaceForLabelAndBar < 12;\n\n const out: string[] = [];\n\n if (title) {\n const displayTitle = title.length > cw - 4 ? title.slice(0, cw - 5) + \"…\" : title;\n out.push(` ${p.systemBlue.bold(displayTitle)}`);\n out.push(\"\");\n }\n\n function colorVal(raw: string): string {\n return raw.includes(\"$\") ? p.systemGreen(raw)\n : raw.includes(\"%\") ? p.systemCyan(raw)\n : p.systemMint(raw);\n }\n\n if (compact) {\n // Compact mode: just \"label value\" with color dot\n for (let i = 0; i < entries.length; i++) {\n const e = entries[i];\n const color = barGradient[i % barGradient.length];\n const labelStr = e.label.length > cw - maxRaw - 8\n ? e.label.slice(0, cw - maxRaw - 9) + \"…\"\n : e.label;\n out.push(` ${color(\"●\")} ${p.secondary(labelStr)} ${colorVal(e.raw)}`);\n }\n } else {\n for (let i = 0; i < entries.length; i++) {\n const e = entries[i];\n const ratio = maxVal > 0 ? e.value / maxVal : 0;\n const filled = Math.round(ratio * barWidth);\n const color = barGradient[i % barGradient.length];\n\n const labelStr = e.label.length > maxLabelW\n ? e.label.slice(0, maxLabelW - 1) + \"…\"\n : e.label;\n const label = p.secondary(labelStr.padStart(maxLabelW));\n const bar = color(\"█\".repeat(filled)) + chalk.hex(\"#2C2C2E\")(\"░\".repeat(barWidth - filled));\n const val = colorVal(e.raw.padStart(maxRaw));\n\n out.push(` ${label} ${bar} ${val}`);\n }\n }\n\n return \"\\n\" + out.join(\"\\n\") + \"\\n\";\n}\n\n// ============================================================================\n// Table renderer — polished TUI tables with theme-aware styling\n// ============================================================================\n\n// Row tone detection for background tinting\ntype RowTone = \"positive\" | \"negative\" | \"neutral\";\n\nfunction getRowTone(cells: string[]): RowTone {\n for (const cell of cells) {\n const t = cell.trim();\n if (/^-\\$[\\d,]+/.test(t) || /^-\\d+\\.?\\d*%/.test(t)) return \"negative\";\n if (/^\\+\\d/.test(t) || /^\\+\\$/.test(t)) return \"positive\";\n if (/^`?[✕✗]/.test(t) || /cancelled|failed|rejected|error|out of stock|low stock/i.test(t)) return \"negative\";\n if (/^`?[✓●]/.test(t) || /completed|received|approved|active|success|paid|published/i.test(t)) return \"positive\";\n }\n return \"neutral\";\n}\n\n/** Detect if a column is numeric (for right-alignment) */\nfunction isNumericColumn(rows: string[][], colIndex: number): boolean {\n let numericCount = 0;\n let total = 0;\n for (const row of rows) {\n const val = (row[colIndex] || \"\").trim();\n if (!val) continue;\n total++;\n if (/^[+\\-]?\\$?[\\d,]+\\.?\\d*%?$/.test(val)) numericCount++;\n }\n return total > 0 && numericCount / total > 0.5;\n}\n\n/** Blend two hex colors by ratio (0 = colorA, 1 = colorB) */\nfunction blendHex(a: string, b: string, ratio: number): string {\n const parse = (h: string) => {\n const c = h.replace(\"#\", \"\");\n return [parseInt(c.slice(0, 2), 16), parseInt(c.slice(2, 4), 16), parseInt(c.slice(4, 6), 16)];\n };\n const [ar, ag, ab] = parse(a);\n const [br, bg, bb] = parse(b);\n const r = Math.round(ar + (br - ar) * ratio);\n const g = Math.round(ag + (bg - ag) * ratio);\n const bv = Math.round(ab + (bb - ab) * ratio);\n return `#${r.toString(16).padStart(2, \"0\")}${g.toString(16).padStart(2, \"0\")}${bv.toString(16).padStart(2, \"0\")}`;\n}\n\nfunction colorizeCell(val: string, isHeader: boolean): string {\n const trimmed = val.trim();\n if (!trimmed) return p.text(\"\");\n if (isHeader) return p.systemBlue.bold(trimmed);\n\n // Badge format: `✓ status` or `◆ status` or `○ status` or `✕ status`\n const badgeMatch = trimmed.match(/^`([✓●◆○✕◦])\\s+(.+)`$/);\n if (badgeMatch) {\n const [, icon, label] = badgeMatch;\n if (icon === \"✓\" || icon === \"●\") return p.systemGreen(`${icon} ${label}`);\n if (icon === \"◆\") return p.systemCyan(`${icon} ${label}`);\n if (icon === \"○\") return p.systemOrange(`${icon} ${label}`);\n if (icon === \"✕\") return p.systemRed(`${icon} ${label}`);\n return p.secondary(`${icon} ${label}`);\n }\n\n // Inline code (UUID, SKU, transfer number)\n if (trimmed.startsWith(\"`\") && trimmed.endsWith(\"`\")) {\n return p.systemPurple(trimmed.slice(1, -1));\n }\n\n // Bold text\n if (trimmed.startsWith(\"**\") && trimmed.endsWith(\"**\")) {\n return p.text.bold(trimmed.slice(2, -2));\n }\n\n // Negative values → red\n if (/^-\\$?[\\d,]+\\.?\\d*$/.test(trimmed) || /^-\\d+\\.?\\d*%$/.test(trimmed)) {\n return p.systemRed(trimmed);\n }\n // Positive financial → green\n if (/^\\+?\\$[\\d,]+\\.?\\d*$/.test(trimmed) || /^\\$[\\d,]+\\.?\\d*$/.test(trimmed)) {\n return p.systemGreen(trimmed);\n }\n // Percentages → cyan\n if (/^\\d+\\.?\\d*%$/.test(trimmed)) {\n return p.systemCyan(trimmed);\n }\n // Plain numbers → mint\n if (/^[\\d,]+\\.?\\d*$/.test(trimmed)) {\n return p.systemMint(trimmed);\n }\n // Status words\n if (/^(active|success|complete|approved|in stock|available)/i.test(trimmed)) {\n return p.systemGreen(trimmed);\n }\n if (/^(inactive|error|failed|cancelled|out of stock|low|overdue|expired)/i.test(trimmed)) {\n return p.systemRed(trimmed);\n }\n if (/^(pending|draft|processing)/i.test(trimmed)) {\n return p.systemOrange(trimmed);\n }\n\n return p.text(trimmed);\n}\n\nfunction renderTable(token: any): string {\n function getCellText(cell: any): string {\n if (!cell) return \"\";\n if (typeof cell === \"string\") return cell;\n if (cell.text !== undefined) return String(cell.text);\n if (cell.tokens) {\n return cell.tokens.map((t: any) => t.raw || t.text || \"\").join(\"\");\n }\n return String(cell);\n }\n\n const headers: string[] = (token.header || []).map((h: any) => getCellText(h));\n const rows: string[][] = (token.rows || []).map((row: any) =>\n row.map((cell: any) => getCellText(cell))\n );\n\n if (headers.length === 0) return \"\";\n\n const cw = contentWidth();\n const N = headers.length;\n\n // ── Check if box table can fit ──\n // Minimum box table width: indent(2) + borders(N+1) + N * (minCol + 2 padding)\n const MIN_COL = 3;\n const minBoxWidth = 2 + (N + 1) + N * (MIN_COL + 2);\n\n if (minBoxWidth > cw) {\n // ── Card layout — graceful fallback for narrow terminals ──\n return renderTableCards(headers, rows, cw);\n }\n\n // ── Box table layout ──\n const overhead = 2 + 1 + (N - 1) + 1 + (N * 2);\n const availableForContent = cw - overhead;\n const minCol = cw < 70 ? MIN_COL : cw < 90 ? 5 : 6;\n const maxPerCol = Math.max(minCol, Math.floor(availableForContent / N));\n\n // Detect numeric columns for right-alignment\n const numericCols = headers.map((_, i) => isNumericColumn(rows, i));\n\n // Size columns: fit content up to maxPerCol, respect minCol\n const colWidths = headers.map((h: string, i: number) => {\n const dataMax = rows.reduce((max: number, row: string[]) =>\n Math.max(max, (row[i] || \"\").length), 0);\n return Math.min(maxPerCol, Math.max(minCol, h.length, dataMax) + 2);\n });\n\n // Double-check total width won't overflow (defensive)\n const totalWidth = 2 + 1 + colWidths.reduce((s, w) => s + w + 2, 0) + (N - 1) + 1;\n if (totalWidth > cw) {\n // Shrink largest columns until we fit\n let excess = totalWidth - cw;\n while (excess > 0) {\n const maxIdx = colWidths.indexOf(Math.max(...colWidths));\n if (colWidths[maxIdx] <= MIN_COL) break; // can't shrink further\n colWidths[maxIdx]--;\n excess--;\n }\n }\n\n // ── Colors ──\n const borderColor = blendHex(colors.separator, colors.brand, 0.25);\n const border = chalk.hex(borderColor);\n const headerBg = chalk.bgHex(blendHex(colors.panel, colors.brand, 0.15));\n const evenRowBg = chalk.bgHex(blendHex(colors.panel, colors.text, 0.04));\n const oddRowBg = chalk.bgHex(colors.panel);\n const positiveBg = chalk.bgHex(blendHex(colors.panel, colors.success, 0.12));\n const negativeBg = chalk.bgHex(blendHex(colors.panel, colors.error, 0.12));\n\n const out: string[] = [];\n\n // Top border\n out.push(border(\" ╭\" + colWidths.map((w: number) => \"─\".repeat(w + 2)).join(\"┬\") + \"╮\"));\n\n // Header row\n const hdrCells = headers.map((h: string, i: number) => {\n const display = h.length > colWidths[i] ? h.slice(0, colWidths[i] - 1) + \"…\" : h;\n const padded = numericCols[i] ? display.padStart(colWidths[i]) : display.padEnd(colWidths[i]);\n return headerBg(\" \" + chalk.hex(colors.brand).bold(padded) + \" \");\n }).join(border(\"│\"));\n out.push(border(\" │\") + hdrCells + border(\"│\"));\n\n // Header divider\n out.push(border(\" ├\" + colWidths.map((w: number) => \"━\".repeat(w + 2)).join(\"┿\") + \"┤\"));\n\n // Data rows\n for (let rowIdx = 0; rowIdx < rows.length; rowIdx++) {\n const row = rows[rowIdx];\n const tone = getRowTone(row);\n const rowBg = tone === \"positive\" ? positiveBg\n : tone === \"negative\" ? negativeBg\n : rowIdx % 2 === 0 ? evenRowBg : oddRowBg;\n\n const cells = headers.map((_: string, i: number) => {\n const raw = row[i] || \"\";\n const display = raw.length > colWidths[i] ? raw.slice(0, colWidths[i] - 1) + \"…\" : raw;\n const colored = colorizeCell(display, false);\n const extraPad = Math.max(0, colWidths[i] - display.length);\n if (numericCols[i]) {\n return rowBg(\" \".repeat(extraPad) + \" \" + colored + \" \");\n }\n return rowBg(\" \" + colored + \" \".repeat(extraPad) + \" \");\n }).join(border(\"│\"));\n out.push(border(\" │\") + cells + border(\"│\"));\n }\n\n // Bottom border\n out.push(border(\" ╰\" + colWidths.map((w: number) => \"─\".repeat(w + 2)).join(\"┴\") + \"╯\"));\n\n return \"\\n\" + out.join(\"\\n\") + \"\\n\";\n}\n\n/** Card layout fallback — renders each row as a key: value block. Never overflows. */\nfunction renderTableCards(headers: string[], rows: string[][], cw: number): string {\n const border = chalk.hex(blendHex(colors.separator, colors.brand, 0.25));\n const out: string[] = [];\n const innerW = Math.max(8, cw - 6); // indent(2) + border(2) + padding(2)\n const divider = border(\" \" + \"─\".repeat(innerW + 2));\n\n // Find longest header for label alignment\n const maxHdrLen = Math.min(\n Math.max(...headers.map(h => h.length)),\n Math.floor(innerW * 0.4),\n );\n\n out.push(divider);\n\n for (let rowIdx = 0; rowIdx < rows.length; rowIdx++) {\n const row = rows[rowIdx];\n if (rowIdx > 0) out.push(divider);\n\n for (let i = 0; i < headers.length; i++) {\n const hdr = headers[i].length > maxHdrLen\n ? headers[i].slice(0, maxHdrLen - 1) + \"…\"\n : headers[i];\n const val = row[i] || \"\";\n const maxValLen = innerW - maxHdrLen - 3; // \" label value\"\n const displayVal = val.length > maxValLen\n ? val.slice(0, maxValLen - 1) + \"…\"\n : val;\n\n const labelStr = p.tertiary(hdr.padEnd(maxHdrLen));\n const valStr = colorizeCell(displayVal, false);\n out.push(` ${labelStr} ${valStr}`);\n }\n }\n\n out.push(divider);\n return \"\\n\" + out.join(\"\\n\") + \"\\n\";\n}\n\n// ============================================================================\n// Rebuild — called on theme switch to refresh all chalk instances\n// ============================================================================\n\nexport function rebuildMarkdownRenderer(): void {\n p = buildPalette();\n d = buildDiffStyles();\n barGradient = buildBarGradient();\n md = buildMarkedInstance();\n}\n\n// Register rebuild callback with theme manager\nsetRebuildCallback(rebuildMarkdownRenderer);\n\n// ============================================================================\n// Streaming fence closure — state-tracking approach\n// ============================================================================\n\n/** Extract text outside fenced code blocks */\nfunction getNonFencedText(input: string): string {\n const lines = input.split(\"\\n\");\n const parts: string[] = [];\n let inFence = false;\n for (const line of lines) {\n if (line.trimStart().startsWith(\"```\")) {\n inFence = !inFence;\n continue;\n }\n if (!inFence) parts.push(line);\n }\n return parts.join(\"\\n\");\n}\n\n/** Strip complete inline code spans from text */\nfunction getNonCodeText(t: string): string {\n return t.replace(/``[^`]*``/g, \"\").replace(/`[^`\\n]*`/g, \"\");\n}\n\n/**\n * Close incomplete markdown fences for safe streaming rendering.\n * State-tracking approach: handles nested fences, escaped markers, double-backtick spans.\n */\nexport function closeIncompleteFences(input: string): string {\n let result = input;\n\n // 1. Code fences — walk lines, track open/close state\n let inFence = false;\n for (const line of result.split(\"\\n\")) {\n const trimmed = line.trimStart();\n if (trimmed.startsWith(\"```\")) {\n inFence = !inFence;\n }\n }\n if (inFence) {\n result += \"\\n```\";\n }\n\n // 2. For inline markers, only examine text OUTSIDE fenced code blocks\n const outside = getNonFencedText(result);\n\n // 3. Inline backticks — remove escaped, remove complete spans, count remainder\n let forBacktick = outside.replace(/\\\\`/g, \"\");\n forBacktick = forBacktick.replace(/``[^`]*``/g, \"\"); // double-backtick spans\n forBacktick = forBacktick.replace(/`[^`\\n]*`/g, \"\"); // single-backtick spans\n const unmatched = (forBacktick.match(/`/g) || []).length;\n if (unmatched % 2 !== 0) {\n result += \"`\";\n }\n\n // 4. Bold — count ** in non-code text\n const forBold = getNonCodeText(outside);\n const boldCount = (forBold.match(/\\*\\*/g) || []).length;\n if (boldCount % 2 !== 0) {\n result += \"**\";\n }\n\n // 5. Italic — count standalone * (not part of **) with escape awareness\n const forItalic = forBold.replace(/\\*\\*/g, \"\");\n const italicCount = (forItalic.match(/(?<!\\\\)\\*/g) || []).length;\n if (italicCount % 2 !== 0) {\n result += \"*\";\n }\n\n return result;\n}\n\n/**\n * Render markdown to ANSI-styled terminal string.\n * Optionally applies streaming-safe fence closing.\n */\nexport function renderMarkdown(input: string, streaming = false): string {\n const safe = streaming ? closeIncompleteFences(input) : input;\n const result = md.parse(safe) as string;\n return result.replace(/\\n+$/, \"\");\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useLatestRef — keep a ref always in sync with the latest value
|
|
3
|
+
*
|
|
4
|
+
* Replaces the pattern:
|
|
5
|
+
* const ref = useRef(value);
|
|
6
|
+
* useEffect(() => { ref.current = value; }, [value]);
|
|
7
|
+
*
|
|
8
|
+
* Uses useInsertionEffect to update synchronously before layout/paint,
|
|
9
|
+
* avoiding stale-ref bugs in event handlers.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useLatestRef<T>(value: T): React.MutableRefObject<T>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { c as _c } from "react/compiler-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* useLatestRef — keep a ref always in sync with the latest value
|
|
4
|
+
*
|
|
5
|
+
* Replaces the pattern:
|
|
6
|
+
* const ref = useRef(value);
|
|
7
|
+
* useEffect(() => { ref.current = value; }, [value]);
|
|
8
|
+
*
|
|
9
|
+
* Uses useInsertionEffect to update synchronously before layout/paint,
|
|
10
|
+
* avoiding stale-ref bugs in event handlers.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { useRef, useInsertionEffect } from "react";
|
|
14
|
+
export function useLatestRef(value) {
|
|
15
|
+
const $ = _c(3);
|
|
16
|
+
const ref = useRef(value);
|
|
17
|
+
let t0;
|
|
18
|
+
let t1;
|
|
19
|
+
if ($[0] !== value) {
|
|
20
|
+
t0 = () => {
|
|
21
|
+
ref.current = value;
|
|
22
|
+
};
|
|
23
|
+
t1 = [value];
|
|
24
|
+
$[0] = value;
|
|
25
|
+
$[1] = t0;
|
|
26
|
+
$[2] = t1;
|
|
27
|
+
} else {
|
|
28
|
+
t0 = $[1];
|
|
29
|
+
t1 = $[2];
|
|
30
|
+
}
|
|
31
|
+
useInsertionEffect(t0, t1);
|
|
32
|
+
return ref;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=useLatestRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLatestRef.js","names":["useRef","useInsertionEffect","useLatestRef","value","$","_c","ref","t0","t1","current"],"sources":["../../../src/cli/shared/useLatestRef.ts"],"sourcesContent":["/**\n * useLatestRef — keep a ref always in sync with the latest value\n *\n * Replaces the pattern:\n * const ref = useRef(value);\n * useEffect(() => { ref.current = value; }, [value]);\n *\n * Uses useInsertionEffect to update synchronously before layout/paint,\n * avoiding stale-ref bugs in event handlers.\n */\n\nimport { useRef, useInsertionEffect } from \"react\";\n\nexport function useLatestRef<T>(value: T): React.MutableRefObject<T> {\n const ref = useRef(value);\n useInsertionEffect(() => { ref.current = value; }, [value]);\n return ref;\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,EAAEC,kBAAkB,QAAQ,OAAO;AAElD,OAAO,SAAAC,aAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL,MAAAC,GAAA,GAAYN,MAAM,CAACG,KAAK,CAAC;EAAC,IAAAI,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAD,KAAA;IACPI,EAAA,GAAAA,CAAA;MAAQD,GAAG,CAAAG,OAAA,GAAWN,KAAH;IAAA,CAAW;IAAEK,EAAA,IAACL,KAAK,CAAC;IAAAC,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EAA1DH,kBAAkB,CAACM,EAA8B,EAAEC,EAAO,CAAC;EAAA,OACpDF,GAAG;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useSyncState — consolidated useState + useRef for stdin-accessible state
|
|
3
|
+
*
|
|
4
|
+
* Replaces the common pattern of:
|
|
5
|
+
* const [val, setVal] = useState(init);
|
|
6
|
+
* const valRef = useRef(init);
|
|
7
|
+
* function setValSync(v) { valRef.current = v; setVal(v); }
|
|
8
|
+
*
|
|
9
|
+
* Returns [state, ref, setter] — the setter keeps both in sync.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useSyncState<T>(initial: T): [T, React.MutableRefObject<T>, (val: T) => void];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { c as _c } from "react/compiler-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* useSyncState — consolidated useState + useRef for stdin-accessible state
|
|
4
|
+
*
|
|
5
|
+
* Replaces the common pattern of:
|
|
6
|
+
* const [val, setVal] = useState(init);
|
|
7
|
+
* const valRef = useRef(init);
|
|
8
|
+
* function setValSync(v) { valRef.current = v; setVal(v); }
|
|
9
|
+
*
|
|
10
|
+
* Returns [state, ref, setter] — the setter keeps both in sync.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { useState, useRef, useCallback } from "react";
|
|
14
|
+
export function useSyncState(initial) {
|
|
15
|
+
const $ = _c(3);
|
|
16
|
+
const [state, setState] = useState(initial);
|
|
17
|
+
const ref = useRef(initial);
|
|
18
|
+
let t0;
|
|
19
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
20
|
+
t0 = val => {
|
|
21
|
+
ref.current = val;
|
|
22
|
+
setState(val);
|
|
23
|
+
};
|
|
24
|
+
$[0] = t0;
|
|
25
|
+
} else {
|
|
26
|
+
t0 = $[0];
|
|
27
|
+
}
|
|
28
|
+
const set = t0;
|
|
29
|
+
let t1;
|
|
30
|
+
if ($[1] !== state) {
|
|
31
|
+
t1 = [state, ref, set];
|
|
32
|
+
$[1] = state;
|
|
33
|
+
$[2] = t1;
|
|
34
|
+
} else {
|
|
35
|
+
t1 = $[2];
|
|
36
|
+
}
|
|
37
|
+
return t1;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=useSyncState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSyncState.js","names":["useState","useRef","useCallback","useSyncState","initial","$","_c","state","setState","ref","t0","Symbol","for","val","current","set","t1"],"sources":["../../../src/cli/shared/useSyncState.ts"],"sourcesContent":["/**\n * useSyncState — consolidated useState + useRef for stdin-accessible state\n *\n * Replaces the common pattern of:\n * const [val, setVal] = useState(init);\n * const valRef = useRef(init);\n * function setValSync(v) { valRef.current = v; setVal(v); }\n *\n * Returns [state, ref, setter] — the setter keeps both in sync.\n */\n\nimport { useState, useRef, useCallback } from \"react\";\n\nexport function useSyncState<T>(initial: T): [T, React.MutableRefObject<T>, (val: T) => void] {\n const [state, setState] = useState(initial);\n const ref = useRef(initial);\n const set = useCallback((val: T) => {\n ref.current = val;\n setState(val);\n }, []);\n return [state, ref, set];\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,WAAW,QAAQ,OAAO;AAErD,OAAO,SAAAC,aAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL,OAAAC,KAAA,EAAAC,QAAA,IAA0BR,QAAQ,CAACI,OAAO,CAAC;EAC3C,MAAAK,GAAA,GAAYR,MAAM,CAACG,OAAO,CAAC;EAAC,IAAAM,EAAA;EAAA,IAAAL,CAAA,QAAAM,MAAA,CAAAC,GAAA;IACJF,EAAA,GAAAG,GAAA;MACtBJ,GAAG,CAAAK,OAAA,GAAWD,GAAH;MACXL,QAAQ,CAACK,GAAG,CAAC;IAAA,CACd;IAAAR,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAHD,MAAAU,GAAA,GAAYL,EAGN;EAAC,IAAAM,EAAA;EAAA,IAAAX,CAAA,QAAAE,KAAA;IACAS,EAAA,IAACT,KAAK,EAAEE,GAAG,EAAEM,GAAG,CAAC;IAAAV,CAAA,MAAAE,KAAA;IAAAF,CAAA,MAAAW,EAAA;EAAA;IAAAA,EAAA,GAAAX,CAAA;EAAA;EAAA,OAAjBW,EAAiB;AAAA","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ import SelectInput from "ink-select-input";
|
|
|
12
12
|
import { SpinnerSlot } from "../shared/SpinnerSlot.js";
|
|
13
13
|
import { getStoresForUser, getValidToken, selectStore } from "../services/auth-service.js";
|
|
14
14
|
import { loadConfig } from "../services/config-store.js";
|
|
15
|
-
import { resetServerToolClient } from "../services/server-tools.js";
|
|
15
|
+
import { resetServerToolClient, setActiveStoreId } from "../services/server-tools.js";
|
|
16
16
|
import { WhaleBanner } from "../shared/WhaleBanner.js";
|
|
17
17
|
import { colors, symbols, boxLine } from "../shared/Theme.js";
|
|
18
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -55,6 +55,7 @@ export function StoreApp() {
|
|
|
55
55
|
if (userStores.length === 1) {
|
|
56
56
|
if (config.store_id !== userStores[0].id) {
|
|
57
57
|
selectStore(userStores[0].id, userStores[0].name);
|
|
58
|
+
setActiveStoreId(userStores[0].id);
|
|
58
59
|
resetServerToolClient();
|
|
59
60
|
setSelectedName(userStores[0].name);
|
|
60
61
|
setStep("done");
|
|
@@ -103,6 +104,7 @@ export function StoreApp() {
|
|
|
103
104
|
return;
|
|
104
105
|
}
|
|
105
106
|
selectStore(store.id, store.name);
|
|
107
|
+
setActiveStoreId(store.id);
|
|
106
108
|
resetServerToolClient();
|
|
107
109
|
setSelectedName(store.name);
|
|
108
110
|
setStep("done");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreApp.js","names":["React","useState","useEffect","Box","Text","useApp","SelectInput","SpinnerSlot","getStoresForUser","getValidToken","selectStore","loadConfig","resetServerToolClient","WhaleBanner","colors","symbols","boxLine","jsx","_jsx","jsxs","_jsxs","StoreApp","$","_c","exit","step","setStep","t0","Symbol","for","stores","setStores","currentStoreId","setCurrentStoreId","selectedName","setSelectedName","error","setError","t1","t2","config","store_id","token","userStores","user_id","length","id","name","t3","t4","timer","setTimeout","clearTimeout","t5","item","store","find","s","value","handleSelect","t6","t7","subtitle","compact","height","t8","t9","color","border","children","t10","brand","secondary","t11","flexDirection","items","map","s_0","label","slug","indicatorComponent","_temp","itemComponent","_temp2","t12","success","check","text","bold","dim","t13","cross","t14","padding","isSelected","isSelected_0","isCurrent","endsWith","displayLabel","replace","dot","quaternary","arrowRight"],"sources":["../../../src/cli/stores/StoreApp.tsx"],"sourcesContent":["/**\n * StoreApp — store selector\n *\n * Lists stores the user has access to. Select to switch.\n * Resets server tool cache so the new store takes effect immediately.\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { Box, Text, useApp } from \"ink\";\nimport SelectInput from \"ink-select-input\";\nimport { SpinnerSlot } from \"../shared/SpinnerSlot.js\";\nimport {\n getStoresForUser,\n getValidToken,\n selectStore,\n type StoreInfo,\n} from \"../services/auth-service.js\";\nimport { loadConfig } from \"../services/config-store.js\";\nimport { resetServerToolClient } from \"../services/server-tools.js\";\nimport { WhaleBanner } from \"../shared/WhaleBanner.js\";\nimport { colors, symbols, boxLine } from \"../shared/Theme.js\";\n\ntype Step = \"loading\" | \"select\" | \"done\" | \"error\";\n\nexport function StoreApp() {\n const { exit } = useApp();\n const [step, setStep] = useState<Step>(\"loading\");\n const [stores, setStores] = useState<StoreInfo[]>([]);\n const [currentStoreId, setCurrentStoreId] = useState(\"\");\n const [selectedName, setSelectedName] = useState(\"\");\n const [error, setError] = useState(\"\");\n\n useEffect(() => {\n (async () => {\n const config = loadConfig();\n setCurrentStoreId(config.store_id || \"\");\n\n const token = await getValidToken();\n if (!token) {\n setError(\"Not logged in. Run: whale login\");\n setStep(\"error\");\n return;\n }\n\n const userStores = await getStoresForUser(token, config.user_id || \"\");\n if (userStores.length === 0) {\n setError(\"No stores found for this account.\");\n setStep(\"error\");\n return;\n }\n\n if (userStores.length === 1) {\n // Only one store — auto-select if not already set\n if (config.store_id !== userStores[0].id) {\n selectStore(userStores[0].id, userStores[0].name);\n resetServerToolClient();\n setSelectedName(userStores[0].name);\n setStep(\"done\");\n } else {\n setSelectedName(userStores[0].name);\n setStep(\"done\");\n }\n return;\n }\n\n setStores(userStores);\n setStep(\"select\");\n })();\n }, []);\n\n useEffect(() => {\n if (step === \"done\" || step === \"error\") {\n const timer = setTimeout(() => exit(), 500);\n return () => clearTimeout(timer);\n }\n }, [step, exit]);\n\n const handleSelect = (item: { label: string; value: string }) => {\n const store = stores.find((s) => s.id === item.value);\n if (!store) return;\n\n selectStore(store.id, store.name);\n resetServerToolClient();\n setSelectedName(store.name);\n setStep(\"done\");\n };\n\n return (\n <Box flexDirection=\"column\" padding={1}>\n <WhaleBanner subtitle=\"select store\" compact />\n <Box height={1} />\n <Text color={colors.border}>{boxLine(44)}</Text>\n <Box height={1} />\n\n {step === \"loading\" && (\n <Box>\n <Text color={colors.brand}><SpinnerSlot /></Text>\n <Text color={colors.secondary}> loading stores…</Text>\n </Box>\n )}\n\n {step === \"select\" && (\n <Box flexDirection=\"column\">\n <Text color={colors.secondary}> Select a store:</Text>\n <Box height={1} />\n <SelectInput\n items={stores.map((s) => ({\n label: s.name + (s.slug ? ` (${s.slug})` : \"\") + (s.id === currentStoreId ? \" current\" : \"\"),\n value: s.id,\n }))}\n onSelect={handleSelect}\n indicatorComponent={({ isSelected }: { isSelected?: boolean }) => (\n <Text color={isSelected ? colors.brand : colors.quaternary}>\n {isSelected ? symbols.arrowRight : \" \"}{\" \"}\n </Text>\n )}\n itemComponent={({ isSelected, label }: { isSelected?: boolean; label: string }) => {\n const isCurrent = label.endsWith(\" current\");\n const displayLabel = isCurrent ? label.replace(\" current\", \"\") : label;\n return (\n <Box>\n <Text color={isSelected ? colors.brand : colors.text} bold={isSelected}>\n {displayLabel}\n </Text>\n {isCurrent && <Text color={colors.success}> {symbols.dot} current</Text>}\n </Box>\n );\n }}\n />\n </Box>\n )}\n\n {step === \"done\" && (\n <Box flexDirection=\"column\">\n <Box>\n <Text color={colors.success}>{symbols.check} </Text>\n <Text color={colors.text} bold>Store selected</Text>\n </Box>\n <Box height={1} />\n <Box>\n <Text color={colors.dim}>{\" \"}store </Text>\n <Text color={colors.text}>{selectedName}</Text>\n </Box>\n <Box height={1} />\n <Text color={colors.secondary}> Server tools will use this store.</Text>\n </Box>\n )}\n\n {step === \"error\" && (\n <Box flexDirection=\"column\">\n <Box>\n <Text color={colors.error}>{symbols.cross} </Text>\n <Text color={colors.error}>{error}</Text>\n </Box>\n </Box>\n )}\n </Box>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"StoreApp.js","names":["React","useState","useEffect","Box","Text","useApp","SelectInput","SpinnerSlot","getStoresForUser","getValidToken","selectStore","loadConfig","resetServerToolClient","setActiveStoreId","WhaleBanner","colors","symbols","boxLine","jsx","_jsx","jsxs","_jsxs","StoreApp","$","_c","exit","step","setStep","t0","Symbol","for","stores","setStores","currentStoreId","setCurrentStoreId","selectedName","setSelectedName","error","setError","t1","t2","config","store_id","token","userStores","user_id","length","id","name","t3","t4","timer","setTimeout","clearTimeout","t5","item","store","find","s","value","handleSelect","t6","t7","subtitle","compact","height","t8","t9","color","border","children","t10","brand","secondary","t11","flexDirection","items","map","s_0","label","slug","indicatorComponent","_temp","itemComponent","_temp2","t12","success","check","text","bold","dim","t13","cross","t14","padding","isSelected","isSelected_0","isCurrent","endsWith","displayLabel","replace","dot","quaternary","arrowRight"],"sources":["../../../src/cli/stores/StoreApp.tsx"],"sourcesContent":["/**\n * StoreApp — store selector\n *\n * Lists stores the user has access to. Select to switch.\n * Resets server tool cache so the new store takes effect immediately.\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { Box, Text, useApp } from \"ink\";\nimport SelectInput from \"ink-select-input\";\nimport { SpinnerSlot } from \"../shared/SpinnerSlot.js\";\nimport {\n getStoresForUser,\n getValidToken,\n selectStore,\n type StoreInfo,\n} from \"../services/auth-service.js\";\nimport { loadConfig } from \"../services/config-store.js\";\nimport { resetServerToolClient, setActiveStoreId } from \"../services/server-tools.js\";\nimport { WhaleBanner } from \"../shared/WhaleBanner.js\";\nimport { colors, symbols, boxLine } from \"../shared/Theme.js\";\n\ntype Step = \"loading\" | \"select\" | \"done\" | \"error\";\n\nexport function StoreApp() {\n const { exit } = useApp();\n const [step, setStep] = useState<Step>(\"loading\");\n const [stores, setStores] = useState<StoreInfo[]>([]);\n const [currentStoreId, setCurrentStoreId] = useState(\"\");\n const [selectedName, setSelectedName] = useState(\"\");\n const [error, setError] = useState(\"\");\n\n useEffect(() => {\n (async () => {\n const config = loadConfig();\n setCurrentStoreId(config.store_id || \"\");\n\n const token = await getValidToken();\n if (!token) {\n setError(\"Not logged in. Run: whale login\");\n setStep(\"error\");\n return;\n }\n\n const userStores = await getStoresForUser(token, config.user_id || \"\");\n if (userStores.length === 0) {\n setError(\"No stores found for this account.\");\n setStep(\"error\");\n return;\n }\n\n if (userStores.length === 1) {\n // Only one store — auto-select if not already set\n if (config.store_id !== userStores[0].id) {\n selectStore(userStores[0].id, userStores[0].name);\n setActiveStoreId(userStores[0].id);\n resetServerToolClient();\n setSelectedName(userStores[0].name);\n setStep(\"done\");\n } else {\n setSelectedName(userStores[0].name);\n setStep(\"done\");\n }\n return;\n }\n\n setStores(userStores);\n setStep(\"select\");\n })();\n }, []);\n\n useEffect(() => {\n if (step === \"done\" || step === \"error\") {\n const timer = setTimeout(() => exit(), 500);\n return () => clearTimeout(timer);\n }\n }, [step, exit]);\n\n const handleSelect = (item: { label: string; value: string }) => {\n const store = stores.find((s) => s.id === item.value);\n if (!store) return;\n\n selectStore(store.id, store.name);\n setActiveStoreId(store.id);\n resetServerToolClient();\n setSelectedName(store.name);\n setStep(\"done\");\n };\n\n return (\n <Box flexDirection=\"column\" padding={1}>\n <WhaleBanner subtitle=\"select store\" compact />\n <Box height={1} />\n <Text color={colors.border}>{boxLine(44)}</Text>\n <Box height={1} />\n\n {step === \"loading\" && (\n <Box>\n <Text color={colors.brand}><SpinnerSlot /></Text>\n <Text color={colors.secondary}> loading stores…</Text>\n </Box>\n )}\n\n {step === \"select\" && (\n <Box flexDirection=\"column\">\n <Text color={colors.secondary}> Select a store:</Text>\n <Box height={1} />\n <SelectInput\n items={stores.map((s) => ({\n label: s.name + (s.slug ? ` (${s.slug})` : \"\") + (s.id === currentStoreId ? \" current\" : \"\"),\n value: s.id,\n }))}\n onSelect={handleSelect}\n indicatorComponent={({ isSelected }: { isSelected?: boolean }) => (\n <Text color={isSelected ? colors.brand : colors.quaternary}>\n {isSelected ? symbols.arrowRight : \" \"}{\" \"}\n </Text>\n )}\n itemComponent={({ isSelected, label }: { isSelected?: boolean; label: string }) => {\n const isCurrent = label.endsWith(\" current\");\n const displayLabel = isCurrent ? label.replace(\" current\", \"\") : label;\n return (\n <Box>\n <Text color={isSelected ? colors.brand : colors.text} bold={isSelected}>\n {displayLabel}\n </Text>\n {isCurrent && <Text color={colors.success}> {symbols.dot} current</Text>}\n </Box>\n );\n }}\n />\n </Box>\n )}\n\n {step === \"done\" && (\n <Box flexDirection=\"column\">\n <Box>\n <Text color={colors.success}>{symbols.check} </Text>\n <Text color={colors.text} bold>Store selected</Text>\n </Box>\n <Box height={1} />\n <Box>\n <Text color={colors.dim}>{\" \"}store </Text>\n <Text color={colors.text}>{selectedName}</Text>\n </Box>\n <Box height={1} />\n <Text color={colors.secondary}> Server tools will use this store.</Text>\n </Box>\n )}\n\n {step === \"error\" && (\n <Box flexDirection=\"column\">\n <Box>\n <Text color={colors.error}>{symbols.cross} </Text>\n <Text color={colors.error}>{error}</Text>\n </Box>\n </Box>\n )}\n </Box>\n );\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,SAASC,GAAG,EAAEC,IAAI,EAAEC,MAAM,QAAQ,KAAK;AACvC,OAAOC,WAAW,MAAM,kBAAkB;AAC1C,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SACEC,gBAAgB,EAChBC,aAAa,EACbC,WAAW,QAEN,6BAA6B;AACpC,SAASC,UAAU,QAAQ,6BAA6B;AACxD,SAASC,qBAAqB,EAAEC,gBAAgB,QAAQ,6BAA6B;AACrF,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,MAAM,EAAEC,OAAO,EAAEC,OAAO,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAI9D,OAAO,SAAAC,SAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL;IAAAC;EAAA,IAAiBpB,MAAM,CAAC,CAAC;EACzB,OAAAqB,IAAA,EAAAC,OAAA,IAAwB1B,QAAQ,CAAO,SAAS,CAAC;EAAC,IAAA2B,EAAA;EAAA,IAAAL,CAAA,QAAAM,MAAA,CAAAC,GAAA;IACAF,EAAA,KAAE;IAAAL,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAApD,OAAAQ,MAAA,EAAAC,SAAA,IAA4B/B,QAAQ,CAAc2B,EAAE,CAAC;EACrD,OAAAK,cAAA,EAAAC,iBAAA,IAA4CjC,QAAQ,CAAC,EAAE,CAAC;EACxD,OAAAkC,YAAA,EAAAC,eAAA,IAAwCnC,QAAQ,CAAC,EAAE,CAAC;EACpD,OAAAoC,KAAA,EAAAC,QAAA,IAA0BrC,QAAQ,CAAC,EAAE,CAAC;EAAC,IAAAsC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAjB,CAAA,QAAAM,MAAA,CAAAC,GAAA;IAE7BS,EAAA,GAAAA,CAAA;MACR,CAAC;QACC,MAAAE,MAAA,GAAe9B,UAAU,CAAC,CAAC;QAC3BuB,iBAAiB,CAACO,MAAM,CAAAC,QAAe,IAArB,EAAqB,CAAC;QAExC,MAAAC,KAAA,GAAc,MAAMlC,aAAa,CAAC,CAAC;QACnC,IAAI,CAACkC,KAAK;UACRL,QAAQ,CAAC,iCAAiC,CAAC;UAC3CX,OAAO,CAAC,OAAO,CAAC;UAAA;QAAA;QAIlB,MAAAiB,UAAA,GAAmB,MAAMpC,gBAAgB,CAACmC,KAAK,EAAEF,MAAM,CAAAI,OAAc,IAApB,EAAoB,CAAC;QACtE,IAAID,UAAU,CAAAE,MAAO,KAAK,CAAC;UACzBR,QAAQ,CAAC,mCAAmC,CAAC;UAC7CX,OAAO,CAAC,OAAO,CAAC;UAAA;QAAA;QAIlB,IAAIiB,UAAU,CAAAE,MAAO,KAAK,CAAC;UAEzB,IAAIL,MAAM,CAAAC,QAAS,KAAKE,UAAU,GAAG,CAAAG,EAAG;YACtCrC,WAAW,CAACkC,UAAU,GAAG,CAAAG,EAAG,EAAEH,UAAU,GAAG,CAAAI,IAAK,CAAC;YACjDnC,gBAAgB,CAAC+B,UAAU,GAAG,CAAAG,EAAG,CAAC;YAClCnC,qBAAqB,CAAC,CAAC;YACvBwB,eAAe,CAACQ,UAAU,GAAG,CAAAI,IAAK,CAAC;YACnCrB,OAAO,CAAC,MAAM,CAAC;UAAA;YAEfS,eAAe,CAACQ,UAAU,GAAG,CAAAI,IAAK,CAAC;YACnCrB,OAAO,CAAC,MAAM,CAAC;UAAA;UAChB;QAAA;QAIHK,SAAS,CAACY,UAAU,CAAC;QACrBjB,OAAO,CAAC,QAAQ,CAAC;MAAA,CAClB,EAAE,CAAC;IAAA,CACL;IAAEa,EAAA,KAAE;IAAAjB,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,MAAAiB,EAAA;EAAA;IAAAD,EAAA,GAAAhB,CAAA;IAAAiB,EAAA,GAAAjB,CAAA;EAAA;EArCLrB,SAAS,CAACqC,EAqCT,EAAEC,EAAE,CAAC;EAAA,IAAAS,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA3B,CAAA,QAAAE,IAAA,IAAAF,CAAA,QAAAG,IAAA;IAEIuB,EAAA,GAAAA,CAAA;MACR,IAAIvB,IAAI,KAAK,MAA0B,IAAhBA,IAAI,KAAK,OAAO;QACrC,MAAAyB,KAAA,GAAcC,UAAU,CAAC,MAAM3B,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OACrC,MAAM4B,YAAY,CAACF,KAAK,CAAC;MAAA;IACjC,CACF;IAAED,EAAA,IAACxB,IAAI,EAAED,IAAI,CAAC;IAAAF,CAAA,MAAAE,IAAA;IAAAF,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAA0B,EAAA;IAAA1B,CAAA,MAAA2B,EAAA;EAAA;IAAAD,EAAA,GAAA1B,CAAA;IAAA2B,EAAA,GAAA3B,CAAA;EAAA;EALfrB,SAAS,CAAC+C,EAKT,EAAEC,EAAY,CAAC;EAAA,IAAAI,EAAA;EAAA,IAAA/B,CAAA,QAAAQ,MAAA;IAEKuB,EAAA,GAAAC,IAAA;MACnB,MAAAC,KAAA,GAAczB,MAAM,CAAA0B,IAAK,CAACC,CAAA,IAAOA,CAAC,CAAAX,EAAG,KAAKQ,IAAI,CAAAI,KAAM,CAAC;MACrD,IAAI,CAACH,KAAK;QAAA;MAAA;MAEV9C,WAAW,CAAC8C,KAAK,CAAAT,EAAG,EAAES,KAAK,CAAAR,IAAK,CAAC;MACjCnC,gBAAgB,CAAC2C,KAAK,CAAAT,EAAG,CAAC;MAC1BnC,qBAAqB,CAAC,CAAC;MACvBwB,eAAe,CAACoB,KAAK,CAAAR,IAAK,CAAC;MAC3BrB,OAAO,CAAC,MAAM,CAAC;IAAA,CAChB;IAAAJ,CAAA,MAAAQ,MAAA;IAAAR,CAAA,MAAA+B,EAAA;EAAA;IAAAA,EAAA,GAAA/B,CAAA;EAAA;EATD,MAAAqC,YAAA,GAAqBN,EASpB;EAAC,IAAAO,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAvC,CAAA,QAAAM,MAAA,CAAAC,GAAA;IAIE+B,EAAA,gBAAA1C,IAAA,CAACL,WAAW;MAAUiD,QAAc,EAAd,cAAc;MAACC,OAAO,EAAP;IAAO,CAAE,CAAC;IAC/CF,EAAA,gBAAA3C,IAAA,CAAChB,GAAG;MAAS8D,MAAC,EAAD;IAAC,CAAG,CAAC;IAAA1C,CAAA,MAAAsC,EAAA;IAAAtC,CAAA,OAAAuC,EAAA;EAAA;IAAAD,EAAA,GAAAtC,CAAA;IAAAuC,EAAA,GAAAvC,CAAA;EAAA;EAAA,IAAA2C,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA5C,CAAA,SAAAM,MAAA,CAAAC,GAAA;IAClBoC,EAAA,gBAAA/C,IAAA,CAACf,IAAI;MAAQgE,KAAa,EAAbrD,MAAM,CAAAsD,MAAO;MAAAC,QAAA,EAAGrD,OAAO,CAAC,EAAE;IAAC,CAAO,CAAC;IAChDkD,EAAA,gBAAAhD,IAAA,CAAChB,GAAG;MAAS8D,MAAC,EAAD;IAAC,CAAG,CAAC;IAAA1C,CAAA,OAAA2C,EAAA;IAAA3C,CAAA,OAAA4C,EAAA;EAAA;IAAAD,EAAA,GAAA3C,CAAA;IAAA4C,EAAA,GAAA5C,CAAA;EAAA;EAAA,IAAAgD,GAAA;EAAA,IAAAhD,CAAA,SAAAG,IAAA;IAEjB6C,GAAA,GAAA7C,IAAI,KAAK,SAKT,iBALAL,KAAA,CACElB,GAAG;MAAAmE,QAAA,gBACFnD,IAAA,CAACf,IAAI;QAAQgE,KAAY,EAAZrD,MAAM,CAAAyD,KAAM;QAAAF,QAAA,eAAEnD,IAAA,CAACZ,WAAW,IAAE;MAAC,CAAM,CAAC,eACjDY,IAAA,CAACf,IAAI;QAAQgE,KAAgB,EAAhBrD,MAAM,CAAA0D,SAAU;QAAAH,QAAA,EAAE;MAAgB,CAAM,CAAC;IAAA,CAE1D,CAAC;IAAA/C,CAAA,OAAAG,IAAA;IAAAH,CAAA,OAAAgD,GAAA;EAAA;IAAAA,GAAA,GAAAhD,CAAA;EAAA;EAAA,IAAAmD,GAAA;EAAA,IAAAnD,CAAA,SAAAU,cAAA,IAAAV,CAAA,SAAAqC,YAAA,IAAArC,CAAA,SAAAG,IAAA,IAAAH,CAAA,SAAAQ,MAAA;IAEA2C,GAAA,GAAAhD,IAAI,KAAK,QA6BT,iBA7BAL,KAAA,CACElB,GAAG;MAAewE,aAAQ,EAAR,QAAQ;MAAAL,QAAA,gBACzBnD,IAAA,CAACf,IAAI;QAAQgE,KAAgB,EAAhBrD,MAAM,CAAA0D,SAAU;QAAAH,QAAA,EAAE;MAAiB,CAAM,CAAC,eACvDnD,IAAA,CAAChB,GAAG;QAAS8D,MAAC,EAAD;MAAC,CAAG,CAAC,eAClB9C,IAAA,CAACb,WAAW;QACHsE,KAGJ,EAHI7C,MAAM,CAAA8C,GAAI,CAACC,GAAA,KAAQ;UAAAC,KAAA,EACjBrB,GAAC,CAAAV,IAAK,IAAIU,GAAC,CAAAsB,IAA2B,GAA5B,KAActB,GAAC,CAAAsB,IAAK,GAAQ,GAA5B,EAA4B,CAAC,IAAItB,GAAC,CAAAX,EAAG,KAAKd,cAAiC,GAA1C,WAA0C,GAA1C,EAA0C,CAAC;UAAA0B,KAAA,EACtFD,GAAC,CAAAX;QACV,CAAC,CAAC,CAAC;QACOa,QAAY,EAAZA,YAAY;QACFqB,kBAInB,EAJmBC,KAInB;QACcC,aAWd,EAXcC;MAWd,CACF,CAAC;IAAA,CAEN,CAAC;IAAA7D,CAAA,OAAAU,cAAA;IAAAV,CAAA,OAAAqC,YAAA;IAAArC,CAAA,OAAAG,IAAA;IAAAH,CAAA,OAAAQ,MAAA;IAAAR,CAAA,OAAAmD,GAAA;EAAA;IAAAA,GAAA,GAAAnD,CAAA;EAAA;EAAA,IAAA8D,GAAA;EAAA,IAAA9D,CAAA,SAAAY,YAAA,IAAAZ,CAAA,SAAAG,IAAA;IAEA2D,GAAA,GAAA3D,IAAI,KAAK,MAcT,iBAdAL,KAAA,CACElB,GAAG;MAAewE,aAAQ,EAAR,QAAQ;MAAAL,QAAA,gBACzBjD,KAAA,CAAClB,GAAG;QAAAmE,QAAA,gBACFjD,KAAA,CAACjB,IAAI;UAAQgE,KAAc,EAAdrD,MAAM,CAAAuE,OAAQ;UAAAhB,QAAA,GAAGtD,OAAO,CAAAuE,KAAM,EAAC,GAAC;QAAA,CAAM,CAAC,eACpDpE,IAAA,CAACf,IAAI;UAAQgE,KAAW,EAAXrD,MAAM,CAAAyE,IAAK;UAAEC,IAAI,EAAJ,IAAI;UAAAnB,QAAA,EAAC;QAAc,CAAM,CAAC;MAAA,CACjD,CAAC,eACNnD,IAAA,CAAChB,GAAG;QAAS8D,MAAC,EAAD;MAAC,CAAG,CAAC,eAClB5C,KAAA,CAAClB,GAAG;QAAAmE,QAAA,gBACFjD,KAAA,CAACjB,IAAI;UAAQgE,KAAU,EAAVrD,MAAM,CAAA2E,GAAI;UAAApB,QAAA,GAAG,IAAI,EAAC,QAAM;QAAA,CAAM,CAAC,eAC5CnD,IAAA,CAACf,IAAI;UAAQgE,KAAW,EAAXrD,MAAM,CAAAyE,IAAK;UAAAlB,QAAA,EAAGnC;QAAY,CAAO,CAAC;MAAA,CAC5C,CAAC,eACNhB,IAAA,CAAChB,GAAG;QAAS8D,MAAC,EAAD;MAAC,CAAG,CAAC,eAClB9C,IAAA,CAACf,IAAI;QAAQgE,KAAgB,EAAhBrD,MAAM,CAAA0D,SAAU;QAAAH,QAAA,EAAE;MAAmC,CAAM,CAAC;IAAA,CAE7E,CAAC;IAAA/C,CAAA,OAAAY,YAAA;IAAAZ,CAAA,OAAAG,IAAA;IAAAH,CAAA,OAAA8D,GAAA;EAAA;IAAAA,GAAA,GAAA9D,CAAA;EAAA;EAAA,IAAAoE,GAAA;EAAA,IAAApE,CAAA,SAAAc,KAAA,IAAAd,CAAA,SAAAG,IAAA;IAEAiE,GAAA,GAAAjE,IAAI,KAAK,OAOT,iBAPAP,IAAA,CACEhB,GAAG;MAAewE,aAAQ,EAAR,QAAQ;MAAAL,QAAA,eACzBjD,KAAA,CAAClB,GAAG;QAAAmE,QAAA,gBACFjD,KAAA,CAACjB,IAAI;UAAQgE,KAAY,EAAZrD,MAAM,CAAAsB,KAAM;UAAAiC,QAAA,GAAGtD,OAAO,CAAA4E,KAAM,EAAC,GAAC;QAAA,CAAM,CAAC,eAClDzE,IAAA,CAACf,IAAI;UAAQgE,KAAY,EAAZrD,MAAM,CAAAsB,KAAM;UAAAiC,QAAA,EAAGjC;QAAK,CAAO,CAAC;MAAA,CACtC;IAAC,CAEV,CAAC;IAAAd,CAAA,OAAAc,KAAA;IAAAd,CAAA,OAAAG,IAAA;IAAAH,CAAA,OAAAoE,GAAA;EAAA;IAAAA,GAAA,GAAApE,CAAA;EAAA;EAAA,IAAAsE,GAAA;EAAA,IAAAtE,CAAA,SAAAgD,GAAA,IAAAhD,CAAA,SAAAmD,GAAA,IAAAnD,CAAA,SAAA8D,GAAA,IAAA9D,CAAA,SAAAoE,GAAA;IAnEHE,GAAA,gBAAAxE,KAAA,CAAClB,GAAG;MAAewE,aAAQ,EAAR,QAAQ;MAAUmB,OAAC,EAAD,CAAC;MAAAxB,QAAA,GACpCT,EAA+C,EAC/CC,EAAkB,EAClBI,EAAgD,EAChDC,EAAkB,EAEjBI,GAKA,EAEAG,GA6BA,EAEAW,GAcA,EAEAM,GAOA;IAAA,CACE,CAAC;IAAApE,CAAA,OAAAgD,GAAA;IAAAhD,CAAA,OAAAmD,GAAA;IAAAnD,CAAA,OAAA8D,GAAA;IAAA9D,CAAA,OAAAoE,GAAA;IAAApE,CAAA,OAAAsE,GAAA;EAAA;IAAAA,GAAA,GAAAtE,CAAA;EAAA;EAAA,OApENsE,GAoEM;AAAA;AAtIH,SAAAT,OAAAxD,EAAA;EA8FqB;IAAAmE,UAAA,EAAAC,YAAA;IAAAjB;EAAA,IAAAnD,EAA8D;EAC5E,MAAAqE,SAAA,GAAkBlB,KAAK,CAAAmB,QAAS,CAAC,WAAW,CAAC;EAC7C,MAAAC,YAAA,GAAqBF,SAAS,GAAGlB,KAAK,CAAAqB,OAAQ,CAAC,WAAW,EAAE,EAAU,CAAC,GAAlDrB,KAAkD;EAAC,oBAEtE1D,KAAA,CAAClB,GAAG;IAAAmE,QAAA,gBACFnD,IAAA,CAACf,IAAI;MAAQgE,KAAuC,EAAvC2B,YAAU,GAAGhF,MAAM,CAAAyD,KAAoB,GAAXzD,MAAM,CAAAyE,IAAK;MAAQO,IAAU,EAAVA,YAAU;MAAAzB,QAAA,EACnE6B;IAAY,CACT,CAAC,EACNF,SAAwE,iBAAxE5E,KAAA,CAAcjB,IAAI;MAAQgE,KAAc,EAAdrD,MAAM,CAAAuE,OAAQ;MAAAhB,QAAA,GAAE,IAAE,EAACtD,OAAO,CAAAqF,GAAI,EAAC,UAAQ;IAAA,CAAM,CAAC;EAAA,CACtE,CAAC;AAAA;AAvGf,SAAAnB,MAAAtD,EAAA;EAyF0B;IAAAmE;EAAA,IAAAnE,EAAwC;EAAA,oBAC3DP,KAAA,CAACjB,IAAI;IAAQgE,KAA6C,EAA7C2B,UAAU,GAAGhF,MAAM,CAAAyD,KAA0B,GAAjBzD,MAAM,CAAAuF,UAAW;IAAAhC,QAAA,GACvDyB,UAAU,GAAG/E,OAAO,CAAAuF,UAAiB,GAArC,GAAqC,EAAE,GAAG;EAAA,CACvC,CAAC;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server — Local agent WebSocket connection
|
|
3
|
+
* Split from index.ts for single-responsibility.
|
|
4
|
+
*/
|
|
5
|
+
import { LocalAgentConnection } from "./local-agent/connection.js";
|
|
6
|
+
export declare let localAgent: LocalAgentConnection | null;
|
|
7
|
+
/**
|
|
8
|
+
* Start the local agent WebSocket connection in the background.
|
|
9
|
+
* Non-blocking — MCP server continues even if this fails.
|
|
10
|
+
*/
|
|
11
|
+
export declare function startLocalAgent(): Promise<void>;
|