@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
|
@@ -8,8 +8,16 @@ import { homeDir } from '../../utils/paths.js';
|
|
|
8
8
|
* UI frames — safe for the strict read path to accept and skip. Exported
|
|
9
9
|
* for the regression verifier; grow it only with proof the type was always
|
|
10
10
|
* inert (never load-bearing for session reconstruction).
|
|
11
|
+
*
|
|
12
|
+
* 0.1.5 note: the vouch is not only for OLD logs. `session/color` is written
|
|
13
|
+
* by the TUI itself on every host generation (session-metadata.ts), and
|
|
14
|
+
* 0.1.5's `validateStoredEvents` refuses unknown non-ignorable types at load
|
|
15
|
+
* — without this registration a single color pick makes that session
|
|
16
|
+
* permanently unresumable (probed: SessionFormatUnsupportedError without the
|
|
17
|
+
* vouch, clean load with it). The type stays inert for reconstruction either
|
|
18
|
+
* way: it only re-tints the row.
|
|
11
19
|
*/
|
|
12
|
-
export const LEGACY_SESSION_EVENT_TYPES = ['activity/status'];
|
|
20
|
+
export const LEGACY_SESSION_EVENT_TYPES = ['activity/status', 'session/color'];
|
|
13
21
|
/** Zstd frame magic number, little-endian (0xFD2FB528). */
|
|
14
22
|
const ZSTD_MAGIC = 0xfd2fb528;
|
|
15
23
|
/**
|
|
@@ -41,12 +49,65 @@ export function sessionsRoots() {
|
|
|
41
49
|
function isSafeSessionId(sessionId) {
|
|
42
50
|
return /^[A-Za-z0-9][A-Za-z0-9_-]*$/.test(sessionId);
|
|
43
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Canonical session-log generation basename, mirroring upstream
|
|
54
|
+
* dsh-session-format's `CANONICAL_LOG_FILENAME` (that package is not a
|
|
55
|
+
* blessed import, so the rule is re-derived here): version zero keeps the
|
|
56
|
+
* original `session.jsonl`; every later generation carries a lowercase
|
|
57
|
+
* numeric `.vN` component (0.1.5 writes `session.v3.jsonl`). Noncanonical,
|
|
58
|
+
* uppercase, leading-zero, and `.v0` names never identify committed
|
|
59
|
+
* generations. A `.zstd` suffix marks the compressed encoding.
|
|
60
|
+
*/
|
|
61
|
+
const GENERATION_LOG_NAME = /^session(?:\.v([1-9][0-9]*))?\.jsonl$/;
|
|
62
|
+
function parseGenerationName(name) {
|
|
63
|
+
const compressed = name.endsWith('.zstd');
|
|
64
|
+
const match = GENERATION_LOG_NAME.exec(compressed ? name.slice(0, -'.zstd'.length) : name);
|
|
65
|
+
if (match === null)
|
|
66
|
+
return undefined;
|
|
67
|
+
return { name, version: match[1] === undefined ? 0 : Number(match[1]), compressed };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Pick the newest committed generation inside one session directory — the
|
|
71
|
+
* backend's `resolveGenerationInDirectory` rule (highest format version
|
|
72
|
+
* wins), with the compressed twin preferred on a tie (the stock default
|
|
73
|
+
* encoding; a mixed-encoding directory is something the backend itself
|
|
74
|
+
* refuses, so either tiebreak is honest for a read-only consumer).
|
|
75
|
+
* @param dir - Absolute session directory (`<root>/<workspace>/<id>`).
|
|
76
|
+
* @param compressedOnly - Restrict to zstd artifacts (the rename/delete
|
|
77
|
+
* caller's historical contract).
|
|
78
|
+
*/
|
|
79
|
+
function selectGenerationLog(dir, compressedOnly) {
|
|
80
|
+
let entries;
|
|
81
|
+
try {
|
|
82
|
+
entries = readdirSync(dir);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
let best;
|
|
88
|
+
for (const name of entries) {
|
|
89
|
+
const candidate = parseGenerationName(name);
|
|
90
|
+
if (candidate === undefined)
|
|
91
|
+
continue;
|
|
92
|
+
if (compressedOnly && !candidate.compressed)
|
|
93
|
+
continue;
|
|
94
|
+
if (best === undefined ||
|
|
95
|
+
candidate.version > best.version ||
|
|
96
|
+
(candidate.version === best.version && candidate.compressed && !best.compressed)) {
|
|
97
|
+
best = candidate;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return best === undefined ? undefined : { path: join(dir, best.name), compressed: best.compressed };
|
|
101
|
+
}
|
|
44
102
|
/**
|
|
45
103
|
* Locate a session's log by scanning workspace directories for the session
|
|
46
104
|
* id — deliberately NOT replicating the persistence plugin's workspace-key
|
|
47
|
-
* sanitization, so the helpers survive upstream key-scheme changes.
|
|
105
|
+
* sanitization, so the helpers survive upstream key-scheme changes. Every
|
|
106
|
+
* committed generation is considered; the newest wins (the backend migrates
|
|
107
|
+
* historical artifacts by publishing a `session.vN` sibling and reading only
|
|
108
|
+
* it, so the newest generation is always the authoritative one).
|
|
48
109
|
* @param sessionId - Session id (directory name under each workspace dir).
|
|
49
|
-
* @returns Absolute path of
|
|
110
|
+
* @returns Absolute path of the selected log, or undefined when absent.
|
|
50
111
|
*/
|
|
51
112
|
export function findSessionLogFile(sessionId) {
|
|
52
113
|
if (!isSafeSessionId(sessionId))
|
|
@@ -60,9 +121,11 @@ export function findSessionLogFile(sessionId) {
|
|
|
60
121
|
continue;
|
|
61
122
|
}
|
|
62
123
|
for (const ws of workspaces) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
124
|
+
// Historical contract of this helper: the compressed artifact only
|
|
125
|
+
// (the rename/delete/title-string paths predate plain-encoding logs).
|
|
126
|
+
const selected = selectGenerationLog(join(root, ws, sessionId), true);
|
|
127
|
+
if (selected !== undefined)
|
|
128
|
+
return selected.path;
|
|
66
129
|
}
|
|
67
130
|
}
|
|
68
131
|
return undefined;
|
|
@@ -70,11 +133,163 @@ export function findSessionLogFile(sessionId) {
|
|
|
70
133
|
let cachedDecoder;
|
|
71
134
|
function decodeStorageRecord(value) {
|
|
72
135
|
if (cachedDecoder === undefined) {
|
|
73
|
-
|
|
74
|
-
cachedDecoder = req('@deepseek-ai/dsh-session').decodeStorageRecord;
|
|
136
|
+
cachedDecoder = loadUpstreamDecoder() ?? decodeStorageRecordLocal;
|
|
75
137
|
}
|
|
76
138
|
return cachedDecoder(value);
|
|
77
139
|
}
|
|
140
|
+
function loadUpstreamDecoder() {
|
|
141
|
+
try {
|
|
142
|
+
const req = createRequire(import.meta.url);
|
|
143
|
+
const mod = req('@deepseek-ai/dsh-session');
|
|
144
|
+
return typeof mod.decodeStorageRecord === 'function'
|
|
145
|
+
? mod.decodeStorageRecord
|
|
146
|
+
: undefined;
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// No resolvable dsh-session copy from this tree — the local decoder is
|
|
150
|
+
// fully self-contained, so reads still work.
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/* ------------------------------------------------------------------------- *\
|
|
155
|
+
* Local port of the removed dsh-session chunk-rows decoder (0.1.2-rc.1 and
|
|
156
|
+
* earlier, lib/types/chunk-rows.js). Storage rows are a durable-encoding
|
|
157
|
+
* vocabulary, NOT session events: the packChunks writer folded each run of
|
|
158
|
+
* same-block delta chunks into ONE `text-chunks`/`reasoning-chunks`/
|
|
159
|
+
* `tool-call-chunks` line. Row-tagged values validate and expand (a malformed
|
|
160
|
+
* row throws — it is corrupt storage, and treating it as an event would
|
|
161
|
+
* silently drop a whole run); every other value passes through as a single
|
|
162
|
+
* event, unvalidated.
|
|
163
|
+
\* ------------------------------------------------------------------------- */
|
|
164
|
+
function isRecordValue(value) {
|
|
165
|
+
return typeof value === 'object' && value !== null;
|
|
166
|
+
}
|
|
167
|
+
/** Exact-key check: `value` has every key in `keys` and nothing else. */
|
|
168
|
+
function hasExactKeys(value, keys) {
|
|
169
|
+
return Object.keys(value).length === keys.length && keys.every(k => Object.hasOwn(value, k));
|
|
170
|
+
}
|
|
171
|
+
/** The uniform malformed-row diagnostic. */
|
|
172
|
+
function malformedRow(tag, why) {
|
|
173
|
+
throw new Error(`malformed ${tag} storage row: ${why}`);
|
|
174
|
+
}
|
|
175
|
+
/** Validate the shared run-data fields and the payload/dt arity; returns the member payload. */
|
|
176
|
+
function validateRunData(tag, data, payloadKey) {
|
|
177
|
+
if (typeof data.turn !== 'number' || typeof data.step !== 'number' || typeof data.index !== 'number') {
|
|
178
|
+
malformedRow(tag, 'turn/step/index must be numbers');
|
|
179
|
+
}
|
|
180
|
+
const payload = data[payloadKey];
|
|
181
|
+
if (!Array.isArray(payload) || payload.length === 0 || payload.some(entry => typeof entry !== 'string')) {
|
|
182
|
+
malformedRow(tag, `${payloadKey} must be a non-empty string array`);
|
|
183
|
+
}
|
|
184
|
+
const dt = data.dt;
|
|
185
|
+
if (!Array.isArray(dt) || dt.some(gap => !Number.isSafeInteger(gap))) {
|
|
186
|
+
malformedRow(tag, 'dt must be an array of safe integers');
|
|
187
|
+
}
|
|
188
|
+
if (dt.length !== payload.length - 1) {
|
|
189
|
+
malformedRow(tag, `dt length ${dt.length} does not match ${payload.length} members`);
|
|
190
|
+
}
|
|
191
|
+
return payload;
|
|
192
|
+
}
|
|
193
|
+
/** Validate a row-tagged parsed value's envelope and data, throwing on any malformation. */
|
|
194
|
+
function validateChunkRow(value, tag) {
|
|
195
|
+
if (!hasExactKeys(value, ['type', 'seq0', 'time0', 'data'])) {
|
|
196
|
+
malformedRow(tag, 'envelope must be exactly {type, seq0, time0, data}');
|
|
197
|
+
}
|
|
198
|
+
if (!Number.isSafeInteger(value['seq0']) || value['seq0'] < 0) {
|
|
199
|
+
malformedRow(tag, 'seq0 must be a non-negative safe integer');
|
|
200
|
+
}
|
|
201
|
+
if (!Number.isSafeInteger(value['time0'])) {
|
|
202
|
+
malformedRow(tag, 'time0 must be a safe integer');
|
|
203
|
+
}
|
|
204
|
+
const data = value['data'];
|
|
205
|
+
if (!isRecordValue(data))
|
|
206
|
+
malformedRow(tag, 'data must be an object');
|
|
207
|
+
const row = data;
|
|
208
|
+
let payload;
|
|
209
|
+
if (tag === 'tool-call-chunks') {
|
|
210
|
+
const withName = hasExactKeys(row, ['turn', 'step', 'index', 'id', 'name', 'dt', 'args']);
|
|
211
|
+
if (!withName && !hasExactKeys(row, ['turn', 'step', 'index', 'id', 'dt', 'args'])) {
|
|
212
|
+
malformedRow(tag, 'data must be exactly {turn, step, index, id, name?, dt, args}');
|
|
213
|
+
}
|
|
214
|
+
if (typeof row['id'] !== 'string' || (withName && typeof row['name'] !== 'string')) {
|
|
215
|
+
malformedRow(tag, 'id (and name when present) must be strings');
|
|
216
|
+
}
|
|
217
|
+
payload = validateRunData(tag, row, 'args');
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
if (!hasExactKeys(row, ['turn', 'step', 'index', 'dt', 'texts'])) {
|
|
221
|
+
malformedRow(tag, 'data must be exactly {turn, step, index, dt, texts}');
|
|
222
|
+
}
|
|
223
|
+
payload = validateRunData(tag, row, 'texts');
|
|
224
|
+
}
|
|
225
|
+
// Reconstruction bounds. The encoder only packs runs whose member seqs and
|
|
226
|
+
// times are all safe integers, so a running value that leaves safe range is
|
|
227
|
+
// outside any encoder's image: float arithmetic would round it to a
|
|
228
|
+
// different number than exact arithmetic, a silent corruption. Within safe
|
|
229
|
+
// range every step is exact, so the first departure is always caught.
|
|
230
|
+
const seq0 = value['seq0'];
|
|
231
|
+
if (!Number.isSafeInteger(seq0 + payload.length - 1)) {
|
|
232
|
+
malformedRow(tag, 'member seqs must stay safe integers');
|
|
233
|
+
}
|
|
234
|
+
let time = value['time0'];
|
|
235
|
+
for (const gap of row['dt']) {
|
|
236
|
+
time += gap;
|
|
237
|
+
if (!Number.isSafeInteger(time)) {
|
|
238
|
+
malformedRow(tag, 'member times must stay safe integers');
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return { type: tag, seq0, time0: value['time0'], data: row };
|
|
242
|
+
}
|
|
243
|
+
/** Expand a validated row back into its exact original events, in order. */
|
|
244
|
+
function expandChunkRow(row) {
|
|
245
|
+
const members = row.type === 'tool-call-chunks' ? row.data.args : row.data.texts;
|
|
246
|
+
const events = [];
|
|
247
|
+
let time = row.time0;
|
|
248
|
+
for (let k = 0; k < members.length; k++) {
|
|
249
|
+
if (k > 0)
|
|
250
|
+
time += row.data.dt[k - 1];
|
|
251
|
+
let chunk;
|
|
252
|
+
switch (row.type) {
|
|
253
|
+
case 'text-chunks':
|
|
254
|
+
chunk = { type: 'text-delta', index: row.data.index, text: members[k] };
|
|
255
|
+
break;
|
|
256
|
+
case 'reasoning-chunks':
|
|
257
|
+
chunk = { type: 'reasoning-delta', index: row.data.index, text: members[k] };
|
|
258
|
+
break;
|
|
259
|
+
default:
|
|
260
|
+
chunk = {
|
|
261
|
+
type: 'tool-call-delta',
|
|
262
|
+
index: row.data.index,
|
|
263
|
+
id: row.data.id,
|
|
264
|
+
...(row.data.name !== undefined ? { name: row.data.name } : {}),
|
|
265
|
+
argumentsDelta: members[k],
|
|
266
|
+
};
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
// assistant/chunk is gone from the 0.1.5 SessionEvent union; the events
|
|
270
|
+
// are reconstructed structurally for the legacy-log replay path.
|
|
271
|
+
events.push({
|
|
272
|
+
type: 'assistant/chunk',
|
|
273
|
+
seq: row.seq0 + k,
|
|
274
|
+
time,
|
|
275
|
+
data: { turn: row.data.turn, step: row.data.step, chunk },
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
return events;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Structural twin of the removed upstream `decodeStorageRecord`: packed
|
|
282
|
+
* chunk rows expand, everything else passes through as one event.
|
|
283
|
+
*/
|
|
284
|
+
function decodeStorageRecordLocal(value) {
|
|
285
|
+
if (!isRecordValue(value))
|
|
286
|
+
return [value];
|
|
287
|
+
const tag = value['type'];
|
|
288
|
+
if (tag !== 'text-chunks' && tag !== 'reasoning-chunks' && tag !== 'tool-call-chunks') {
|
|
289
|
+
return [value];
|
|
290
|
+
}
|
|
291
|
+
return expandChunkRow(validateChunkRow(value, tag));
|
|
292
|
+
}
|
|
78
293
|
/** I/O slice for streamed log reads. */
|
|
79
294
|
const READ_CHUNK = 64 * 1024;
|
|
80
295
|
/**
|
|
@@ -90,9 +305,10 @@ const MAX_FRAME_BYTES = 64 * 1024 * 1024;
|
|
|
90
305
|
const MAX_FRAME_TEXT_BYTES = 64 * 1024 * 1024;
|
|
91
306
|
/**
|
|
92
307
|
* Dual-encoding sibling of {@link findSessionLogFile} for the bounded tree
|
|
93
|
-
* reader: also
|
|
94
|
-
* which the rename/delete/title-string path
|
|
95
|
-
*
|
|
308
|
+
* reader: also accepts plain `session*.jsonl` artifacts (a
|
|
309
|
+
* `compression:"none"` backend), which the rename/delete/title-string path
|
|
310
|
+
* has no use for. Same multi-root scan, id whitelist, and newest-generation
|
|
311
|
+
* selection; the compressed twin still wins a same-generation tie.
|
|
96
312
|
* @param sessionId - Session id (directory name under each workspace dir).
|
|
97
313
|
* @returns The log path and encoding, or undefined when absent.
|
|
98
314
|
*/
|
|
@@ -108,13 +324,9 @@ function findSessionLogFileAnyEncoding(sessionId) {
|
|
|
108
324
|
continue;
|
|
109
325
|
}
|
|
110
326
|
for (const ws of workspaces) {
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return { path: compressed, compressed: true };
|
|
115
|
-
const plain = join(dir, 'session.jsonl');
|
|
116
|
-
if (existsSync(plain))
|
|
117
|
-
return { path: plain, compressed: false };
|
|
327
|
+
const selected = selectGenerationLog(join(root, ws, sessionId), false);
|
|
328
|
+
if (selected !== undefined)
|
|
329
|
+
return selected;
|
|
118
330
|
}
|
|
119
331
|
}
|
|
120
332
|
return undefined;
|
|
@@ -412,19 +624,31 @@ function sniffLogFile(path) {
|
|
|
412
624
|
* Resolve a `persistence.locate()` hint to a readable log. The hint may name
|
|
413
625
|
* the physical artifact directly or the backend's LOGICAL name for it (the
|
|
414
626
|
* jsonl backend's raw-artifact filename carries no encoding suffix), so the
|
|
415
|
-
* compressed twin is probed as well.
|
|
627
|
+
* compressed twin is probed as well. Since 0.1.5 the hint names the CURRENT
|
|
628
|
+
* generation (`session.vN.jsonl[.zstd]`) without touching the filesystem —
|
|
629
|
+
* for a session never opened since its format was superseded that file does
|
|
630
|
+
* not exist yet, and the authoritative artifact is an older-generation
|
|
631
|
+
* sibling in the same directory. Encoding is sniffed from content, never
|
|
416
632
|
* inferred from the extension.
|
|
417
633
|
* @param hint - Absolute path from SessionPersistence.locate().
|
|
418
634
|
* @returns The readable log, or undefined when nothing materialized there.
|
|
419
635
|
*/
|
|
420
|
-
function resolveLocatedPath(hint) {
|
|
636
|
+
export function resolveLocatedPath(hint) {
|
|
421
637
|
const direct = existsSync(hint) ? sniffLogFile(hint) : undefined;
|
|
422
638
|
if (direct !== undefined)
|
|
423
639
|
return direct;
|
|
424
640
|
const twin = `${hint}.zstd`;
|
|
425
641
|
if (existsSync(twin))
|
|
426
642
|
return { path: twin, compressed: true };
|
|
427
|
-
|
|
643
|
+
// Generation fallback: only when the hint itself is a canonical
|
|
644
|
+
// generation name — a foreign backend's logical name must not steer a
|
|
645
|
+
// directory scan. The scan stays inside the backend's own session
|
|
646
|
+
// directory, so locate's authority over root and workspace key is kept.
|
|
647
|
+
const base = hint.slice(hint.lastIndexOf(sep) + 1);
|
|
648
|
+
const withoutSuffix = base.endsWith('.zstd') ? base.slice(0, -'.zstd'.length) : base;
|
|
649
|
+
if (!GENERATION_LOG_NAME.test(withoutSuffix))
|
|
650
|
+
return undefined;
|
|
651
|
+
return selectGenerationLog(dirname(hint), false);
|
|
428
652
|
}
|
|
429
653
|
/**
|
|
430
654
|
* Shared bounded read loop over a located log. See readSessionEventsFromLog
|
|
@@ -441,9 +665,14 @@ function readEvents(file, maxEvents, maxScanned, skipBelowSeq) {
|
|
|
441
665
|
return undefined;
|
|
442
666
|
}
|
|
443
667
|
let scanned = 0;
|
|
668
|
+
let formatVersion;
|
|
444
669
|
const events = [];
|
|
670
|
+
const result = (complete, failed) => ({ events, complete, scanned, formatVersion, ...(failed ? { failed } : {}) });
|
|
445
671
|
try {
|
|
446
672
|
for (const record of logRecords(fd, file.compressed)) {
|
|
673
|
+
if (scanned === 0 && isRecordValue(record) && record['type'] === 'session' && Number.isSafeInteger(record['version'])) {
|
|
674
|
+
formatVersion = record['version'];
|
|
675
|
+
}
|
|
447
676
|
for (const event of decodeStorageRecord(record)) {
|
|
448
677
|
// The SCAN budget bounds the real cost drivers — I/O, decompression,
|
|
449
678
|
// JSON.parse — which are paid for EVERY envelope, collected or not.
|
|
@@ -452,7 +681,7 @@ function readEvents(file, maxEvents, maxScanned, skipBelowSeq) {
|
|
|
452
681
|
// to collect a handful of events, blocking the TUI on panel open.
|
|
453
682
|
scanned += 1;
|
|
454
683
|
if (scanned > maxScanned)
|
|
455
|
-
return
|
|
684
|
+
return result(false);
|
|
456
685
|
const envelope = event;
|
|
457
686
|
if (typeof envelope['seq'] !== 'number' || envelope['ignorable'] === true)
|
|
458
687
|
continue;
|
|
@@ -468,17 +697,17 @@ function readEvents(file, maxEvents, maxScanned, skipBelowSeq) {
|
|
|
468
697
|
// Budget check BEFORE the push: an exact-fit log reports complete,
|
|
469
698
|
// and only a surviving (maxEvents+1)-th event marks truncation.
|
|
470
699
|
if (events.length >= maxEvents)
|
|
471
|
-
return
|
|
700
|
+
return result(false);
|
|
472
701
|
events.push(event);
|
|
473
702
|
}
|
|
474
703
|
}
|
|
475
|
-
return
|
|
704
|
+
return result(true);
|
|
476
705
|
}
|
|
477
706
|
catch {
|
|
478
707
|
// An EXISTING but undecodable log (corruption, over-cap frame, decode
|
|
479
708
|
// bomb): fail closed — never silently empty, never eligible for an
|
|
480
709
|
// unbounded fallback re-read.
|
|
481
|
-
return
|
|
710
|
+
return result(false, true);
|
|
482
711
|
}
|
|
483
712
|
finally {
|
|
484
713
|
try {
|
|
@@ -524,11 +753,12 @@ export function readSessionEventsFromFile(path, maxEvents = Number.POSITIVE_INFI
|
|
|
524
753
|
* cost-bounded. Built for the session tree (buildSessionTree), whose browse
|
|
525
754
|
* must satisfy three constraints the strict backend read cannot:
|
|
526
755
|
*
|
|
527
|
-
* - READ-ONLY: `persistence.inspect`
|
|
528
|
-
*
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
-
*
|
|
756
|
+
* - READ-ONLY: the strict backend read (`persistence.inspect` on pre-0.1.5
|
|
757
|
+
* hosts, the validated `handle.read` path since) rejects logs carrying
|
|
758
|
+
* third-party event types (working-activity's `activity/status`), and
|
|
759
|
+
* the resume seam's answer (in-process type registration, issue #153)
|
|
760
|
+
* must not be inverted here: opening a picker never rewrites a history
|
|
761
|
+
* log. This reader never writes; unknown types are simply passed through
|
|
532
762
|
* (extractEntries skips what it does not know).
|
|
533
763
|
* - TOLERANT: envelope-shape or decode anomalies degrade to
|
|
534
764
|
* `failed: true` (a structure-only tree node) instead of rejecting the
|
|
@@ -595,10 +825,48 @@ function seedLengthOfPhysicalHeader(record) {
|
|
|
595
825
|
return seed;
|
|
596
826
|
return undefined;
|
|
597
827
|
}
|
|
828
|
+
/** The header's `isSeeded` flag (V2/V3 headers carry it instead of `seedLength`). */
|
|
829
|
+
function isSeededPhysicalHeader(record) {
|
|
830
|
+
if (record === null || typeof record !== 'object' || Array.isArray(record))
|
|
831
|
+
return false;
|
|
832
|
+
const rec = record;
|
|
833
|
+
return rec['type'] === 'session' && rec['isSeeded'] === true;
|
|
834
|
+
}
|
|
598
835
|
/**
|
|
599
|
-
*
|
|
600
|
-
*
|
|
601
|
-
*
|
|
836
|
+
* The inherited cut recorded by a `session/end-seed` marker: seq of the last
|
|
837
|
+
* marker whose data carries `inherited: true` (the V2/V3 contract — the
|
|
838
|
+
* marker closes the inherited prefix, so its seq IS the prefix length).
|
|
839
|
+
*/
|
|
840
|
+
function inheritedMarkerCut(record) {
|
|
841
|
+
if (record === null || typeof record !== 'object' || Array.isArray(record))
|
|
842
|
+
return undefined;
|
|
843
|
+
const rec = record;
|
|
844
|
+
if (rec['type'] !== 'session/end-seed')
|
|
845
|
+
return undefined;
|
|
846
|
+
const data = rec['data'];
|
|
847
|
+
if (data === null || typeof data !== 'object' || data['inherited'] !== true) {
|
|
848
|
+
return undefined;
|
|
849
|
+
}
|
|
850
|
+
const seq = rec['seq'];
|
|
851
|
+
if (typeof seq === 'number' && Number.isSafeInteger(seq) && seq >= 0 && !Object.is(seq, -0))
|
|
852
|
+
return seq;
|
|
853
|
+
return undefined;
|
|
854
|
+
}
|
|
855
|
+
/**
|
|
856
|
+
* Envelope ceiling for the seeded-header marker scan: a fork's marker closes
|
|
857
|
+
* its inherited prefix, but earlier markers can belong to an ancestor. Scan
|
|
858
|
+
* the log to find the last one, bounded so a huge log degrades to "cut unknown"
|
|
859
|
+
* (the tree detaches the parent edge) instead of an unbounded read.
|
|
860
|
+
*/
|
|
861
|
+
const INHERITED_CUT_SCAN_LIMIT = 2_000_000;
|
|
862
|
+
/**
|
|
863
|
+
* Read the exact inherited-prefix length from a log. Pre-V2 physical headers
|
|
864
|
+
* carry it as `seedLength` on the first line; V2/V3 headers only have
|
|
865
|
+
* `isSeeded`, and the cut is the seq of the `session/end-seed` marker event
|
|
866
|
+
* stamped with `inherited: true` — scanned for, bounded, only when the
|
|
867
|
+
* header says the session is seeded. Logical list headers never carry the
|
|
868
|
+
* cut on any generation. Never guesses from snapshot length, and an
|
|
869
|
+
* unseeded or marker-less log reports undefined (no cut to report).
|
|
602
870
|
*/
|
|
603
871
|
export function readPhysicalHeaderSeedLength(path) {
|
|
604
872
|
const file = resolveLocatedPath(path);
|
|
@@ -607,10 +875,31 @@ export function readPhysicalHeaderSeedLength(path) {
|
|
|
607
875
|
let fd;
|
|
608
876
|
try {
|
|
609
877
|
fd = openSync(file.path, 'r');
|
|
878
|
+
let first = true;
|
|
879
|
+
let seeded = false;
|
|
880
|
+
let scanned = 0;
|
|
881
|
+
let inheritedCut;
|
|
610
882
|
for (const record of logRecords(fd, file.compressed)) {
|
|
611
|
-
|
|
883
|
+
if (first) {
|
|
884
|
+
first = false;
|
|
885
|
+
const seed = seedLengthOfPhysicalHeader(record);
|
|
886
|
+
if (seed !== undefined)
|
|
887
|
+
return seed;
|
|
888
|
+
if (!isSeededPhysicalHeader(record))
|
|
889
|
+
return undefined;
|
|
890
|
+
seeded = true;
|
|
891
|
+
continue;
|
|
892
|
+
}
|
|
893
|
+
if (!seeded)
|
|
894
|
+
return undefined;
|
|
895
|
+
scanned += 1;
|
|
896
|
+
if (scanned > INHERITED_CUT_SCAN_LIMIT)
|
|
897
|
+
return undefined;
|
|
898
|
+
const cut = inheritedMarkerCut(record);
|
|
899
|
+
if (cut !== undefined)
|
|
900
|
+
inheritedCut = cut;
|
|
612
901
|
}
|
|
613
|
-
return
|
|
902
|
+
return inheritedCut;
|
|
614
903
|
}
|
|
615
904
|
catch {
|
|
616
905
|
return undefined;
|
|
@@ -626,7 +915,7 @@ export function readPhysicalHeaderSeedLength(path) {
|
|
|
626
915
|
}
|
|
627
916
|
}
|
|
628
917
|
}
|
|
629
|
-
/** Locate a session log by id and read its
|
|
918
|
+
/** Locate a session log by id and read its inherited-prefix cut. */
|
|
630
919
|
export function readPhysicalHeaderSeedLengthForSession(sessionId) {
|
|
631
920
|
const file = findSessionLogFileAnyEncoding(sessionId);
|
|
632
921
|
if (file === undefined)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Verified Component identity bound to one Cordis activation owner. */
|
|
2
2
|
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
-
import type { ComponentManifest, PluginManifest } from '
|
|
3
|
+
import type { ComponentManifest, PluginManifest } from '../adapter/standard/types.js';
|
|
4
4
|
export type ComponentIdentityErrorCode = 'COMPONENT_NOT_ADMITTED' | 'COMPONENT_ALREADY_ADMITTED';
|
|
5
5
|
export declare class ComponentIdentityError extends Error {
|
|
6
6
|
readonly code: ComponentIdentityErrorCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-identity.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/component-identity.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAGxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"component-identity.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/component-identity.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAGxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAIrF,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,GAAG,4BAA4B,CAAA;AAEhG,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,0BAA0B;gBAAhC,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,MAAM;CAIvE;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAA;CACvC;AAED;;oDAEoD;AACpD,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAqB3C,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,iBAAiB,EAC7B,YAAY,GAAE,MAAqB,GAClC,yBAAyB,CAyB3B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,yBAAyB,GAAG,SAAS,CAM3F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,yBAAyB,CASpF;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAQT;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE/F;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAUvG;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAEnF;AAED;;;gBAGgB;AAChB,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAGT"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Verified Component identity bound to one Cordis activation owner. */
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
-
import { normalizePermissionScope, scopeCovers } from '../
|
|
3
|
+
import { normalizePermissionScope, scopeCovers } from '../adapter/standard/permission-scope.js';
|
|
4
4
|
import { activationFiber, bindCallerEffect } from './host-access.js';
|
|
5
5
|
export class ComponentIdentityError extends Error {
|
|
6
6
|
code;
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
/** Primary validated upstream line (newest). */
|
|
2
|
-
export declare const UPSTREAM_VALIDATED_VERSION = "0.1.
|
|
2
|
+
export declare const UPSTREAM_VALIDATED_VERSION = "0.1.5-rc.1";
|
|
3
3
|
/**
|
|
4
4
|
* Explicitly supported upstream prerelease lines, oldest first.
|
|
5
5
|
*
|
|
6
|
-
* 0.1.
|
|
7
|
-
*
|
|
8
|
-
* 0.1.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* (install- and type-level compatibility
|
|
12
|
-
*
|
|
6
|
+
* 0.1.5-rc.1 = primary continuous-CI line; 0.1.5-alpha.2/alpha.1 = mapped
|
|
7
|
+
* compatibility lines (source-checked when the primary line moves);
|
|
8
|
+
* 0.1.3-alpha.2 = compatibility line (the only 0.1.3 build on npm);
|
|
9
|
+
* 0.1.2-rc.1 = previous family (full CI coverage); 0.1.2-alpha.3–alpha.5 =
|
|
10
|
+
* mapped compatibility lines; 0.1.1-rc.1/rc.2 = compatibility lines
|
|
11
|
+
* (install- and type-level compatibility); 0.1.0-rc.7/rc.8 = full CI
|
|
12
|
+
* coverage; 0.1.0-rc.6 = legacy line (install- and type-level
|
|
13
|
+
* compatibility, feature surface may lack later additions — new features
|
|
14
|
+
* must degrade gracefully there).
|
|
13
15
|
* The peer range in package.json is deliberately wider than this list: an
|
|
14
16
|
* install on an older or newer line is allowed but reports drift at boot.
|
|
15
17
|
*/
|
|
16
|
-
export declare const UPSTREAM_VALIDATED_VERSIONS: readonly ["0.1.0-rc.6", "0.1.0-rc.7", "0.1.0-rc.8", "0.1.1-rc.1", "0.1.1-rc.2", "0.1.2-alpha.3", "0.1.2-alpha.4", "0.1.2-alpha.5", "0.1.2-rc.1"];
|
|
18
|
+
export declare const UPSTREAM_VALIDATED_VERSIONS: readonly ["0.1.0-rc.6", "0.1.0-rc.7", "0.1.0-rc.8", "0.1.1-rc.1", "0.1.1-rc.2", "0.1.2-alpha.3", "0.1.2-alpha.4", "0.1.2-alpha.5", "0.1.2-rc.1", "0.1.3-alpha.2", "0.1.5-alpha.1", "0.1.5-alpha.2", "0.1.5-rc.1"];
|
|
17
19
|
/**
|
|
18
20
|
* Framework packages version on their own lines; the contract validates
|
|
19
21
|
* their MAJOR (breaking surface), not the harness prerelease number.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/contract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/contract.ts"],"names":[],"mappings":"AAkBA,gDAAgD;AAChD,eAAO,MAAM,0BAA0B,eAAe,CAAA;AAEtD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,mNAc9B,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG5D,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,06BA8B5B,CAAA;AAEV,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,4EAA4E;AAC5E,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;AAE/D,4FAA4F;AAC5F,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAA;AAEvG,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAKlG;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAQxF;AAkBD,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,QAA6D,CAAA;AAYlG,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAqB9E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAE9F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKnF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAA+B,GAC5F,MAAM,EAAE,CAQV;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,iBAAiB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAA+B,GAC5F,kBAAkB,EAAE,CAuBtB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEtE,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAA;IACvB,sFAAsF;IACtF,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,iBAAiB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAA+B,GAC5F,oBAAoB,GAAG,SAAS,CAyBlC"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Upstream compatibility contract.
|
|
3
3
|
*
|
|
4
4
|
* The TUI is validated against a set of upstream prerelease lines — the
|
|
5
|
-
* current primary (0.1.
|
|
6
|
-
* compatibility across the 0.1.1 and 0.1.0 release
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* current primary (0.1.5-rc.1) plus older lines kept in backward
|
|
6
|
+
* compatibility across the 0.1.5, 0.1.3, 0.1.2, 0.1.1 and 0.1.0 release
|
|
7
|
+
* families.
|
|
8
|
+
* Every official package this adapter touches is blessed here; anything
|
|
9
|
+
* else must go through upstream channels or the adapter, never the UI.
|
|
9
10
|
*
|
|
10
11
|
* `upstreamDrift()` powers the CI gate (scripts/verify-upstream-contract.ts)
|
|
11
12
|
* so a mismatched install fails in CI before it fails on a user's machine.
|
|
@@ -15,17 +16,19 @@
|
|
|
15
16
|
import { readFileSync } from 'node:fs';
|
|
16
17
|
import { fileURLToPath } from 'node:url';
|
|
17
18
|
/** Primary validated upstream line (newest). */
|
|
18
|
-
export const UPSTREAM_VALIDATED_VERSION = '0.1.
|
|
19
|
+
export const UPSTREAM_VALIDATED_VERSION = '0.1.5-rc.1';
|
|
19
20
|
/**
|
|
20
21
|
* Explicitly supported upstream prerelease lines, oldest first.
|
|
21
22
|
*
|
|
22
|
-
* 0.1.
|
|
23
|
-
*
|
|
24
|
-
* 0.1.
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* (install- and type-level compatibility
|
|
28
|
-
*
|
|
23
|
+
* 0.1.5-rc.1 = primary continuous-CI line; 0.1.5-alpha.2/alpha.1 = mapped
|
|
24
|
+
* compatibility lines (source-checked when the primary line moves);
|
|
25
|
+
* 0.1.3-alpha.2 = compatibility line (the only 0.1.3 build on npm);
|
|
26
|
+
* 0.1.2-rc.1 = previous family (full CI coverage); 0.1.2-alpha.3–alpha.5 =
|
|
27
|
+
* mapped compatibility lines; 0.1.1-rc.1/rc.2 = compatibility lines
|
|
28
|
+
* (install- and type-level compatibility); 0.1.0-rc.7/rc.8 = full CI
|
|
29
|
+
* coverage; 0.1.0-rc.6 = legacy line (install- and type-level
|
|
30
|
+
* compatibility, feature surface may lack later additions — new features
|
|
31
|
+
* must degrade gracefully there).
|
|
29
32
|
* The peer range in package.json is deliberately wider than this list: an
|
|
30
33
|
* install on an older or newer line is allowed but reports drift at boot.
|
|
31
34
|
*/
|
|
@@ -39,6 +42,10 @@ export const UPSTREAM_VALIDATED_VERSIONS = [
|
|
|
39
42
|
'0.1.2-alpha.4',
|
|
40
43
|
'0.1.2-alpha.5',
|
|
41
44
|
'0.1.2-rc.1',
|
|
45
|
+
'0.1.3-alpha.2',
|
|
46
|
+
'0.1.5-alpha.1',
|
|
47
|
+
'0.1.5-alpha.2',
|
|
48
|
+
'0.1.5-rc.1',
|
|
42
49
|
];
|
|
43
50
|
/**
|
|
44
51
|
* Framework packages version on their own lines; the contract validates
|