@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
|
@@ -1,23 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* provider route at runtime.
|
|
4
|
-
*
|
|
5
|
-
* The wizard is a sequence of `QuestionStore` asks (the same panel the
|
|
6
|
-
* model-facing `ask_user_question` tool uses), so it needs no UI state of
|
|
7
|
-
* its own. All side effects go through {@link ProviderSetupHost}, which the
|
|
8
|
-
* channel implements over the dsh settings/credentials/llm seams:
|
|
9
|
-
*
|
|
10
|
-
* profile → settings `llm-pi-ai.providers.<route>` (dsh-llm-pi-ai watches
|
|
11
|
-
* the section and registers the route without a restart)
|
|
12
|
-
* key → credentials store (`~/.dsh/.credentials.yaml`, 0600), named by
|
|
13
|
-
* the derived `<ROUTE>_API_KEY` env-style ref the profile's
|
|
14
|
-
* `apiKeyEnv` points at
|
|
15
|
-
*
|
|
16
|
-
* The module is React-free so `scripts/verify-provider-wizard.mjs` can drive
|
|
17
|
-
* it headless with a stubbed host and scripted answers.
|
|
18
|
-
*/
|
|
1
|
+
import type { ProviderSetupHost } from '../adapter/ports/channel-settings.js';
|
|
2
|
+
export type { ProviderSetupHost, CatalogProviderCandidate, ConfiguredProvider, ProfilePathOp, OAuthSetupHost, OAuthProviderStatus, OAuthLoginResult } from '../adapter/ports/channel-settings.js';
|
|
19
3
|
import { type AskUserQuestionAnswer, type AskUserQuestionRequest } from '@deepseek-ai/dsh-user-questions';
|
|
20
|
-
import type { LlmDiscoveredModel } from '@deepseek-ai/dsh-llm';
|
|
21
4
|
/** Route id rule shared with the dsh configuration surface (web Models page). */
|
|
22
5
|
export declare const PROVIDER_ROUTE_ID: RegExp;
|
|
23
6
|
/** Wire protocols dsh-llm-pi-ai can serve on a manually declared route. */
|
|
@@ -27,146 +10,6 @@ export declare const PROVIDER_PROTOCOLS: readonly ["openai-completions", "openai
|
|
|
27
10
|
* convention so TUI- and web-added providers resolve the same key.
|
|
28
11
|
*/
|
|
29
12
|
export declare function deriveKeyRef(route: string): string;
|
|
30
|
-
/** One catalog route the mounted adapters offer for activation. */
|
|
31
|
-
export interface CatalogProviderCandidate {
|
|
32
|
-
readonly provider: string;
|
|
33
|
-
readonly displayName: string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* One user-added provider route read from the settings section. The parsed
|
|
37
|
-
* fields drive the edit/delete picker rows, the catalog/custom split
|
|
38
|
-
* (`isCatalog`) and the key-keep question (`ref` + `shadowed`).
|
|
39
|
-
*/
|
|
40
|
-
export interface ConfiguredProvider {
|
|
41
|
-
readonly route: string;
|
|
42
|
-
/** Credential ref (profile.apiKeyEnv) when the profile names one. */
|
|
43
|
-
readonly ref: string;
|
|
44
|
-
/** Whether the process environment shadows the ref (env-provided key). */
|
|
45
|
-
readonly shadowed: boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Whether the route belongs to the installed catalog — real membership
|
|
48
|
-
* as the llm adapter reports it, never inferred from the profile shape:
|
|
49
|
-
* a catalog profile may carry an explicit `api` override and still be a
|
|
50
|
-
* catalog route.
|
|
51
|
-
*/
|
|
52
|
-
readonly isCatalog: boolean;
|
|
53
|
-
/** baseURL when the profile sets one. */
|
|
54
|
-
readonly baseURL?: string;
|
|
55
|
-
/** Explicit `api` override in the stored profile; catalog routes can
|
|
56
|
-
* carry one too, so this alone does not classify the route. */
|
|
57
|
-
readonly api?: string;
|
|
58
|
-
/** Enabled model ids; undefined means the whole catalog stays served. */
|
|
59
|
-
readonly models?: readonly string[];
|
|
60
|
-
/**
|
|
61
|
-
* Raw `profile.models` entries (plain objects, in order) as stored. A
|
|
62
|
-
* targeted model-list rewrite reuses these for kept ids so fields the
|
|
63
|
-
* wizard never learned about (`input`, `compat`, …) survive the edit.
|
|
64
|
-
*/
|
|
65
|
-
readonly modelEntries?: readonly Record<string, unknown>[];
|
|
66
|
-
}
|
|
67
|
-
/** One path op inside a provider profile, relative to the profile object. */
|
|
68
|
-
export type ProfilePathOp = {
|
|
69
|
-
op: 'set';
|
|
70
|
-
path: readonly string[];
|
|
71
|
-
value: unknown;
|
|
72
|
-
} | {
|
|
73
|
-
op: 'unset';
|
|
74
|
-
path: readonly string[];
|
|
75
|
-
};
|
|
76
|
-
/** One OAuth-capable provider a dsh-auth-style plugin mounts (masked state only). */
|
|
77
|
-
export interface OAuthProviderStatus {
|
|
78
|
-
readonly provider: string;
|
|
79
|
-
readonly label: string;
|
|
80
|
-
readonly oauthLabel: string;
|
|
81
|
-
readonly loginLabel: string | undefined;
|
|
82
|
-
readonly signedIn: boolean;
|
|
83
|
-
readonly expiresAt: number | undefined;
|
|
84
|
-
readonly expired: boolean;
|
|
85
|
-
}
|
|
86
|
-
/** One successful OAuth login. */
|
|
87
|
-
export interface OAuthLoginResult {
|
|
88
|
-
readonly provider: string;
|
|
89
|
-
readonly oauthLabel: string;
|
|
90
|
-
readonly expiresAt: number;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* The `ctx.dshAuth` api, structural so this tree never imports the plugin:
|
|
94
|
-
* mounting dsh-auth (or anything exporting this shape) lights up the wizard's
|
|
95
|
-
* OAuth branch; absent it, the wizard behaves exactly as before.
|
|
96
|
-
*/
|
|
97
|
-
export interface OAuthSetupHost {
|
|
98
|
-
providers(): Promise<readonly OAuthProviderStatus[]>;
|
|
99
|
-
login(provider?: string, signal?: AbortSignal): Promise<OAuthLoginResult>;
|
|
100
|
-
logout(provider: string): Promise<boolean>;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Runtime capabilities the wizard needs, implemented by the channel over
|
|
104
|
-
* `ctx.settings` / `ctx.credentials` / `ctx.llm`. `undefined` from
|
|
105
|
-
* `channel.providerSetup()` means the bare cordis.yml start (no dsh-base
|
|
106
|
-
* services) and the command refuses to run.
|
|
107
|
-
*/
|
|
108
|
-
export interface ProviderSetupHost {
|
|
109
|
-
/** Catalog routes activatable via the `llm-pi-ai` settings section. */
|
|
110
|
-
listCatalogProviders(): readonly CatalogProviderCandidate[];
|
|
111
|
-
/**
|
|
112
|
-
* The editable/deletable set: provider profiles the user layer itself
|
|
113
|
-
* carries. Profiles inherited from the composition base are deliberately
|
|
114
|
-
* absent — an unset only clears the user layer, so listing an inherited
|
|
115
|
-
* route would promise a delete that silently reverts to the base value.
|
|
116
|
-
*/
|
|
117
|
-
listConfiguredProviders(): readonly ConfiguredProvider[];
|
|
118
|
-
/**
|
|
119
|
-
* Routes whose stored profile names `ref` as `apiKeyEnv` at ANY settings
|
|
120
|
-
* layer (user + inherited base), minus `exceptRoute`. Credential-impact
|
|
121
|
-
* decisions (delete cleanup, shared-key confirm) must go through this,
|
|
122
|
-
* never through {@link listConfiguredProviders}: that lists the user
|
|
123
|
-
* layer only (a deletable set), so a base provider or a composition-base
|
|
124
|
-
* route sharing the ref would be invisible and its key destroyed.
|
|
125
|
-
*/
|
|
126
|
-
listRefUsers(ref: string, exceptRoute?: string): readonly string[];
|
|
127
|
-
/** Whether a profile (any layer) already exists for the route. */
|
|
128
|
-
routeExists(route: string): boolean;
|
|
129
|
-
/** Interrogate a draft endpoint; the draft key is never persisted. */
|
|
130
|
-
discoverModels(request: {
|
|
131
|
-
provider?: string;
|
|
132
|
-
baseURL?: string;
|
|
133
|
-
api?: string;
|
|
134
|
-
apiKey?: string;
|
|
135
|
-
}): Promise<readonly LlmDiscoveredModel[]>;
|
|
136
|
-
/** Whether the process environment already provides this ref (shadow). */
|
|
137
|
-
envShadows(ref: string): boolean;
|
|
138
|
-
/** The process-environment value for a shadowed ref; undefined when absent. */
|
|
139
|
-
envValue(ref: string): string | undefined;
|
|
140
|
-
/**
|
|
141
|
-
* Read the currently stored value for rollback purposes; undefined when no
|
|
142
|
-
* credential exists under the ref. Only called when {@link envShadows} is
|
|
143
|
-
* false, so the value comes from a writable/seeded store, never the env.
|
|
144
|
-
*/
|
|
145
|
-
readCredential(ref: string): Promise<string | undefined>;
|
|
146
|
-
/** Persist the key under the ref; rejects when env-shadowed or invalid. */
|
|
147
|
-
writeCredential(ref: string, value: string): void | Promise<void>;
|
|
148
|
-
/** Best-effort rollback of a just-written credential. */
|
|
149
|
-
removeCredential(ref: string): void | Promise<void>;
|
|
150
|
-
/**
|
|
151
|
-
* Persist the provider profile under `llm-pi-ai.providers.<route>`;
|
|
152
|
-
* rejects when the adapter's validation deems it unserviceable. Used by
|
|
153
|
-
* the add flow, where a whole-profile write is the intent.
|
|
154
|
-
*/
|
|
155
|
-
writeProfile(route: string, profile: Record<string, unknown>): Promise<void>;
|
|
156
|
-
/**
|
|
157
|
-
* Apply targeted path ops inside `llm-pi-ai.providers.<route>`. Edits go
|
|
158
|
-
* through here, never through {@link writeProfile}: replacing the whole
|
|
159
|
-
* object would silently drop every field the wizard does not model
|
|
160
|
-
* (`headers`, `timeoutMs`, `retryPolicy`, `displayName`, …). Paths are
|
|
161
|
-
* relative to the profile object, so `['baseURL']` patches exactly the
|
|
162
|
-
* one item the user picked; unknown fields stay untouched by omission.
|
|
163
|
-
*/
|
|
164
|
-
mutateProfile(route: string, ops: readonly ProfilePathOp[]): Promise<void>;
|
|
165
|
-
/** Unset the profile under `llm-pi-ai.providers.<route>`. */
|
|
166
|
-
removeProfile(route: string): Promise<void>;
|
|
167
|
-
/** The OAuth sign-in surface; absent when no dsh-auth-style plugin is mounted. */
|
|
168
|
-
readonly oauth?: OAuthSetupHost;
|
|
169
|
-
}
|
|
170
13
|
export interface ProviderWizardDeps {
|
|
171
14
|
readonly host: ProviderSetupHost;
|
|
172
15
|
readonly ask: (request: AskUserQuestionRequest, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerWizard.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/providerWizard.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"providerWizard.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/providerWizard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAsH,MAAM,sCAAsC,CAAA;AACjM,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAsBjM,OAAO,EAEL,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAA;AAGxC,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAoC,CAAA;AAElE,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,2EAIrB,CAAA;AAEV;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,GAAG,EAAE,CACZ,OAAO,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAC3B,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KACtE,IAAI,CAAA;IACT,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAA;IACrE,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC5E;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAA;AA4D3G;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,qBAAqB,CAAC,CA8BhC"}
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* arrive one at a time in practice (the tool blocks until answered), but
|
|
12
12
|
* concurrent asks from subagents are drained FIFO.
|
|
13
13
|
*/
|
|
14
|
+
import { compositionRoot } from './host-access.js';
|
|
15
|
+
import { type AdapterRuntimeOptions } from '../adapter/kernel/runtime.js';
|
|
14
16
|
import { type AskUserQuestionAnswer, type AskUserQuestionItem, type AskUserQuestionRequest } from '@deepseek-ai/dsh-user-questions';
|
|
15
17
|
/** One answered question as the panel submits it: selected option labels
|
|
16
18
|
* plus optional free-text (the dsh protocol's "Other" answer). */
|
|
@@ -45,6 +47,10 @@ export interface QuestionSummary {
|
|
|
45
47
|
readonly title: string;
|
|
46
48
|
readonly lines: readonly string[];
|
|
47
49
|
}
|
|
50
|
+
/** Host-only registration used by the TUI plugin bootstrap. */
|
|
51
|
+
export declare function bindQuestionStore(ctx: Parameters<typeof compositionRoot>[0], store: QuestionStore): void;
|
|
52
|
+
/** Host-only lookup used by the presentation Port bridge. */
|
|
53
|
+
export declare function getQuestionStore(ctx: Parameters<typeof compositionRoot>[0]): QuestionStore | undefined;
|
|
48
54
|
/**
|
|
49
55
|
* Ask-user-question store: parks asks from the harness's user-interaction
|
|
50
56
|
* seam, surfaces one question at a time to the TUI, and settles each ask
|
|
@@ -52,6 +58,8 @@ export interface QuestionSummary {
|
|
|
52
58
|
* re-renders and answers via {@link QuestionStore.answerCurrent}.
|
|
53
59
|
*/
|
|
54
60
|
export declare class QuestionStore {
|
|
61
|
+
private readonly runtime;
|
|
62
|
+
constructor(runtime?: AdapterRuntimeOptions);
|
|
55
63
|
private readonly queue;
|
|
56
64
|
private active;
|
|
57
65
|
private readonly listeners;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/questions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAEL,KAAK,qBAAqB,EAE1B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAA;AAExC;mEACmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAA;AAwB7C,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IACtC,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAA;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC;AAqDD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAI;IACpB,yEAAyE;IACzE,OAAO,CAAC,SAAS,CAAwB;IACzC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAgC;IAErD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C;;;OAGG;IACH,WAAW,IAAI,gBAAgB,GAAG,IAAI;IAItC;;;OAGG;IACH,aAAa,IAAI,eAAe,EAAE;IAMlC,OAAO,CAAC,IAAI;IAIZ,sEAAsE;IACtE,OAAO,CAAC,eAAe;IAwBvB;;;;;;;;;OASG;IACH,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/questions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAEL,KAAK,qBAAqB,EAE1B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAA;AAExC;mEACmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAA;AAwB7C,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IACtC,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAA;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC;AAID,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAGxG;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,CAGtG;AAqDD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;gBAEnC,OAAO,GAAE,qBAA+C;IAGpE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAI;IACpB,yEAAyE;IACzE,OAAO,CAAC,SAAS,CAAwB;IACzC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAgC;IAErD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C;;;OAGG;IACH,WAAW,IAAI,gBAAgB,GAAG,IAAI;IAItC;;;OAGG;IACH,aAAa,IAAI,eAAe,EAAE;IAMlC,OAAO,CAAC,IAAI;IAIZ,sEAAsE;IACtE,OAAO,CAAC,eAAe;IAwBvB;;;;;;;;;OASG;IACH,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgCnE,8CAA8C;IAC9C,OAAO,CAAC,SAAS;IAOjB;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IA2BjD;;;;OAIG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI;IAWxC,6DAA6D;IAC7D,aAAa,IAAI,IAAI;IAUrB,+DAA+D;IAC/D,SAAS,IAAI,IAAI;IASjB,wEAAwE;IACxE,OAAO,CAAC,MAAM;IAOd,yEAAyE;IACzE,OAAO,CAAC,IAAI;CAMb"}
|
|
@@ -12,7 +12,20 @@
|
|
|
12
12
|
* concurrent asks from subagents are drained FIFO.
|
|
13
13
|
*/
|
|
14
14
|
import { t } from '../i18n.js';
|
|
15
|
+
import { compositionRoot } from './host-access.js';
|
|
16
|
+
import { assertCapabilityShadowPolicy, defaultAdapterRuntime, } from '../adapter/kernel/runtime.js';
|
|
15
17
|
import { UserQuestionError, } from '@deepseek-ai/dsh-user-questions';
|
|
18
|
+
const questionStores = new WeakMap();
|
|
19
|
+
/** Host-only registration used by the TUI plugin bootstrap. */
|
|
20
|
+
export function bindQuestionStore(ctx, store) {
|
|
21
|
+
const root = compositionRoot(ctx);
|
|
22
|
+
questionStores.set(root, store);
|
|
23
|
+
}
|
|
24
|
+
/** Host-only lookup used by the presentation Port bridge. */
|
|
25
|
+
export function getQuestionStore(ctx) {
|
|
26
|
+
const root = compositionRoot(ctx);
|
|
27
|
+
return questionStores.get(root);
|
|
28
|
+
}
|
|
16
29
|
const ASK_ABORTED = 'ASK_ABORTED';
|
|
17
30
|
/**
|
|
18
31
|
* User-initiated cancel (Esc / Ctrl+C in the panel). dsh-plan-mode keys on
|
|
@@ -67,6 +80,10 @@ function buildSummary(pending) {
|
|
|
67
80
|
* re-renders and answers via {@link QuestionStore.answerCurrent}.
|
|
68
81
|
*/
|
|
69
82
|
export class QuestionStore {
|
|
83
|
+
runtime;
|
|
84
|
+
constructor(runtime = defaultAdapterRuntime()) {
|
|
85
|
+
this.runtime = runtime;
|
|
86
|
+
}
|
|
70
87
|
queue = [];
|
|
71
88
|
active;
|
|
72
89
|
listeners = new Set();
|
|
@@ -144,6 +161,7 @@ export class QuestionStore {
|
|
|
144
161
|
* submits the batch, or rejecting when the ask is interrupted.
|
|
145
162
|
*/
|
|
146
163
|
ask(request, options) {
|
|
164
|
+
assertCapabilityShadowPolicy('host.presentation.ask', this.runtime.mode, this.runtime.slices);
|
|
147
165
|
return new Promise((resolve, reject) => {
|
|
148
166
|
const pending = {
|
|
149
167
|
request,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type { RecapOutcome } from '../adapter/ports/channel-catalog.js';
|
|
1
2
|
/**
|
|
2
3
|
* Session recap (`/recap`, pi-recap semantics): a single TOOL-LESS LLM
|
|
3
4
|
* call that summarizes the session's RECENT activity into one line and
|
|
@@ -37,13 +38,4 @@ export declare function parseRecapResponse(raw: string): {
|
|
|
37
38
|
summary: string;
|
|
38
39
|
title?: string;
|
|
39
40
|
};
|
|
40
|
-
/** Outcome of one recap call, as surfaced on the Channel. */
|
|
41
|
-
export interface RecapOutcome {
|
|
42
|
-
/** The one-line summary, or null when the call failed. */
|
|
43
|
-
summary: string | null;
|
|
44
|
-
/** Proposed session title, when the model offered one. */
|
|
45
|
-
title?: string;
|
|
46
|
-
/** Human-readable failure reason (llm missing, stream error, …). */
|
|
47
|
-
error?: string;
|
|
48
|
-
}
|
|
49
41
|
//# sourceMappingURL=recap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recap.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/recap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recap.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/recap.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAkBtC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkCjG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBnF"}
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session recap (`/recap`, pi-recap semantics): a single TOOL-LESS LLM
|
|
3
|
-
* call that summarizes the session's RECENT activity into one line and
|
|
4
|
-
* proposes a short title. Unlike `/btw` it does not replay the full
|
|
5
|
-
* derived history — the recent-activity excerpt below IS the payload, so
|
|
6
|
-
* the call stays cheap and the recap is about the tail of the session,
|
|
7
|
-
* which is exactly what a glance at a resumed/unknown session needs.
|
|
8
|
-
*
|
|
9
|
-
* The answer never enters the session log — it is pure UI state (the
|
|
10
|
-
* RecapPanel in the Chat screen); applying the proposed title goes
|
|
11
|
-
* through the normal `/rename` path (channel.renameSession).
|
|
12
|
-
*
|
|
13
|
-
* @module
|
|
14
|
-
*/
|
|
15
1
|
/** Max chars of recent activity fed to the recap call. */
|
|
16
2
|
export const RECAP_RECENT_CHARS = 6000;
|
|
17
3
|
/** How many exchanges (user + assistant) the recap looks back. */
|
|
@@ -33,6 +33,7 @@ export type TuiEntryRenderer = (payload: unknown) => TuiEntryRenderResult | unde
|
|
|
33
33
|
/** Host-only transcript projection path. Plugins can register a renderer but
|
|
34
34
|
* cannot invoke an arbitrary registered renderer on demand. */
|
|
35
35
|
export interface TuiRendererHost {
|
|
36
|
+
register(type: string, renderer: TuiEntryRenderer): () => void;
|
|
36
37
|
render(type: string, payload: unknown): TuiEntryRenderResult | undefined;
|
|
37
38
|
}
|
|
38
39
|
declare module '@deepseek-ai/cordis' {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/renderers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/renderers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAUtD,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,oBAAoB,GAAG,SAAS,CAAA;AAErF;+DAC+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAA;IAC9D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CAAA;CACzE;AAsBD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,YAAY,EAAE,kBAAkB,CAAA;KACjC;CACF;AAED,gEAAgE;AAChE,qBAAa,kBAAmB,SAAQ,OAAO;gBACjC,GAAG,EAAE,OAAO;IAmCxB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,IAAI;CA+DnF;AA6CD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAOrG;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -25,6 +25,8 @@ import { Service } from '@deepseek-ai/cordis';
|
|
|
25
25
|
import { KNOWN_SESSION_EVENT_TYPES } from '@deepseek-ai/dsh-session';
|
|
26
26
|
import { cleanRenderText } from './sanitize.js';
|
|
27
27
|
import { bindCallerEffect, compositionRoot, concreteService, requirePluginCaller } from './host-access.js';
|
|
28
|
+
import { assertCapabilityShadowPolicy, } from '../adapter/kernel/runtime.js';
|
|
29
|
+
import { adapterRuntimeFor } from '../adapter/kernel/runtime-context.js';
|
|
28
30
|
const TYPE_PATTERN = /^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*$/u;
|
|
29
31
|
/**
|
|
30
32
|
* The built-in session-event vocabulary, FROZEN at module load. The live
|
|
@@ -53,8 +55,30 @@ export class TuiRendererRuntime extends Service {
|
|
|
53
55
|
failedTypes: new Set(),
|
|
54
56
|
host: undefined,
|
|
55
57
|
logger: ctx.logger,
|
|
58
|
+
runtime: adapterRuntimeFor(ctx),
|
|
56
59
|
};
|
|
57
|
-
const host = Object.freeze({
|
|
60
|
+
const host = Object.freeze({
|
|
61
|
+
register: (type, renderer) => {
|
|
62
|
+
const state = rendererStateFor(runtime);
|
|
63
|
+
let normalized;
|
|
64
|
+
try {
|
|
65
|
+
normalized = String(type ?? '').trim().toLowerCase();
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return () => { };
|
|
69
|
+
}
|
|
70
|
+
if (!TYPE_PATTERN.test(normalized) || typeof renderer !== 'function' || state.renderers.has(normalized)) {
|
|
71
|
+
return () => { };
|
|
72
|
+
}
|
|
73
|
+
state.renderers.set(normalized, renderer);
|
|
74
|
+
return () => {
|
|
75
|
+
if (state.renderers.get(normalized) !== renderer)
|
|
76
|
+
return;
|
|
77
|
+
state.renderers.delete(normalized);
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
render: (type, payload) => renderEntry(runtime, type, payload),
|
|
81
|
+
});
|
|
58
82
|
state.host = host;
|
|
59
83
|
hostRenderers.set(runtime, state);
|
|
60
84
|
}
|
|
@@ -66,6 +90,7 @@ export class TuiRendererRuntime extends Service {
|
|
|
66
90
|
* pluginId — omitting it records `undeclared` (C-060).
|
|
67
91
|
*/
|
|
68
92
|
register(type, renderer, identity) {
|
|
93
|
+
assertCapabilityShadowPolicy('host.renderers.register', rendererStateFor(this).runtime.mode, rendererStateFor(this).runtime.slices);
|
|
69
94
|
let caller;
|
|
70
95
|
try {
|
|
71
96
|
caller = requirePluginCaller(this.ctx, 'tuiRenderers.register', this);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Provider-neutral full-screen scene registry for terminal front doors. */
|
|
2
2
|
import type React from 'react';
|
|
3
3
|
import { Context, Service } from '@deepseek-ai/cordis';
|
|
4
|
-
import type { Channel } from '
|
|
4
|
+
import type { ChannelUi as Channel } from '../adapter/channel/ui-policy.js';
|
|
5
5
|
/**
|
|
6
6
|
* Props every plugin scene receives. Both element creation and hooks must go
|
|
7
7
|
* through the HOST's React, never the plugin's own copy:
|
|
@@ -40,6 +40,8 @@ export interface TuiSceneDescriptor {
|
|
|
40
40
|
/** Host-only scene controls used by the channel; omitted from the plugin export. */
|
|
41
41
|
export interface TuiSceneHost {
|
|
42
42
|
readonly active: TuiSceneDescriptor | undefined;
|
|
43
|
+
register(descriptor: TuiSceneDescriptor): () => void;
|
|
44
|
+
list(): readonly TuiSceneDescriptor[];
|
|
43
45
|
open(id: string): boolean;
|
|
44
46
|
close(): void;
|
|
45
47
|
subscribe(listener: () => void): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenes.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/scenes.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"scenes.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/scenes.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iCAAiC,CAAA;AAS3E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,8DAA8D;IAC9D,EAAE,EAAE,cAAc,UAAU,CAAC,CAAA;IAC7B,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAChB,mEAAmE;IACnE,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAA;IACV,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;CAC9C;AAED,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAAA;IACpD,IAAI,IAAI,SAAS,kBAAkB,EAAE,CAAA;IACrC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;IACzB,KAAK,IAAI,IAAI,CAAA;IACb,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;CAC5C;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,SAAS,EAAE,eAAe,CAAA;KAC3B;CACF;AAED,eAAO,MAAM,IAAI,mBAAmB,CAAA;AAEpC;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,OAAO;gBAC9B,GAAG,EAAE,OAAO;IAkDxB;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,IAAI;IAkDxE;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAOzB,KAAK,IAAI,IAAI;IAOb,8DAA8D;IAC9D,IAAI,MAAM,IAAI,kBAAkB,GAAG,SAAS,CAQ3C;IAED,4EAA4E;IAC5E,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;CAU5C;AAmED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAOlG;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import { Service } from '@deepseek-ai/cordis';
|
|
3
3
|
import { activationFiber, bindCallerEffect, compositionRoot, concreteService, requirePluginCaller } from './host-access.js';
|
|
4
4
|
import { componentIdentityOf } from './component-identity.js';
|
|
5
|
+
import { assertCapabilityShadowPolicy, } from '../adapter/kernel/runtime.js';
|
|
6
|
+
import { adapterRuntimeFor } from '../adapter/kernel/runtime-context.js';
|
|
5
7
|
export const name = 'dsh-tui-scenes';
|
|
6
8
|
/**
|
|
7
9
|
* Small host-only registry; command execution remains owned by dsh-commands.
|
|
@@ -24,11 +26,35 @@ export class TuiSceneRuntime extends Service {
|
|
|
24
26
|
current: undefined,
|
|
25
27
|
host: undefined,
|
|
26
28
|
logger: ctx.logger,
|
|
29
|
+
runtime: adapterRuntimeFor(ctx),
|
|
27
30
|
};
|
|
28
31
|
state.host = Object.freeze({
|
|
29
32
|
get active() {
|
|
30
33
|
return sceneStateFor(runtime).current;
|
|
31
34
|
},
|
|
35
|
+
register(descriptor) {
|
|
36
|
+
const state = sceneStateFor(runtime);
|
|
37
|
+
const id = descriptor.id.trim().toLowerCase();
|
|
38
|
+
if (!/^[a-z][a-z0-9_-]*$/u.test(id))
|
|
39
|
+
throw new TypeError(`invalid TUI scene id: ${descriptor.id}`);
|
|
40
|
+
if (state.scenes.has(id))
|
|
41
|
+
throw new Error(`TUI scene "${id}" is already registered`);
|
|
42
|
+
const normalized = Object.freeze({ ...descriptor, id });
|
|
43
|
+
state.scenes.set(id, normalized);
|
|
44
|
+
return () => {
|
|
45
|
+
if (state.scenes.get(id) !== normalized)
|
|
46
|
+
return;
|
|
47
|
+
state.scenes.delete(id);
|
|
48
|
+
state.owners.delete(id);
|
|
49
|
+
if (state.current === normalized) {
|
|
50
|
+
state.current = undefined;
|
|
51
|
+
notifyScenes(state);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
list() {
|
|
56
|
+
return [...sceneStateFor(runtime).scenes.values()];
|
|
57
|
+
},
|
|
32
58
|
open(id) {
|
|
33
59
|
return openScene(runtime, id);
|
|
34
60
|
},
|
|
@@ -48,6 +74,7 @@ export class TuiSceneRuntime extends Service {
|
|
|
48
74
|
* records `undeclared` (C-060).
|
|
49
75
|
*/
|
|
50
76
|
register(descriptor, identity) {
|
|
77
|
+
assertCapabilityShadowPolicy('host.scenes.register', sceneStateFor(this).runtime.mode, sceneStateFor(this).runtime.slices);
|
|
51
78
|
const state = sceneStateFor(this);
|
|
52
79
|
const caller = requirePluginCaller(this.ctx, 'tuiScenes.register', this);
|
|
53
80
|
const activationOwner = activationFiber(caller);
|
|
@@ -95,11 +122,13 @@ export class TuiSceneRuntime extends Service {
|
|
|
95
122
|
* the log, not silently do nothing in the UI.
|
|
96
123
|
*/
|
|
97
124
|
open(id) {
|
|
125
|
+
assertCapabilityShadowPolicy('host.scenes.open', sceneStateFor(this).runtime.mode, sceneStateFor(this).runtime.slices);
|
|
98
126
|
const caller = requirePluginCaller(this.ctx, 'tuiScenes.open', this);
|
|
99
127
|
const owner = activationFiber(caller);
|
|
100
128
|
return owner === undefined ? false : openScene(this, id, caller, owner);
|
|
101
129
|
}
|
|
102
130
|
close() {
|
|
131
|
+
assertCapabilityShadowPolicy('host.scenes.close', sceneStateFor(this).runtime.mode, sceneStateFor(this).runtime.slices);
|
|
103
132
|
const caller = requirePluginCaller(this.ctx, 'tuiScenes.close', this);
|
|
104
133
|
const owner = activationFiber(caller);
|
|
105
134
|
if (owner !== undefined)
|
|
@@ -107,6 +136,7 @@ export class TuiSceneRuntime extends Service {
|
|
|
107
136
|
}
|
|
108
137
|
/** The scene currently replacing the conversation, if any. */
|
|
109
138
|
get active() {
|
|
139
|
+
assertCapabilityShadowPolicy('host.scenes.active', sceneStateFor(this).runtime.mode, sceneStateFor(this).runtime.slices);
|
|
110
140
|
const caller = requirePluginCaller(this.ctx, 'tuiScenes.active', this);
|
|
111
141
|
const owner = activationFiber(caller);
|
|
112
142
|
const state = sceneStateFor(this);
|
|
@@ -116,6 +146,7 @@ export class TuiSceneRuntime extends Service {
|
|
|
116
146
|
}
|
|
117
147
|
/** UI-side change feed: fired after every open/close/dispose transition. */
|
|
118
148
|
subscribe(listener) {
|
|
149
|
+
assertCapabilityShadowPolicy('host.scenes.subscribe', sceneStateFor(this).runtime.mode, sceneStateFor(this).runtime.slices);
|
|
119
150
|
const caller = requirePluginCaller(this.ctx, 'tuiScenes.subscribe', this);
|
|
120
151
|
const owner = activationFiber(caller);
|
|
121
152
|
if (owner === undefined)
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { SessionTreeData, TreeNode, TreeEntry } from '../adapter/ports/channel-session.js';
|
|
2
|
+
export type { SessionTreeData, TreeNode, TreeEntry, TreeEntryKind, SessionTreeMeta, SessionRewindFacts, TurnRange } from '../adapter/ports/channel-session.js';
|
|
1
3
|
/**
|
|
2
4
|
* Session family tree — the model behind the /tree screen
|
|
3
5
|
* (pi's Session Tree ported to DSH's cross-session fork model).
|
|
@@ -15,37 +17,9 @@
|
|
|
15
17
|
* @module @deepseek-harness-tui/dsh-tui/sessionTree
|
|
16
18
|
*/
|
|
17
19
|
import type { SessionEvent } from '@deepseek-ai/dsh-session';
|
|
18
|
-
/** Displayable entry kinds (a subset of ChatRow kinds, plus fork structure). */
|
|
19
|
-
export type TreeEntryKind = 'user' | 'assistant' | 'tool' | 'compact' | 'interrupt' | 'notice';
|
|
20
20
|
/** Filter modes cycled in the tree screen (pi parity, minus labels). */
|
|
21
21
|
export type TreeFilter = 'default' | 'no-tools' | 'user-only' | 'all';
|
|
22
22
|
export declare const TREE_FILTERS: readonly TreeFilter[];
|
|
23
|
-
/** One displayable log entry; identity = (sessionId, seq). */
|
|
24
|
-
export interface TreeEntry {
|
|
25
|
-
readonly sessionId: string;
|
|
26
|
-
/** Source event seq inside that session's log (the fork anchor). */
|
|
27
|
-
readonly seq: number;
|
|
28
|
-
readonly kind: TreeEntryKind;
|
|
29
|
-
/** One-line preview (whitespace folded, capped). */
|
|
30
|
-
readonly text: string;
|
|
31
|
-
/** Uncapped searchable text (kind + tool name + content). */
|
|
32
|
-
readonly searchText: string;
|
|
33
|
-
/** Event wall-clock time. */
|
|
34
|
-
readonly time: number;
|
|
35
|
-
/** Tool outcome for kind 'tool' (settled by tool/result during extraction). */
|
|
36
|
-
readonly toolStatus?: 'running' | 'ok' | 'error';
|
|
37
|
-
/** Extra marker (e.g. `aborted` for chunk-only assistant text). */
|
|
38
|
-
readonly label?: string;
|
|
39
|
-
/** True on entries of the log's OWN first turn (a complete log's turn 0).
|
|
40
|
-
* Only USER entries among them are unrewindable (dropping turn 0 needs
|
|
41
|
-
* boundary -1, "cannot rewind to the very first message"), so the screen
|
|
42
|
-
* refuses those up front instead of failing at confirm time; non-user
|
|
43
|
-
* turn-0 entries rewind fine (a mid-turn cut at their step's step/end, or
|
|
44
|
-
* turn 0's closing turn/end). Never set on a truncated tail: its first
|
|
45
|
-
* VISIBLE turn rewinds fine against the full log, which is where
|
|
46
|
-
* rewindToNode computes boundaries. */
|
|
47
|
-
readonly firstTurn?: boolean;
|
|
48
|
-
}
|
|
49
23
|
/** One family member's log, as channel.buildSessionTree gathered it. */
|
|
50
24
|
export interface FamilySession {
|
|
51
25
|
readonly id: string;
|
|
@@ -73,58 +47,6 @@ export interface FamilySession {
|
|
|
73
47
|
* hold content the UX claims does not exist. */
|
|
74
48
|
readonly tailComplete?: boolean;
|
|
75
49
|
}
|
|
76
|
-
export interface TreeNode {
|
|
77
|
-
/** `${sessionId}:${seq}`, or `${sessionId}:head` for a placeholder. */
|
|
78
|
-
readonly id: string;
|
|
79
|
-
/** Null only on a session's placeholder node (empty fork / unreadable log). */
|
|
80
|
-
readonly entry: TreeEntry | null;
|
|
81
|
-
/** Session whose chain this node belongs to. */
|
|
82
|
-
readonly sessionId: string;
|
|
83
|
-
/** True on a session chain's first node (renders the fork/session marker). */
|
|
84
|
-
branchHead: boolean;
|
|
85
|
-
children: TreeNode[];
|
|
86
|
-
}
|
|
87
|
-
export interface SessionTreeData {
|
|
88
|
-
readonly roots: readonly TreeNode[];
|
|
89
|
-
/** Node ids on the path from the family root to the live tip (`•` marker). */
|
|
90
|
-
readonly activePath: ReadonlySet<string>;
|
|
91
|
-
/** Live session's last node (initial cursor target). */
|
|
92
|
-
readonly activeLeafId: string | null;
|
|
93
|
-
/** Per-session display facts (branch-head labels in the screen). */
|
|
94
|
-
readonly sessions: ReadonlyMap<string, SessionTreeMeta>;
|
|
95
|
-
/** Per-session rewind UX facts (drop-turn warning, branch-adopt target). */
|
|
96
|
-
readonly rewindFacts: ReadonlyMap<string, SessionRewindFacts>;
|
|
97
|
-
/** True when the family exceeded a cap and distant branches were dropped. */
|
|
98
|
-
readonly truncated: boolean;
|
|
99
|
-
readonly sessionCount: number;
|
|
100
|
-
}
|
|
101
|
-
/** One own turn of a session, as far as the loaded events show it. */
|
|
102
|
-
export interface TurnRange {
|
|
103
|
-
/** turn/start seq. */
|
|
104
|
-
readonly start: number;
|
|
105
|
-
/** turn/end seq, or the last loaded event's seq while the turn is open. */
|
|
106
|
-
readonly end: number;
|
|
107
|
-
/** Displayable own entries inside (start, end]. */
|
|
108
|
-
readonly entries: number;
|
|
109
|
-
/** The turn/end was seen (an open turn's end is only the loaded tail). */
|
|
110
|
-
readonly closed: boolean;
|
|
111
|
-
}
|
|
112
|
-
/** Per-session rewind UX facts, derived from the loaded events at build time. */
|
|
113
|
-
export interface SessionRewindFacts {
|
|
114
|
-
/** Own turns in seq order. A turn whose start was trimmed away (coverage /
|
|
115
|
-
* budget head cut) has no range — its entries find no match and the
|
|
116
|
-
* confirm UX stays silent rather than guessing. */
|
|
117
|
-
readonly turns: readonly TurnRange[];
|
|
118
|
-
/** Own entries displayed for this session. */
|
|
119
|
-
readonly ownEntries: number;
|
|
120
|
-
/** The loaded events reach the log tip (see FamilySession.tailComplete). */
|
|
121
|
-
readonly tailComplete: boolean;
|
|
122
|
-
/** Adopt-this-branch fork target: the log's last turn/end seq. Only set
|
|
123
|
-
* when tailComplete holds and a closed turn exists — a tail-cut read's
|
|
124
|
-
* last turn/end is NOT the branch tip, and forking there would silently
|
|
125
|
-
* drop the unseen tail the user means to keep. */
|
|
126
|
-
readonly tipBoundary?: number;
|
|
127
|
-
}
|
|
128
50
|
/** What dropping a user-message pick's turn removes (the confirm warning). */
|
|
129
51
|
export interface DropTurnInfo {
|
|
130
52
|
/** Own entries of the session inside the dropped turn. */
|
|
@@ -141,14 +63,6 @@ export interface DropTurnInfo {
|
|
|
141
63
|
* step) and whenever the turn cannot be located in the loaded events.
|
|
142
64
|
*/
|
|
143
65
|
export declare function droppedTurnInfo(data: SessionTreeData, entry: TreeEntry): DropTurnInfo | undefined;
|
|
144
|
-
export interface SessionTreeMeta {
|
|
145
|
-
readonly title?: string;
|
|
146
|
-
readonly createdAt: number;
|
|
147
|
-
readonly live: boolean;
|
|
148
|
-
readonly unreadable: boolean;
|
|
149
|
-
/** Log unread because the browse budget was spent (placeholder node). */
|
|
150
|
-
readonly unloaded: boolean;
|
|
151
|
-
}
|
|
152
66
|
/** One flattened, render-ready row with its tree-drawing geometry. */
|
|
153
67
|
export interface FlatNode {
|
|
154
68
|
readonly node: TreeNode;
|
|
@@ -175,13 +89,18 @@ export interface GutterInfo {
|
|
|
175
89
|
}
|
|
176
90
|
/**
|
|
177
91
|
* Coalesce runs of same-type assistant/chunk deltas into single synthetic
|
|
178
|
-
* events for REPLAY only. A streamed turn logs one event per token
|
|
179
|
-
* events in long sessions); replaying them one at a time costs
|
|
180
|
-
* string growth on every row (quadratic in the turn's length).
|
|
181
|
-
* outcome-identical: ensureStreaming/ensureReasoning only read
|
|
182
|
-
* and the concatenated text, and the row's seq comes from the
|
|
183
|
-
* chunk (the fork boundary rewindToNode derives from it). Parts
|
|
184
|
-
* no quadratic concat. Live events never go through this.
|
|
92
|
+
* events for REPLAY only. A streamed pre-V3 turn logs one event per token
|
|
93
|
+
* (~100k events in long sessions); replaying them one at a time costs
|
|
94
|
+
* per-chunk string growth on every row (quadratic in the turn's length).
|
|
95
|
+
* Merging is outcome-identical: ensureStreaming/ensureReasoning only read
|
|
96
|
+
* chunk.type and the concatenated text, and the row's seq comes from the
|
|
97
|
+
* run's FIRST chunk (the fork boundary rewindToNode derives from it). Parts
|
|
98
|
+
* join once — no quadratic concat. Live events never go through this.
|
|
99
|
+
*
|
|
100
|
+
* Pre-V3 durable logs only: 0.1.5 removed `assistant/chunk` from the event
|
|
101
|
+
* union (V3 embeds the compacted stream in `assistant/message.stream`), so
|
|
102
|
+
* the merger works on the widened structural shape — runtime payloads from
|
|
103
|
+
* raw pre-V3 logs remain typed as SessionEvent by the reader.
|
|
185
104
|
*
|
|
186
105
|
* (Moved from channel.ts: the transcript replay and the tree extraction
|
|
187
106
|
* share it.)
|