@deepseek-harness-tui/dsh-tui 0.10.0 → 0.10.2
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 +5 -2
- package/bin/dsh-tui.js +99 -33
- package/cordis.patch.yml +25 -5
- package/lib/types/adapter/channel/actions.d.ts +17 -0
- package/lib/types/adapter/channel/actions.d.ts.map +1 -0
- package/lib/types/adapter/channel/actions.js +28 -0
- package/lib/types/adapter/channel/consumer.d.ts +34 -0
- package/lib/types/adapter/channel/consumer.d.ts.map +1 -0
- package/lib/types/adapter/channel/consumer.js +87 -0
- package/lib/types/adapter/channel/features.d.ts +12 -0
- package/lib/types/adapter/channel/features.d.ts.map +1 -0
- package/lib/types/adapter/channel/features.js +41 -0
- package/lib/types/adapter/channel/host-registry.d.ts +40 -0
- package/lib/types/adapter/channel/host-registry.d.ts.map +1 -0
- package/lib/types/adapter/channel/host-registry.js +120 -0
- package/lib/types/adapter/channel/index.d.ts +22 -0
- package/lib/types/adapter/channel/index.d.ts.map +1 -0
- package/lib/types/adapter/channel/index.js +21 -0
- package/lib/types/adapter/channel/internal-token.d.ts +12 -0
- package/lib/types/adapter/channel/internal-token.d.ts.map +1 -0
- package/lib/types/adapter/channel/internal-token.js +11 -0
- package/lib/types/adapter/channel/plugins.d.ts +17 -0
- package/lib/types/adapter/channel/plugins.d.ts.map +1 -0
- package/lib/types/adapter/channel/plugins.js +47 -0
- package/lib/types/adapter/channel/projection.d.ts +15 -0
- package/lib/types/adapter/channel/projection.d.ts.map +1 -0
- package/lib/types/adapter/channel/projection.js +59 -0
- package/lib/types/adapter/channel/provider.d.ts +52 -0
- package/lib/types/adapter/channel/provider.d.ts.map +1 -0
- package/lib/types/adapter/channel/provider.js +231 -0
- package/lib/types/adapter/channel/read-view.d.ts +4 -0
- package/lib/types/adapter/channel/read-view.d.ts.map +1 -0
- package/lib/types/adapter/channel/read-view.js +132 -0
- package/lib/types/adapter/channel/session-projection.d.ts +56 -0
- package/lib/types/adapter/channel/session-projection.d.ts.map +1 -0
- package/lib/types/adapter/channel/session-projection.js +247 -0
- package/lib/types/adapter/channel/state.d.ts +11 -0
- package/lib/types/adapter/channel/state.d.ts.map +1 -0
- package/lib/types/adapter/channel/state.js +55 -0
- package/lib/types/adapter/channel/transcript.d.ts +15 -0
- package/lib/types/adapter/channel/transcript.d.ts.map +1 -0
- package/lib/types/adapter/channel/transcript.js +22 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +106 -0
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -0
- package/lib/types/adapter/channel/ui-policy.js +166 -0
- package/lib/types/adapter/channel/ui.d.ts +16 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -0
- package/lib/types/adapter/channel/ui.js +168 -0
- package/lib/types/adapter/index.d.ts +20 -0
- package/lib/types/adapter/index.d.ts.map +1 -0
- package/lib/types/adapter/index.js +19 -0
- package/lib/types/adapter/kernel/contract-catalog.d.ts +12 -0
- package/lib/types/adapter/kernel/contract-catalog.d.ts.map +1 -0
- package/lib/types/adapter/kernel/contract-catalog.js +11 -0
- package/lib/types/adapter/kernel/diagnostics.d.ts +18 -0
- package/lib/types/adapter/kernel/diagnostics.d.ts.map +1 -0
- package/lib/types/adapter/kernel/diagnostics.js +16 -0
- package/lib/types/adapter/kernel/driver-types.d.ts +16 -0
- package/lib/types/adapter/kernel/driver-types.d.ts.map +1 -0
- package/lib/types/adapter/kernel/driver-types.js +8 -0
- package/lib/types/adapter/kernel/host-facade.d.ts +65 -0
- package/lib/types/adapter/kernel/host-facade.d.ts.map +1 -0
- package/lib/types/adapter/kernel/host-facade.js +215 -0
- package/lib/types/adapter/kernel/host-probe-access.d.ts +71 -0
- package/lib/types/adapter/kernel/host-probe-access.d.ts.map +1 -0
- package/lib/types/adapter/kernel/host-probe-access.js +121 -0
- package/lib/types/adapter/kernel/index.d.ts +20 -0
- package/lib/types/adapter/kernel/index.d.ts.map +1 -0
- package/lib/types/adapter/kernel/index.js +19 -0
- package/lib/types/adapter/kernel/kernel-runtime.d.ts +138 -0
- package/lib/types/adapter/kernel/kernel-runtime.d.ts.map +1 -0
- package/lib/types/adapter/kernel/kernel-runtime.js +572 -0
- package/lib/types/adapter/kernel/ledger.d.ts +55 -0
- package/lib/types/adapter/kernel/ledger.d.ts.map +1 -0
- package/lib/types/adapter/kernel/ledger.js +33 -0
- package/lib/types/adapter/kernel/legacy-facade.d.ts +22 -0
- package/lib/types/adapter/kernel/legacy-facade.d.ts.map +1 -0
- package/lib/types/adapter/kernel/legacy-facade.js +34 -0
- package/lib/types/adapter/kernel/lifecycle.d.ts +38 -0
- package/lib/types/adapter/kernel/lifecycle.d.ts.map +1 -0
- package/lib/types/adapter/kernel/lifecycle.js +53 -0
- package/lib/types/adapter/kernel/replay-isolation.d.ts +27 -0
- package/lib/types/adapter/kernel/replay-isolation.d.ts.map +1 -0
- package/lib/types/adapter/kernel/replay-isolation.js +45 -0
- package/lib/types/adapter/kernel/replay.d.ts +132 -0
- package/lib/types/adapter/kernel/replay.d.ts.map +1 -0
- package/lib/types/adapter/kernel/replay.js +425 -0
- package/lib/types/adapter/kernel/runtime-context.d.ts +15 -0
- package/lib/types/adapter/kernel/runtime-context.d.ts.map +1 -0
- package/lib/types/adapter/kernel/runtime-context.js +24 -0
- package/lib/types/adapter/kernel/runtime.d.ts +70 -0
- package/lib/types/adapter/kernel/runtime.d.ts.map +1 -0
- package/lib/types/adapter/kernel/runtime.js +325 -0
- package/lib/types/adapter/kernel/slices/channel.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/channel.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/channel.js +8 -0
- package/lib/types/adapter/kernel/slices/decisions.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/decisions.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/decisions.js +10 -0
- package/lib/types/adapter/kernel/slices/extensions.d.ts +8 -0
- package/lib/types/adapter/kernel/slices/extensions.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/extensions.js +43 -0
- package/lib/types/adapter/kernel/slices/index.d.ts +19 -0
- package/lib/types/adapter/kernel/slices/index.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/index.js +36 -0
- package/lib/types/adapter/kernel/slices/presentation.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/presentation.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/presentation.js +14 -0
- package/lib/types/adapter/kernel/slices/scenes.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/scenes.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/scenes.js +14 -0
- package/lib/types/adapter/kernel/slices/settings.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/settings.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/settings.js +12 -0
- package/lib/types/adapter/kernel/slices/types.d.ts +20 -0
- package/lib/types/adapter/kernel/slices/types.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/types.js +12 -0
- package/lib/types/adapter/kernel/slices/workspace.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/workspace.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/workspace.js +15 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts +90 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-catalog.js +2 -0
- package/lib/types/adapter/ports/channel-display.d.ts +90 -0
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-display.js +2 -0
- package/lib/types/adapter/ports/channel-session.d.ts +229 -0
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-session.js +2 -0
- package/lib/types/adapter/ports/channel-settings.d.ts +273 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-settings.js +1 -0
- package/lib/types/adapter/ports/channel-ui.d.ts +569 -0
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-ui.js +1 -0
- package/lib/types/adapter/ports/channel-view.d.ts +609 -0
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-view.js +2 -0
- package/lib/types/adapter/ports/channel-workspace.d.ts +45 -0
- package/lib/types/adapter/ports/channel-workspace.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-workspace.js +2 -0
- package/lib/types/adapter/ports/channel.d.ts +145 -0
- package/lib/types/adapter/ports/channel.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel.js +22 -0
- package/lib/types/adapter/ports/decisions.d.ts +18 -0
- package/lib/types/adapter/ports/decisions.d.ts.map +1 -0
- package/lib/types/adapter/ports/decisions.js +9 -0
- package/lib/types/adapter/ports/descriptor.d.ts +25 -0
- package/lib/types/adapter/ports/descriptor.d.ts.map +1 -0
- package/lib/types/adapter/ports/descriptor.js +11 -0
- package/lib/types/adapter/ports/extensions.d.ts +86 -0
- package/lib/types/adapter/ports/extensions.d.ts.map +1 -0
- package/lib/types/adapter/ports/extensions.js +9 -0
- package/lib/types/adapter/ports/index.d.ts +23 -0
- package/lib/types/adapter/ports/index.d.ts.map +1 -0
- package/lib/types/adapter/ports/index.js +14 -0
- package/lib/types/adapter/ports/owner.d.ts +19 -0
- package/lib/types/adapter/ports/owner.d.ts.map +1 -0
- package/lib/types/adapter/ports/owner.js +9 -0
- package/lib/types/adapter/ports/presentation.d.ts +81 -0
- package/lib/types/adapter/ports/presentation.d.ts.map +1 -0
- package/lib/types/adapter/ports/presentation.js +10 -0
- package/lib/types/adapter/ports/scenes.d.ts +24 -0
- package/lib/types/adapter/ports/scenes.d.ts.map +1 -0
- package/lib/types/adapter/ports/scenes.js +8 -0
- package/lib/types/adapter/ports/settings.d.ts +44 -0
- package/lib/types/adapter/ports/settings.d.ts.map +1 -0
- package/lib/types/adapter/ports/settings.js +9 -0
- package/lib/types/adapter/ports/workspace.d.ts +60 -0
- package/lib/types/adapter/ports/workspace.d.ts.map +1 -0
- package/lib/types/adapter/ports/workspace.js +8 -0
- package/lib/types/adapter/spec/index.d.ts +11 -0
- package/lib/types/adapter/spec/index.d.ts.map +1 -0
- package/lib/types/adapter/spec/index.js +10 -0
- package/lib/types/adapter/spec/profile.d.ts +10 -0
- package/lib/types/adapter/spec/profile.d.ts.map +1 -0
- package/lib/types/adapter/spec/profile.js +9 -0
- package/lib/types/adapter/spec/protocol-constants.d.ts +60 -0
- package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -0
- package/lib/types/adapter/spec/protocol-constants.js +129 -0
- package/lib/types/adapter/spec/tui-contributions.d.ts +18 -0
- package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -0
- package/lib/types/adapter/spec/tui-contributions.js +19 -0
- package/lib/types/adapter/standard/admission.d.ts +11 -0
- package/lib/types/adapter/standard/admission.d.ts.map +1 -0
- package/lib/types/adapter/standard/admission.js +10 -0
- package/lib/types/adapter/standard/descriptor.d.ts +74 -0
- package/lib/types/adapter/standard/descriptor.d.ts.map +1 -0
- package/lib/types/adapter/standard/descriptor.js +356 -0
- package/lib/types/{dsh-adapter → adapter/standard}/grants.d.ts +8 -3
- package/lib/types/adapter/standard/grants.d.ts.map +1 -0
- package/lib/types/{dsh-adapter → adapter/standard}/grants.js +14 -8
- package/lib/types/adapter/standard/index.d.ts +25 -0
- package/lib/types/adapter/standard/index.d.ts.map +1 -0
- package/lib/types/adapter/standard/index.js +24 -0
- package/lib/types/adapter/standard/negotiate.d.ts.map +1 -0
- package/lib/types/{plugin-spec → adapter/standard}/permission-scope.d.ts +3 -8
- package/lib/types/adapter/standard/permission-scope.d.ts.map +1 -0
- package/lib/types/{plugin-spec → adapter/standard}/permission-scope.js +4 -26
- package/lib/types/adapter/standard/protocols.d.ts +12 -0
- package/lib/types/adapter/standard/protocols.d.ts.map +1 -0
- package/lib/types/adapter/standard/protocols.js +11 -0
- package/lib/types/adapter/standard/registry.d.ts.map +1 -0
- package/lib/types/{plugin-spec → adapter/standard}/registry.js +3 -15
- package/lib/types/adapter/standard/schema-check.d.ts.map +1 -0
- package/lib/types/{plugin-spec → adapter/standard}/schema-check.js +4 -2
- package/lib/types/adapter/standard/tui-extension.d.ts +25 -0
- package/lib/types/adapter/standard/tui-extension.d.ts.map +1 -0
- package/lib/types/adapter/standard/tui-extension.js +45 -0
- package/lib/types/{plugin-spec → adapter/standard}/types.d.ts +3 -9
- package/lib/types/adapter/standard/types.d.ts.map +1 -0
- package/lib/types/{plugin-spec → adapter/standard}/validate.d.ts +3 -3
- package/lib/types/adapter/standard/validate.d.ts.map +1 -0
- package/lib/types/{plugin-spec → adapter/standard}/validate.js +14 -13
- package/lib/types/adapter/upstream/channel-driver.d.ts +22 -0
- package/lib/types/adapter/upstream/channel-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/channel-driver.js +424 -0
- package/lib/types/adapter/upstream/decisions-driver.d.ts +15 -0
- package/lib/types/adapter/upstream/decisions-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/decisions-driver.js +141 -0
- package/lib/types/adapter/upstream/detection.d.ts +26 -0
- package/lib/types/adapter/upstream/detection.d.ts.map +1 -0
- package/lib/types/adapter/upstream/detection.js +9 -0
- package/lib/types/adapter/upstream/driver.d.ts +50 -0
- package/lib/types/adapter/upstream/driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/driver.js +8 -0
- package/lib/types/adapter/upstream/extensions-driver.d.ts +24 -0
- package/lib/types/adapter/upstream/extensions-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/extensions-driver.js +697 -0
- package/lib/types/adapter/upstream/host-descriptor-driver.d.ts +45 -0
- package/lib/types/adapter/upstream/host-descriptor-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/host-descriptor-driver.js +606 -0
- package/lib/types/adapter/upstream/index.d.ts +18 -0
- package/lib/types/adapter/upstream/index.d.ts.map +1 -0
- package/lib/types/adapter/upstream/index.js +15 -0
- package/lib/types/adapter/upstream/presentation-driver.d.ts +17 -0
- package/lib/types/adapter/upstream/presentation-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/presentation-driver.js +129 -0
- package/lib/types/adapter/upstream/scenes-driver.d.ts +18 -0
- package/lib/types/adapter/upstream/scenes-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/scenes-driver.js +170 -0
- package/lib/types/adapter/upstream/settings-driver.d.ts +20 -0
- package/lib/types/adapter/upstream/settings-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/settings-driver.js +173 -0
- package/lib/types/adapter/upstream/workspace-driver.d.ts +19 -0
- package/lib/types/adapter/upstream/workspace-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/workspace-driver.js +190 -0
- package/lib/types/api.d.ts +1 -1
- package/lib/types/api.d.ts.map +1 -1
- package/lib/types/commands.d.ts +2 -41
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +1 -1
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +8 -1
- package/lib/types/components/GoalTodoPanel.d.ts +2 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/HistorySearchDialog.d.ts.map +1 -1
- package/lib/types/components/HistorySearchDialog.js +7 -5
- package/lib/types/components/Markdown.d.ts +2 -2
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +28 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +46 -17
- package/lib/types/components/ModelPicker.d.ts +1 -1
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +8 -4
- package/lib/types/components/OverlayAbove.d.ts +22 -1
- package/lib/types/components/OverlayAbove.d.ts.map +1 -1
- package/lib/types/components/OverlayAbove.js +74 -5
- package/lib/types/components/PromptInput.d.ts +2 -1
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/RewindPicker.d.ts.map +1 -1
- package/lib/types/components/RewindPicker.js +14 -6
- package/lib/types/components/SkillsPicker.d.ts.map +1 -1
- package/lib/types/components/SkillsPicker.js +6 -4
- package/lib/types/components/Spinner/spinnerMode.d.ts +1 -5
- package/lib/types/components/Spinner/spinnerMode.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.js +61 -9
- package/lib/types/components/design-system/ThemedBox.d.ts +4 -2
- package/lib/types/components/design-system/ThemedBox.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemedBox.js +2 -2
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +69 -25
- package/lib/types/components/overlayBudget.d.ts +39 -0
- package/lib/types/components/overlayBudget.d.ts.map +1 -0
- package/lib/types/components/overlayBudget.js +43 -0
- package/lib/types/deepseekBalance.d.ts +2 -36
- package/lib/types/deepseekBalance.d.ts.map +1 -1
- package/lib/types/deepseekBalance.js +0 -14
- package/lib/types/deepseekPricing.d.ts +2 -1
- package/lib/types/deepseekPricing.d.ts.map +1 -1
- package/lib/types/deepseekPricing.js +8 -1
- package/lib/types/dsh-adapter/approvals.d.ts +11 -1
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +32 -12
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/action-readiness.js +83 -0
- package/lib/types/dsh-adapter/channel/activity.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/activity.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/activity.js +113 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +64 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.js +295 -0
- package/lib/types/dsh-adapter/channel/background-action.d.ts +41 -0
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/background-action.js +86 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +65 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/binding-events.js +169 -0
- package/lib/types/dsh-adapter/channel/binding.d.ts +41 -0
- package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/binding.js +227 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +29 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/command-completions.js +94 -0
- package/lib/types/dsh-adapter/channel/commands.d.ts +8 -0
- package/lib/types/dsh-adapter/channel/commands.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/commands.js +9 -0
- package/lib/types/dsh-adapter/channel/compaction.d.ts +19 -0
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/compaction.js +116 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +57 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/composer-images.js +217 -0
- package/lib/types/dsh-adapter/channel/composer-mentions.d.ts +15 -0
- package/lib/types/dsh-adapter/channel/composer-mentions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/composer-mentions.js +200 -0
- package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts +26 -0
- package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/context-bookkeeping.js +30 -0
- package/lib/types/dsh-adapter/channel/decisions.d.ts +19 -0
- package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/decisions.js +90 -0
- package/lib/types/dsh-adapter/channel/emitter.d.ts +10 -0
- package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/emitter.js +71 -0
- package/lib/types/dsh-adapter/channel/external-commands.d.ts +31 -0
- package/lib/types/dsh-adapter/channel/external-commands.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/external-commands.js +187 -0
- package/lib/types/dsh-adapter/channel/file-actions.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/file-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/file-actions.js +45 -0
- package/lib/types/dsh-adapter/channel/input-actions.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/input-actions.js +135 -0
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +37 -0
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/input-delivery.js +305 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts +28 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/job-projection.js +150 -0
- package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts +9 -0
- package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/lifetime-resources.js +33 -0
- package/lib/types/dsh-adapter/channel/loaded-context.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/loaded-context.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/loaded-context.js +62 -0
- package/lib/types/dsh-adapter/channel/local-actions.d.ts +70 -0
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/local-actions.js +108 -0
- package/lib/types/dsh-adapter/channel/mentions.d.ts +29 -0
- package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mentions.js +235 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +30 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mode-actions.js +247 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +35 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +199 -0
- package/lib/types/dsh-adapter/channel/mode-permission.d.ts +58 -0
- package/lib/types/dsh-adapter/channel/mode-permission.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mode-permission.js +240 -0
- package/lib/types/dsh-adapter/channel/mode-roster.d.ts +51 -0
- package/lib/types/dsh-adapter/channel/mode-roster.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mode-roster.js +119 -0
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +46 -0
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-actions.js +275 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +32 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-switch.js +98 -0
- package/lib/types/dsh-adapter/channel/notifications.d.ts +9 -0
- package/lib/types/dsh-adapter/channel/notifications.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/notifications.js +24 -0
- package/lib/types/dsh-adapter/channel/owner.d.ts +18 -0
- package/lib/types/dsh-adapter/channel/owner.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/owner.js +73 -0
- package/lib/types/dsh-adapter/channel/paths.d.ts +31 -0
- package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/paths.js +147 -0
- package/lib/types/dsh-adapter/channel/permissions.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/permissions.js +187 -0
- package/lib/types/dsh-adapter/channel/preferences.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/preferences.js +103 -0
- package/lib/types/dsh-adapter/channel/projection-helpers.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/projection-helpers.js +63 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/projection.js +1021 -0
- package/lib/types/dsh-adapter/channel/reports.d.ts +32 -0
- package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/reports.js +171 -0
- package/lib/types/dsh-adapter/channel/session-actions.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/session-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-actions.js +29 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts +32 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-adoption.js +35 -0
- package/lib/types/dsh-adapter/channel/session-fork.d.ts +19 -0
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-fork.js +85 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +32 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +62 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +81 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-metadata.js +209 -0
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +11 -0
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-reset.js +44 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +56 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-resume.js +240 -0
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts +19 -0
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-rewind.js +128 -0
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +19 -0
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +138 -0
- package/lib/types/dsh-adapter/channel/session-tree.d.ts +10 -0
- package/lib/types/dsh-adapter/channel/session-tree.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-tree.js +503 -0
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +4 -0
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/settings-host.js +256 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +33 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.js +215 -0
- package/lib/types/dsh-adapter/channel/state.d.ts +46 -0
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/state.js +31 -0
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +47 -0
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/subagent-projection.js +140 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +73 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/transcript.js +312 -0
- package/lib/types/dsh-adapter/channel/types.d.ts +162 -0
- package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/types.js +1 -0
- package/lib/types/dsh-adapter/channel/usage.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/usage.js +48 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.js +56 -0
- package/lib/types/dsh-adapter/channel-facade-actions.d.ts +25 -0
- package/lib/types/dsh-adapter/channel-facade-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel-facade-actions.js +55 -0
- package/lib/types/dsh-adapter/channel-scene-outlet.d.ts +6 -0
- package/lib/types/dsh-adapter/channel-scene-outlet.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel-scene-outlet.js +13 -0
- package/lib/types/dsh-adapter/channel-ui.d.ts +9 -0
- package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel-ui.js +128 -0
- package/lib/types/dsh-adapter/channel.d.ts +9 -1525
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +753 -8145
- package/lib/types/dsh-adapter/command-trees.d.ts +1 -0
- package/lib/types/dsh-adapter/command-trees.d.ts.map +1 -1
- package/lib/types/dsh-adapter/command-trees.js +20 -1
- package/lib/types/dsh-adapter/compat/liveSession.d.ts +8 -4
- package/lib/types/dsh-adapter/compat/liveSession.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/liveSession.js +28 -3
- package/lib/types/dsh-adapter/compat/persistence.d.ts +21 -0
- package/lib/types/dsh-adapter/compat/persistence.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/persistence.js +17 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts +50 -11
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/sessionLog.js +325 -36
- package/lib/types/dsh-adapter/component-identity.d.ts +1 -1
- package/lib/types/dsh-adapter/component-identity.d.ts.map +1 -1
- package/lib/types/dsh-adapter/component-identity.js +1 -1
- package/lib/types/dsh-adapter/contract.d.ts +11 -9
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +19 -12
- package/lib/types/dsh-adapter/decision-guard.d.ts +56 -12
- package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/decision-guard.js +134 -22
- package/lib/types/dsh-adapter/dialogs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/dialogs.js +13 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts +5 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -1
- package/lib/types/dsh-adapter/effect-ledger.js +53 -15
- package/lib/types/dsh-adapter/extension-events.d.ts +2 -9
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/extension-events.js +0 -20
- package/lib/types/dsh-adapter/extensions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/extensions.js +3 -2
- package/lib/types/dsh-adapter/host-grants.d.ts +23 -0
- package/lib/types/dsh-adapter/host-grants.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-grants.js +45 -0
- package/lib/types/dsh-adapter/jobs.d.ts +2 -46
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +0 -25
- package/lib/types/dsh-adapter/message-observer.d.ts +15 -2
- package/lib/types/dsh-adapter/message-observer.d.ts.map +1 -1
- package/lib/types/dsh-adapter/message-observer.js +157 -28
- package/lib/types/dsh-adapter/plugin-host.d.ts +80 -11
- package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin-host.js +438 -41
- package/lib/types/dsh-adapter/plugin-storage.d.ts +11 -1
- package/lib/types/dsh-adapter/plugin-storage.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin-storage.js +150 -11
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +75 -34
- package/lib/types/dsh-adapter/plugins-info.d.ts +2 -2
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugins-info.js +11 -6
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/presets.js +3 -2
- package/lib/types/dsh-adapter/providerWizard.d.ts +2 -159
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.d.ts +8 -0
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +18 -0
- package/lib/types/dsh-adapter/recap.d.ts +1 -9
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
- package/lib/types/dsh-adapter/recap.js +0 -14
- package/lib/types/dsh-adapter/renderers.d.ts +1 -0
- package/lib/types/dsh-adapter/renderers.d.ts.map +1 -1
- package/lib/types/dsh-adapter/renderers.js +26 -1
- package/lib/types/dsh-adapter/scenes.d.ts +3 -1
- package/lib/types/dsh-adapter/scenes.d.ts.map +1 -1
- package/lib/types/dsh-adapter/scenes.js +31 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts +14 -95
- package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessionTree.js +51 -36
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/digest.js +40 -19
- package/lib/types/dsh-adapter/sessions/frames.js +2 -0
- package/lib/types/dsh-adapter/sessions/index.d.ts +1 -1
- package/lib/types/dsh-adapter/sessions/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/index.js +1 -1
- package/lib/types/dsh-adapter/sessions/list.d.ts +23 -0
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +28 -17
- package/lib/types/dsh-adapter/sessions/store.d.ts +2 -2
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/store.js +12 -11
- package/lib/types/dsh-adapter/sessions/types.d.ts +4 -128
- package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/types.js +0 -13
- package/lib/types/dsh-adapter/settings-sections.d.ts +4 -95
- package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -1
- package/lib/types/dsh-adapter/settings-sections.js +50 -13
- package/lib/types/dsh-adapter/settingsEditor.d.ts +2 -36
- package/lib/types/dsh-adapter/settingsEditor.d.ts.map +1 -1
- package/lib/types/dsh-adapter/settingsEditor.js +0 -18
- package/lib/types/dsh-adapter/shortcuts.d.ts +5 -0
- package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -1
- package/lib/types/dsh-adapter/shortcuts.js +49 -0
- package/lib/types/dsh-adapter/status.d.ts +5 -0
- package/lib/types/dsh-adapter/status.d.ts.map +1 -1
- package/lib/types/dsh-adapter/status.js +29 -0
- package/lib/types/dsh-adapter/subagents.d.ts +9 -49
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +92 -1
- package/lib/types/dsh-adapter/themes.d.ts +1 -0
- package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
- package/lib/types/dsh-adapter/themes.js +29 -0
- package/lib/types/dsh-adapter/toast.d.ts +13 -0
- package/lib/types/dsh-adapter/toast.d.ts.map +1 -1
- package/lib/types/dsh-adapter/toast.js +31 -1
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts +2 -1
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/aggregate.js +2 -1
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +37 -18
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/guards.js +43 -5
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +2 -2
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +31 -13
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/projection.js +71 -14
- package/lib/types/dsh-adapter/trajectory/types.d.ts +1 -1
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/transcript-images.d.ts +2 -19
- package/lib/types/dsh-adapter/transcript-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/workspaces.d.ts +2 -49
- package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -1
- package/lib/types/dsh-adapter/workspaces.js +23 -3
- package/lib/types/i18n.d.ts +19 -7
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +8 -3
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
- package/lib/types/ink/components/ScrollBox.js +30 -33
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/dom.js +32 -64
- package/lib/types/ink/get-max-width.d.ts +7 -15
- package/lib/types/ink/get-max-width.d.ts.map +1 -1
- package/lib/types/ink/get-max-width.js +7 -20
- package/lib/types/ink/ink.d.ts +1 -0
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +22 -3
- package/lib/types/ink/layout/node.d.ts +2 -0
- package/lib/types/ink/layout/node.d.ts.map +1 -1
- package/lib/types/ink/layout/yoga.d.ts +1 -0
- package/lib/types/ink/layout/yoga.d.ts.map +1 -1
- package/lib/types/ink/layout/yoga.js +3 -0
- package/lib/types/ink/node-cache.d.ts +11 -0
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/node-cache.js +3 -0
- package/lib/types/ink/output.d.ts +6 -1
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +55 -65
- package/lib/types/ink/render-node-to-output.d.ts +24 -1
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +195 -71
- package/lib/types/ink/renderer.d.ts.map +1 -1
- package/lib/types/ink/renderer.js +14 -2
- package/lib/types/ink/styles.d.ts +12 -0
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/tabstops.d.ts +3 -2
- package/lib/types/ink/tabstops.d.ts.map +1 -1
- package/lib/types/ink/tabstops.js +5 -4
- package/lib/types/ink/wrap-text.js +2 -2
- package/lib/types/modelGroups.d.ts +1 -1
- package/lib/types/modelGroups.d.ts.map +1 -1
- package/lib/types/modelRoute.js +1 -1
- package/lib/types/native-ts/yoga-layout/index.d.ts +8 -3
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.js +23 -8
- package/lib/types/plugin-host.d.ts +3 -4
- package/lib/types/plugin-host.d.ts.map +1 -1
- package/lib/types/plugin-host.js +8 -6
- package/lib/types/screens/AgentView.d.ts +1 -1
- package/lib/types/screens/AgentView.d.ts.map +1 -1
- package/lib/types/screens/Chat.d.ts +3 -2
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +91 -17
- package/lib/types/screens/SessionBrowser.d.ts +1 -1
- package/lib/types/screens/SessionBrowser.d.ts.map +1 -1
- package/lib/types/screens/SessionTree.d.ts +1 -1
- package/lib/types/screens/SessionTree.d.ts.map +1 -1
- package/lib/types/screens/Settings.d.ts +1 -1
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.d.ts +1 -1
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +40 -1
- package/lib/types/screens/TrajectoryScene.d.ts +1 -1
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
- package/lib/types/sessionModes.d.ts +11 -15
- package/lib/types/sessionModes.d.ts.map +1 -1
- package/lib/types/sessionModes.js +11 -0
- package/lib/types/tuiDisplayPrefs.d.ts +2 -68
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +5 -1
- package/lib/types/utils/credentials.d.ts +13 -0
- package/lib/types/utils/credentials.d.ts.map +1 -0
- package/lib/types/utils/credentials.js +41 -0
- package/lib/types/utils/fileSuggestions.d.ts +2 -9
- package/lib/types/utils/fileSuggestions.d.ts.map +1 -1
- package/lib/types/utils/fold-long-lines.d.ts +38 -0
- package/lib/types/utils/fold-long-lines.d.ts.map +1 -0
- package/lib/types/utils/fold-long-lines.js +91 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/pi-ai.d.ts +1 -1
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.js +4 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.js +15 -2
- package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +10 -10
- package/package.json +125 -81
- package/presets/liangshen/.dsh-tui-managed.json +1 -1
- package/presets/liangshen/agent.cordis.yml +20 -4
- package/presets/liangshen/compaction-epoch.mjs +3 -1
- package/presets/liangshen/instruction-hint.mjs +2 -1
- package/presets/liangshen/session-events.mjs +8 -0
- package/lib/types/dsh-adapter/grants.d.ts.map +0 -1
- package/lib/types/dsh-adapter/host-descriptor.d.ts +0 -24
- package/lib/types/dsh-adapter/host-descriptor.d.ts.map +0 -1
- package/lib/types/dsh-adapter/host-descriptor.js +0 -169
- package/lib/types/dsh-adapter/plugin-test-utils.d.ts +0 -62
- package/lib/types/dsh-adapter/plugin-test-utils.d.ts.map +0 -1
- package/lib/types/dsh-adapter/plugin-test-utils.js +0 -61
- package/lib/types/plugin-spec/negotiate.d.ts.map +0 -1
- package/lib/types/plugin-spec/permission-scope.d.ts.map +0 -1
- package/lib/types/plugin-spec/registry.d.ts.map +0 -1
- package/lib/types/plugin-spec/schema-check.d.ts.map +0 -1
- package/lib/types/plugin-spec/tui-extension.d.ts +0 -16
- package/lib/types/plugin-spec/tui-extension.d.ts.map +0 -1
- package/lib/types/plugin-spec/tui-extension.js +0 -79
- package/lib/types/plugin-spec/types.d.ts.map +0 -1
- package/lib/types/plugin-spec/validate.d.ts.map +0 -1
- package/lib/types/test-utils.d.ts +0 -2
- package/lib/types/test-utils.d.ts.map +0 -1
- package/lib/types/test-utils.js +0 -8
- /package/lib/types/{plugin-spec → adapter/standard}/negotiate.d.ts +0 -0
- /package/lib/types/{plugin-spec → adapter/standard}/negotiate.js +0 -0
- /package/lib/types/{plugin-spec → adapter/standard}/registry.d.ts +0 -0
- /package/lib/types/{plugin-spec → adapter/standard}/schema-check.d.ts +0 -0
- /package/lib/types/{plugin-spec → adapter/standard}/types.js +0 -0
package/README.md
CHANGED
|
@@ -67,8 +67,10 @@ Sixel 使用最多 256 色的自适应调色板,透明像素与背景合成;
|
|
|
67
67
|
用户附图及助手/工具结果中的持久图片块会直接显示在会话记录中;Kitty graphics 或 Sixel 可用时显示等比缩略图,否则保留同尺寸文字回退。全屏下点击输入框 `[Image #N]` 或 transcript 缩略图在对话区域居中打开大图预览,卡片外的对话文字变暗,不遮挡输入栏(Esc/点击外部关闭),标题为 `Image #N — 格式 · 尺寸 · 体积 · 文件名`,本会话暂存的图片在卡片底行显示来源路径;Finder 复制的图片文件粘贴时直接入附件库为 `[Image #N]`;输入框里的 `[Image #N]` 是一个整体,光标整体跳过、删除整体生效,光标落在其上时整块反显并自动打开预览、离开时关闭。Vim 的 `x`/`X`/`d…` 同样整张删除,`u` 同时恢复文字与附件;撤销仅限当前草稿。
|
|
68
68
|
终端图片预览默认开启,可在 `/settings → 终端图片预览` 或配置 `terminalImages: false` 中关闭,使用 `/restart` 后生效。已保存的 `/settings` 选择优先于 Cordis 配置;若曾保存为开启,请在 `/settings` 中关闭后再 `/restart`。关闭时保留文字信息并跳过预览解码,不影响向模型发送图片;`DSH_TUI_DISABLE_TERMINAL_IMAGES=1` 始终强制关闭预览。
|
|
69
69
|
- **功能全面**:`/resume` 按工作目录分类浏览、搜索与预览历史会话(左键恢复、右键弹出操作菜单;可固定常用会话——「已固定」分组置顶显示,行内 ★ 或 `Ctrl+P` 切换,持久化到 `~/.dsh-tui`),另有 `/agentview` 会话总览(空输入 `←` 一键后台化,后台会话派发、预览、回复与停止一站式管理)、`/new`、`/compact`、`/export`、`/btw`,模型热切换(新会话默认推理强度可在 /settings → 默认推理强度 预设),原生subagent,会话fork,自动更新,输入框 `/vim` vim 编辑模式、鼠标选区编辑(拖选高亮、Shift+click 扩展、双击选词、Ctrl+C 复制选区)与全屏草稿编辑(`Ctrl+Shift+E` 或输入行 `⛶` 按钮:行号 + 当前行高亮、Enter 换行、Ctrl+Enter 发送、滚轮滚动、点击/拖选,长草稿独占整屏;`/settings` 可关);可在vs code中[以vscode插件形式启动](docs/vscode.md),已上架 VS Code Marketplace。
|
|
70
|
+
`/resume` 只将完整读取并确认没有用户消息的日志判为空会话;仅发图片、读取不完整或解析失败的会话不会被归入空会话清理。
|
|
70
71
|
- **扩展丰富**:原生浏览器交互,compter use等大量附属功能性扩展
|
|
71
72
|
- **技能归 DSH 管理**:`/skills` 展示当前 profile、用户与项目发现的技能;dsh-TUI 不预装通用技能。
|
|
73
|
+
技能目录暂时不完整时,保留最后一次完整观测的技能菜单与命令注册,并按 800/1600/3200ms 最多重试三次;耗尽后等待 DSH 的 `skills/change` 通知或显式刷新,不持续轮询。只有完整观测才能移除已消失的技能,包括完整空目录。
|
|
72
74
|
- **工作状态动画**:默认使用 `moon8`;读取旧版本地配置中的 `claude` 值时自动映射为 `moon8`,选择器只显示当前预设。
|
|
73
75
|
- **像素鲸鱼娘**:开屏随机三选一开场动画;欢迎期(开始第一个任务前)可**点击冒爱心并唤醒睡着的鲸鱼**,闲置时摆鱼鳍、拍尾巴、入睡冒 Z(`/settings → whaleIdle` 可关)。**开始第一个任务后永久定格为静态标准帧**,零持续开销。鲸鱼娘的 22 帧手绘原图与闲置行为移植自 [dsh-ui-whale](https://github.com/lhh010/dsh-ui-whale)(作者 [@lhh010](https://github.com/lhh010)),特此致谢。
|
|
74
76
|
|
|
@@ -150,8 +152,9 @@ sh install.sh
|
|
|
150
152
|
| 实验性(仍可能随 dsh-std / 准入规范演进调整) | 九 决策事件 · toast 通知(`ctx.tuiToast`,新增) |
|
|
151
153
|
| 跟随上游(稳定性由 cordis / dsh 官方机制决定) | 一 会话事件 · 二 官方 prompt 槽位 · 三 技能打包 · 四 主题 · 五 system prompt 段 · 七 profile 组合 |
|
|
152
154
|
|
|
153
|
-
另:`@deepseek-harness-tui/dsh-tui/
|
|
154
|
-
`@deepseek-harness-tui/dsh-tui/
|
|
155
|
+
另:`@deepseek-harness-tui/dsh-tui/api`(纯类型入口)为实验性公开面;
|
|
156
|
+
`@deepseek-harness-tui/dsh-tui/test-utils` 子路径与 `ctx.tuiPluginHost.grants.corrupt`
|
|
157
|
+
已随 adapter 分层重构(#705)移除,`grants` 收窄为 `HostGrantFacade`,迁移细节见该 PR。
|
|
155
158
|
|
|
156
159
|
|
|
157
160
|
|
package/bin/dsh-tui.js
CHANGED
|
@@ -183,7 +183,9 @@ const MSG = {
|
|
|
183
183
|
profileNewer: v => `profile is newer — align the launcher: npm install -g ${PACKAGE}@${v}`,
|
|
184
184
|
profileOlder: v => `profile is older — align it: dsh plugin --profile ${PROFILE} add ${PACKAGE}@${v}`,
|
|
185
185
|
keySet: 'set',
|
|
186
|
-
|
|
186
|
+
keySetEnv: 'set (environment)',
|
|
187
|
+
keySetStore: 'set (DSH credential store)',
|
|
188
|
+
keyMissing: 'not set — neither DEEPSEEK_API_KEY nor a DSH credential-store ref',
|
|
187
189
|
missing: 'missing',
|
|
188
190
|
},
|
|
189
191
|
zh: {
|
|
@@ -194,7 +196,9 @@ const MSG = {
|
|
|
194
196
|
profileNewer: v => `profile 较新——对齐启动器: npm install -g ${PACKAGE}@${v}`,
|
|
195
197
|
profileOlder: v => `profile 较旧——对齐它: dsh plugin --profile ${PROFILE} add ${PACKAGE}@${v}`,
|
|
196
198
|
keySet: '已设置',
|
|
197
|
-
|
|
199
|
+
keySetEnv: '已设置(环境变量)',
|
|
200
|
+
keySetStore: '已设置(DSH 凭据库)',
|
|
201
|
+
keyMissing: '未设置——环境变量与 DSH 凭据库中都没有 DEEPSEEK_API_KEY',
|
|
198
202
|
missing: '缺失',
|
|
199
203
|
},
|
|
200
204
|
},
|
|
@@ -271,6 +275,30 @@ if (subcommand === 'help' || subcommand === '--help' || subcommand === '-h') {
|
|
|
271
275
|
console.log(msg('helpText'))
|
|
272
276
|
process.exit(0)
|
|
273
277
|
}
|
|
278
|
+
/**
|
|
279
|
+
* Whether the DSH credential store declares a reference by this name.
|
|
280
|
+
*
|
|
281
|
+
* The launcher stays dependency-free, so the YAML is read as text: only the
|
|
282
|
+
* top-level `refs:` block maps reference names to stored secrets, and matching
|
|
283
|
+
* the bare name anywhere else (grants, payloads) would false-positive. Reports
|
|
284
|
+
* presence only — the value is never read, formatted, or printed. Mirrored by
|
|
285
|
+
* the in-TUI `/doctor` in src/utils/credentials.ts; the two must not diverge.
|
|
286
|
+
* @param home - The DSH home directory that holds `.credentials.yaml`.
|
|
287
|
+
* @param name - Reference name to look for (e.g. `DEEPSEEK_API_KEY`).
|
|
288
|
+
* @returns True when a `refs` entry with that name exists.
|
|
289
|
+
*/
|
|
290
|
+
const credentialRefDeclared = (home, name) => {
|
|
291
|
+
try {
|
|
292
|
+
const text = readFileSync(join(home, '.credentials.yaml'), 'utf8')
|
|
293
|
+
const block = /^refs:[ \t]*\r?\n((?:[ \t]+\S.*(?:\r?\n|$))*)/mu.exec(text)
|
|
294
|
+
if (block === null) return false
|
|
295
|
+
const escaped = name.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&')
|
|
296
|
+
return new RegExp(`^[ \t]+${escaped}[ \t]*:`, 'mu').test(block[1])
|
|
297
|
+
} catch {
|
|
298
|
+
return false
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
274
302
|
// ─── 子命令:doctor ──────────────────────────────────────────────────────────
|
|
275
303
|
// 启动前环境诊断——针对「TUI 起不来」的故障域(装不上、update 后版本不
|
|
276
304
|
// 同步、密钥没配),与 TUI 内 /doctor 的会话内诊断互补。零 lib 依赖、
|
|
@@ -316,10 +344,17 @@ if (subcommand === 'doctor') {
|
|
|
316
344
|
}
|
|
317
345
|
}
|
|
318
346
|
}
|
|
319
|
-
// truthiness 而非 !== undefined:空字符串的 key
|
|
320
|
-
// /doctor(channel.doctorInfo
|
|
321
|
-
|
|
322
|
-
|
|
347
|
+
// truthiness 而非 !== undefined:空字符串的 key 同样发不了请求。TUI 内
|
|
348
|
+
// /doctor(channel.doctorInfo)用同一判定——两个 doctor 不许分叉。
|
|
349
|
+
// 只看环境变量会误报:dsh 在启动时才把凭据库里的 ref 解析进会话,而
|
|
350
|
+
// doctor 跑在 dsh 之前,此时环境变量通常仍是空的。
|
|
351
|
+
const keyFromEnv = Boolean(process.env.DEEPSEEK_API_KEY)
|
|
352
|
+
const keyFromStore = credentialRefDeclared(dshHome, 'DEEPSEEK_API_KEY')
|
|
353
|
+
report(
|
|
354
|
+
keyFromEnv || keyFromStore,
|
|
355
|
+
'DEEPSEEK_API_KEY',
|
|
356
|
+
keyFromEnv ? L.keySetEnv : keyFromStore ? L.keySetStore : L.keyMissing,
|
|
357
|
+
)
|
|
323
358
|
for (const candidate of [join(homedir(), '.dsh-tui', 'cordis.yml'), join(profileDir, 'cordis.patch.yml')]) {
|
|
324
359
|
report(existsSync(candidate), 'config', `${candidate}${existsSync(candidate) ? '' : ` ${L.missing}`}`)
|
|
325
360
|
}
|
|
@@ -389,6 +424,55 @@ const bootstrapProfile = () => {
|
|
|
389
424
|
}
|
|
390
425
|
}
|
|
391
426
|
|
|
427
|
+
/** Installed version of the profile copy, or undefined when it is absent/unreadable. */
|
|
428
|
+
const profileVersion = () => {
|
|
429
|
+
try {
|
|
430
|
+
return JSON.parse(readFileSync(installedPkgPath, 'utf8')).version
|
|
431
|
+
} catch {
|
|
432
|
+
return undefined
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Guard the launcher/profile version boundary. The two copies ship in the same
|
|
438
|
+
* npm package but are installed independently (`npm i -g` vs `dsh plugin add`),
|
|
439
|
+
* so one of them being upgraded alone is a normal state. It must be caught
|
|
440
|
+
* here: dsh composes the launcher's patch surface with the profile's packages,
|
|
441
|
+
* and a skew fails deep inside the dsh loader
|
|
442
|
+
* (`ERR_PACKAGE_PATH_NOT_EXPORTED` on a subpath the older copy does not
|
|
443
|
+
* export) instead of with a message the user can act on. Runs on the
|
|
444
|
+
* delegation path as well as the in-profile path, because the delegated child
|
|
445
|
+
* is itself the profile copy and can no longer see the outer launcher.
|
|
446
|
+
* @param installedVersion - The profile copy's version.
|
|
447
|
+
*/
|
|
448
|
+
const checkProfileAlignment = installedVersion => {
|
|
449
|
+
if (installedVersion === undefined || ownVersion === undefined || installedVersion === ownVersion) return
|
|
450
|
+
const majorMinor = v => v.split('-')[0].split('.').slice(0, 2).map(Number)
|
|
451
|
+
const [installedMajor, installedMinor] = majorMinor(installedVersion)
|
|
452
|
+
const [ownMajor, ownMinor] = majorMinor(ownVersion)
|
|
453
|
+
if (installedMajor < ownMajor || (installedMajor === ownMajor && installedMinor < ownMinor)) {
|
|
454
|
+
console.error(
|
|
455
|
+
`[dsh-tui] cannot start: the profile runs v${installedVersion} but this launcher is v${ownVersion}.\n` +
|
|
456
|
+
` dsh plugin --profile ${PROFILE} add ${PACKAGE}@${ownVersion}`,
|
|
457
|
+
)
|
|
458
|
+
process.exit(1)
|
|
459
|
+
}
|
|
460
|
+
if (isVersionNewer(installedVersion, ownVersion)) {
|
|
461
|
+
console.error(
|
|
462
|
+
`[dsh-tui] note: the profile is already v${installedVersion}; this launcher copy is v${ownVersion}.\n` +
|
|
463
|
+
` npm install -g --legacy-peer-deps ${PACKAGE}@${installedVersion}\n` +
|
|
464
|
+
`(--legacy-peer-deps avoids an npm 12 peer-resolution crash, see issue #459)`,
|
|
465
|
+
)
|
|
466
|
+
} else {
|
|
467
|
+
// profile 更旧但同 minor(patch 级错位):允许启动,指引用 add 把
|
|
468
|
+
// profile 对齐到启动器版本(精确版本,@latest 可能越过对齐点)。
|
|
469
|
+
console.error(
|
|
470
|
+
`[dsh-tui] note: the profile is running v${installedVersion} but this launcher is v${ownVersion}.\n` +
|
|
471
|
+
` dsh plugin --profile ${PROFILE} add ${PACKAGE}@${ownVersion}`,
|
|
472
|
+
)
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
|
|
392
476
|
// ─── 子命令:update ──────────────────────────────────────────────────────────
|
|
393
477
|
// 顶层处理、两种角色同一条路径——不放进委托链。委托会把 update 交给
|
|
394
478
|
// profile 内的旧 bin:旧副本不认识这个词,只会当参数透传,恰好是「profile
|
|
@@ -425,6 +509,10 @@ if (subcommand === 'update') {
|
|
|
425
509
|
// 的沙箱用它直接驱动全量路径;现场排查委托链时同样可用)。
|
|
426
510
|
if (!runningInsideProfile && ownVersion !== undefined && process.env.DSH_TUI_NO_DELEGATE !== '1') {
|
|
427
511
|
if (!profileReady()) bootstrapProfile()
|
|
512
|
+
// Refuse to delegate into a profile from an older release line: the profile
|
|
513
|
+
// copy would launch `dsh --profile dsh-tui` against a composition built from
|
|
514
|
+
// this launcher's patch surface and fail inside the loader.
|
|
515
|
+
checkProfileAlignment(profileVersion())
|
|
428
516
|
// 委托 profile 内副本执行全部启动逻辑。外层代际通过
|
|
429
517
|
// DSH_TUI_LAUNCHER_VERSION 交代(/update 的对齐诊断沿用该契约)。
|
|
430
518
|
try {
|
|
@@ -466,33 +554,11 @@ if (!runningInsideProfile && ownVersion !== undefined && process.env.DSH_TUI_NO_
|
|
|
466
554
|
installedVersion = undefined
|
|
467
555
|
}
|
|
468
556
|
}
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
console.error(
|
|
475
|
-
`[dsh-tui] cannot start: the profile runs v${installedVersion} but this launcher is v${ownVersion}.\n` +
|
|
476
|
-
` dsh plugin --profile ${PROFILE} add ${PACKAGE}@${ownVersion}`,
|
|
477
|
-
)
|
|
478
|
-
process.exit(1)
|
|
479
|
-
}
|
|
480
|
-
const installedNewer = installedVersion !== undefined && ownVersion !== undefined && isVersionNewer(installedVersion, ownVersion)
|
|
481
|
-
if (installedNewer) {
|
|
482
|
-
console.error(
|
|
483
|
-
`[dsh-tui] note: the profile is already v${installedVersion}; this launcher copy is v${ownVersion}.\n` +
|
|
484
|
-
` npm install -g --legacy-peer-deps ${PACKAGE}@${installedVersion}\n` +
|
|
485
|
-
`(--legacy-peer-deps avoids an npm 12 peer-resolution crash, see issue #459)`,
|
|
486
|
-
)
|
|
487
|
-
} else {
|
|
488
|
-
// profile 更旧但同 minor(patch 级错位):允许启动,指引用 add 把
|
|
489
|
-
// profile 对齐到启动器版本(精确版本,@latest 可能越过对齐点)。
|
|
490
|
-
console.error(
|
|
491
|
-
`[dsh-tui] note: the profile is running v${installedVersion} but this launcher is v${ownVersion}.\n` +
|
|
492
|
-
` dsh plugin --profile ${PROFILE} add ${PACKAGE}@${ownVersion}`,
|
|
493
|
-
)
|
|
494
|
-
}
|
|
495
|
-
}
|
|
557
|
+
// 版本错位诊断与瘦壳委托路径共用同一实现(见 checkProfileAlignment)。
|
|
558
|
+
// `!runningInsideProfile` 只在 DSH_TUI_NO_DELEGATE=1 的调试口下成立,因此
|
|
559
|
+
// 该判定不能只留在这里——委派出去的子进程就是 profile 副本,看不到外层
|
|
560
|
+
// 启动器版本。
|
|
561
|
+
if (!runningInsideProfile) checkProfileAlignment(installedVersion)
|
|
496
562
|
|
|
497
563
|
// --resume / 工作区目标拦截(launcher 契约,见 src/sessionHistory.ts)。
|
|
498
564
|
const setResumeEnv = sessionId => {
|
package/cordis.patch.yml
CHANGED
|
@@ -12,10 +12,27 @@
|
|
|
12
12
|
# ── surface-specific values over the dsh-base layer ─────────────────────────
|
|
13
13
|
|
|
14
14
|
# The dsh-tui deployment persona; DSH_TUI_PERSONA overrides the coding-agent
|
|
15
|
-
# default (the base persona is empty).
|
|
15
|
+
# default (the base persona is empty). dsh-system-prompt renamed the slot at
|
|
16
|
+
# 0.1.3-alpha.2 (`persona` → `personaPrefix`, with an optional suffix
|
|
17
|
+
# counterpart); older cohorts only accept `persona`, so the key follows the
|
|
18
|
+
# installed package version.
|
|
16
19
|
- id: system-prompt
|
|
17
|
-
config:
|
|
18
|
-
|
|
20
|
+
config: !!js >-
|
|
21
|
+
(() => {
|
|
22
|
+
const persona = process.env.DSH_TUI_PERSONA ?? 'You are a coding agent.'
|
|
23
|
+
try {
|
|
24
|
+
const require = process.getBuiltinModule('node:module').createRequire(ctx.baseUrl)
|
|
25
|
+
const fs = process.getBuiltinModule('node:fs')
|
|
26
|
+
const manifest = require.resolve('@deepseek-ai/dsh-system-prompt/package.json')
|
|
27
|
+
const version = String(JSON.parse(fs.readFileSync(manifest, 'utf8')).version ?? '')
|
|
28
|
+
const match = /^(\d+)\.(\d+)\.(\d+)/u.exec(version)
|
|
29
|
+
const [major, minor, patch] = match === null ? [0, 0, 0] : [Number(match[1]), Number(match[2]), Number(match[3])]
|
|
30
|
+
if (major > 0 || minor > 1 || (minor === 1 && patch >= 3)) return { personaPrefix: persona }
|
|
31
|
+
return { persona }
|
|
32
|
+
} catch {
|
|
33
|
+
return { personaPrefix: persona }
|
|
34
|
+
}
|
|
35
|
+
})()
|
|
19
36
|
|
|
20
37
|
# The native DeepSeek adapter, pinned to the harness defaults: full thinking
|
|
21
38
|
# at max effort, key and base URL from the launching environment. The base
|
|
@@ -141,8 +158,11 @@
|
|
|
141
158
|
- id: tool-skill
|
|
142
159
|
disabled: true
|
|
143
160
|
|
|
144
|
-
|
|
145
|
-
|
|
161
|
+
# `tool-str-replace-editor` carries no disable row: dsh-base registered that
|
|
162
|
+
# entry only up to the 0.1.2 line, and from 0.1.3-alpha.2 it is opt-in (see the
|
|
163
|
+
# dsh-base README). A row here would target a missing id and log
|
|
164
|
+
# `patch: entry "tool-str-replace-editor" not found` on every 0.1.3+ boot.
|
|
165
|
+
# Presets that expose the tool re-add the entry themselves.
|
|
146
166
|
|
|
147
167
|
# Delegation tools (subagent spawn/fork, controls, workflows) are preset rows
|
|
148
168
|
# now; the preset's `delegation` group re-adds them with package defaults, so
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Channel actions module (P4 channel split).
|
|
3
|
+
*
|
|
4
|
+
* This is the action half of the live Channel: a thin adapter over the
|
|
5
|
+
* public Channel mutation methods. The Kernel HostFacade wraps these methods
|
|
6
|
+
* with the unified shadow-policy enforcement before any caller can invoke
|
|
7
|
+
* them, so this module never performs its own shadow check.
|
|
8
|
+
*
|
|
9
|
+
* The internal `CHANNEL_SPLIT_TOKEN` is required to prevent arbitrary TUI
|
|
10
|
+
* code from importing this split builder directly and bypassing the
|
|
11
|
+
* HostFacade shadow gate.
|
|
12
|
+
*/
|
|
13
|
+
import type { Channel } from '../../dsh-adapter/channel.js';
|
|
14
|
+
import type { HostChannelActionsPort } from '../ports/channel.js';
|
|
15
|
+
/** Build the host-internal action surface over one live Channel. */
|
|
16
|
+
export declare function createChannelActions(channel: Channel, token: symbol): HostChannelActionsPort;
|
|
17
|
+
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAGjE,oEAAoE;AACpE,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,GACZ,sBAAsB,CAaxB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Channel actions module (P4 channel split).
|
|
3
|
+
*
|
|
4
|
+
* This is the action half of the live Channel: a thin adapter over the
|
|
5
|
+
* public Channel mutation methods. The Kernel HostFacade wraps these methods
|
|
6
|
+
* with the unified shadow-policy enforcement before any caller can invoke
|
|
7
|
+
* them, so this module never performs its own shadow check.
|
|
8
|
+
*
|
|
9
|
+
* The internal `CHANNEL_SPLIT_TOKEN` is required to prevent arbitrary TUI
|
|
10
|
+
* code from importing this split builder directly and bypassing the
|
|
11
|
+
* HostFacade shadow gate.
|
|
12
|
+
*/
|
|
13
|
+
import { CHANNEL_SPLIT_TOKEN } from './internal-token.js';
|
|
14
|
+
/** Build the host-internal action surface over one live Channel. */
|
|
15
|
+
export function createChannelActions(channel, token) {
|
|
16
|
+
if (token !== CHANNEL_SPLIT_TOKEN) {
|
|
17
|
+
throw new Error('dsh-tui: Channel split actions require the internal host token');
|
|
18
|
+
}
|
|
19
|
+
return Object.freeze({
|
|
20
|
+
submit: text => channel.submit(text),
|
|
21
|
+
steer: text => channel.steer(text),
|
|
22
|
+
cancel: () => channel.cancel(),
|
|
23
|
+
interruptAndDeliver: texts => channel.interruptAndDeliver(texts),
|
|
24
|
+
clear: () => channel.clear(),
|
|
25
|
+
loadOlder: () => channel.loadOlder(),
|
|
26
|
+
notify: (text, options) => channel.notify(text, options),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI Channel Consumer (P5).
|
|
3
|
+
*
|
|
4
|
+
* A Channel Consumer owns the visible terminal side of
|
|
5
|
+
* `tui.dsh/v1alpha1#Channel`. This module is the conformance-facing client:
|
|
6
|
+
* it opens a provider, subscribes to snapshots, enforces monotonic versions
|
|
7
|
+
* and full-snapshot continuity, invokes JSON-value methods, and closes the
|
|
8
|
+
* channel. It never interprets provider business methods itself.
|
|
9
|
+
*
|
|
10
|
+
* Continuity violations are fail-closed by default: the consumer throws
|
|
11
|
+
* instead of silently retaining a discontinuous snapshot.
|
|
12
|
+
*/
|
|
13
|
+
import type { TuiChannelInvokeOutput, TuiChannelSnapshot } from '../spec/index.js';
|
|
14
|
+
import type { ChannelProvider, ChannelProviderOpenInput } from './provider.js';
|
|
15
|
+
export interface ChannelConsumerOptions {
|
|
16
|
+
/** When true (default), a continuity violation throws immediately and the
|
|
17
|
+
* discontinuous snapshot is not retained. */
|
|
18
|
+
readonly failClosed?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface ChannelConsumer {
|
|
21
|
+
open(input: ChannelProviderOpenInput): Promise<TuiChannelSnapshot>;
|
|
22
|
+
subscribe(channelId: string, afterVersion: number, listener: (snapshot: TuiChannelSnapshot) => void): Promise<() => void>;
|
|
23
|
+
invoke(channelId: string, method: string, args: readonly unknown[]): Promise<TuiChannelInvokeOutput>;
|
|
24
|
+
close(channelId: string): Promise<{
|
|
25
|
+
readonly closed: true;
|
|
26
|
+
}>;
|
|
27
|
+
lastSnapshot(): TuiChannelSnapshot | undefined;
|
|
28
|
+
/** Version continuity failures observed while consuming (gap/backwards/
|
|
29
|
+
* wire-revision change). A conformant replay must keep this empty. */
|
|
30
|
+
continuityErrors(): readonly string[];
|
|
31
|
+
}
|
|
32
|
+
/** Wrap a Channel Provider with the consumer-side protocol envelope checks. */
|
|
33
|
+
export declare function createChannelConsumer(provider: ChannelProvider, options?: ChannelConsumerOptions): ChannelConsumer;
|
|
34
|
+
//# sourceMappingURL=consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/consumer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAE9E,MAAM,WAAW,sBAAsB;IACrC;iDAC6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAClE,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,GAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACpG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;IAC5D,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAA;IAC9C;0EACsE;IACtE,gBAAgB,IAAI,SAAS,MAAM,EAAE,CAAA;CACtC;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,sBAA2B,GACnC,eAAe,CAqEjB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI Channel Consumer (P5).
|
|
3
|
+
*
|
|
4
|
+
* A Channel Consumer owns the visible terminal side of
|
|
5
|
+
* `tui.dsh/v1alpha1#Channel`. This module is the conformance-facing client:
|
|
6
|
+
* it opens a provider, subscribes to snapshots, enforces monotonic versions
|
|
7
|
+
* and full-snapshot continuity, invokes JSON-value methods, and closes the
|
|
8
|
+
* channel. It never interprets provider business methods itself.
|
|
9
|
+
*
|
|
10
|
+
* Continuity violations are fail-closed by default: the consumer throws
|
|
11
|
+
* instead of silently retaining a discontinuous snapshot.
|
|
12
|
+
*/
|
|
13
|
+
import { validateTuiChannelOutput, validateTuiChannelSnapshot } from '../spec/index.js';
|
|
14
|
+
/** Wrap a Channel Provider with the consumer-side protocol envelope checks. */
|
|
15
|
+
export function createChannelConsumer(provider, options = {}) {
|
|
16
|
+
const failClosed = options.failClosed !== false;
|
|
17
|
+
let last;
|
|
18
|
+
const continuityErrors = [];
|
|
19
|
+
function accept(snapshotValue, allowEqual = false) {
|
|
20
|
+
const snapshot = validateTuiChannelSnapshot(snapshotValue);
|
|
21
|
+
const errorCountBefore = continuityErrors.length;
|
|
22
|
+
if (last !== undefined) {
|
|
23
|
+
if (snapshot.channelId !== last.channelId) {
|
|
24
|
+
continuityErrors.push(`channel id changed: ${last.channelId} -> ${snapshot.channelId}`);
|
|
25
|
+
}
|
|
26
|
+
else if (snapshot.wireRevision !== last.wireRevision) {
|
|
27
|
+
continuityErrors.push(`wire revision changed: ${last.wireRevision} -> ${snapshot.wireRevision}`);
|
|
28
|
+
}
|
|
29
|
+
else if (snapshot.version < last.version) {
|
|
30
|
+
continuityErrors.push(`version went backwards: ${last.version} -> ${snapshot.version}`);
|
|
31
|
+
}
|
|
32
|
+
else if (snapshot.version === last.version && !allowEqual) {
|
|
33
|
+
continuityErrors.push(`version did not advance: ${last.version} -> ${snapshot.version}`);
|
|
34
|
+
}
|
|
35
|
+
else if (snapshot.version > last.version && snapshot.version !== last.version + 1) {
|
|
36
|
+
continuityErrors.push(`version gap: expected ${last.version + 1}, got ${snapshot.version}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const hasNewError = continuityErrors.length > errorCountBefore;
|
|
40
|
+
if (hasNewError && failClosed) {
|
|
41
|
+
throw new Error(`dsh-tui: Channel continuity violation: ${continuityErrors[continuityErrors.length - 1]}`);
|
|
42
|
+
}
|
|
43
|
+
// When not fail-closed, keep advancing `last` to the snapshot that was
|
|
44
|
+
// actually observed so later continuity messages describe the real
|
|
45
|
+
// sequence rather than a stale pre-violation baseline.
|
|
46
|
+
if (last === undefined || snapshot.version >= last.version) {
|
|
47
|
+
last = snapshot;
|
|
48
|
+
}
|
|
49
|
+
return snapshot;
|
|
50
|
+
}
|
|
51
|
+
return Object.freeze({
|
|
52
|
+
async open(input) {
|
|
53
|
+
const snapshot = await provider.open(input);
|
|
54
|
+
last = undefined;
|
|
55
|
+
continuityErrors.length = 0;
|
|
56
|
+
return accept(snapshot);
|
|
57
|
+
},
|
|
58
|
+
async subscribe(channelId, afterVersion, listener) {
|
|
59
|
+
let firstReplay = true;
|
|
60
|
+
return provider.subscribe(channelId, afterVersion, value => {
|
|
61
|
+
// Provider semantics are "not earlier than afterVersion": an equal
|
|
62
|
+
// version echo after `open()` is the first snapshot of a subscription
|
|
63
|
+
// and must be accepted, while later equal-version duplicates still
|
|
64
|
+
// violate continuity.
|
|
65
|
+
listener(accept(value, firstReplay));
|
|
66
|
+
firstReplay = false;
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
async invoke(channelId, method, args) {
|
|
70
|
+
const output = await provider.invoke(channelId, method, args);
|
|
71
|
+
const validated = validateTuiChannelOutput('invoke', output);
|
|
72
|
+
if (validated.snapshot !== undefined)
|
|
73
|
+
accept(validated.snapshot, true);
|
|
74
|
+
return validated;
|
|
75
|
+
},
|
|
76
|
+
async close(channelId) {
|
|
77
|
+
const output = await provider.close(channelId);
|
|
78
|
+
return validateTuiChannelOutput('close', output);
|
|
79
|
+
},
|
|
80
|
+
lastSnapshot() {
|
|
81
|
+
return last;
|
|
82
|
+
},
|
|
83
|
+
continuityErrors() {
|
|
84
|
+
return Object.freeze([...continuityErrors]);
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Channel Host-Port effect-capability map and derived feature list.
|
|
3
|
+
*
|
|
4
|
+
* This is the single source that `HostFacade` shadow policy, the Channel
|
|
5
|
+
* upstream driver and the Kernel channel slice all consume. Keeping it here
|
|
6
|
+
* prevents the slice declaration / driver feature list from drifting from the
|
|
7
|
+
* methods actually exposed by `HostChannelPort`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CHANNEL_PORT_METHOD_CAPABILITIES: Readonly<Record<string, Readonly<Record<string, string>>>>;
|
|
10
|
+
export declare const CHANNEL_FEATURES: readonly string[];
|
|
11
|
+
export declare const CHANNEL_STANDARD_DECLARATIONS: readonly string[];
|
|
12
|
+
//# sourceMappingURL=features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/features.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CA6BtG,CAAA;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAK7C,CAAA;AAED,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAAqB,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Channel Host-Port effect-capability map and derived feature list.
|
|
3
|
+
*
|
|
4
|
+
* This is the single source that `HostFacade` shadow policy, the Channel
|
|
5
|
+
* upstream driver and the Kernel channel slice all consume. Keeping it here
|
|
6
|
+
* prevents the slice declaration / driver feature list from drifting from the
|
|
7
|
+
* methods actually exposed by `HostChannelPort`.
|
|
8
|
+
*/
|
|
9
|
+
export const CHANNEL_PORT_METHOD_CAPABILITIES = Object.freeze({
|
|
10
|
+
projection: Object.freeze({
|
|
11
|
+
ui: 'host.channel.projection.ui',
|
|
12
|
+
snapshot: 'host.channel.projection.snapshot',
|
|
13
|
+
subscribe: 'host.channel.projection.subscribe',
|
|
14
|
+
}),
|
|
15
|
+
actions: Object.freeze({
|
|
16
|
+
submit: 'host.channel.actions.submit',
|
|
17
|
+
steer: 'host.channel.actions.steer',
|
|
18
|
+
cancel: 'host.channel.actions.cancel',
|
|
19
|
+
interruptAndDeliver: 'host.channel.actions.interruptAndDeliver',
|
|
20
|
+
clear: 'host.channel.actions.clear',
|
|
21
|
+
loadOlder: 'host.channel.actions.loadOlder',
|
|
22
|
+
notify: 'host.channel.actions.notify',
|
|
23
|
+
}),
|
|
24
|
+
state: Object.freeze({
|
|
25
|
+
snapshot: 'host.channel.state.snapshot',
|
|
26
|
+
}),
|
|
27
|
+
plugins: Object.freeze({
|
|
28
|
+
runExternalCommand: 'host.channel.plugins.run-external-command',
|
|
29
|
+
openPluginScene: 'host.channel.plugins.open-scene',
|
|
30
|
+
closePluginScene: 'host.channel.plugins.close-scene',
|
|
31
|
+
settingsSections: 'host.channel.plugins.settings-sections',
|
|
32
|
+
subscribeSettingsSections: 'host.channel.plugins.subscribe-settings-sections',
|
|
33
|
+
}),
|
|
34
|
+
transcript: Object.freeze({
|
|
35
|
+
rows: 'host.channel.transcript.rows',
|
|
36
|
+
traceEvents: 'host.channel.transcript.trace-events',
|
|
37
|
+
}),
|
|
38
|
+
});
|
|
39
|
+
export const CHANNEL_FEATURES = Object.freeze([...new Set(Object.values(CHANNEL_PORT_METHOD_CAPABILITIES)
|
|
40
|
+
.flatMap(subPort => Object.values(subPort)))]);
|
|
41
|
+
export const CHANNEL_STANDARD_DECLARATIONS = CHANNEL_FEATURES;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-internal Channel registry for the adapter Kernel.
|
|
3
|
+
*
|
|
4
|
+
* The live `Channel` is created by the TUI plugin row after the plugin-host
|
|
5
|
+
* Kernel may already have been constructed/mounted. Rather than trying to
|
|
6
|
+
* reorder service mounting, the TUI stores the live Channel under its
|
|
7
|
+
* composition root in a WeakMap; the Channel driver resolves it lazily when
|
|
8
|
+
* a Port method is actually called. This keeps the Kernel's composition
|
|
9
|
+
* independent of the TUI render lifecycle.
|
|
10
|
+
*
|
|
11
|
+
* Every entry is normalized to the Cordis composition root before it is used
|
|
12
|
+
* as a WeakMap key: a child/plugin context passed by a caller must never
|
|
13
|
+
* create a registry entry that the Kernel (which queries through the root)
|
|
14
|
+
* cannot resolve.
|
|
15
|
+
*/
|
|
16
|
+
export type TuiChannelRegistration = Readonly<{
|
|
17
|
+
channel: unknown;
|
|
18
|
+
token: symbol;
|
|
19
|
+
}>;
|
|
20
|
+
/** Register the live Channel for a composition root.
|
|
21
|
+
* @returns A token-safe disposer. Registrations have identity independent of
|
|
22
|
+
* their Channel object: A → B → A and repeated registration of the same
|
|
23
|
+
* Channel cannot let an older disposer erase or revive the current entry.
|
|
24
|
+
*/
|
|
25
|
+
export declare function registerTuiChannel(ctx: unknown, channel: unknown): () => boolean;
|
|
26
|
+
/** Resolve the live Channel for a composition root. */
|
|
27
|
+
export declare function getRegisteredTuiChannel(ctx: unknown): unknown | undefined;
|
|
28
|
+
/** Return the current registration identity, not only its Channel object. */
|
|
29
|
+
export declare function getTuiChannelRegistration(ctx: unknown): TuiChannelRegistration | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Subscribe to live-Channel registration for one composition root.
|
|
32
|
+
*
|
|
33
|
+
* The Kernel uses this to re-run a refresh/mount when the TUI plugin creates
|
|
34
|
+
* and registers its Channel after the plugin-host row has already started.
|
|
35
|
+
* Returns a disposer; listeners are keyed by normalized composition root.
|
|
36
|
+
*/
|
|
37
|
+
export declare function onTuiChannelRegistered(ctx: unknown, listener: (channel: unknown) => void): () => void;
|
|
38
|
+
/** Subscribe to registration identities for consumers that own capabilities. */
|
|
39
|
+
export declare function onTuiChannelRegistration(ctx: unknown, listener: (registration: TuiChannelRegistration | undefined) => void): () => void;
|
|
40
|
+
//# sourceMappingURL=host-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-registry.d.ts","sourceRoot":"","sources":["../../../../src/adapter/channel/host-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAgBlF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,OAAO,CAehF;AAyBD,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAEzE;AAED,6EAA6E;AAC7E,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAG1F;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACnC,MAAM,IAAI,CAUZ;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,CAAC,YAAY,EAAE,sBAAsB,GAAG,SAAS,KAAK,IAAI,GACnE,MAAM,IAAI,CAUZ"}
|