@qduc/term2 0.29.1 → 0.31.0
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/dist/agent.d.ts +13 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +73 -2
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +24 -5
- package/dist/app.js.map +1 -1
- package/dist/build-info.json +2 -2
- package/dist/cli.js +53 -25
- package/dist/cli.js.map +1 -1
- package/dist/components/ErrorBoundary.d.ts +1 -1
- package/dist/components/ErrorBoundary.d.ts.map +1 -1
- package/dist/components/ErrorBoundary.js +28 -23
- package/dist/components/ErrorBoundary.js.map +1 -1
- package/dist/components/InputBox.d.ts.map +1 -1
- package/dist/components/InputBox.js +124 -32
- package/dist/components/InputBox.js.map +1 -1
- package/dist/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/components/MarkdownRenderer.js +31 -28
- package/dist/components/MarkdownRenderer.js.map +1 -1
- package/dist/components/common/Divider.d.ts.map +1 -1
- package/dist/components/common/Divider.js +5 -2
- package/dist/components/common/Divider.js.map +1 -1
- package/dist/components/common/MenuContainer.d.ts +6 -20
- package/dist/components/common/MenuContainer.d.ts.map +1 -1
- package/dist/components/common/MenuContainer.js +24 -40
- package/dist/components/common/MenuContainer.js.map +1 -1
- package/dist/components/common/ScrollableTabBar.d.ts.map +1 -1
- package/dist/components/common/ScrollableTabBar.js +6 -5
- package/dist/components/common/ScrollableTabBar.js.map +1 -1
- package/dist/components/common/SelectionMarker.d.ts +16 -0
- package/dist/components/common/SelectionMarker.d.ts.map +1 -0
- package/dist/components/common/SelectionMarker.js +20 -0
- package/dist/components/common/SelectionMarker.js.map +1 -0
- package/dist/components/input/ApplicationInputSurface.d.ts.map +1 -1
- package/dist/components/input/ApplicationInputSurface.js +3 -1
- package/dist/components/input/ApplicationInputSurface.js.map +1 -1
- package/dist/components/input/FirstRunSetupPrompt.d.ts.map +1 -1
- package/dist/components/input/FirstRunSetupPrompt.js +8 -6
- package/dist/components/input/FirstRunSetupPrompt.js.map +1 -1
- package/dist/components/input/MenuSurface.d.ts.map +1 -1
- package/dist/components/input/MenuSurface.js +4 -3
- package/dist/components/input/MenuSurface.js.map +1 -1
- package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
- package/dist/components/input/ModelMenuSession.js +3 -2
- package/dist/components/input/ModelMenuSession.js.map +1 -1
- package/dist/components/input/PendingQueueList.d.ts +3 -0
- package/dist/components/input/PendingQueueList.d.ts.map +1 -1
- package/dist/components/input/PendingQueueList.js +9 -8
- package/dist/components/input/PendingQueueList.js.map +1 -1
- package/dist/components/input/SettingsValueMenuSession.d.ts.map +1 -1
- package/dist/components/input/SettingsValueMenuSession.js +3 -2
- package/dist/components/input/SettingsValueMenuSession.js.map +1 -1
- package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/components/layout/BackgroundTaskManager.js +113 -107
- package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.js +26 -28
- package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
- package/dist/components/layout/Banner.d.ts.map +1 -1
- package/dist/components/layout/Banner.js +3 -47
- package/dist/components/layout/Banner.js.map +1 -1
- package/dist/components/layout/BottomArea.d.ts.map +1 -1
- package/dist/components/layout/BottomArea.js +14 -34
- package/dist/components/layout/BottomArea.js.map +1 -1
- package/dist/components/layout/DiffView.d.ts.map +1 -1
- package/dist/components/layout/DiffView.js +8 -7
- package/dist/components/layout/DiffView.js.map +1 -1
- package/dist/components/layout/StatusBar.d.ts +8 -0
- package/dist/components/layout/StatusBar.d.ts.map +1 -1
- package/dist/components/layout/StatusBar.js +195 -290
- package/dist/components/layout/StatusBar.js.map +1 -1
- package/dist/components/menu/CopyMenu.d.ts.map +1 -1
- package/dist/components/menu/CopyMenu.js +16 -13
- package/dist/components/menu/CopyMenu.js.map +1 -1
- package/dist/components/menu/McpSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/McpSelectionMenu.js +8 -7
- package/dist/components/menu/McpSelectionMenu.js.map +1 -1
- package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/ModelSelectionMenu.js +21 -20
- package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
- package/dist/components/menu/PathSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/PathSelectionMenu.js +5 -4
- package/dist/components/menu/PathSelectionMenu.js.map +1 -1
- package/dist/components/menu/ProfileSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/ProfileSelectionMenu.js +17 -20
- package/dist/components/menu/ProfileSelectionMenu.js.map +1 -1
- package/dist/components/menu/ProviderSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/ProviderSelectionMenu.js +37 -36
- package/dist/components/menu/ProviderSelectionMenu.js.map +1 -1
- package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/ResumeSelectionMenu.js +21 -22
- package/dist/components/menu/ResumeSelectionMenu.js.map +1 -1
- package/dist/components/menu/RewindMenu.d.ts.map +1 -1
- package/dist/components/menu/RewindMenu.js +5 -4
- package/dist/components/menu/RewindMenu.js.map +1 -1
- package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/SettingsSelectionMenu.js +15 -14
- package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
- package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/SettingsValueSelectionMenu.js +15 -14
- package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
- package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/SkillSelectionMenu.js +17 -18
- package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
- package/dist/components/menu/SlashCommandMenu.d.ts.map +1 -1
- package/dist/components/menu/SlashCommandMenu.js +5 -4
- package/dist/components/menu/SlashCommandMenu.js.map +1 -1
- package/dist/components/menu/StandaloneModelPickerApp.d.ts.map +1 -1
- package/dist/components/menu/StandaloneModelPickerApp.js +3 -2
- package/dist/components/menu/StandaloneModelPickerApp.js.map +1 -1
- package/dist/components/menu/SubagentPoolSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/SubagentPoolSelectionMenu.js +26 -24
- package/dist/components/menu/SubagentPoolSelectionMenu.js.map +1 -1
- package/dist/components/menu/settings-value-formatter.d.ts +3 -1
- package/dist/components/menu/settings-value-formatter.d.ts.map +1 -1
- package/dist/components/menu/settings-value-formatter.js +24 -25
- package/dist/components/menu/settings-value-formatter.js.map +1 -1
- package/dist/components/message/ChatMessage.d.ts.map +1 -1
- package/dist/components/message/ChatMessage.js +11 -7
- package/dist/components/message/ChatMessage.js.map +1 -1
- package/dist/components/message/CodeContextSearchRenderer.d.ts.map +1 -1
- package/dist/components/message/CodeContextSearchRenderer.js +14 -11
- package/dist/components/message/CodeContextSearchRenderer.js.map +1 -1
- package/dist/components/message/CommandGroupSummary.d.ts.map +1 -1
- package/dist/components/message/CommandGroupSummary.js +8 -36
- package/dist/components/message/CommandGroupSummary.js.map +1 -1
- package/dist/components/message/CommandMessage.d.ts.map +1 -1
- package/dist/components/message/CommandMessage.js +313 -329
- package/dist/components/message/CommandMessage.js.map +1 -1
- package/dist/components/message/GrepRenderer.d.ts.map +1 -1
- package/dist/components/message/GrepRenderer.js +12 -9
- package/dist/components/message/GrepRenderer.js.map +1 -1
- package/dist/components/message/MemoryRenderer.d.ts.map +1 -1
- package/dist/components/message/MemoryRenderer.js +45 -38
- package/dist/components/message/MemoryRenderer.js.map +1 -1
- package/dist/components/message/ReadFileRenderer.d.ts.map +1 -1
- package/dist/components/message/ReadFileRenderer.js +20 -16
- package/dist/components/message/ReadFileRenderer.js.map +1 -1
- package/dist/components/message/RunCodeRenderer.d.ts.map +1 -1
- package/dist/components/message/RunCodeRenderer.js +19 -14
- package/dist/components/message/RunCodeRenderer.js.map +1 -1
- package/dist/components/message/SubagentActivityMessage.d.ts +2 -2
- package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
- package/dist/components/message/SubagentActivityMessage.js +17 -28
- package/dist/components/message/SubagentActivityMessage.js.map +1 -1
- package/dist/components/message/WebFetchRenderer.d.ts.map +1 -1
- package/dist/components/message/WebFetchRenderer.js +16 -13
- package/dist/components/message/WebFetchRenderer.js.map +1 -1
- package/dist/components/message/WebSearchRenderer.d.ts.map +1 -1
- package/dist/components/message/WebSearchRenderer.js +20 -16
- package/dist/components/message/WebSearchRenderer.js.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.d.ts +12 -1
- package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.js +100 -147
- package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
- package/dist/components/prompt/ConfirmPrompt.d.ts.map +1 -1
- package/dist/components/prompt/ConfirmPrompt.js +7 -4
- package/dist/components/prompt/ConfirmPrompt.js.map +1 -1
- package/dist/components/prompt/QueuePausedPrompt.d.ts.map +1 -1
- package/dist/components/prompt/QueuePausedPrompt.js +7 -4
- package/dist/components/prompt/QueuePausedPrompt.js.map +1 -1
- package/dist/components/theme.d.ts +10 -52
- package/dist/components/theme.d.ts.map +1 -1
- package/dist/components/theme.js +11 -68
- package/dist/components/theme.js.map +1 -1
- package/dist/context/InputContext.d.ts +17 -0
- package/dist/context/InputContext.d.ts.map +1 -1
- package/dist/context/InputContext.js +12 -0
- package/dist/context/InputContext.js.map +1 -1
- package/dist/core/index.d.ts +2 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -7
- package/dist/core/index.js.map +1 -1
- package/dist/core/session-runtime.d.ts +72 -0
- package/dist/core/session-runtime.d.ts.map +1 -1
- package/dist/gateway/contracts.d.ts +1 -1
- package/dist/gateway/contracts.d.ts.map +1 -1
- package/dist/gateway/gateway.d.ts +32 -0
- package/dist/gateway/gateway.d.ts.map +1 -1
- package/dist/gateway/gateway.js +47 -2
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/persistence/contracts.d.ts +3 -10
- package/dist/gateway/persistence/contracts.d.ts.map +1 -1
- package/dist/gateway/persistence/contracts.js +2 -31
- package/dist/gateway/persistence/contracts.js.map +1 -1
- package/dist/gateway/runtime-factory.d.ts.map +1 -1
- package/dist/gateway/runtime-factory.js +4 -0
- package/dist/gateway/runtime-factory.js.map +1 -1
- package/dist/gateway/server-session.d.ts +3 -0
- package/dist/gateway/server-session.d.ts.map +1 -1
- package/dist/gateway/server-session.js +17 -20
- package/dist/gateway/server-session.js.map +1 -1
- package/dist/gateway/settings-rpc.d.ts +1 -1
- package/dist/gateway/settings-rpc.d.ts.map +1 -1
- package/dist/gateway/settings-rpc.js +4 -1
- package/dist/gateway/settings-rpc.js.map +1 -1
- package/dist/hooks/conversation-ui-reducer.d.ts +5 -2
- package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
- package/dist/hooks/conversation-ui-reducer.js +9 -2
- package/dist/hooks/conversation-ui-reducer.js.map +1 -1
- package/dist/hooks/settings-completion-config.d.ts.map +1 -1
- package/dist/hooks/settings-completion-config.js +2 -0
- package/dist/hooks/settings-completion-config.js.map +1 -1
- package/dist/hooks/use-app-keyboard-shortcuts.d.ts +6 -1
- package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -1
- package/dist/hooks/use-app-keyboard-shortcuts.js +17 -11
- package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +1 -0
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +2 -2
- package/dist/lib/agent-client.d.ts +8 -0
- package/dist/lib/agent-client.d.ts.map +1 -1
- package/dist/lib/agent-client.js +5 -1
- package/dist/lib/agent-client.js.map +1 -1
- package/dist/lib/agent-configuration.d.ts +9 -0
- package/dist/lib/agent-configuration.d.ts.map +1 -1
- package/dist/lib/agent-configuration.js +14 -0
- package/dist/lib/agent-configuration.js.map +1 -1
- package/dist/lib/agent-factory.d.ts +25 -4
- package/dist/lib/agent-factory.d.ts.map +1 -1
- package/dist/lib/agent-factory.js +6 -0
- package/dist/lib/agent-factory.js.map +1 -1
- package/dist/lib/subagent-bridge.d.ts +47 -5
- package/dist/lib/subagent-bridge.d.ts.map +1 -1
- package/dist/lib/subagent-bridge.js +112 -4
- package/dist/lib/subagent-bridge.js.map +1 -1
- package/dist/node_modules/@qduc/agent-wire/index.d.ts +73 -0
- package/dist/node_modules/@qduc/agent-wire/index.js +212 -0
- package/dist/node_modules/@qduc/agent-wire/package.json +1 -0
- package/dist/prompts/orchestrator-prompt.test.ts +9 -0
- package/dist/prompts/orchestrator.md +2 -0
- package/dist/prompts/subagent-delegation.d.ts.map +1 -1
- package/dist/prompts/subagent-delegation.js +3 -2
- package/dist/prompts/subagent-delegation.js.map +1 -1
- package/dist/prompts/subagent-delegation.test.ts +1 -0
- package/dist/prompts/subagent-delegation.ts +6 -2
- package/dist/providers/codex.provider.d.ts +3 -0
- package/dist/providers/codex.provider.d.ts.map +1 -1
- package/dist/providers/codex.provider.js +6 -4
- package/dist/providers/codex.provider.js.map +1 -1
- package/dist/providers/grok-auth.d.ts +3 -0
- package/dist/providers/grok-auth.d.ts.map +1 -1
- package/dist/providers/grok-auth.js +3 -1
- package/dist/providers/grok-auth.js.map +1 -1
- package/dist/providers/grok.provider.js +3 -3
- package/dist/providers/grok.provider.js.map +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/model-catalog/catalog.generated.d.ts +239 -171
- package/dist/providers/model-catalog/catalog.generated.d.ts.map +1 -1
- package/dist/providers/model-catalog/catalog.generated.js +238 -179
- package/dist/providers/model-catalog/catalog.generated.js.map +1 -1
- package/dist/providers/model-catalog/generate-catalog.d.ts.map +1 -1
- package/dist/providers/model-catalog/generate-catalog.js +13 -5
- package/dist/providers/model-catalog/generate-catalog.js.map +1 -1
- package/dist/providers/oauth-session-account.d.ts +16 -2
- package/dist/providers/oauth-session-account.d.ts.map +1 -1
- package/dist/providers/oauth-session-account.js +8 -17
- package/dist/providers/oauth-session-account.js.map +1 -1
- package/dist/providers/openai-chat-completions-model.d.ts.map +1 -1
- package/dist/providers/openai-chat-completions-model.js +5 -2
- package/dist/providers/openai-chat-completions-model.js.map +1 -1
- package/dist/providers/openai.provider.js +1 -1
- package/dist/providers/openai.provider.js.map +1 -1
- package/dist/providers/openrouter.provider.js +1 -1
- package/dist/providers/openrouter.provider.js.map +1 -1
- package/dist/providers/registry.d.ts +20 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +33 -16
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/web-search/exa.provider.d.ts.map +1 -1
- package/dist/providers/web-search/exa.provider.js +6 -3
- package/dist/providers/web-search/exa.provider.js.map +1 -1
- package/dist/providers/web-search/firecrawl.provider.d.ts +8 -0
- package/dist/providers/web-search/firecrawl.provider.d.ts.map +1 -0
- package/dist/providers/web-search/firecrawl.provider.js +59 -0
- package/dist/providers/web-search/firecrawl.provider.js.map +1 -0
- package/dist/providers/web-search/index.d.ts +5 -2
- package/dist/providers/web-search/index.d.ts.map +1 -1
- package/dist/providers/web-search/index.js +3 -1
- package/dist/providers/web-search/index.js.map +1 -1
- package/dist/providers/web-search/registry.d.ts +14 -0
- package/dist/providers/web-search/registry.d.ts.map +1 -1
- package/dist/providers/web-search/registry.js +45 -15
- package/dist/providers/web-search/registry.js.map +1 -1
- package/dist/providers/web-search/searxng.provider.d.ts +8 -0
- package/dist/providers/web-search/searxng.provider.d.ts.map +1 -0
- package/dist/providers/web-search/searxng.provider.js +56 -0
- package/dist/providers/web-search/searxng.provider.js.map +1 -0
- package/dist/providers/web-search/tavily.provider.d.ts.map +1 -1
- package/dist/providers/web-search/tavily.provider.js +8 -3
- package/dist/providers/web-search/tavily.provider.js.map +1 -1
- package/dist/providers/web-search/types.d.ts +14 -1
- package/dist/providers/web-search/types.d.ts.map +1 -1
- package/dist/services/agent-runtime/agent-resolver.d.ts.map +1 -1
- package/dist/services/agent-runtime/agent-resolver.js +1 -0
- package/dist/services/agent-runtime/agent-resolver.js.map +1 -1
- package/dist/services/agent-runtime/agent-runtime.d.ts +6 -1
- package/dist/services/agent-runtime/agent-runtime.d.ts.map +1 -1
- package/dist/services/agent-runtime/agent-runtime.js +11 -2
- package/dist/services/agent-runtime/agent-runtime.js.map +1 -1
- package/dist/services/agent-runtime/agent-spec.d.ts +14 -0
- package/dist/services/agent-runtime/agent-spec.d.ts.map +1 -0
- package/dist/services/agent-runtime/agent-spec.js +49 -0
- package/dist/services/agent-runtime/agent-spec.js.map +1 -0
- package/dist/services/agent-runtime/index.d.ts +3 -1
- package/dist/services/agent-runtime/index.d.ts.map +1 -1
- package/dist/services/agent-runtime/index.js +2 -0
- package/dist/services/agent-runtime/index.js.map +1 -1
- package/dist/services/agent-runtime/legacy-adapter.d.ts.map +1 -1
- package/dist/services/agent-runtime/legacy-adapter.js +5 -1
- package/dist/services/agent-runtime/legacy-adapter.js.map +1 -1
- package/dist/services/agent-runtime/permission-boundary.d.ts +95 -0
- package/dist/services/agent-runtime/permission-boundary.d.ts.map +1 -0
- package/dist/services/agent-runtime/permission-boundary.js +538 -0
- package/dist/services/agent-runtime/permission-boundary.js.map +1 -0
- package/dist/services/agent-runtime/resolved-agent.d.ts +2 -0
- package/dist/services/agent-runtime/resolved-agent.d.ts.map +1 -1
- package/dist/services/agent-runtime/types.d.ts +22 -1
- package/dist/services/agent-runtime/types.d.ts.map +1 -1
- package/dist/services/approval/background-subagent-approval-controller.d.ts +1 -0
- package/dist/services/approval/background-subagent-approval-controller.d.ts.map +1 -1
- package/dist/services/approval/background-subagent-approval-controller.js +3 -0
- package/dist/services/approval/background-subagent-approval-controller.js.map +1 -1
- package/dist/services/approval/background-subagent-approval-queue.d.ts +5 -0
- package/dist/services/approval/background-subagent-approval-queue.d.ts.map +1 -1
- package/dist/services/approval/background-subagent-approval-queue.js +18 -2
- package/dist/services/approval/background-subagent-approval-queue.js.map +1 -1
- package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
- package/dist/services/approval/non-interactive-approval-policy.js +10 -0
- package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
- package/dist/services/approval/shell-auto-approval-resolver.d.ts +2 -0
- package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
- package/dist/services/approval/shell-auto-approval-resolver.js +4 -2
- package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
- package/dist/services/conversation/conversation-adapter-factory.d.ts +1 -1
- package/dist/services/conversation/conversation-adapter-factory.d.ts.map +1 -1
- package/dist/services/conversation/conversation-adapter.d.ts +1 -1
- package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
- package/dist/services/conversation/conversation-adapter.js +32 -6
- package/dist/services/conversation/conversation-adapter.js.map +1 -1
- package/dist/services/conversation/conversation-admission-workflow.d.ts +2 -0
- package/dist/services/conversation/conversation-admission-workflow.d.ts.map +1 -1
- package/dist/services/conversation/conversation-admission-workflow.js +1 -1
- package/dist/services/conversation/conversation-admission-workflow.js.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.js +41 -21
- package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.types.d.ts +4 -3
- package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -1
- package/dist/services/conversation/conversation-runtime-factory.d.ts +1 -1
- package/dist/services/conversation/conversation-runtime-factory.d.ts.map +1 -1
- package/dist/services/conversation/conversation-runtime-factory.js +1 -1
- package/dist/services/conversation/conversation-runtime-factory.js.map +1 -1
- package/dist/services/conversation/conversation-service.d.ts +4 -1
- package/dist/services/conversation/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation/conversation-service.js +41 -1
- package/dist/services/conversation/conversation-service.js.map +1 -1
- package/dist/services/conversation/session-index/session-index-service.d.ts +1 -1
- package/dist/services/conversation/session-index/session-index-service.d.ts.map +1 -1
- package/dist/services/conversation/session-index/session-index-service.js +1 -1
- package/dist/services/conversation/session-index/session-index-service.js.map +1 -1
- package/dist/services/cost/model-cost.d.ts +6 -0
- package/dist/services/cost/model-cost.d.ts.map +1 -1
- package/dist/services/cost/model-cost.js +12 -0
- package/dist/services/cost/model-cost.js.map +1 -1
- package/dist/services/cost/pricing.d.ts +1 -1
- package/dist/services/cost/pricing.d.ts.map +1 -1
- package/dist/services/cost/pricing.js +5 -5
- package/dist/services/cost/pricing.js.map +1 -1
- package/dist/services/models/model-picker-host.d.ts.map +1 -1
- package/dist/services/models/model-picker-host.js +9 -5
- package/dist/services/models/model-picker-host.js.map +1 -1
- package/dist/services/queue/queue-controller.d.ts +3 -0
- package/dist/services/queue/queue-controller.d.ts.map +1 -1
- package/dist/services/queue/queue-controller.js +53 -5
- package/dist/services/queue/queue-controller.js.map +1 -1
- package/dist/services/retry/provider-failure-classification.d.ts +2 -0
- package/dist/services/retry/provider-failure-classification.d.ts.map +1 -1
- package/dist/services/retry/provider-failure-classification.js +43 -0
- package/dist/services/retry/provider-failure-classification.js.map +1 -1
- package/dist/services/sandboxed-code-host/host-worker.d.ts.map +1 -1
- package/dist/services/sandboxed-code-host/host-worker.js +3 -1
- package/dist/services/sandboxed-code-host/host-worker.js.map +1 -1
- package/dist/services/session/session-composition.d.ts +7 -1
- package/dist/services/session/session-composition.d.ts.map +1 -1
- package/dist/services/session/session-composition.js +68 -14
- package/dist/services/session/session-composition.js.map +1 -1
- package/dist/services/session/session-input-planner.d.ts +2 -0
- package/dist/services/session/session-input-planner.d.ts.map +1 -1
- package/dist/services/session/session-input-planner.js +4 -6
- package/dist/services/session/session-input-planner.js.map +1 -1
- package/dist/services/settings/settings-env.d.ts.map +1 -1
- package/dist/services/settings/settings-env.js +9 -0
- package/dist/services/settings/settings-env.js.map +1 -1
- package/dist/services/settings/settings-schema.d.ts +58 -0
- package/dist/services/settings/settings-schema.d.ts.map +1 -1
- package/dist/services/settings/settings-schema.js +32 -0
- package/dist/services/settings/settings-schema.js.map +1 -1
- package/dist/services/settings/settings-sources.d.ts +4 -0
- package/dist/services/settings/settings-sources.d.ts.map +1 -1
- package/dist/services/settings/settings-sources.js +4 -0
- package/dist/services/settings/settings-sources.js.map +1 -1
- package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -1
- package/dist/services/settings/settings-ui-metadata.js +6 -1
- package/dist/services/settings/settings-ui-metadata.js.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +2 -2
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js +10 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
- package/dist/services/shell/background-shell-output-store.d.ts +4 -2
- package/dist/services/shell/background-shell-output-store.d.ts.map +1 -1
- package/dist/services/shell/background-shell-output-store.js +9 -8
- package/dist/services/shell/background-shell-output-store.js.map +1 -1
- package/dist/services/shell/background-shell-watches.d.ts.map +1 -1
- package/dist/services/shell/background-shell-watches.js +20 -9
- package/dist/services/shell/background-shell-watches.js.map +1 -1
- package/dist/services/subagents/execution-runner.d.ts.map +1 -1
- package/dist/services/subagents/execution-runner.js +2 -1
- package/dist/services/subagents/execution-runner.js.map +1 -1
- package/dist/services/subagents/foreground-subagent-lease.d.ts +15 -0
- package/dist/services/subagents/foreground-subagent-lease.d.ts.map +1 -1
- package/dist/services/subagents/foreground-subagent-lease.js +42 -2
- package/dist/services/subagents/foreground-subagent-lease.js.map +1 -1
- package/dist/services/subagents/nested-runner.d.ts +1 -1
- package/dist/services/subagents/nested-runner.d.ts.map +1 -1
- package/dist/services/subagents/nested-runner.js +89 -22
- package/dist/services/subagents/nested-runner.js.map +1 -1
- package/dist/services/subagents/runtime.d.ts.map +1 -1
- package/dist/services/subagents/runtime.js +30 -4
- package/dist/services/subagents/runtime.js.map +1 -1
- package/dist/services/subagents/subagent-async-registry.d.ts +3 -0
- package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -1
- package/dist/services/subagents/subagent-async-registry.js +55 -10
- package/dist/services/subagents/subagent-async-registry.js.map +1 -1
- package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
- package/dist/services/subagents/subagent-manager.js +65 -3
- package/dist/services/subagents/subagent-manager.js.map +1 -1
- package/dist/services/subagents/subagent-role-pool-selector.d.ts +5 -1
- package/dist/services/subagents/subagent-role-pool-selector.d.ts.map +1 -1
- package/dist/services/subagents/subagent-role-pool-selector.js +24 -5
- package/dist/services/subagents/subagent-role-pool-selector.js.map +1 -1
- package/dist/services/subagents/subagent-run-control.d.ts.map +1 -1
- package/dist/services/subagents/subagent-run-control.js +3 -2
- package/dist/services/subagents/subagent-run-control.js.map +1 -1
- package/dist/services/subagents/tool-policy.d.ts +2 -2
- package/dist/services/subagents/tool-policy.d.ts.map +1 -1
- package/dist/services/subagents/tool-policy.js +8 -2
- package/dist/services/subagents/tool-policy.js.map +1 -1
- package/dist/services/subagents/types.d.ts +15 -2
- package/dist/services/subagents/types.d.ts.map +1 -1
- package/dist/services/subagents/types.js.map +1 -1
- package/dist/services/subagents/utils.d.ts +1 -1
- package/dist/services/subagents/utils.d.ts.map +1 -1
- package/dist/services/subagents/utils.js +5 -4
- package/dist/services/subagents/utils.js.map +1 -1
- package/dist/services/subagents/worker-worktree.d.ts +19 -1
- package/dist/services/subagents/worker-worktree.d.ts.map +1 -1
- package/dist/services/subagents/worker-worktree.js +128 -4
- package/dist/services/subagents/worker-worktree.js.map +1 -1
- package/dist/services/workspace/worktree-inventory.d.ts +6 -0
- package/dist/services/workspace/worktree-inventory.d.ts.map +1 -1
- package/dist/services/workspace/worktree-inventory.js +29 -1
- package/dist/services/workspace/worktree-inventory.js.map +1 -1
- package/dist/skins/SkinContext.d.ts +18 -0
- package/dist/skins/SkinContext.d.ts.map +1 -0
- package/dist/skins/SkinContext.js +23 -0
- package/dist/skins/SkinContext.js.map +1 -0
- package/dist/skins/cards/activity.d.ts +8 -0
- package/dist/skins/cards/activity.d.ts.map +1 -0
- package/dist/skins/cards/activity.js +23 -0
- package/dist/skins/cards/activity.js.map +1 -0
- package/dist/skins/cards/approval.d.ts +15 -0
- package/dist/skins/cards/approval.d.ts.map +1 -0
- package/dist/skins/cards/approval.js +64 -0
- package/dist/skins/cards/approval.js.map +1 -0
- package/dist/skins/cards/body.d.ts +14 -0
- package/dist/skins/cards/body.d.ts.map +1 -0
- package/dist/skins/cards/body.js +65 -0
- package/dist/skins/cards/body.js.map +1 -0
- package/dist/skins/cards/card.d.ts +28 -0
- package/dist/skins/cards/card.d.ts.map +1 -0
- package/dist/skins/cards/card.js +37 -0
- package/dist/skins/cards/card.js.map +1 -0
- package/dist/skins/cards/index.d.ts +9 -0
- package/dist/skins/cards/index.d.ts.map +1 -0
- package/dist/skins/cards/index.js +41 -0
- package/dist/skins/cards/index.js.map +1 -0
- package/dist/skins/cards/live-region.d.ts +16 -0
- package/dist/skins/cards/live-region.d.ts.map +1 -0
- package/dist/skins/cards/live-region.js +83 -0
- package/dist/skins/cards/live-region.js.map +1 -0
- package/dist/skins/cards/measure.d.ts +17 -0
- package/dist/skins/cards/measure.d.ts.map +1 -0
- package/dist/skins/cards/measure.js +29 -0
- package/dist/skins/cards/measure.js.map +1 -0
- package/dist/skins/cards/messages.d.ts +23 -0
- package/dist/skins/cards/messages.d.ts.map +1 -0
- package/dist/skins/cards/messages.js +80 -0
- package/dist/skins/cards/messages.js.map +1 -0
- package/dist/skins/cards/status.d.ts +9 -0
- package/dist/skins/cards/status.d.ts.map +1 -0
- package/dist/skins/cards/status.js +205 -0
- package/dist/skins/cards/status.js.map +1 -0
- package/dist/skins/cards/tools.d.ts +21 -0
- package/dist/skins/cards/tools.d.ts.map +1 -0
- package/dist/skins/cards/tools.js +101 -0
- package/dist/skins/cards/tools.js.map +1 -0
- package/dist/skins/cards/width.d.ts +4 -0
- package/dist/skins/cards/width.d.ts.map +1 -0
- package/dist/skins/cards/width.js +32 -0
- package/dist/skins/cards/width.js.map +1 -0
- package/dist/skins/classic/approval.d.ts +19 -0
- package/dist/skins/classic/approval.d.ts.map +1 -0
- package/dist/skins/classic/approval.js +50 -0
- package/dist/skins/classic/approval.js.map +1 -0
- package/dist/skins/classic/index.d.ts +7 -0
- package/dist/skins/classic/index.d.ts.map +1 -0
- package/dist/skins/classic/index.js +39 -0
- package/dist/skins/classic/index.js.map +1 -0
- package/dist/skins/classic/live-region.d.ts +19 -0
- package/dist/skins/classic/live-region.d.ts.map +1 -0
- package/dist/skins/classic/live-region.js +71 -0
- package/dist/skins/classic/live-region.js.map +1 -0
- package/dist/skins/classic/menu.d.ts +5 -0
- package/dist/skins/classic/menu.d.ts.map +1 -0
- package/dist/skins/classic/menu.js +20 -0
- package/dist/skins/classic/menu.js.map +1 -0
- package/dist/skins/classic/messages.d.ts +13 -0
- package/dist/skins/classic/messages.d.ts.map +1 -0
- package/dist/skins/classic/messages.js +65 -0
- package/dist/skins/classic/messages.js.map +1 -0
- package/dist/skins/classic/question.d.ts +5 -0
- package/dist/skins/classic/question.d.ts.map +1 -0
- package/dist/skins/classic/question.js +33 -0
- package/dist/skins/classic/question.js.map +1 -0
- package/dist/skins/classic/status.d.ts +10 -0
- package/dist/skins/classic/status.d.ts.map +1 -0
- package/dist/skins/classic/status.js +158 -0
- package/dist/skins/classic/status.js.map +1 -0
- package/dist/skins/classic/subagent.d.ts +5 -0
- package/dist/skins/classic/subagent.d.ts.map +1 -0
- package/dist/skins/classic/subagent.js +14 -0
- package/dist/skins/classic/subagent.js.map +1 -0
- package/dist/skins/classic/tool-section.d.ts +8 -0
- package/dist/skins/classic/tool-section.d.ts.map +1 -0
- package/dist/skins/classic/tool-section.js +20 -0
- package/dist/skins/classic/tool-section.js.map +1 -0
- package/dist/skins/classic/tools.d.ts +19 -0
- package/dist/skins/classic/tools.d.ts.map +1 -0
- package/dist/skins/classic/tools.js +72 -0
- package/dist/skins/classic/tools.js.map +1 -0
- package/dist/skins/ledger/activity.d.ts +6 -0
- package/dist/skins/ledger/activity.d.ts.map +1 -0
- package/dist/skins/ledger/activity.js +18 -0
- package/dist/skins/ledger/activity.js.map +1 -0
- package/dist/skins/ledger/approval.d.ts +17 -0
- package/dist/skins/ledger/approval.d.ts.map +1 -0
- package/dist/skins/ledger/approval.js +67 -0
- package/dist/skins/ledger/approval.js.map +1 -0
- package/dist/skins/ledger/body.d.ts +11 -0
- package/dist/skins/ledger/body.d.ts.map +1 -0
- package/dist/skins/ledger/body.js +77 -0
- package/dist/skins/ledger/body.js.map +1 -0
- package/dist/skins/ledger/chip.d.ts +27 -0
- package/dist/skins/ledger/chip.d.ts.map +1 -0
- package/dist/skins/ledger/chip.js +25 -0
- package/dist/skins/ledger/chip.js.map +1 -0
- package/dist/skins/ledger/index.d.ts +11 -0
- package/dist/skins/ledger/index.d.ts.map +1 -0
- package/dist/skins/ledger/index.js +44 -0
- package/dist/skins/ledger/index.js.map +1 -0
- package/dist/skins/ledger/live-region.d.ts +20 -0
- package/dist/skins/ledger/live-region.d.ts.map +1 -0
- package/dist/skins/ledger/live-region.js +89 -0
- package/dist/skins/ledger/live-region.js.map +1 -0
- package/dist/skins/ledger/messages.d.ts +17 -0
- package/dist/skins/ledger/messages.d.ts.map +1 -0
- package/dist/skins/ledger/messages.js +62 -0
- package/dist/skins/ledger/messages.js.map +1 -0
- package/dist/skins/ledger/status.d.ts +10 -0
- package/dist/skins/ledger/status.d.ts.map +1 -0
- package/dist/skins/ledger/status.js +302 -0
- package/dist/skins/ledger/status.js.map +1 -0
- package/dist/skins/ledger/tools.d.ts +20 -0
- package/dist/skins/ledger/tools.d.ts.map +1 -0
- package/dist/skins/ledger/tools.js +101 -0
- package/dist/skins/ledger/tools.js.map +1 -0
- package/dist/skins/names.d.ts +10 -0
- package/dist/skins/names.d.ts.map +1 -0
- package/dist/skins/names.js +9 -0
- package/dist/skins/names.js.map +1 -0
- package/dist/skins/rail/activity.d.ts +8 -0
- package/dist/skins/rail/activity.d.ts.map +1 -0
- package/dist/skins/rail/activity.js +23 -0
- package/dist/skins/rail/activity.js.map +1 -0
- package/dist/skins/rail/approval.d.ts +16 -0
- package/dist/skins/rail/approval.d.ts.map +1 -0
- package/dist/skins/rail/approval.js +45 -0
- package/dist/skins/rail/approval.js.map +1 -0
- package/dist/skins/rail/body.d.ts +19 -0
- package/dist/skins/rail/body.d.ts.map +1 -0
- package/dist/skins/rail/body.js +69 -0
- package/dist/skins/rail/body.js.map +1 -0
- package/dist/skins/rail/index.d.ts +12 -0
- package/dist/skins/rail/index.d.ts.map +1 -0
- package/dist/skins/rail/index.js +44 -0
- package/dist/skins/rail/index.js.map +1 -0
- package/dist/skins/rail/live-region.d.ts +19 -0
- package/dist/skins/rail/live-region.d.ts.map +1 -0
- package/dist/skins/rail/live-region.js +88 -0
- package/dist/skins/rail/live-region.js.map +1 -0
- package/dist/skins/rail/messages.d.ts +21 -0
- package/dist/skins/rail/messages.d.ts.map +1 -0
- package/dist/skins/rail/messages.js +90 -0
- package/dist/skins/rail/messages.js.map +1 -0
- package/dist/skins/rail/parts.d.ts +25 -0
- package/dist/skins/rail/parts.d.ts.map +1 -0
- package/dist/skins/rail/parts.js +37 -0
- package/dist/skins/rail/parts.js.map +1 -0
- package/dist/skins/rail/status.d.ts +10 -0
- package/dist/skins/rail/status.d.ts.map +1 -0
- package/dist/skins/rail/status.js +147 -0
- package/dist/skins/rail/status.js.map +1 -0
- package/dist/skins/rail/tools.d.ts +28 -0
- package/dist/skins/rail/tools.d.ts.map +1 -0
- package/dist/skins/rail/tools.js +85 -0
- package/dist/skins/rail/tools.js.map +1 -0
- package/dist/skins/registry.d.ts +6 -0
- package/dist/skins/registry.d.ts.map +1 -0
- package/dist/skins/registry.js +15 -0
- package/dist/skins/registry.js.map +1 -0
- package/dist/skins/shared/gauge.d.ts +17 -0
- package/dist/skins/shared/gauge.d.ts.map +1 -0
- package/dist/skins/shared/gauge.js +29 -0
- package/dist/skins/shared/gauge.js.map +1 -0
- package/dist/skins/shared/limits.d.ts +3 -0
- package/dist/skins/shared/limits.d.ts.map +1 -0
- package/dist/skins/shared/limits.js +3 -0
- package/dist/skins/shared/limits.js.map +1 -0
- package/dist/skins/shared/spinner.d.ts +14 -0
- package/dist/skins/shared/spinner.d.ts.map +1 -0
- package/dist/skins/shared/spinner.js +25 -0
- package/dist/skins/shared/spinner.js.map +1 -0
- package/dist/skins/testing/conformance.d.ts +8 -0
- package/dist/skins/testing/conformance.d.ts.map +1 -0
- package/dist/skins/testing/conformance.js +34 -0
- package/dist/skins/testing/conformance.js.map +1 -0
- package/dist/skins/testing/scenes.d.ts +45 -0
- package/dist/skins/testing/scenes.d.ts.map +1 -0
- package/dist/skins/testing/scenes.js +466 -0
- package/dist/skins/testing/scenes.js.map +1 -0
- package/dist/skins/types.d.ts +294 -0
- package/dist/skins/types.d.ts.map +1 -0
- package/dist/skins/types.js +10 -0
- package/dist/skins/types.js.map +1 -0
- package/dist/skins/zen/activity.d.ts +7 -0
- package/dist/skins/zen/activity.d.ts.map +1 -0
- package/dist/skins/zen/activity.js +22 -0
- package/dist/skins/zen/activity.js.map +1 -0
- package/dist/skins/zen/approval.d.ts +20 -0
- package/dist/skins/zen/approval.d.ts.map +1 -0
- package/dist/skins/zen/approval.js +67 -0
- package/dist/skins/zen/approval.js.map +1 -0
- package/dist/skins/zen/body.d.ts +14 -0
- package/dist/skins/zen/body.d.ts.map +1 -0
- package/dist/skins/zen/body.js +82 -0
- package/dist/skins/zen/body.js.map +1 -0
- package/dist/skins/zen/index.d.ts +12 -0
- package/dist/skins/zen/index.d.ts.map +1 -0
- package/dist/skins/zen/index.js +44 -0
- package/dist/skins/zen/index.js.map +1 -0
- package/dist/skins/zen/live-region.d.ts +21 -0
- package/dist/skins/zen/live-region.d.ts.map +1 -0
- package/dist/skins/zen/live-region.js +77 -0
- package/dist/skins/zen/live-region.js.map +1 -0
- package/dist/skins/zen/messages.d.ts +27 -0
- package/dist/skins/zen/messages.d.ts.map +1 -0
- package/dist/skins/zen/messages.js +81 -0
- package/dist/skins/zen/messages.js.map +1 -0
- package/dist/skins/zen/status.d.ts +11 -0
- package/dist/skins/zen/status.d.ts.map +1 -0
- package/dist/skins/zen/status.js +177 -0
- package/dist/skins/zen/status.js.map +1 -0
- package/dist/skins/zen/style.d.ts +26 -0
- package/dist/skins/zen/style.d.ts.map +1 -0
- package/dist/skins/zen/style.js +14 -0
- package/dist/skins/zen/style.js.map +1 -0
- package/dist/skins/zen/tools.d.ts +23 -0
- package/dist/skins/zen/tools.d.ts.map +1 -0
- package/dist/skins/zen/tools.js +81 -0
- package/dist/skins/zen/tools.js.map +1 -0
- package/dist/skins/zen/width.d.ts +12 -0
- package/dist/skins/zen/width.d.ts.map +1 -0
- package/dist/skins/zen/width.js +27 -0
- package/dist/skins/zen/width.js.map +1 -0
- package/dist/theme/ThemeContext.d.ts +26 -0
- package/dist/theme/ThemeContext.d.ts.map +1 -0
- package/dist/theme/ThemeContext.js +24 -0
- package/dist/theme/ThemeContext.js.map +1 -0
- package/dist/theme/detect-terminal-background.d.ts +29 -0
- package/dist/theme/detect-terminal-background.d.ts.map +1 -0
- package/dist/theme/detect-terminal-background.js +72 -0
- package/dist/theme/detect-terminal-background.js.map +1 -0
- package/dist/theme/palettes.d.ts +84 -0
- package/dist/theme/palettes.d.ts.map +1 -0
- package/dist/theme/palettes.js +175 -0
- package/dist/theme/palettes.js.map +1 -0
- package/dist/theme/resolve-theme.d.ts +44 -0
- package/dist/theme/resolve-theme.d.ts.map +1 -0
- package/dist/theme/resolve-theme.js +72 -0
- package/dist/theme/resolve-theme.js.map +1 -0
- package/dist/tools/agent/propose-goal.d.ts +17 -0
- package/dist/tools/agent/propose-goal.d.ts.map +1 -0
- package/dist/tools/agent/propose-goal.js +64 -0
- package/dist/tools/agent/propose-goal.js.map +1 -0
- package/dist/tools/agent/run-subagent-async.d.ts +61 -3
- package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
- package/dist/tools/agent/run-subagent-async.js +13 -4
- package/dist/tools/agent/run-subagent-async.js.map +1 -1
- package/dist/tools/agent/run-subagent.d.ts +73 -7
- package/dist/tools/agent/run-subagent.d.ts.map +1 -1
- package/dist/tools/agent/run-subagent.js +84 -22
- package/dist/tools/agent/run-subagent.js.map +1 -1
- package/dist/tools/file/create-file.js +1 -1
- package/dist/tools/file/create-file.js.map +1 -1
- package/dist/tools/system/run-code/index.d.ts +1 -1
- package/dist/tools/system/run-code/index.d.ts.map +1 -1
- package/dist/tools/system/run-code/index.js +1 -1
- package/dist/tools/system/run-code/index.js.map +1 -1
- package/dist/tools/system/run-code/run-code-agent-capability.d.ts +99 -0
- package/dist/tools/system/run-code/run-code-agent-capability.d.ts.map +1 -0
- package/dist/tools/system/run-code/run-code-agent-capability.js +384 -0
- package/dist/tools/system/run-code/run-code-agent-capability.js.map +1 -0
- package/dist/tools/system/run-code/run-code-runtime.d.ts +9 -0
- package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -1
- package/dist/tools/system/run-code/run-code-runtime.js +141 -7
- package/dist/tools/system/run-code/run-code-runtime.js.map +1 -1
- package/dist/tools/system/run-code/run-code.d.ts +12 -1
- package/dist/tools/system/run-code/run-code.d.ts.map +1 -1
- package/dist/tools/system/run-code/run-code.js +48 -1
- package/dist/tools/system/run-code/run-code.js.map +1 -1
- package/dist/tools/tool-names.d.ts +1 -0
- package/dist/tools/tool-names.d.ts.map +1 -1
- package/dist/tools/tool-names.js +1 -0
- package/dist/tools/tool-names.js.map +1 -1
- package/dist/tools/web/web-search.d.ts +18 -0
- package/dist/tools/web/web-search.d.ts.map +1 -1
- package/dist/tools/web/web-search.js +29 -4
- package/dist/tools/web/web-search.js.map +1 -1
- package/dist/types/message.d.ts +1 -0
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js +13 -0
- package/dist/types/message.js.map +1 -1
- package/dist/utils/conversation/conversation-event-handler.js +1 -1
- package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
- package/dist/utils/shell/execute-shell.js +1 -1
- package/dist/utils/shell/execute-shell.js.map +1 -1
- package/dist/utils/value-suggestions.d.ts.map +1 -1
- package/dist/utils/value-suggestions.js +16 -0
- package/dist/utils/value-suggestions.js.map +1 -1
- package/package.json +2 -1
|
@@ -4,7 +4,8 @@ import { generateDiff } from '../../utils/output/diff.js';
|
|
|
4
4
|
import { asDisplayArray, asDisplayString } from '../../utils/tool-args-display.js';
|
|
5
5
|
import { TOOL_NAME_APPLY_PATCH, TOOL_NAME_CREATE_FILE, TOOL_NAME_SEARCH_REPLACE } from '../../tools/tool-names.js';
|
|
6
6
|
import { countDiffStats, extractErrorMessage, formatToolArgs, getFirstParagraph, getMatchCount, isStructuredToolError, isSearchLikeTool, parseCodeOutlineOutput, parseRunCodeTrace, truncateOutputLines, parseFindFilesOutput, parseSubagentOutput, stripRgErrorLines, } from './command-message-helpers.js';
|
|
7
|
-
import {
|
|
7
|
+
import { useTheme } from '../theme.js';
|
|
8
|
+
import { useSkin } from '../../skins/SkinContext.js';
|
|
8
9
|
import DiffView from '../layout/DiffView.js';
|
|
9
10
|
import { useCommandVisibility } from './useCommandVisibility.js';
|
|
10
11
|
import ReadFileRenderer from './ReadFileRenderer.js';
|
|
@@ -49,12 +50,14 @@ const getConciseAskUserResponse = (output) => {
|
|
|
49
50
|
return output;
|
|
50
51
|
};
|
|
51
52
|
const CommandMessage = ({ command, output: rawOutput, status, success, failureReason, toolName, toolArgs, isApprovalRejection, autoApprovedByLlm, hadApproval, displayMode = 'standard', textColor, isSubagent = false, awaitingDecision = false, }) => {
|
|
53
|
+
const theme = useTheme();
|
|
54
|
+
const { ToolFrame, ToolHeader, ToolSection } = useSkin();
|
|
52
55
|
const { isVisible, isRunning } = useCommandVisibility(status);
|
|
53
56
|
const isWaiting = awaitingDecision;
|
|
54
57
|
const isQueued = status === 'pending' && !awaitingDecision;
|
|
55
58
|
const isExecuting = isRunning && !awaitingDecision;
|
|
56
59
|
const runningElapsedSeconds = useRunningElapsedSeconds(isExecuting);
|
|
57
|
-
const runningElapsedLabel = isWaiting ? (React.createElement(Text, { color:
|
|
60
|
+
const runningElapsedLabel = isWaiting ? (React.createElement(Text, { color: theme.textSubtle }, " (waiting)")) : isQueued ? (React.createElement(Text, { color: theme.textSubtle }, " (queued)")) : isExecuting ? (React.createElement(Text, { color: theme.warning },
|
|
58
61
|
" (",
|
|
59
62
|
runningElapsedSeconds,
|
|
60
63
|
"s)")) : null;
|
|
@@ -105,7 +108,7 @@ const CommandMessage = ({ command, output: rawOutput, status, success, failureRe
|
|
|
105
108
|
if (isShell) {
|
|
106
109
|
return (React.createElement(React.Fragment, null,
|
|
107
110
|
React.createElement(Text, { bold: true }, command),
|
|
108
|
-
runtime && React.createElement(Text, { color:
|
|
111
|
+
runtime && React.createElement(Text, { color: theme.textSubtle },
|
|
109
112
|
" (",
|
|
110
113
|
runtime,
|
|
111
114
|
")")));
|
|
@@ -308,26 +311,18 @@ const CommandMessage = ({ command, output: rawOutput, status, success, failureRe
|
|
|
308
311
|
}
|
|
309
312
|
// Depend on the whole `toolArgs`, not `toolArgs?.runs`: the React Compiler infers the
|
|
310
313
|
// former and refuses to preserve the memo when the declared deps are narrower.
|
|
311
|
-
}, [toolName, command, runtime, formattedArgs, toolArgs, isBackgroundSubagentLaunch, success]);
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
const headerColor = TOOL_STATUS_COLOR[statusKind];
|
|
324
|
-
return (React.createElement(Box, null,
|
|
325
|
-
React.createElement(Text, { color: headerColor },
|
|
326
|
-
TOOL_STATUS_GLYPH[statusKind],
|
|
327
|
-
" ",
|
|
328
|
-
displayAction,
|
|
329
|
-
runningElapsedLabel)));
|
|
330
|
-
};
|
|
314
|
+
}, [toolName, command, runtime, formattedArgs, toolArgs, isBackgroundSubagentLaunch, success, theme.textSubtle]);
|
|
315
|
+
// isApprovalRejection carries no `success` value of its own — it is a distinct
|
|
316
|
+
// outcome from a normal failed run — so it is checked first and maps to the
|
|
317
|
+
// same 'failed' glyph/color as success === false.
|
|
318
|
+
const statusKind = isApprovalRejection || success === false || status === 'unknown'
|
|
319
|
+
? 'failed'
|
|
320
|
+
: isWaiting || isQueued
|
|
321
|
+
? 'pending'
|
|
322
|
+
: isRunning
|
|
323
|
+
? 'running'
|
|
324
|
+
: 'completed';
|
|
325
|
+
const renderStandardHeader = () => (React.createElement(ToolHeader, { toolName: toolName, status: statusKind, display: "standard", action: displayAction, meta: runningElapsedLabel }));
|
|
331
326
|
const changeStats = useMemo(() => {
|
|
332
327
|
const diffText = toolName === TOOL_NAME_APPLY_PATCH
|
|
333
328
|
? toolArgs?.diff
|
|
@@ -345,11 +340,11 @@ const CommandMessage = ({ command, output: rawOutput, status, success, failureRe
|
|
|
345
340
|
const changeStatsElement = changeStats ? (React.createElement(React.Fragment, null,
|
|
346
341
|
' ',
|
|
347
342
|
"(",
|
|
348
|
-
React.createElement(Text, { color:
|
|
343
|
+
React.createElement(Text, { color: theme.textMuted },
|
|
349
344
|
"+",
|
|
350
345
|
changeStats.added),
|
|
351
346
|
' ',
|
|
352
|
-
React.createElement(Text, { color:
|
|
347
|
+
React.createElement(Text, { color: theme.danger },
|
|
353
348
|
"-",
|
|
354
349
|
changeStats.removed),
|
|
355
350
|
")")) : null;
|
|
@@ -362,8 +357,8 @@ const CommandMessage = ({ command, output: rawOutput, status, success, failureRe
|
|
|
362
357
|
return 0;
|
|
363
358
|
return getMatchCount(toolName, command, output);
|
|
364
359
|
}, [displayMode, toolName, command, isRunning, isQueued, isApprovalRejection, output]);
|
|
365
|
-
const matchCountElement = matchCount > 0 ? (React.createElement(
|
|
366
|
-
React.createElement(Text, { color:
|
|
360
|
+
const matchCountElement = matchCount > 0 ? (React.createElement(ToolSection, { variant: "indent" },
|
|
361
|
+
React.createElement(Text, { color: theme.textSubtle },
|
|
367
362
|
"(",
|
|
368
363
|
matchCount,
|
|
369
364
|
" match",
|
|
@@ -371,340 +366,329 @@ const CommandMessage = ({ command, output: rawOutput, status, success, failureRe
|
|
|
371
366
|
")"))) : null;
|
|
372
367
|
// Concise mode draws the header alone, so a refused nested call would otherwise
|
|
373
368
|
// vanish. Counts on a clean run would be noise, so only trouble is announced.
|
|
374
|
-
const runCodeTroubleElement = displayMode === 'concise' && runCodeTrace && runCodeTrace.troubledCount > 0 ? (React.createElement(Text, { color:
|
|
369
|
+
const runCodeTroubleElement = displayMode === 'concise' && runCodeTrace && runCodeTrace.troubledCount > 0 ? (React.createElement(Text, { color: theme.danger },
|
|
375
370
|
" (",
|
|
376
371
|
runCodeTrace.troubledCount,
|
|
377
372
|
" refused)")) : null;
|
|
378
|
-
const autoApprovalLabel = autoApprovedByLlm ? React.createElement(Text, { color:
|
|
373
|
+
const autoApprovalLabel = autoApprovedByLlm ? React.createElement(Text, { color: theme.textSubtle }, "(Auto approved by LLM)") : null;
|
|
379
374
|
if (!isVisible && !isSubagent) {
|
|
380
375
|
return null;
|
|
381
376
|
}
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
status === '
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
? '
|
|
394
|
-
:
|
|
395
|
-
? '
|
|
396
|
-
:
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
|
|
377
|
+
// The special renderers are FCs invoked as plain functions, so this can type as ReactNode | Promise<ReactNode>.
|
|
378
|
+
const renderContent = () => {
|
|
379
|
+
if (displayMode === 'concise') {
|
|
380
|
+
if (isSubagent) {
|
|
381
|
+
const isFailed = status === 'failed' ||
|
|
382
|
+
status === 'aborted' ||
|
|
383
|
+
status === 'unknown' ||
|
|
384
|
+
isApprovalRejection ||
|
|
385
|
+
success === false ||
|
|
386
|
+
Boolean(failureReason);
|
|
387
|
+
const subagentStatusKind = isFailed
|
|
388
|
+
? 'failed'
|
|
389
|
+
: isWaiting || isQueued
|
|
390
|
+
? 'pending'
|
|
391
|
+
: isRunning
|
|
392
|
+
? 'running'
|
|
393
|
+
: 'completed';
|
|
394
|
+
const actionText = isFailed ? command : displayAction;
|
|
395
|
+
return (React.createElement(ToolHeader, { toolName: toolName, status: subagentStatusKind, display: "concise", nested: true, action: actionText, meta: runningElapsedLabel }));
|
|
396
|
+
}
|
|
397
|
+
if (isApprovalRejection) {
|
|
398
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
399
|
+
React.createElement(ToolHeader, { toolName: toolName, status: "rejected", display: "concise", action: displayAction, trailing: changeStatsElement, textColor: textColor }),
|
|
400
|
+
React.createElement(Text, { color: textColor || theme.textMuted },
|
|
401
|
+
" \u2192 DENIED: ",
|
|
402
|
+
denialReason)));
|
|
403
|
+
}
|
|
404
|
+
if (isRunning || isQueued || isWaiting) {
|
|
405
|
+
const inFlightStatusKind = isWaiting || isQueued ? 'pending' : 'running';
|
|
406
|
+
return (React.createElement(ToolHeader, { toolName: toolName, status: inFlightStatusKind, display: "concise", action: displayAction, meta: runningElapsedLabel, trailing: changeStatsElement }));
|
|
407
|
+
}
|
|
408
|
+
if (success === false || failureReason) {
|
|
409
|
+
const parsedOutputError = extractErrorMessage(output);
|
|
410
|
+
const errorMsg = failureReason || parsedOutputError || 'failed';
|
|
411
|
+
const summarizeRawError = !failureReason && !isApprovalRejection && isStructuredToolError(output);
|
|
412
|
+
const displayErrorMsg = isSearchLikeTool(toolName, command)
|
|
413
|
+
? stripRgErrorLines(errorMsg).trim() || 'failed'
|
|
414
|
+
: errorMsg;
|
|
415
|
+
// Truncate error message like standard mode truncates output
|
|
416
|
+
const truncatedError = (() => {
|
|
417
|
+
const lines = displayErrorMsg.trimEnd().split('\n');
|
|
418
|
+
const maxLines = 3;
|
|
419
|
+
if (lines.length > maxLines + 1) {
|
|
420
|
+
const firstPart = lines.slice(0, maxLines).join('\n');
|
|
421
|
+
const lastLine = lines[lines.length - 1];
|
|
422
|
+
return `${firstPart}\n... (${lines.length - maxLines - 1} more lines)\n${lastLine}`;
|
|
423
|
+
}
|
|
424
|
+
return displayErrorMsg;
|
|
425
|
+
})();
|
|
426
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
427
|
+
React.createElement(ToolHeader, { toolName: toolName, status: "failed", display: "concise", action: displayAction, trailing: changeStatsElement, textColor: textColor }),
|
|
428
|
+
matchCountElement,
|
|
429
|
+
summarizeRawError && (React.createElement(React.Fragment, null,
|
|
430
|
+
React.createElement(Text, { color: textColor || theme.textMuted }, "Tool failed."),
|
|
431
|
+
React.createElement(Text, { color: textColor || theme.textMuted }, "Review the error details and retry after correcting the issue."))),
|
|
432
|
+
matchCount === 0 && React.createElement(Text, { color: textColor || theme.textMuted }, truncatedError)));
|
|
433
|
+
}
|
|
434
|
+
// Success (one line)
|
|
435
|
+
if (toolName === 'automatic_memory') {
|
|
436
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
437
|
+
renderStandardHeader(),
|
|
438
|
+
React.createElement(Text, { color: textColor || theme.textMuted }, output)));
|
|
439
|
+
}
|
|
440
|
+
if (toolName === 'ask_user') {
|
|
441
|
+
const responseText = getConciseAskUserResponse(output);
|
|
442
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
443
|
+
React.createElement(ToolHeader, { toolName: toolName, status: "completed", display: "concise", action: displayAction, textColor: textColor }),
|
|
444
|
+
React.createElement(Text, { color: textColor || theme.textMuted },
|
|
445
|
+
" Response: ",
|
|
446
|
+
responseText)));
|
|
447
|
+
}
|
|
448
|
+
if (toolName === 'ask_mentor') {
|
|
449
|
+
const firstParagraph = getFirstParagraph(output, 200);
|
|
450
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
451
|
+
React.createElement(ToolHeader, { toolName: toolName, status: "completed", display: "concise", action: displayAction, textColor: textColor }),
|
|
452
|
+
React.createElement(Text, { color: textColor || theme.textMuted },
|
|
453
|
+
" Response: ",
|
|
454
|
+
firstParagraph)));
|
|
455
|
+
}
|
|
444
456
|
return (React.createElement(Box, { flexDirection: "column" },
|
|
445
|
-
React.createElement(
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
displayAction,
|
|
449
|
-
changeStatsElement),
|
|
457
|
+
React.createElement(ToolHeader, { toolName: toolName, status: "completed", display: "concise", action: displayAction, trailing: React.createElement(React.Fragment, null,
|
|
458
|
+
runCodeTroubleElement,
|
|
459
|
+
changeStatsElement), textColor: textColor }),
|
|
450
460
|
matchCountElement,
|
|
451
|
-
|
|
452
|
-
React.createElement(Text, { color: textColor || COLOR_TEXT_MUTED }, "Tool failed."),
|
|
453
|
-
React.createElement(Text, { color: textColor || COLOR_TEXT_MUTED }, "Review the error details and retry after correcting the issue."))),
|
|
454
|
-
matchCount === 0 && React.createElement(Text, { color: textColor || COLOR_TEXT_MUTED }, truncatedError)));
|
|
461
|
+
autoApprovalLabel));
|
|
455
462
|
}
|
|
456
|
-
|
|
457
|
-
|
|
463
|
+
const outputText = output?.trim() ? output : isRunning ? '(running...)' : isQueued ? '(queued)' : '(no output)';
|
|
464
|
+
const displayed = outputText && outputText !== '(no output)' ? truncateOutputLines(output || '') : outputText;
|
|
465
|
+
const actionableErrorSummary = success === false && !failureReason && !isApprovalRejection && isStructuredToolError(output) ? (React.createElement(React.Fragment, null,
|
|
466
|
+
React.createElement(Text, { color: textColor || theme.textMuted }, "Tool failed."),
|
|
467
|
+
React.createElement(Text, { color: textColor || theme.textMuted }, "Review the error details and retry after correcting the issue."))) : null;
|
|
468
|
+
// Special handling for apply_patch
|
|
469
|
+
if (toolName === TOOL_NAME_APPLY_PATCH && toolArgs) {
|
|
470
|
+
if (hadApproval) {
|
|
471
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
472
|
+
React.createElement(Text, { color: success === false ? theme.danger : theme.toolOutput }, displayed)));
|
|
473
|
+
}
|
|
458
474
|
return (React.createElement(Box, { flexDirection: "column" },
|
|
459
475
|
renderStandardHeader(),
|
|
460
|
-
|
|
476
|
+
actionableErrorSummary,
|
|
477
|
+
toolArgs.diff && success !== false && React.createElement(DiffView, { diff: toolArgs.diff }),
|
|
478
|
+
failureReason && React.createElement(Text, { color: theme.danger },
|
|
479
|
+
"Error: ",
|
|
480
|
+
failureReason),
|
|
481
|
+
React.createElement(Text, { color: success === false ? theme.danger : theme.toolOutput }, displayed)));
|
|
461
482
|
}
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
" Response: ",
|
|
471
|
-
responseText)));
|
|
472
|
-
}
|
|
473
|
-
if (toolName === 'ask_mentor') {
|
|
474
|
-
const firstParagraph = getFirstParagraph(output, 200);
|
|
483
|
+
// Special handling for search_replace
|
|
484
|
+
if (toolName === TOOL_NAME_SEARCH_REPLACE && toolArgs) {
|
|
485
|
+
// For search_replace that had an approval prompt (user said 'y'), only show output
|
|
486
|
+
if (hadApproval) {
|
|
487
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
488
|
+
React.createElement(Text, { color: success === false ? theme.danger : theme.toolOutput }, displayed)));
|
|
489
|
+
}
|
|
490
|
+
// For auto-approved search_replace (no approval prompt), show diff + output
|
|
475
491
|
return (React.createElement(Box, { flexDirection: "column" },
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
492
|
+
renderStandardHeader(),
|
|
493
|
+
actionableErrorSummary,
|
|
494
|
+
React.createElement(DiffView, { diff: diff }),
|
|
495
|
+
failureReason && React.createElement(Text, { color: theme.danger },
|
|
496
|
+
"Error: ",
|
|
497
|
+
failureReason),
|
|
498
|
+
React.createElement(Text, { color: success === false ? theme.danger : theme.toolOutput }, displayed)));
|
|
483
499
|
}
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
React.createElement(Text, { color: TOOL_STATUS_COLOR.completed, bold: true }, TOOL_STATUS_GLYPH.completed),
|
|
487
|
-
' ',
|
|
488
|
-
displayAction,
|
|
489
|
-
runCodeTroubleElement,
|
|
490
|
-
changeStatsElement),
|
|
491
|
-
matchCountElement,
|
|
492
|
-
autoApprovalLabel));
|
|
493
|
-
}
|
|
494
|
-
const outputText = output?.trim() ? output : isRunning ? '(running...)' : isQueued ? '(queued)' : '(no output)';
|
|
495
|
-
const displayed = outputText && outputText !== '(no output)' ? truncateOutputLines(output || '') : outputText;
|
|
496
|
-
const actionableErrorSummary = success === false && !failureReason && !isApprovalRejection && isStructuredToolError(output) ? (React.createElement(React.Fragment, null,
|
|
497
|
-
React.createElement(Text, { color: textColor || COLOR_TEXT_MUTED }, "Tool failed."),
|
|
498
|
-
React.createElement(Text, { color: textColor || COLOR_TEXT_MUTED }, "Review the error details and retry after correcting the issue."))) : null;
|
|
499
|
-
// Special handling for apply_patch
|
|
500
|
-
if (toolName === TOOL_NAME_APPLY_PATCH && toolArgs) {
|
|
501
|
-
if (hadApproval) {
|
|
500
|
+
// Special handling for create_file
|
|
501
|
+
if (toolName === TOOL_NAME_CREATE_FILE && toolArgs) {
|
|
502
502
|
return (React.createElement(Box, { flexDirection: "column" },
|
|
503
|
-
|
|
503
|
+
renderStandardHeader(),
|
|
504
|
+
actionableErrorSummary,
|
|
505
|
+
success !== false && React.createElement(DiffView, { diff: createFileDiffLines }),
|
|
506
|
+
failureReason && React.createElement(Text, { color: theme.danger },
|
|
507
|
+
"Error: ",
|
|
508
|
+
failureReason),
|
|
509
|
+
React.createElement(Text, { color: success === false ? theme.danger : theme.toolOutput }, displayed)));
|
|
504
510
|
}
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
// Special handling for search_replace
|
|
515
|
-
if (toolName === TOOL_NAME_SEARCH_REPLACE && toolArgs) {
|
|
516
|
-
// For search_replace that had an approval prompt (user said 'y'), only show output
|
|
517
|
-
if (hadApproval) {
|
|
511
|
+
if ((toolName === 'run_subagent_async' || isBackgroundSubagentLaunch) && success === false) {
|
|
512
|
+
let launchError = output;
|
|
513
|
+
try {
|
|
514
|
+
const parsed = JSON.parse(output);
|
|
515
|
+
launchError = parsed?.error?.message ?? parsed?.error ?? output;
|
|
516
|
+
}
|
|
517
|
+
catch {
|
|
518
|
+
// The formatter may already have reduced the structured failure to text.
|
|
519
|
+
}
|
|
518
520
|
return (React.createElement(Box, { flexDirection: "column" },
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
renderStandardHeader(),
|
|
524
|
-
actionableErrorSummary,
|
|
525
|
-
React.createElement(DiffView, { diff: diff }),
|
|
526
|
-
failureReason && React.createElement(Text, { color: COLOR_DANGER },
|
|
527
|
-
"Error: ",
|
|
528
|
-
failureReason),
|
|
529
|
-
React.createElement(Text, { color: success === false ? COLOR_DANGER : COLOR_TOOL_OUTPUT }, displayed)));
|
|
530
|
-
}
|
|
531
|
-
// Special handling for create_file
|
|
532
|
-
if (toolName === TOOL_NAME_CREATE_FILE && toolArgs) {
|
|
533
|
-
return (React.createElement(Box, { flexDirection: "column" },
|
|
534
|
-
renderStandardHeader(),
|
|
535
|
-
actionableErrorSummary,
|
|
536
|
-
success !== false && React.createElement(DiffView, { diff: createFileDiffLines }),
|
|
537
|
-
failureReason && React.createElement(Text, { color: COLOR_DANGER },
|
|
538
|
-
"Error: ",
|
|
539
|
-
failureReason),
|
|
540
|
-
React.createElement(Text, { color: success === false ? COLOR_DANGER : COLOR_TOOL_OUTPUT }, displayed)));
|
|
541
|
-
}
|
|
542
|
-
if ((toolName === 'run_subagent_async' || isBackgroundSubagentLaunch) && success === false) {
|
|
543
|
-
let launchError = output;
|
|
544
|
-
try {
|
|
545
|
-
const parsed = JSON.parse(output);
|
|
546
|
-
launchError = parsed?.error?.message ?? parsed?.error ?? output;
|
|
547
|
-
}
|
|
548
|
-
catch {
|
|
549
|
-
// The formatter may already have reduced the structured failure to text.
|
|
550
|
-
}
|
|
551
|
-
return (React.createElement(Box, { flexDirection: "column" },
|
|
552
|
-
renderStandardHeader(),
|
|
553
|
-
React.createElement(Box, { paddingLeft: 2, marginTop: 0.5 },
|
|
554
|
-
React.createElement(Text, { color: COLOR_DANGER }, launchError))));
|
|
555
|
-
}
|
|
556
|
-
if (displayMode === 'standard' && toolName === 'run_code' && runCodeTrace && !isApprovalRejection) {
|
|
557
|
-
return React.createElement(RunCodeRenderer, { trace: runCodeTrace, success: success, renderStandardHeader: renderStandardHeader });
|
|
558
|
-
}
|
|
559
|
-
// Standard mode custom tool renderers
|
|
560
|
-
if (displayMode === 'standard' && success !== false && !failureReason && !isRunning && !isQueued && !isWaiting) {
|
|
561
|
-
if (toolName === 'read_file' || toolName === 'view_file') {
|
|
562
|
-
const result = ReadFileRenderer({ output, renderStandardHeader });
|
|
563
|
-
if (result)
|
|
564
|
-
return result;
|
|
521
|
+
renderStandardHeader(),
|
|
522
|
+
React.createElement(Box, { flexDirection: "column", marginTop: 0.5 },
|
|
523
|
+
React.createElement(ToolSection, { variant: "indent" },
|
|
524
|
+
React.createElement(Text, { color: theme.danger }, launchError)))));
|
|
565
525
|
}
|
|
566
|
-
if (toolName === '
|
|
567
|
-
|
|
568
|
-
if (result)
|
|
569
|
-
return result;
|
|
526
|
+
if (displayMode === 'standard' && toolName === 'run_code' && runCodeTrace && !isApprovalRejection) {
|
|
527
|
+
return React.createElement(RunCodeRenderer, { trace: runCodeTrace, success: success, renderStandardHeader: renderStandardHeader });
|
|
570
528
|
}
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
if (
|
|
574
|
-
const {
|
|
529
|
+
// Standard mode custom tool renderers
|
|
530
|
+
if (displayMode === 'standard' && success !== false && !failureReason && !isRunning && !isQueued && !isWaiting) {
|
|
531
|
+
if (toolName === 'read_file' || toolName === 'view_file') {
|
|
532
|
+
const result = ReadFileRenderer({ output, renderStandardHeader });
|
|
533
|
+
if (result)
|
|
534
|
+
return result;
|
|
535
|
+
}
|
|
536
|
+
if (toolName === 'grep') {
|
|
537
|
+
const result = GrepRenderer({ output, renderStandardHeader });
|
|
538
|
+
if (result)
|
|
539
|
+
return result;
|
|
540
|
+
}
|
|
541
|
+
if (toolName === 'glob') {
|
|
542
|
+
const parsed = parseFindFilesOutput(output);
|
|
543
|
+
if (parsed) {
|
|
544
|
+
const { files, note } = parsed;
|
|
545
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
546
|
+
React.createElement(Box, { marginBottom: 1 }, renderStandardHeader()),
|
|
547
|
+
React.createElement(ToolSection, { variant: "indent" }, files.map((file, idx) => (React.createElement(Text, { key: idx, color: theme.toolOutput }, file)))),
|
|
548
|
+
note && (React.createElement(Box, { marginTop: 1 },
|
|
549
|
+
React.createElement(Text, { color: theme.warning }, note)))));
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
if ((toolName === 'run_subagent' && !isBackgroundSubagentLaunch) || toolName === 'get_subagent_result') {
|
|
553
|
+
const parsed = parseSubagentOutput(output, toolArgs);
|
|
554
|
+
if (parsed) {
|
|
555
|
+
const { role: _role, status, toolsUsed, filesChanged, mainText } = parsed;
|
|
556
|
+
const _statusColor = status === 'completed' ? theme.textMuted : status === 'failed' ? theme.danger : theme.warning;
|
|
557
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
558
|
+
renderStandardHeader(),
|
|
559
|
+
(toolsUsed || filesChanged) && (React.createElement(Box, { flexDirection: "column", marginY: 0.5 },
|
|
560
|
+
React.createElement(ToolSection, { variant: "indent" },
|
|
561
|
+
toolsUsed && (React.createElement(Text, { color: theme.textSubtle },
|
|
562
|
+
"Tools: ",
|
|
563
|
+
React.createElement(Text, { color: theme.text }, toolsUsed))),
|
|
564
|
+
filesChanged && (React.createElement(Text, { color: theme.textSubtle },
|
|
565
|
+
"Changed: ",
|
|
566
|
+
React.createElement(Text, { color: theme.text }, filesChanged)))))),
|
|
567
|
+
mainText && (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
|
|
568
|
+
React.createElement(ToolSection, { variant: "panel" },
|
|
569
|
+
React.createElement(Text, { color: theme.toolOutput }, mainText))))));
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
if (toolName === 'run_subagent_async' || isBackgroundSubagentLaunch) {
|
|
573
|
+
let runId;
|
|
574
|
+
try {
|
|
575
|
+
const parsed = JSON.parse(output);
|
|
576
|
+
runId = parsed?.runId;
|
|
577
|
+
}
|
|
578
|
+
catch {
|
|
579
|
+
// Fall back to treating the whole output as the runId.
|
|
580
|
+
runId = output;
|
|
581
|
+
}
|
|
575
582
|
return (React.createElement(Box, { flexDirection: "column" },
|
|
576
|
-
|
|
577
|
-
React.createElement(Box, { flexDirection: "column",
|
|
578
|
-
|
|
579
|
-
|
|
583
|
+
renderStandardHeader(),
|
|
584
|
+
React.createElement(Box, { flexDirection: "column", marginTop: 0.5 },
|
|
585
|
+
React.createElement(ToolSection, { variant: "indent" },
|
|
586
|
+
React.createElement(Box, null,
|
|
587
|
+
React.createElement(Text, { color: theme.textSubtle }, "Run ID: "),
|
|
588
|
+
React.createElement(Text, { color: theme.textMuted }, runId || output))))));
|
|
580
589
|
}
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
590
|
+
if (toolName === 'web_search') {
|
|
591
|
+
const result = WebSearchRenderer({ output, renderStandardHeader });
|
|
592
|
+
if (result)
|
|
593
|
+
return result;
|
|
594
|
+
}
|
|
595
|
+
if (toolName === 'web_fetch') {
|
|
596
|
+
const result = WebFetchRenderer({ output, renderStandardHeader });
|
|
597
|
+
if (result)
|
|
598
|
+
return result;
|
|
599
|
+
}
|
|
600
|
+
if (toolName === 'ask_mentor') {
|
|
587
601
|
return (React.createElement(Box, { flexDirection: "column" },
|
|
588
602
|
renderStandardHeader(),
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
React.createElement(Text, { color: COLOR_TEXT }, toolsUsed))),
|
|
593
|
-
filesChanged && (React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
|
|
594
|
-
"Changed: ",
|
|
595
|
-
React.createElement(Text, { color: COLOR_TEXT }, filesChanged))))),
|
|
596
|
-
mainText && (React.createElement(Box, { flexDirection: "column", borderStyle: "single", borderColor: COLOR_ACCENT, paddingX: 1, marginTop: 1 },
|
|
597
|
-
React.createElement(Text, { color: COLOR_TOOL_OUTPUT }, mainText)))));
|
|
603
|
+
React.createElement(Box, { flexDirection: "column", marginTop: 1 },
|
|
604
|
+
React.createElement(ToolSection, { variant: "callout", title: "Mentor Response", tone: "accentAlt" },
|
|
605
|
+
React.createElement(Text, { color: theme.toolOutput }, output)))));
|
|
598
606
|
}
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
607
|
+
if (toolName === 'ask_user') {
|
|
608
|
+
const options = toolArgs?.options;
|
|
609
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
610
|
+
renderStandardHeader(),
|
|
611
|
+
options && Array.isArray(options) && options.length > 0 && (React.createElement(Box, { flexDirection: "column", marginY: 0.5 },
|
|
612
|
+
React.createElement(ToolSection, { variant: "indent" },
|
|
613
|
+
React.createElement(Box, null,
|
|
614
|
+
React.createElement(Text, { color: theme.textSubtle }, "Options: "),
|
|
615
|
+
options.map((opt, idx) => (React.createElement(Text, { key: idx, color: idx === 0 ? theme.textMuted : theme.text },
|
|
616
|
+
idx > 0 ? ', ' : '',
|
|
617
|
+
"[",
|
|
618
|
+
opt,
|
|
619
|
+
"]",
|
|
620
|
+
idx === 0 ? ' (Recommended)' : ''))))))),
|
|
621
|
+
React.createElement(Box, { flexDirection: "column", marginTop: 0.5 },
|
|
622
|
+
React.createElement(ToolSection, { variant: "indent" },
|
|
623
|
+
React.createElement(Box, null,
|
|
624
|
+
React.createElement(Text, { color: theme.textSubtle }, "Response: "),
|
|
625
|
+
React.createElement(Text, { color: theme.textMuted, bold: true }, output || 'No response yet'))))));
|
|
605
626
|
}
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
627
|
+
if (toolName === 'read_code_outline') {
|
|
628
|
+
const parsed = parseCodeOutlineOutput(output);
|
|
629
|
+
if (parsed) {
|
|
630
|
+
const { filePath: _filePath, lang: _lang, imports, exports, decls } = parsed;
|
|
631
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
632
|
+
React.createElement(Box, { marginBottom: 1 }, renderStandardHeader()),
|
|
633
|
+
imports && imports.length > 0 && (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
|
|
634
|
+
React.createElement(ToolSection, { variant: "indent" },
|
|
635
|
+
React.createElement(Text, { color: theme.warning, bold: true }, "Imports:"),
|
|
636
|
+
imports.map((imp, idx) => (React.createElement(Text, { key: idx, color: theme.toolOutput },
|
|
637
|
+
' ',
|
|
638
|
+
"\u2022 ",
|
|
639
|
+
imp)))))),
|
|
640
|
+
exports && exports.length > 0 && (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
|
|
641
|
+
React.createElement(ToolSection, { variant: "indent" },
|
|
642
|
+
React.createElement(Text, { color: theme.textMuted, bold: true }, "Exports:"),
|
|
643
|
+
exports.map((exp, idx) => (React.createElement(Text, { key: idx, color: theme.toolOutput },
|
|
644
|
+
' ',
|
|
645
|
+
"\u2022 ",
|
|
646
|
+
exp)))))),
|
|
647
|
+
decls && decls.length > 0 && (React.createElement(ToolSection, { variant: "indent" },
|
|
648
|
+
React.createElement(Text, { color: theme.accent, bold: true }, "Declarations:"),
|
|
649
|
+
decls.map((decl, idx) => (React.createElement(Text, { key: idx, color: theme.toolOutput },
|
|
650
|
+
' ',
|
|
651
|
+
"\u2022 ",
|
|
652
|
+
decl)))))));
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
if (toolName === 'code_context_search') {
|
|
656
|
+
const result = CodeContextSearchRenderer({ output, renderStandardHeader });
|
|
657
|
+
if (result)
|
|
658
|
+
return result;
|
|
659
|
+
}
|
|
660
|
+
if (toolName && toolName.startsWith('memory_')) {
|
|
661
|
+
const result = MemoryRenderer({
|
|
662
|
+
output,
|
|
663
|
+
toolName,
|
|
664
|
+
query: typeof toolArgs?.query === 'string' ? toolArgs.query : undefined,
|
|
665
|
+
renderStandardHeader,
|
|
666
|
+
});
|
|
667
|
+
if (result)
|
|
668
|
+
return result;
|
|
609
669
|
}
|
|
610
|
-
return (React.createElement(Box, { flexDirection: "column" },
|
|
611
|
-
renderStandardHeader(),
|
|
612
|
-
React.createElement(Box, { paddingLeft: 2, marginTop: 0.5 },
|
|
613
|
-
React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "Run ID: "),
|
|
614
|
-
React.createElement(Text, { color: COLOR_TEXT_MUTED }, runId || output))));
|
|
615
|
-
}
|
|
616
|
-
if (toolName === 'web_search') {
|
|
617
|
-
const result = WebSearchRenderer({ output, renderStandardHeader });
|
|
618
|
-
if (result)
|
|
619
|
-
return result;
|
|
620
|
-
}
|
|
621
|
-
if (toolName === 'web_fetch') {
|
|
622
|
-
const result = WebFetchRenderer({ output, renderStandardHeader });
|
|
623
|
-
if (result)
|
|
624
|
-
return result;
|
|
625
|
-
}
|
|
626
|
-
if (toolName === 'ask_mentor') {
|
|
627
|
-
return (React.createElement(Box, { flexDirection: "column" },
|
|
628
|
-
renderStandardHeader(),
|
|
629
|
-
React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: COLOR_ACCENT_ALT, paddingX: 1, marginTop: 1 },
|
|
630
|
-
React.createElement(Text, { color: COLOR_ACCENT_ALT, bold: true }, "Mentor Response"),
|
|
631
|
-
React.createElement(Text, { color: COLOR_TOOL_OUTPUT }, output))));
|
|
632
670
|
}
|
|
633
|
-
|
|
634
|
-
|
|
671
|
+
// Special handling for approval-rejected shell commands: show the denial message
|
|
672
|
+
// with a clear [DENIED] label so the user knows what was attempted and why.
|
|
673
|
+
if (isApprovalRejection) {
|
|
635
674
|
return (React.createElement(Box, { flexDirection: "column" },
|
|
636
675
|
renderStandardHeader(),
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
idx > 0 ? ', ' : '',
|
|
641
|
-
"[",
|
|
642
|
-
opt,
|
|
643
|
-
"]",
|
|
644
|
-
idx === 0 ? ' (Recommended)' : ''))))),
|
|
645
|
-
React.createElement(Box, { paddingLeft: 2, marginTop: 0.5 },
|
|
646
|
-
React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "Response: "),
|
|
647
|
-
React.createElement(Text, { color: COLOR_TEXT_MUTED, bold: true }, output || 'No response yet'))));
|
|
648
|
-
}
|
|
649
|
-
if (toolName === 'read_code_outline') {
|
|
650
|
-
const parsed = parseCodeOutlineOutput(output);
|
|
651
|
-
if (parsed) {
|
|
652
|
-
const { filePath: _filePath, lang: _lang, imports, exports, decls } = parsed;
|
|
653
|
-
return (React.createElement(Box, { flexDirection: "column" },
|
|
654
|
-
React.createElement(Box, { marginBottom: 1 }, renderStandardHeader()),
|
|
655
|
-
imports && imports.length > 0 && (React.createElement(Box, { flexDirection: "column", marginBottom: 1, paddingLeft: 2 },
|
|
656
|
-
React.createElement(Text, { color: COLOR_WARNING, bold: true }, "Imports:"),
|
|
657
|
-
imports.map((imp, idx) => (React.createElement(Text, { key: idx, color: COLOR_TOOL_OUTPUT },
|
|
658
|
-
' ',
|
|
659
|
-
"\u2022 ",
|
|
660
|
-
imp))))),
|
|
661
|
-
exports && exports.length > 0 && (React.createElement(Box, { flexDirection: "column", marginBottom: 1, paddingLeft: 2 },
|
|
662
|
-
React.createElement(Text, { color: COLOR_TEXT_MUTED, bold: true }, "Exports:"),
|
|
663
|
-
exports.map((exp, idx) => (React.createElement(Text, { key: idx, color: COLOR_TOOL_OUTPUT },
|
|
664
|
-
' ',
|
|
665
|
-
"\u2022 ",
|
|
666
|
-
exp))))),
|
|
667
|
-
decls && decls.length > 0 && (React.createElement(Box, { flexDirection: "column", paddingLeft: 2 },
|
|
668
|
-
React.createElement(Text, { color: COLOR_ACCENT, bold: true }, "Declarations:"),
|
|
669
|
-
decls.map((decl, idx) => (React.createElement(Text, { key: idx, color: COLOR_TOOL_OUTPUT },
|
|
670
|
-
' ',
|
|
671
|
-
"\u2022 ",
|
|
672
|
-
decl)))))));
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
if (toolName === 'code_context_search') {
|
|
676
|
-
const result = CodeContextSearchRenderer({ output, renderStandardHeader });
|
|
677
|
-
if (result)
|
|
678
|
-
return result;
|
|
679
|
-
}
|
|
680
|
-
if (toolName && toolName.startsWith('memory_')) {
|
|
681
|
-
const result = MemoryRenderer({
|
|
682
|
-
output,
|
|
683
|
-
toolName,
|
|
684
|
-
query: typeof toolArgs?.query === 'string' ? toolArgs.query : undefined,
|
|
685
|
-
renderStandardHeader,
|
|
686
|
-
});
|
|
687
|
-
if (result)
|
|
688
|
-
return result;
|
|
676
|
+
React.createElement(Text, { color: theme.danger },
|
|
677
|
+
"\u2192 DENIED: ",
|
|
678
|
+
denialReason)));
|
|
689
679
|
}
|
|
690
|
-
}
|
|
691
|
-
// Special handling for approval-rejected shell commands: show the denial message
|
|
692
|
-
// with a clear [DENIED] label so the user knows what was attempted and why.
|
|
693
|
-
if (isApprovalRejection) {
|
|
694
680
|
return (React.createElement(Box, { flexDirection: "column" },
|
|
695
681
|
renderStandardHeader(),
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
React.createElement(Text, { color: success === false ? COLOR_DANGER : COLOR_TOOL_OUTPUT }, displayed),
|
|
707
|
-
autoApprovalLabel));
|
|
682
|
+
actionableErrorSummary,
|
|
683
|
+
failureReason && React.createElement(Text, { color: theme.danger },
|
|
684
|
+
"Error: ",
|
|
685
|
+
failureReason),
|
|
686
|
+
React.createElement(Text, { color: success === false ? theme.danger : theme.toolOutput }, displayed),
|
|
687
|
+
autoApprovalLabel));
|
|
688
|
+
};
|
|
689
|
+
const content = renderContent();
|
|
690
|
+
// A call inside a subagent's own feed is dense by design and is never framed.
|
|
691
|
+
return isSubagent ? (content) : (React.createElement(ToolFrame, { status: statusKind, display: displayMode, toolName: toolName }, content));
|
|
708
692
|
};
|
|
709
693
|
export default React.memo(CommandMessage);
|
|
710
694
|
//# sourceMappingURL=CommandMessage.js.map
|