@deepseek-harness-tui/dsh-tui 0.14.0 → 0.15.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 +73 -14
- 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 +34 -7
- package/guide/dsh-tui-guide/codex-backend.md +17 -2
- package/guide/dsh-tui-guide/configuration.en.md +129 -16
- package/guide/dsh-tui-guide/configuration.md +110 -14
- package/guide/dsh-tui-guide/interaction.en.md +57 -24
- package/guide/dsh-tui-guide/interaction.md +42 -19
- package/guide/dsh-tui-guide/plugins.en.md +36 -3
- package/guide/dsh-tui-guide/plugins.md +21 -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 +51 -20
- package/guide/dsh-tui-guide/user-guide.md +41 -21
- package/lib/settings.json +103 -9
- 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 +3 -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-settings.d.ts +9 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +50 -12
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +21 -0
- package/lib/types/adapter/ports/channel-view.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/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/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/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 +66 -34
- 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.js +4 -4
- 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/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/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 +5 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +47 -8
- 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 +20 -6
- 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.map +1 -1
- package/lib/types/components/LogoV2.js +9 -6
- 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 +18 -5
- 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/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 +58 -118
- 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/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.map +1 -1
- package/lib/types/components/launchpadLayout.js +2 -2
- 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/SidePanelColumn.d.ts +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +2 -1
- 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/btw/BtwComposer.d.ts +4 -2
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwComposer.js +12 -4
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +59 -15
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +4 -2
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +12 -6
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +2 -2
- package/lib/types/components/sidePanel/types.d.ts +1 -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/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/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 +20 -0
- package/lib/types/dsh-adapter/admission-loader.d.ts.map +1 -0
- package/lib/types/dsh-adapter/admission-loader.js +256 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backend/translate.js +3 -0
- 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-contribution.d.ts +26 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-contribution.js +37 -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 +285 -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 +92 -46
- 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 +16 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +18 -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 +16 -0
- 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 +7 -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 +3 -0
- 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 +318 -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 +41 -22
- 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 +1 -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 +138 -8
- 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 +40 -28
- 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/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 +56 -27
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +15 -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 +2 -2
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +1 -0
- package/lib/types/dsh-adapter/channel/state.d.ts +37 -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 +66 -6
- 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 +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +1 -1
- 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/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 +1 -1
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +15 -0
- package/lib/types/dsh-adapter/entry-slot.d.ts +36 -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 +221 -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 +53 -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 +76 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts +106 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-dsh.js +466 -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 +228 -0
- package/lib/types/dsh-adapter/index.d.ts +55 -18
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +59 -7
- 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/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/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 +35 -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 +21 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-declaration.js +53 -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-manager.d.ts +68 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manager.js +51 -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 +870 -233
- package/lib/types/dsh-adapter/plugins-info.d.ts +44 -8
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugins-info.js +354 -34
- 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-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/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 +110 -8
- 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/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 +363 -1432
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +155 -385
- 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/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 +129 -16
- 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/permissionPrefs.d.ts +34 -0
- package/lib/types/permissionPrefs.d.ts.map +1 -0
- package/lib/types/permissionPrefs.js +61 -0
- package/lib/types/plugin-host.d.ts +1 -0
- package/lib/types/plugin-host.d.ts.map +1 -1
- 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 +22 -15
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +442 -272
- package/lib/types/screens/Launchpad.d.ts +27 -17
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +241 -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 +6 -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/chatOverlay.d.ts +11 -4
- 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/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/package.json +36 -6
- package/presets/winbash.mjs +716 -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
|
@@ -8,6 +8,7 @@ export const DECISION_EVENTS: Readonly<ApiReference & {
|
|
|
8
8
|
}>
|
|
9
9
|
|
|
10
10
|
export const decisionEventsDefinition: ProtocolDefinition
|
|
11
|
+
export const backendDefinition: ProtocolDefinition
|
|
11
12
|
export const profileDefinitions: readonly ProtocolDefinition[]
|
|
12
13
|
|
|
13
14
|
export function registerProfileProtocols(catalog: ProtocolCatalog): () => void
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
export { registerTuiContributionExtensions } from './tui-contributions.js'
|
|
4
4
|
export * from './tui-channel.js'
|
|
5
5
|
import { tuiChannelDefinition } from './tui-channel.js'
|
|
6
|
+
import { BACKEND } from './tui-contributions.js'
|
|
6
7
|
|
|
7
8
|
export const DECISION_EVENTS = Object.freeze({
|
|
8
9
|
apiVersion: 'tui.dsh/v1alpha1',
|
|
@@ -48,9 +49,22 @@ function providerDefinition(reference, label) {
|
|
|
48
49
|
|
|
49
50
|
export const decisionEventsDefinition = providerDefinition(DECISION_EVENTS, 'DecisionEvents')
|
|
50
51
|
|
|
52
|
+
/**
|
|
53
|
+
* The `Backend` contribution coordinate as a **host-published contract** (C
|
|
54
|
+
* stage / W-2). The family's own declaration shape and validator live in
|
|
55
|
+
* `tui-contributions.js` (the manifest extension catalog); this definition is the
|
|
56
|
+
* other half — the coordinate a bundle names in `requires.contracts`, which the
|
|
57
|
+
* host descriptor advertises once its admission machine answers a real probe.
|
|
58
|
+
* Like DecisionEvents it carries no support spec: a backend's support is not
|
|
59
|
+
* feature-granular, and what a declaration may say is decided by the extension
|
|
60
|
+
* definition, not by this contract.
|
|
61
|
+
*/
|
|
62
|
+
export const backendDefinition = providerDefinition(BACKEND, 'Backend')
|
|
63
|
+
|
|
51
64
|
export const profileDefinitions = Object.freeze([
|
|
52
65
|
decisionEventsDefinition,
|
|
53
66
|
tuiChannelDefinition,
|
|
67
|
+
backendDefinition,
|
|
54
68
|
])
|
|
55
69
|
|
|
56
70
|
export function registerProfileProtocols(catalog) {
|
|
@@ -4,6 +4,9 @@ import type { ManifestDefinitionCatalog, ManifestObjectDefinition } from '@dsh-s
|
|
|
4
4
|
export const API_VERSION: 'tui.dsh/v1alpha1'
|
|
5
5
|
export const SETTINGS_SECTION: Readonly<ApiReference & { kind: 'SettingsSection' }>
|
|
6
6
|
export const SCENE: Readonly<ApiReference & { kind: 'Scene' }>
|
|
7
|
+
export const BACKEND: Readonly<ApiReference & { kind: 'Backend' }>
|
|
8
|
+
export const BACKEND_RESERVED_IDS: readonly string[]
|
|
9
|
+
export const BACKEND_CONFIRMATION_POLICIES: readonly ('confirm' | 'trusted-source')[]
|
|
7
10
|
|
|
8
11
|
export type LocalizedText = Readonly<Record<string, string>>
|
|
9
12
|
export type SettingsFieldKind = 'text' | 'number' | 'boolean' | 'select'
|
|
@@ -32,11 +35,63 @@ export interface SceneHandler<Props = unknown, Result = unknown> {
|
|
|
32
35
|
readonly component: (props: Props) => Result
|
|
33
36
|
}
|
|
34
37
|
|
|
38
|
+
/**
|
|
39
|
+
* The install recipe the host's wizard would run: `executor` names one of the
|
|
40
|
+
* host's executors, `specifier`/`version` are what it would add. An executor this
|
|
41
|
+
* host does not implement means "no install surface", never a refused
|
|
42
|
+
* declaration. Absent = nothing to install (the user's own binary is the
|
|
43
|
+
* dependency).
|
|
44
|
+
*/
|
|
45
|
+
export interface BackendInstallRecipe {
|
|
46
|
+
readonly executor: string
|
|
47
|
+
readonly specifier: string
|
|
48
|
+
readonly version: string
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* One backend's public declaration.
|
|
53
|
+
*
|
|
54
|
+
* Plain `string`, literal label text and plain arrays only, on purpose (roadmap
|
|
55
|
+
* §6 item 10): this value arrives from JSON/YAML, across versions, where a
|
|
56
|
+
* compile-time brand protects nothing. Discriminated unions and brands stay
|
|
57
|
+
* inside the host package.
|
|
58
|
+
*/
|
|
59
|
+
export interface BackendSpec {
|
|
60
|
+
readonly id: string
|
|
61
|
+
/** Literal only — a host i18n key is refused (D2). */
|
|
62
|
+
readonly label: { readonly text: string }
|
|
63
|
+
readonly shortLabel: string
|
|
64
|
+
readonly product?: string
|
|
65
|
+
readonly capabilities: readonly string[]
|
|
66
|
+
readonly grants: readonly string[]
|
|
67
|
+
readonly install?: BackendInstallRecipe
|
|
68
|
+
/** Module export closing this backend's process-wide resource pool. See the
|
|
69
|
+
* definition body: session-scoped resources belong to `session.dispose()`. */
|
|
70
|
+
readonly unloadExport?: string
|
|
71
|
+
/** The confirmation this contribution requests; absent means the default
|
|
72
|
+
* `confirm`. `trusted-source` asks for the host's own source judgment and is
|
|
73
|
+
* honored only when that judgment holds — it never exempts by itself. */
|
|
74
|
+
readonly confirmation?: { readonly policy: 'confirm' | 'trusted-source' }
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** The handler a contribution binds at registration (the runtime `AgentBackend`). */
|
|
78
|
+
export interface BackendHandler {
|
|
79
|
+
readonly id: string
|
|
80
|
+
readonly descriptor?: object
|
|
81
|
+
detect(...args: unknown[]): Promise<unknown>
|
|
82
|
+
open(...args: unknown[]): Promise<unknown>
|
|
83
|
+
readonly catalog?: object
|
|
84
|
+
readonly launch?: object
|
|
85
|
+
}
|
|
86
|
+
|
|
35
87
|
export const settingsSectionExtensionDefinition: ManifestObjectDefinition
|
|
36
88
|
export const sceneExtensionDefinition: ManifestObjectDefinition
|
|
89
|
+
export const backendExtensionDefinition: ManifestObjectDefinition
|
|
37
90
|
export const contributionExtensionDefinitions: readonly ManifestObjectDefinition[]
|
|
38
91
|
export function validateSettingsSectionSpec(value: unknown): Readonly<SettingsSectionSpec>
|
|
39
92
|
export function validateSceneSpec(value: unknown): Readonly<SceneSpec>
|
|
93
|
+
export function validateBackendSpec(value: unknown): Readonly<BackendSpec>
|
|
40
94
|
export function registerTuiContributionExtensions(catalog: ManifestDefinitionCatalog): () => void
|
|
41
95
|
export function assertSettingsSectionHandler(value: unknown): asserts value is SettingsSectionHandler
|
|
42
96
|
export function assertSceneHandler(value: unknown): asserts value is SceneHandler
|
|
97
|
+
export function assertBackendHandler(value: unknown): asserts value is BackendHandler
|
|
@@ -12,6 +12,44 @@ export const SCENE = Object.freeze({
|
|
|
12
12
|
kind: 'Scene',
|
|
13
13
|
})
|
|
14
14
|
|
|
15
|
+
export const BACKEND = Object.freeze({
|
|
16
|
+
apiVersion: API_VERSION,
|
|
17
|
+
kind: 'Backend',
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Ids the host owns. A **contribution** may not wear one: `dsh` serializes
|
|
22
|
+
* session refs without a prefix, and the bundled backends' rows are the host's own
|
|
23
|
+
* vocabulary — a plugin claiming either would render as first-party. The host's
|
|
24
|
+
* own seed legitimately carries them, so this is deliberately **not** a shape rule
|
|
25
|
+
* (one declaration shape is valid for the seed and invalid for a bundle): the host
|
|
26
|
+
* refuses a contribution whose `id` is in this set at admission, with
|
|
27
|
+
* `BACKEND_ID_RESERVED`. Mirrored by the host registry (`BUILTIN_BACKEND_IDS`); the
|
|
28
|
+
* two lists are compared bidirectionally by
|
|
29
|
+
* `scripts/verify-backend-contribution.ts`.
|
|
30
|
+
*/
|
|
31
|
+
export const BACKEND_RESERVED_IDS = Object.freeze(['dsh', 'claude', 'codex'])
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The confirmation policies this host implements (roadmap §6 item 5 ②).
|
|
35
|
+
*
|
|
36
|
+
* A contribution **requests** a policy; the host decides. `confirm` (the default
|
|
37
|
+
* when the field is absent) always asks the user. `trusted-source` asks for the
|
|
38
|
+
* host's trusted-source path: the host applies *its own* judgment of where the
|
|
39
|
+
* package came from — a curated, offline-readable list of first-party packages,
|
|
40
|
+
* cross-checked against provenance when the registry offers it — and **falls back
|
|
41
|
+
* to `confirm` whenever that judgment does not hold**. A declaration therefore
|
|
42
|
+
* never exempts itself: wearing this value is a request, not a grant, and any
|
|
43
|
+
* mismatch (not on the list, publisher disagrees, provenance disagrees) is
|
|
44
|
+
* fail-closed. Exempting an entry from the interactive confirmation never exempts
|
|
45
|
+
* it from the effect ledger or from being listed.
|
|
46
|
+
*
|
|
47
|
+
* An unknown value is refused: a contribution may never exempt itself from a
|
|
48
|
+
* confirmation this host does not implement. The vocabulary only grows — a later
|
|
49
|
+
* decision adds a value rather than widening the field (additive, not breaking).
|
|
50
|
+
*/
|
|
51
|
+
export const BACKEND_CONFIRMATION_POLICIES = Object.freeze(['confirm', 'trusted-source'])
|
|
52
|
+
|
|
15
53
|
export const settingsSectionExtensionDefinition = Object.freeze({
|
|
16
54
|
...SETTINGS_SECTION,
|
|
17
55
|
validateMetadata(metadata) {
|
|
@@ -52,9 +90,85 @@ export function validateSceneSpec(value) {
|
|
|
52
90
|
})
|
|
53
91
|
}
|
|
54
92
|
|
|
93
|
+
/**
|
|
94
|
+
* One backend's public declaration (`tui.dsh/v1alpha1#Backend`).
|
|
95
|
+
*
|
|
96
|
+
* The body is **shape + honesty**, never authority: an in-process backend runs
|
|
97
|
+
* with this host's own privileges (`securityBoundary: false` in the contract
|
|
98
|
+
* profile), so nothing here is enforced against a hostile plugin — what it buys
|
|
99
|
+
* is that the host can state what a backend claims *before* it runs, and that a
|
|
100
|
+
* claim the host cannot honor (a reserved id, a host label key, a native channel,
|
|
101
|
+
* a self-granted confirmation exemption) is refused at admission rather than
|
|
102
|
+
* discovered later.
|
|
103
|
+
*
|
|
104
|
+
* Deliberately absent: `inTree` (a host fact, not a contribution one),
|
|
105
|
+
* `alwaysAvailable`, `nativeKey` (refused outright — a native channel is derived
|
|
106
|
+
* from an in-tree manifest, never declared) and `backendExport` (the build-time
|
|
107
|
+
* index resolves an export name from a module namespace; a contribution hands
|
|
108
|
+
* over its handler object at registration instead).
|
|
109
|
+
*/
|
|
110
|
+
export const backendExtensionDefinition = Object.freeze({
|
|
111
|
+
...BACKEND,
|
|
112
|
+
validateMetadata(metadata) {
|
|
113
|
+
contributionName(metadata?.name, 'Backend metadata.name')
|
|
114
|
+
},
|
|
115
|
+
validateSpec: validateBackendSpec,
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
export function validateBackendSpec(value) {
|
|
119
|
+
const spec = exactRecord(value, [
|
|
120
|
+
'id', 'label', 'shortLabel', 'product', 'capabilities', 'grants', 'install', 'unloadExport', 'confirmation',
|
|
121
|
+
], 'Backend content')
|
|
122
|
+
if (typeof spec.id !== 'string' || !/^[a-z0-9][a-z0-9-]{0,31}$/u.test(spec.id)) {
|
|
123
|
+
throw new TypeError('Backend content.id is invalid (lowercase letters, digits and dashes, at most 32 characters)')
|
|
124
|
+
}
|
|
125
|
+
// Literal text only: a host i18n key here would let a contribution paint
|
|
126
|
+
// itself with the host's own vocabulary (D2). The host expands its in-tree
|
|
127
|
+
// `{ kind: 'key' }` labels into literals before projecting them here.
|
|
128
|
+
const label = exactRecord(spec.label, ['text'], 'Backend content.label')
|
|
129
|
+
nonEmpty(label.text, 'Backend content.label.text')
|
|
130
|
+
nonEmpty(spec.shortLabel, 'Backend content.shortLabel')
|
|
131
|
+
if (spec.product !== undefined) nonEmpty(spec.product, 'Backend content.product')
|
|
132
|
+
stringArray(spec.capabilities, 'Backend content.capabilities')
|
|
133
|
+
stringArray(spec.grants, 'Backend content.grants')
|
|
134
|
+
if (spec.install !== undefined) {
|
|
135
|
+
const install = exactRecord(spec.install, ['executor', 'specifier', 'version'], 'Backend content.install')
|
|
136
|
+
for (const field of ['executor', 'specifier', 'version']) {
|
|
137
|
+
nonEmpty(install[field], `Backend content.install.${field}`)
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (spec.unloadExport !== undefined) nonEmpty(spec.unloadExport, 'Backend content.unloadExport')
|
|
141
|
+
let confirmation
|
|
142
|
+
if (spec.confirmation !== undefined) {
|
|
143
|
+
const declared = exactRecord(spec.confirmation, ['policy'], 'Backend content.confirmation')
|
|
144
|
+
if (!BACKEND_CONFIRMATION_POLICIES.includes(declared.policy)) {
|
|
145
|
+
throw new TypeError('Backend content.confirmation.policy is not a policy this host implements')
|
|
146
|
+
}
|
|
147
|
+
confirmation = Object.freeze({ policy: declared.policy })
|
|
148
|
+
}
|
|
149
|
+
return Object.freeze({
|
|
150
|
+
id: spec.id,
|
|
151
|
+
label: Object.freeze({ text: label.text }),
|
|
152
|
+
shortLabel: spec.shortLabel,
|
|
153
|
+
...(spec.product === undefined ? {} : { product: spec.product }),
|
|
154
|
+
capabilities: Object.freeze([...spec.capabilities]),
|
|
155
|
+
grants: Object.freeze([...spec.grants]),
|
|
156
|
+
...(spec.install === undefined ? {} : {
|
|
157
|
+
install: Object.freeze({
|
|
158
|
+
executor: spec.install.executor,
|
|
159
|
+
specifier: spec.install.specifier,
|
|
160
|
+
version: spec.install.version,
|
|
161
|
+
}),
|
|
162
|
+
}),
|
|
163
|
+
...(spec.unloadExport === undefined ? {} : { unloadExport: spec.unloadExport }),
|
|
164
|
+
...(confirmation === undefined ? {} : { confirmation }),
|
|
165
|
+
})
|
|
166
|
+
}
|
|
167
|
+
|
|
55
168
|
export const contributionExtensionDefinitions = Object.freeze([
|
|
56
169
|
settingsSectionExtensionDefinition,
|
|
57
170
|
sceneExtensionDefinition,
|
|
171
|
+
backendExtensionDefinition,
|
|
58
172
|
])
|
|
59
173
|
|
|
60
174
|
export function registerTuiContributionExtensions(catalog) {
|
|
@@ -71,6 +185,24 @@ export function assertSceneHandler(value) {
|
|
|
71
185
|
if (typeof handler.component !== 'function') throw new TypeError('Scene handler.component must be a function')
|
|
72
186
|
}
|
|
73
187
|
|
|
188
|
+
/**
|
|
189
|
+
* The handler a contribution binds at registration — the runtime form of
|
|
190
|
+
* `AgentBackend`, asserted at the same boundary `assertSceneHandler` guards: the
|
|
191
|
+
* declaration above is validated as data, this is the object the host is about to
|
|
192
|
+
* call. `catalog`, `launch` and `descriptor` are objects when present, never
|
|
193
|
+
* silently ignored.
|
|
194
|
+
*/
|
|
195
|
+
export function assertBackendHandler(value) {
|
|
196
|
+
const handler = runtimeObject(value, 'Backend handler')
|
|
197
|
+
nonEmpty(handler.id, 'Backend handler.id')
|
|
198
|
+
for (const method of ['detect', 'open']) {
|
|
199
|
+
if (typeof handler[method] !== 'function') throw new TypeError(`Backend handler.${method} must be a function`)
|
|
200
|
+
}
|
|
201
|
+
for (const member of ['descriptor', 'catalog', 'launch']) {
|
|
202
|
+
if (handler[member] !== undefined) runtimeObject(handler[member], `Backend handler.${member}`)
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
74
206
|
function validateSettingsField(value, index) {
|
|
75
207
|
const label = `SettingsSection spec.fields[${index}]`
|
|
76
208
|
const field = exactRecord(value, [
|
|
@@ -129,6 +261,15 @@ function nonEmpty(value, label) {
|
|
|
129
261
|
if (typeof value !== 'string' || value.trim() === '') throw new TypeError(`${label} must be a non-empty string`)
|
|
130
262
|
}
|
|
131
263
|
|
|
264
|
+
/** Names a backend declares. The *vocabulary* is the host's (admission maps an
|
|
265
|
+
* unknown name to a pending item, never to a rejection); the shape is not. */
|
|
266
|
+
function stringArray(value, label) {
|
|
267
|
+
if (!Array.isArray(value)) throw new TypeError(`${label} must be an array`)
|
|
268
|
+
for (const entry of value) {
|
|
269
|
+
if (typeof entry !== 'string' || entry.trim() === '') throw new TypeError(`${label} must contain non-empty strings`)
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
132
273
|
function localized(value, label) {
|
|
133
274
|
if (value === undefined) return
|
|
134
275
|
const record = exactRecord(value, Object.keys(value), label)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name":"tui.backend","version":"v1alpha1","kind":"extension",
|
|
3
|
+
"coordinates":{"apiVersion":"tui.dsh/v1alpha1","kind":"Backend"},
|
|
4
|
+
"caller":"trusted in-process dsh-TUI backend registry",
|
|
5
|
+
"permissions":[],
|
|
6
|
+
"operations":["declare","detect","open","catalog","resume"],
|
|
7
|
+
"errors":["BACKEND_ID_RESERVED","PERMISSION_NOT_GRANTED"],
|
|
8
|
+
"concurrency":"one backend owns one process-wide resource pool; session-scoped resources belong to session.dispose()",
|
|
9
|
+
"timeout":"detection and install preflight are local; session operations retain their own deadlines",
|
|
10
|
+
"cleanup":"the registry closes only the entries it actually loaded (unloadExport); a session's resources are closed by its own dispose()",
|
|
11
|
+
"privacyClass":"sensitive",
|
|
12
|
+
"securityBoundary":false
|
|
13
|
+
}
|
|
@@ -141,6 +141,18 @@
|
|
|
141
141
|
"profile": "registry/contracts/scene-v1alpha1.json",
|
|
142
142
|
"profileHash": "sha256:69ce3ae26d60dea2ed170376db8a1fb5860c94bd192c62681423c1d848ec2b26",
|
|
143
143
|
"permissions": []
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"name": "tui.backend",
|
|
147
|
+
"authority": "dsh-tui",
|
|
148
|
+
"coordinates": {
|
|
149
|
+
"apiVersion": "tui.dsh/v1alpha1",
|
|
150
|
+
"kind": "Backend"
|
|
151
|
+
},
|
|
152
|
+
"kind": "extension",
|
|
153
|
+
"profile": "registry/contracts/backend-v1alpha1.json",
|
|
154
|
+
"profileHash": "sha256:14d0923ccead5420219da39767050cdb46aa8e29f2b168d8d1e9b6cb1b3d4547",
|
|
155
|
+
"permissions": []
|
|
144
156
|
}
|
|
145
157
|
],
|
|
146
158
|
"facetApiVersions": [
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { SdkInstallTarget, SdkInstaller } from '../../agent/backend.js';
|
|
2
|
-
/** What `pnpm add` installs, at the validated pin (see contract.ts). */
|
|
3
|
-
export declare const CLAUDE_SDK_SPECIFIER = "@anthropic-ai/claude-agent-sdk@0.3.287";
|
|
4
|
-
export type { SdkInstallTarget, SdkInstallResult, SdkInstaller } from '../../agent/backend.js';
|
|
5
|
-
/** Resolve the install target for the CURRENT launch (never throws). The
|
|
6
|
-
* non-profile kinds carry the reason for the wizard's manual-instructions
|
|
7
|
-
* panel: standalone builds swap a whole binary (update.ts owns that path),
|
|
8
|
-
* and source checkouts / `--config` launches have no profile to add into. */
|
|
9
|
-
export declare function resolveSdkInstallTarget(argv?: readonly string[]): SdkInstallTarget;
|
|
10
|
-
/** Whether `pnpm` runs at all (the wizard's preflight). */
|
|
11
|
-
export declare function checkPnpmAvailable(): Promise<boolean>;
|
|
12
|
-
/** Install the pinned SDK into the profile root. Resolve target failures are
|
|
13
|
-
* the caller's business (the wizard shows manual instructions for them). */
|
|
14
|
-
export declare function startClaudeSdkInstall(dir: string): SdkInstaller;
|
|
15
|
-
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/backends/claude/install.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAoB,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAK9F,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,2CAA4D,CAAA;AAE7F,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE9F;;;8EAG8E;AAC9E,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,gBAAgB,CAIhG;AA2CD,2DAA2D;AAC3D,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAI3D;AAED;6EAC6E;AAC7E,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAU/D"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* One-shot installer for the optional `@anthropic-ai/claude-agent-sdk` peer.
|
|
3
|
-
*
|
|
4
|
-
* Runs `pnpm add <sdk>@<pin>` in the DSH profile root — the install dir whose
|
|
5
|
-
* `node_modules` the backend's dynamic import resolves through. Everything the
|
|
6
|
-
* child prints is piped and captured, never inherited: an inherit-stdio child
|
|
7
|
-
* may only run after the Ink frame is unmounted (the update.ts contract); a
|
|
8
|
-
* captured one may run under the live TUI, which is what the kernel-picker
|
|
9
|
-
* install wizard needs. Only the tail of the captured output is surfaced, on
|
|
10
|
-
* failure.
|
|
11
|
-
*
|
|
12
|
-
* The pinned SDK version is old enough that pnpm's minimumReleaseAge gate
|
|
13
|
-
* never blocks it; if the pin ever moves to a version published within the
|
|
14
|
-
* gate's window, the install needs a `minimumReleaseAgeExclude` entry
|
|
15
|
-
* (generalize `ensureProfileReleaseAgeExclude` in update.ts then).
|
|
16
|
-
*/
|
|
17
|
-
import { spawn } from 'node:child_process';
|
|
18
|
-
import { homedir } from 'node:os';
|
|
19
|
-
import { dirname } from 'node:path';
|
|
20
|
-
import stripAnsi from 'strip-ansi';
|
|
21
|
-
import { isStandaloneRuntime, profileWorkspaceYamlPath, resolveDshProfileName } from '../../update.js';
|
|
22
|
-
import { shellQuote } from '../../utils/shellQuote.js';
|
|
23
|
-
import { VALIDATED_SDK_VERSION } from './contract.js';
|
|
24
|
-
/** What `pnpm add` installs, at the validated pin (see contract.ts). */
|
|
25
|
-
export const CLAUDE_SDK_SPECIFIER = `@anthropic-ai/claude-agent-sdk@${VALIDATED_SDK_VERSION}`;
|
|
26
|
-
/** Resolve the install target for the CURRENT launch (never throws). The
|
|
27
|
-
* non-profile kinds carry the reason for the wizard's manual-instructions
|
|
28
|
-
* panel: standalone builds swap a whole binary (update.ts owns that path),
|
|
29
|
-
* and source checkouts / `--config` launches have no profile to add into. */
|
|
30
|
-
export function resolveSdkInstallTarget(argv = process.argv) {
|
|
31
|
-
if (isStandaloneRuntime())
|
|
32
|
-
return { kind: 'standalone' };
|
|
33
|
-
const profile = resolveDshProfileName(argv);
|
|
34
|
-
return profile === undefined ? { kind: 'no-profile' } : { kind: 'profile', dir: dirname(profileWorkspaceYamlPath(profile)) };
|
|
35
|
-
}
|
|
36
|
-
/** Run pnpm with captured output. On Windows the arguments fold into the
|
|
37
|
-
* command string and go through the shell — pnpm is a `.cmd` shim there and
|
|
38
|
-
* Node ≥22 refuses to spawn `.cmd` directly (DEP0190) — the same escape
|
|
39
|
-
* update.ts's runProcess uses. */
|
|
40
|
-
function runPnpm(args, cwd) {
|
|
41
|
-
const windows = process.platform === 'win32';
|
|
42
|
-
const [command, spawnArgs] = windows
|
|
43
|
-
? [`pnpm ${shellQuote(args).join(' ')}`, []]
|
|
44
|
-
: ['pnpm', [...args]];
|
|
45
|
-
const child = spawn(command, spawnArgs, {
|
|
46
|
-
cwd,
|
|
47
|
-
shell: windows,
|
|
48
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
49
|
-
windowsHide: true,
|
|
50
|
-
});
|
|
51
|
-
const chunks = [];
|
|
52
|
-
for (const stream of [child.stdout, child.stderr]) {
|
|
53
|
-
if (stream === null)
|
|
54
|
-
continue;
|
|
55
|
-
stream.setEncoding('utf8');
|
|
56
|
-
stream.on('data', (chunk) => { chunks.push(chunk); });
|
|
57
|
-
}
|
|
58
|
-
const promise = new Promise(resolve => {
|
|
59
|
-
const finish = (code, spawnError) => {
|
|
60
|
-
// pnpm progress frames redraw with \r — split on all line breaks, strip
|
|
61
|
-
// the ANSI layer, drop the empty frames the redraws leave behind.
|
|
62
|
-
const lines = chunks.join('').split(/\r\n|\r|\n/u).map(line => stripAnsi(line).trim()).filter(line => line !== '');
|
|
63
|
-
resolve({ code, spawnError, lines });
|
|
64
|
-
};
|
|
65
|
-
child.once('error', error => finish(undefined, error.code));
|
|
66
|
-
child.once('close', code => finish(code ?? undefined));
|
|
67
|
-
});
|
|
68
|
-
return { promise, cancel: () => { child.kill(); } };
|
|
69
|
-
}
|
|
70
|
-
/** Whether `pnpm` runs at all (the wizard's preflight). */
|
|
71
|
-
export async function checkPnpmAvailable() {
|
|
72
|
-
const { promise } = runPnpm(['--version'], homedir());
|
|
73
|
-
const run = await promise;
|
|
74
|
-
return run.code === 0 && run.spawnError === undefined;
|
|
75
|
-
}
|
|
76
|
-
/** Install the pinned SDK into the profile root. Resolve target failures are
|
|
77
|
-
* the caller's business (the wizard shows manual instructions for them). */
|
|
78
|
-
export function startClaudeSdkInstall(dir) {
|
|
79
|
-
let cancelled = false;
|
|
80
|
-
const { promise, cancel } = runPnpm(['add', CLAUDE_SDK_SPECIFIER], dir);
|
|
81
|
-
const result = promise.then(run => {
|
|
82
|
-
if (cancelled)
|
|
83
|
-
return { kind: 'cancelled' };
|
|
84
|
-
if (run.code === 0)
|
|
85
|
-
return { kind: 'ok' };
|
|
86
|
-
if (run.spawnError === 'ENOENT')
|
|
87
|
-
return { kind: 'pnpm-missing' };
|
|
88
|
-
return { kind: 'failed', exitCode: run.code ?? 1, tail: run.lines.slice(-10) };
|
|
89
|
-
});
|
|
90
|
-
return { result, cancel: () => { cancelled = true; cancel(); } };
|
|
91
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elicitation.d.ts","sourceRoot":"","sources":["../../../src/channel/elicitation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG1D,oDAAoD;AACpD,KAAK,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAO5C,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAA;AAEnE,6DAA6D;AAC7D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;IACtF,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAChF,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAA;CACrB;AAgCD,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,CAyBvD;AAmBD,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA0EhI;AA2BD,wEAAwE;AACxE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,0CAA0C;AAC1C,eAAO,MAAM,UAAU,QAAO,UAAoF,CAAA;AAElH,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,GAAE,UAAyB,GAAG,gBAAgB,CA6BxK;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,MAAM,GAAE,UAAyB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA4BnO;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,iEAAiE;AACjE,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,kCAAkC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,iDAAiD;AACjD,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;CAAE,GACzF;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE;AAC9B,+EAA+E;GAC7E;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAAE,CAAA;AAE/E,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC/C,mDAAmD;IACnD,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,mBAAmB,CAAA;CACtD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAwCtF;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC/C,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAA;CAC5C;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,sBAAsB,GAAG,iBAAiB,GAAG,SAAS,CAgBtG;AAED,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB;IAC7B,yDAAyD;sBACvC,MAAM,OAAO,MAAM,KAAG,MAAM;IAC9C,mDAAmD;0BAC7B,MAAM,KAAG,MAAM;IACrC,wCAAwC;yBACnB,MAAM,KAAG,MAAM;IACpC,kDAAkD;0BAC5B,MAAM,QAAQ,MAAM,KAAG,MAAM;CACpD,CAAA"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lineage decision consulted by `/model` only.
|
|
3
|
-
*
|
|
4
|
-
* `/rewind` and the `/tree` branch also re-create the live session as a child,
|
|
5
|
-
* but they always record `parentSession` and do not call this helper. A blank
|
|
6
|
-
* log cannot reach them (`boundary < 0`). This module is not their gate.
|
|
7
|
-
*
|
|
8
|
-
* The decision is load-bearing beyond grouping. Upstream's automatic session
|
|
9
|
-
* title only ever runs on a session WITHOUT a parent: `dsh-session-title`
|
|
10
|
-
* schedules its provider on the first human message under
|
|
11
|
-
* `session.header.parentSession === undefined`, and a session that already has
|
|
12
|
-
* one is never offered a generated title again — a fork keeps the title it
|
|
13
|
-
* inherited, and only an explicit `ctx.sessionTitle.refresh()` retries, which
|
|
14
|
-
* no TUI surface calls. A route switch on a session nobody has typed into
|
|
15
|
-
* would therefore cost that user the title of their first real prompt, leaving
|
|
16
|
-
* the deterministic fallback instead (a mid-word truncation of the prompt at
|
|
17
|
-
* `fallbackMaxBytes`).
|
|
18
|
-
*
|
|
19
|
-
* A session with no human message has no conversation for the lineage to
|
|
20
|
-
* describe, so its replacement stands as its own root — the same independent-
|
|
21
|
-
* conversation choice `/fork` already makes (`session-fork.ts`), for the same
|
|
22
|
-
* reason. The seeded prefix is unaffected either way: the child still inherits
|
|
23
|
-
* the source's session scaffolding verbatim.
|
|
24
|
-
*
|
|
25
|
-
* @module
|
|
26
|
-
*/
|
|
27
|
-
import type { SessionEvent } from '@deepseek-ai/dsh-session';
|
|
28
|
-
/**
|
|
29
|
-
* Whether a re-created child must record the session it replaces as its parent.
|
|
30
|
-
*
|
|
31
|
-
* A `user/message` whose `source` is the person at the keyboard is a human turn
|
|
32
|
-
* whether or not it carries text (an image-only prompt is still a prompt), so
|
|
33
|
-
* its session is a conversation the lineage must describe. A user-role message
|
|
34
|
-
* from any other producer — a plugin injection, an instruction snapshot, a
|
|
35
|
-
* skill catalogue — is not: the child stays in the same family rather than
|
|
36
|
-
* being promoted to a root on a technicality.
|
|
37
|
-
*
|
|
38
|
-
* @param seed - the exact events the child inherits.
|
|
39
|
-
* @returns whether the child records `parentSession`.
|
|
40
|
-
*/
|
|
41
|
-
export declare function childRecordsLineage(seed: readonly SessionEvent[]): boolean;
|
|
42
|
-
//# sourceMappingURL=session-lineage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-lineage.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/session-lineage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAE1E"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lineage decision consulted by `/model` only.
|
|
3
|
-
*
|
|
4
|
-
* `/rewind` and the `/tree` branch also re-create the live session as a child,
|
|
5
|
-
* but they always record `parentSession` and do not call this helper. A blank
|
|
6
|
-
* log cannot reach them (`boundary < 0`). This module is not their gate.
|
|
7
|
-
*
|
|
8
|
-
* The decision is load-bearing beyond grouping. Upstream's automatic session
|
|
9
|
-
* title only ever runs on a session WITHOUT a parent: `dsh-session-title`
|
|
10
|
-
* schedules its provider on the first human message under
|
|
11
|
-
* `session.header.parentSession === undefined`, and a session that already has
|
|
12
|
-
* one is never offered a generated title again — a fork keeps the title it
|
|
13
|
-
* inherited, and only an explicit `ctx.sessionTitle.refresh()` retries, which
|
|
14
|
-
* no TUI surface calls. A route switch on a session nobody has typed into
|
|
15
|
-
* would therefore cost that user the title of their first real prompt, leaving
|
|
16
|
-
* the deterministic fallback instead (a mid-word truncation of the prompt at
|
|
17
|
-
* `fallbackMaxBytes`).
|
|
18
|
-
*
|
|
19
|
-
* A session with no human message has no conversation for the lineage to
|
|
20
|
-
* describe, so its replacement stands as its own root — the same independent-
|
|
21
|
-
* conversation choice `/fork` already makes (`session-fork.ts`), for the same
|
|
22
|
-
* reason. The seeded prefix is unaffected either way: the child still inherits
|
|
23
|
-
* the source's session scaffolding verbatim.
|
|
24
|
-
*
|
|
25
|
-
* @module
|
|
26
|
-
*/
|
|
27
|
-
/**
|
|
28
|
-
* Whether a re-created child must record the session it replaces as its parent.
|
|
29
|
-
*
|
|
30
|
-
* A `user/message` whose `source` is the person at the keyboard is a human turn
|
|
31
|
-
* whether or not it carries text (an image-only prompt is still a prompt), so
|
|
32
|
-
* its session is a conversation the lineage must describe. A user-role message
|
|
33
|
-
* from any other producer — a plugin injection, an instruction snapshot, a
|
|
34
|
-
* skill catalogue — is not: the child stays in the same family rather than
|
|
35
|
-
* being promoted to a root on a technicality.
|
|
36
|
-
*
|
|
37
|
-
* @param seed - the exact events the child inherits.
|
|
38
|
-
* @returns whether the child records `parentSession`.
|
|
39
|
-
*/
|
|
40
|
-
export function childRecordsLineage(seed) {
|
|
41
|
-
return seed.some(isHumanMessage);
|
|
42
|
-
}
|
|
43
|
-
/** One message the person at the keyboard sent, by `source.kind` alone. */
|
|
44
|
-
function isHumanMessage(event) {
|
|
45
|
-
if (event.type !== 'user/message')
|
|
46
|
-
return false;
|
|
47
|
-
// Durable data: the source is a merge-extensible sum type whose members are
|
|
48
|
-
// declared by their producers, so narrow instead of trusting the union.
|
|
49
|
-
const source = event.data.source;
|
|
50
|
-
return source?.kind === 'user';
|
|
51
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/utils/jsonl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,iCAAiC;AACjC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEhD,oFAAoF;AACpF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAE5D;AAED,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAA;IACvC,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAgBjD"}
|