@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
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import { snapshotLiveSessionEvents } from './compat/liveSession.js';
|
|
3
|
+
import { concreteService } from './host-access.js';
|
|
4
|
+
const captures = new WeakMap();
|
|
5
|
+
/** Capture only this factory's public write handle; concurrent creates share one tap. */
|
|
6
|
+
function captureWriter(source, id, receive) {
|
|
7
|
+
let capture = captures.get(source);
|
|
8
|
+
if (capture === undefined) {
|
|
9
|
+
const descriptor = Object.getOwnPropertyDescriptor(source, 'create');
|
|
10
|
+
const create = source.create;
|
|
11
|
+
const receivers = new Map();
|
|
12
|
+
const tapped = async function (header, options) {
|
|
13
|
+
const writer = await create.call(this, header, options);
|
|
14
|
+
receivers.get(writer.id)?.(writer);
|
|
15
|
+
return writer;
|
|
16
|
+
};
|
|
17
|
+
source.create = tapped;
|
|
18
|
+
capture = {
|
|
19
|
+
receivers,
|
|
20
|
+
restore() {
|
|
21
|
+
if (source.create === tapped) {
|
|
22
|
+
if (descriptor === undefined)
|
|
23
|
+
delete source.create;
|
|
24
|
+
else
|
|
25
|
+
Object.defineProperty(source, 'create', descriptor);
|
|
26
|
+
}
|
|
27
|
+
captures.delete(source);
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
captures.set(source, capture);
|
|
31
|
+
}
|
|
32
|
+
if (capture.receivers.has(id))
|
|
33
|
+
throw new Error(`dsh-tui: fresh session "${id}" is already being created`);
|
|
34
|
+
capture.receivers.set(id, receive);
|
|
35
|
+
return () => {
|
|
36
|
+
capture.receivers.delete(id);
|
|
37
|
+
if (capture.receivers.size === 0)
|
|
38
|
+
capture.restore();
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** Policy facts held in memory until the session has further activity. */
|
|
42
|
+
export const INITIAL_POLICY_EVENTS = new Set(['permission/preset', 'sandbox/mode', 'approval/policy', 'plan/mode']);
|
|
43
|
+
/** The command envelope a session-policy switch runs through. */
|
|
44
|
+
const POLICY_ACTIVITY_EVENTS = new Set(['command/run', 'command/done']);
|
|
45
|
+
/** Source-less legacy messages and explicit user messages count as human input. */
|
|
46
|
+
export function isHumanSource(source) {
|
|
47
|
+
if (source === undefined || source === null)
|
|
48
|
+
return true;
|
|
49
|
+
if (typeof source !== 'object')
|
|
50
|
+
return false;
|
|
51
|
+
return source['kind'] === 'user';
|
|
52
|
+
}
|
|
53
|
+
/** Policy commands also emit command envelopes and nonhuman inbox notices. */
|
|
54
|
+
export function isPolicyPlaneActivity(event) {
|
|
55
|
+
if (INITIAL_POLICY_EVENTS.has(event.type) || POLICY_ACTIVITY_EVENTS.has(event.type))
|
|
56
|
+
return true;
|
|
57
|
+
if (event.type !== 'agent/inbox/spliced')
|
|
58
|
+
return false;
|
|
59
|
+
const inserted = event.data?.inserted;
|
|
60
|
+
if (!Array.isArray(inserted))
|
|
61
|
+
return false;
|
|
62
|
+
for (const message of inserted) {
|
|
63
|
+
if (message === null || typeof message !== 'object')
|
|
64
|
+
continue;
|
|
65
|
+
const entry = message;
|
|
66
|
+
if (entry['role'] === 'user' && isHumanSource(entry['source']))
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
const unstoredSessions = new WeakSet();
|
|
72
|
+
/** Initialization-only fresh session with no persistence requested yet. */
|
|
73
|
+
export function isUnstoredFreshSession(session) {
|
|
74
|
+
return session !== undefined && unstoredSessions.has(session);
|
|
75
|
+
}
|
|
76
|
+
/** Keep initial policy facts live, but route them to JSONL only with subsequent work. */
|
|
77
|
+
function deferInitialPolicy(ctx, session, writer, source) {
|
|
78
|
+
if (session.seq !== 0)
|
|
79
|
+
return;
|
|
80
|
+
const providerFiber = concreteService(source.ctx.fiber);
|
|
81
|
+
const descriptor = Object.getOwnPropertyDescriptor(session, Context.filter);
|
|
82
|
+
const originalFilter = session[Context.filter];
|
|
83
|
+
const flush = writer.flush;
|
|
84
|
+
const close = writer.close;
|
|
85
|
+
let deferred = true;
|
|
86
|
+
let started = false;
|
|
87
|
+
let failed = false;
|
|
88
|
+
let storedCount = 0;
|
|
89
|
+
let draining;
|
|
90
|
+
const start = () => {
|
|
91
|
+
started = true;
|
|
92
|
+
unstoredSessions.delete(session);
|
|
93
|
+
};
|
|
94
|
+
const filter = (listener) => (originalFilter?.call(session, listener) ?? true) &&
|
|
95
|
+
(!deferred || concreteService(listener.fiber) !== providerFiber);
|
|
96
|
+
let stopEvents;
|
|
97
|
+
let stopFlush;
|
|
98
|
+
const release = () => {
|
|
99
|
+
deferred = false;
|
|
100
|
+
stopEvents?.();
|
|
101
|
+
stopFlush?.();
|
|
102
|
+
if (session[Context.filter] === filter) {
|
|
103
|
+
if (descriptor === undefined)
|
|
104
|
+
delete session[Context.filter];
|
|
105
|
+
else
|
|
106
|
+
Object.defineProperty(session, Context.filter, descriptor);
|
|
107
|
+
}
|
|
108
|
+
if (writer.flush === guardedFlush)
|
|
109
|
+
writer.flush = flush;
|
|
110
|
+
if (writer.close === guardedClose)
|
|
111
|
+
writer.close = close;
|
|
112
|
+
};
|
|
113
|
+
// Live routing stays paused throughout the asynchronous handoff. Any events
|
|
114
|
+
// arriving during append are part of the next suffix, never duplicated by
|
|
115
|
+
// the backend's own router. A failed suffix remains available for a flush retry.
|
|
116
|
+
const drain = () => draining ??= (async () => {
|
|
117
|
+
while (deferred) {
|
|
118
|
+
const events = snapshotLiveSessionEvents(session);
|
|
119
|
+
const suffix = events.slice(storedCount);
|
|
120
|
+
if (suffix.length === 0) {
|
|
121
|
+
release();
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
await writer.append(suffix);
|
|
125
|
+
storedCount = events.length;
|
|
126
|
+
}
|
|
127
|
+
})().finally(() => { draining = undefined; });
|
|
128
|
+
const guardedFlush = async () => {
|
|
129
|
+
// Projection checkpoints flush on creation; only later activity publishes the session.
|
|
130
|
+
if (!started)
|
|
131
|
+
return;
|
|
132
|
+
await drain();
|
|
133
|
+
await flush.call(writer);
|
|
134
|
+
};
|
|
135
|
+
const guardedClose = async () => {
|
|
136
|
+
// The provider can unload before the Agent scope. Its handle close must
|
|
137
|
+
// wait for the suffix still being handed off, while idle policy is discarded.
|
|
138
|
+
const failures = [];
|
|
139
|
+
try {
|
|
140
|
+
if (started)
|
|
141
|
+
await drain();
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
failures.push(error);
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
await close.call(writer);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
failures.push(error);
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
release();
|
|
154
|
+
}
|
|
155
|
+
if (failures.length === 1)
|
|
156
|
+
throw failures[0];
|
|
157
|
+
if (failures.length > 1)
|
|
158
|
+
throw new AggregateError(failures, `dsh-tui: fresh session "${session.id}" close failed`);
|
|
159
|
+
};
|
|
160
|
+
ctx.effect(() => {
|
|
161
|
+
unstoredSessions.add(session);
|
|
162
|
+
session[Context.filter] = filter;
|
|
163
|
+
writer.flush = guardedFlush;
|
|
164
|
+
writer.close = guardedClose;
|
|
165
|
+
return async () => {
|
|
166
|
+
try {
|
|
167
|
+
if (started)
|
|
168
|
+
await drain();
|
|
169
|
+
}
|
|
170
|
+
finally {
|
|
171
|
+
release();
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
}, 'dsh-tui fresh session policy');
|
|
175
|
+
stopEvents = ctx.on('session/event', (subject, event) => {
|
|
176
|
+
if (subject !== session || (!started && isPolicyPlaneActivity(event)))
|
|
177
|
+
return;
|
|
178
|
+
start();
|
|
179
|
+
if (failed || draining !== undefined)
|
|
180
|
+
return;
|
|
181
|
+
void drain().catch((error) => {
|
|
182
|
+
failed = true;
|
|
183
|
+
ctx.logger.warn(`dsh-tui: fresh session "${session.id}" write failed (events retained for flush): ${String(error)}`);
|
|
184
|
+
});
|
|
185
|
+
}, { prepend: true });
|
|
186
|
+
stopFlush = ctx.on('session/flush', subject => subject === session ? writer.flush() : undefined);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Startup and `/new` use an unseeded DSH session. Permission initialization
|
|
190
|
+
* alone must not publish a stored conversation; all facts still belong to
|
|
191
|
+
* the real Session, and the official JSONL writer owns their eventual storage.
|
|
192
|
+
*/
|
|
193
|
+
export async function createFreshAgent(ctx, agents, options) {
|
|
194
|
+
const service = ctx.get('sessionPersistence');
|
|
195
|
+
// Legacy id-addressed stores and custom providers retain their own routing.
|
|
196
|
+
if (service?.name !== 'session-persistence-jsonl' || typeof service.open !== 'function')
|
|
197
|
+
return agents.create(options);
|
|
198
|
+
const source = concreteService(service);
|
|
199
|
+
let writer;
|
|
200
|
+
const stopCapture = captureWriter(source, String(options.sessionId), value => { writer = value; });
|
|
201
|
+
const setup = async (agentCtx, agent) => {
|
|
202
|
+
const commit = await options.setup?.(agentCtx, agent);
|
|
203
|
+
const defer = () => {
|
|
204
|
+
if (writer !== undefined)
|
|
205
|
+
deferInitialPolicy(agentCtx, agent.session, writer, source);
|
|
206
|
+
};
|
|
207
|
+
if (commit === undefined) {
|
|
208
|
+
defer();
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
// Setup history belongs to the factory's pre-publication append. Install
|
|
212
|
+
// the gate only after the original commit has finished composing it.
|
|
213
|
+
return { commit() { commit.commit(); defer(); } };
|
|
214
|
+
};
|
|
215
|
+
try {
|
|
216
|
+
return await agents.create({ ...options, setup });
|
|
217
|
+
}
|
|
218
|
+
finally {
|
|
219
|
+
stopCapture();
|
|
220
|
+
}
|
|
221
|
+
}
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
/**
|
|
3
|
+
* Hold the root-capability guard back on `root` until the returned release
|
|
4
|
+
* runs. The entry mounts the TUI before composing the profile into the same
|
|
5
|
+
* root, and DSH's plugins use root capabilities while they activate, which
|
|
6
|
+
* the guard would refuse. Fiber tracking starts at once either way.
|
|
7
|
+
*/
|
|
8
|
+
export declare function deferRootCapabilityGuard(root: Context): () => void;
|
|
9
|
+
/**
|
|
10
|
+
* The composition of a deferred root starts: the guard now arrives with the
|
|
11
|
+
* first TUI row's activation, as on the `dsh --profile` path, so every row
|
|
12
|
+
* after it (third-party ones included) is guarded. The release still installs
|
|
13
|
+
* it once the composition settles if no TUI row activated.
|
|
14
|
+
*/
|
|
15
|
+
export declare function armRootCapabilityGuard(root: Context): void;
|
|
2
16
|
/** Host-only escape hatch for process teardown paths that intentionally act on
|
|
3
17
|
* the composition root while running from a host plugin callback. This module
|
|
4
18
|
* is internal and is not part of the public plugin package surface. */
|
|
@@ -14,7 +28,8 @@ export declare function activationFiber(ctx: Context): object | undefined;
|
|
|
14
28
|
export declare function activationContext(ctx: Context): Context | undefined;
|
|
15
29
|
/** Resolve a service's composition root once. Service methods are invoked
|
|
16
30
|
* through caller-bound Cordis proxies; keeping this root in host state avoids
|
|
17
|
-
* resolving sibling services through an attacker-provided caller shadow.
|
|
31
|
+
* resolving sibling services through an attacker-provided caller shadow.
|
|
32
|
+
* Also the first TUI row's activation signal for an armed deferred guard. */
|
|
18
33
|
export declare function compositionRoot(ctx: Context): Context;
|
|
19
34
|
/** Recover the composition root that owns a traceable service. Cordis stores
|
|
20
35
|
* the provider context on the concrete Service instance; callers may reach
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-access.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/host-access.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"host-access.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/host-access.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,qBAAqB,CAAA;AAkLpD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,IAAI,CAGlE;AAWD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE1D;AAkID;;uEAEuE;AACvE,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAE9D;AA8FD,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAe/D;AAED;0EAC0E;AAC1E,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,OAAO,EACvB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,OAAO,KAAK,IAAI,GAC9C,OAAO,CA2BT;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMhE;AAED;+EAC+E;AAC/E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAInE;AAED;;;6EAG6E;AAC7E,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIrD;AAiHD;;;4EAG4E;AAC5E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAO3E;AAED;;;iEAGiE;AACjE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAehH;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAmBlG"}
|
|
@@ -176,7 +176,52 @@ function trackCompositionRoot(root) {
|
|
|
176
176
|
// Minimal embedders may expose Context without an event helper. The
|
|
177
177
|
// shape/lifecycle checks below remain as a conservative fallback.
|
|
178
178
|
}
|
|
179
|
-
|
|
179
|
+
if (!deferredGuardRoots.has(root))
|
|
180
|
+
guardRootCapabilities(root);
|
|
181
|
+
}
|
|
182
|
+
/** Roots whose capability guard waits for their composition (below). */
|
|
183
|
+
const deferredGuardRoots = new WeakSet();
|
|
184
|
+
/**
|
|
185
|
+
* Hold the root-capability guard back on `root` until the returned release
|
|
186
|
+
* runs. The entry mounts the TUI before composing the profile into the same
|
|
187
|
+
* root, and DSH's plugins use root capabilities while they activate, which
|
|
188
|
+
* the guard would refuse. Fiber tracking starts at once either way.
|
|
189
|
+
*/
|
|
190
|
+
export function deferRootCapabilityGuard(root) {
|
|
191
|
+
deferredGuardRoots.add(root);
|
|
192
|
+
return () => releaseDeferredGuard(root);
|
|
193
|
+
}
|
|
194
|
+
function releaseDeferredGuard(root) {
|
|
195
|
+
armedGuardRoots.delete(root);
|
|
196
|
+
if (!deferredGuardRoots.delete(root))
|
|
197
|
+
return;
|
|
198
|
+
if (trackedRoots.has(root))
|
|
199
|
+
guardRootCapabilities(root);
|
|
200
|
+
}
|
|
201
|
+
/** Deferred roots whose guard the first TUI row activation installs (below). */
|
|
202
|
+
const armedGuardRoots = new WeakSet();
|
|
203
|
+
/**
|
|
204
|
+
* The composition of a deferred root starts: the guard now arrives with the
|
|
205
|
+
* first TUI row's activation, as on the `dsh --profile` path, so every row
|
|
206
|
+
* after it (third-party ones included) is guarded. The release still installs
|
|
207
|
+
* it once the composition settles if no TUI row activated.
|
|
208
|
+
*/
|
|
209
|
+
export function armRootCapabilityGuard(root) {
|
|
210
|
+
if (deferredGuardRoots.has(root))
|
|
211
|
+
armedGuardRoots.add(root);
|
|
212
|
+
}
|
|
213
|
+
/** A plugin activation of `root` (not the root's own, not host code) is
|
|
214
|
+
* resolving its composition through the TUI's host code: a TUI row. */
|
|
215
|
+
function noteTuiRowActivation(root) {
|
|
216
|
+
if (!armedGuardRoots.has(root))
|
|
217
|
+
return;
|
|
218
|
+
if (hostCapabilityStorage.getStore() === true)
|
|
219
|
+
return;
|
|
220
|
+
const token = activationStorage.getStore();
|
|
221
|
+
const rootFiber = rootFibers.get(root);
|
|
222
|
+
if (token === undefined || token.root !== root || rootFiber === token.fiber)
|
|
223
|
+
return;
|
|
224
|
+
releaseDeferredGuard(root);
|
|
180
225
|
}
|
|
181
226
|
function invalidateActivation(fiber) {
|
|
182
227
|
activationGenerations.set(fiber, (activationGenerations.get(fiber) ?? 0) + 1);
|
|
@@ -464,8 +509,14 @@ export function activationContext(ctx) {
|
|
|
464
509
|
}
|
|
465
510
|
/** Resolve a service's composition root once. Service methods are invoked
|
|
466
511
|
* through caller-bound Cordis proxies; keeping this root in host state avoids
|
|
467
|
-
* resolving sibling services through an attacker-provided caller shadow.
|
|
512
|
+
* resolving sibling services through an attacker-provided caller shadow.
|
|
513
|
+
* Also the first TUI row's activation signal for an armed deferred guard. */
|
|
468
514
|
export function compositionRoot(ctx) {
|
|
515
|
+
const root = resolveCompositionRoot(ctx);
|
|
516
|
+
noteTuiRowActivation(root);
|
|
517
|
+
return root;
|
|
518
|
+
}
|
|
519
|
+
function resolveCompositionRoot(ctx) {
|
|
469
520
|
try {
|
|
470
521
|
const knownFiber = contextFibers.get(ctx);
|
|
471
522
|
const trustedRoot = knownFiber === undefined ? undefined : fiberRoots.get(knownFiber);
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The host contract of this package's entry (ADAPTER.md): what the entry
|
|
3
|
+
* loads from the installed `dsh` and what it reproduces. Read by
|
|
4
|
+
* ./host-dsh.ts, ./contract.ts and scripts/verify-host-contract.ts.
|
|
5
|
+
* Pure data, no imports.
|
|
6
|
+
*/
|
|
7
|
+
/** The host CLI package whose installation the entry loads. */
|
|
8
|
+
export declare const HOST_PACKAGE = "@deepseek-ai/dsh";
|
|
9
|
+
/** The host line the reproduced pieces were checked against (host-replica.snapshot.json). */
|
|
10
|
+
export declare const HOST_REPLICA_VERSION = "0.2.0-rc.2";
|
|
11
|
+
/** Where the entry resolves a host module from. */
|
|
12
|
+
export type HostModuleVia =
|
|
13
|
+
/** The host package's own `createRequire` (its nested node_modules). */
|
|
14
|
+
'host'
|
|
15
|
+
/** `@deepseek-ai/dsh-app-boot`'s `createRequire`: the instance app-boot itself uses. */
|
|
16
|
+
| 'app-boot';
|
|
17
|
+
export interface HostModuleSpec {
|
|
18
|
+
/** The `HostDsh` field it fills. */
|
|
19
|
+
readonly key: string;
|
|
20
|
+
readonly specifier: string;
|
|
21
|
+
readonly via: HostModuleVia;
|
|
22
|
+
/** Every export the entry reads; the probe requires each to be defined. */
|
|
23
|
+
readonly exports: readonly string[];
|
|
24
|
+
}
|
|
25
|
+
/** The host modules the entry loads, all from one installation, in load order. */
|
|
26
|
+
export declare const HOST_MODULES: readonly [{
|
|
27
|
+
readonly key: "cordis";
|
|
28
|
+
readonly specifier: "@deepseek-ai/cordis";
|
|
29
|
+
readonly via: "host";
|
|
30
|
+
readonly exports: readonly ["Context"];
|
|
31
|
+
}, {
|
|
32
|
+
readonly key: "appBoot";
|
|
33
|
+
readonly specifier: "@deepseek-ai/dsh-app-boot";
|
|
34
|
+
readonly via: "host";
|
|
35
|
+
readonly exports: readonly ["loadLayeredEnv", "createRuntimeResolution", "PluginPackages", "installFailLoud", "readProfilePatches", "mountRootInclude", "auditStartupEntries", "StartupError", "getDshRuntimeVersion"];
|
|
36
|
+
}, {
|
|
37
|
+
readonly key: "loader";
|
|
38
|
+
readonly specifier: "@deepseek-ai/cordis-plugin-loader";
|
|
39
|
+
readonly via: "app-boot";
|
|
40
|
+
readonly exports: readonly ["default"];
|
|
41
|
+
}, {
|
|
42
|
+
readonly key: "homePaths";
|
|
43
|
+
readonly specifier: "@deepseek-ai/dsh-home-paths";
|
|
44
|
+
readonly via: "app-boot";
|
|
45
|
+
readonly exports: readonly ["dshHomePath", "resolveDshHome"];
|
|
46
|
+
}, {
|
|
47
|
+
readonly key: "launchEnvironment";
|
|
48
|
+
readonly specifier: "@deepseek-ai/dsh-launch-environment";
|
|
49
|
+
readonly via: "host";
|
|
50
|
+
readonly exports: readonly ["DSH_LAUNCH_ENVIRONMENT_KEY"];
|
|
51
|
+
}, {
|
|
52
|
+
readonly key: "cmdline";
|
|
53
|
+
readonly specifier: "@deepseek-ai/dsh-cmdline";
|
|
54
|
+
readonly via: "host";
|
|
55
|
+
readonly exports: readonly ["provideCmdline"];
|
|
56
|
+
}, {
|
|
57
|
+
readonly key: "profileBoot";
|
|
58
|
+
readonly specifier: "@deepseek-ai/dsh/profile-boot";
|
|
59
|
+
readonly via: "host";
|
|
60
|
+
readonly exports: readonly ["prepareProfile", "INSTALL_ANCHOR", "PROFILE_ROOT_FILENAME"];
|
|
61
|
+
}, {
|
|
62
|
+
readonly key: "httpProxy";
|
|
63
|
+
readonly specifier: "@deepseek-ai/dsh-http-proxy";
|
|
64
|
+
readonly via: "host";
|
|
65
|
+
readonly exports: readonly ["installProxyFromEnvironment"];
|
|
66
|
+
}];
|
|
67
|
+
/**
|
|
68
|
+
* The packages ./host-dsh.ts takes types from (`import type` only); each is
|
|
69
|
+
* an optional peer + dev dependency and blessed. Not the host package itself
|
|
70
|
+
* (its dependency tree is the whole CLI).
|
|
71
|
+
*/
|
|
72
|
+
export declare const HOST_TYPE_PACKAGES: readonly ["@deepseek-ai/dsh-app-boot", "@deepseek-ai/dsh-cmdline", "@deepseek-ai/dsh-home-paths", "@deepseek-ai/dsh-http-proxy", "@deepseek-ai/dsh-launch-environment"];
|
|
73
|
+
/**
|
|
74
|
+
* The packages the adapter takes types from for host services it reaches
|
|
75
|
+
* through `ctx` rather than through the entry's host boot; each is an
|
|
76
|
+
* optional peer + dev dependency and blessed. Unlike {@link HOST_TYPE_PACKAGES}
|
|
77
|
+
* these are read by the running profile's own composition, and the host CLI
|
|
78
|
+
* supplies the package (a profile has no copy) — so absence at run time is
|
|
79
|
+
* valid and the consumer degrades instead of failing.
|
|
80
|
+
*/
|
|
81
|
+
export declare const ADAPTER_TYPE_PACKAGES: readonly ["@deepseek-ai/dsh-plugin-manager"];
|
|
82
|
+
/** One upstream body the entry reproduces (fingerprinted by verify:contract). */
|
|
83
|
+
export interface HostReplica {
|
|
84
|
+
readonly id: string;
|
|
85
|
+
/** The package holding the upstream body; its `lib/*.js` are searched. */
|
|
86
|
+
readonly package: string;
|
|
87
|
+
/** A top-level `function` (sync or async) or `const` in that package's lib. */
|
|
88
|
+
readonly symbol: string;
|
|
89
|
+
readonly kind: 'function' | 'const';
|
|
90
|
+
/** What in ./host-dsh.ts reproduces it, and how far. */
|
|
91
|
+
readonly local: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The reproduced upstream pieces. A changed fingerprint means: re-read the
|
|
95
|
+
* upstream body against `local`, carry the change over, regenerate the snapshot.
|
|
96
|
+
*/
|
|
97
|
+
export declare const HOST_REPLICAS: readonly HostReplica[];
|
|
98
|
+
/** Where the entry deliberately differs from `dsh --profile`. Documentation only; ADAPTER.md points here. */
|
|
99
|
+
export declare const HOST_DEVIATIONS: readonly {
|
|
100
|
+
readonly id: string;
|
|
101
|
+
readonly what: string;
|
|
102
|
+
}[];
|
|
103
|
+
//# sourceMappingURL=host-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-contract.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/host-contract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+DAA+D;AAC/D,eAAO,MAAM,YAAY,qBAAqB,CAAA;AAE9C,6FAA6F;AAC7F,eAAO,MAAM,oBAAoB,eAAe,CAAA;AAEhD,mDAAmD;AACnD,MAAM,MAAM,aAAa;AACvB,wEAAwE;AACtE,MAAM;AACR,wFAAwF;GACtF,UAAU,CAAA;AAEd,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,kFAAkF;AAClF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeqB,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,yKAMrB,CAAA;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,8CAExB,CAAA;AAEV,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAA;IACnC,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAS/C,CAAA;AAED,6GAA6G;AAC7G,eAAO,MAAM,eAAe,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAUpF,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The host contract of this package's entry (ADAPTER.md): what the entry
|
|
3
|
+
* loads from the installed `dsh` and what it reproduces. Read by
|
|
4
|
+
* ./host-dsh.ts, ./contract.ts and scripts/verify-host-contract.ts.
|
|
5
|
+
* Pure data, no imports.
|
|
6
|
+
*/
|
|
7
|
+
/** The host CLI package whose installation the entry loads. */
|
|
8
|
+
export const HOST_PACKAGE = '@deepseek-ai/dsh';
|
|
9
|
+
/** The host line the reproduced pieces were checked against (host-replica.snapshot.json). */
|
|
10
|
+
export const HOST_REPLICA_VERSION = '0.2.0-rc.2';
|
|
11
|
+
/** The host modules the entry loads, all from one installation, in load order. */
|
|
12
|
+
export const HOST_MODULES = [
|
|
13
|
+
{ key: 'cordis', specifier: '@deepseek-ai/cordis', via: 'host', exports: ['Context'] },
|
|
14
|
+
{
|
|
15
|
+
key: 'appBoot',
|
|
16
|
+
specifier: '@deepseek-ai/dsh-app-boot',
|
|
17
|
+
via: 'host',
|
|
18
|
+
exports: ['loadLayeredEnv', 'createRuntimeResolution', 'PluginPackages', 'installFailLoud', 'readProfilePatches', 'mountRootInclude', 'auditStartupEntries', 'StartupError', 'getDshRuntimeVersion'],
|
|
19
|
+
},
|
|
20
|
+
// The Loader's builtins must be the instance app-boot mounts includes with.
|
|
21
|
+
{ key: 'loader', specifier: '@deepseek-ai/cordis-plugin-loader', via: 'app-boot', exports: ['default'] },
|
|
22
|
+
{ key: 'homePaths', specifier: '@deepseek-ai/dsh-home-paths', via: 'app-boot', exports: ['dshHomePath', 'resolveDshHome'] },
|
|
23
|
+
{ key: 'launchEnvironment', specifier: '@deepseek-ai/dsh-launch-environment', via: 'host', exports: ['DSH_LAUNCH_ENVIRONMENT_KEY'] },
|
|
24
|
+
{ key: 'cmdline', specifier: '@deepseek-ai/dsh-cmdline', via: 'host', exports: ['provideCmdline'] },
|
|
25
|
+
{ key: 'profileBoot', specifier: '@deepseek-ai/dsh/profile-boot', via: 'host', exports: ['prepareProfile', 'INSTALL_ANCHOR', 'PROFILE_ROOT_FILENAME'] },
|
|
26
|
+
{ key: 'httpProxy', specifier: '@deepseek-ai/dsh-http-proxy', via: 'host', exports: ['installProxyFromEnvironment'] },
|
|
27
|
+
];
|
|
28
|
+
/**
|
|
29
|
+
* The packages ./host-dsh.ts takes types from (`import type` only); each is
|
|
30
|
+
* an optional peer + dev dependency and blessed. Not the host package itself
|
|
31
|
+
* (its dependency tree is the whole CLI).
|
|
32
|
+
*/
|
|
33
|
+
export const HOST_TYPE_PACKAGES = [
|
|
34
|
+
'@deepseek-ai/dsh-app-boot',
|
|
35
|
+
'@deepseek-ai/dsh-cmdline',
|
|
36
|
+
'@deepseek-ai/dsh-home-paths',
|
|
37
|
+
'@deepseek-ai/dsh-http-proxy',
|
|
38
|
+
'@deepseek-ai/dsh-launch-environment',
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* The packages the adapter takes types from for host services it reaches
|
|
42
|
+
* through `ctx` rather than through the entry's host boot; each is an
|
|
43
|
+
* optional peer + dev dependency and blessed. Unlike {@link HOST_TYPE_PACKAGES}
|
|
44
|
+
* these are read by the running profile's own composition, and the host CLI
|
|
45
|
+
* supplies the package (a profile has no copy) — so absence at run time is
|
|
46
|
+
* valid and the consumer degrades instead of failing.
|
|
47
|
+
*/
|
|
48
|
+
export const ADAPTER_TYPE_PACKAGES = [
|
|
49
|
+
'@deepseek-ai/dsh-plugin-manager',
|
|
50
|
+
];
|
|
51
|
+
/**
|
|
52
|
+
* The reproduced upstream pieces. A changed fingerprint means: re-read the
|
|
53
|
+
* upstream body against `local`, carry the change over, regenerate the snapshot.
|
|
54
|
+
*/
|
|
55
|
+
export const HOST_REPLICAS = [
|
|
56
|
+
{ id: 'process-shutdown', package: HOST_PACKAGE, symbol: 'createProcessShutdown', kind: 'function', local: 'createProcessShutdown: the `shutdown` half only (`interrupt` is replaced by process-exit.ts, see HOST_DEVIATIONS)' },
|
|
57
|
+
{ id: 'process-shutdown-timeout', package: HOST_PACKAGE, symbol: 'PROCESS_SHUTDOWN_TIMEOUT_MS', kind: 'const', local: 'process-exit.ts PROCESS_SHUTDOWN_TIMEOUT_MS' },
|
|
58
|
+
{ id: 'app-ready', package: HOST_PACKAGE, symbol: 'createAppReady', kind: 'function', local: 'createAppReady' },
|
|
59
|
+
{ id: 'compose-profile', package: HOST_PACKAGE, symbol: 'composeProfile', kind: 'function', local: 'prepareHostRoot steps 1–2 (no overlays, no resolvedProfile)' },
|
|
60
|
+
{ id: 'run-profile', package: HOST_PACKAGE, symbol: 'runProfile', kind: 'function', local: 'prepareHostRoot steps 3, 5–7 (proxy, fail-loud, profileContext, launch environment, PluginPackages, provideCmdline) and HostRoot.compose\'s appReady.commit' },
|
|
61
|
+
{ id: 'boot', package: '@deepseek-ai/dsh-app-boot', symbol: 'boot', kind: 'function', local: 'prepareHostRoot step 4 (baseUrl, dshHomePath, internal/update, Loader) and HostRoot.compose (startup-log exporter, mountRootInclude, loader.await, auditStartupEntries, StartupError.startup)' },
|
|
62
|
+
{ id: 'startup-report', package: HOST_PACKAGE, symbol: 'reportStartupFailure', kind: 'function', local: 'writeStartupReport: the file half' },
|
|
63
|
+
{ id: 'run-cli', package: HOST_PACKAGE, symbol: 'runCli', kind: 'function', local: 'prepareHostRoot\'s loadLayeredEnv call before the profile; the StartupError-only report' },
|
|
64
|
+
];
|
|
65
|
+
/** Where the entry deliberately differs from `dsh --profile`. Documentation only; ADAPTER.md points here. */
|
|
66
|
+
export const HOST_DEVIATIONS = [
|
|
67
|
+
{ id: 'no-interrupt', what: 'runProfile\'s SIGTERM/SIGINT handlers and createProcessShutdown().interrupt are not reproduced: the entry owns SIGTERM/SIGHUP/SIGINT (process-exit.ts installEntrySignals) and ends by the signal after the TUI\'s exit funnel, where interrupt exits 0 (TERM) / 130 (INT) — the launcher reads a numeric 130 as a crash (verify-entry-process-exit)' },
|
|
68
|
+
{ id: 'exit-seam', what: 'ctx.appExit (provideCmdline exit) goes to the TUI\'s exit funnel through ProcessExitSeam first, and to the reproduced shutdown only when the funnel refuses (prepareHostRoot exitSeam)' },
|
|
69
|
+
{ id: 'fail-loud-removable', what: 'installFailLoud\'s uninstaller is kept and called once apply() returned and processGuardActive() (host-entry.ts): from then on the TUI\'s process guard is the single owner of a fatal error; DSH_TUI_NO_185_PROCESS_GUARD=1 keeps fail-loud (verify-entry-process-exit)' },
|
|
70
|
+
{ id: 'startup-report-always', what: 'bin.js saves a report for a StartupError only and lets other startup errors crash; the entry saves one for every composition failure (HostComposeError carries the path) because the screen stays up' },
|
|
71
|
+
{ id: 'startup-report-no-terminal', what: 'reportStartupFailure\'s terminal half is not reproduced: the screen is up, the failure row names the report' },
|
|
72
|
+
{ id: 'no-overlays', what: '--patch overlays, --from-default-profile and resolvedProfile are not reproduced (the launcher passes none)' },
|
|
73
|
+
{ id: 'defer-root-guard', what: 'deferRootCapabilityGuard(root) (host-access.ts) keeps the TUI\'s root-capability guard off while the screen mounts; armRootCapabilityGuard then lets the first TUI row activation install it, as on the profile path, and the composition\'s settling installs it if no TUI row activated' },
|
|
74
|
+
{ id: 'report-exclude-network', what: 'host-entry.ts sets process.report.excludeNetwork = true for the process: DSH\'s flock libc probe (process.report.getReport) otherwise blocked ~10s on reverse lookups of sockets the mounted screen already opened' },
|
|
75
|
+
{ id: 'hijack-before-tui', what: 'the host\'s PluginPackages resolution is installed before any TUI module loads, for both kernels; runProfile installs it inside boot()\'s prepare' },
|
|
76
|
+
];
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import type * as AppBoot from '@deepseek-ai/dsh-app-boot';
|
|
3
|
+
import type * as HomePaths from '@deepseek-ai/dsh-home-paths';
|
|
4
|
+
import type * as Cmdline from '@deepseek-ai/dsh-cmdline';
|
|
5
|
+
import type * as HttpProxy from '@deepseek-ai/dsh-http-proxy';
|
|
6
|
+
import { HOST_MODULES } from './host-contract.js';
|
|
7
|
+
import { type ProcessExitSeam } from './process-exit.js';
|
|
8
|
+
type Warn = (line: string) => void;
|
|
9
|
+
/** Picking from the real module type fails the build when the contract names an undeclared export. */
|
|
10
|
+
type ContractExports<K extends (typeof HOST_MODULES)[number]['key']> = Extract<(typeof HOST_MODULES)[number], {
|
|
11
|
+
key: K;
|
|
12
|
+
}>['exports'][number];
|
|
13
|
+
type AppBootModule = Pick<typeof AppBoot, ContractExports<'appBoot'>>;
|
|
14
|
+
/** `@deepseek-ai/dsh/profile-boot`, declared locally: the host CLI is not a dependency. */
|
|
15
|
+
interface ProfileBootModule {
|
|
16
|
+
prepareProfile(name: string, userLayer?: boolean, fromDefaultProfile?: string): AppBoot.Profile;
|
|
17
|
+
readonly INSTALL_ANCHOR: string;
|
|
18
|
+
readonly PROFILE_ROOT_FILENAME: 'cordis.yml';
|
|
19
|
+
}
|
|
20
|
+
type HomePathsModule = Pick<typeof HomePaths, ContractExports<'homePaths'>>;
|
|
21
|
+
type CmdlineModule = Pick<typeof Cmdline, ContractExports<'cmdline'>>;
|
|
22
|
+
type HttpProxyModule = Pick<typeof HttpProxy, ContractExports<'httpProxy'>>;
|
|
23
|
+
export interface HostDsh {
|
|
24
|
+
readonly packageDir: string;
|
|
25
|
+
/** Reported, not gated on: the exports are. */
|
|
26
|
+
readonly version: string;
|
|
27
|
+
readonly Context: new () => Context;
|
|
28
|
+
readonly appBoot: AppBootModule;
|
|
29
|
+
readonly Loader: unknown;
|
|
30
|
+
readonly homePaths: HomePathsModule;
|
|
31
|
+
readonly launchEnvironmentKey: string;
|
|
32
|
+
readonly cmdline: CmdlineModule;
|
|
33
|
+
readonly profileBoot: ProfileBootModule;
|
|
34
|
+
readonly httpProxy: HttpProxyModule;
|
|
35
|
+
}
|
|
36
|
+
/** Where the host came from, or why there is none (shown to the user). */
|
|
37
|
+
export type HostDshLocation = {
|
|
38
|
+
readonly packageDir: string;
|
|
39
|
+
readonly via: 'link' | 'shim' | 'beside' | 'volta';
|
|
40
|
+
} | {
|
|
41
|
+
readonly reason: string;
|
|
42
|
+
};
|
|
43
|
+
/** `findHostDsh`'s reason when PATH has no `dsh` at all. */
|
|
44
|
+
export declare const NO_DSH_ON_PATH = "no dsh on PATH";
|
|
45
|
+
/**
|
|
46
|
+
* Find the installed host package from the first `dsh` on PATH, following
|
|
47
|
+
* what a launch would run: a link (npm on Unix) by its realpath, an npm /
|
|
48
|
+
* pnpm / yarn launcher script (sh, `.cmd`, `.ps1`) by the script path it
|
|
49
|
+
* starts, a volta shim through volta's package image. A launcher that
|
|
50
|
+
* cannot be followed is no host: the reason says what was found.
|
|
51
|
+
*/
|
|
52
|
+
export declare function findHostDsh(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): HostDshLocation;
|
|
53
|
+
/**
|
|
54
|
+
* The script paths a launcher starts: quoted or bare tokens ending in
|
|
55
|
+
* `.js` / `.mjs` / `.cjs` (npm and pnpm cmd-shim, `.cmd` and `.ps1` shims,
|
|
56
|
+
* a hand-written `exec node …/bin.js` wrapper).
|
|
57
|
+
*/
|
|
58
|
+
export declare function launcherScriptPaths(text: string): string[];
|
|
59
|
+
/** Expand a launcher's own-directory variables and resolve with `platform`'s path rules. */
|
|
60
|
+
export declare function resolveLauncherPath(script: string, base: string, platform: NodeJS.Platform): string | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* The capability probe: throws naming what is missing (no host, a module that
|
|
63
|
+
* does not import, an export the entry needs); the caller falls back.
|
|
64
|
+
*/
|
|
65
|
+
export declare function loadHostDsh(packageDir?: string | undefined): Promise<HostDsh>;
|
|
66
|
+
export interface HostRoot {
|
|
67
|
+
readonly ctx: Context;
|
|
68
|
+
/**
|
|
69
|
+
* The dsh-tui profile (DSH kernel) or the light profile (./lite-profile.ts).
|
|
70
|
+
* Rejects with the Loader's or the audit's error; the tree stays up.
|
|
71
|
+
* `stopping`: a root dispose is waiting, so skip audit and readiness.
|
|
72
|
+
*/
|
|
73
|
+
compose(warn: Warn, stopping?: () => boolean): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Remove the fail-loud handlers (DSH kernel; a no-op otherwise) once the
|
|
76
|
+
* TUI's process guard is up: it alone owns a fatal error, and fail-loud
|
|
77
|
+
* would exit before the funnel restored the terminal.
|
|
78
|
+
*/
|
|
79
|
+
readonly uninstallFailLoud: () => void;
|
|
80
|
+
}
|
|
81
|
+
export interface PrepareHostRootOptions {
|
|
82
|
+
readonly profile: string;
|
|
83
|
+
/** `ctx.cmdlineArgs`. */
|
|
84
|
+
readonly args: readonly string[];
|
|
85
|
+
/** Compose the profile later (the DSH kernel); else only the resolution. */
|
|
86
|
+
readonly dsh: boolean;
|
|
87
|
+
/** Routes `ctx.appExit(code)` to the TUI's exit funnel; the bounded `shutdown` when unfilled or refused. */
|
|
88
|
+
readonly exitSeam?: ProcessExitSeam;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Build the entry's root from the host's `cordis` and install the host's
|
|
92
|
+
* module resolution on it before any TUI module is imported, so the TUI and
|
|
93
|
+
* the DSH plugins resolve shared packages (react, schemastery, the
|
|
94
|
+
* `@deepseek-ai/*` peers) the same way. Both kernels: otherwise the peers
|
|
95
|
+
* resolve only through `$DSH_HOME/profiles/node_modules`, which a fresh
|
|
96
|
+
* install may not have. The DSH kernel also gets the rest of `runProfile`'s prepare.
|
|
97
|
+
*/
|
|
98
|
+
export declare function prepareHostRoot(host: HostDsh, options: PrepareHostRootOptions): Promise<HostRoot>;
|
|
99
|
+
/** A composition failure, with the startup report saved for it. */
|
|
100
|
+
export declare class HostComposeError extends Error {
|
|
101
|
+
readonly original: unknown;
|
|
102
|
+
readonly logPath: string | undefined;
|
|
103
|
+
constructor(original: unknown, logPath: string | undefined);
|
|
104
|
+
}
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=host-dsh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-dsh.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/host-dsh.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,KAAK,OAAO,MAAM,2BAA2B,CAAA;AACzD,OAAO,KAAK,KAAK,SAAS,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,KAAK,OAAO,MAAM,0BAA0B,CAAA;AACxD,OAAO,KAAK,KAAK,SAAS,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAgB,MAAM,oBAAoB,CAAA;AAE/D,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAOrF,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;AAElC,sGAAsG;AACtG,KAAK,eAAe,CAAC,CAAC,SAAS,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE;IAAE,GAAG,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5I,KAAK,aAAa,GAAG,IAAI,CAAC,OAAO,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;AACrE,2FAA2F;AAC3F,UAAU,iBAAiB;IACzB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/F,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,YAAY,CAAA;CAC7C;AACD,KAAK,eAAe,GAAG,IAAI,CAAC,OAAO,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;AAC3E,KAAK,aAAa,GAAG,IAAI,CAAC,OAAO,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;AACrE,KAAK,eAAe,GAAG,IAAI,CAAC,OAAO,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;AAM3E,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,UAAU,OAAO,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;CACpC;AAED,0EAA0E;AAC1E,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE,GACnF;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/B,4DAA4D;AAC5D,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAE9C;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,eAAe,CA0B/H;AAmDD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ1D;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,CAW/G;AAWD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,UAAU,GAAE,MAAM,GAAG,SAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAiD9F;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAA;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,4GAA4G;IAC5G,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;CACpC;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA+HvG;AAED,mEAAmE;AACnE,qBAAa,gBAAiB,SAAQ,KAAK;IAE7B,QAAQ,CAAC,QAAQ,EAAE,OAAO;IADtC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;gBACf,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS;CAKpE"}
|