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":"RewindViewer.js","names":["useState","Box","Text","useInput","colors","symbols","jsx","_jsx","jsxs","_jsxs","RewindOutcome","truncateSummary","text","maxLen","cleaned","replace","trim","length","slice","formatFileOp","op","isNew","formatTimeAgo","timestamp","diff","Date","now","seconds","Math","floor","minutes","hours","basename","filePath","parts","split","RewindConfirmation","t0","$","_c","checkpoint","fileChangeCount","onConfirm","onCancel","hasFileChanges","options","t1","Symbol","for","label","value","RewindAndRevert","push","RewindOnly","t2","RevertOnly","Cancel","selectedIndex","setSelectedIndex","input","key","escape","upArrow","_temp","downArrow","prev_0","min","prev","return","termWidth","process","stdout","columns","boxWidth","marginBottom","children","bold","color","brand","t3","turnIndex","t4","summary","t5","dimColor","t6","t7","t8","flexDirection","t9","t10","map","opt","i","quaternary","arrowRight","secondary","t11","borderStyle","borderColor","border","paddingX","paddingY","max","RewindViewer","checkpoints","onRewind","confirmIndex","setConfirmIndex","termHeight","rows","maxVisible","bb0","half","scrollOffset","visibleCheckpoints","_temp2","reduce","_temp3","outcome","T0","dot","T1","cp_0","visIdx","realIdx","isSelected","isCurrent","bullet","cp","divider","fileChanges","marginLeft","_temp4","t12","t13","t14","t15","marginTop","t16","fc","fi","operation","isNewFile","sum"],"sources":["../../../src/cli/chat/RewindViewer.tsx"],"sourcesContent":["/**\n * RewindViewer — conversation timeline for rewind selection\n *\n * Displays checkpoints as a navigable list. Users select a point to\n * rewind to with arrow keys and Enter. Esc cancels.\n *\n * UX modeled after Gemini CLI's rewind viewer:\n * - Shows each turn with a summary of what happened\n * - Lists file changes for each turn\n * - Highlight selected checkpoint\n * - Confirmation step with rewind options\n */\n\nimport { useState } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport { colors, symbols } from \"../shared/Theme.js\";\nimport type { RewindCheckpoint } from \"../services/rewind.js\";\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport enum RewindOutcome {\n RewindAndRevert = \"rewind_and_revert\",\n RewindOnly = \"rewind_only\",\n RevertOnly = \"revert_only\",\n Cancel = \"cancel\",\n}\n\ninterface RewindViewerProps {\n checkpoints: RewindCheckpoint[];\n onRewind: (checkpointIndex: number, outcome: RewindOutcome) => void;\n onCancel: () => void;\n}\n\n// ============================================================================\n// HELPERS\n// ============================================================================\n\nfunction truncateSummary(text: string, maxLen: number): string {\n if (!text) return \"(no text)\";\n const cleaned = text.replace(/\\n/g, \" \").trim();\n if (cleaned.length <= maxLen) return cleaned;\n return cleaned.slice(0, maxLen - 1) + \"\\u2026\";\n}\n\nfunction formatFileOp(op: string, isNew: boolean): string {\n if (isNew) return \"created\";\n switch (op) {\n case \"write\": return \"written\";\n case \"edit\": return \"edited\";\n case \"multi_edit\": return \"edited\";\n default: return \"modified\";\n }\n}\n\nfunction formatTimeAgo(timestamp: number): string {\n const diff = Date.now() - timestamp;\n const seconds = Math.floor(diff / 1000);\n if (seconds < 60) return \"just now\";\n const minutes = Math.floor(seconds / 60);\n if (minutes < 60) return `${minutes}m ago`;\n const hours = Math.floor(minutes / 60);\n return `${hours}h ago`;\n}\n\nfunction basename(filePath: string): string {\n const parts = filePath.split(\"/\");\n return parts[parts.length - 1] || filePath;\n}\n\n// ============================================================================\n// CONFIRMATION COMPONENT\n// ============================================================================\n\nfunction RewindConfirmation({\n checkpoint,\n fileChangeCount,\n onConfirm,\n onCancel,\n}: {\n checkpoint: RewindCheckpoint;\n fileChangeCount: number;\n onConfirm: (outcome: RewindOutcome) => void;\n onCancel: () => void;\n}) {\n const hasFileChanges = fileChangeCount > 0;\n\n const options: Array<{ label: string; value: RewindOutcome }> = [];\n if (hasFileChanges) {\n options.push({\n label: \"Rewind conversation and revert file changes\",\n value: RewindOutcome.RewindAndRevert,\n });\n }\n options.push({\n label: \"Rewind conversation only\",\n value: RewindOutcome.RewindOnly,\n });\n if (hasFileChanges) {\n options.push({\n label: \"Revert file changes only\",\n value: RewindOutcome.RevertOnly,\n });\n }\n options.push({\n label: \"Cancel (Esc)\",\n value: RewindOutcome.Cancel,\n });\n\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n useInput((input, key) => {\n if (key.escape) {\n onCancel();\n return;\n }\n if (key.upArrow) {\n setSelectedIndex(prev => Math.max(0, prev - 1));\n return;\n }\n if (key.downArrow) {\n setSelectedIndex(prev => Math.min(options.length - 1, prev + 1));\n return;\n }\n if (key.return) {\n onConfirm(options[selectedIndex].value);\n return;\n }\n });\n\n const termWidth = process.stdout.columns || 80;\n const boxWidth = Math.min(termWidth - 2, 60);\n\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"round\"\n borderColor={colors.border}\n paddingX={1}\n paddingY={1}\n width={boxWidth}\n >\n <Box marginBottom={1}>\n <Text bold color={colors.brand}>Confirm Rewind</Text>\n </Box>\n\n <Box marginBottom={1} flexDirection=\"column\">\n <Text dimColor>\n Rewind to turn {checkpoint.turnIndex + 1}: {truncateSummary(checkpoint.summary, 40)}\n </Text>\n {hasFileChanges && (\n <Text dimColor>\n {fileChangeCount} file change{fileChangeCount !== 1 ? \"s\" : \"\"} will be affected\n </Text>\n )}\n {!hasFileChanges && (\n <Text dimColor>No file changes to revert.</Text>\n )}\n </Box>\n\n <Box marginBottom={1}>\n <Text>Select an action:</Text>\n </Box>\n\n <Box flexDirection=\"column\">\n {options.map((opt, i) => (\n <Box key={opt.value}>\n <Text color={i === selectedIndex ? colors.brand : colors.quaternary}>\n {i === selectedIndex ? symbols.arrowRight : \" \"}{\" \"}\n </Text>\n <Text\n color={i === selectedIndex ? colors.text : colors.secondary}\n bold={i === selectedIndex}\n >\n {opt.label}\n </Text>\n </Box>\n ))}\n </Box>\n </Box>\n );\n}\n\n// ============================================================================\n// MAIN VIEWER COMPONENT\n// ============================================================================\n\nexport function RewindViewer({ checkpoints, onRewind, onCancel }: RewindViewerProps) {\n // Start selection at the last checkpoint (current position)\n const [selectedIndex, setSelectedIndex] = useState(checkpoints.length - 1);\n const [confirmIndex, setConfirmIndex] = useState<number | null>(null);\n\n // Calculate visible window (scrolling for long lists)\n const termHeight = process.stdout.rows || 24;\n const maxVisible = Math.max(3, Math.min(checkpoints.length, termHeight - 8));\n\n const scrollOffset = (() => {\n if (checkpoints.length <= maxVisible) return 0;\n const half = Math.floor(maxVisible / 2);\n return Math.max(0, Math.min(selectedIndex - half, checkpoints.length - maxVisible));\n })();\n\n const visibleCheckpoints = checkpoints.slice(scrollOffset, scrollOffset + maxVisible);\n\n useInput((input, key) => {\n if (confirmIndex !== null) return; // Confirmation handles its own input\n\n if (key.escape) {\n onCancel();\n return;\n }\n if (key.upArrow) {\n setSelectedIndex(prev => Math.max(0, prev - 1));\n return;\n }\n if (key.downArrow) {\n setSelectedIndex(prev => Math.min(checkpoints.length - 1, prev + 1));\n return;\n }\n if (key.return) {\n // Selecting the last checkpoint (current) = cancel\n if (selectedIndex === checkpoints.length - 1) {\n onCancel();\n return;\n }\n setConfirmIndex(selectedIndex);\n return;\n }\n });\n\n const termWidth = process.stdout.columns || 80;\n const boxWidth = Math.min(termWidth - 2, 70);\n\n // Show confirmation dialog\n if (confirmIndex !== null) {\n const checkpoint = checkpoints[confirmIndex];\n const fileChangeCount = checkpoints\n .slice(confirmIndex + 1)\n .reduce((sum, cp) => sum + cp.fileChanges.length, 0);\n\n return (\n <RewindConfirmation\n checkpoint={checkpoint}\n fileChangeCount={fileChangeCount}\n onConfirm={(outcome) => {\n if (outcome === RewindOutcome.Cancel) {\n setConfirmIndex(null);\n } else {\n onRewind(confirmIndex, outcome);\n }\n }}\n onCancel={() => setConfirmIndex(null)}\n />\n );\n }\n\n if (checkpoints.length === 0) {\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"round\"\n borderColor={colors.border}\n paddingX={1}\n paddingY={1}\n width={boxWidth}\n >\n <Text bold color={colors.brand}>Rewind</Text>\n <Text>{\" \"}</Text>\n <Text dimColor>Nothing to rewind to.</Text>\n <Text>{\" \"}</Text>\n <Text dimColor>Press Esc to close.</Text>\n </Box>\n );\n }\n\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"round\"\n borderColor={colors.border}\n paddingX={1}\n paddingY={1}\n width={boxWidth}\n >\n {/* Header */}\n <Box marginBottom={1}>\n <Text bold color={colors.brand}>{symbols.arrowRight} Rewind</Text>\n </Box>\n\n {/* Scroll indicator (top) */}\n {scrollOffset > 0 && (\n <Text dimColor> {symbols.dot}{symbols.dot}{symbols.dot} {scrollOffset} more above</Text>\n )}\n\n {/* Checkpoint list */}\n <Box flexDirection=\"column\">\n {visibleCheckpoints.map((cp, visIdx) => {\n const realIdx = scrollOffset + visIdx;\n const isSelected = realIdx === selectedIndex;\n const isCurrent = realIdx === checkpoints.length - 1;\n\n return (\n <Box key={realIdx} flexDirection=\"column\" marginBottom={1}>\n {/* Turn header */}\n <Box>\n <Text color={isSelected ? colors.brand : colors.quaternary}>\n {isSelected ? symbols.arrowRight : \" \"}{\" \"}\n </Text>\n <Text color={isSelected ? colors.text : (isCurrent ? colors.secondary : colors.text)}>\n {isCurrent ? symbols.dot : symbols.bullet}\n </Text>\n <Text\n color={isSelected ? colors.brand : colors.secondary}\n bold={isSelected}\n >\n {\" \"}Turn {cp.turnIndex + 1}\n </Text>\n <Text dimColor> {symbols.divider} </Text>\n <Text\n color={isSelected ? colors.text : colors.secondary}\n bold={isSelected}\n >\n {truncateSummary(cp.summary, 45)}\n </Text>\n {isCurrent && (\n <Text dimColor> (current)</Text>\n )}\n </Box>\n\n {/* File changes */}\n {cp.fileChanges.length > 0 && (\n <Box flexDirection=\"column\" marginLeft={4}>\n {cp.fileChanges.map((fc, fi) => (\n <Text key={fi} dimColor>\n {basename(fc.filePath)} ({formatFileOp(fc.operation, fc.isNewFile)})\n </Text>\n ))}\n </Box>\n )}\n\n {/* Timestamp */}\n {isSelected && (\n <Box marginLeft={4}>\n <Text dimColor>{formatTimeAgo(cp.timestamp)}</Text>\n </Box>\n )}\n </Box>\n );\n })}\n </Box>\n\n {/* Scroll indicator (bottom) */}\n {scrollOffset + maxVisible < checkpoints.length && (\n <Text dimColor> {symbols.dot}{symbols.dot}{symbols.dot} {checkpoints.length - scrollOffset - maxVisible} more below</Text>\n )}\n\n {/* Footer */}\n <Box marginTop={1}>\n <Text dimColor>\n {symbols.arrowRight} Use arrow keys to select, Enter to rewind, Esc to cancel\n </Text>\n </Box>\n </Box>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"RewindViewer.js","names":["useState","Box","Text","useInput","termWidth","colors","symbols","jsx","_jsx","jsxs","_jsxs","RewindOutcome","truncateSummary","text","maxLen","cleaned","replace","trim","length","slice","formatFileOp","op","isNew","formatTimeAgo","timestamp","diff","Date","now","seconds","Math","floor","minutes","hours","basename","filePath","parts","split","RewindConfirmation","t0","$","_c","checkpoint","fileChangeCount","onConfirm","onCancel","hasFileChanges","options","t1","Symbol","for","label","value","RewindAndRevert","push","RewindOnly","t2","RevertOnly","Cancel","selectedIndex","setSelectedIndex","input","key","escape","upArrow","_temp","downArrow","prev_0","min","prev","return","tw","boxWidth","marginBottom","children","bold","color","brand","t3","turnIndex","t4","summary","t5","dimColor","t6","t7","t8","flexDirection","t9","t10","map","opt","i","quaternary","arrowRight","secondary","t11","borderStyle","borderColor","border","paddingX","paddingY","max","RewindViewer","checkpoints","onRewind","confirmIndex","setConfirmIndex","termHeight","process","stdout","rows","maxVisible","bb0","half","scrollOffset","visibleCheckpoints","_temp2","reduce","_temp3","outcome","T0","dot","T1","cp_0","visIdx","realIdx","isSelected","isCurrent","bullet","cp","divider","fileChanges","marginLeft","_temp4","t12","t13","t14","t15","marginTop","t16","fc","fi","operation","isNewFile","sum"],"sources":["../../../src/cli/chat/RewindViewer.tsx"],"sourcesContent":["/**\n * RewindViewer — conversation timeline for rewind selection\n *\n * Displays checkpoints as a navigable list. Users select a point to\n * rewind to with arrow keys and Enter. Esc cancels.\n *\n * UX modeled after Gemini CLI's rewind viewer:\n * - Shows each turn with a summary of what happened\n * - Lists file changes for each turn\n * - Highlight selected checkpoint\n * - Confirmation step with rewind options\n */\n\nimport { useState } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport { termWidth } from \"../shared/markdown.js\";\nimport { colors, symbols } from \"../shared/Theme.js\";\nimport type { RewindCheckpoint } from \"../services/rewind.js\";\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport enum RewindOutcome {\n RewindAndRevert = \"rewind_and_revert\",\n RewindOnly = \"rewind_only\",\n RevertOnly = \"revert_only\",\n Cancel = \"cancel\",\n}\n\ninterface RewindViewerProps {\n checkpoints: RewindCheckpoint[];\n onRewind: (checkpointIndex: number, outcome: RewindOutcome) => void;\n onCancel: () => void;\n}\n\n// ============================================================================\n// HELPERS\n// ============================================================================\n\nfunction truncateSummary(text: string, maxLen: number): string {\n if (!text) return \"(no text)\";\n const cleaned = text.replace(/\\n/g, \" \").trim();\n if (cleaned.length <= maxLen) return cleaned;\n return cleaned.slice(0, maxLen - 1) + \"\\u2026\";\n}\n\nfunction formatFileOp(op: string, isNew: boolean): string {\n if (isNew) return \"created\";\n switch (op) {\n case \"write\": return \"written\";\n case \"edit\": return \"edited\";\n case \"multi_edit\": return \"edited\";\n default: return \"modified\";\n }\n}\n\nfunction formatTimeAgo(timestamp: number): string {\n const diff = Date.now() - timestamp;\n const seconds = Math.floor(diff / 1000);\n if (seconds < 60) return \"just now\";\n const minutes = Math.floor(seconds / 60);\n if (minutes < 60) return `${minutes}m ago`;\n const hours = Math.floor(minutes / 60);\n return `${hours}h ago`;\n}\n\nfunction basename(filePath: string): string {\n const parts = filePath.split(\"/\");\n return parts[parts.length - 1] || filePath;\n}\n\n// ============================================================================\n// CONFIRMATION COMPONENT\n// ============================================================================\n\nfunction RewindConfirmation({\n checkpoint,\n fileChangeCount,\n onConfirm,\n onCancel,\n}: {\n checkpoint: RewindCheckpoint;\n fileChangeCount: number;\n onConfirm: (outcome: RewindOutcome) => void;\n onCancel: () => void;\n}) {\n const hasFileChanges = fileChangeCount > 0;\n\n const options: Array<{ label: string; value: RewindOutcome }> = [];\n if (hasFileChanges) {\n options.push({\n label: \"Rewind conversation and revert file changes\",\n value: RewindOutcome.RewindAndRevert,\n });\n }\n options.push({\n label: \"Rewind conversation only\",\n value: RewindOutcome.RewindOnly,\n });\n if (hasFileChanges) {\n options.push({\n label: \"Revert file changes only\",\n value: RewindOutcome.RevertOnly,\n });\n }\n options.push({\n label: \"Cancel (Esc)\",\n value: RewindOutcome.Cancel,\n });\n\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n useInput((input, key) => {\n if (key.escape) {\n onCancel();\n return;\n }\n if (key.upArrow) {\n setSelectedIndex(prev => Math.max(0, prev - 1));\n return;\n }\n if (key.downArrow) {\n setSelectedIndex(prev => Math.min(options.length - 1, prev + 1));\n return;\n }\n if (key.return) {\n onConfirm(options[selectedIndex].value);\n return;\n }\n });\n\n const tw = termWidth();\n const boxWidth = Math.min(tw - 2, 60);\n\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"round\"\n borderColor={colors.border}\n paddingX={1}\n paddingY={1}\n width={boxWidth}\n >\n <Box marginBottom={1}>\n <Text bold color={colors.brand}>Confirm Rewind</Text>\n </Box>\n\n <Box marginBottom={1} flexDirection=\"column\">\n <Text dimColor>\n Rewind to turn {checkpoint.turnIndex + 1}: {truncateSummary(checkpoint.summary, 40)}\n </Text>\n {hasFileChanges && (\n <Text dimColor>\n {fileChangeCount} file change{fileChangeCount !== 1 ? \"s\" : \"\"} will be affected\n </Text>\n )}\n {!hasFileChanges && (\n <Text dimColor>No file changes to revert.</Text>\n )}\n </Box>\n\n <Box marginBottom={1}>\n <Text>Select an action:</Text>\n </Box>\n\n <Box flexDirection=\"column\">\n {options.map((opt, i) => (\n <Box key={opt.value}>\n <Text color={i === selectedIndex ? colors.brand : colors.quaternary}>\n {i === selectedIndex ? symbols.arrowRight : \" \"}{\" \"}\n </Text>\n <Text\n color={i === selectedIndex ? colors.text : colors.secondary}\n bold={i === selectedIndex}\n >\n {opt.label}\n </Text>\n </Box>\n ))}\n </Box>\n </Box>\n );\n}\n\n// ============================================================================\n// MAIN VIEWER COMPONENT\n// ============================================================================\n\nexport function RewindViewer({ checkpoints, onRewind, onCancel }: RewindViewerProps) {\n // Start selection at the last checkpoint (current position)\n const [selectedIndex, setSelectedIndex] = useState(checkpoints.length - 1);\n const [confirmIndex, setConfirmIndex] = useState<number | null>(null);\n\n // Calculate visible window (scrolling for long lists)\n const termHeight = process.stdout.rows || 24;\n const maxVisible = Math.max(3, Math.min(checkpoints.length, termHeight - 8));\n\n const scrollOffset = (() => {\n if (checkpoints.length <= maxVisible) return 0;\n const half = Math.floor(maxVisible / 2);\n return Math.max(0, Math.min(selectedIndex - half, checkpoints.length - maxVisible));\n })();\n\n const visibleCheckpoints = checkpoints.slice(scrollOffset, scrollOffset + maxVisible);\n\n useInput((input, key) => {\n if (confirmIndex !== null) return; // Confirmation handles its own input\n\n if (key.escape) {\n onCancel();\n return;\n }\n if (key.upArrow) {\n setSelectedIndex(prev => Math.max(0, prev - 1));\n return;\n }\n if (key.downArrow) {\n setSelectedIndex(prev => Math.min(checkpoints.length - 1, prev + 1));\n return;\n }\n if (key.return) {\n // Selecting the last checkpoint (current) = cancel\n if (selectedIndex === checkpoints.length - 1) {\n onCancel();\n return;\n }\n setConfirmIndex(selectedIndex);\n return;\n }\n });\n\n const tw = termWidth();\n const boxWidth = Math.min(tw - 2, 70);\n\n // Show confirmation dialog\n if (confirmIndex !== null) {\n const checkpoint = checkpoints[confirmIndex];\n const fileChangeCount = checkpoints\n .slice(confirmIndex + 1)\n .reduce((sum, cp) => sum + cp.fileChanges.length, 0);\n\n return (\n <RewindConfirmation\n checkpoint={checkpoint}\n fileChangeCount={fileChangeCount}\n onConfirm={(outcome) => {\n if (outcome === RewindOutcome.Cancel) {\n setConfirmIndex(null);\n } else {\n onRewind(confirmIndex, outcome);\n }\n }}\n onCancel={() => setConfirmIndex(null)}\n />\n );\n }\n\n if (checkpoints.length === 0) {\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"round\"\n borderColor={colors.border}\n paddingX={1}\n paddingY={1}\n width={boxWidth}\n >\n <Text bold color={colors.brand}>Rewind</Text>\n <Text>{\" \"}</Text>\n <Text dimColor>Nothing to rewind to.</Text>\n <Text>{\" \"}</Text>\n <Text dimColor>Press Esc to close.</Text>\n </Box>\n );\n }\n\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"round\"\n borderColor={colors.border}\n paddingX={1}\n paddingY={1}\n width={boxWidth}\n >\n {/* Header */}\n <Box marginBottom={1}>\n <Text bold color={colors.brand}>{symbols.arrowRight} Rewind</Text>\n </Box>\n\n {/* Scroll indicator (top) */}\n {scrollOffset > 0 && (\n <Text dimColor> {symbols.dot}{symbols.dot}{symbols.dot} {scrollOffset} more above</Text>\n )}\n\n {/* Checkpoint list */}\n <Box flexDirection=\"column\">\n {visibleCheckpoints.map((cp, visIdx) => {\n const realIdx = scrollOffset + visIdx;\n const isSelected = realIdx === selectedIndex;\n const isCurrent = realIdx === checkpoints.length - 1;\n\n return (\n <Box key={realIdx} flexDirection=\"column\" marginBottom={1}>\n {/* Turn header */}\n <Box>\n <Text color={isSelected ? colors.brand : colors.quaternary}>\n {isSelected ? symbols.arrowRight : \" \"}{\" \"}\n </Text>\n <Text color={isSelected ? colors.text : (isCurrent ? colors.secondary : colors.text)}>\n {isCurrent ? symbols.dot : symbols.bullet}\n </Text>\n <Text\n color={isSelected ? colors.brand : colors.secondary}\n bold={isSelected}\n >\n {\" \"}Turn {cp.turnIndex + 1}\n </Text>\n <Text dimColor> {symbols.divider} </Text>\n <Text\n color={isSelected ? colors.text : colors.secondary}\n bold={isSelected}\n >\n {truncateSummary(cp.summary, 45)}\n </Text>\n {isCurrent && (\n <Text dimColor> (current)</Text>\n )}\n </Box>\n\n {/* File changes */}\n {cp.fileChanges.length > 0 && (\n <Box flexDirection=\"column\" marginLeft={4}>\n {cp.fileChanges.map((fc, fi) => (\n <Text key={fi} dimColor>\n {basename(fc.filePath)} ({formatFileOp(fc.operation, fc.isNewFile)})\n </Text>\n ))}\n </Box>\n )}\n\n {/* Timestamp */}\n {isSelected && (\n <Box marginLeft={4}>\n <Text dimColor>{formatTimeAgo(cp.timestamp)}</Text>\n </Box>\n )}\n </Box>\n );\n })}\n </Box>\n\n {/* Scroll indicator (bottom) */}\n {scrollOffset + maxVisible < checkpoints.length && (\n <Text dimColor> {symbols.dot}{symbols.dot}{symbols.dot} {checkpoints.length - scrollOffset - maxVisible} more below</Text>\n )}\n\n {/* Footer */}\n <Box marginTop={1}>\n <Text dimColor>\n {symbols.arrowRight} Use arrow keys to select, Enter to rewind, Esc to cancel\n </Text>\n </Box>\n </Box>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
11
11
|
import { useState } from "react";
|
|
12
12
|
import { Box, Text, useInput } from "ink";
|
|
13
13
|
import { colors, symbols } from "../shared/Theme.js";
|
|
14
|
+
import { termWidth } from "../shared/markdown.js";
|
|
14
15
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
16
|
export function SessionManager(t0) {
|
|
16
17
|
const $ = _c(16);
|
|
@@ -49,8 +50,8 @@ export function SessionManager(t0) {
|
|
|
49
50
|
t1 = $[4];
|
|
50
51
|
}
|
|
51
52
|
useInput(t1);
|
|
52
|
-
const
|
|
53
|
-
const boxWidth = Math.min(
|
|
53
|
+
const tw = termWidth();
|
|
54
|
+
const boxWidth = Math.min(tw - 2, 68);
|
|
54
55
|
let t2;
|
|
55
56
|
if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
56
57
|
t2 = /*#__PURE__*/_jsx(Box, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionManager.js","names":["useState","Box","Text","useInput","colors","symbols","jsx","_jsx","jsxs","_jsxs","SessionManager","t0","$","_c","sessions","onSelect","onCancel","selectedIndex","setSelectedIndex","t1","_input","key","escape","upArrow","_temp","downArrow","prev_0","Math","min","length","prev","return","
|
|
1
|
+
{"version":3,"file":"SessionManager.js","names":["useState","Box","Text","useInput","colors","symbols","termWidth","jsx","_jsx","jsxs","_jsxs","SessionManager","t0","$","_c","sessions","onSelect","onCancel","selectedIndex","setSelectedIndex","t1","_input","key","escape","upArrow","_temp","downArrow","prev_0","Math","min","length","prev","return","tw","boxWidth","t2","Symbol","for","marginBottom","children","bold","color","brand","t3","t4","session","i","isSelected","title","slice","padEnd","date","updatedAt","quaternary","arrowRight","text","secondary","dimColor","String","messageCount","padStart","id","map","flexDirection","t5","marginTop","t6","borderStyle","borderColor","border","paddingX","paddingY","max"],"sources":["../../../src/cli/chat/SessionManager.tsx"],"sourcesContent":["/**\n * SessionManager — interactive session picker\n *\n * Renders a navigable list of saved sessions.\n * Enter resumes the selected session, Esc cancels.\n *\n * Follows StoreSelector pattern (useInput + manual index).\n */\n\nimport { useState } from \"react\";\nimport { Box, Text, useInput } from \"ink\";\nimport { colors, symbols } from \"../shared/Theme.js\";\nimport { termWidth } from \"../shared/markdown.js\";\nimport type { SessionMeta } from \"../services/session-persistence.js\";\n\ninterface SessionManagerProps {\n sessions: SessionMeta[];\n onSelect: (session: SessionMeta) => void;\n onCancel: () => void;\n}\n\nexport function SessionManager({ sessions, onSelect, onCancel }: SessionManagerProps) {\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n useInput((_input, key) => {\n if (key.escape) {\n onCancel();\n return;\n }\n if (key.upArrow) {\n setSelectedIndex((prev) => Math.max(0, prev - 1));\n return;\n }\n if (key.downArrow) {\n setSelectedIndex((prev) => Math.min(sessions.length - 1, prev + 1));\n return;\n }\n if (key.return) {\n onSelect(sessions[selectedIndex]);\n return;\n }\n });\n\n const tw = termWidth();\n const boxWidth = Math.min(tw - 2, 68);\n\n return (\n <Box\n flexDirection=\"column\"\n borderStyle=\"round\"\n borderColor={colors.border}\n paddingX={1}\n paddingY={1}\n width={boxWidth}\n >\n <Box marginBottom={1}>\n <Text bold color={colors.brand}>Sessions</Text>\n </Box>\n\n <Box flexDirection=\"column\">\n {sessions.map((session, i) => {\n const isSelected = i === selectedIndex;\n const title = session.title.length > 35\n ? session.title.slice(0, 34) + \"…\"\n : session.title.padEnd(35);\n const date = session.updatedAt?.slice(0, 10) || \"\";\n\n return (\n <Box key={session.id}>\n <Text color={isSelected ? colors.brand : colors.quaternary}>\n {isSelected ? symbols.arrowRight : \" \"}{\" \"}\n </Text>\n <Text\n color={isSelected ? colors.text : colors.secondary}\n bold={isSelected}\n >\n {title}\n </Text>\n <Text dimColor> {String(session.messageCount).padStart(3)} msgs</Text>\n <Text dimColor> {date}</Text>\n </Box>\n );\n })}\n </Box>\n\n <Box marginTop={1}>\n <Text dimColor>{symbols.arrowRight} enter resume esc cancel</Text>\n </Box>\n </Box>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,35 +4,18 @@
|
|
|
4
4
|
* Pure rendering component: zero internal state, zero keyboard handling.
|
|
5
5
|
* ChatInput owns all state and passes props.
|
|
6
6
|
*
|
|
7
|
-
* Level 1: Category list
|
|
7
|
+
* Level 1: Category list
|
|
8
8
|
* Level 2: Commands within a category (with breadcrumb header)
|
|
9
|
-
* Filter: Flat filtered list
|
|
9
|
+
* Filter: Flat filtered list
|
|
10
|
+
*
|
|
11
|
+
* Command data lives in slash-commands.ts (single source of truth).
|
|
10
12
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
interface CategoryDef {
|
|
16
|
-
label: string;
|
|
17
|
-
color: string;
|
|
18
|
-
commands: SlashCommand[];
|
|
19
|
-
}
|
|
20
|
-
export declare const CATEGORIES: CategoryDef[];
|
|
21
|
-
/** Flat array of all commands (for external consumers like /help) */
|
|
22
|
-
export declare const SLASH_COMMANDS: SlashCommand[];
|
|
23
|
-
export declare function getCategoryCount(): number;
|
|
24
|
-
export declare function getCategoryCommandCount(catIndex: number): number;
|
|
25
|
-
export declare function getCategoryLabel(catIndex: number): string;
|
|
26
|
-
export declare function getCategoryColor(catIndex: number): string;
|
|
27
|
-
export declare function getCategoryCommand(catIndex: number, cmdIndex: number): SlashCommand | null;
|
|
28
|
-
/** Count of selectable (command) items in a filtered list */
|
|
29
|
-
export declare function getFilteredSelectableCount(filter: string): number;
|
|
30
|
-
/** Get the command at a given selectable index (skipping headers) */
|
|
31
|
-
export declare function getCommandAtIndex(filter: string, selectableIndex: number): SlashCommand | null;
|
|
13
|
+
import { CATEGORIES, SLASH_COMMANDS, getFilteredSelectableCount, getCommandAtIndex, getCategoryCount, getCategoryCommandCount, getCategoryCommand, getCategoryLabel, getCategoryColor, type SlashCommand } from "./slash-commands.js";
|
|
14
|
+
export { CATEGORIES, SLASH_COMMANDS, getFilteredSelectableCount, getCommandAtIndex, getCategoryCount, getCategoryCommandCount, getCategoryCommand, getCategoryLabel, getCategoryColor, };
|
|
15
|
+
export type { SlashCommand };
|
|
32
16
|
interface SlashMenuProps {
|
|
33
17
|
filter: string;
|
|
34
18
|
selectedIndex: number;
|
|
35
19
|
selectedCategory: number | null;
|
|
36
20
|
}
|
|
37
21
|
export declare function SlashMenu({ filter, selectedIndex, selectedCategory }: SlashMenuProps): import("react/jsx-runtime").JSX.Element | null;
|
|
38
|
-
export {};
|
|
@@ -4,192 +4,25 @@
|
|
|
4
4
|
* Pure rendering component: zero internal state, zero keyboard handling.
|
|
5
5
|
* ChatInput owns all state and passes props.
|
|
6
6
|
*
|
|
7
|
-
* Level 1: Category list
|
|
7
|
+
* Level 1: Category list
|
|
8
8
|
* Level 2: Commands within a category (with breadcrumb header)
|
|
9
|
-
* Filter: Flat filtered list
|
|
9
|
+
* Filter: Flat filtered list
|
|
10
|
+
*
|
|
11
|
+
* Command data lives in slash-commands.ts (single source of truth).
|
|
10
12
|
*/
|
|
11
13
|
|
|
12
14
|
import { Box, Text } from "ink";
|
|
13
15
|
import { colors } from "../shared/Theme.js";
|
|
16
|
+
import { CATEGORIES, SLASH_COMMANDS, buildFlatList, getFilteredSelectableCount, getCommandAtIndex, getCategoryCount, getCategoryCommandCount, getCategoryCommand, getCategoryLabel, getCategoryColor } from "./slash-commands.js";
|
|
14
17
|
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
/** A flattened item: either a non-selectable category header or a selectable command */
|
|
18
|
+
// Re-export for ChatInput consumers
|
|
18
19
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export const CATEGORIES = [{
|
|
22
|
-
label: "Session",
|
|
23
|
-
color: colors.brand,
|
|
24
|
-
commands: [{
|
|
25
|
-
name: "/clear",
|
|
26
|
-
description: "Clear conversation"
|
|
27
|
-
}, {
|
|
28
|
-
name: "/save",
|
|
29
|
-
description: "Save session to disk"
|
|
30
|
-
}, {
|
|
31
|
-
name: "/sessions",
|
|
32
|
-
description: "List saved sessions"
|
|
33
|
-
}, {
|
|
34
|
-
name: "/resume",
|
|
35
|
-
description: "Resume a saved session"
|
|
36
|
-
}, {
|
|
37
|
-
name: "/compact",
|
|
38
|
-
description: "Compress conversation context"
|
|
39
|
-
}, {
|
|
40
|
-
name: "/rewind",
|
|
41
|
-
description: "Rewind conversation to earlier point"
|
|
42
|
-
}]
|
|
43
|
-
}, {
|
|
44
|
-
label: "Config",
|
|
45
|
-
color: colors.warning,
|
|
46
|
-
commands: [{
|
|
47
|
-
name: "/model",
|
|
48
|
-
description: "Switch model (Anthropic/Bedrock/Gemini)"
|
|
49
|
-
}, {
|
|
50
|
-
name: "/mode",
|
|
51
|
-
description: "Permission mode (default/plan/yolo)"
|
|
52
|
-
}, {
|
|
53
|
-
name: "/thinking",
|
|
54
|
-
description: "Toggle extended thinking"
|
|
55
|
-
}, {
|
|
56
|
-
name: "/store",
|
|
57
|
-
description: "Switch active store"
|
|
58
|
-
}, {
|
|
59
|
-
name: "/theme",
|
|
60
|
-
description: "Switch color theme"
|
|
61
|
-
}, {
|
|
62
|
-
name: "/init",
|
|
63
|
-
description: "Generate project config (.whale/CLAUDE.md)"
|
|
64
|
-
}, {
|
|
65
|
-
name: "/update",
|
|
66
|
-
description: "Check for updates & install"
|
|
67
|
-
}]
|
|
68
|
-
}, {
|
|
69
|
-
label: "Info",
|
|
70
|
-
color: colors.info,
|
|
71
|
-
commands: [{
|
|
72
|
-
name: "/help",
|
|
73
|
-
description: "Show available commands"
|
|
74
|
-
}, {
|
|
75
|
-
name: "/status",
|
|
76
|
-
description: "Show session info"
|
|
77
|
-
}, {
|
|
78
|
-
name: "/tools",
|
|
79
|
-
description: "List all tools"
|
|
80
|
-
}, {
|
|
81
|
-
name: "/mcp",
|
|
82
|
-
description: "Server connection status"
|
|
83
|
-
}, {
|
|
84
|
-
name: "/agents",
|
|
85
|
-
description: "List available agent types"
|
|
86
|
-
}]
|
|
87
|
-
}, {
|
|
88
|
-
label: "Memory",
|
|
89
|
-
color: colors.purple,
|
|
90
|
-
commands: [{
|
|
91
|
-
name: "/remember",
|
|
92
|
-
description: "Remember a fact across sessions"
|
|
93
|
-
}, {
|
|
94
|
-
name: "/forget",
|
|
95
|
-
description: "Forget a remembered fact"
|
|
96
|
-
}, {
|
|
97
|
-
name: "/memory",
|
|
98
|
-
description: "List all remembered facts"
|
|
99
|
-
}]
|
|
100
|
-
}, {
|
|
101
|
-
label: "Nodes",
|
|
102
|
-
color: colors.success,
|
|
103
|
-
commands: [{
|
|
104
|
-
name: "/nodes",
|
|
105
|
-
description: "Connected whale-nodes"
|
|
106
|
-
}]
|
|
107
|
-
}, {
|
|
108
|
-
label: "Account",
|
|
109
|
-
color: colors.tertiary,
|
|
110
|
-
commands: [{
|
|
111
|
-
name: "/logout",
|
|
112
|
-
description: "Log out and exit"
|
|
113
|
-
}, {
|
|
114
|
-
name: "/exit",
|
|
115
|
-
description: "Exit"
|
|
116
|
-
}]
|
|
117
|
-
}];
|
|
118
|
-
|
|
119
|
-
/** Flat array of all commands (for external consumers like /help) */
|
|
120
|
-
export const SLASH_COMMANDS = CATEGORIES.flatMap(c => c.commands);
|
|
121
|
-
|
|
122
|
-
// ── Category helpers ──
|
|
123
|
-
|
|
124
|
-
export function getCategoryCount() {
|
|
125
|
-
return CATEGORIES.length;
|
|
126
|
-
}
|
|
127
|
-
export function getCategoryCommandCount(catIndex) {
|
|
128
|
-
return CATEGORIES[catIndex]?.commands.length ?? 0;
|
|
129
|
-
}
|
|
130
|
-
export function getCategoryLabel(catIndex) {
|
|
131
|
-
return CATEGORIES[catIndex]?.label ?? "";
|
|
132
|
-
}
|
|
133
|
-
export function getCategoryColor(catIndex) {
|
|
134
|
-
return CATEGORIES[catIndex]?.color ?? colors.tertiary;
|
|
135
|
-
}
|
|
136
|
-
export function getCategoryCommand(catIndex, cmdIndex) {
|
|
137
|
-
return CATEGORIES[catIndex]?.commands[cmdIndex] ?? null;
|
|
138
|
-
}
|
|
139
|
-
|
|
20
|
+
export { CATEGORIES, SLASH_COMMANDS, getFilteredSelectableCount, getCommandAtIndex, getCategoryCount, getCategoryCommandCount, getCategoryCommand, getCategoryLabel, getCategoryColor };
|
|
140
21
|
// ── Windowed rendering constants ──
|
|
141
22
|
|
|
142
23
|
const MAX_VISIBLE = 12;
|
|
143
24
|
const SCROLL_PADDING = 2;
|
|
144
25
|
|
|
145
|
-
// ── Flat list builder (memoized on filter) ──
|
|
146
|
-
|
|
147
|
-
function buildFlatList(filter) {
|
|
148
|
-
const q = filter.toLowerCase();
|
|
149
|
-
const items = [];
|
|
150
|
-
for (const cat of CATEGORIES) {
|
|
151
|
-
const matched = q ? cat.commands.filter(c => c.name.includes(q) || c.description.toLowerCase().includes(q)) : cat.commands;
|
|
152
|
-
if (matched.length === 0) continue;
|
|
153
|
-
items.push({
|
|
154
|
-
kind: "header",
|
|
155
|
-
label: cat.label,
|
|
156
|
-
color: cat.color
|
|
157
|
-
});
|
|
158
|
-
for (const cmd of matched) {
|
|
159
|
-
items.push({
|
|
160
|
-
kind: "command",
|
|
161
|
-
command: cmd,
|
|
162
|
-
color: cat.color
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return items;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/** Count of selectable (command) items in a filtered list */
|
|
170
|
-
export function getFilteredSelectableCount(filter) {
|
|
171
|
-
const q = filter.toLowerCase();
|
|
172
|
-
let count = 0;
|
|
173
|
-
for (const cat of CATEGORIES) {
|
|
174
|
-
const matched = q ? cat.commands.filter(c => c.name.includes(q) || c.description.toLowerCase().includes(q)) : cat.commands;
|
|
175
|
-
count += matched.length;
|
|
176
|
-
}
|
|
177
|
-
return count;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/** Get the command at a given selectable index (skipping headers) */
|
|
181
|
-
export function getCommandAtIndex(filter, selectableIndex) {
|
|
182
|
-
const flat = buildFlatList(filter);
|
|
183
|
-
let si = 0;
|
|
184
|
-
for (const item of flat) {
|
|
185
|
-
if (item.kind === "command") {
|
|
186
|
-
if (si === selectableIndex) return item.command;
|
|
187
|
-
si++;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return null;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
26
|
// ── Component ──
|
|
194
27
|
|
|
195
28
|
export function SlashMenu({
|
|
@@ -252,8 +85,14 @@ export function SlashMenu({
|
|
|
252
85
|
});
|
|
253
86
|
}
|
|
254
87
|
|
|
255
|
-
// ── Filter mode: flat filtered list
|
|
88
|
+
// ── Filter mode: flat filtered list ──
|
|
256
89
|
const flatList = buildFlatList(filter);
|
|
90
|
+
if (flatList.length === 0) {
|
|
91
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
92
|
+
color: colors.tertiary,
|
|
93
|
+
children: " no matching commands"
|
|
94
|
+
});
|
|
95
|
+
}
|
|
257
96
|
|
|
258
97
|
// Map selectedIndex (selectable-only) → flat-list index
|
|
259
98
|
let selectedFlatIndex = -1;
|
|
@@ -285,14 +124,6 @@ export function SlashMenu({
|
|
|
285
124
|
const hasOverflowAbove = windowStart > 0;
|
|
286
125
|
const hasOverflowBelow = windowEnd < flatList.length;
|
|
287
126
|
|
|
288
|
-
// No matching commands
|
|
289
|
-
if (flatList.length === 0) {
|
|
290
|
-
return /*#__PURE__*/_jsx(Text, {
|
|
291
|
-
color: colors.tertiary,
|
|
292
|
-
children: " no matching commands"
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
|
|
296
127
|
// Track selectable index as we render
|
|
297
128
|
let selectableCounter = 0;
|
|
298
129
|
for (let i_2 = 0; i_2 < windowStart; i_2++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlashMenu.js","names":["Box","Text","colors","jsx","_jsx","jsxs","_jsxs","CATEGORIES","label","color","brand","commands","name","description","warning","info","purple","success","tertiary","SLASH_COMMANDS","flatMap","c","getCategoryCount","length","getCategoryCommandCount","catIndex","getCategoryLabel","getCategoryColor","getCategoryCommand","cmdIndex","MAX_VISIBLE","SCROLL_PADDING","buildFlatList","filter","q","toLowerCase","items","cat","matched","includes","push","kind","cmd","command","getFilteredSelectableCount","count","getCommandAtIndex","selectableIndex","flat","si","item","SlashMenu","selectedIndex","selectedCategory","flexDirection","children","map","i","isSelected","countLabel","quaternary","secondary","bold","flatList","selectedFlatIndex","windowStart","windowEnd","Math","max","visibleItems","slice","hasOverflowAbove","hasOverflowBelow","selectableCounter","dimColor","thisSelectableIdx"],"sources":["../../../src/cli/chat/SlashMenu.tsx"],"sourcesContent":["/**\n * SlashMenu — Two-level categorized slash command menu\n *\n * Pure rendering component: zero internal state, zero keyboard handling.\n * ChatInput owns all state and passes props.\n *\n * Level 1: Category list (6 rows)\n * Level 2: Commands within a category (with breadcrumb header)\n * Filter: Flat filtered list (existing behavior)\n */\n\nimport { Box, Text } from \"ink\";\nimport { colors } from \"../shared/Theme.js\";\n\n// ── Types ──\n\nexport interface SlashCommand {\n name: string;\n description: string;\n}\n\ninterface CategoryDef {\n label: string;\n color: string;\n commands: SlashCommand[];\n}\n\n/** A flattened item: either a non-selectable category header or a selectable command */\ntype FlatItem =\n | { kind: \"header\"; label: string; color: string }\n | { kind: \"command\"; command: SlashCommand; color: string };\n\n// ── Command Definitions (6 categories) ──\n\nexport const CATEGORIES: CategoryDef[] = [\n {\n label: \"Session\",\n color: colors.brand,\n commands: [\n { name: \"/clear\", description: \"Clear conversation\" },\n { name: \"/save\", description: \"Save session to disk\" },\n { name: \"/sessions\", description: \"List saved sessions\" },\n { name: \"/resume\", description: \"Resume a saved session\" },\n { name: \"/compact\", description: \"Compress conversation context\" },\n { name: \"/rewind\", description: \"Rewind conversation to earlier point\" },\n ],\n },\n {\n label: \"Config\",\n color: colors.warning,\n commands: [\n { name: \"/model\", description: \"Switch model (Anthropic/Bedrock/Gemini)\" },\n { name: \"/mode\", description: \"Permission mode (default/plan/yolo)\" },\n { name: \"/thinking\", description: \"Toggle extended thinking\" },\n { name: \"/store\", description: \"Switch active store\" },\n { name: \"/theme\", description: \"Switch color theme\" },\n { name: \"/init\", description: \"Generate project config (.whale/CLAUDE.md)\" },\n { name: \"/update\", description: \"Check for updates & install\" },\n ],\n },\n {\n label: \"Info\",\n color: colors.info,\n commands: [\n { name: \"/help\", description: \"Show available commands\" },\n { name: \"/status\", description: \"Show session info\" },\n { name: \"/tools\", description: \"List all tools\" },\n { name: \"/mcp\", description: \"Server connection status\" },\n { name: \"/agents\", description: \"List available agent types\" },\n ],\n },\n {\n label: \"Memory\",\n color: colors.purple,\n commands: [\n { name: \"/remember\", description: \"Remember a fact across sessions\" },\n { name: \"/forget\", description: \"Forget a remembered fact\" },\n { name: \"/memory\", description: \"List all remembered facts\" },\n ],\n },\n {\n label: \"Nodes\",\n color: colors.success,\n commands: [\n { name: \"/nodes\", description: \"Connected whale-nodes\" },\n ],\n },\n {\n label: \"Account\",\n color: colors.tertiary,\n commands: [\n { name: \"/logout\", description: \"Log out and exit\" },\n { name: \"/exit\", description: \"Exit\" },\n ],\n },\n];\n\n/** Flat array of all commands (for external consumers like /help) */\nexport const SLASH_COMMANDS: SlashCommand[] = CATEGORIES.flatMap(c => c.commands);\n\n// ── Category helpers ──\n\nexport function getCategoryCount(): number {\n return CATEGORIES.length;\n}\n\nexport function getCategoryCommandCount(catIndex: number): number {\n return CATEGORIES[catIndex]?.commands.length ?? 0;\n}\n\nexport function getCategoryLabel(catIndex: number): string {\n return CATEGORIES[catIndex]?.label ?? \"\";\n}\n\nexport function getCategoryColor(catIndex: number): string {\n return CATEGORIES[catIndex]?.color ?? colors.tertiary;\n}\n\nexport function getCategoryCommand(catIndex: number, cmdIndex: number): SlashCommand | null {\n return CATEGORIES[catIndex]?.commands[cmdIndex] ?? null;\n}\n\n// ── Windowed rendering constants ──\n\nconst MAX_VISIBLE = 12;\nconst SCROLL_PADDING = 2;\n\n// ── Flat list builder (memoized on filter) ──\n\nfunction buildFlatList(filter: string): FlatItem[] {\n const q = filter.toLowerCase();\n const items: FlatItem[] = [];\n\n for (const cat of CATEGORIES) {\n const matched = q\n ? cat.commands.filter(c => c.name.includes(q) || c.description.toLowerCase().includes(q))\n : cat.commands;\n\n if (matched.length === 0) continue;\n\n items.push({ kind: \"header\", label: cat.label, color: cat.color });\n for (const cmd of matched) {\n items.push({ kind: \"command\", command: cmd, color: cat.color });\n }\n }\n\n return items;\n}\n\n/** Count of selectable (command) items in a filtered list */\nexport function getFilteredSelectableCount(filter: string): number {\n const q = filter.toLowerCase();\n let count = 0;\n for (const cat of CATEGORIES) {\n const matched = q\n ? cat.commands.filter(c => c.name.includes(q) || c.description.toLowerCase().includes(q))\n : cat.commands;\n count += matched.length;\n }\n return count;\n}\n\n/** Get the command at a given selectable index (skipping headers) */\nexport function getCommandAtIndex(filter: string, selectableIndex: number): SlashCommand | null {\n const flat = buildFlatList(filter);\n let si = 0;\n for (const item of flat) {\n if (item.kind === \"command\") {\n if (si === selectableIndex) return item.command;\n si++;\n }\n }\n return null;\n}\n\n// ── Component ──\n\ninterface SlashMenuProps {\n filter: string;\n selectedIndex: number;\n selectedCategory: number | null; // null = Level 1, number = drilled into that category\n}\n\nexport function SlashMenu({ filter, selectedIndex, selectedCategory }: SlashMenuProps) {\n // ── Level 1: Category list ──\n if (selectedCategory === null && filter === \"\") {\n return (\n <Box flexDirection=\"column\">\n {CATEGORIES.map((cat, i) => {\n const isSelected = i === selectedIndex;\n const count = cat.commands.length;\n const countLabel = count === 1 ? \"1 command\" : `${count} commands`;\n return (\n <Box key={cat.label}>\n <Text color={isSelected ? cat.color : colors.quaternary}>\n {isSelected ? \"\\u203A \" : \" \"}\n </Text>\n <Text color={isSelected ? cat.color : colors.secondary} bold={isSelected}>\n {cat.label}\n </Text>\n <Text color={colors.tertiary}>{\" \"}{countLabel}</Text>\n </Box>\n );\n })}\n </Box>\n );\n }\n\n // ── Level 2: Commands within a category ──\n if (selectedCategory !== null && filter === \"\") {\n const cat = CATEGORIES[selectedCategory];\n if (!cat) return null;\n\n return (\n <Box flexDirection=\"column\">\n {/* Breadcrumb header */}\n <Box>\n <Text color={cat.color}>{` \\u2039 ${cat.label}`}</Text>\n </Box>\n\n {/* Commands */}\n {cat.commands.map((cmd, i) => {\n const isSelected = i === selectedIndex;\n return (\n <Box key={cmd.name}>\n <Text color={isSelected ? cat.color : colors.quaternary}>\n {isSelected ? \"\\u203A \" : \" \"}\n </Text>\n <Text color={isSelected ? cat.color : colors.secondary} bold={isSelected}>\n {cmd.name}\n </Text>\n <Text color={colors.tertiary}> {cmd.description}</Text>\n </Box>\n );\n })}\n </Box>\n );\n }\n\n // ── Filter mode: flat filtered list (existing behavior) ──\n const flatList = buildFlatList(filter);\n\n // Map selectedIndex (selectable-only) → flat-list index\n let selectedFlatIndex = -1;\n {\n let si = 0;\n for (let i = 0; i < flatList.length; i++) {\n if (flatList[i].kind === \"command\") {\n if (si === selectedIndex) { selectedFlatIndex = i; break; }\n si++;\n }\n }\n }\n\n // Calculate visible window\n let windowStart = 0;\n let windowEnd = flatList.length;\n if (flatList.length > MAX_VISIBLE) {\n windowStart = Math.max(0, selectedFlatIndex - SCROLL_PADDING);\n windowEnd = windowStart + MAX_VISIBLE;\n if (windowEnd > flatList.length) {\n windowEnd = flatList.length;\n windowStart = Math.max(0, windowEnd - MAX_VISIBLE);\n }\n }\n\n const visibleItems = flatList.slice(windowStart, windowEnd);\n const hasOverflowAbove = windowStart > 0;\n const hasOverflowBelow = windowEnd < flatList.length;\n\n // No matching commands\n if (flatList.length === 0) {\n return <Text color={colors.tertiary}> no matching commands</Text>;\n }\n\n // Track selectable index as we render\n let selectableCounter = 0;\n for (let i = 0; i < windowStart; i++) {\n if (flatList[i].kind === \"command\") selectableCounter++;\n }\n\n return (\n <Box flexDirection=\"column\">\n {hasOverflowAbove && (\n <Text color={colors.quaternary}> {\" \\u2191 more\"}</Text>\n )}\n\n {visibleItems.map((item) => {\n if (item.kind === \"header\") {\n return (\n <Box key={`h-${item.label}`}>\n <Text color={item.color} dimColor>{` ${item.label}`}</Text>\n </Box>\n );\n }\n\n const thisSelectableIdx = selectableCounter++;\n const isSelected = thisSelectableIdx === selectedIndex;\n\n return (\n <Box key={item.command.name}>\n <Text color={isSelected ? item.color : colors.quaternary}>\n {isSelected ? \"\\u203A \" : \" \"}\n </Text>\n <Text color={isSelected ? item.color : colors.secondary} bold={isSelected}>\n {item.command.name}\n </Text>\n <Text color={colors.tertiary}> {item.command.description}</Text>\n </Box>\n );\n })}\n\n {hasOverflowBelow && (\n <Text color={colors.quaternary}> {\" \\u2193 more\"}</Text>\n )}\n </Box>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SlashMenu.js","names":["Box","Text","colors","CATEGORIES","SLASH_COMMANDS","buildFlatList","getFilteredSelectableCount","getCommandAtIndex","getCategoryCount","getCategoryCommandCount","getCategoryCommand","getCategoryLabel","getCategoryColor","jsx","_jsx","jsxs","_jsxs","MAX_VISIBLE","SCROLL_PADDING","SlashMenu","filter","selectedIndex","selectedCategory","flexDirection","children","map","cat","i","isSelected","count","commands","length","countLabel","color","quaternary","secondary","bold","label","tertiary","cmd","name","description","flatList","selectedFlatIndex","si","kind","windowStart","windowEnd","Math","max","visibleItems","slice","hasOverflowAbove","hasOverflowBelow","selectableCounter","item","dimColor","thisSelectableIdx","command"],"sources":["../../../src/cli/chat/SlashMenu.tsx"],"sourcesContent":["/**\n * SlashMenu — Two-level categorized slash command menu\n *\n * Pure rendering component: zero internal state, zero keyboard handling.\n * ChatInput owns all state and passes props.\n *\n * Level 1: Category list\n * Level 2: Commands within a category (with breadcrumb header)\n * Filter: Flat filtered list\n *\n * Command data lives in slash-commands.ts (single source of truth).\n */\n\nimport { Box, Text } from \"ink\";\nimport { colors } from \"../shared/Theme.js\";\nimport {\n CATEGORIES,\n SLASH_COMMANDS,\n buildFlatList,\n getFilteredSelectableCount,\n getCommandAtIndex,\n getCategoryCount,\n getCategoryCommandCount,\n getCategoryCommand,\n getCategoryLabel,\n getCategoryColor,\n type SlashCommand,\n type FlatItem,\n} from \"./slash-commands.js\";\n\n// Re-export for ChatInput consumers\nexport {\n CATEGORIES, SLASH_COMMANDS,\n getFilteredSelectableCount, getCommandAtIndex,\n getCategoryCount, getCategoryCommandCount, getCategoryCommand,\n getCategoryLabel, getCategoryColor,\n};\nexport type { SlashCommand };\n\n// ── Windowed rendering constants ──\n\nconst MAX_VISIBLE = 12;\nconst SCROLL_PADDING = 2;\n\n// ── Component ──\n\ninterface SlashMenuProps {\n filter: string;\n selectedIndex: number;\n selectedCategory: number | null;\n}\n\nexport function SlashMenu({ filter, selectedIndex, selectedCategory }: SlashMenuProps) {\n // ── Level 1: Category list ──\n if (selectedCategory === null && filter === \"\") {\n return (\n <Box flexDirection=\"column\">\n {CATEGORIES.map((cat, i) => {\n const isSelected = i === selectedIndex;\n const count = cat.commands.length;\n const countLabel = count === 1 ? \"1 command\" : `${count} commands`;\n return (\n <Box key={cat.label}>\n <Text color={isSelected ? cat.color : colors.quaternary}>\n {isSelected ? \"\\u203A \" : \" \"}\n </Text>\n <Text color={isSelected ? cat.color : colors.secondary} bold={isSelected}>\n {cat.label}\n </Text>\n <Text color={colors.tertiary}>{\" \"}{countLabel}</Text>\n </Box>\n );\n })}\n </Box>\n );\n }\n\n // ── Level 2: Commands within a category ──\n if (selectedCategory !== null && filter === \"\") {\n const cat = CATEGORIES[selectedCategory];\n if (!cat) return null;\n\n return (\n <Box flexDirection=\"column\">\n <Box>\n <Text color={cat.color}>{` \\u2039 ${cat.label}`}</Text>\n </Box>\n {cat.commands.map((cmd, i) => {\n const isSelected = i === selectedIndex;\n return (\n <Box key={cmd.name}>\n <Text color={isSelected ? cat.color : colors.quaternary}>\n {isSelected ? \"\\u203A \" : \" \"}\n </Text>\n <Text color={isSelected ? cat.color : colors.secondary} bold={isSelected}>\n {cmd.name}\n </Text>\n <Text color={colors.tertiary}> {cmd.description}</Text>\n </Box>\n );\n })}\n </Box>\n );\n }\n\n // ── Filter mode: flat filtered list ──\n const flatList = buildFlatList(filter);\n\n if (flatList.length === 0) {\n return <Text color={colors.tertiary}> no matching commands</Text>;\n }\n\n // Map selectedIndex (selectable-only) → flat-list index\n let selectedFlatIndex = -1;\n {\n let si = 0;\n for (let i = 0; i < flatList.length; i++) {\n if (flatList[i].kind === \"command\") {\n if (si === selectedIndex) { selectedFlatIndex = i; break; }\n si++;\n }\n }\n }\n\n // Calculate visible window\n let windowStart = 0;\n let windowEnd = flatList.length;\n if (flatList.length > MAX_VISIBLE) {\n windowStart = Math.max(0, selectedFlatIndex - SCROLL_PADDING);\n windowEnd = windowStart + MAX_VISIBLE;\n if (windowEnd > flatList.length) {\n windowEnd = flatList.length;\n windowStart = Math.max(0, windowEnd - MAX_VISIBLE);\n }\n }\n\n const visibleItems = flatList.slice(windowStart, windowEnd);\n const hasOverflowAbove = windowStart > 0;\n const hasOverflowBelow = windowEnd < flatList.length;\n\n // Track selectable index as we render\n let selectableCounter = 0;\n for (let i = 0; i < windowStart; i++) {\n if (flatList[i].kind === \"command\") selectableCounter++;\n }\n\n return (\n <Box flexDirection=\"column\">\n {hasOverflowAbove && (\n <Text color={colors.quaternary}> {\" \\u2191 more\"}</Text>\n )}\n\n {visibleItems.map((item) => {\n if (item.kind === \"header\") {\n return (\n <Box key={`h-${item.label}`}>\n <Text color={item.color} dimColor>{` ${item.label}`}</Text>\n </Box>\n );\n }\n\n const thisSelectableIdx = selectableCounter++;\n const isSelected = thisSelectableIdx === selectedIndex;\n\n return (\n <Box key={item.command.name}>\n <Text color={isSelected ? item.color : colors.quaternary}>\n {isSelected ? \"\\u203A \" : \" \"}\n </Text>\n <Text color={isSelected ? item.color : colors.secondary} bold={isSelected}>\n {item.command.name}\n </Text>\n <Text color={colors.tertiary}> {item.command.description}</Text>\n </Box>\n );\n })}\n\n {hasOverflowBelow && (\n <Text color={colors.quaternary}> {\" \\u2193 more\"}</Text>\n )}\n </Box>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* Shows: permission mode · model · thinking on/off · tool count · streaming elapsed
|
|
5
5
|
* Single line, dimmed colors, dot-separated items.
|
|
6
6
|
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
import { resetKeybindingsCache } from "../services/keybinding-manager.js";
|
|
9
|
+
/** Re-export for /settings command to invalidate after changes. */
|
|
10
|
+
export { resetKeybindingsCache };
|
|
7
11
|
interface StatusBarProps {
|
|
8
12
|
permissionMode: string;
|
|
9
13
|
model: string;
|
|
@@ -12,5 +16,4 @@ interface StatusBarProps {
|
|
|
12
16
|
isStreaming: boolean;
|
|
13
17
|
toolsExpanded?: boolean;
|
|
14
18
|
}
|
|
15
|
-
export declare
|
|
16
|
-
export {};
|
|
19
|
+
export declare const StatusBar: React.NamedExoticComponent<StatusBarProps>;
|