@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,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal real upstream driver for the Host Descriptor / diagnostics slice.
|
|
3
|
+
*
|
|
4
|
+
* The driver never treats "the npm package is installed" or "the service key
|
|
5
|
+
* exists" as live support. It distinguishes:
|
|
6
|
+
* - service present -> evidence.kind = 'service'
|
|
7
|
+
* - method/capability -> evidence.kind = 'method'
|
|
8
|
+
* - a read-only probe -> evidence.kind = 'probe'
|
|
9
|
+
*
|
|
10
|
+
* A lifecycle becomes `live` only when `verifyAndPromote()` sees at least one
|
|
11
|
+
* `probe` evidence item. Method/source presence alone keeps the capability
|
|
12
|
+
* `staged` or `degraded`.
|
|
13
|
+
*/
|
|
14
|
+
import type { CapabilityLifecycle } from '../kernel/lifecycle.js';
|
|
15
|
+
import type { Detection } from './detection.js';
|
|
16
|
+
import type { UpstreamDriver } from './driver.js';
|
|
17
|
+
/**
|
|
18
|
+
* Structured detection for the complete host descriptor capability.
|
|
19
|
+
*
|
|
20
|
+
* Supported only when the host service is present, its descriptor methods are
|
|
21
|
+
* present, AND a read-only `describe()` probe actually returns a valid build.
|
|
22
|
+
*/
|
|
23
|
+
export declare function detectHostDescriptorCapability(ctx: unknown): Detection;
|
|
24
|
+
/**
|
|
25
|
+
* Build the per-contract lifecycle list from the live host services.
|
|
26
|
+
*
|
|
27
|
+
* All returned lifecycles are `staged`; the caller must call
|
|
28
|
+
* `verifyAndPromote()` before using them as live publication evidence.
|
|
29
|
+
* Service/method evidence alone cannot cross the verifier; a real probe is
|
|
30
|
+
* required.
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildHostCapabilityLifecycles(ctx: unknown): CapabilityLifecycle[];
|
|
33
|
+
/**
|
|
34
|
+
* Run the full async live-verification path for the host descriptor slice.
|
|
35
|
+
*
|
|
36
|
+
* This is the production driver method behind `KernelRuntime.refresh()` in
|
|
37
|
+
* legacy/new modes. It performs the real reversible probes and returns
|
|
38
|
+
* capability lifecycles that already carry `probe` evidence. In passive/replay
|
|
39
|
+
* production modes the Kernel must not call this on a real host context; the
|
|
40
|
+
* replay harness may call it on an isolated mock context.
|
|
41
|
+
*/
|
|
42
|
+
export declare function refreshHostCapabilityLifecycles(ctx: unknown): Promise<CapabilityLifecycle[]>;
|
|
43
|
+
/** The driver object for future kernel composition. */
|
|
44
|
+
export declare const hostDescriptorDriver: UpstreamDriver;
|
|
45
|
+
//# sourceMappingURL=host-descriptor-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-descriptor-driver.d.ts","sourceRoot":"","sources":["../../../../src/adapter/upstream/host-descriptor-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAUjE,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,aAAa,CAAA;AA8BtE;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAwCtE;AAkYD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,EAAE,CAejF;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAgElG;AAED,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,EAAE,cAclC,CAAA"}
|
|
@@ -0,0 +1,606 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal real upstream driver for the Host Descriptor / diagnostics slice.
|
|
3
|
+
*
|
|
4
|
+
* The driver never treats "the npm package is installed" or "the service key
|
|
5
|
+
* exists" as live support. It distinguishes:
|
|
6
|
+
* - service present -> evidence.kind = 'service'
|
|
7
|
+
* - method/capability -> evidence.kind = 'method'
|
|
8
|
+
* - a read-only probe -> evidence.kind = 'probe'
|
|
9
|
+
*
|
|
10
|
+
* A lifecycle becomes `live` only when `verifyAndPromote()` sees at least one
|
|
11
|
+
* `probe` evidence item. Method/source presence alone keeps the capability
|
|
12
|
+
* `staged` or `degraded`.
|
|
13
|
+
*/
|
|
14
|
+
import { randomUUID } from 'node:crypto';
|
|
15
|
+
import { KERNEL_HOST_SUPPORTED_CONTRACTS, KERNEL_TUI_DECISION_EVENT_NAMES } from '../kernel/contract-catalog.js';
|
|
16
|
+
import { lifecycleFromDetection } from '../kernel/lifecycle.js';
|
|
17
|
+
import { hasCommandLiveProbe, hasMessageLiveProbe, hasStorageLiveProbe, runCommandLiveProbe, runMessageLiveProbe, runStorageLiveProbe, } from '../kernel/host-probe-access.js';
|
|
18
|
+
function serviceEvidence(id) {
|
|
19
|
+
return { kind: 'service', id };
|
|
20
|
+
}
|
|
21
|
+
function methodEvidence(service, method) {
|
|
22
|
+
return { kind: 'method', id: `${service}:${method}` };
|
|
23
|
+
}
|
|
24
|
+
function probeEvidence(id, detail) {
|
|
25
|
+
return { kind: 'probe', id, detail };
|
|
26
|
+
}
|
|
27
|
+
function hasFunction(value, name) {
|
|
28
|
+
return typeof value?.[name] === 'function';
|
|
29
|
+
}
|
|
30
|
+
function errorText(error) {
|
|
31
|
+
return error instanceof Error ? error.message : String(error);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Structured detection for the complete host descriptor capability.
|
|
35
|
+
*
|
|
36
|
+
* Supported only when the host service is present, its descriptor methods are
|
|
37
|
+
* present, AND a read-only `describe()` probe actually returns a valid build.
|
|
38
|
+
*/
|
|
39
|
+
export function detectHostDescriptorCapability(ctx) {
|
|
40
|
+
const host = ctx?.get?.('tuiPluginHost');
|
|
41
|
+
if (host === undefined) {
|
|
42
|
+
return { state: 'unsupported', reason: 'tuiPluginHost service is not mounted' };
|
|
43
|
+
}
|
|
44
|
+
const evidence = [serviceEvidence('tuiPluginHost')];
|
|
45
|
+
const missing = [];
|
|
46
|
+
if (!hasFunction(host, 'hostDescriptor'))
|
|
47
|
+
missing.push('hostDescriptor()');
|
|
48
|
+
else
|
|
49
|
+
evidence.push(methodEvidence('tuiPluginHost', 'hostDescriptor'));
|
|
50
|
+
if (!hasFunction(host, 'describe'))
|
|
51
|
+
missing.push('describe()');
|
|
52
|
+
else
|
|
53
|
+
evidence.push(methodEvidence('tuiPluginHost', 'describe'));
|
|
54
|
+
if (missing.length > 0) {
|
|
55
|
+
return { state: 'degraded', missing, evidence };
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const build = host.describe();
|
|
59
|
+
if (build?.descriptor === undefined || typeof build.descriptor !== 'object') {
|
|
60
|
+
return {
|
|
61
|
+
state: 'degraded',
|
|
62
|
+
missing: ['descriptor-build'],
|
|
63
|
+
evidence: [...evidence, probeEvidence('describe()', 'method returned no descriptor object')],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
state: 'supported',
|
|
68
|
+
evidence: [
|
|
69
|
+
...evidence,
|
|
70
|
+
probeEvidence('describe()', 'read-only descriptor build probe succeeded'),
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
return {
|
|
76
|
+
state: 'degraded',
|
|
77
|
+
missing: ['descriptor-build'],
|
|
78
|
+
evidence: [
|
|
79
|
+
...evidence,
|
|
80
|
+
probeEvidence('describe()', errorText(error)),
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function contractServiceName(coordinate) {
|
|
86
|
+
switch (coordinate.kind) {
|
|
87
|
+
case 'Command': return 'commands';
|
|
88
|
+
case 'LocalStorage': return 'tuiPluginStorage';
|
|
89
|
+
case 'MessageObserver': return 'tuiMessageObserver';
|
|
90
|
+
case 'DecisionEvents': return 'tuiPluginHost';
|
|
91
|
+
default: return '';
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Read-only Command catalog probe. It verifies the host can enumerate the
|
|
95
|
+
* effective command catalog without registering or executing anything, but
|
|
96
|
+
* it does NOT verify a real command invocation. Because the v0.15 Command
|
|
97
|
+
* protocol has no feature-granular support spec, this probe must not cross
|
|
98
|
+
* the publication barrier: the contract remains staged/degraded until a real
|
|
99
|
+
* execution probe exists. */
|
|
100
|
+
function probeCommand(service) {
|
|
101
|
+
if (!hasFunction(service, 'list')) {
|
|
102
|
+
return { evidence: [], missing: ['commands.list()'] };
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
const list = service.list(undefined);
|
|
106
|
+
if (!Array.isArray(list))
|
|
107
|
+
throw new Error('commands.list() did not return an array');
|
|
108
|
+
return {
|
|
109
|
+
evidence: [{ kind: 'method', id: 'commands.list(undefined)', detail: 'read-only command catalog probe; invocation is not verified' }],
|
|
110
|
+
missing: ['commands.execute(undefined)'],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
return {
|
|
115
|
+
evidence: [{ kind: 'method', id: 'commands.list(undefined)', detail: errorText(error) }],
|
|
116
|
+
missing: ['commands.list()', 'commands.execute(undefined)'],
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** Storage capability probe. The only current `probeDiagnostic()` confirms the
|
|
121
|
+
* runtime is mounted; it does not verify a real no-side-effect storage read or
|
|
122
|
+
* write. Until such a probe exists, storage must remain staged/degraded and
|
|
123
|
+
* must not be published as live. */
|
|
124
|
+
function probeStorage(service) {
|
|
125
|
+
if (!hasFunction(service, 'probeDiagnostic')) {
|
|
126
|
+
return { evidence: [], missing: ['tuiPluginStorage.probeDiagnostic()'] };
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
const result = service.probeDiagnostic();
|
|
130
|
+
if (result?.ok !== true)
|
|
131
|
+
throw new Error('storage probe did not acknowledge the mounted runtime');
|
|
132
|
+
return {
|
|
133
|
+
evidence: [{ kind: 'method', id: 'tuiPluginStorage.probeDiagnostic()', detail: 'mounted-runtime diagnostic only; no real storage I/O probe' }],
|
|
134
|
+
missing: ['real-read-only-storage-probe'],
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
return {
|
|
139
|
+
evidence: [{ kind: 'method', id: 'tuiPluginStorage.probeDiagnostic()', detail: errorText(error) }],
|
|
140
|
+
missing: ['real-read-only-storage-probe'],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/** Message observer capability probe. The only current `probeDiagnostic()`
|
|
145
|
+
* confirms the mounted broker; it does not verify a real no-side-effect
|
|
146
|
+
* subscription/delivery path. Until such a probe exists, the contract must
|
|
147
|
+
* remain staged/degraded and must not be published as live. */
|
|
148
|
+
function probeMessageObserver(service) {
|
|
149
|
+
if (!hasFunction(service, 'probeDiagnostic')) {
|
|
150
|
+
return { evidence: [], missing: ['tuiMessageObserver.probeDiagnostic()'] };
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
const result = service.probeDiagnostic();
|
|
154
|
+
if (result?.ok !== true)
|
|
155
|
+
throw new Error('message observer probe did not acknowledge the mounted runtime');
|
|
156
|
+
return {
|
|
157
|
+
evidence: [{ kind: 'method', id: 'tuiMessageObserver.probeDiagnostic()', detail: 'mounted-runtime diagnostic only; no real observer I/O probe' }],
|
|
158
|
+
missing: ['real-read-only-observer-probe'],
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
return {
|
|
163
|
+
evidence: [{ kind: 'method', id: 'tuiMessageObserver.probeDiagnostic()', detail: errorText(error) }],
|
|
164
|
+
missing: ['real-read-only-observer-probe'],
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/** DecisionEvents are enumerated through the host's installed decision guard
|
|
169
|
+
* AND a real channel/dispatch topology probe. The host's probe returns event
|
|
170
|
+
* names only when a real dispatch source exists; guard installation alone is
|
|
171
|
+
* never enough. Only those returned names are treated as verified features. */
|
|
172
|
+
function probeDecisionEvents(service) {
|
|
173
|
+
if (!hasFunction(service, 'probeDecisionEvents')) {
|
|
174
|
+
return { evidence: [], missing: ['tuiPluginHost.probeDecisionEvents()'] };
|
|
175
|
+
}
|
|
176
|
+
// A real dispatch topology probe is only publication evidence when the
|
|
177
|
+
// mediated subscription entry actually exists. If the method is missing,
|
|
178
|
+
// keep the whole capability degraded and never publish DecisionEvents even
|
|
179
|
+
// when a channel/probe is otherwise present.
|
|
180
|
+
if (!hasFunction(service, 'subscribeDecision')) {
|
|
181
|
+
return {
|
|
182
|
+
evidence: [],
|
|
183
|
+
missing: ['tuiPluginHost.subscribeDecision()'],
|
|
184
|
+
liveFeatures: Object.freeze([]),
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
try {
|
|
188
|
+
const available = service.probeDecisionEvents();
|
|
189
|
+
if (!Array.isArray(available))
|
|
190
|
+
throw new Error('probeDecisionEvents() did not return an array');
|
|
191
|
+
const verified = KERNEL_TUI_DECISION_EVENT_NAMES.filter(event => available.includes(event));
|
|
192
|
+
const missing = KERNEL_TUI_DECISION_EVENT_NAMES
|
|
193
|
+
.filter(event => !verified.includes(event))
|
|
194
|
+
.map(event => `decision-event:${event}`);
|
|
195
|
+
return {
|
|
196
|
+
evidence: [
|
|
197
|
+
probeEvidence('tuiPluginHost.probeDecisionEvents()', `verified ${verified.length}/${KERNEL_TUI_DECISION_EVENT_NAMES.length} decision events`),
|
|
198
|
+
],
|
|
199
|
+
missing,
|
|
200
|
+
liveFeatures: Object.freeze([...verified].sort()),
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
return {
|
|
205
|
+
evidence: [probeEvidence('tuiPluginHost.probeDecisionEvents()', errorText(error))],
|
|
206
|
+
missing: ['tuiPluginHost.probeDecisionEvents()'],
|
|
207
|
+
liveFeatures: Object.freeze([]),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/** Reversible Command live probe.
|
|
212
|
+
*
|
|
213
|
+
* This runs only outside passive/replay production modes (the Kernel skips it),
|
|
214
|
+
* and only on an isolated/real-but-cleanable context:
|
|
215
|
+
* - register one unique no-op command,
|
|
216
|
+
* - resolve it through find/list,
|
|
217
|
+
* - execute it against an in-memory fake agent whose session is a local event
|
|
218
|
+
* collector (no durable DSH session log is touched),
|
|
219
|
+
* - unregister in `finally`.
|
|
220
|
+
*
|
|
221
|
+
* Side-effect boundary: the temporary registration is in-memory and removed
|
|
222
|
+
* before this function returns; the fake session never reaches DSH persistence.
|
|
223
|
+
* The only observable transient is a commands/change notification from the
|
|
224
|
+
* in-process registry while the probe is registered.
|
|
225
|
+
*/
|
|
226
|
+
async function probeCommandLive(service) {
|
|
227
|
+
if (!hasFunction(service, 'register') || !hasFunction(service, 'list') || !hasFunction(service, 'find')) {
|
|
228
|
+
return { evidence: [], missing: ['commands.register()', 'commands.list()', 'commands.find()'] };
|
|
229
|
+
}
|
|
230
|
+
const name = `dsh_tui_live_probe_${randomUUID().replace(/-/g, '').slice(0, 12)}`;
|
|
231
|
+
const definition = {
|
|
232
|
+
name,
|
|
233
|
+
description: 'dsh-tui adapter reversible live probe',
|
|
234
|
+
handler: () => ({ kind: 'success', text: 'ok' }),
|
|
235
|
+
};
|
|
236
|
+
let dispose;
|
|
237
|
+
let lifecycleAppends = 0;
|
|
238
|
+
try {
|
|
239
|
+
dispose = service.register(definition);
|
|
240
|
+
const found = service.find(undefined, name);
|
|
241
|
+
if (found === undefined)
|
|
242
|
+
throw new Error('temporary command was not resolvable through find()');
|
|
243
|
+
const list = service.list(undefined);
|
|
244
|
+
if (!Array.isArray(list) || !list.some(entry => entry?.name === name)) {
|
|
245
|
+
throw new Error('temporary command was not visible through list()');
|
|
246
|
+
}
|
|
247
|
+
if (!hasFunction(service, 'execute')) {
|
|
248
|
+
return { evidence: [], missing: ['commands.execute()'] };
|
|
249
|
+
}
|
|
250
|
+
const events = [];
|
|
251
|
+
const session = {
|
|
252
|
+
append(type, data) {
|
|
253
|
+
events.push([type, data]);
|
|
254
|
+
return true;
|
|
255
|
+
},
|
|
256
|
+
};
|
|
257
|
+
const fakeAgent = { session };
|
|
258
|
+
const COMMAND_PROBE_TIMEOUT_MS = 2_000;
|
|
259
|
+
let timer;
|
|
260
|
+
const abortController = new AbortController();
|
|
261
|
+
const executePromise = service.execute(fakeAgent, `/${name}`, [], abortController.signal);
|
|
262
|
+
// A timeout/short-circuit must not leave a late rejection from execute as
|
|
263
|
+
// an unhandled rejection, and must abort the underlying command execution
|
|
264
|
+
// when the probe gives up.
|
|
265
|
+
void executePromise.catch(() => undefined);
|
|
266
|
+
const timeout = new Promise((_, reject) => {
|
|
267
|
+
timer = setTimeout(() => {
|
|
268
|
+
abortController.abort();
|
|
269
|
+
reject(new Error(`command live probe timed out after ${COMMAND_PROBE_TIMEOUT_MS}ms`));
|
|
270
|
+
}, COMMAND_PROBE_TIMEOUT_MS);
|
|
271
|
+
});
|
|
272
|
+
let result;
|
|
273
|
+
try {
|
|
274
|
+
result = await Promise.race([executePromise, timeout]);
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
abortController.abort();
|
|
278
|
+
throw error;
|
|
279
|
+
}
|
|
280
|
+
finally {
|
|
281
|
+
if (timer !== undefined)
|
|
282
|
+
clearTimeout(timer);
|
|
283
|
+
}
|
|
284
|
+
if (result === undefined || result.result?.kind !== 'success') {
|
|
285
|
+
throw new Error('temporary command execute did not settle as success');
|
|
286
|
+
}
|
|
287
|
+
lifecycleAppends = events.length;
|
|
288
|
+
return {
|
|
289
|
+
evidence: [
|
|
290
|
+
probeEvidence(`commands.register+execute(${name})`, `reversible no-op command lifecycle: register -> find -> list -> execute (${lifecycleAppends} in-memory lifecycle appends); unregistered in finally`),
|
|
291
|
+
],
|
|
292
|
+
missing: [],
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
return {
|
|
297
|
+
evidence: [probeEvidence(`commands.register+execute(${name})`, errorText(error))],
|
|
298
|
+
missing: ['commands.reversible-live-probe'],
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
finally {
|
|
302
|
+
try {
|
|
303
|
+
dispose?.();
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
// Cleanup is best-effort; the in-memory registration is also owned by the
|
|
307
|
+
// commands service context and will not survive a teardown.
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
/** Command live probe via the host-only probe accessor. */
|
|
312
|
+
async function probeCommandViaHost(service) {
|
|
313
|
+
if (!hasCommandLiveProbe(service)) {
|
|
314
|
+
return { evidence: [], missing: ['tuiPluginHost.probeCommandReversible()'] };
|
|
315
|
+
}
|
|
316
|
+
try {
|
|
317
|
+
const result = await runCommandLiveProbe(service);
|
|
318
|
+
if (result?.ok !== true)
|
|
319
|
+
throw new Error('command host reversible probe did not acknowledge success');
|
|
320
|
+
return {
|
|
321
|
+
evidence: [
|
|
322
|
+
probeEvidence(`commands.register+execute(${result.name})`, `host-mediated reversible command lifecycle: register -> find -> list -> execute (${result.lifecycleAppends} in-memory lifecycle appends); unregistered in finally`),
|
|
323
|
+
],
|
|
324
|
+
missing: [],
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
return {
|
|
329
|
+
evidence: [probeEvidence('commands.register+execute(host-probe)', errorText(error))],
|
|
330
|
+
missing: ['commands.reversible-live-probe'],
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
/** Reversible LocalStorage live probe. It delegates to the storage service's
|
|
335
|
+
* own host-internal `probeReversible()`, which writes one temporary namespace
|
|
336
|
+
* file, reads it back, deletes it, and removes the file in a `finally`. */
|
|
337
|
+
async function probeStorageLive(service) {
|
|
338
|
+
if (!hasStorageLiveProbe(service)) {
|
|
339
|
+
return { evidence: [], missing: ['tuiPluginStorage.probeReversible()'] };
|
|
340
|
+
}
|
|
341
|
+
try {
|
|
342
|
+
const result = await runStorageLiveProbe(service);
|
|
343
|
+
if (result?.ok !== true)
|
|
344
|
+
throw new Error('storage reversible probe did not acknowledge success');
|
|
345
|
+
return {
|
|
346
|
+
evidence: [
|
|
347
|
+
probeEvidence('tuiPluginStorage.probeReversible()', `temporary namespace ${result.tempNamespace ?? '?'}: ${(result.operations ?? []).join(' -> ')}; cleanup enforced`),
|
|
348
|
+
],
|
|
349
|
+
missing: [],
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
return {
|
|
354
|
+
evidence: [probeEvidence('tuiPluginStorage.probeReversible()', errorText(error))],
|
|
355
|
+
missing: ['tuiPluginStorage.probeReversible()'],
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/** Reversible MessageObserver live probe. It registers one temporary
|
|
360
|
+
* subscription through the production broker, delivers one synthetic
|
|
361
|
+
* envelope, verifies the listener, and unregisters it. */
|
|
362
|
+
async function probeMessageLive(service) {
|
|
363
|
+
if (!hasMessageLiveProbe(service)) {
|
|
364
|
+
return { evidence: [], missing: ['tuiMessageObserver.probeReversible()'] };
|
|
365
|
+
}
|
|
366
|
+
try {
|
|
367
|
+
const result = await runMessageLiveProbe(service);
|
|
368
|
+
if (result?.ok !== true || result.after !== result.before || result.delivered !== 1) {
|
|
369
|
+
throw new Error(`message observer reversible probe failed (before ${result.before}, delivered ${result.delivered}, after ${result.after})`);
|
|
370
|
+
}
|
|
371
|
+
return {
|
|
372
|
+
evidence: [
|
|
373
|
+
probeEvidence('tuiMessageObserver.probeReversible()', `temporary subscription added, delivered one real envelope, and removed (${result.before} -> ${result.during} -> ${result.after})`),
|
|
374
|
+
],
|
|
375
|
+
missing: [],
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
catch (error) {
|
|
379
|
+
return {
|
|
380
|
+
evidence: [probeEvidence('tuiMessageObserver.probeReversible()', errorText(error))],
|
|
381
|
+
missing: ['tuiMessageObserver.probeReversible()'],
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
function probeForCoordinate(service, coordinate) {
|
|
386
|
+
switch (coordinate.kind) {
|
|
387
|
+
case 'Command': return probeCommand(service);
|
|
388
|
+
case 'LocalStorage': return probeStorage(service);
|
|
389
|
+
case 'MessageObserver': return probeMessageObserver(service);
|
|
390
|
+
case 'DecisionEvents': return probeDecisionEvents(service);
|
|
391
|
+
default: return { evidence: [], missing: [] };
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
function contractDetection(ctx, coordinate) {
|
|
395
|
+
const serviceName = contractServiceName(coordinate);
|
|
396
|
+
if (serviceName === '')
|
|
397
|
+
return { state: 'unsupported', reason: `unknown coordinate ${coordinate.apiVersion}#${coordinate.kind}` };
|
|
398
|
+
const service = ctx.get?.(serviceName);
|
|
399
|
+
if (service === undefined) {
|
|
400
|
+
return { state: 'unsupported', reason: `${serviceName} service is not mounted` };
|
|
401
|
+
}
|
|
402
|
+
const evidence = [serviceEvidence(serviceName)];
|
|
403
|
+
const missing = [];
|
|
404
|
+
switch (coordinate.kind) {
|
|
405
|
+
case 'Command':
|
|
406
|
+
if (!hasFunction(service, 'register'))
|
|
407
|
+
missing.push('commands.register()');
|
|
408
|
+
else
|
|
409
|
+
evidence.push(methodEvidence(serviceName, 'register'));
|
|
410
|
+
if (!hasFunction(service, 'list'))
|
|
411
|
+
missing.push('commands.list()');
|
|
412
|
+
else
|
|
413
|
+
evidence.push(methodEvidence(serviceName, 'list'));
|
|
414
|
+
if (!hasFunction(service, 'find'))
|
|
415
|
+
missing.push('commands.find()');
|
|
416
|
+
else
|
|
417
|
+
evidence.push(methodEvidence(serviceName, 'find'));
|
|
418
|
+
if (!hasFunction(service, 'execute'))
|
|
419
|
+
missing.push('commands.execute()');
|
|
420
|
+
else
|
|
421
|
+
evidence.push(methodEvidence(serviceName, 'execute'));
|
|
422
|
+
break;
|
|
423
|
+
case 'LocalStorage':
|
|
424
|
+
if (!hasFunction(service, 'open'))
|
|
425
|
+
missing.push('tuiPluginStorage.open()');
|
|
426
|
+
else
|
|
427
|
+
evidence.push(methodEvidence(serviceName, 'open'));
|
|
428
|
+
if (hasStorageLiveProbe(service))
|
|
429
|
+
evidence.push(methodEvidence(serviceName, 'probeReversible'));
|
|
430
|
+
break;
|
|
431
|
+
case 'MessageObserver':
|
|
432
|
+
if (!hasFunction(service, 'subscribe'))
|
|
433
|
+
missing.push('tuiMessageObserver.subscribe()');
|
|
434
|
+
else
|
|
435
|
+
evidence.push(methodEvidence(serviceName, 'subscribe'));
|
|
436
|
+
if (hasMessageLiveProbe(service))
|
|
437
|
+
evidence.push(methodEvidence(serviceName, 'probeReversible'));
|
|
438
|
+
break;
|
|
439
|
+
case 'DecisionEvents':
|
|
440
|
+
if (!hasFunction(service, 'subscribeDecision'))
|
|
441
|
+
missing.push('tuiPluginHost.subscribeDecision()');
|
|
442
|
+
else
|
|
443
|
+
evidence.push(methodEvidence(serviceName, 'subscribeDecision'));
|
|
444
|
+
break;
|
|
445
|
+
}
|
|
446
|
+
const probe = probeForCoordinate(service, coordinate);
|
|
447
|
+
evidence.push(...probe.evidence);
|
|
448
|
+
missing.push(...probe.missing);
|
|
449
|
+
if (missing.length > 0) {
|
|
450
|
+
return { state: 'degraded', missing, evidence };
|
|
451
|
+
}
|
|
452
|
+
return { state: 'supported', evidence };
|
|
453
|
+
}
|
|
454
|
+
/** Build DecisionEvents lifecycle with per-event live features. */
|
|
455
|
+
function decisionLifecycle(host, coordinate) {
|
|
456
|
+
const key = `${coordinate.apiVersion}#${coordinate.kind}`;
|
|
457
|
+
const detection = contractDetection(host, coordinate);
|
|
458
|
+
if (detection.state === 'unsupported')
|
|
459
|
+
return undefined;
|
|
460
|
+
const probe = probeForCoordinate(host.get?.('tuiPluginHost'), coordinate);
|
|
461
|
+
const missing = detection.state === 'degraded' ? detection.missing : [];
|
|
462
|
+
const criticalMissing = missing.some(item => item.includes('subscribeDecision'));
|
|
463
|
+
const evidence = detection.evidence ?? [];
|
|
464
|
+
const hasSubscribeMethod = evidence.some(item => item.kind === 'method' && item.id.includes('subscribeDecision'));
|
|
465
|
+
const liveFeatures = !criticalMissing && hasSubscribeMethod
|
|
466
|
+
? (probe.liveFeatures ?? [])
|
|
467
|
+
: [];
|
|
468
|
+
const lifecycle = lifecycleFromDetection(key, detection, coordinate);
|
|
469
|
+
if (liveFeatures.length > 0) {
|
|
470
|
+
return { ...lifecycle, liveFeatures: Object.freeze([...liveFeatures]) };
|
|
471
|
+
}
|
|
472
|
+
return lifecycle;
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Build the per-contract lifecycle list from the live host services.
|
|
476
|
+
*
|
|
477
|
+
* All returned lifecycles are `staged`; the caller must call
|
|
478
|
+
* `verifyAndPromote()` before using them as live publication evidence.
|
|
479
|
+
* Service/method evidence alone cannot cross the verifier; a real probe is
|
|
480
|
+
* required.
|
|
481
|
+
*/
|
|
482
|
+
export function buildHostCapabilityLifecycles(ctx) {
|
|
483
|
+
const host = ctx;
|
|
484
|
+
const lifecycles = [];
|
|
485
|
+
for (const coordinate of KERNEL_HOST_SUPPORTED_CONTRACTS) {
|
|
486
|
+
const key = `${coordinate.apiVersion}#${coordinate.kind}`;
|
|
487
|
+
if (coordinate.kind === 'DecisionEvents') {
|
|
488
|
+
const lifecycle = decisionLifecycle(host, coordinate);
|
|
489
|
+
if (lifecycle !== undefined)
|
|
490
|
+
lifecycles.push(lifecycle);
|
|
491
|
+
continue;
|
|
492
|
+
}
|
|
493
|
+
const detection = contractDetection(host, coordinate);
|
|
494
|
+
if (detection.state === 'unsupported')
|
|
495
|
+
continue;
|
|
496
|
+
lifecycles.push(lifecycleFromDetection(key, detection, coordinate));
|
|
497
|
+
}
|
|
498
|
+
return lifecycles;
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* Run the full async live-verification path for the host descriptor slice.
|
|
502
|
+
*
|
|
503
|
+
* This is the production driver method behind `KernelRuntime.refresh()` in
|
|
504
|
+
* legacy/new modes. It performs the real reversible probes and returns
|
|
505
|
+
* capability lifecycles that already carry `probe` evidence. In passive/replay
|
|
506
|
+
* production modes the Kernel must not call this on a real host context; the
|
|
507
|
+
* replay harness may call it on an isolated mock context.
|
|
508
|
+
*/
|
|
509
|
+
export async function refreshHostCapabilityLifecycles(ctx) {
|
|
510
|
+
const host = ctx;
|
|
511
|
+
const lifecycles = [];
|
|
512
|
+
for (const coordinate of KERNEL_HOST_SUPPORTED_CONTRACTS) {
|
|
513
|
+
const serviceName = contractServiceName(coordinate);
|
|
514
|
+
if (serviceName === '')
|
|
515
|
+
continue;
|
|
516
|
+
const service = host.get?.(serviceName);
|
|
517
|
+
if (service === undefined)
|
|
518
|
+
continue;
|
|
519
|
+
const key = `${coordinate.apiVersion}#${coordinate.kind}`;
|
|
520
|
+
if (coordinate.kind === 'DecisionEvents') {
|
|
521
|
+
const lifecycle = decisionLifecycle(host, coordinate);
|
|
522
|
+
if (lifecycle !== undefined)
|
|
523
|
+
lifecycles.push(lifecycle);
|
|
524
|
+
continue;
|
|
525
|
+
}
|
|
526
|
+
const evidence = [serviceEvidence(serviceName)];
|
|
527
|
+
const missing = [];
|
|
528
|
+
switch (coordinate.kind) {
|
|
529
|
+
case 'Command':
|
|
530
|
+
if (!hasFunction(service, 'register'))
|
|
531
|
+
missing.push('commands.register()');
|
|
532
|
+
else
|
|
533
|
+
evidence.push(methodEvidence(serviceName, 'register'));
|
|
534
|
+
if (!hasFunction(service, 'list'))
|
|
535
|
+
missing.push('commands.list()');
|
|
536
|
+
else
|
|
537
|
+
evidence.push(methodEvidence(serviceName, 'list'));
|
|
538
|
+
if (!hasFunction(service, 'find'))
|
|
539
|
+
missing.push('commands.find()');
|
|
540
|
+
else
|
|
541
|
+
evidence.push(methodEvidence(serviceName, 'find'));
|
|
542
|
+
if (!hasFunction(service, 'execute'))
|
|
543
|
+
missing.push('commands.execute()');
|
|
544
|
+
else
|
|
545
|
+
evidence.push(methodEvidence(serviceName, 'execute'));
|
|
546
|
+
{
|
|
547
|
+
const hostService = host.get?.('tuiPluginHost');
|
|
548
|
+
const probe = hasCommandLiveProbe(hostService)
|
|
549
|
+
? await probeCommandViaHost(hostService)
|
|
550
|
+
: await probeCommandLive(service);
|
|
551
|
+
evidence.push(...probe.evidence);
|
|
552
|
+
missing.push(...probe.missing);
|
|
553
|
+
}
|
|
554
|
+
break;
|
|
555
|
+
case 'LocalStorage':
|
|
556
|
+
if (!hasFunction(service, 'open'))
|
|
557
|
+
missing.push('tuiPluginStorage.open()');
|
|
558
|
+
else
|
|
559
|
+
evidence.push(methodEvidence(serviceName, 'open'));
|
|
560
|
+
if (hasStorageLiveProbe(service))
|
|
561
|
+
evidence.push(methodEvidence(serviceName, 'probeReversible'));
|
|
562
|
+
{
|
|
563
|
+
const probe = await probeStorageLive(service);
|
|
564
|
+
evidence.push(...probe.evidence);
|
|
565
|
+
missing.push(...probe.missing);
|
|
566
|
+
}
|
|
567
|
+
break;
|
|
568
|
+
case 'MessageObserver':
|
|
569
|
+
if (!hasFunction(service, 'subscribe'))
|
|
570
|
+
missing.push('tuiMessageObserver.subscribe()');
|
|
571
|
+
else
|
|
572
|
+
evidence.push(methodEvidence(serviceName, 'subscribe'));
|
|
573
|
+
if (hasMessageLiveProbe(service))
|
|
574
|
+
evidence.push(methodEvidence(serviceName, 'probeReversible'));
|
|
575
|
+
{
|
|
576
|
+
const probe = await probeMessageLive(service);
|
|
577
|
+
evidence.push(...probe.evidence);
|
|
578
|
+
missing.push(...probe.missing);
|
|
579
|
+
}
|
|
580
|
+
break;
|
|
581
|
+
default:
|
|
582
|
+
break;
|
|
583
|
+
}
|
|
584
|
+
const detection = missing.length > 0
|
|
585
|
+
? { state: 'degraded', missing, evidence }
|
|
586
|
+
: { state: 'supported', evidence };
|
|
587
|
+
lifecycles.push(lifecycleFromDetection(key, detection, coordinate));
|
|
588
|
+
}
|
|
589
|
+
return lifecycles;
|
|
590
|
+
}
|
|
591
|
+
/** The driver object for future kernel composition. */
|
|
592
|
+
export const hostDescriptorDriver = {
|
|
593
|
+
id: 'dsh-tui-host-descriptor',
|
|
594
|
+
upstreamFamily: 'dsh-tui',
|
|
595
|
+
capability: 'host.descriptor',
|
|
596
|
+
mountEffectClass: 'read-only',
|
|
597
|
+
detect: detectHostDescriptorCapability,
|
|
598
|
+
lifecycles: context => buildHostCapabilityLifecycles(context),
|
|
599
|
+
verifyLive: context => refreshHostCapabilityLifecycles(context),
|
|
600
|
+
async mount(context) {
|
|
601
|
+
// This driver is currently a pure detection/translation driver. It mounts
|
|
602
|
+
// no resources; the disposer is a no-op until a mounted port needs cleanup.
|
|
603
|
+
void context;
|
|
604
|
+
return { disposer: () => undefined };
|
|
605
|
+
},
|
|
606
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upstream Driver Plane.
|
|
3
|
+
*
|
|
4
|
+
* This directory is the future/only allowed home for direct `@deepseek-ai/*`
|
|
5
|
+
* imports. The current migration keeps legacy drivers in `src/dsh-adapter/` so
|
|
6
|
+
* no behavior changes in this iteration; new drivers must land here.
|
|
7
|
+
*/
|
|
8
|
+
export type { Detection, DetectionState, DetectionEvidence } from './detection.js';
|
|
9
|
+
export type { UpstreamDriver, UpstreamDriverMount } from './driver.js';
|
|
10
|
+
export { buildHostCapabilityLifecycles, refreshHostCapabilityLifecycles, detectHostDescriptorCapability, hostDescriptorDriver, } from './host-descriptor-driver.js';
|
|
11
|
+
export { detectWorkspaceCapability, workspaceDriver, } from './workspace-driver.js';
|
|
12
|
+
export { detectScenesCapability, scenesDriver, } from './scenes-driver.js';
|
|
13
|
+
export { detectSettingsCapability, settingsDriver, } from './settings-driver.js';
|
|
14
|
+
export { detectPresentationCapability, presentationDriver, } from './presentation-driver.js';
|
|
15
|
+
export { detectDecisionsCapability, decisionsDriver, } from './decisions-driver.js';
|
|
16
|
+
export { detectStatusCapability, detectShortcutsCapability, detectRenderersCapability, detectThemesCapability, detectToastCapability, detectCommandTreesCapability, statusDriver, shortcutsDriver, renderersDriver, themesDriver, toastDriver, commandTreesDriver, } from './extensions-driver.js';
|
|
17
|
+
export { detectChannelCapability, verifyChannelLive, channelDriver, } from './channel-driver.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/upstream/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClF,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,yBAAyB,EACzB,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,wBAAwB,EACxB,cAAc,GACf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,yBAAyB,EACzB,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,YAAY,EACZ,eAAe,EACf,eAAe,EACf,YAAY,EACZ,WAAW,EACX,kBAAkB,GACnB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,GACd,MAAM,qBAAqB,CAAA"}
|