@deepseek-harness-tui/dsh-tui 0.14.1 → 0.16.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/README.md +163 -17
- package/bin/dsh-tui.js +200 -34
- package/cordis.patch.yml +16 -52
- package/cordis.yml +6 -2
- package/guide/dsh-tui-guide/claude-backend.en.md +44 -7
- package/guide/dsh-tui-guide/claude-backend.md +28 -6
- package/guide/dsh-tui-guide/codex-backend.en.md +47 -10
- package/guide/dsh-tui-guide/codex-backend.md +26 -4
- package/guide/dsh-tui-guide/configuration.en.md +168 -18
- package/guide/dsh-tui-guide/configuration.md +144 -16
- package/guide/dsh-tui-guide/getting-started.en.md +15 -0
- package/guide/dsh-tui-guide/getting-started.md +15 -0
- package/guide/dsh-tui-guide/interaction.en.md +64 -24
- package/guide/dsh-tui-guide/interaction.md +49 -19
- package/guide/dsh-tui-guide/plugins.en.md +97 -3
- package/guide/dsh-tui-guide/plugins.md +55 -2
- package/guide/dsh-tui-guide/themes.en.md +23 -14
- package/guide/dsh-tui-guide/themes.md +19 -12
- package/guide/dsh-tui-guide/user-guide.en.md +53 -21
- package/guide/dsh-tui-guide/user-guide.md +43 -22
- package/lib/settings.json +103 -9
- package/lib/types/adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/adapter/channel/projection.js +1 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +1 -1
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +4 -0
- package/lib/types/adapter/channel/ui.d.ts +2 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui.js +6 -2
- package/lib/types/adapter/kernel/runtime.d.ts.map +1 -1
- package/lib/types/adapter/kernel/runtime.js +2 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts +5 -1
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +14 -3
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +56 -12
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +68 -0
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel.d.ts +2 -0
- package/lib/types/adapter/ports/channel.d.ts.map +1 -1
- package/lib/types/adapter/spec/backend-capabilities.d.ts +22 -0
- package/lib/types/adapter/spec/backend-capabilities.d.ts.map +1 -0
- package/lib/types/adapter/spec/backend-capabilities.js +49 -0
- package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -1
- package/lib/types/adapter/spec/protocol-constants.js +10 -3
- package/lib/types/adapter/spec/tui-contributions.d.ts +3 -0
- package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -1
- package/lib/types/adapter/spec/tui-contributions.js +7 -0
- package/lib/types/adapter/standard/registry.d.ts +6 -0
- package/lib/types/adapter/standard/registry.d.ts.map +1 -1
- package/lib/types/adapter/standard/registry.js +65 -15
- package/lib/types/adapter/standard/tui-extension.d.ts.map +1 -1
- package/lib/types/adapter/standard/tui-extension.js +7 -1
- package/lib/types/adapter/standard/types.d.ts +10 -1
- package/lib/types/adapter/standard/types.d.ts.map +1 -1
- package/lib/types/adapter/upstream/host-descriptor-driver.d.ts.map +1 -1
- package/lib/types/adapter/upstream/host-descriptor-driver.js +52 -0
- package/lib/types/agent/backend-manifest.d.ts +152 -0
- package/lib/types/agent/backend-manifest.d.ts.map +1 -0
- package/lib/types/agent/backend-manifest.js +14 -0
- package/lib/types/agent/backend.d.ts +71 -5
- package/lib/types/agent/backend.d.ts.map +1 -1
- package/lib/types/agent/capabilities.d.ts +6 -0
- package/lib/types/agent/capabilities.d.ts.map +1 -1
- package/lib/types/agent/events.d.ts +3 -2
- package/lib/types/agent/events.d.ts.map +1 -1
- package/lib/types/agent/index.d.ts +2 -0
- package/lib/types/agent/index.d.ts.map +1 -1
- package/lib/types/agent/refs.d.ts +11 -1
- package/lib/types/agent/refs.d.ts.map +1 -1
- package/lib/types/agent/starting-session.d.ts +4 -0
- package/lib/types/agent/starting-session.d.ts.map +1 -0
- package/lib/types/agent/starting-session.js +19 -0
- package/lib/types/backends/claude/activity.d.ts +1 -1
- package/lib/types/backends/claude/activity.d.ts.map +1 -1
- package/lib/types/backends/claude/activity.js +5 -5
- package/lib/types/backends/claude/auth.d.ts.map +1 -1
- package/lib/types/backends/claude/auth.js +10 -3
- package/lib/types/backends/claude/backend.d.ts.map +1 -1
- package/lib/types/backends/claude/backend.js +103 -29
- package/lib/types/backends/claude/catalog.d.ts +2 -1
- package/lib/types/backends/claude/catalog.d.ts.map +1 -1
- package/lib/types/backends/claude/catalog.js +15 -5
- package/lib/types/backends/claude/channels.d.ts +5 -3
- package/lib/types/backends/claude/channels.d.ts.map +1 -1
- package/lib/types/backends/claude/channels.js +5 -4
- package/lib/types/backends/claude/contract.d.ts +4 -0
- package/lib/types/backends/claude/contract.d.ts.map +1 -1
- package/lib/types/backends/claude/contract.js +4 -0
- package/lib/types/backends/claude/controls.d.ts +4 -0
- package/lib/types/backends/claude/controls.d.ts.map +1 -1
- package/lib/types/backends/claude/controls.js +34 -42
- package/lib/types/backends/claude/dialogs.d.ts +8 -2
- package/lib/types/backends/claude/dialogs.d.ts.map +1 -1
- package/lib/types/backends/claude/dialogs.js +24 -16
- package/lib/types/backends/claude/images.d.ts +1 -1
- package/lib/types/backends/claude/images.d.ts.map +1 -1
- package/lib/types/backends/claude/images.js +7 -7
- package/lib/types/backends/claude/manifest.d.ts +21 -0
- package/lib/types/backends/claude/manifest.d.ts.map +1 -0
- package/lib/types/backends/claude/manifest.js +29 -0
- package/lib/types/backends/claude/older-history.js +2 -2
- package/lib/types/backends/claude/permissions.js +11 -11
- package/lib/types/backends/claude/prefs.d.ts +4 -2
- package/lib/types/backends/claude/prefs.d.ts.map +1 -1
- package/lib/types/backends/claude/prefs.js +4 -3
- package/lib/types/backends/claude/process.d.ts +16 -4
- package/lib/types/backends/claude/process.d.ts.map +1 -1
- package/lib/types/backends/claude/process.js +100 -37
- package/lib/types/backends/claude/send-message.d.ts +1 -1
- package/lib/types/backends/claude/send-message.d.ts.map +1 -1
- package/lib/types/backends/claude/session/auth.js +22 -22
- package/lib/types/backends/claude/session/channels.d.ts +4 -0
- package/lib/types/backends/claude/session/channels.d.ts.map +1 -1
- package/lib/types/backends/claude/session/channels.js +5 -3
- package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -1
- package/lib/types/backends/claude/session/lifecycle.js +31 -23
- package/lib/types/backends/claude/session/store.js +8 -8
- package/lib/types/backends/claude/session/subagents.js +2 -2
- package/lib/types/backends/claude/session/types.d.ts +7 -0
- package/lib/types/backends/claude/session/types.d.ts.map +1 -1
- package/lib/types/backends/claude/side-query.js +3 -3
- package/lib/types/backends/claude/task-output.js +5 -5
- package/lib/types/backends/claude/text.d.ts +778 -0
- package/lib/types/backends/claude/text.d.ts.map +1 -0
- package/lib/types/backends/claude/text.js +298 -0
- package/lib/types/backends/claude/transcript-file.d.ts +1 -1
- package/lib/types/backends/claude/transcript-file.d.ts.map +1 -1
- package/lib/types/backends/claude/transcript-file.js +4 -4
- package/lib/types/backends/claude/translate/attempts.js +2 -2
- package/lib/types/backends/claude/translate/core.js +3 -3
- package/lib/types/backends/claude/translate/messages.js +4 -4
- package/lib/types/backends/claude/translate/system.js +14 -14
- package/lib/types/backends/claude/translate/tasks.js +2 -2
- package/lib/types/backends/claude/translate/types.d.ts +1 -1
- package/lib/types/backends/claude/translate/types.d.ts.map +1 -1
- package/lib/types/backends/codex/auth/external-tokens.js +16 -16
- package/lib/types/backends/codex/auth/status.js +14 -14
- package/lib/types/backends/codex/backend.d.ts +4 -19
- package/lib/types/backends/codex/backend.d.ts.map +1 -1
- package/lib/types/backends/codex/backend.js +118 -25
- package/lib/types/backends/codex/catalog.d.ts +2 -1
- package/lib/types/backends/codex/catalog.d.ts.map +1 -1
- package/lib/types/backends/codex/catalog.js +63 -18
- package/lib/types/backends/codex/channels.d.ts +6 -3
- package/lib/types/backends/codex/channels.d.ts.map +1 -1
- package/lib/types/backends/codex/channels.js +15 -13
- package/lib/types/backends/codex/contract.d.ts +3 -0
- package/lib/types/backends/codex/contract.d.ts.map +1 -1
- package/lib/types/backends/codex/contract.js +3 -0
- package/lib/types/backends/codex/detect.d.ts.map +1 -1
- package/lib/types/backends/codex/detect.js +9 -6
- package/lib/types/backends/codex/manifest.d.ts +30 -0
- package/lib/types/backends/codex/manifest.d.ts.map +1 -0
- package/lib/types/backends/codex/manifest.js +23 -0
- package/lib/types/backends/codex/prefs.d.ts +4 -2
- package/lib/types/backends/codex/prefs.d.ts.map +1 -1
- package/lib/types/backends/codex/prefs.js +4 -3
- package/lib/types/backends/codex/rpc/hub.js +2 -2
- package/lib/types/backends/codex/session/activity.d.ts +1 -1
- package/lib/types/backends/codex/session/activity.d.ts.map +1 -1
- package/lib/types/backends/codex/session/activity.js +13 -13
- package/lib/types/backends/codex/session/approvals.js +30 -30
- package/lib/types/backends/codex/session/async-questions.d.ts +17 -0
- package/lib/types/backends/codex/session/async-questions.d.ts.map +1 -0
- package/lib/types/backends/codex/session/async-questions.js +89 -0
- package/lib/types/backends/codex/session/commands.d.ts +8 -2
- package/lib/types/backends/codex/session/commands.d.ts.map +1 -1
- package/lib/types/backends/codex/session/commands.js +71 -23
- package/lib/types/backends/codex/session/controls.d.ts +1 -1
- package/lib/types/backends/codex/session/controls.d.ts.map +1 -1
- package/lib/types/backends/codex/session/controls.js +21 -16
- package/lib/types/backends/codex/session/goals.d.ts.map +1 -1
- package/lib/types/backends/codex/session/goals.js +3 -3
- package/lib/types/backends/codex/session/history.js +2 -2
- package/lib/types/backends/codex/session/images.js +8 -8
- package/lib/types/backends/codex/session/input.d.ts +6 -2
- package/lib/types/backends/codex/session/input.d.ts.map +1 -1
- package/lib/types/backends/codex/session/input.js +55 -13
- package/lib/types/backends/codex/session/plan-review.js +6 -6
- package/lib/types/backends/codex/session/session.d.ts.map +1 -1
- package/lib/types/backends/codex/session/session.js +100 -42
- package/lib/types/backends/codex/session/side-query.d.ts.map +1 -1
- package/lib/types/backends/codex/session/side-query.js +27 -9
- package/lib/types/backends/codex/session/state.d.ts +6 -1
- package/lib/types/backends/codex/session/state.d.ts.map +1 -1
- package/lib/types/backends/codex/session/subagents.js +5 -5
- package/lib/types/backends/codex/session/tasks.js +4 -4
- package/lib/types/backends/codex/text.d.ts +933 -0
- package/lib/types/backends/codex/text.d.ts.map +1 -0
- package/lib/types/backends/codex/text.js +313 -0
- package/lib/types/backends/codex/translate/items.d.ts.map +1 -1
- package/lib/types/backends/codex/translate/items.js +7 -5
- package/lib/types/backends/codex/translate/live.d.ts.map +1 -1
- package/lib/types/backends/codex/translate/live.js +11 -8
- package/lib/types/backends/codex/translate/notices.js +10 -10
- package/lib/types/backends/codex/translate/question-reply.d.ts +11 -0
- package/lib/types/backends/codex/translate/question-reply.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/question-reply.js +53 -0
- package/lib/types/backends/shared/channel-slug.d.ts +4 -0
- package/lib/types/backends/shared/channel-slug.d.ts.map +1 -0
- package/lib/types/backends/shared/channel-slug.js +25 -0
- package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -1
- package/lib/types/backends/shared/channel-tokens.js +30 -23
- package/lib/types/{channel → backends/shared}/elicitation.d.ts +78 -21
- package/lib/types/backends/shared/elicitation.d.ts.map +1 -0
- package/lib/types/{channel → backends/shared}/elicitation.js +64 -66
- package/lib/types/backends/shared/image-size.d.ts +33 -0
- package/lib/types/backends/shared/image-size.d.ts.map +1 -0
- package/lib/types/backends/shared/image-size.js +134 -0
- package/lib/types/{utils → backends/shared}/jsonl.d.ts +5 -1
- package/lib/types/backends/shared/jsonl.d.ts.map +1 -0
- package/lib/types/{utils → backends/shared}/jsonl.js +5 -1
- package/lib/types/backends/shared/localized-text.d.ts +30 -0
- package/lib/types/backends/shared/localized-text.d.ts.map +1 -0
- package/lib/types/backends/shared/localized-text.js +24 -0
- package/lib/types/backends/shared/platform-text.d.ts +88 -0
- package/lib/types/backends/shared/platform-text.d.ts.map +1 -0
- package/lib/types/backends/shared/platform-text.js +33 -0
- package/lib/types/branding.d.ts +13 -0
- package/lib/types/branding.d.ts.map +1 -1
- package/lib/types/branding.js +18 -0
- package/lib/types/channel/channel-slug.d.ts +3 -1
- package/lib/types/channel/channel-slug.d.ts.map +1 -1
- package/lib/types/channel/channel-slug.js +3 -1
- package/lib/types/channel/projection.d.ts.map +1 -1
- package/lib/types/channel/projection.js +10 -0
- package/lib/types/channel/sanitize.d.ts +7 -0
- package/lib/types/channel/sanitize.d.ts.map +1 -1
- package/lib/types/channel/sanitize.js +9 -0
- package/lib/types/channel/usage.d.ts.map +1 -1
- package/lib/types/channel/usage.js +5 -0
- package/lib/types/commands.d.ts +15 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +58 -10
- package/lib/types/components/AgentMessageComposer.d.ts.map +1 -1
- package/lib/types/components/AgentMessageComposer.js +3 -2
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +4 -2
- package/lib/types/components/Chat/JobCard.js +3 -3
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +24 -7
- package/lib/types/components/ContextBarView.d.ts +5 -1
- package/lib/types/components/ContextBarView.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.js +6 -3
- package/lib/types/components/ExtensionDialog.d.ts.map +1 -1
- package/lib/types/components/ExtensionDialog.js +2 -3
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +14 -3
- package/lib/types/components/InlineMathParagraph.js +1 -1
- package/lib/types/components/KernelPicker.d.ts.map +1 -1
- package/lib/types/components/KernelPicker.js +1 -1
- package/lib/types/components/LogoV2.d.ts +4 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +14 -9
- package/lib/types/components/MarkdownTable.d.ts.map +1 -1
- package/lib/types/components/MarkdownTable.js +4 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +109 -15
- package/lib/types/components/ModelPicker.d.ts +24 -31
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +115 -40
- package/lib/types/components/PermissionsPicker.d.ts +10 -1
- package/lib/types/components/PermissionsPicker.d.ts.map +1 -1
- package/lib/types/components/PermissionsPicker.js +24 -16
- package/lib/types/components/PluginInstallPane.d.ts +21 -0
- package/lib/types/components/PluginInstallPane.d.ts.map +1 -0
- package/lib/types/components/PluginInstallPane.js +84 -0
- package/lib/types/components/PluginManagePane.d.ts +21 -0
- package/lib/types/components/PluginManagePane.d.ts.map +1 -0
- package/lib/types/components/PluginManagePane.js +69 -0
- package/lib/types/components/PromptEditor.d.ts +3 -3
- package/lib/types/components/PromptInput.d.ts +21 -3
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +65 -121
- package/lib/types/components/SdkInstallWizard.d.ts +3 -1
- package/lib/types/components/SdkInstallWizard.d.ts.map +1 -1
- package/lib/types/components/SdkInstallWizard.js +8 -1
- package/lib/types/components/SearchBox.d.ts +13 -15
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +58 -27
- package/lib/types/components/SubagentCard.d.ts +13 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +27 -12
- package/lib/types/components/SubagentDashboard.d.ts +8 -1
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +58 -16
- package/lib/types/components/ThemePicker.d.ts +1 -1
- package/lib/types/components/ThemePicker.d.ts.map +1 -1
- package/lib/types/components/ThemePicker.js +14 -11
- package/lib/types/components/Tooltip.js +1 -1
- package/lib/types/components/WorkingSpinner.js +1 -1
- package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -1
- package/lib/types/components/WorkspaceFlowPicker.js +4 -3
- package/lib/types/components/composerImageTokens.d.ts +24 -0
- package/lib/types/components/composerImageTokens.d.ts.map +1 -0
- package/lib/types/components/composerImageTokens.js +37 -0
- package/lib/types/components/design-system/InputCaret.d.ts +7 -0
- package/lib/types/components/design-system/InputCaret.d.ts.map +1 -0
- package/lib/types/components/design-system/InputCaret.js +9 -0
- package/lib/types/components/design-system/ListItem.d.ts +13 -2
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -1
- package/lib/types/components/design-system/ListItem.js +11 -5
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +6 -8
- package/lib/types/components/kernelCatalog.d.ts +55 -11
- package/lib/types/components/kernelCatalog.d.ts.map +1 -1
- package/lib/types/components/kernelCatalog.js +42 -23
- package/lib/types/components/launchpadActions.d.ts +4 -0
- package/lib/types/components/launchpadActions.d.ts.map +1 -1
- package/lib/types/components/launchpadActions.js +5 -4
- package/lib/types/components/launchpadLayout.d.ts +14 -1
- package/lib/types/components/launchpadLayout.d.ts.map +1 -1
- package/lib/types/components/launchpadLayout.js +38 -19
- package/lib/types/components/messages/TeamMessageBubble.d.ts +20 -0
- package/lib/types/components/messages/TeamMessageBubble.d.ts.map +1 -0
- package/lib/types/components/messages/TeamMessageBubble.js +15 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts +4 -3
- package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -1
- package/lib/types/components/messages/UserPromptMessage.js +4 -3
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +8 -3
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +4 -3
- package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -1
- package/lib/types/components/questions/ProviderModelEditor.js +3 -13
- package/lib/types/components/sessions/ForeignSessionRow.d.ts +3 -1
- package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -1
- package/lib/types/components/sessions/ForeignSessionRow.js +5 -2
- package/lib/types/components/sessions/SessionListRow.d.ts +3 -1
- package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -1
- package/lib/types/components/sessions/SessionListRow.js +5 -2
- package/lib/types/components/sidePanel/PanelBar.d.ts +1 -0
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelBar.js +21 -17
- package/lib/types/components/sidePanel/PanelHost.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelHost.js +5 -1
- package/lib/types/components/sidePanel/PanelStore.d.ts +8 -0
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelStore.js +11 -0
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +15 -2
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts +6 -4
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelLayout.js +33 -7
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts +7 -0
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.js +4 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +7 -2
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwComposer.js +28 -8
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +2 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +156 -21
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +6 -2
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +64 -16
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +15 -5
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +101 -10
- package/lib/types/components/sidePanel/btw/threads.d.ts +18 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/threads.js +51 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
- package/lib/types/components/sidePanel/builtinPanels.js +5 -1
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +2 -2
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts +5 -1
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/SplashMascot.js +19 -4
- package/lib/types/components/sidePanel/companion/skins.d.ts +8 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/skins.js +57 -12
- package/lib/types/components/sidePanel/types.d.ts +7 -1
- package/lib/types/components/sidePanel/types.d.ts.map +1 -1
- package/lib/types/components/sidePanel/useSidePanel.d.ts +2 -0
- package/lib/types/components/sidePanel/useSidePanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/useSidePanel.js +11 -1
- package/lib/types/components/splashArtRows.d.ts +29 -0
- package/lib/types/components/splashArtRows.d.ts.map +1 -0
- package/lib/types/components/splashArtRows.js +31 -0
- package/lib/types/components/splashFonts.d.ts +24 -1
- package/lib/types/components/splashFonts.d.ts.map +1 -1
- package/lib/types/components/splashFonts.js +40 -5
- package/lib/types/components/teamRoster.d.ts +70 -0
- package/lib/types/components/teamRoster.d.ts.map +1 -0
- package/lib/types/components/teamRoster.js +78 -0
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +3 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.js +5 -2
- package/lib/types/dsh-adapter/admission-loader.d.ts +102 -0
- package/lib/types/dsh-adapter/admission-loader.d.ts.map +1 -0
- package/lib/types/dsh-adapter/admission-loader.js +301 -0
- package/lib/types/dsh-adapter/agent-view.d.ts.map +1 -1
- package/lib/types/dsh-adapter/agent-view.js +3 -1
- package/lib/types/dsh-adapter/approvals.d.ts +7 -0
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +45 -1
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backend/translate.js +71 -8
- package/lib/types/dsh-adapter/backend-admission.d.ts +64 -0
- package/lib/types/dsh-adapter/backend-admission.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-admission.js +34 -0
- package/lib/types/dsh-adapter/backend-assembly.d.ts +31 -0
- package/lib/types/dsh-adapter/backend-assembly.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-assembly.js +225 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts +62 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-contribution.js +78 -0
- package/lib/types/dsh-adapter/backend-registry.d.ts +136 -0
- package/lib/types/dsh-adapter/backend-registry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-registry.js +304 -0
- package/lib/types/dsh-adapter/backends.d.ts +67 -24
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backends.generated.d.ts +12 -0
- package/lib/types/dsh-adapter/backends.generated.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backends.generated.js +6 -0
- package/lib/types/dsh-adapter/backends.js +91 -46
- package/lib/types/dsh-adapter/bundled-presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/bundled-presets.js +60 -3
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +2 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +9 -3
- package/lib/types/dsh-adapter/channel/agent-view-projection.js +2 -2
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +8 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +17 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +19 -46
- package/lib/types/dsh-adapter/channel/channel-host.d.ts +45 -0
- package/lib/types/dsh-adapter/channel/channel-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/channel-host.js +1 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +79 -6
- package/lib/types/dsh-adapter/channel/compaction.d.ts +7 -2
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +100 -26
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +4 -2
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/composer-images.js +36 -5
- package/lib/types/dsh-adapter/channel/cordis-host.d.ts +14 -0
- package/lib/types/dsh-adapter/channel/cordis-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/cordis-host.js +35 -0
- package/lib/types/dsh-adapter/channel/core/actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/actions.js +15 -6
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +10 -3
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +5 -1
- package/lib/types/dsh-adapter/channel/core/compose.d.ts +12 -28
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/compose.js +330 -117
- package/lib/types/dsh-adapter/channel/core/files.d.ts +7 -2
- package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/files.js +1 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts +12 -6
- package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/host.js +69 -35
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +5 -3
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/local-actions.js +5 -2
- package/lib/types/dsh-adapter/channel/core/session-controls.js +2 -2
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +7 -4
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/session-switch.js +8 -4
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/sessions.js +75 -16
- package/lib/types/dsh-adapter/channel/extensions.d.ts +4 -3
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/extensions.js +109 -30
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +14 -5
- package/lib/types/dsh-adapter/channel/job-projection.d.ts +4 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/job-projection.js +205 -24
- package/lib/types/dsh-adapter/channel/mentions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +7 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +235 -13
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +48 -29
- package/lib/types/dsh-adapter/channel/model-selection.d.ts +17 -0
- package/lib/types/dsh-adapter/channel/model-selection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-selection.js +109 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +12 -21
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +39 -102
- package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/permissions.js +4 -1
- package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection-helpers.js +2 -0
- package/lib/types/dsh-adapter/channel/projection.js +1 -1
- package/lib/types/dsh-adapter/channel/reports.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/reports.js +11 -3
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.js +33 -20
- package/lib/types/dsh-adapter/channel/session-listing.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/session-listing.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-listing.js +51 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +3 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.js +60 -30
- package/lib/types/dsh-adapter/channel/session-reset.js +2 -2
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +22 -8
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +38 -24
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +38 -24
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +5 -2
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +136 -5
- package/lib/types/dsh-adapter/channel/state.d.ts +43 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +14 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +84 -12
- package/lib/types/dsh-adapter/channel/task-completion.d.ts +6 -0
- package/lib/types/dsh-adapter/channel/task-completion.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/task-completion.js +114 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +8 -1
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +20 -3
- package/lib/types/dsh-adapter/channel/upstream-retry.d.ts +81 -0
- package/lib/types/dsh-adapter/channel/upstream-retry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/upstream-retry.js +138 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/workspace-actions.js +9 -8
- package/lib/types/dsh-adapter/channel-ui.d.ts +3 -1
- package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel-ui.js +4 -2
- package/lib/types/dsh-adapter/channel.d.ts +2 -2
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +19 -5
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.d.ts +55 -0
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.js +96 -0
- package/lib/types/dsh-adapter/context-occupancy.d.ts +81 -4
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
- package/lib/types/dsh-adapter/context-occupancy.js +108 -17
- package/lib/types/dsh-adapter/contract.d.ts +4 -4
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +20 -5
- package/lib/types/dsh-adapter/effect-ledger.d.ts +7 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -1
- package/lib/types/dsh-adapter/effect-ledger.js +8 -1
- package/lib/types/dsh-adapter/entry-slot.d.ts +38 -0
- package/lib/types/dsh-adapter/entry-slot.d.ts.map +1 -0
- package/lib/types/dsh-adapter/entry-slot.js +28 -0
- package/lib/types/dsh-adapter/fresh-agent.d.ts +22 -0
- package/lib/types/dsh-adapter/fresh-agent.d.ts.map +1 -0
- package/lib/types/dsh-adapter/fresh-agent.js +226 -0
- package/lib/types/dsh-adapter/host-access.d.ts +16 -1
- package/lib/types/dsh-adapter/host-access.d.ts.map +1 -1
- package/lib/types/dsh-adapter/host-access.js +148 -2
- package/lib/types/dsh-adapter/host-contract.d.ts +103 -0
- package/lib/types/dsh-adapter/host-contract.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-contract.js +77 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts +112 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-dsh.js +481 -0
- package/lib/types/dsh-adapter/host-entry.d.ts +9 -0
- package/lib/types/dsh-adapter/host-entry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-entry.js +253 -0
- package/lib/types/dsh-adapter/index.d.ts +53 -17
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +63 -9
- package/lib/types/dsh-adapter/install/executors.d.ts +44 -0
- package/lib/types/dsh-adapter/install/executors.d.ts.map +1 -0
- package/lib/types/dsh-adapter/install/executors.js +15 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts +3 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts.map +1 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.js +150 -0
- package/lib/types/dsh-adapter/invariant.d.ts +7 -2
- package/lib/types/dsh-adapter/invariant.d.ts.map +1 -1
- package/lib/types/dsh-adapter/invariant.js +6 -3
- package/lib/types/dsh-adapter/jobs.d.ts +7 -0
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +13 -0
- package/lib/types/dsh-adapter/lite-profile.d.ts +50 -0
- package/lib/types/dsh-adapter/lite-profile.d.ts.map +1 -0
- package/lib/types/dsh-adapter/lite-profile.js +49 -0
- package/lib/types/dsh-adapter/migrate/index.js +2 -2
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +4 -3
- package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -1
- package/lib/types/dsh-adapter/oauth/profiles.js +5 -1
- package/lib/types/dsh-adapter/panels.d.ts +7 -0
- package/lib/types/dsh-adapter/panels.d.ts.map +1 -1
- package/lib/types/dsh-adapter/panels.js +41 -2
- package/lib/types/dsh-adapter/plugin-completions.d.ts +32 -0
- package/lib/types/dsh-adapter/plugin-completions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-completions.js +80 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts +119 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-declaration.js +183 -0
- package/lib/types/dsh-adapter/plugin-feed.d.ts +94 -0
- package/lib/types/dsh-adapter/plugin-feed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-feed.js +135 -0
- package/lib/types/dsh-adapter/plugin-guard.d.ts +115 -0
- package/lib/types/dsh-adapter/plugin-guard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-guard.js +108 -0
- package/lib/types/dsh-adapter/plugin-host.d.ts +13 -2
- package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin-host.js +34 -8
- package/lib/types/dsh-adapter/plugin-install.d.ts +160 -0
- package/lib/types/dsh-adapter/plugin-install.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-install.js +545 -0
- package/lib/types/dsh-adapter/plugin-manage.d.ts +178 -0
- package/lib/types/dsh-adapter/plugin-manage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manage.js +468 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts +144 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manager.js +83 -0
- package/lib/types/dsh-adapter/plugin.d.ts +50 -1
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +918 -234
- package/lib/types/dsh-adapter/plugins-info.d.ts +130 -8
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugins-info.js +469 -44
- package/lib/types/dsh-adapter/process-exit.d.ts +43 -0
- package/lib/types/dsh-adapter/process-exit.d.ts.map +1 -0
- package/lib/types/dsh-adapter/process-exit.js +60 -0
- package/lib/types/dsh-adapter/root-dispose.d.ts +18 -0
- package/lib/types/dsh-adapter/root-dispose.d.ts.map +1 -0
- package/lib/types/dsh-adapter/root-dispose.js +28 -0
- package/lib/types/dsh-adapter/session-list-metadata.d.ts +20 -0
- package/lib/types/dsh-adapter/session-list-metadata.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-list-metadata.js +56 -0
- package/lib/types/dsh-adapter/session-projection-store.d.ts +66 -0
- package/lib/types/dsh-adapter/session-projection-store.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-projection-store.js +149 -0
- package/lib/types/dsh-adapter/session-seed.d.ts +11 -0
- package/lib/types/dsh-adapter/session-seed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-seed.js +47 -0
- package/lib/types/dsh-adapter/sessions/list.d.ts +3 -1
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +11 -5
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts +0 -2
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/snapshot.js +7 -70
- package/lib/types/dsh-adapter/settingsEditor.js +2 -2
- package/lib/types/dsh-adapter/sideQuestion.d.ts +21 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +53 -0
- package/lib/types/dsh-adapter/startup-args.d.ts +2 -0
- package/lib/types/dsh-adapter/startup-args.d.ts.map +1 -1
- package/lib/types/dsh-adapter/startup-args.js +5 -0
- package/lib/types/dsh-adapter/subagents.d.ts +33 -1
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +112 -9
- package/lib/types/dsh-adapter/team-mode.d.ts +74 -0
- package/lib/types/dsh-adapter/team-mode.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-mode.js +188 -0
- package/lib/types/dsh-adapter/team-roster.d.ts +67 -0
- package/lib/types/dsh-adapter/team-roster.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-roster.js +136 -0
- package/lib/types/dsh-adapter/team-tools.d.ts +58 -0
- package/lib/types/dsh-adapter/team-tools.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-tools.js +208 -0
- package/lib/types/dsh-adapter/tui-settings.d.ts +57 -0
- package/lib/types/dsh-adapter/tui-settings.d.ts.map +1 -0
- package/lib/types/dsh-adapter/tui-settings.js +199 -0
- package/lib/types/dsh-adapter/types.d.ts +1 -1
- package/lib/types/dsh-adapter/types.d.ts.map +1 -1
- package/lib/types/effortPrefs.d.ts +6 -3
- package/lib/types/effortPrefs.d.ts.map +1 -1
- package/lib/types/effortPrefs.js +7 -4
- package/lib/types/hostEntryRoute.d.ts +18 -0
- package/lib/types/hostEntryRoute.d.ts.map +1 -0
- package/lib/types/hostEntryRoute.js +57 -0
- package/lib/types/i18n.d.ts +961 -1439
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +443 -387
- package/lib/types/ink/components/AlternateScreen.js +2 -2
- package/lib/types/ink/components/App.d.ts +1 -0
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +16 -4
- package/lib/types/ink/components/CursorDeclarationContext.d.ts +9 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -1
- package/lib/types/ink/components/CursorDeclarationContext.js +2 -0
- package/lib/types/ink/components/ScrollBox.d.ts +9 -0
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
- package/lib/types/ink/components/ScrollBox.js +23 -0
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-copy-on-select.d.ts +2 -2
- package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-copy-on-select.js +13 -7
- package/lib/types/ink/hooks/use-declared-cursor.d.ts +11 -3
- package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-declared-cursor.js +30 -10
- package/lib/types/ink/ink.d.ts +22 -17
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +151 -40
- package/lib/types/ink/kitty-graphics.d.ts +2 -0
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +6 -1
- package/lib/types/ink/node-cache.d.ts +2 -1
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/output.d.ts +10 -4
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +14 -10
- package/lib/types/ink/render-node-to-output.d.ts +5 -2
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +27 -9
- package/lib/types/ink/renderer.d.ts +1 -0
- package/lib/types/ink/renderer.d.ts.map +1 -1
- package/lib/types/ink/renderer.js +4 -3
- package/lib/types/ink/root.d.ts +4 -1
- package/lib/types/ink/root.d.ts.map +1 -1
- package/lib/types/ink/screen.d.ts +4 -2
- package/lib/types/ink/screen.d.ts.map +1 -1
- package/lib/types/ink/selection.d.ts +10 -1
- package/lib/types/ink/selection.d.ts.map +1 -1
- package/lib/types/ink/selection.js +94 -25
- package/lib/types/ink/stdin-handoff.d.ts +11 -0
- package/lib/types/ink/stdin-handoff.d.ts.map +1 -0
- package/lib/types/ink/stdin-handoff.js +20 -0
- package/lib/types/ink/styles.d.ts +2 -1
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +6 -4
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.js +16 -39
- package/lib/types/ink/terminal-notification.d.ts +8 -0
- package/lib/types/ink/terminal-notification.d.ts.map +1 -0
- package/lib/types/ink/terminal-notification.js +83 -0
- package/lib/types/ink/terminal.d.ts +9 -0
- package/lib/types/ink/terminal.d.ts.map +1 -1
- package/lib/types/ink/terminal.js +34 -1
- package/lib/types/ink/termio/csi.d.ts +11 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -1
- package/lib/types/ink/termio/csi.js +13 -0
- package/lib/types/ink/update-overflow-guard.d.ts +6 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +17 -0
- package/lib/types/ink/wrap-text.d.ts +6 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +17 -0
- package/lib/types/kernelPrefs.d.ts +130 -17
- package/lib/types/kernelPrefs.d.ts.map +1 -1
- package/lib/types/kernelPrefs.js +98 -35
- package/lib/types/math/inline-layout.d.ts +2 -0
- package/lib/types/math/inline-layout.d.ts.map +1 -1
- package/lib/types/math/inline-layout.js +5 -27
- package/lib/types/modelGroups.d.ts +15 -27
- package/lib/types/modelGroups.d.ts.map +1 -1
- package/lib/types/modelGroups.js +17 -31
- package/lib/types/modelPrefs.d.ts +5 -4
- package/lib/types/modelPrefs.d.ts.map +1 -1
- package/lib/types/modelPrefs.js +5 -4
- package/lib/types/modelRoute.d.ts +23 -9
- package/lib/types/modelRoute.d.ts.map +1 -1
- package/lib/types/modelRoute.js +25 -11
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.js +8 -1
- package/lib/types/permissionPrefs.d.ts +34 -0
- package/lib/types/permissionPrefs.d.ts.map +1 -0
- package/lib/types/permissionPrefs.js +61 -0
- package/lib/types/permissionPresetLabels.d.ts +25 -0
- package/lib/types/permissionPresetLabels.d.ts.map +1 -0
- package/lib/types/permissionPresetLabels.js +33 -0
- package/lib/types/plugin-host.d.ts +1 -0
- package/lib/types/plugin-host.d.ts.map +1 -1
- package/lib/types/preset-patch.d.ts +22 -0
- package/lib/types/preset-patch.d.ts.map +1 -0
- package/lib/types/preset-patch.js +14 -0
- package/lib/types/presetPrefs.d.ts +17 -3
- package/lib/types/presetPrefs.d.ts.map +1 -1
- package/lib/types/presetPrefs.js +20 -3
- package/lib/types/reload.d.ts +6 -10
- package/lib/types/reload.d.ts.map +1 -1
- package/lib/types/reload.js +14 -14
- package/lib/types/screens/Chat.d.ts +55 -16
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +742 -280
- package/lib/types/screens/Launchpad.d.ts +33 -17
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +256 -78
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +53 -12
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +7 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +24 -7
- package/lib/types/screens/StatusMetrics.d.ts +46 -1
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +72 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts +8 -4
- package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -1
- package/lib/types/screens/chat/useKernelPicker.js +61 -21
- package/lib/types/screens/chat/useModelPicker.d.ts +42 -0
- package/lib/types/screens/chat/useModelPicker.d.ts.map +1 -0
- package/lib/types/screens/chat/useModelPicker.js +182 -0
- package/lib/types/screens/chat/usePluginWriteFlow.d.ts +68 -0
- package/lib/types/screens/chat/usePluginWriteFlow.d.ts.map +1 -0
- package/lib/types/screens/chat/usePluginWriteFlow.js +92 -0
- package/lib/types/screens/chatOverlay.d.ts +30 -5
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +0 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +4 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +26 -5
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +51 -29
- package/lib/types/sessionHistory.d.ts +5 -0
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +5 -0
- package/lib/types/sessionModes.d.ts +5 -3
- package/lib/types/sessionModes.d.ts.map +1 -1
- package/lib/types/sessionModes.js +9 -3
- package/lib/types/sessions/listSnapshot.d.ts +6 -0
- package/lib/types/sessions/listSnapshot.d.ts.map +1 -0
- package/lib/types/sessions/listSnapshot.js +67 -0
- package/lib/types/settings/definitions.d.ts +50 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +42 -8
- package/lib/types/terminal-utils/cjk-emphasis.d.ts +28 -0
- package/lib/types/terminal-utils/cjk-emphasis.d.ts.map +1 -0
- package/lib/types/terminal-utils/cjk-emphasis.js +31 -0
- package/lib/types/terminal-utils/markdown.d.ts +3 -1
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +7 -2
- package/lib/types/theme.d.ts +29 -12
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +310 -23
- package/lib/types/themeCatalog.d.ts.map +1 -1
- package/lib/types/themeCatalog.js +21 -2
- package/lib/types/tips.js +4 -4
- package/lib/types/tuiSettingsFile.d.ts +56 -0
- package/lib/types/tuiSettingsFile.d.ts.map +1 -0
- package/lib/types/tuiSettingsFile.js +206 -0
- package/lib/types/ui.d.ts +2 -0
- package/lib/types/ui.d.ts.map +1 -1
- package/lib/types/ui.js +2 -0
- package/lib/types/update.d.ts +72 -26
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +131 -43
- package/lib/types/utils/bmp.d.ts +7 -0
- package/lib/types/utils/bmp.d.ts.map +1 -1
- package/lib/types/utils/bmp.js +27 -0
- package/lib/types/utils/bootTrace.d.ts +2 -0
- package/lib/types/utils/bootTrace.d.ts.map +1 -0
- package/lib/types/utils/bootTrace.js +20 -0
- package/lib/types/utils/clipboard.d.ts.map +1 -1
- package/lib/types/utils/clipboard.js +11 -3
- package/lib/types/utils/credentials.d.ts +14 -2
- package/lib/types/utils/credentials.d.ts.map +1 -1
- package/lib/types/utils/credentials.js +34 -11
- package/lib/types/utils/imageResize.d.ts +10 -20
- package/lib/types/utils/imageResize.d.ts.map +1 -1
- package/lib/types/utils/imageResize.js +61 -134
- package/lib/types/utils/inputPaste.d.ts +2 -2
- package/lib/types/utils/inputPaste.js +2 -2
- package/lib/types/utils/pastedImagePath.d.ts +5 -0
- package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
- package/lib/types/utils/pastedImagePath.js +33 -0
- package/lib/types/utils/paths.d.ts +11 -0
- package/lib/types/utils/paths.d.ts.map +1 -1
- package/lib/types/utils/paths.js +13 -0
- package/package.json +150 -114
- package/presets/winbash.mjs +716 -0
- package/tui-profile/feed/README.md +63 -0
- package/tui-profile/feed/first-party.json +10 -0
- package/tui-profile/protocols/profile-definitions.d.ts +1 -0
- package/tui-profile/protocols/profile-definitions.js +14 -0
- package/tui-profile/protocols/tui-contributions.d.ts +55 -0
- package/tui-profile/protocols/tui-contributions.js +141 -0
- package/tui-profile/registry/contracts/backend-v1alpha1.json +13 -0
- package/tui-profile/registry/registry-0.15.json +12 -0
- package/lib/types/backends/claude/install.d.ts +0 -15
- package/lib/types/backends/claude/install.d.ts.map +0 -1
- package/lib/types/backends/claude/install.js +0 -91
- package/lib/types/channel/elicitation.d.ts.map +0 -1
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts +0 -42
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +0 -1
- package/lib/types/dsh-adapter/channel/session-lineage.js +0 -51
- package/lib/types/utils/jsonl.d.ts.map +0 -1
|
@@ -44,10 +44,17 @@ export declare const GOAL_RESULT_BADGE: Record<string, string>;
|
|
|
44
44
|
*/
|
|
45
45
|
export declare function harnessToolResultView(name: string, data: SessionEvent<'tool/result'>['data']): ToolResultView | undefined;
|
|
46
46
|
export declare function toolErrorText(event: SessionEvent<'tool/result'>): string;
|
|
47
|
+
/** One structured tool failure (`tool/result.error`) as display text: its
|
|
48
|
+
* `name: code` identity plus the result detail. An auto-review denial reads
|
|
49
|
+
* as a localized "denied, not executed" plus the reviewer's `reason`, never
|
|
50
|
+
* its English detail (that only restates the denial); other failures' `reason`
|
|
51
|
+
* repeats their detail and stays out. Shared by the transcript and the
|
|
52
|
+
* subagent cards. */
|
|
53
|
+
export declare function toolFailureText(failure: unknown, detail: string): string;
|
|
47
54
|
/** Restore a folded tool row's result text from its tool/result event. */
|
|
48
55
|
export declare function restoreToolResult(row: ChatRow, event: SessionEvent<'tool/result'>): void;
|
|
49
56
|
/**
|
|
50
|
-
* Prepare durable events for REPLAY (resume / rewind /
|
|
57
|
+
* Prepare durable events for REPLAY (resume / rewind / fork):
|
|
51
58
|
* drop settled `assistant/chunk` stream deltas — the sealed
|
|
52
59
|
* `assistant/message` events carry the full text and reasoning blocks, so
|
|
53
60
|
* per-token chunks add nothing to the replayed transcript while costing a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAG5D,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE5E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAI7H,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAE1F;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,OAAO,EAAE,EACf,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;AACzD;qCACqC;AACrC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,GACrC,MAAM,CA4CR;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,KAAK,CAAC,EAAE,iBAAiB,GAAG,MAAM,CA8C5G;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CA+B3E;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,MAAM,CAEzE;AAED,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKpD,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GACxC,cAAc,GAAG,SAAS,CA4C5B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,MAAM,CAIxE;AAED;;;;;sBAKsB;AACtB,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAWxE;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,IAAI,CAUxF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,EAAE,CA2BnF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { toolResultPayload } from '../compat/messages.js';
|
|
2
|
+
import { t } from '../../i18n.js';
|
|
2
3
|
import { markChannelReadDirty } from '../../adapter/channel/read-view.js';
|
|
3
4
|
import { ARGS_PREVIEW_LIMIT, LOCAL_OUTPUT_LIMIT, MAX_ROWS, preview, RESULT_PREVIEW_LIMIT } from '../../channel/transcript.js';
|
|
4
5
|
// Limits and the preview helper are backend-neutral (src/channel/transcript.ts);
|
|
@@ -240,8 +241,24 @@ export function toolErrorText(event) {
|
|
|
240
241
|
const failure = event.data.error;
|
|
241
242
|
if (failure === undefined)
|
|
242
243
|
return toolResultPayload(event.data.message).isError ? toolResultText(event) : '';
|
|
243
|
-
|
|
244
|
-
|
|
244
|
+
return toolFailureText(failure, toolResultText(event));
|
|
245
|
+
}
|
|
246
|
+
/** One structured tool failure (`tool/result.error`) as display text: its
|
|
247
|
+
* `name: code` identity plus the result detail. An auto-review denial reads
|
|
248
|
+
* as a localized "denied, not executed" plus the reviewer's `reason`, never
|
|
249
|
+
* its English detail (that only restates the denial); other failures' `reason`
|
|
250
|
+
* repeats their detail and stays out. Shared by the transcript and the
|
|
251
|
+
* subagent cards. */
|
|
252
|
+
export function toolFailureText(failure, detail) {
|
|
253
|
+
const record = failure !== null && typeof failure === 'object' ? failure : {};
|
|
254
|
+
if (record.code === 'AUTO_REVIEW_DENIED') {
|
|
255
|
+
const identity = t('tool-error-auto-review-denied');
|
|
256
|
+
const reason = typeof record.reason === 'string' ? record.reason.trim() : '';
|
|
257
|
+
return reason !== '' ? `${identity} — ${reason}` : identity;
|
|
258
|
+
}
|
|
259
|
+
const identity = typeof record.name === 'string' && typeof record.code === 'string'
|
|
260
|
+
? `${record.name}: ${record.code}`
|
|
261
|
+
: String(failure);
|
|
245
262
|
return detail === '' || detail === identity ? identity : `${identity} — ${detail}`;
|
|
246
263
|
}
|
|
247
264
|
/** Restore a folded tool row's result text from its tool/result event. */
|
|
@@ -258,7 +275,7 @@ export function restoreToolResult(row, event) {
|
|
|
258
275
|
row.tool.resultFull = result || undefined;
|
|
259
276
|
}
|
|
260
277
|
/**
|
|
261
|
-
* Prepare durable events for REPLAY (resume / rewind /
|
|
278
|
+
* Prepare durable events for REPLAY (resume / rewind / fork):
|
|
262
279
|
* drop settled `assistant/chunk` stream deltas — the sealed
|
|
263
280
|
* `assistant/message` events carry the full text and reasoning blocks, so
|
|
264
281
|
* per-token chunks add nothing to the replayed transcript while costing a
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upstream auto-retry for DSH sessions: the llm-retry plugin (dsh-base)
|
|
3
|
+
* already retries transient model-request failures per each provider
|
|
4
|
+
* route's resolved retry policy, but the stock retryable-code set
|
|
5
|
+
* (EMPTY_RESPONSE / RATE_LIMIT / SERVER / TIMEOUT / TRANSPORT) does not
|
|
6
|
+
* include STREAM_CLOSED — the code dsh-llm-pi-ai throws when an upstream
|
|
7
|
+
* SSE stream simply ends with no terminal event, i.e. the bare upstream
|
|
8
|
+
* link drop. Those drops are exactly as transient as the classified
|
|
9
|
+
* transport errors, so this module widens the policy to cover them.
|
|
10
|
+
*
|
|
11
|
+
* The widening is delivered where the retry policy actually lives: the
|
|
12
|
+
* 'llm-pi-ai' settings section's 'providers.<route>.retryPolicy' field
|
|
13
|
+
* (dsh-llm-retry executes it; the TUI never retries anything itself).
|
|
14
|
+
* ensureUpstreamRetry seeds that field ONLY on the route(s) the bound
|
|
15
|
+
* session actually uses (the channel feeds it the live provider at every
|
|
16
|
+
* bind — boot, resume — and on each /model switch), and only when that route declares
|
|
17
|
+
* no retryPolicy: an explicit value (from cordis.yml or a hand-edited
|
|
18
|
+
* settings document) is a deliberate choice and is never overwritten, and
|
|
19
|
+
* dormant channels are never touched. The settings user layer merges
|
|
20
|
+
* recursively over the composition base, so a route configured through
|
|
21
|
+
* the profile patch is reached with all its other fields intact.
|
|
22
|
+
*
|
|
23
|
+
* @module @deepseek-harness-tui/dsh-tui/channel/upstream-retry
|
|
24
|
+
*/
|
|
25
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
26
|
+
/** Retry attempts after the first request, matching both the upstream
|
|
27
|
+
* default and the product ask (retry 5 times). */
|
|
28
|
+
export declare const UPSTREAM_RETRY_MAX_RETRIES = 5;
|
|
29
|
+
/**
|
|
30
|
+
* Failure codes the widened policy retries: the stock set dsh-llm's
|
|
31
|
+
* resolveRetryPolicy defaults to, plus STREAM_CLOSED (dsh-llm-pi-ai's
|
|
32
|
+
* signature for an upstream event stream that ended without a terminal
|
|
33
|
+
* event). Codes outside the set (AUTH, INVALID_REQUEST, QUOTA, …) stay
|
|
34
|
+
* non-retryable exactly as before.
|
|
35
|
+
*/
|
|
36
|
+
export declare const UPSTREAM_RETRYABLE_CODES: readonly string[];
|
|
37
|
+
/**
|
|
38
|
+
* The retry policy value written under 'providers.<route>.retryPolicy'
|
|
39
|
+
* (RetryPolicySchema's normal mode). A fresh object per call: settings
|
|
40
|
+
* documents are plain JSON, never shared module state.
|
|
41
|
+
*/
|
|
42
|
+
export declare function upstreamRetryPolicy(): {
|
|
43
|
+
mode: 'normal';
|
|
44
|
+
maxRetries: number;
|
|
45
|
+
retryableCodes: readonly string[];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Provider routes whose resolved profile declares no retryPolicy — the ones
|
|
49
|
+
* ensureUpstreamRetry may seed. A present value (any shape) marks a
|
|
50
|
+
* deliberate choice and keeps the route out. With `wanted`, only those
|
|
51
|
+
* routes are considered — the caller names the route(s) its session
|
|
52
|
+
* actually uses, so dormant channels are never touched.
|
|
53
|
+
*/
|
|
54
|
+
export declare function routesWithoutRetryPolicy(section: unknown, wanted?: readonly string[]): readonly string[];
|
|
55
|
+
/** One settings mutation op per route (see ensureUpstreamRetry). */
|
|
56
|
+
export declare function upstreamRetryOps(routes: readonly string[]): readonly {
|
|
57
|
+
op: 'set';
|
|
58
|
+
path: readonly string[];
|
|
59
|
+
value: unknown;
|
|
60
|
+
}[];
|
|
61
|
+
/**
|
|
62
|
+
* Seed 'retryPolicy' (normal mode, 5 retries, transport-drop-aware codes)
|
|
63
|
+
* on the given llm-pi-ai routes — and only those — when their resolved
|
|
64
|
+
* profiles lack one, through the official settings mutation path (one
|
|
65
|
+
* stale-revision retry, same contract as the provider wizard). Callers
|
|
66
|
+
* name the route(s) the bound session actually uses, so channels nobody
|
|
67
|
+
* switched to are never written. Per-route once-per-process is the
|
|
68
|
+
* caller's guard; after a successful write the route carries the policy
|
|
69
|
+
* and drops out on its own.
|
|
70
|
+
* Best effort: no settings service, no llm-pi-ai namespace, a route the
|
|
71
|
+
* section does not know (a non-pi-ai adapter route), or a refused write
|
|
72
|
+
* all stay quiet (warn to the log on real errors).
|
|
73
|
+
* @param ctx - Context with the settings service (optional at runtime).
|
|
74
|
+
* @param notify - Channel notification for the one success line.
|
|
75
|
+
* @param routes - Provider routes the current session uses.
|
|
76
|
+
*/
|
|
77
|
+
export declare function ensureUpstreamRetry(ctx: Context, notify: (text: string, options?: {
|
|
78
|
+
color?: 'success' | 'warning' | 'error';
|
|
79
|
+
timeoutMs?: number;
|
|
80
|
+
}) => void, routes: readonly string[]): Promise<void>;
|
|
81
|
+
//# sourceMappingURL=upstream-retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upstream-retry.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/upstream-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD;mDACmD;AACnD,eAAO,MAAM,0BAA0B,IAAI,CAAA;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAOrD,CAAA;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC,CAMA;AAUD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAMxG;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS;IACpE,EAAE,EAAE,KAAK,CAAA;IACT,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IACvB,KAAK,EAAE,OAAO,CAAA;CACf,EAAE,CAMF;AAaD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,EACzG,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upstream auto-retry for DSH sessions: the llm-retry plugin (dsh-base)
|
|
3
|
+
* already retries transient model-request failures per each provider
|
|
4
|
+
* route's resolved retry policy, but the stock retryable-code set
|
|
5
|
+
* (EMPTY_RESPONSE / RATE_LIMIT / SERVER / TIMEOUT / TRANSPORT) does not
|
|
6
|
+
* include STREAM_CLOSED — the code dsh-llm-pi-ai throws when an upstream
|
|
7
|
+
* SSE stream simply ends with no terminal event, i.e. the bare upstream
|
|
8
|
+
* link drop. Those drops are exactly as transient as the classified
|
|
9
|
+
* transport errors, so this module widens the policy to cover them.
|
|
10
|
+
*
|
|
11
|
+
* The widening is delivered where the retry policy actually lives: the
|
|
12
|
+
* 'llm-pi-ai' settings section's 'providers.<route>.retryPolicy' field
|
|
13
|
+
* (dsh-llm-retry executes it; the TUI never retries anything itself).
|
|
14
|
+
* ensureUpstreamRetry seeds that field ONLY on the route(s) the bound
|
|
15
|
+
* session actually uses (the channel feeds it the live provider at every
|
|
16
|
+
* bind — boot, resume — and on each /model switch), and only when that route declares
|
|
17
|
+
* no retryPolicy: an explicit value (from cordis.yml or a hand-edited
|
|
18
|
+
* settings document) is a deliberate choice and is never overwritten, and
|
|
19
|
+
* dormant channels are never touched. The settings user layer merges
|
|
20
|
+
* recursively over the composition base, so a route configured through
|
|
21
|
+
* the profile patch is reached with all its other fields intact.
|
|
22
|
+
*
|
|
23
|
+
* @module @deepseek-harness-tui/dsh-tui/channel/upstream-retry
|
|
24
|
+
*/
|
|
25
|
+
import { t } from '../../i18n.js';
|
|
26
|
+
import { settingsValue } from '../compat/settings.js';
|
|
27
|
+
/** Retry attempts after the first request, matching both the upstream
|
|
28
|
+
* default and the product ask (retry 5 times). */
|
|
29
|
+
export const UPSTREAM_RETRY_MAX_RETRIES = 5;
|
|
30
|
+
/**
|
|
31
|
+
* Failure codes the widened policy retries: the stock set dsh-llm's
|
|
32
|
+
* resolveRetryPolicy defaults to, plus STREAM_CLOSED (dsh-llm-pi-ai's
|
|
33
|
+
* signature for an upstream event stream that ended without a terminal
|
|
34
|
+
* event). Codes outside the set (AUTH, INVALID_REQUEST, QUOTA, …) stay
|
|
35
|
+
* non-retryable exactly as before.
|
|
36
|
+
*/
|
|
37
|
+
export const UPSTREAM_RETRYABLE_CODES = [
|
|
38
|
+
'EMPTY_RESPONSE',
|
|
39
|
+
'RATE_LIMIT',
|
|
40
|
+
'SERVER',
|
|
41
|
+
'TIMEOUT',
|
|
42
|
+
'TRANSPORT',
|
|
43
|
+
'STREAM_CLOSED',
|
|
44
|
+
];
|
|
45
|
+
/**
|
|
46
|
+
* The retry policy value written under 'providers.<route>.retryPolicy'
|
|
47
|
+
* (RetryPolicySchema's normal mode). A fresh object per call: settings
|
|
48
|
+
* documents are plain JSON, never shared module state.
|
|
49
|
+
*/
|
|
50
|
+
export function upstreamRetryPolicy() {
|
|
51
|
+
return {
|
|
52
|
+
mode: 'normal',
|
|
53
|
+
maxRetries: UPSTREAM_RETRY_MAX_RETRIES,
|
|
54
|
+
retryableCodes: [...UPSTREAM_RETRYABLE_CODES],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** The resolved 'llm-pi-ai' section narrowed to its provider dict. */
|
|
58
|
+
function providersOf(section) {
|
|
59
|
+
if (section === null || typeof section !== 'object' || Array.isArray(section))
|
|
60
|
+
return {};
|
|
61
|
+
const providers = section.providers;
|
|
62
|
+
if (providers === null || typeof providers !== 'object' || Array.isArray(providers))
|
|
63
|
+
return {};
|
|
64
|
+
return providers;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Provider routes whose resolved profile declares no retryPolicy — the ones
|
|
68
|
+
* ensureUpstreamRetry may seed. A present value (any shape) marks a
|
|
69
|
+
* deliberate choice and keeps the route out. With `wanted`, only those
|
|
70
|
+
* routes are considered — the caller names the route(s) its session
|
|
71
|
+
* actually uses, so dormant channels are never touched.
|
|
72
|
+
*/
|
|
73
|
+
export function routesWithoutRetryPolicy(section, wanted) {
|
|
74
|
+
const filter = wanted === undefined ? undefined : new Set(wanted);
|
|
75
|
+
return Object.entries(providersOf(section))
|
|
76
|
+
.filter(([route, profile]) => filter === undefined || filter.has(route))
|
|
77
|
+
.filter(([, profile]) => !(profile !== null && typeof profile === 'object' && 'retryPolicy' in profile))
|
|
78
|
+
.map(([route]) => route);
|
|
79
|
+
}
|
|
80
|
+
/** One settings mutation op per route (see ensureUpstreamRetry). */
|
|
81
|
+
export function upstreamRetryOps(routes) {
|
|
82
|
+
return routes.map(route => ({
|
|
83
|
+
op: 'set',
|
|
84
|
+
path: ['providers', route, 'retryPolicy'],
|
|
85
|
+
value: upstreamRetryPolicy(),
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Seed 'retryPolicy' (normal mode, 5 retries, transport-drop-aware codes)
|
|
90
|
+
* on the given llm-pi-ai routes — and only those — when their resolved
|
|
91
|
+
* profiles lack one, through the official settings mutation path (one
|
|
92
|
+
* stale-revision retry, same contract as the provider wizard). Callers
|
|
93
|
+
* name the route(s) the bound session actually uses, so channels nobody
|
|
94
|
+
* switched to are never written. Per-route once-per-process is the
|
|
95
|
+
* caller's guard; after a successful write the route carries the policy
|
|
96
|
+
* and drops out on its own.
|
|
97
|
+
* Best effort: no settings service, no llm-pi-ai namespace, a route the
|
|
98
|
+
* section does not know (a non-pi-ai adapter route), or a refused write
|
|
99
|
+
* all stay quiet (warn to the log on real errors).
|
|
100
|
+
* @param ctx - Context with the settings service (optional at runtime).
|
|
101
|
+
* @param notify - Channel notification for the one success line.
|
|
102
|
+
* @param routes - Provider routes the current session uses.
|
|
103
|
+
*/
|
|
104
|
+
export async function ensureUpstreamRetry(ctx, notify, routes) {
|
|
105
|
+
if (routes.length === 0)
|
|
106
|
+
return;
|
|
107
|
+
let settings;
|
|
108
|
+
try {
|
|
109
|
+
settings = ctx.get('settings');
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
settings = undefined;
|
|
113
|
+
}
|
|
114
|
+
if (settings === undefined || typeof settings.describe !== 'function')
|
|
115
|
+
return;
|
|
116
|
+
const revision = () => settings.describe().find(row => row.ns === 'llm-pi-ai')?.revision;
|
|
117
|
+
if (revision() === undefined)
|
|
118
|
+
return;
|
|
119
|
+
const missing = routesWithoutRetryPolicy(settingsValue(settings, 'llm-pi-ai'), routes);
|
|
120
|
+
if (missing.length === 0)
|
|
121
|
+
return;
|
|
122
|
+
try {
|
|
123
|
+
try {
|
|
124
|
+
await settings.mutate('llm-pi-ai', upstreamRetryOps(missing), revision());
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
// One retry on a stale-revision conflict (a concurrent write landed
|
|
128
|
+
// between describe and mutate); anything else propagates.
|
|
129
|
+
if (error?.code !== 'SETTINGS_CONFLICT')
|
|
130
|
+
throw error;
|
|
131
|
+
await settings.mutate('llm-pi-ai', upstreamRetryOps(missing), revision());
|
|
132
|
+
}
|
|
133
|
+
notify(t('upstream-retry-enabled', { routes: missing.join(', ') }), { color: 'success' });
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
ctx.logger.warn(`dsh-tui: upstream retry policy could not be seeded for ${missing.join()} (${error instanceof Error ? error.message : String(error)})`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-actions.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/workspace-actions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,4GAA4G;AAC5G,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,EACpE,IAAI,EAAE;IACJ,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IACzC,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvD,gBAAgB,IAAI,IAAI,CAAA;IACxB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;CAC/B;;
|
|
1
|
+
{"version":3,"file":"workspace-actions.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/workspace-actions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,4GAA4G;AAC5G,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,EACpE,IAAI,EAAE;IACJ,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IACzC,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvD,gBAAgB,IAAI,IAAI,CAAA;IACxB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;CAC/B;;iCAeiC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;4BAElC,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;8BAgBvB,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;4BA5BhD,MAAM;8BAuCE,kBAAkB,KAAG,OAAO,CAAC,OAAO,CAAC;6BAsBtC,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;;gCAauJ,MAAM,SAAS,MAAM;EAC5O"}
|
|
@@ -3,9 +3,10 @@ import { t } from '../../i18n.js';
|
|
|
3
3
|
import { WORKING_GATE_NOTICES } from '../../commands.js';
|
|
4
4
|
/** Workspace command/query surface. The selected cwd is published only by a successful session adoption. */
|
|
5
5
|
export function createWorkspaceActions(state, deps) {
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
6
|
+
// `deps.service` is read per call (late row).
|
|
7
|
+
const { notify } = deps;
|
|
8
|
+
const listWorkspaces = () => deps.service.list(state.cwd);
|
|
9
|
+
const resolveWorkspace = (uri) => deps.service.resolve(uri, state.cwd);
|
|
9
10
|
/**
|
|
10
11
|
* The workspace home screen's sidebar: the durable ledger's own listing.
|
|
11
12
|
*
|
|
@@ -15,12 +16,12 @@ export function createWorkspaceActions(state, deps) {
|
|
|
15
16
|
* directly and only adds what the ledger does not know: whether the
|
|
16
17
|
* directory still exists.
|
|
17
18
|
*/
|
|
18
|
-
const listWorkspaceRegistry = () => service.listRegistry();
|
|
19
|
+
const listWorkspaceRegistry = () => deps.service.listRegistry();
|
|
19
20
|
/** Forget a registration. Sessions are untouched; removing the live workspace is refused. */
|
|
20
21
|
const removeWorkspace = async (path) => {
|
|
21
22
|
deps.owner.assertActive();
|
|
22
23
|
try {
|
|
23
|
-
const removed = await service.remove(path);
|
|
24
|
+
const removed = await deps.service.remove(path);
|
|
24
25
|
if (!removed) {
|
|
25
26
|
notify(t('workspace-remove-unknown', { target: path }), { color: 'warning', timeoutMs: 8000 });
|
|
26
27
|
return false;
|
|
@@ -37,7 +38,7 @@ export function createWorkspaceActions(state, deps) {
|
|
|
37
38
|
const renameWorkspaceAt = async (path, title) => {
|
|
38
39
|
deps.owner.assertActive();
|
|
39
40
|
try {
|
|
40
|
-
const renamed = await service.rename(path, title);
|
|
41
|
+
const renamed = await deps.service.rename(path, title);
|
|
41
42
|
notify(t('workspace-renamed', { title: renamed.label }));
|
|
42
43
|
return true;
|
|
43
44
|
}
|
|
@@ -82,7 +83,7 @@ export function createWorkspaceActions(state, deps) {
|
|
|
82
83
|
const renameWorkspace = async (title) => {
|
|
83
84
|
deps.owner.assertActive();
|
|
84
85
|
try {
|
|
85
|
-
const renamed = await service.rename(state.cwd, title);
|
|
86
|
+
const renamed = await deps.service.rename(state.cwd, title);
|
|
86
87
|
state.displayCwd = renamed.description ?? renamed.uri;
|
|
87
88
|
notify(t('workspace-renamed', { title: renamed.label }));
|
|
88
89
|
state.emit();
|
|
@@ -93,5 +94,5 @@ export function createWorkspaceActions(state, deps) {
|
|
|
93
94
|
return false;
|
|
94
95
|
}
|
|
95
96
|
};
|
|
96
|
-
return { listWorkspaces, listWorkspaceRegistry, removeWorkspace, renameWorkspaceAt, resolveWorkspace, switchWorkspace, renameWorkspace, workspaceCommands: () => service.commands(), runWorkspaceCommand: (name, input) => service.runCommand(name, input, state.cwd) };
|
|
97
|
+
return { listWorkspaces, listWorkspaceRegistry, removeWorkspace, renameWorkspaceAt, resolveWorkspace, switchWorkspace, renameWorkspace, workspaceCommands: () => deps.service.commands(), runWorkspaceCommand: (name, input) => deps.service.runCommand(name, input, state.cwd) };
|
|
97
98
|
}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
import type { ChannelState } from './channel.js';
|
|
3
3
|
import type { ChannelUi } from '../adapter/channel/ui-policy.js';
|
|
4
4
|
import type { AdapterMode } from '../adapter/kernel/runtime.js';
|
|
5
|
-
export declare function mountChannelUi(ctx: unknown, channel: ChannelState, pluginHost: unknown, mode: AdapterMode
|
|
5
|
+
export declare function mountChannelUi(ctx: unknown, channel: ChannelState, pluginHost: unknown, mode: AdapterMode,
|
|
6
|
+
/** Look the plugin host up per probe (late row); absent = `pluginHost`. */
|
|
7
|
+
resolvePluginHost?: () => unknown): {
|
|
6
8
|
channel: ChannelUi;
|
|
7
9
|
dispose(): void;
|
|
8
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-ui.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/channel-ui.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAY/D,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,OAAO,EACnB,IAAI,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"channel-ui.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/channel-ui.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAY/D,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,OAAO,EACnB,IAAI,EAAE,WAAW;AACjB,2EAA2E;AAC3E,iBAAiB,CAAC,EAAE,MAAM,OAAO,GAChC;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,IAAI,IAAI,CAAA;CAAE,CAkGzC"}
|
|
@@ -10,7 +10,9 @@ function throwCleanupFailures(failures, message) {
|
|
|
10
10
|
}
|
|
11
11
|
/** Re-probe interval while the kernel's channel slice is still absent. */
|
|
12
12
|
const FACADE_PROBE_MS = 250;
|
|
13
|
-
export function mountChannelUi(ctx, channel, pluginHost, mode
|
|
13
|
+
export function mountChannelUi(ctx, channel, pluginHost, mode,
|
|
14
|
+
/** Look the plugin host up per probe (late row); absent = `pluginHost`. */
|
|
15
|
+
resolvePluginHost) {
|
|
14
16
|
// A registration, rather than Channel object equality, is the authority for
|
|
15
17
|
// this mount. Re-registering the same Channel revokes retained UI handles.
|
|
16
18
|
const registration = getTuiChannelRegistration(ctx);
|
|
@@ -64,7 +66,7 @@ export function mountChannelUi(ctx, channel, pluginHost, mode) {
|
|
|
64
66
|
if (facadeProbe !== undefined && now - facadeProbeAt < FACADE_PROBE_MS)
|
|
65
67
|
return facadeProbe;
|
|
66
68
|
facadeProbeAt = now;
|
|
67
|
-
facadeProbe = getHostFacade(pluginHost);
|
|
69
|
+
facadeProbe = getHostFacade((resolvePluginHost === undefined ? pluginHost : resolvePluginHost()));
|
|
68
70
|
if (facadeProbe?.channel !== undefined)
|
|
69
71
|
facadeProbeLocked = true;
|
|
70
72
|
return facadeProbe;
|
|
@@ -16,8 +16,8 @@ export type { SubagentState } from './subagents.js';
|
|
|
16
16
|
* transcript, subscribe to the session's events, and expose every TUI action.
|
|
17
17
|
* @internal
|
|
18
18
|
* @param ctx - The plugin context; optional services are resolved via ctx.get.
|
|
19
|
-
* @param initial - The session the channel renders; rewinds
|
|
20
|
-
* model switches
|
|
19
|
+
* @param initial - The session the channel renders; rewinds and resumes
|
|
20
|
+
* replace it, while model switches keep it. A raw DSH agent (direct embedders, fixtures) is
|
|
21
21
|
* wrapped as a DSH session together with `options.handle`.
|
|
22
22
|
* @param options - Boot options: model route, cwd, provider, and the
|
|
23
23
|
* reasoning-effort / working-activity preferences.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/channel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/channel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAOvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,YAAY,GAAG,KAAK,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,YAAY,CAgCd;AAED,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,YAAY,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAC30B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createDshSession, isAgentSession } from './backend/session.js';
|
|
2
|
+
import { cordisChannelHost } from './channel/cordis-host.js';
|
|
2
3
|
import { createCoreChannel } from './channel/core/compose.js';
|
|
3
4
|
import { attachDshExtensions } from './channel/extensions.js';
|
|
4
5
|
import { attachSessionWorkingActivity } from './channel/session-activity.js';
|
|
@@ -8,8 +9,8 @@ import { createChannelOwner } from './channel/owner.js';
|
|
|
8
9
|
* transcript, subscribe to the session's events, and expose every TUI action.
|
|
9
10
|
* @internal
|
|
10
11
|
* @param ctx - The plugin context; optional services are resolved via ctx.get.
|
|
11
|
-
* @param initial - The session the channel renders; rewinds
|
|
12
|
-
* model switches
|
|
12
|
+
* @param initial - The session the channel renders; rewinds and resumes
|
|
13
|
+
* replace it, while model switches keep it. A raw DSH agent (direct embedders, fixtures) is
|
|
13
14
|
* wrapped as a DSH session together with `options.handle`.
|
|
14
15
|
* @param options - Boot options: model route, cwd, provider, and the
|
|
15
16
|
* reasoning-effort / working-activity preferences.
|
|
@@ -19,16 +20,29 @@ export function createChannel(ctx, initial, options) {
|
|
|
19
20
|
const owner = createChannelOwner();
|
|
20
21
|
try {
|
|
21
22
|
const session = isAgentSession(initial) ? initial : createDshSession(ctx, { agent: initial, handle: options.handle });
|
|
22
|
-
const core = createCoreChannel(ctx, session, options, owner);
|
|
23
|
+
const core = createCoreChannel(cordisChannelHost(ctx, options.settingsService === undefined ? {} : { settings: options.settingsService }), session, options, owner);
|
|
23
24
|
// DSH extensions attach only to a DSH session; other backends get the
|
|
24
25
|
// core and whatever their session capabilities offer.
|
|
25
26
|
const native = session.capabilities.native.dsh;
|
|
26
|
-
if (native !== undefined)
|
|
27
|
+
if (native !== undefined) {
|
|
27
28
|
attachDshExtensions(core, ctx, native, options);
|
|
29
|
+
}
|
|
30
|
+
else if (options.startup !== undefined) {
|
|
31
|
+
// A placeholder learns its backend at the first adoption; a DSH
|
|
32
|
+
// session adopted then gets the same extensions.
|
|
33
|
+
core.extendOnAdopt(adopted => {
|
|
34
|
+
const dsh = adopted.capabilities.native.dsh;
|
|
35
|
+
if (dsh !== undefined)
|
|
36
|
+
attachDshExtensions(core, ctx, dsh, options);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
28
39
|
// A backend that builds its own working line (the Claude backend) exposes
|
|
29
40
|
// it as a capability. DSH keeps using its projection above. Without the
|
|
30
41
|
// capability or the publish option nothing is attached.
|
|
31
|
-
|
|
42
|
+
// A placeholder serves nothing yet, so its real session's capability
|
|
43
|
+
// decides per bind (a DSH session adopted later replaces these hooks:
|
|
44
|
+
// `extend` merges `bind` whole).
|
|
45
|
+
if (session.capabilities.workingActivity !== undefined || options.startup !== undefined)
|
|
32
46
|
attachSessionWorkingActivity(core, options);
|
|
33
47
|
return core.start();
|
|
34
48
|
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Teams 0.2.0 durable shapes, read as their 0.2.1 equivalents.
|
|
3
|
+
*
|
|
4
|
+
* The readers that meet these shapes call in here first, so the rest of the
|
|
5
|
+
* adapter knows only the 0.2.1 forms (docs/agent-teams-design.md「兼容(0.2.0)」):
|
|
6
|
+
* the translator and the subagent projection for mailbox deliveries, the
|
|
7
|
+
* translator and agent-view for a teammate's first prompt. Session previews
|
|
8
|
+
* (sessions/digest.ts) and the recap read no teammate session today: the
|
|
9
|
+
* listings previews serve skip `origin: subagent`, and the recap reads only
|
|
10
|
+
* the bound session. Route them here when a teammate session opens there.
|
|
11
|
+
* The shapes are log compatibility, not host compatibility: a 0.2.1 host
|
|
12
|
+
* still resumes sessions recorded under 0.2.0, so dropping the 0.2.0 host
|
|
13
|
+
* line alone does not retire this module. It retires when reading
|
|
14
|
+
* 0.2.0-era team logs is given up; then delete this file and its callers
|
|
15
|
+
* (`grep -rn "compat(dsh 0.2.0"`).
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* A team message delivered by the 0.2.0 mailbox, as the relay it became:
|
|
21
|
+
* source `{ kind: 'agent-message', form: 'relay', senderSessionId }`, first
|
|
22
|
+
* block `Team message from <name>:`. The 0.2.0 framing block
|
|
23
|
+
* (`Team message <id> from <name>:`) is replaced only when it matches this
|
|
24
|
+
* message's identity exactly; otherwise it stays as content, as it did.
|
|
25
|
+
* @param data - the message's source and content (other fields are kept).
|
|
26
|
+
* @returns `data`, or a copy in the 0.2.1 form.
|
|
27
|
+
*/
|
|
28
|
+
export declare function teamMailboxAsRelay<T extends {
|
|
29
|
+
readonly source?: unknown;
|
|
30
|
+
readonly content?: unknown;
|
|
31
|
+
}>(data: T): T;
|
|
32
|
+
/**
|
|
33
|
+
* A teammate's first prompt without the leading `<system-reminder>` identity
|
|
34
|
+
* block (0.2.1 carries it as a system-prompt context). Matched against the
|
|
35
|
+
* whole 0.2.0 template, on a human-sourced message with more blocks after it;
|
|
36
|
+
* callers apply it to the first prompt they read (a translator: the first
|
|
37
|
+
* since its replay or reset). A reader that starts mid-log — a subagent
|
|
38
|
+
* transcript page, the live translator after `history()` replayed on its own
|
|
39
|
+
* instance — counts its first prompt as one, so only that prompt, pasted as
|
|
40
|
+
* the exact template plus more blocks, could lose the block.
|
|
41
|
+
* @param data - the message's source and content (other fields are kept).
|
|
42
|
+
* @returns `data`, or a copy without the block.
|
|
43
|
+
*/
|
|
44
|
+
export declare function withoutTeammateReminder<T extends {
|
|
45
|
+
readonly source?: unknown;
|
|
46
|
+
readonly content?: unknown;
|
|
47
|
+
}>(data: T): T;
|
|
48
|
+
/**
|
|
49
|
+
* The 0.2.0 `send_message` result: the mailbox status of the queued message
|
|
50
|
+
* (0.2.1 answers `{ sent: true }`).
|
|
51
|
+
* @param value - the parsed tool result.
|
|
52
|
+
* @returns `accepted` / `queued`, or `undefined` for anything else.
|
|
53
|
+
*/
|
|
54
|
+
export declare function legacySendMessageStatus(value: Readonly<Record<string, unknown>>): string | undefined;
|
|
55
|
+
//# sourceMappingURL=agent-team-0.2.0.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-team-0.2.0.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/compat/agent-team-0.2.0.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAiBH;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAYlH;AAqBD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAKvH;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAEpG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Teams 0.2.0 durable shapes, read as their 0.2.1 equivalents.
|
|
3
|
+
*
|
|
4
|
+
* The readers that meet these shapes call in here first, so the rest of the
|
|
5
|
+
* adapter knows only the 0.2.1 forms (docs/agent-teams-design.md「兼容(0.2.0)」):
|
|
6
|
+
* the translator and the subagent projection for mailbox deliveries, the
|
|
7
|
+
* translator and agent-view for a teammate's first prompt. Session previews
|
|
8
|
+
* (sessions/digest.ts) and the recap read no teammate session today: the
|
|
9
|
+
* listings previews serve skip `origin: subagent`, and the recap reads only
|
|
10
|
+
* the bound session. Route them here when a teammate session opens there.
|
|
11
|
+
* The shapes are log compatibility, not host compatibility: a 0.2.1 host
|
|
12
|
+
* still resumes sessions recorded under 0.2.0, so dropping the 0.2.0 host
|
|
13
|
+
* line alone does not retire this module. It retires when reading
|
|
14
|
+
* 0.2.0-era team logs is given up; then delete this file and its callers
|
|
15
|
+
* (`grep -rn "compat(dsh 0.2.0"`).
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
function mailboxSourceOf(source) {
|
|
20
|
+
const shape = source;
|
|
21
|
+
return shape?.kind === 'team-message' && typeof shape.senderId === 'string' && typeof shape.senderName === 'string'
|
|
22
|
+
? shape
|
|
23
|
+
: undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A team message delivered by the 0.2.0 mailbox, as the relay it became:
|
|
27
|
+
* source `{ kind: 'agent-message', form: 'relay', senderSessionId }`, first
|
|
28
|
+
* block `Team message from <name>:`. The 0.2.0 framing block
|
|
29
|
+
* (`Team message <id> from <name>:`) is replaced only when it matches this
|
|
30
|
+
* message's identity exactly; otherwise it stays as content, as it did.
|
|
31
|
+
* @param data - the message's source and content (other fields are kept).
|
|
32
|
+
* @returns `data`, or a copy in the 0.2.1 form.
|
|
33
|
+
*/
|
|
34
|
+
export function teamMailboxAsRelay(data) {
|
|
35
|
+
const { source, content } = data;
|
|
36
|
+
const mailbox = mailboxSourceOf(source);
|
|
37
|
+
if (mailbox === undefined || !Array.isArray(content))
|
|
38
|
+
return data;
|
|
39
|
+
const first = content[0];
|
|
40
|
+
const legacyFraming = `Team message ${String(mailbox.messageId)} from ${mailbox.senderName}:`;
|
|
41
|
+
const body = first?.type === 'text' && first.text === legacyFraming ? content.slice(1) : content;
|
|
42
|
+
return {
|
|
43
|
+
...data,
|
|
44
|
+
source: { kind: 'agent-message', form: 'relay', senderSessionId: mailbox.senderId },
|
|
45
|
+
content: [{ type: 'text', text: `Team message from ${mailbox.senderName}:` }, ...body],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/** The identity block 0.2.0 `spawn_teammate` put before a teammate's first prompt, around the name. */
|
|
49
|
+
const REMINDER_HEAD = '<system-reminder>\nYou are teammate "';
|
|
50
|
+
const REMINDER_TAIL = `".
|
|
51
|
+
Your Team Lead is named "lead".
|
|
52
|
+
Use list_agents({}) to find your teammates and their names.
|
|
53
|
+
To message your Team Lead, use send_message({ target: "lead", message: "..." }).
|
|
54
|
+
To message another teammate, use send_message({ target: "<teammate name>", message: "..." }).
|
|
55
|
+
</system-reminder>
|
|
56
|
+
|
|
57
|
+
`;
|
|
58
|
+
function isTeammateReminder(block) {
|
|
59
|
+
const { type, text } = (block ?? {});
|
|
60
|
+
if (type !== 'text' || typeof text !== 'string')
|
|
61
|
+
return false;
|
|
62
|
+
if (text.length < REMINDER_HEAD.length + REMINDER_TAIL.length)
|
|
63
|
+
return false;
|
|
64
|
+
if (!text.startsWith(REMINDER_HEAD) || !text.endsWith(REMINDER_TAIL))
|
|
65
|
+
return false;
|
|
66
|
+
return !text.slice(REMINDER_HEAD.length, text.length - REMINDER_TAIL.length).includes('\n');
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A teammate's first prompt without the leading `<system-reminder>` identity
|
|
70
|
+
* block (0.2.1 carries it as a system-prompt context). Matched against the
|
|
71
|
+
* whole 0.2.0 template, on a human-sourced message with more blocks after it;
|
|
72
|
+
* callers apply it to the first prompt they read (a translator: the first
|
|
73
|
+
* since its replay or reset). A reader that starts mid-log — a subagent
|
|
74
|
+
* transcript page, the live translator after `history()` replayed on its own
|
|
75
|
+
* instance — counts its first prompt as one, so only that prompt, pasted as
|
|
76
|
+
* the exact template plus more blocks, could lose the block.
|
|
77
|
+
* @param data - the message's source and content (other fields are kept).
|
|
78
|
+
* @returns `data`, or a copy without the block.
|
|
79
|
+
*/
|
|
80
|
+
export function withoutTeammateReminder(data) {
|
|
81
|
+
const { source, content } = data;
|
|
82
|
+
if (source?.kind !== 'user')
|
|
83
|
+
return data;
|
|
84
|
+
if (!Array.isArray(content) || content.length < 2 || !isTeammateReminder(content[0]))
|
|
85
|
+
return data;
|
|
86
|
+
return { ...data, content: content.slice(1) };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The 0.2.0 `send_message` result: the mailbox status of the queued message
|
|
90
|
+
* (0.2.1 answers `{ sent: true }`).
|
|
91
|
+
* @param value - the parsed tool result.
|
|
92
|
+
* @returns `accepted` / `queued`, or `undefined` for anything else.
|
|
93
|
+
*/
|
|
94
|
+
export function legacySendMessageStatus(value) {
|
|
95
|
+
return value.status === 'accepted' || value.status === 'queued' ? value.status : undefined;
|
|
96
|
+
}
|