@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,240 @@
|
|
|
1
|
+
import { isCommandCompletionToken } from '../../commands.js';
|
|
2
|
+
import { snapshotLiveSessionEvents } from '../compat/liveSession.js';
|
|
3
|
+
import { t } from '../../i18n.js';
|
|
4
|
+
import { modeDisplayName } from '../../sessionModes.js';
|
|
5
|
+
import { PERMISSION_PRESET_CUSTOM, permissionPresetRuntime } from './permissions.js';
|
|
6
|
+
/** Last durable permission preset identity (`permission/preset`), if any.
|
|
7
|
+
* Registered by the harness permission preset service, never manufactured
|
|
8
|
+
* by the TUI. */
|
|
9
|
+
export function foldPermissionPreset(events) {
|
|
10
|
+
let preset;
|
|
11
|
+
for (const event of events) {
|
|
12
|
+
if (event.type === 'permission/preset') {
|
|
13
|
+
const value = event.data.preset;
|
|
14
|
+
if (typeof value === 'string')
|
|
15
|
+
preset = value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return preset;
|
|
19
|
+
}
|
|
20
|
+
/** Effective sandbox of a mode target: its explicit atom, else the folded
|
|
21
|
+
* session value, else the sandbox-policy service default. Unknown means the
|
|
22
|
+
* bundle is not safely mappable. */
|
|
23
|
+
export function effectiveSandboxForMode(ctx, spec, events) {
|
|
24
|
+
if (spec.sandbox !== undefined)
|
|
25
|
+
return spec.sandbox;
|
|
26
|
+
let folded;
|
|
27
|
+
for (const event of events) {
|
|
28
|
+
if (event.type === 'sandbox/mode') {
|
|
29
|
+
folded = event.data.mode;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (folded === 'read-only' || folded === 'workspace-write' || folded === 'danger-full-access')
|
|
33
|
+
return folded;
|
|
34
|
+
try {
|
|
35
|
+
const sandbox = ctx.get('sandboxPolicy');
|
|
36
|
+
const value = sandbox?.defaultMode;
|
|
37
|
+
if (value === 'read-only' || value === 'workspace-write' || value === 'danger-full-access')
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Optional service; an unknown default means the target is not safely
|
|
42
|
+
// mappable.
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
/** Effective approval policy of a mode target: its explicit atom, else the
|
|
47
|
+
* folded session value, else the approval service configuration. */
|
|
48
|
+
export function effectiveApprovalForMode(ctx, spec, session) {
|
|
49
|
+
if (spec.approval !== undefined)
|
|
50
|
+
return spec.approval;
|
|
51
|
+
let folded;
|
|
52
|
+
for (const event of snapshotLiveSessionEvents(session)) {
|
|
53
|
+
if (event.type === 'approval/policy') {
|
|
54
|
+
folded = event.data.policy;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (folded === 'ask' || folded === 'never')
|
|
58
|
+
return folded;
|
|
59
|
+
try {
|
|
60
|
+
const approval = ctx.get('approval');
|
|
61
|
+
const value = approval?.effectivePolicy?.(session) ?? approval?.config?.policy;
|
|
62
|
+
if (value === 'ask' || value === 'never')
|
|
63
|
+
return value;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Optional service; an unknown default means the target is not safely
|
|
67
|
+
// mappable.
|
|
68
|
+
}
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Durable `permission/preset` identity: readback, canonical mapping, the
|
|
73
|
+
* official switch path, and the pre-plan identity memory. Construction is
|
|
74
|
+
* inert — it acquires nothing and subscribes to nothing.
|
|
75
|
+
*/
|
|
76
|
+
export function createPermissionIdentity(ctx, deps) {
|
|
77
|
+
/** Durable preset identity captured when plan mode starts; an implicit plan
|
|
78
|
+
* exit prefers returning to it over the canonical bundle of the restored
|
|
79
|
+
* atoms, so the user lands back on their own preset (e.g. a third-party
|
|
80
|
+
* `auto`), not on a look-alike static mode. */
|
|
81
|
+
const prePlanIdentity = new WeakMap();
|
|
82
|
+
const fold = (session) => foldPermissionPreset(snapshotLiveSessionEvents(session));
|
|
83
|
+
const canonicalForMode = (spec, session) => {
|
|
84
|
+
const sandbox = effectiveSandboxForMode(ctx, spec, snapshotLiveSessionEvents(session));
|
|
85
|
+
const approval = effectiveApprovalForMode(ctx, spec, session);
|
|
86
|
+
if (sandbox === undefined || approval === undefined)
|
|
87
|
+
return undefined;
|
|
88
|
+
return deps.roster.canonicalFor(sandbox, approval);
|
|
89
|
+
};
|
|
90
|
+
const targetConfirmed = (target, session) => {
|
|
91
|
+
if (fold(session) === target)
|
|
92
|
+
return true;
|
|
93
|
+
try {
|
|
94
|
+
const snapshot = deps.roster.readSnapshot(deps.agent());
|
|
95
|
+
if (snapshot !== undefined
|
|
96
|
+
&& snapshot.current?.kind === 'preset'
|
|
97
|
+
&& snapshot.current.value === target) {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// The registry may be unmounted mid-switch; the fold check above
|
|
103
|
+
// remains authoritative for the durable identity.
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
};
|
|
107
|
+
const confirmTarget = async (target, session, timeoutMs) => {
|
|
108
|
+
const deadline = Date.now() + timeoutMs;
|
|
109
|
+
while (Date.now() < deadline) {
|
|
110
|
+
if (session !== deps.agent().session)
|
|
111
|
+
return false;
|
|
112
|
+
if (targetConfirmed(target, session))
|
|
113
|
+
return true;
|
|
114
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
115
|
+
}
|
|
116
|
+
ctx.logger.warn(`dsh-tui: permission mode "${target}" was not confirmed by permissionPresets.current()/permission/preset`);
|
|
117
|
+
deps.notify(t('mode-permission-unconfirmed'), { color: 'warning' });
|
|
118
|
+
return false;
|
|
119
|
+
};
|
|
120
|
+
const apply = async (target) => {
|
|
121
|
+
if (!isCommandCompletionToken(target)) {
|
|
122
|
+
ctx.logger.warn(`dsh-tui: permission mode "${target}" skipped because its identity is not a safe command token`);
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
const agent = deps.agent();
|
|
126
|
+
const session = agent.session;
|
|
127
|
+
if (targetConfirmed(target, session))
|
|
128
|
+
return true;
|
|
129
|
+
let registered = false;
|
|
130
|
+
try {
|
|
131
|
+
registered = deps.commandService?.find(agent, 'permission') !== undefined;
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
registered = false;
|
|
135
|
+
}
|
|
136
|
+
if (!registered) {
|
|
137
|
+
// The same handler the official command drives; the TUI never appends
|
|
138
|
+
// a permission event itself.
|
|
139
|
+
let service;
|
|
140
|
+
try {
|
|
141
|
+
service = ctx.get('permissionPresets');
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
service = undefined;
|
|
145
|
+
}
|
|
146
|
+
const runtime = permissionPresetRuntime(service);
|
|
147
|
+
if (runtime !== undefined && typeof runtime.set === 'function') {
|
|
148
|
+
try {
|
|
149
|
+
runtime.set(session, target);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
ctx.logger.warn(`dsh-tui: permission mode "${target}" could not be applied by the permissionPresets service: ${error instanceof Error ? error.message : String(error)}`);
|
|
153
|
+
deps.notify(t('mode-permission-invoke-failed'), { color: 'warning' });
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
return await confirmTarget(target, session, 2000);
|
|
157
|
+
}
|
|
158
|
+
ctx.logger.warn(`dsh-tui: permission mode "${target}" skipped because /permission is not registered`);
|
|
159
|
+
deps.notify(t('mode-permission-unregistered'), { color: 'warning' });
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
const result = await deps.executeRegistryCommand('permission', ` ${target}`);
|
|
163
|
+
if (session !== deps.agent().session)
|
|
164
|
+
return false;
|
|
165
|
+
if (result === undefined) {
|
|
166
|
+
ctx.logger.warn(`dsh-tui: permission mode "${target}" could not invoke /permission`);
|
|
167
|
+
deps.notify(t('mode-permission-invoke-failed'), { color: 'warning' });
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
let availability = 'unavailable';
|
|
171
|
+
try {
|
|
172
|
+
availability = deps.roster.readSnapshot(deps.agent()) === undefined ? 'unavailable' : 'runtime';
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
// keep the default (fail-closed short grace)
|
|
176
|
+
}
|
|
177
|
+
return await confirmTarget(target, session, availability === 'runtime' ? 2000 : 300);
|
|
178
|
+
};
|
|
179
|
+
const canonicalizeForMode = async (spec, session) => {
|
|
180
|
+
// Static modes own a canonical permission identity. Leaving any OTHER
|
|
181
|
+
// durable identity behind (third-party preset OR a stale canonical, e.g.
|
|
182
|
+
// plan left `read-only` while atoms were restored to workspace-write)
|
|
183
|
+
// would make a static mode appear selected only because its
|
|
184
|
+
// sandbox/approval bundle happens to match, and would let the durable
|
|
185
|
+
// identity lie about the real policy.
|
|
186
|
+
const current = fold(session);
|
|
187
|
+
if (current === undefined || current === PERMISSION_PRESET_CUSTOM)
|
|
188
|
+
return true;
|
|
189
|
+
const canonical = canonicalForMode(spec, session);
|
|
190
|
+
if (canonical === undefined) {
|
|
191
|
+
ctx.logger.warn(`dsh-tui: static mode "${spec.id}" cannot safely clear permission identity "${current}"`);
|
|
192
|
+
deps.notify(t('mode-permission-no-canonical', { name: modeDisplayName(spec) }), { color: 'warning' });
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
if (canonical === current)
|
|
196
|
+
return true;
|
|
197
|
+
return apply(canonical);
|
|
198
|
+
};
|
|
199
|
+
const rememberPrePlanIdentity = (session) => {
|
|
200
|
+
// The runtime registry must still recognize the identity as current: a
|
|
201
|
+
// drifted knob combination reads back as custom and must fall back to the
|
|
202
|
+
// canonical bundle of the restored atoms.
|
|
203
|
+
const identity = fold(session);
|
|
204
|
+
if (identity === undefined || identity === PERMISSION_PRESET_CUSTOM) {
|
|
205
|
+
prePlanIdentity.delete(session);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
try {
|
|
209
|
+
const snapshot = deps.roster.readSnapshot(deps.agent());
|
|
210
|
+
if (snapshot === undefined) {
|
|
211
|
+
prePlanIdentity.delete(session);
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
if (snapshot.current?.kind !== 'preset' || snapshot.current.value !== identity) {
|
|
215
|
+
prePlanIdentity.delete(session);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
if (!snapshot.options.some(option => option.value === identity)) {
|
|
219
|
+
prePlanIdentity.delete(session);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
prePlanIdentity.set(session, identity);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
prePlanIdentity.delete(session);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
return {
|
|
229
|
+
foldPermissionPreset: fold,
|
|
230
|
+
canonicalPermissionForMode: canonicalForMode,
|
|
231
|
+
permissionTargetConfirmed: (target, session) => targetConfirmed(target, session),
|
|
232
|
+
confirmPermissionTarget: (target, session, timeoutMs) => confirmTarget(target, session, timeoutMs),
|
|
233
|
+
applyPermissionIdentity: apply,
|
|
234
|
+
canonicalizeForMode,
|
|
235
|
+
rememberPrePlanIdentity,
|
|
236
|
+
prePlanPermissionIdentity: session => prePlanIdentity.get(session),
|
|
237
|
+
forgetPrePlanIdentity: session => { prePlanIdentity.delete(session); },
|
|
238
|
+
runPermissionPreset: name => apply(name.trim()),
|
|
239
|
+
};
|
|
240
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
3
|
+
import { type SessionModeSpec } from '../../sessionModes.js';
|
|
4
|
+
import { type PermissionPresetBundle } from './permissions.js';
|
|
5
|
+
import type { PermissionPresetSnapshot } from './types.js';
|
|
6
|
+
/** Durable identities the configured modes already own; a runtime preset with
|
|
7
|
+
* one of them is the same switch by another route and never duplicated. */
|
|
8
|
+
export declare function configuredPermissionIds(modes: readonly SessionModeSpec[]): ReadonlySet<string>;
|
|
9
|
+
/** Canonical targets of the STATIC modes. On a stock table that is the three
|
|
10
|
+
* built-in names; on renamed tables the deployment's own names for the same
|
|
11
|
+
* bundles. They are never dynamic entries: the indicator would otherwise
|
|
12
|
+
* snap to a dynamic look-alike instead of the static mode. */
|
|
13
|
+
export declare function staticCanonicalTargets(modes: readonly SessionModeSpec[], bundles: readonly PermissionPresetBundle[]): ReadonlySet<string>;
|
|
14
|
+
/** The mounted `permissionPresets` registry as a runtime snapshot, or
|
|
15
|
+
* undefined when no runtime table is mounted (legacy/unavailable tables are
|
|
16
|
+
* not a roster). Reads are fail-closed: a throwing registry is no roster. */
|
|
17
|
+
export declare function readRuntimePermissionSnapshot(ctx: Context, target: Agent): PermissionPresetSnapshot | undefined;
|
|
18
|
+
/** Warn at most once per (agent, identity, reason) — a registry that keeps
|
|
19
|
+
* re-listing an unusable preset must not flood the log on every rebuild. */
|
|
20
|
+
export declare function warnOnceForPermissionEntry(warned: Set<string>, warn: (message: string) => void, target: Agent, value: string, reason: string): void;
|
|
21
|
+
/** The Shift+Tab roster: configured modes first, runtime presets appended. */
|
|
22
|
+
export interface PermissionModeRoster {
|
|
23
|
+
/** LIVE roster. The array identity is stable and mutated in place, so a
|
|
24
|
+
* consumer that captured it at construction always sees the latest
|
|
25
|
+
* roster after {@link PermissionModeRoster.rebuild}. */
|
|
26
|
+
readonly modes: readonly SessionModeSpec[];
|
|
27
|
+
/** Re-read the runtime preset registry for `target` and re-derive. */
|
|
28
|
+
rebuild(target: Agent): void;
|
|
29
|
+
/** Runtime snapshot for `target`, undefined when no runtime table is mounted. */
|
|
30
|
+
readSnapshot(target: Agent): PermissionPresetSnapshot | undefined;
|
|
31
|
+
/** Canonical preset name for one effective sandbox/approval bundle. */
|
|
32
|
+
canonicalFor(sandbox: NonNullable<SessionModeSpec['sandbox']>, approval: NonNullable<SessionModeSpec['approval']>): string | undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Dynamic session-mode roster (main's `sessionModes` / `rebuildSessionModes`).
|
|
36
|
+
*
|
|
37
|
+
* Runtime permission presets are appended AFTER the configured/default modes
|
|
38
|
+
* whenever the SERVICE snapshot is usable — no dependency on the external
|
|
39
|
+
* `/permission` command reaching this agent's registry, because switching
|
|
40
|
+
* falls back to the service's own write path when the command row is absent.
|
|
41
|
+
* Registry order is authoritative on first observation; later rebuilds
|
|
42
|
+
* preserve the relative order of identities already seen so unrelated
|
|
43
|
+
* command-registry churn cannot reshuffle Shift+Tab. Removed identities drop
|
|
44
|
+
* out and a later re-add is treated as new.
|
|
45
|
+
*/
|
|
46
|
+
export declare function createPermissionModeRoster(ctx: Context, deps: {
|
|
47
|
+
configuredModes: readonly SessionModeSpec[];
|
|
48
|
+
agent: () => Agent;
|
|
49
|
+
warn?: (message: string) => void;
|
|
50
|
+
}): PermissionModeRoster;
|
|
51
|
+
//# sourceMappingURL=mode-roster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode-roster.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/mode-roster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAA0B,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAElF;4EAC4E;AAC5E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAE9F;AAED;;;+DAG+D;AAC/D,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,OAAO,EAAE,SAAS,sBAAsB,EAAE,GACzC,WAAW,CAAC,MAAM,CAAC,CAQrB;AAED;;8EAE8E;AAC9E,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,KAAK,GACZ,wBAAwB,GAAG,SAAS,CAUtC;AAED;6EAC6E;AAC7E,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EACnB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,IAAI,CAMN;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC;;6DAEyD;IACzD,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAA;IAC1C,sEAAsE;IACtE,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAA;IAC5B,iFAAiF;IACjF,YAAY,CAAC,MAAM,EAAE,KAAK,GAAG,wBAAwB,GAAG,SAAS,CAAA;IACjE,uEAAuE;IACvE,YAAY,CACV,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAChD,QAAQ,EAAE,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,GACjD,MAAM,GAAG,SAAS,CAAA;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE;IACJ,eAAe,EAAE,SAAS,eAAe,EAAE,CAAA;IAC3C,KAAK,EAAE,MAAM,KAAK,CAAA;IAClB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC,GACA,oBAAoB,CAgEtB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { isCommandCompletionToken } from '../../commands.js';
|
|
2
|
+
import { canonicalPresetFor, permissionCycleEntry, permissionModeSpec, stablePermissionRosterOrder, } from '../../sessionModes.js';
|
|
3
|
+
import { permissionBundlesFromService, permissionPresetSnapshotFromService, } from './permissions.js';
|
|
4
|
+
/** Durable identities the configured modes already own; a runtime preset with
|
|
5
|
+
* one of them is the same switch by another route and never duplicated. */
|
|
6
|
+
export function configuredPermissionIds(modes) {
|
|
7
|
+
return new Set(modes.flatMap(spec => spec.permission === undefined ? [] : [spec.permission]));
|
|
8
|
+
}
|
|
9
|
+
/** Canonical targets of the STATIC modes. On a stock table that is the three
|
|
10
|
+
* built-in names; on renamed tables the deployment's own names for the same
|
|
11
|
+
* bundles. They are never dynamic entries: the indicator would otherwise
|
|
12
|
+
* snap to a dynamic look-alike instead of the static mode. */
|
|
13
|
+
export function staticCanonicalTargets(modes, bundles) {
|
|
14
|
+
const targets = new Set();
|
|
15
|
+
for (const spec of modes) {
|
|
16
|
+
if (spec.permission !== undefined || spec.sandbox === undefined || spec.approval === undefined)
|
|
17
|
+
continue;
|
|
18
|
+
const canonical = canonicalPresetFor(spec.sandbox, spec.approval, bundles);
|
|
19
|
+
if (canonical !== undefined)
|
|
20
|
+
targets.add(canonical);
|
|
21
|
+
}
|
|
22
|
+
return targets;
|
|
23
|
+
}
|
|
24
|
+
/** The mounted `permissionPresets` registry as a runtime snapshot, or
|
|
25
|
+
* undefined when no runtime table is mounted (legacy/unavailable tables are
|
|
26
|
+
* not a roster). Reads are fail-closed: a throwing registry is no roster. */
|
|
27
|
+
export function readRuntimePermissionSnapshot(ctx, target) {
|
|
28
|
+
let service;
|
|
29
|
+
try {
|
|
30
|
+
service = ctx.get('permissionPresets');
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
if (service === undefined)
|
|
36
|
+
return undefined;
|
|
37
|
+
const snapshot = permissionPresetSnapshotFromService(service, target.session);
|
|
38
|
+
return snapshot.availability === 'runtime' ? snapshot : undefined;
|
|
39
|
+
}
|
|
40
|
+
/** Warn at most once per (agent, identity, reason) — a registry that keeps
|
|
41
|
+
* re-listing an unusable preset must not flood the log on every rebuild. */
|
|
42
|
+
export function warnOnceForPermissionEntry(warned, warn, target, value, reason) {
|
|
43
|
+
const key = `${String(target.id)}:${value}:${reason}`;
|
|
44
|
+
if (warned.has(key))
|
|
45
|
+
return;
|
|
46
|
+
if (warned.size >= 200)
|
|
47
|
+
warned.clear();
|
|
48
|
+
warned.add(key);
|
|
49
|
+
warn(`dsh-tui: permission preset "${value}" skipped from Shift+Tab (${reason})`);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Dynamic session-mode roster (main's `sessionModes` / `rebuildSessionModes`).
|
|
53
|
+
*
|
|
54
|
+
* Runtime permission presets are appended AFTER the configured/default modes
|
|
55
|
+
* whenever the SERVICE snapshot is usable — no dependency on the external
|
|
56
|
+
* `/permission` command reaching this agent's registry, because switching
|
|
57
|
+
* falls back to the service's own write path when the command row is absent.
|
|
58
|
+
* Registry order is authoritative on first observation; later rebuilds
|
|
59
|
+
* preserve the relative order of identities already seen so unrelated
|
|
60
|
+
* command-registry churn cannot reshuffle Shift+Tab. Removed identities drop
|
|
61
|
+
* out and a later re-add is treated as new.
|
|
62
|
+
*/
|
|
63
|
+
export function createPermissionModeRoster(ctx, deps) {
|
|
64
|
+
const warn = deps.warn ?? ((message) => ctx.logger.warn(message));
|
|
65
|
+
const configuredIds = configuredPermissionIds(deps.configuredModes);
|
|
66
|
+
const warned = new Set();
|
|
67
|
+
const order = new WeakMap();
|
|
68
|
+
// Mutated in place: a consumer that captured this array keeps observing the
|
|
69
|
+
// live roster across rebuilds (see the interface contract).
|
|
70
|
+
const modes = [...deps.configuredModes];
|
|
71
|
+
const bundlesOf = () => {
|
|
72
|
+
let service;
|
|
73
|
+
try {
|
|
74
|
+
service = ctx.get('permissionPresets');
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
return service === undefined ? [] : permissionBundlesFromService(service);
|
|
80
|
+
};
|
|
81
|
+
const canonicalFor = (sandbox, approval) => canonicalPresetFor(sandbox, approval, bundlesOf());
|
|
82
|
+
const rebuild = (target) => {
|
|
83
|
+
const snapshot = readRuntimePermissionSnapshot(ctx, target);
|
|
84
|
+
const excluded = staticCanonicalTargets(deps.configuredModes, bundlesOf());
|
|
85
|
+
const candidates = new Map();
|
|
86
|
+
if (snapshot !== undefined) {
|
|
87
|
+
for (const option of snapshot.options) {
|
|
88
|
+
if (excluded.has(option.value)) {
|
|
89
|
+
warnOnceForPermissionEntry(warned, warn, target, option.value, 'canonical target');
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (!isCommandCompletionToken(option.value)) {
|
|
93
|
+
warnOnceForPermissionEntry(warned, warn, target, option.value, 'unsafe command token');
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const decision = permissionCycleEntry(option, configuredIds);
|
|
97
|
+
if (!decision.accepted) {
|
|
98
|
+
warnOnceForPermissionEntry(warned, warn, target, option.value, decision.reason);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
candidates.set(option.value, option);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const next = stablePermissionRosterOrder(order.get(target.session) ?? [], [...candidates.keys()]);
|
|
105
|
+
order.set(target.session, next);
|
|
106
|
+
const dynamic = [];
|
|
107
|
+
for (const value of next) {
|
|
108
|
+
const option = candidates.get(value);
|
|
109
|
+
if (option !== undefined)
|
|
110
|
+
dynamic.push(permissionModeSpec(option));
|
|
111
|
+
}
|
|
112
|
+
modes.length = 0;
|
|
113
|
+
for (const spec of [...deps.configuredModes, ...dynamic])
|
|
114
|
+
modes.push(spec);
|
|
115
|
+
};
|
|
116
|
+
// Main rebuilds once at construction, before the roster is first read.
|
|
117
|
+
rebuild(deps.agent());
|
|
118
|
+
return { modes, rebuild, readSnapshot: target => readRuntimePermissionSnapshot(ctx, target), canonicalFor };
|
|
119
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import { type LlmModelInfo } from '@deepseek-ai/dsh-llm';
|
|
3
|
+
import type { Agent, ModelSelectionRef } from '@deepseek-ai/dsh-agent';
|
|
4
|
+
import type { CommandCompletionNode } from '../../commands.js';
|
|
5
|
+
import type { createChannelBinding } from './binding.js';
|
|
6
|
+
import type { ChannelOwner } from './owner.js';
|
|
7
|
+
import type { ChannelState, EffortOption, PresetOption } from './types.js';
|
|
8
|
+
type Binding = ReturnType<typeof createChannelBinding>;
|
|
9
|
+
/**
|
|
10
|
+
* Route metadata, effort preference and preset/model catalog actions.
|
|
11
|
+
* This owns the async catalog caches and their generation fences; callers only
|
|
12
|
+
* compose its surface into ChannelState after the state has been constructed.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createModelActions(ctx: Context, state: Pick<ChannelState, 'provider' | 'model' | 'reasoningEffort' | 'effortLevels' | 'agentPreset' | 'working' | 'emit'>, deps: {
|
|
15
|
+
owner: Pick<ChannelOwner, 'current'>;
|
|
16
|
+
binding: Pick<Binding, 'capture' | 'isCurrent'>;
|
|
17
|
+
selection: ModelSelectionRef;
|
|
18
|
+
initialEffort?: string;
|
|
19
|
+
agent(): Agent;
|
|
20
|
+
notify: ChannelState['notify'];
|
|
21
|
+
}): {
|
|
22
|
+
selection: ModelSelectionRef;
|
|
23
|
+
applyPreferredEffort: () => Promise<void>;
|
|
24
|
+
refreshEffortLevels: () => void;
|
|
25
|
+
listEfforts: () => Promise<{
|
|
26
|
+
efforts: readonly EffortOption[];
|
|
27
|
+
defaultEffort: string | undefined;
|
|
28
|
+
}>;
|
|
29
|
+
setEffort: (id: string) => Promise<boolean>;
|
|
30
|
+
setDefaultEffort: (id: string | undefined) => void;
|
|
31
|
+
warmEffortLevels: () => void;
|
|
32
|
+
listModels: () => Promise<readonly LlmModelInfo[]>;
|
|
33
|
+
listProviders: () => Promise<{
|
|
34
|
+
id: string;
|
|
35
|
+
name: string;
|
|
36
|
+
}[]>;
|
|
37
|
+
dropModelNodeCache: () => void;
|
|
38
|
+
warmModelNodes: () => void;
|
|
39
|
+
modelNodes: () => readonly CommandCompletionNode[];
|
|
40
|
+
warmPresetOptions: () => void;
|
|
41
|
+
presetOptions: () => readonly PresetOption[];
|
|
42
|
+
listPresets: () => Promise<readonly PresetOption[]>;
|
|
43
|
+
switchPreset: (presetId: string) => Promise<boolean>;
|
|
44
|
+
};
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=model-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-actions.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/model-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAM9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE1E,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEtD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,GAAG,iBAAiB,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC,EACzH,IAAI,EAAE;IACJ,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACpC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,WAAW,CAAC,CAAA;IAC/C,SAAS,EAAE,iBAAiB,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,IAAI,KAAK,CAAA;IACd,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;CAC/B;;gCA2CsC,OAAO,CAAC,IAAI,CAAC;+BAWpB,IAAI;uBAmBN,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;oBAWjF,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;2BAoBxB,MAAM,GAAG,SAAS,KAAG,IAAI;4BAM1B,IAAI;sBAeV,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;;YAvHnB,MAAM;cAAQ,MAAM;;8BA4HzB,IAAI;0BACR,IAAI;;6BASD,IAAI;;uBAOJ,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;6BAQxB,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;EAkChE"}
|