@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
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { ReasoningEffortId } from '@deepseek-ai/dsh-llm';
|
|
2
|
+
import { readEffortPref, resolveEffortDefault, writeEffortPref } from '../../effortPrefs.js';
|
|
3
|
+
import { snapshotLiveSessionEvents } from '../compat/liveSession.js';
|
|
4
|
+
import { getLang, t, tOr } from '../../i18n.js';
|
|
5
|
+
import { migratePresetPref, writePresetPref } from '../../presetPrefs.js';
|
|
6
|
+
import { resolveCompatiblePreset, rosterOf } from '../preset-resolution.js';
|
|
7
|
+
/**
|
|
8
|
+
* Route metadata, effort preference and preset/model catalog actions.
|
|
9
|
+
* This owns the async catalog caches and their generation fences; callers only
|
|
10
|
+
* compose its surface into ChannelState after the state has been constructed.
|
|
11
|
+
*/
|
|
12
|
+
export function createModelActions(ctx, state, deps) {
|
|
13
|
+
const { owner, selection, notify } = deps;
|
|
14
|
+
const llmRuntime = ctx.get('llm');
|
|
15
|
+
let preferredEffort = deps.initialEffort ?? readEffortPref();
|
|
16
|
+
// State construction cannot call this factory yet; seed the visible value
|
|
17
|
+
// before the root starts binding or exposes the completed ChannelState.
|
|
18
|
+
state.reasoningEffort = preferredEffort;
|
|
19
|
+
let effortLevelsGeneration = 0;
|
|
20
|
+
let effortOperation = 0;
|
|
21
|
+
let presetOperation = 0;
|
|
22
|
+
const effortWarm = { tried: false };
|
|
23
|
+
const modelNodeCache = { nodes: undefined, load: undefined, generation: 0 };
|
|
24
|
+
const presetOptionCache = { lang: undefined, list: undefined, load: undefined };
|
|
25
|
+
const captureEffort = () => ({
|
|
26
|
+
binding: deps.binding.capture(), provider: state.provider, model: state.model, operation: ++effortOperation,
|
|
27
|
+
});
|
|
28
|
+
const effortCurrent = (capture) => owner.current() && deps.binding.isCurrent(capture.binding) &&
|
|
29
|
+
state.provider === capture.provider && state.model === capture.model && effortOperation === capture.operation;
|
|
30
|
+
const resolveEfforts = async (capture) => {
|
|
31
|
+
if (llmRuntime === undefined || typeof llmRuntime.resolveModelInfo !== 'function')
|
|
32
|
+
return 'unavailable';
|
|
33
|
+
try {
|
|
34
|
+
const info = await llmRuntime.resolveModelInfo(capture.provider, capture.model);
|
|
35
|
+
if (!effortCurrent(capture))
|
|
36
|
+
return 'stale';
|
|
37
|
+
const efforts = info.reasoning?.efforts ?? [];
|
|
38
|
+
state.effortLevels = efforts.map(level => level.id);
|
|
39
|
+
return { efforts, defaultEffort: info.reasoning?.defaultEffort };
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
if (!effortCurrent(capture))
|
|
43
|
+
return 'stale';
|
|
44
|
+
notify(t('effort-read-failed', { error: error instanceof Error ? error.message : String(error) }), { color: 'error', timeoutMs: 8000 });
|
|
45
|
+
return 'error';
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const applyPreferredEffort = async () => {
|
|
49
|
+
if (llmRuntime === undefined || typeof llmRuntime.resolveModelInfo !== 'function')
|
|
50
|
+
return;
|
|
51
|
+
const capture = captureEffort();
|
|
52
|
+
const resolved = await resolveEfforts(capture);
|
|
53
|
+
if (resolved === 'unavailable' || resolved === 'error' || resolved === 'stale' || !effortCurrent(capture))
|
|
54
|
+
return;
|
|
55
|
+
// This same binding-time lookup is the route's initial tier refresh even
|
|
56
|
+
// without a stored preference. Do not make a separate competing refresh
|
|
57
|
+
// operation that could invalidate the selected preference completion.
|
|
58
|
+
if (preferredEffort === undefined || !resolved.efforts.some(effort => effort.id === preferredEffort))
|
|
59
|
+
return;
|
|
60
|
+
selection.current = { provider: capture.provider, model: capture.model, reasoningEffort: ReasoningEffortId(preferredEffort) };
|
|
61
|
+
};
|
|
62
|
+
const refreshEffortLevels = () => {
|
|
63
|
+
if (llmRuntime === undefined || typeof llmRuntime.resolveModelInfo !== 'function')
|
|
64
|
+
return;
|
|
65
|
+
const capture = captureEffort();
|
|
66
|
+
const generation = ++effortLevelsGeneration;
|
|
67
|
+
void llmRuntime.resolveModelInfo(capture.provider, capture.model).then(info => {
|
|
68
|
+
if (!effortCurrent(capture) || generation !== effortLevelsGeneration)
|
|
69
|
+
return;
|
|
70
|
+
state.effortLevels = (info.reasoning?.efforts ?? []).map(level => level.id);
|
|
71
|
+
state.emit();
|
|
72
|
+
}).catch(() => undefined);
|
|
73
|
+
};
|
|
74
|
+
const applyEffort = (effort, capture) => {
|
|
75
|
+
if (!effortCurrent(capture))
|
|
76
|
+
return;
|
|
77
|
+
selection.current = { provider: capture.provider, model: capture.model, reasoningEffort: ReasoningEffortId(effort.id) };
|
|
78
|
+
preferredEffort = effort.id;
|
|
79
|
+
state.reasoningEffort = effort.id;
|
|
80
|
+
writeEffortPref(effort.id);
|
|
81
|
+
notify(t('effort-switched', { name: effort.name }));
|
|
82
|
+
state.emit();
|
|
83
|
+
};
|
|
84
|
+
const listEfforts = async () => {
|
|
85
|
+
const capture = captureEffort();
|
|
86
|
+
const resolved = await resolveEfforts(capture);
|
|
87
|
+
if (resolved === 'stale')
|
|
88
|
+
return { efforts: [], defaultEffort: undefined };
|
|
89
|
+
if (resolved === 'unavailable') {
|
|
90
|
+
notify(t('effort-unavailable'), { color: 'error' });
|
|
91
|
+
return { efforts: [], defaultEffort: undefined };
|
|
92
|
+
}
|
|
93
|
+
if (resolved === 'error')
|
|
94
|
+
return { efforts: [], defaultEffort: undefined };
|
|
95
|
+
if (!effortCurrent(capture))
|
|
96
|
+
return { efforts: [], defaultEffort: undefined };
|
|
97
|
+
if (resolved.efforts.length === 0)
|
|
98
|
+
notify(t('effort-unsupported'), { color: 'warning' });
|
|
99
|
+
else if (resolved.efforts.length === 1)
|
|
100
|
+
notify(t('effort-single-tier', { name: resolved.efforts[0].name }), { color: 'warning' });
|
|
101
|
+
return resolved;
|
|
102
|
+
};
|
|
103
|
+
const setEffort = async (id) => {
|
|
104
|
+
const capture = captureEffort();
|
|
105
|
+
const resolved = await resolveEfforts(capture);
|
|
106
|
+
if (resolved === 'stale')
|
|
107
|
+
return false;
|
|
108
|
+
if (resolved === 'unavailable') {
|
|
109
|
+
notify(t('effort-unavailable'), { color: 'error' });
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
if (resolved === 'error')
|
|
113
|
+
return false;
|
|
114
|
+
if (!effortCurrent(capture))
|
|
115
|
+
return false;
|
|
116
|
+
if (resolved.efforts.length === 0) {
|
|
117
|
+
notify(t('effort-unsupported'), { color: 'warning' });
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
const found = resolved.efforts.find(effort => effort.id === id);
|
|
121
|
+
if (found === undefined) {
|
|
122
|
+
notify(t('effort-invalid', { id, ids: resolved.efforts.map(effort => effort.id).join(', ') }), { color: 'warning' });
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
applyEffort(found, capture);
|
|
126
|
+
return effortCurrent(capture);
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Re-seat the future-sessions default reasoning effort. `id` is the settings
|
|
130
|
+
* user layer (the settings user layer outranks the cordis.yml `effort` pin);
|
|
131
|
+
* an absent level re-derives the boot chain (cordis `effort` → the persisted
|
|
132
|
+
* /effort choice). Also re-pins the live agent when its route offers the
|
|
133
|
+
* level, so the change lands on the next request. No-op when unchanged.
|
|
134
|
+
*/
|
|
135
|
+
const setDefaultEffort = (id) => {
|
|
136
|
+
const resolved = resolveEffortDefault(id, deps.initialEffort, readEffortPref());
|
|
137
|
+
if (resolved === preferredEffort)
|
|
138
|
+
return;
|
|
139
|
+
preferredEffort = resolved;
|
|
140
|
+
void applyPreferredEffort();
|
|
141
|
+
};
|
|
142
|
+
const warmEffortLevels = () => {
|
|
143
|
+
if (state.effortLevels !== undefined || effortWarm.tried)
|
|
144
|
+
return;
|
|
145
|
+
effortWarm.tried = true;
|
|
146
|
+
const capture = captureEffort();
|
|
147
|
+
void resolveEfforts(capture).then(result => {
|
|
148
|
+
if (result !== 'unavailable' && result !== 'error' && result !== 'stale' && effortCurrent(capture)) {
|
|
149
|
+
effortWarm.tried = false;
|
|
150
|
+
state.emit();
|
|
151
|
+
}
|
|
152
|
+
else if (effortOperation === capture.operation) {
|
|
153
|
+
// A stale route/binding has its own next bind warm; a transient
|
|
154
|
+
// unavailable/error may be retried on a later explicit completion.
|
|
155
|
+
effortWarm.tried = false;
|
|
156
|
+
}
|
|
157
|
+
}).catch(() => undefined);
|
|
158
|
+
};
|
|
159
|
+
const listModels = () => {
|
|
160
|
+
if (llmRuntime === undefined)
|
|
161
|
+
return Promise.resolve([]);
|
|
162
|
+
return Promise.all(llmRuntime.listProviders().map(provider => llmRuntime.listModels(provider.id).catch(() => []))).then(lists => lists.flat());
|
|
163
|
+
};
|
|
164
|
+
const listProviders = () => Promise.resolve(llmRuntime === undefined ? [] : llmRuntime.listProviders().map(info => ({ ...info })));
|
|
165
|
+
const dropModelNodeCache = () => { modelNodeCache.generation += 1; modelNodeCache.nodes = undefined; modelNodeCache.load = undefined; };
|
|
166
|
+
const warmModelNodes = () => {
|
|
167
|
+
if (modelNodeCache.load !== undefined)
|
|
168
|
+
return;
|
|
169
|
+
const generation = modelNodeCache.generation;
|
|
170
|
+
modelNodeCache.load = listModels().then(list => {
|
|
171
|
+
if (!owner.current() || generation !== modelNodeCache.generation)
|
|
172
|
+
return;
|
|
173
|
+
modelNodeCache.nodes = list.map(model => ({ name: `${model.provider}/${model.id}`, description: model.name, ...(state.provider === model.provider && state.model === model.id ? { tag: 'current' } : {}) }));
|
|
174
|
+
state.emit();
|
|
175
|
+
}).catch(() => { if (owner.current() && generation === modelNodeCache.generation)
|
|
176
|
+
modelNodeCache.nodes = []; });
|
|
177
|
+
};
|
|
178
|
+
const warmPresetOptions = () => {
|
|
179
|
+
const lang = getLang();
|
|
180
|
+
if (presetOptionCache.lang !== undefined && presetOptionCache.lang !== lang) {
|
|
181
|
+
presetOptionCache.list = undefined;
|
|
182
|
+
presetOptionCache.load = undefined;
|
|
183
|
+
}
|
|
184
|
+
if (presetOptionCache.load !== undefined)
|
|
185
|
+
return;
|
|
186
|
+
presetOptionCache.lang = lang;
|
|
187
|
+
presetOptionCache.load = listPresets().then(list => { presetOptionCache.list = list; state.emit(); }).catch(() => { presetOptionCache.list = []; });
|
|
188
|
+
};
|
|
189
|
+
const listPresets = async () => {
|
|
190
|
+
const presets = rosterOf(ctx);
|
|
191
|
+
if (presets === undefined)
|
|
192
|
+
return [];
|
|
193
|
+
const localized = getLang() === 'en';
|
|
194
|
+
try {
|
|
195
|
+
return (await presets.list()).map(preset => ({ id: preset.id, ...(preset.name === undefined ? {} : { name: localized ? tOr(`preset-name-${preset.id}`, preset.name) : preset.name }), ...(preset.description === undefined ? {} : { description: localized ? tOr(`preset-desc-${preset.id}`, preset.description) : preset.description }), ...(preset.broken === undefined ? {} : { broken: preset.broken }), isDefault: preset.id === presets.defaultId }));
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return [];
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
const switchPreset = async (presetId) => {
|
|
202
|
+
const presets = rosterOf(ctx);
|
|
203
|
+
if (presets === undefined) {
|
|
204
|
+
notify(t('preset-unavailable'), { color: 'error' });
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
if (state.working) {
|
|
208
|
+
notify(t('preset-agent-running'), { color: 'warning' });
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
const capture = deps.binding.capture();
|
|
212
|
+
const targetAgent = deps.agent();
|
|
213
|
+
const targetSession = targetAgent.session;
|
|
214
|
+
const operation = ++presetOperation;
|
|
215
|
+
const current = () => owner.current() && deps.binding.isCurrent(capture) && deps.agent() === targetAgent && targetAgent.session === targetSession && operation === presetOperation;
|
|
216
|
+
let target;
|
|
217
|
+
try {
|
|
218
|
+
target = await resolveCompatiblePreset(presets, presetId);
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
if (current())
|
|
222
|
+
notify(t('preset-not-found', { id: presetId, err: error instanceof Error ? error.message : String(error) }), { color: 'error', timeoutMs: 8000 });
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
if (!current())
|
|
226
|
+
return false;
|
|
227
|
+
if (target.broken !== undefined) {
|
|
228
|
+
notify(t('preset-load-failed', { id: target.id, broken: target.broken }), { color: 'error', timeoutMs: 8000 });
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
if (target.id === state.agentPreset) {
|
|
232
|
+
if (!migratePresetPref(presetId, target.id)) {
|
|
233
|
+
notify(t('preset-switched-pref-failed', { id: target.id }), { color: 'warning' });
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
236
|
+
notify(t('preset-already-current', { id: target.id }), { color: 'success' });
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
if (snapshotLiveSessionEvents(targetSession).some(event => event.type === 'turn/start')) {
|
|
240
|
+
if (!current())
|
|
241
|
+
return false;
|
|
242
|
+
if (!writePresetPref(target.id)) {
|
|
243
|
+
notify(t('preset-pref-write-failed'), { color: 'error' });
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
notify(t('preset-locked-saved-default', { current: state.agentPreset ?? 'host', id: target.id }), { color: 'warning', timeoutMs: 8000 });
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
let preset;
|
|
250
|
+
try {
|
|
251
|
+
preset = await presets.recompose(targetAgent.ctx, target.id);
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
if (current())
|
|
255
|
+
notify(t('preset-switch-failed', { err: error instanceof Error ? error.message : String(error) }), { color: 'error', timeoutMs: 8000 });
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
if (!current())
|
|
259
|
+
return false;
|
|
260
|
+
targetSession.append('agent-preset/selected', { agentPreset: preset.id });
|
|
261
|
+
if (!current())
|
|
262
|
+
return false;
|
|
263
|
+
state.agentPreset = preset.id;
|
|
264
|
+
state.emit();
|
|
265
|
+
if (!current())
|
|
266
|
+
return false;
|
|
267
|
+
if (!writePresetPref(target.id)) {
|
|
268
|
+
notify(t('preset-switched-pref-failed', { id: target.id }), { color: 'warning' });
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
notify(t('preset-switched-saved', { id: target.id }), { color: 'success' });
|
|
272
|
+
return true;
|
|
273
|
+
};
|
|
274
|
+
return { selection, applyPreferredEffort, refreshEffortLevels, listEfforts, setEffort, setDefaultEffort, warmEffortLevels, listModels, listProviders, dropModelNodeCache, warmModelNodes, modelNodes: () => modelNodeCache.nodes ?? [], warmPresetOptions, presetOptions: () => presetOptionCache.list ?? [], listPresets, switchPreset };
|
|
275
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import { type SessionEvent } from '@deepseek-ai/dsh-session';
|
|
3
|
+
import type { createChannelBinding } from './binding.js';
|
|
4
|
+
import type { ChannelOwner } from './owner.js';
|
|
5
|
+
import { resetSessionProjection } from './session-reset.js';
|
|
6
|
+
import type { ChannelState } from './types.js';
|
|
7
|
+
type Binding = ReturnType<typeof createChannelBinding>;
|
|
8
|
+
type SwitchState = Parameters<typeof resetSessionProjection>[0] & Pick<ChannelState, 'cwd' | 'working' | 'status' | 'agentId' | 'agentPreset' | 'provider' | 'model' | 'contextWindow' | 'effortLevels' | 'reasoningEffort' | 'emit'>;
|
|
9
|
+
/** Model-route adoption transaction. It settles compaction before its fork snapshot and owns the post-commit reset. */
|
|
10
|
+
export declare function createModelSwitchAction(ctx: Context, state: SwitchState, deps: {
|
|
11
|
+
owner: Pick<ChannelOwner, 'current'>;
|
|
12
|
+
binding: Pick<Binding, 'agent' | 'capture' | 'prepare' | 'isCurrent' | 'abandon' | 'adopt'>;
|
|
13
|
+
rowIds: {
|
|
14
|
+
value: number;
|
|
15
|
+
};
|
|
16
|
+
settleCompaction(): Promise<void>;
|
|
17
|
+
resetProjector(): void;
|
|
18
|
+
resetSubagents(): void;
|
|
19
|
+
resetJobs(): void;
|
|
20
|
+
replay(events: readonly SessionEvent[]): void;
|
|
21
|
+
settleReplay(): void;
|
|
22
|
+
bindAgent(): void;
|
|
23
|
+
refreshCommands(): void;
|
|
24
|
+
refreshLoadedContext(): Promise<void>;
|
|
25
|
+
refreshSkillCommands(): Promise<void>;
|
|
26
|
+
clearStagedImages(): void;
|
|
27
|
+
dropModelCompletion(): void;
|
|
28
|
+
onModelSwitch(model: string): void;
|
|
29
|
+
notify: ChannelState['notify'];
|
|
30
|
+
}): (provider: string, model: string) => Promise<boolean>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=model-switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-switch.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/model-switch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAOvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACtD,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EACjF,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,eAAe,GAAG,cAAc,GAAG,iBAAiB,GAAG,MAAM,CAAC,CAAA;AAElJ,uHAAuH;AACvH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE;IACJ,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACpC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,CAAA;IAC3F,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACzB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,cAAc,IAAI,IAAI,CAAA;IACtB,cAAc,IAAI,IAAI,CAAA;IACtB,SAAS,IAAI,IAAI,CAAA;IACjB,MAAM,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAAA;IAC7C,YAAY,IAAI,IAAI,CAAA;IACpB,SAAS,IAAI,IAAI,CAAA;IACjB,eAAe,IAAI,IAAI,CAAA;IACvB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,iBAAiB,IAAI,IAAI,CAAA;IACzB,mBAAmB,IAAI,IAAI,CAAA;IAC3B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;CAC/B,IAEa,UAAU,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAgEjE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { SessionId } from '@deepseek-ai/dsh-session';
|
|
3
|
+
import { t } from '../../i18n.js';
|
|
4
|
+
import { writeModelPref } from '../../modelPrefs.js';
|
|
5
|
+
import { touchSession } from '../../sessionHistory.js';
|
|
6
|
+
import { liveSessionCreateOptions, sliceLiveSessionSeed } from '../compat/index.js';
|
|
7
|
+
import { composePreset, runningPresetOf } from '../presets.js';
|
|
8
|
+
import { attachSessionToWorkspace } from '../workspace.js';
|
|
9
|
+
import { resetSessionProjection } from './session-reset.js';
|
|
10
|
+
/** Model-route adoption transaction. It settles compaction before its fork snapshot and owns the post-commit reset. */
|
|
11
|
+
export function createModelSwitchAction(ctx, state, deps) {
|
|
12
|
+
return async (provider, model) => {
|
|
13
|
+
const adoption = deps.binding.capture();
|
|
14
|
+
if (state.working) {
|
|
15
|
+
deps.notify(t('model-switch-while-working'), { color: 'warning' });
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const agents = ctx.get('agents');
|
|
19
|
+
if (agents === undefined) {
|
|
20
|
+
deps.notify(t('model-switch-unavailable'), { color: 'error' });
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
let seed;
|
|
24
|
+
try {
|
|
25
|
+
// A compaction checkpoint may not settle after the model fork snapshot.
|
|
26
|
+
await deps.settleCompaction();
|
|
27
|
+
// No boundary = the whole source log (continue the conversation). Slice
|
|
28
|
+
// the SOURCE snapshot: sessions.fork() registers a real child, and its
|
|
29
|
+
// snapshot length is not the inherited cut.
|
|
30
|
+
seed = sliceLiveSessionSeed(deps.binding.agent.session);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
deps.notify(t('model-switch-fork-failed', { err: error instanceof Error ? error.message : String(error) }), { color: 'error' });
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
const childId = SessionId(randomUUID());
|
|
37
|
+
const composed = await composePreset(ctx, runningPresetOf(deps.binding.agent.session));
|
|
38
|
+
let handle;
|
|
39
|
+
try {
|
|
40
|
+
handle = await deps.binding.prepare(adoption, () => agents.create(liveSessionCreateOptions({
|
|
41
|
+
sessionId: childId,
|
|
42
|
+
seed,
|
|
43
|
+
runtimeSession: deps.binding.agent.session,
|
|
44
|
+
inheritedCount: seed.length,
|
|
45
|
+
cwd: state.cwd,
|
|
46
|
+
parentSession: deps.binding.agent.session.id,
|
|
47
|
+
agentPreset: composed.agentPreset,
|
|
48
|
+
agentOptions: { provider, model },
|
|
49
|
+
setup: composed.setup,
|
|
50
|
+
})));
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
deps.notify(t('model-switch-failed', { err: error instanceof Error ? error.message : String(error) }), { color: 'error', timeoutMs: 8000 });
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
await attachSessionToWorkspace(ctx, state.cwd, childId);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
deps.notify(t('model-switch-attach-failed', { err: error instanceof Error ? error.message : String(error) }), { color: 'warning', timeoutMs: 8000 });
|
|
61
|
+
}
|
|
62
|
+
if (!deps.binding.isCurrent(adoption) || !deps.owner.current()) {
|
|
63
|
+
await deps.binding.abandon(handle);
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
return deps.binding.adopt(handle, adoption, (_previous, disposePrevious) => {
|
|
67
|
+
resetSessionProjection(state, deps.rowIds, deps.resetProjector, deps.resetSubagents, deps.resetJobs);
|
|
68
|
+
state.status = handle.agent.status;
|
|
69
|
+
state.agentId = handle.agent.id;
|
|
70
|
+
state.agentPreset = composed.agentPreset;
|
|
71
|
+
state.provider = provider;
|
|
72
|
+
state.model = model;
|
|
73
|
+
state.contextWindow = undefined;
|
|
74
|
+
state.effortLevels = undefined;
|
|
75
|
+
state.reasoningEffort = undefined;
|
|
76
|
+
deps.dropModelCompletion();
|
|
77
|
+
deps.replay(seed);
|
|
78
|
+
deps.settleReplay();
|
|
79
|
+
state.working = handle.agent.status === 'running';
|
|
80
|
+
// Reset the input FIFO and pending-decision indicators BEFORE the first
|
|
81
|
+
// emit: a submit from a session-changed subscriber must not chain onto
|
|
82
|
+
// the replaced session's parked promise (main's bind → clear → refresh
|
|
83
|
+
// order).
|
|
84
|
+
deps.clearStagedImages();
|
|
85
|
+
deps.bindAgent();
|
|
86
|
+
deps.onModelSwitch(model);
|
|
87
|
+
deps.refreshCommands();
|
|
88
|
+
void deps.refreshLoadedContext();
|
|
89
|
+
void deps.refreshSkillCommands();
|
|
90
|
+
touchSession(childId);
|
|
91
|
+
state.emit();
|
|
92
|
+
disposePrevious('dispose');
|
|
93
|
+
if (!writeModelPref(provider, model))
|
|
94
|
+
deps.notify(t('model-pref-write-failed'), { color: 'warning' });
|
|
95
|
+
return true;
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ChannelOwner } from './owner.js';
|
|
2
|
+
import type { ChannelUi } from '../../adapter/ports/channel-ui.js';
|
|
3
|
+
import type { NotificationItem } from './types.js';
|
|
4
|
+
/** Own expiry and explicit dismissal in the same bounded notification scope. */
|
|
5
|
+
export declare function createChannelNotifications(state: () => {
|
|
6
|
+
notifications: NotificationItem[];
|
|
7
|
+
emit(): void;
|
|
8
|
+
}, owner: ChannelOwner): ChannelUi['notify'];
|
|
9
|
+
//# sourceMappingURL=notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,gFAAgF;AAChF,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM;IAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAAC,IAAI,IAAI,IAAI,CAAA;CAAE,EAChE,KAAK,EAAE,YAAY,GAClB,SAAS,CAAC,QAAQ,CAAC,CAiBrB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Own expiry and explicit dismissal in the same bounded notification scope. */
|
|
2
|
+
export function createChannelNotifications(state, owner) {
|
|
3
|
+
let sequence = 0;
|
|
4
|
+
return (text, options = {}) => {
|
|
5
|
+
owner.assertActive();
|
|
6
|
+
const item = { id: sequence++, text, color: options.color, timeoutMs: options.timeoutMs ?? 4000 };
|
|
7
|
+
state().notifications.push(item);
|
|
8
|
+
state().emit();
|
|
9
|
+
let timer;
|
|
10
|
+
const release = owner.own(() => {
|
|
11
|
+
if (timer !== undefined)
|
|
12
|
+
clearTimeout(timer);
|
|
13
|
+
const store = state();
|
|
14
|
+
const index = store.notifications.indexOf(item);
|
|
15
|
+
if (index >= 0) {
|
|
16
|
+
store.notifications.splice(index, 1);
|
|
17
|
+
store.emit();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
if (item.timeoutMs > 0)
|
|
21
|
+
timer = setTimeout(release, item.timeoutMs);
|
|
22
|
+
return release;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Channel lifetime plus binding fences for work that crosses an await. */
|
|
2
|
+
export declare function createChannelOwner(): {
|
|
3
|
+
current: () => boolean;
|
|
4
|
+
assertActive: () => void;
|
|
5
|
+
readonly cleanupCount: number;
|
|
6
|
+
signal: AbortSignal;
|
|
7
|
+
bind(check: () => boolean): void;
|
|
8
|
+
own(cleanup: () => void): () => void;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
};
|
|
11
|
+
export type ChannelOwner = ReturnType<typeof createChannelOwner>;
|
|
12
|
+
export declare function registerChannelOwner(channel: object, owner: ChannelOwner): void;
|
|
13
|
+
export declare function bindChannelOwner(channel: object, check: () => boolean): void;
|
|
14
|
+
export declare function channelOwnerCurrent(channel: object): boolean;
|
|
15
|
+
/** Register work that must be revoked whenever this Channel owner releases. */
|
|
16
|
+
export declare function onChannelOwnerDispose(channel: object, cleanup: () => void): () => void;
|
|
17
|
+
export declare function disposeChannelOwner(channel: object): void;
|
|
18
|
+
//# sourceMappingURL=owner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/owner.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,wBAAgB,kBAAkB;;;;;gBAgBlB,MAAM,OAAO;iBACZ,MAAM,IAAI;;EA0B1B;AACD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEhE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAA+B;AAC/G,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,GAAG,IAAI,CAAqC;AAClH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAmD;AAChH,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAGtF;AACD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAmC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** Channel lifetime plus binding fences for work that crosses an await. */
|
|
2
|
+
export function createChannelOwner() {
|
|
3
|
+
let active = true;
|
|
4
|
+
let externalCheck = () => true;
|
|
5
|
+
const cleanups = new Set();
|
|
6
|
+
const controller = new AbortController();
|
|
7
|
+
const current = () => {
|
|
8
|
+
if (!active)
|
|
9
|
+
return false;
|
|
10
|
+
try {
|
|
11
|
+
return externalCheck();
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const assertActive = () => {
|
|
18
|
+
if (!current())
|
|
19
|
+
throw new Error('dsh-tui: Channel lifetime has ended');
|
|
20
|
+
};
|
|
21
|
+
return {
|
|
22
|
+
current, assertActive,
|
|
23
|
+
get cleanupCount() { return cleanups.size; },
|
|
24
|
+
signal: controller.signal,
|
|
25
|
+
bind(check) { externalCheck = check; },
|
|
26
|
+
own(cleanup) {
|
|
27
|
+
let released = false;
|
|
28
|
+
const release = () => {
|
|
29
|
+
if (released)
|
|
30
|
+
return;
|
|
31
|
+
released = true;
|
|
32
|
+
cleanups.delete(release);
|
|
33
|
+
cleanup();
|
|
34
|
+
};
|
|
35
|
+
if (active)
|
|
36
|
+
cleanups.add(release);
|
|
37
|
+
else
|
|
38
|
+
release();
|
|
39
|
+
return release;
|
|
40
|
+
},
|
|
41
|
+
dispose() {
|
|
42
|
+
if (!active)
|
|
43
|
+
return;
|
|
44
|
+
active = false;
|
|
45
|
+
controller.abort();
|
|
46
|
+
const failures = [];
|
|
47
|
+
// Every registered resource gets one cleanup attempt. A throwing
|
|
48
|
+
// external disposer must not strand later subscriptions or handles.
|
|
49
|
+
for (const cleanup of [...cleanups]) {
|
|
50
|
+
try {
|
|
51
|
+
cleanup();
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
failures.push(error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (failures.length === 1)
|
|
58
|
+
throw failures[0];
|
|
59
|
+
if (failures.length > 1)
|
|
60
|
+
throw new AggregateError(failures, 'dsh-tui: Channel cleanup failed');
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const owners = new WeakMap();
|
|
65
|
+
export function registerChannelOwner(channel, owner) { owners.set(channel, owner); }
|
|
66
|
+
export function bindChannelOwner(channel, check) { owners.get(channel)?.bind(check); }
|
|
67
|
+
export function channelOwnerCurrent(channel) { return owners.get(channel)?.current() ?? false; }
|
|
68
|
+
/** Register work that must be revoked whenever this Channel owner releases. */
|
|
69
|
+
export function onChannelOwnerDispose(channel, cleanup) {
|
|
70
|
+
const owner = owners.get(channel);
|
|
71
|
+
return owner === undefined ? (() => undefined) : owner.own(cleanup);
|
|
72
|
+
}
|
|
73
|
+
export function disposeChannelOwner(channel) { owners.get(channel)?.dispose(); }
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type FileCandidate } from '../../utils/fileSuggestions.js';
|
|
2
|
+
import type { FileSuggestionFs } from './types.js';
|
|
3
|
+
/** Trailing path segment (`C:/a/b` → `b`). */
|
|
4
|
+
export declare function basename(path: string): string;
|
|
5
|
+
/** Normalize a cwd for comparison: forward slashes, no trailing slash; case
|
|
6
|
+
* folded when the platform's filesystem semantics are case-insensitive. */
|
|
7
|
+
export declare function normalizeCwd(path: string, caseInsensitive: boolean): string;
|
|
8
|
+
/**
|
|
9
|
+
* `/resume` project filter (issue #96): exact cwd match, PLUS sessions
|
|
10
|
+
* recorded in a subdirectory — pre-upgrade launches recorded the launch
|
|
11
|
+
* subdirectory as the header cwd, and with the cwd default now resolving to
|
|
12
|
+
* the git worktree root an exact match would hide those sessions forever.
|
|
13
|
+
* They belong to the same workspace, so they stay listed. Comparison follows
|
|
14
|
+
* the platform's filesystem semantics (case-insensitive on Windows — a
|
|
15
|
+
* pre-upgrade header may record `C:\Repo` where the current launch resolves
|
|
16
|
+
* `c:\repo`). `caseInsensitive` is a parameter (not a platform read) so the
|
|
17
|
+
* verifier can exercise both modes on any host. Exported for
|
|
18
|
+
* scripts/verify-session-cwd.mjs.
|
|
19
|
+
*
|
|
20
|
+
* Boundary rule (issue #153): container directories are nobody's workspace.
|
|
21
|
+
* $HOME and the Windows root forms — plain drive roots (`C:`), UNC share
|
|
22
|
+
* roots (`//server/share`), and extended-length roots (`//?/C:`,
|
|
23
|
+
* `//?/UNC/server/share`) — are ancestors of unrelated projects, so the
|
|
24
|
+
* descendant rules below would list every session on the machine from `~`
|
|
25
|
+
* (and every session on the drive/share from those roots). At these
|
|
26
|
+
* boundaries, in either direction, only an exact match passes.
|
|
27
|
+
*/
|
|
28
|
+
export declare function sessionCwdMatches(stateCwd: string, headerCwd: string, caseInsensitive?: boolean): boolean;
|
|
29
|
+
export declare function listPathCandidates(fs: FileSuggestionFs, cwd: string, query: string, signal: AbortSignal | undefined, topK: number): Promise<FileCandidate[]>;
|
|
30
|
+
export declare function listFilesDeepCandidates(fs: FileSuggestionFs | undefined, root: string, signal?: AbortSignal): Promise<FileCandidate[]>;
|
|
31
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,8CAA8C;AAC9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;4EAC4E;AAC5E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAG3E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,eAAe,GAAE,OAAsC,GACtD,OAAO,CAwBT;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAyBlK;AAED,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,gBAAgB,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAmD5I"}
|