@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,209 @@
|
|
|
1
|
+
import { createUserMessage } from '@deepseek-ai/dsh-llm';
|
|
2
|
+
import { clearResumeTarget, forgetSession, readResumeTarget, touchSession, writeResumeTarget } from '../../sessionHistory.js';
|
|
3
|
+
import { t } from '../../i18n.js';
|
|
4
|
+
import { appendSessionTitle, deleteSessionLog } from '../compat/index.js';
|
|
5
|
+
import { snapshotLiveSessionEvents } from '../compat/liveSession.js';
|
|
6
|
+
import { collectRecentActivity, parseRecapResponse, RECAP_RECENT_CHARS, wrapRecapPrompt } from '../recap.js';
|
|
7
|
+
import { listSummaries, locateSession, previewSession } from '../sessions/index.js';
|
|
8
|
+
import { runSideQuestion, wrapSideQuestion } from '../sideQuestion.js';
|
|
9
|
+
import { isUserInvocable } from '@deepseek-ai/dsh-skill';
|
|
10
|
+
const PREVIEW_ENTRIES = 8;
|
|
11
|
+
/** Session-scoped metadata, persistence queries, and tool-less LLM reads. */
|
|
12
|
+
export function createSessionMetadataActions(ctx, deps) {
|
|
13
|
+
const current = (capture) => deps.owner.current() && deps.binding.isCurrent(capture);
|
|
14
|
+
const persistence = () => ctx.get('sessionPersistence');
|
|
15
|
+
const withOwnerSignal = (signal) => signal === undefined ? deps.owner.signal : AbortSignal.any([signal, deps.owner.signal]);
|
|
16
|
+
const listSessions = async () => {
|
|
17
|
+
const capture = deps.binding.capture();
|
|
18
|
+
const source = persistence();
|
|
19
|
+
if (!source) {
|
|
20
|
+
if (current(capture))
|
|
21
|
+
deps.setPersistedSessions([]);
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
const summaries = await listSummaries(source);
|
|
25
|
+
if (!current(capture))
|
|
26
|
+
return [];
|
|
27
|
+
deps.setPersistedSessions(summaries);
|
|
28
|
+
return summaries;
|
|
29
|
+
};
|
|
30
|
+
const preview = async (sessionId) => {
|
|
31
|
+
const capture = deps.binding.capture();
|
|
32
|
+
const source = persistence();
|
|
33
|
+
if (!source)
|
|
34
|
+
return [];
|
|
35
|
+
const path = await locateSession(source, sessionId);
|
|
36
|
+
if (!current(capture) || path === undefined)
|
|
37
|
+
return [];
|
|
38
|
+
const entries = await previewSession(path, PREVIEW_ENTRIES);
|
|
39
|
+
return current(capture) ? entries : [];
|
|
40
|
+
};
|
|
41
|
+
const listSkills = async () => {
|
|
42
|
+
const capture = deps.binding.capture();
|
|
43
|
+
const target = capture.agent;
|
|
44
|
+
const registry = deps.skillRegistryFor(target);
|
|
45
|
+
if (!registry)
|
|
46
|
+
return [];
|
|
47
|
+
try {
|
|
48
|
+
const observation = await registry.snapshot(deps.skillViewOptions(target));
|
|
49
|
+
if (!current(capture) || !observation.complete)
|
|
50
|
+
return undefined;
|
|
51
|
+
return observation.skills.map(skill => ({
|
|
52
|
+
name: skill.name,
|
|
53
|
+
description: skill.description,
|
|
54
|
+
userInvocable: isUserInvocable(skill),
|
|
55
|
+
source: skill.source,
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return current(capture) ? undefined : [];
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const describeCredential = async (ref) => {
|
|
63
|
+
const capture = deps.binding.capture();
|
|
64
|
+
const credentials = ctx.get('credentials');
|
|
65
|
+
if (!credentials)
|
|
66
|
+
return undefined;
|
|
67
|
+
try {
|
|
68
|
+
const result = await credentials.describe(ref);
|
|
69
|
+
return current(capture) ? result : undefined;
|
|
70
|
+
}
|
|
71
|
+
catch (error) { // `undefined` means the optional service is absent. Keep a live
|
|
72
|
+
// credential service's read failure observable; only suppress it once
|
|
73
|
+
// this Channel binding has been replaced or disposed.
|
|
74
|
+
if (!current(capture))
|
|
75
|
+
return undefined;
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Recaps omit conversation history but borrow its effective system text.
|
|
81
|
+
* Derivation applies surface replacements and empty prompt tombstones;
|
|
82
|
+
* scanning the event log would revive superseded instructions.
|
|
83
|
+
*/
|
|
84
|
+
const currentSystemText = (capture) => {
|
|
85
|
+
try {
|
|
86
|
+
const system = capture.agent.session.deriveMessages().findLast(message => message.role === 'system');
|
|
87
|
+
const text = system?.content.map(block => block.type === 'text' ? block.text : '').join('') ?? '';
|
|
88
|
+
return text === '' ? undefined : text;
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// A session without derived history has no surface prompt to lend.
|
|
92
|
+
}
|
|
93
|
+
return undefined;
|
|
94
|
+
};
|
|
95
|
+
const llmRequest = (capture, messages, includesHistory, signal) => {
|
|
96
|
+
const header = capture.agent.session.requestHeader();
|
|
97
|
+
const config = header?.config;
|
|
98
|
+
// Pre-V3 headers carried the system prompt inline; V3 moved it to
|
|
99
|
+
// `system/message` surface nodes (see currentSystemText).
|
|
100
|
+
const legacySystem = header?.system;
|
|
101
|
+
const system = messages.some(message => message.role === 'system')
|
|
102
|
+
? undefined
|
|
103
|
+
: typeof legacySystem === 'string' ? legacySystem : includesHistory ? undefined : currentSystemText(capture);
|
|
104
|
+
return {
|
|
105
|
+
provider: config?.provider ?? deps.provider(),
|
|
106
|
+
model: config?.model ?? deps.model(),
|
|
107
|
+
messages,
|
|
108
|
+
...(system !== undefined && { system }),
|
|
109
|
+
...(config?.reasoningEffort !== undefined && { reasoningEffort: config.reasoningEffort }),
|
|
110
|
+
...(config?.temperature !== undefined && { temperature: config.temperature }),
|
|
111
|
+
...(config?.maxTokens !== undefined && { maxTokens: config.maxTokens }),
|
|
112
|
+
...(config?.stop !== undefined && { stop: [...config.stop] }),
|
|
113
|
+
sessionId: capture.agent.session.id,
|
|
114
|
+
...(signal && { signal }),
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
const sideQuestion = async (question, options) => {
|
|
118
|
+
const capture = deps.binding.capture();
|
|
119
|
+
const llm = ctx.get('llm');
|
|
120
|
+
if (!llm)
|
|
121
|
+
return { answer: null, error: t('btw-llm-unavailable') };
|
|
122
|
+
const signal = withOwnerSignal(options?.signal);
|
|
123
|
+
const outcome = await runSideQuestion({
|
|
124
|
+
stream: llm.stream.bind(llm),
|
|
125
|
+
options: llmRequest(capture, [
|
|
126
|
+
...capture.agent.session.deriveMessages(),
|
|
127
|
+
createUserMessage({ content: [{ type: 'text', text: wrapSideQuestion(question) }], source: { kind: 'plugin', plugin: 'dsh-tui/btw' } }),
|
|
128
|
+
], true, signal),
|
|
129
|
+
// Do not let an old session append streamed UI facts after a switch.
|
|
130
|
+
onText: delta => { if (current(capture) && !options?.signal?.aborted)
|
|
131
|
+
options?.onText?.(delta); },
|
|
132
|
+
signal,
|
|
133
|
+
});
|
|
134
|
+
return current(capture) ? outcome : { answer: null };
|
|
135
|
+
};
|
|
136
|
+
const recapRecent = async (options) => {
|
|
137
|
+
const capture = deps.binding.capture();
|
|
138
|
+
const llm = ctx.get('llm');
|
|
139
|
+
// Optional host services can be partially mounted while startup is still
|
|
140
|
+
// composing. A present service without its streaming capability is just
|
|
141
|
+
// as unavailable as an absent service; do not throw from an auto recap.
|
|
142
|
+
if (typeof llm?.stream !== 'function')
|
|
143
|
+
return { summary: null, error: t('recap-llm-unavailable') };
|
|
144
|
+
const activity = collectRecentActivity(snapshotLiveSessionEvents(capture.agent.session), RECAP_RECENT_CHARS);
|
|
145
|
+
if (activity === '')
|
|
146
|
+
return { summary: null, error: t('recap-no-activity') };
|
|
147
|
+
const signal = withOwnerSignal(options?.signal);
|
|
148
|
+
const outcome = await runSideQuestion({
|
|
149
|
+
stream: llm.stream.bind(llm),
|
|
150
|
+
options: llmRequest(capture, [
|
|
151
|
+
createUserMessage({ content: [{ type: 'text', text: wrapRecapPrompt(activity) }], source: { kind: 'plugin', plugin: 'dsh-tui/recap' } }),
|
|
152
|
+
], false, signal),
|
|
153
|
+
onText: delta => { if (current(capture) && !options?.signal?.aborted)
|
|
154
|
+
options?.onText?.(delta); },
|
|
155
|
+
signal,
|
|
156
|
+
});
|
|
157
|
+
if (!current(capture) || outcome.answer === null)
|
|
158
|
+
return { summary: null, ...(current(capture) ? { error: outcome.error } : {}) };
|
|
159
|
+
const parsed = parseRecapResponse(outcome.answer);
|
|
160
|
+
return parsed.title === undefined ? { summary: parsed.summary } : { summary: parsed.summary, title: parsed.title };
|
|
161
|
+
};
|
|
162
|
+
const renameSession = (title) => {
|
|
163
|
+
const capture = deps.binding.capture();
|
|
164
|
+
if (!current(capture))
|
|
165
|
+
return;
|
|
166
|
+
capture.agent.session.append('session/title', { title });
|
|
167
|
+
deps.setSessionTitle(title);
|
|
168
|
+
deps.emit();
|
|
169
|
+
};
|
|
170
|
+
const setSessionColor = (color) => {
|
|
171
|
+
const capture = deps.binding.capture();
|
|
172
|
+
if (!current(capture))
|
|
173
|
+
return;
|
|
174
|
+
capture.agent.session
|
|
175
|
+
.append('session/color', { color });
|
|
176
|
+
deps.setSessionColor(color);
|
|
177
|
+
deps.emit();
|
|
178
|
+
};
|
|
179
|
+
const deleteSession = async (sessionId) => {
|
|
180
|
+
const capture = deps.binding.capture();
|
|
181
|
+
if (sessionId === capture.agent.session.id || !current(capture))
|
|
182
|
+
return false;
|
|
183
|
+
if (deleteSessionLog(sessionId) !== 'deleted' || !current(capture))
|
|
184
|
+
return false;
|
|
185
|
+
forgetSession(sessionId);
|
|
186
|
+
deps.forgetAgentView(sessionId);
|
|
187
|
+
if (readResumeTarget() === sessionId)
|
|
188
|
+
clearResumeTarget();
|
|
189
|
+
return true;
|
|
190
|
+
};
|
|
191
|
+
const renameSessionTo = async (sessionId, title) => {
|
|
192
|
+
const capture = deps.binding.capture();
|
|
193
|
+
if (!current(capture))
|
|
194
|
+
return false;
|
|
195
|
+
if (sessionId === capture.agent.session.id) {
|
|
196
|
+
renameSession(title);
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
if (appendSessionTitle(sessionId, title) !== 'appended' || !current(capture))
|
|
200
|
+
return false;
|
|
201
|
+
touchSession(sessionId);
|
|
202
|
+
return true;
|
|
203
|
+
};
|
|
204
|
+
return {
|
|
205
|
+
listSessions, previewSession: preview, listSkills, describeCredential,
|
|
206
|
+
sideQuestion, recapRecent, setResumeTarget: writeResumeTarget,
|
|
207
|
+
renameSession, setSessionColor, deleteSession, renameSessionTo,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ChannelState } from './types.js';
|
|
2
|
+
export type SessionResetState = Pick<ChannelState, 'rows' | 'todos' | 'pending' | 'goal' | 'sessionTitle' | 'sessionColor' | 'tokens' | 'responseChars' | 'activeToolCount' | 'lastUserText' | 'working' | 'cancelPending' | 'spinnerMode' | 'tps' | 'tpsSamples' | 'lastUsage' | 'workingActivity' | 'contextSegments'>;
|
|
3
|
+
/**
|
|
4
|
+
* Reset the projection facts shared by every foreground session adoption.
|
|
5
|
+
* Target-specific route, cwd, preset, loaded-context and status fields stay
|
|
6
|
+
* with the caller: not every adoption has the same semantics for those.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resetSessionProjection(state: SessionResetState, rowIds: {
|
|
9
|
+
value: number;
|
|
10
|
+
}, resetProjector: () => void, resetSubagents: () => void, resetJobs: () => void): void;
|
|
11
|
+
//# sourceMappingURL=session-reset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-reset.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/session-reset.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,YAAY,EACV,MAAM,GACN,OAAO,GACP,SAAS,GACT,MAAM,GACN,cAAc,GACd,cAAc,GACd,QAAQ,GACR,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,SAAS,GACT,eAAe,GACf,aAAa,GACb,KAAK,GACL,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,iBAAiB,CACpB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EACzB,cAAc,EAAE,MAAM,IAAI,EAC1B,cAAc,EAAE,MAAM,IAAI,EAC1B,SAAS,EAAE,MAAM,IAAI,GACpB,IAAI,CAqCN"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { markChannelReadDirty } from '../../adapter/channel/read-view.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reset the projection facts shared by every foreground session adoption.
|
|
4
|
+
* Target-specific route, cwd, preset, loaded-context and status fields stay
|
|
5
|
+
* with the caller: not every adoption has the same semantics for those.
|
|
6
|
+
*/
|
|
7
|
+
export function resetSessionProjection(state, rowIds, resetProjector, resetSubagents, resetJobs) {
|
|
8
|
+
resetProjector();
|
|
9
|
+
rowIds.value = 0;
|
|
10
|
+
state.rows.length = 0;
|
|
11
|
+
markChannelReadDirty(state.rows);
|
|
12
|
+
resetSubagents();
|
|
13
|
+
resetJobs();
|
|
14
|
+
state.todos = [];
|
|
15
|
+
state.pending = [];
|
|
16
|
+
state.goal = undefined;
|
|
17
|
+
state.sessionTitle = '';
|
|
18
|
+
state.sessionColor = '';
|
|
19
|
+
state.tokens = {
|
|
20
|
+
input: 0,
|
|
21
|
+
output: 0,
|
|
22
|
+
cacheRead: 0,
|
|
23
|
+
cacheWrite: 0,
|
|
24
|
+
peak: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
25
|
+
idle: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
26
|
+
};
|
|
27
|
+
state.responseChars = 0;
|
|
28
|
+
state.activeToolCount = 0;
|
|
29
|
+
state.lastUserText = '';
|
|
30
|
+
state.working = false;
|
|
31
|
+
state.cancelPending = false;
|
|
32
|
+
state.spinnerMode = 'requesting';
|
|
33
|
+
state.tps = undefined;
|
|
34
|
+
state.tpsSamples = [];
|
|
35
|
+
state.lastUsage = undefined;
|
|
36
|
+
state.workingActivity = undefined;
|
|
37
|
+
state.contextSegments = {
|
|
38
|
+
system: 0,
|
|
39
|
+
prompt: 0,
|
|
40
|
+
assistant: 0,
|
|
41
|
+
thinking: 0,
|
|
42
|
+
tools: 0,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { AgentHandle } from '@deepseek-ai/dsh-agent';
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import { type SessionEvent } from '@deepseek-ai/dsh-session';
|
|
4
|
+
import { resetSessionProjection } from './session-reset.js';
|
|
5
|
+
import type { createChannelBinding } from './binding.js';
|
|
6
|
+
import type { ChannelOwner } from './owner.js';
|
|
7
|
+
import { type AdapterRuntimeOptions } from '../../adapter/kernel/runtime.js';
|
|
8
|
+
import type { ChannelState, ResumeResult } from './types.js';
|
|
9
|
+
type Binding = ReturnType<typeof createChannelBinding>;
|
|
10
|
+
type ResumeState = Pick<ChannelState, 'working' | 'status' | 'agentId' | 'cwd' | 'displayCwd' | 'agentPreset' | 'provider' | 'model' | 'loadedContext' | 'contextWindow' | 'effortLevels' | 'reasoningEffort' | 'working' | 'emit'> & Parameters<typeof resetSessionProjection>[0];
|
|
11
|
+
export type NewSessionTarget = {
|
|
12
|
+
/** Internal guarded workspace handoff; never exposed on ChannelUi.newSession(). */
|
|
13
|
+
readonly cwd: string;
|
|
14
|
+
readonly displayCwd?: string;
|
|
15
|
+
};
|
|
16
|
+
/** Persisted-session and fresh-session foreground actions. */
|
|
17
|
+
export declare function createSessionResumeActions(ctx: Context, state: ResumeState, options: {
|
|
18
|
+
configuredPreset?: string;
|
|
19
|
+
configuredProvider?: string;
|
|
20
|
+
configuredModel?: string;
|
|
21
|
+
provider: string;
|
|
22
|
+
model: string;
|
|
23
|
+
}, deps: {
|
|
24
|
+
owner: Pick<ChannelOwner, 'current'>;
|
|
25
|
+
binding: Pick<Binding, 'agent' | 'capture' | 'isCurrent' | 'prepare' | 'abandon' | 'adopt'>;
|
|
26
|
+
backgroundHandles: Map<string, AgentHandle>;
|
|
27
|
+
rowIds: {
|
|
28
|
+
value: number;
|
|
29
|
+
};
|
|
30
|
+
resetProjector(): void;
|
|
31
|
+
resetSubagents(): void;
|
|
32
|
+
resetJobs(): void;
|
|
33
|
+
replay(events: readonly SessionEvent[]): void;
|
|
34
|
+
settleReplay(): void;
|
|
35
|
+
describeWorkspace(cwd: string): {
|
|
36
|
+
description?: string;
|
|
37
|
+
};
|
|
38
|
+
refreshGitBranch(): void;
|
|
39
|
+
bindAgent(): void;
|
|
40
|
+
refreshCommands(): void;
|
|
41
|
+
refreshLoadedContext(): Promise<void>;
|
|
42
|
+
refreshSkillCommands(): Promise<void>;
|
|
43
|
+
clearStagedImages(): void;
|
|
44
|
+
settleCompaction(): Promise<void>;
|
|
45
|
+
sessionSwitchVetoed(kind: 'new' | 'resume' | 'agent-view', targetSessionId?: string): Promise<boolean>;
|
|
46
|
+
notify: ChannelState['notify'];
|
|
47
|
+
notifySessionSwitched(kind: 'new' | 'resume' | 'agent-view', sessionId: string, previousSessionId: string): void;
|
|
48
|
+
runtime: AdapterRuntimeOptions;
|
|
49
|
+
}): {
|
|
50
|
+
resumeInto: (sessionId: string, kind: "resume" | "agent-view", keepCurrent: boolean) => Promise<ResumeResult>;
|
|
51
|
+
resumeTo: (sessionId: string) => Promise<ResumeResult>;
|
|
52
|
+
newSession: () => Promise<boolean>;
|
|
53
|
+
newSessionWithTarget: (target?: NewSessionTarget) => Promise<boolean>;
|
|
54
|
+
};
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=session-resume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-resume.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/session-resume.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,WAAW,EAAsB,MAAM,wBAAwB,CAAA;AAEpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAWvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC1G,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5D,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACtD,KAAK,WAAW,GAAG,IAAI,CACrB,YAAY,EACV,SAAS,GACT,QAAQ,GACR,SAAS,GACT,KAAK,GACL,YAAY,GACZ,aAAa,GACb,UAAU,GACV,OAAO,GACP,eAAe,GACf,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,SAAS,GACT,MAAM,CACT,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAUD,8DAA8D;AAC9D,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE;IACP,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd,EACD,IAAI,EAAE;IACJ,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACpC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,CAAA;IAC3F,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC3C,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACzB,cAAc,IAAI,IAAI,CAAA;IACtB,cAAc,IAAI,IAAI,CAAA;IACtB,SAAS,IAAI,IAAI,CAAA;IACjB,MAAM,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAAA;IAC7C,YAAY,IAAI,IAAI,CAAA;IACpB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,gBAAgB,IAAI,IAAI,CAAA;IACxB,SAAS,IAAI,IAAI,CAAA;IACjB,eAAe,IAAI,IAAI,CAAA;IACvB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,iBAAiB,IAAI,IAAI,CAAA;IACzB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,mBAAmB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtG,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC9B,qBAAqB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChH,OAAO,EAAE,qBAAqB,CAAA;CAC/B;4BA6G8B,MAAM,QAAQ,QAAQ,GAAG,YAAY,eAAe,OAAO,KAAG,OAAO,CAAC,YAAY,CAAC;0BAI/E,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC;sBAgH1C,OAAO,CAAC,OAAO,CAAC;oCA/FM,gBAAgB,KAAG,OAAO,CAAC,OAAO,CAAC;EAkGjF"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { SessionId } from '@deepseek-ai/dsh-session';
|
|
3
|
+
import { explicitModelRoute, recordedModelRoute, resolveModelRoute, validateModelRoute } from '../../modelRoute.js';
|
|
4
|
+
import { clearResumeTarget, touchAgentViewSession, touchSession, writeResumeTarget } from '../../sessionHistory.js';
|
|
5
|
+
import { t } from '../../i18n.js';
|
|
6
|
+
import { readModelPref } from '../../modelPrefs.js';
|
|
7
|
+
import { migratePresetPref, readPresetPref } from '../../presetPrefs.js';
|
|
8
|
+
import { agentViewHasTurns } from '../agent-view.js';
|
|
9
|
+
import { ensureLegacySessionEventTypes } from '../compat/index.js';
|
|
10
|
+
import { snapshotLiveSessionEvents } from '../compat/liveSession.js';
|
|
11
|
+
import { composePreset, resolvePersistedPreset, resolvePersistedRoute } from '../presets.js';
|
|
12
|
+
import { attachSessionToWorkspace } from '../workspace.js';
|
|
13
|
+
import { resetSessionProjection } from './session-reset.js';
|
|
14
|
+
import { assertCapabilityShadowPolicy } from '../../adapter/kernel/runtime.js';
|
|
15
|
+
/** Persisted-session and fresh-session foreground actions. */
|
|
16
|
+
export function createSessionResumeActions(ctx, state, options, deps) {
|
|
17
|
+
const resetAndBind = (handle, agentPreset, route, replay) => {
|
|
18
|
+
resetSessionProjection(state, deps.rowIds, deps.resetProjector, deps.resetSubagents, deps.resetJobs);
|
|
19
|
+
state.status = handle.agent.status;
|
|
20
|
+
state.agentId = handle.agent.id;
|
|
21
|
+
state.agentPreset = agentPreset;
|
|
22
|
+
if (route !== undefined) {
|
|
23
|
+
state.provider = route.provider;
|
|
24
|
+
state.model = route.model;
|
|
25
|
+
}
|
|
26
|
+
state.loadedContext = undefined;
|
|
27
|
+
state.contextWindow = undefined;
|
|
28
|
+
state.effortLevels = undefined;
|
|
29
|
+
state.reasoningEffort = undefined;
|
|
30
|
+
if (replay) {
|
|
31
|
+
deps.replay(snapshotLiveSessionEvents(handle.agent.session));
|
|
32
|
+
deps.settleReplay();
|
|
33
|
+
// A resumed log can end mid-turn; mirror boot's post-replay status.
|
|
34
|
+
state.working = handle.agent.status === 'running';
|
|
35
|
+
}
|
|
36
|
+
deps.bindAgent();
|
|
37
|
+
deps.refreshCommands();
|
|
38
|
+
void deps.refreshLoadedContext();
|
|
39
|
+
void deps.refreshSkillCommands();
|
|
40
|
+
};
|
|
41
|
+
/** Resume a persisted session, optionally parking the attached agent for agent-view attachment. */
|
|
42
|
+
const resume = async (sessionId, kind, keepCurrent, adoption, entrySession) => {
|
|
43
|
+
const agents = ctx.get('agents');
|
|
44
|
+
if (!agents) {
|
|
45
|
+
deps.notify(t('resume-unavailable'), { color: 'error' });
|
|
46
|
+
return { ok: false, reason: 'unavailable' };
|
|
47
|
+
}
|
|
48
|
+
ensureLegacySessionEventTypes();
|
|
49
|
+
const composed = await composePreset(ctx, await resolvePersistedPreset(ctx, SessionId(sessionId)));
|
|
50
|
+
const explicitRoute = explicitModelRoute({ provider: options.configuredProvider, model: options.configuredModel });
|
|
51
|
+
const persistedRoute = await resolvePersistedRoute(ctx, SessionId(sessionId));
|
|
52
|
+
let handle;
|
|
53
|
+
try {
|
|
54
|
+
handle = await deps.binding.prepare(adoption, () => agents.resume({
|
|
55
|
+
resumeSessionId: SessionId(sessionId),
|
|
56
|
+
agentOptions: {
|
|
57
|
+
provider: explicitRoute?.provider ?? persistedRoute?.provider,
|
|
58
|
+
model: explicitRoute?.model ?? persistedRoute?.model,
|
|
59
|
+
},
|
|
60
|
+
...(composed.setup === undefined ? {} : { setup: composed.setup }),
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
65
|
+
deps.notify(t('resume-failed', { err: message }), { color: 'error', timeoutMs: 8000 });
|
|
66
|
+
return { ok: false, reason: 'failed', error: message };
|
|
67
|
+
}
|
|
68
|
+
if (!deps.binding.isCurrent(adoption)) {
|
|
69
|
+
await deps.binding.abandon(handle);
|
|
70
|
+
return { ok: false, reason: 'cancelled' };
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
await attachSessionToWorkspace(ctx, handle.agent.session.header.cwd ?? state.cwd, SessionId(sessionId));
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
deps.notify(t('resume-attach-failed', { err: error instanceof Error ? error.message : String(error) }), { color: 'warning', timeoutMs: 8000 });
|
|
77
|
+
}
|
|
78
|
+
if (entrySession !== undefined && (!deps.owner.current() || deps.binding.agent.session !== entrySession)) {
|
|
79
|
+
await deps.binding.abandon(handle);
|
|
80
|
+
deps.notify(t('resume-session-changed'), { color: 'error' });
|
|
81
|
+
return { ok: false, reason: 'failed', error: 'live session changed during resume' };
|
|
82
|
+
}
|
|
83
|
+
return deps.binding.adopt(handle, adoption, (committed, disposePrevious) => {
|
|
84
|
+
const previousSessionId = String(committed.agent.session.id);
|
|
85
|
+
state.cwd = handle.agent.session.header.cwd ?? state.cwd;
|
|
86
|
+
state.displayCwd = deps.describeWorkspace(state.cwd).description ?? state.cwd;
|
|
87
|
+
deps.refreshGitBranch();
|
|
88
|
+
// Reset the input FIFO and pending-decision indicators BEFORE the first
|
|
89
|
+
// emit (main's bind → clear → refresh order); see the /new tail.
|
|
90
|
+
deps.clearStagedImages();
|
|
91
|
+
resetAndBind(handle, composed.agentPreset, explicitRoute ?? recordedModelRoute(snapshotLiveSessionEvents(handle.agent.session)), true);
|
|
92
|
+
writeResumeTarget(sessionId);
|
|
93
|
+
touchSession(sessionId);
|
|
94
|
+
state.emit();
|
|
95
|
+
const keepPrevious = keepCurrent && committed.handle !== undefined
|
|
96
|
+
&& (committed.handle.agent.status === 'running' || agentViewHasTurns(snapshotLiveSessionEvents(committed.handle.agent.session)));
|
|
97
|
+
if (committed.handle !== undefined) {
|
|
98
|
+
if (keepPrevious) {
|
|
99
|
+
deps.backgroundHandles.set(previousSessionId, committed.handle);
|
|
100
|
+
disposePrevious('park');
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
disposePrevious('dispose');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (kind === 'agent-view') {
|
|
107
|
+
touchAgentViewSession(sessionId);
|
|
108
|
+
touchAgentViewSession(previousSessionId);
|
|
109
|
+
}
|
|
110
|
+
deps.notifySessionSwitched(kind, sessionId, previousSessionId);
|
|
111
|
+
return { ok: true };
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
const resumeInto = (sessionId, kind, keepCurrent) => resume(sessionId, kind, keepCurrent, deps.binding.capture());
|
|
115
|
+
/** `/resume` keeps the entry capture across its veto/compaction awaits, so a rival switch cannot adopt over newer state. */
|
|
116
|
+
const resumeTo = async (sessionId) => {
|
|
117
|
+
const adoption = deps.binding.capture();
|
|
118
|
+
if (state.working) {
|
|
119
|
+
deps.notify(t('resume-while-working'), { color: 'warning' });
|
|
120
|
+
return { ok: false, reason: 'working' };
|
|
121
|
+
}
|
|
122
|
+
const agents = ctx.get('agents');
|
|
123
|
+
if (!agents) {
|
|
124
|
+
deps.notify(t('resume-unavailable'), { color: 'error' });
|
|
125
|
+
return { ok: false, reason: 'unavailable' };
|
|
126
|
+
}
|
|
127
|
+
if (await deps.sessionSwitchVetoed('resume', sessionId))
|
|
128
|
+
return { ok: false, reason: 'cancelled' };
|
|
129
|
+
await deps.settleCompaction();
|
|
130
|
+
const entrySession = deps.binding.agent.session;
|
|
131
|
+
return resume(sessionId, 'resume', false, adoption, entrySession);
|
|
132
|
+
};
|
|
133
|
+
const newSessionWithTarget = async (target) => {
|
|
134
|
+
// The typed workspace target seam still creates a real Agent/session; it
|
|
135
|
+
// must pass the same shadow policy gate as the public /new action.
|
|
136
|
+
assertCapabilityShadowPolicy('host.channel.actions.new-session', deps.runtime.mode, deps.runtime.slices);
|
|
137
|
+
const adoption = deps.binding.capture();
|
|
138
|
+
const targetCwd = target?.cwd ?? state.cwd;
|
|
139
|
+
const targetDisplayCwd = target?.displayCwd;
|
|
140
|
+
const current = () => deps.owner.current() && deps.binding.isCurrent(adoption);
|
|
141
|
+
if (state.working) {
|
|
142
|
+
deps.notify(t('new-session-while-working'), { color: 'warning' });
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
const agents = ctx.get('agents');
|
|
146
|
+
if (!agents) {
|
|
147
|
+
deps.notify(t('new-session-unavailable'), { color: 'error' });
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
let sessionId;
|
|
151
|
+
let composed;
|
|
152
|
+
let route;
|
|
153
|
+
try {
|
|
154
|
+
if (await deps.sessionSwitchVetoed('new') || !current())
|
|
155
|
+
return false;
|
|
156
|
+
await deps.settleCompaction();
|
|
157
|
+
if (!current())
|
|
158
|
+
return false;
|
|
159
|
+
sessionId = SessionId(randomUUID());
|
|
160
|
+
const presetPref = options.configuredPreset === undefined ? readPresetPref() : undefined;
|
|
161
|
+
composed = await composePreset(ctx, options.configuredPreset ?? presetPref);
|
|
162
|
+
if (!current())
|
|
163
|
+
return false;
|
|
164
|
+
const resolved = resolveModelRoute({ provider: options.configuredProvider, model: options.configuredModel }, readModelPref(), { provider: options.provider, model: options.model });
|
|
165
|
+
const llm = ctx.get('llm');
|
|
166
|
+
const validated = await validateModelRoute(llm, resolved, { provider: options.provider, model: options.model });
|
|
167
|
+
route = validated.route;
|
|
168
|
+
if (!current())
|
|
169
|
+
return false;
|
|
170
|
+
if (!migratePresetPref(presetPref, composed.agentPreset)) {
|
|
171
|
+
deps.notify(t('preset-switched-pref-failed', { id: composed.agentPreset ?? presetPref ?? 'unknown' }), { color: 'warning' });
|
|
172
|
+
}
|
|
173
|
+
if (validated.rejected !== undefined) {
|
|
174
|
+
deps.notify(t('model-route-invalid', { provider: validated.rejected.provider, model: validated.rejected.model, fallback: `${route.provider}/${route.model}` }), { color: 'warning', timeoutMs: 8000 });
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
if (current()) {
|
|
179
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
180
|
+
deps.notify(t('new-session-failed', { err: message }), { color: 'error', timeoutMs: 8000 });
|
|
181
|
+
}
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
let handle;
|
|
185
|
+
try {
|
|
186
|
+
handle = await deps.binding.prepare(adoption, () => agents.create({
|
|
187
|
+
sessionId,
|
|
188
|
+
meta: { cwd: targetCwd, ...(composed.agentPreset === undefined ? {} : { agentPreset: composed.agentPreset }) },
|
|
189
|
+
agentOptions: route,
|
|
190
|
+
...(composed.setup === undefined ? {} : { setup: composed.setup }),
|
|
191
|
+
}));
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (current()) {
|
|
195
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
196
|
+
deps.notify(t('new-session-failed', { err: message }), { color: 'error', timeoutMs: 8000 });
|
|
197
|
+
}
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
if (!current()) {
|
|
201
|
+
await deps.binding.abandon(handle);
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
try {
|
|
205
|
+
await attachSessionToWorkspace(ctx, targetCwd, sessionId);
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
if (current())
|
|
209
|
+
deps.notify(t('new-session-attach-failed', { err: error instanceof Error ? error.message : String(error) }), { color: 'warning', timeoutMs: 8000 });
|
|
210
|
+
}
|
|
211
|
+
if (!current()) {
|
|
212
|
+
await deps.binding.abandon(handle);
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
// Do not catch this synchronous commit tail. A post-commit setup failure
|
|
216
|
+
// is owned by binding.adopt(), which revokes the new live handle and must
|
|
217
|
+
// reject its caller rather than masquerade as an ordinary precommit false.
|
|
218
|
+
return deps.binding.adopt(handle, adoption, (committed, disposePrevious) => {
|
|
219
|
+
const previousSessionId = String(committed.agent.session.id);
|
|
220
|
+
// The target only becomes shared channel state inside the successful
|
|
221
|
+
// adoption tail. A losing prepared handle therefore cannot publish or
|
|
222
|
+
// roll back another workspace's cwd.
|
|
223
|
+
state.cwd = targetCwd;
|
|
224
|
+
state.displayCwd = targetDisplayCwd ?? deps.describeWorkspace(targetCwd).description ?? targetCwd;
|
|
225
|
+
// Reset the input FIFO and the pending-decision indicators BEFORE the
|
|
226
|
+
// first emit: a submit enqueued from a session-changed subscriber must
|
|
227
|
+
// land on a fresh chain instead of behind the replaced session's parked
|
|
228
|
+
// promise (main's bind → clear → refresh order).
|
|
229
|
+
deps.clearStagedImages();
|
|
230
|
+
resetAndBind(handle, composed.agentPreset, route, false);
|
|
231
|
+
clearResumeTarget();
|
|
232
|
+
touchSession(handle.agent.id);
|
|
233
|
+
disposePrevious('dispose');
|
|
234
|
+
deps.notifySessionSwitched('new', String(handle.agent.id), previousSessionId);
|
|
235
|
+
return true;
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
const newSession = () => newSessionWithTarget();
|
|
239
|
+
return { resumeInto, resumeTo, newSession, newSessionWithTarget };
|
|
240
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AgentHandle } from '@deepseek-ai/dsh-agent';
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import { SessionId, type SessionEvent } from '@deepseek-ai/dsh-session';
|
|
4
|
+
import type { createChannelBinding } from './binding.js';
|
|
5
|
+
import type { ChannelOwner } from './owner.js';
|
|
6
|
+
import type { ChannelState, ChatRow } from './types.js';
|
|
7
|
+
type Binding = ReturnType<typeof createChannelBinding>;
|
|
8
|
+
type RewindState = Pick<ChannelState, 'working' | 'cwd' | 'provider' | 'model'>;
|
|
9
|
+
/** Rewind a selected transcript row into a prepared, binding-owned fork. */
|
|
10
|
+
export declare function createRewindToAction(ctx: Context, state: RewindState, deps: {
|
|
11
|
+
owner: Pick<ChannelOwner, 'current'>;
|
|
12
|
+
binding: Pick<Binding, 'agent' | 'capture' | 'prepare' | 'isCurrent' | 'abandon'>;
|
|
13
|
+
settleCompaction(): Promise<void>;
|
|
14
|
+
notify: ChannelState['notify'];
|
|
15
|
+
adoptForkedAgent(handle: AgentHandle, capture: ReturnType<Binding['capture']>, seed: readonly SessionEvent[], agentPreset: string | undefined, childId: SessionId): string;
|
|
16
|
+
notifySessionSwitched(kind: 'rewind', sessionId: string, previousSessionId: string): void;
|
|
17
|
+
}): (row: ChatRow, mode?: string | null) => Promise<string | null>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=session-rewind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-rewind.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/session-rewind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAsB,MAAM,wBAAwB,CAAA;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAQvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEvD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACtD,KAAK,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC,CAAA;AAgB/E,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE;IACJ,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACpC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC,CAAA;IACjF,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC9B,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,YAAY,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,MAAM,CAAA;IAC1K,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1F,IAEa,KAAK,OAAO,EAAE,OAAM,MAAM,GAAG,IAAW,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwFhF"}
|