@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,147 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { rankFileCandidates } from '../../utils/fileSuggestions.js';
|
|
3
|
+
import { homeDir } from '../../utils/paths.js';
|
|
4
|
+
/** Trailing path segment (`C:/a/b` → `b`). */
|
|
5
|
+
export function basename(path) {
|
|
6
|
+
const parts = path.split(/[\\/]/);
|
|
7
|
+
return parts[parts.length - 1] ?? path;
|
|
8
|
+
}
|
|
9
|
+
/** Normalize a cwd for comparison: forward slashes, no trailing slash; case
|
|
10
|
+
* folded when the platform's filesystem semantics are case-insensitive. */
|
|
11
|
+
export function normalizeCwd(path, caseInsensitive) {
|
|
12
|
+
const normalized = path.replace(/\\/g, '/').replace(/\/+$/, '');
|
|
13
|
+
return caseInsensitive ? normalized.toLowerCase() : normalized;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* `/resume` project filter (issue #96): exact cwd match, PLUS sessions
|
|
17
|
+
* recorded in a subdirectory — pre-upgrade launches recorded the launch
|
|
18
|
+
* subdirectory as the header cwd, and with the cwd default now resolving to
|
|
19
|
+
* the git worktree root an exact match would hide those sessions forever.
|
|
20
|
+
* They belong to the same workspace, so they stay listed. Comparison follows
|
|
21
|
+
* the platform's filesystem semantics (case-insensitive on Windows — a
|
|
22
|
+
* pre-upgrade header may record `C:\Repo` where the current launch resolves
|
|
23
|
+
* `c:\repo`). `caseInsensitive` is a parameter (not a platform read) so the
|
|
24
|
+
* verifier can exercise both modes on any host. Exported for
|
|
25
|
+
* scripts/verify-session-cwd.mjs.
|
|
26
|
+
*
|
|
27
|
+
* Boundary rule (issue #153): container directories are nobody's workspace.
|
|
28
|
+
* $HOME and the Windows root forms — plain drive roots (`C:`), UNC share
|
|
29
|
+
* roots (`//server/share`), and extended-length roots (`//?/C:`,
|
|
30
|
+
* `//?/UNC/server/share`) — are ancestors of unrelated projects, so the
|
|
31
|
+
* descendant rules below would list every session on the machine from `~`
|
|
32
|
+
* (and every session on the drive/share from those roots). At these
|
|
33
|
+
* boundaries, in either direction, only an exact match passes.
|
|
34
|
+
*/
|
|
35
|
+
export function sessionCwdMatches(stateCwd, headerCwd, caseInsensitive = process.platform === 'win32') {
|
|
36
|
+
const cwd = normalizeCwd(stateCwd, caseInsensitive);
|
|
37
|
+
const recorded = normalizeCwd(headerCwd, caseInsensitive);
|
|
38
|
+
if (recorded === '' || cwd === '')
|
|
39
|
+
return false;
|
|
40
|
+
const home = normalizeCwd(homeDir(), caseInsensitive);
|
|
41
|
+
// Paths below arrive backslash-normalized (`\\server\share` →
|
|
42
|
+
// `//server/share`, `\\?\C:\` → `//?/C:`), trailing slashes stripped.
|
|
43
|
+
const isContainer = (path) => (home !== '' && path === home) ||
|
|
44
|
+
/^[a-z]:$/i.test(path) || // drive root: C:
|
|
45
|
+
/^\/\/[^/]+\/[^/]+$/.test(path) || // UNC share root: //server/share
|
|
46
|
+
/^\/\/\?\/[a-z]:$/i.test(path) || // extended drive root: //?/C:
|
|
47
|
+
/^\/\/\?\/unc\/[^/]+\/[^/]+$/i.test(path); // extended UNC root: //?/UNC/server/share
|
|
48
|
+
if (isContainer(cwd) || isContainer(recorded))
|
|
49
|
+
return recorded === cwd;
|
|
50
|
+
return (recorded === cwd ||
|
|
51
|
+
// Pre-upgrade subdirectory session of this workspace.
|
|
52
|
+
recorded.startsWith(`${cwd}/`) ||
|
|
53
|
+
// Resumed INTO a pre-upgrade subdirectory session (state.cwd adopted its
|
|
54
|
+
// recorded subdirectory): the workspace-root sessions it belongs with
|
|
55
|
+
// must stay visible, or /resume looks like it lost them for the rest of
|
|
56
|
+
// the process lifetime (review leftover).
|
|
57
|
+
cwd.startsWith(`${recorded}/`));
|
|
58
|
+
}
|
|
59
|
+
export async function listPathCandidates(fs, cwd, query, signal, topK) {
|
|
60
|
+
const normalized = query.replaceAll('\\', '/');
|
|
61
|
+
const slash = normalized.lastIndexOf('/');
|
|
62
|
+
// `.` / `..` without a trailing separator are whole-directory queries too.
|
|
63
|
+
const bareDir = slash < 0 && (normalized === '.' || normalized === '..' || normalized === '~');
|
|
64
|
+
const directoryPart = slash < 0 ? (bareDir ? `${normalized}/` : '') : normalized.slice(0, slash + 1);
|
|
65
|
+
const nameQuery = slash < 0 || bareDir ? '' : normalized.slice(slash + 1);
|
|
66
|
+
// `~/` expands against the host home (matches the cwd resolution rules);
|
|
67
|
+
// drive-letter and POSIX-absolute prefixes pass through untouched.
|
|
68
|
+
const expanded = directoryPart === '~/'
|
|
69
|
+
? `${homeDir()}/`
|
|
70
|
+
: directoryPart.startsWith('/') || /^[A-Za-z]:\//.test(directoryPart)
|
|
71
|
+
? directoryPart
|
|
72
|
+
: join(cwd, directoryPart || '.');
|
|
73
|
+
try {
|
|
74
|
+
if (signal?.aborted)
|
|
75
|
+
return [];
|
|
76
|
+
const target = await fs.resolve(expanded);
|
|
77
|
+
const entries = (await fs.listDir(target)).slice().sort((a, b) => a.name.localeCompare(b.name));
|
|
78
|
+
return rankFileCandidates(entries.filter(entry => entry.type === 'file' || entry.type === 'directory').map(entry => {
|
|
79
|
+
const path = `${directoryPart}${entry.name}${entry.type === 'directory' ? '/' : ''}`;
|
|
80
|
+
return { id: path, path, displayPath: path, name: entry.name, kind: entry.type, score: 0 };
|
|
81
|
+
}), nameQuery, topK);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export async function listFilesDeepCandidates(fs, root, signal) {
|
|
88
|
+
if (!fs)
|
|
89
|
+
return [];
|
|
90
|
+
const out = [];
|
|
91
|
+
const SKIP = new Set(['node_modules', '.git', '.hg', '.svn', '.DS_Store', 'dist']);
|
|
92
|
+
const BUILD_DIR = /^(?:build(?:[-_].*)?|cmake-build(?:[-_].*)?)$/i;
|
|
93
|
+
const queue = [{ dir: root, prefix: '', index: 0 }];
|
|
94
|
+
const visited = new Set();
|
|
95
|
+
const maxFiles = 100;
|
|
96
|
+
const maxDirectories = 100;
|
|
97
|
+
let fileCount = 0;
|
|
98
|
+
let dirCount = 0;
|
|
99
|
+
// Round-robin: each directory yields ONE non-skipped entry per visit before
|
|
100
|
+
// it re-queues, so a large early sibling (e.g. `generated/` with 120 files)
|
|
101
|
+
// cannot starve `src/` out of the per-kind budgets. This is the regression
|
|
102
|
+
// contract pinned by scripts/verify-file-completion.mjs.
|
|
103
|
+
while (queue.length && fileCount < maxFiles && dirCount < maxDirectories) {
|
|
104
|
+
if (signal?.aborted)
|
|
105
|
+
return [];
|
|
106
|
+
const current = queue.shift();
|
|
107
|
+
if (!current.entries) {
|
|
108
|
+
try {
|
|
109
|
+
const target = await fs.resolve(current.dir);
|
|
110
|
+
if (visited.has(target.displayPath))
|
|
111
|
+
continue;
|
|
112
|
+
visited.add(target.displayPath);
|
|
113
|
+
current.entries = (await fs.listDir(target)).slice().sort((a, b) => a.name.localeCompare(b.name));
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
let entry;
|
|
120
|
+
while (current.index < current.entries.length) {
|
|
121
|
+
const candidate = current.entries[current.index++];
|
|
122
|
+
if (SKIP.has(candidate.name) || BUILD_DIR.test(candidate.name))
|
|
123
|
+
continue;
|
|
124
|
+
entry = candidate;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
if (!entry)
|
|
128
|
+
continue;
|
|
129
|
+
if (current.index < current.entries.length)
|
|
130
|
+
queue.push(current);
|
|
131
|
+
const path = current.prefix ? `${current.prefix}/${entry.name}` : entry.name;
|
|
132
|
+
if (entry.type === 'directory') {
|
|
133
|
+
if (dirCount >= maxDirectories)
|
|
134
|
+
continue;
|
|
135
|
+
out.push({ id: `${path}/`, path: `${path}/`, displayPath: `${path}/`, name: entry.name, kind: 'directory', score: 0 });
|
|
136
|
+
dirCount += 1;
|
|
137
|
+
queue.push({ dir: entry.target?.displayPath ?? join(current.dir, entry.name), prefix: path, index: 0 });
|
|
138
|
+
}
|
|
139
|
+
else if (entry.type === 'file') {
|
|
140
|
+
if (fileCount >= maxFiles)
|
|
141
|
+
continue;
|
|
142
|
+
out.push({ id: path, path, displayPath: path, name: entry.name, kind: 'file', score: 0 });
|
|
143
|
+
fileCount += 1;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return out.sort((a, b) => a.path.localeCompare(b.path));
|
|
147
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type SessionModeSpec } from '../../sessionModes.js';
|
|
2
|
+
import type { PermissionPresetOption, PermissionPresetService, PermissionPresetSnapshot } from './types.js';
|
|
3
|
+
export declare const PERMISSION_PRESET_CUSTOM = "custom";
|
|
4
|
+
export declare const PERMISSION_PRESET_NAME_CELLS = 120;
|
|
5
|
+
export declare const PERMISSION_PRESET_DESCRIPTION_CELLS = 400;
|
|
6
|
+
/** The mounted registry may expose seams this package's declared contract
|
|
7
|
+
* does not name yet: `resolve` (atom bundles) and `set` (the write path the
|
|
8
|
+
* official `/permission` command drives). Read structurally, never assumed. */
|
|
9
|
+
export interface PermissionPresetRuntime extends PermissionPresetService {
|
|
10
|
+
resolve?: (name: string) => unknown;
|
|
11
|
+
set?: (subject: unknown, name: string) => unknown;
|
|
12
|
+
}
|
|
13
|
+
/** One runtime preset's resolved atom bundle. */
|
|
14
|
+
export interface PermissionPresetBundle {
|
|
15
|
+
readonly value: string;
|
|
16
|
+
readonly sandbox?: SessionModeSpec['sandbox'];
|
|
17
|
+
readonly approval?: SessionModeSpec['approval'];
|
|
18
|
+
}
|
|
19
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
20
|
+
/** Narrow a raw service read to the structural registry surface. */
|
|
21
|
+
export declare function permissionPresetRuntime(service: unknown): PermissionPresetRuntime | undefined;
|
|
22
|
+
/** Keep a permission roster read-only after it crosses the adapter boundary.
|
|
23
|
+
* The registry may reuse and mutate its option objects between reads; callers
|
|
24
|
+
* must observe one stable snapshot instead of a live view into that service. */
|
|
25
|
+
export declare function freezePermissionPresetSnapshot(snapshot: PermissionPresetSnapshot): PermissionPresetSnapshot;
|
|
26
|
+
export declare function legacyPermissionPresetOptions(): readonly PermissionPresetOption[];
|
|
27
|
+
export declare function legacyPermissionPresetSnapshot(sandbox: SessionModeSpec['sandbox']): PermissionPresetSnapshot;
|
|
28
|
+
export declare function unavailablePermissionPresetSnapshot(): PermissionPresetSnapshot;
|
|
29
|
+
export declare function normalizePermissionPresetOption(value: unknown): PermissionPresetOption | undefined;
|
|
30
|
+
/** Atom bundles the deployment's preset table resolves (value →
|
|
31
|
+
* sandbox/approval). Empty when the service is absent or exposes no
|
|
32
|
+
* `resolve` seam — canonical resolution then falls back to the stock
|
|
33
|
+
* bundles (see `canonicalPresetFor`). */
|
|
34
|
+
export declare function permissionBundlesFromService(service: unknown): readonly PermissionPresetBundle[];
|
|
35
|
+
/** The registry's current readback for one subject. Real harness registries
|
|
36
|
+
* resolve `current(session)` through their session-projections seam; earlier
|
|
37
|
+
* contract versions folded a raw event log. Try the subject as given, then
|
|
38
|
+
* the event-log shape it may carry. */
|
|
39
|
+
export declare function permissionPresetSnapshotFromService(service: unknown, subject: unknown): PermissionPresetSnapshot;
|
|
40
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAE3G,eAAO,MAAM,wBAAwB,WAAW,CAAA;AAEhD,eAAO,MAAM,4BAA4B,MAAM,CAAA;AAE/C,eAAO,MAAM,mCAAmC,MAAM,CAAA;AAEtD;;gFAEgF;AAChF,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACtE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CAClD;AAED,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;CAChD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,oEAAoE;AACpE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAE7F;AAED;;iFAEiF;AACjF,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,wBAAwB,CAQ3G;AAED,wBAAgB,6BAA6B,IAAI,SAAS,sBAAsB,EAAE,CAkBjF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,GAAG,wBAAwB,CAU5G;AAED,wBAAgB,mCAAmC,IAAI,wBAAwB,CAE9E;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAclG;AAED;;;0CAG0C;AAC1C,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,sBAAsB,EAAE,CAwBhG;AAED;;;wCAGwC;AACxC,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf,wBAAwB,CAyE1B"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { t } from '../../i18n.js';
|
|
2
|
+
import { cleanRenderText } from '../sanitize.js';
|
|
3
|
+
export const PERMISSION_PRESET_CUSTOM = 'custom';
|
|
4
|
+
export const PERMISSION_PRESET_NAME_CELLS = 120;
|
|
5
|
+
export const PERMISSION_PRESET_DESCRIPTION_CELLS = 400;
|
|
6
|
+
export function isRecord(value) {
|
|
7
|
+
return value !== null && typeof value === 'object';
|
|
8
|
+
}
|
|
9
|
+
/** Narrow a raw service read to the structural registry surface. */
|
|
10
|
+
export function permissionPresetRuntime(service) {
|
|
11
|
+
return isRecord(service) ? service : undefined;
|
|
12
|
+
}
|
|
13
|
+
/** Keep a permission roster read-only after it crosses the adapter boundary.
|
|
14
|
+
* The registry may reuse and mutate its option objects between reads; callers
|
|
15
|
+
* must observe one stable snapshot instead of a live view into that service. */
|
|
16
|
+
export function freezePermissionPresetSnapshot(snapshot) {
|
|
17
|
+
const options = Object.freeze(snapshot.options.map(option => Object.freeze({ ...option })));
|
|
18
|
+
const current = snapshot.current === undefined ? undefined : Object.freeze({ ...snapshot.current });
|
|
19
|
+
return Object.freeze({
|
|
20
|
+
availability: snapshot.availability,
|
|
21
|
+
options,
|
|
22
|
+
...(current === undefined ? {} : { current }),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function legacyPermissionPresetOptions() {
|
|
26
|
+
return [
|
|
27
|
+
{
|
|
28
|
+
value: 'read-only',
|
|
29
|
+
name: t('permission-preset-readonly'),
|
|
30
|
+
description: t('permission-preset-readonly-desc'),
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
value: 'workspace-write',
|
|
34
|
+
name: t('permission-preset-workspace-write'),
|
|
35
|
+
description: t('permission-preset-workspace-write-desc'),
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
value: 'danger-full-access',
|
|
39
|
+
name: t('permission-preset-full-access'),
|
|
40
|
+
description: t('permission-preset-full-access-desc'),
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
}
|
|
44
|
+
export function legacyPermissionPresetSnapshot(sandbox) {
|
|
45
|
+
const options = legacyPermissionPresetOptions();
|
|
46
|
+
const currentOption = sandbox === undefined ? undefined : options.find(option => option.value === sandbox);
|
|
47
|
+
return freezePermissionPresetSnapshot({
|
|
48
|
+
availability: 'legacy',
|
|
49
|
+
options,
|
|
50
|
+
...(currentOption === undefined
|
|
51
|
+
? {}
|
|
52
|
+
: { current: { ...currentOption, kind: 'preset' } }),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export function unavailablePermissionPresetSnapshot() {
|
|
56
|
+
return freezePermissionPresetSnapshot({ availability: 'unavailable', options: [] });
|
|
57
|
+
}
|
|
58
|
+
export function normalizePermissionPresetOption(value) {
|
|
59
|
+
if (!isRecord(value) || typeof value.value !== 'string' || typeof value.name !== 'string')
|
|
60
|
+
return undefined;
|
|
61
|
+
const name = cleanRenderText(value.name, PERMISSION_PRESET_NAME_CELLS);
|
|
62
|
+
if (name === '')
|
|
63
|
+
return undefined;
|
|
64
|
+
if (value.description !== undefined && typeof value.description !== 'string')
|
|
65
|
+
return undefined;
|
|
66
|
+
const description = value.description === undefined
|
|
67
|
+
? undefined
|
|
68
|
+
: cleanRenderText(value.description, PERMISSION_PRESET_DESCRIPTION_CELLS);
|
|
69
|
+
if (value.description !== undefined && description === '')
|
|
70
|
+
return undefined;
|
|
71
|
+
return {
|
|
72
|
+
value: value.value,
|
|
73
|
+
name,
|
|
74
|
+
...(description === undefined || description === '' ? {} : { description }),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/** Atom bundles the deployment's preset table resolves (value →
|
|
78
|
+
* sandbox/approval). Empty when the service is absent or exposes no
|
|
79
|
+
* `resolve` seam — canonical resolution then falls back to the stock
|
|
80
|
+
* bundles (see `canonicalPresetFor`). */
|
|
81
|
+
export function permissionBundlesFromService(service) {
|
|
82
|
+
const runtime = permissionPresetRuntime(service);
|
|
83
|
+
if (runtime === undefined || typeof runtime.resolve !== 'function')
|
|
84
|
+
return [];
|
|
85
|
+
const names = Array.isArray(runtime.names) ? runtime.names : [];
|
|
86
|
+
const bundles = [];
|
|
87
|
+
for (const name of names) {
|
|
88
|
+
if (typeof name !== 'string')
|
|
89
|
+
continue;
|
|
90
|
+
try {
|
|
91
|
+
// The registry resolves atoms on instance state; never detach `resolve`.
|
|
92
|
+
const spec = runtime.resolve(name);
|
|
93
|
+
if (!isRecord(spec))
|
|
94
|
+
continue;
|
|
95
|
+
const sandbox = spec.sandbox;
|
|
96
|
+
const approval = spec.approval;
|
|
97
|
+
if ((sandbox === 'read-only' || sandbox === 'workspace-write' || sandbox === 'danger-full-access')
|
|
98
|
+
&& (approval === 'ask' || approval === 'never')) {
|
|
99
|
+
bundles.push({ value: name, sandbox, approval });
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// Optional resolution; a broken entry just does not extend the table.
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return bundles;
|
|
107
|
+
}
|
|
108
|
+
/** The registry's current readback for one subject. Real harness registries
|
|
109
|
+
* resolve `current(session)` through their session-projections seam; earlier
|
|
110
|
+
* contract versions folded a raw event log. Try the subject as given, then
|
|
111
|
+
* the event-log shape it may carry. */
|
|
112
|
+
export function permissionPresetSnapshotFromService(service, subject) {
|
|
113
|
+
const runtime = permissionPresetRuntime(service);
|
|
114
|
+
if (runtime === undefined)
|
|
115
|
+
return unavailablePermissionPresetSnapshot();
|
|
116
|
+
try {
|
|
117
|
+
const capturedNames = Array.isArray(runtime.names) ? runtime.names : [];
|
|
118
|
+
if (capturedNames.length === 0)
|
|
119
|
+
return unavailablePermissionPresetSnapshot();
|
|
120
|
+
if (typeof runtime.current !== 'function' || typeof runtime.optionOf !== 'function') {
|
|
121
|
+
return unavailablePermissionPresetSnapshot();
|
|
122
|
+
}
|
|
123
|
+
// Readback lives on the registry instance; bind so the calls below keep
|
|
124
|
+
// reaching it through the same object instead of a detached reference.
|
|
125
|
+
const current = runtime.current.bind(runtime);
|
|
126
|
+
const optionOf = runtime.optionOf.bind(runtime);
|
|
127
|
+
const names = [];
|
|
128
|
+
for (const name of capturedNames) {
|
|
129
|
+
if (typeof name !== 'string' || name.trim() === '' || name === PERMISSION_PRESET_CUSTOM || names.includes(name)) {
|
|
130
|
+
return unavailablePermissionPresetSnapshot();
|
|
131
|
+
}
|
|
132
|
+
names.push(name);
|
|
133
|
+
}
|
|
134
|
+
const seen = new Set(names);
|
|
135
|
+
const options = [];
|
|
136
|
+
for (const name of names) {
|
|
137
|
+
const option = normalizePermissionPresetOption(optionOf(name));
|
|
138
|
+
if (option === undefined || option.value !== name)
|
|
139
|
+
return unavailablePermissionPresetSnapshot();
|
|
140
|
+
options.push({ ...option });
|
|
141
|
+
}
|
|
142
|
+
let currentValue;
|
|
143
|
+
try {
|
|
144
|
+
currentValue = current(subject);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
currentValue = undefined;
|
|
148
|
+
}
|
|
149
|
+
if (typeof currentValue !== 'string') {
|
|
150
|
+
// Second chance for the other contract shape: a subject that carries an
|
|
151
|
+
// event log, or a raw log handed in directly.
|
|
152
|
+
const fallback = subject?.events ?? subject;
|
|
153
|
+
try {
|
|
154
|
+
currentValue = current(fallback);
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
if (typeof currentValue !== 'string')
|
|
158
|
+
return unavailablePermissionPresetSnapshot();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (typeof currentValue !== 'string' || (currentValue !== PERMISSION_PRESET_CUSTOM && !seen.has(currentValue))) {
|
|
162
|
+
return unavailablePermissionPresetSnapshot();
|
|
163
|
+
}
|
|
164
|
+
const currentOption = normalizePermissionPresetOption(optionOf(currentValue));
|
|
165
|
+
if (currentOption === undefined || currentOption.value !== currentValue)
|
|
166
|
+
return unavailablePermissionPresetSnapshot();
|
|
167
|
+
if (currentValue !== PERMISSION_PRESET_CUSTOM) {
|
|
168
|
+
const rosterOption = options.find(option => option.value === currentValue);
|
|
169
|
+
if (rosterOption === undefined
|
|
170
|
+
|| rosterOption.name !== currentOption.name
|
|
171
|
+
|| rosterOption.description !== currentOption.description) {
|
|
172
|
+
return unavailablePermissionPresetSnapshot();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return freezePermissionPresetSnapshot({
|
|
176
|
+
availability: 'runtime',
|
|
177
|
+
options,
|
|
178
|
+
current: {
|
|
179
|
+
...currentOption,
|
|
180
|
+
kind: currentValue === PERMISSION_PRESET_CUSTOM ? 'custom' : 'preset',
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return unavailablePermissionPresetSnapshot();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ChannelState } from '../channel/types.js';
|
|
2
|
+
export declare function createPreferences(getState: () => Pick<ChannelState, 'diffLayout' | 'thinkingFold' | 'toolBackground' | 'scrollGutter' | 'pageMargin' | 'foldTerminalCommand' | 'promptSessionLabel' | 'expandEditor' | 'smoothStreaming' | 'statusBar' | 'whale' | 'whaleIdle' | 'minimal' | 'emit'>): Pick<ChannelState, 'setDiffLayout' | 'setThinkingFold' | 'setToolBackground' | 'setScrollGutter' | 'setPageMargin' | 'setFoldTerminalCommand' | 'setPromptSessionLabel' | 'setExpandEditor' | 'setSmoothStreaming' | 'setStatusBar' | 'setWhale' | 'setWhaleIdle' | 'setMinimal'>;
|
|
3
|
+
//# sourceMappingURL=preferences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/preferences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,cAAc,GAAG,iBAAiB,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,eAAe,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,YAAY,CAAC,CAsGxjB"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { setMinimalMode } from '../../minimalMode.js';
|
|
2
|
+
import { normalizePageMargin, normalizeScrollGutter, normalizeStatusBar, normalizeToolBackground } from '../../tuiDisplayPrefs.js';
|
|
3
|
+
export function createPreferences(getState) {
|
|
4
|
+
return {
|
|
5
|
+
setDiffLayout(layout) {
|
|
6
|
+
const state = getState();
|
|
7
|
+
if (layout === state.diffLayout)
|
|
8
|
+
return;
|
|
9
|
+
state.diffLayout = layout;
|
|
10
|
+
state.emit();
|
|
11
|
+
},
|
|
12
|
+
setThinkingFold(mode) {
|
|
13
|
+
const state = getState();
|
|
14
|
+
if (mode === state.thinkingFold)
|
|
15
|
+
return;
|
|
16
|
+
state.thinkingFold = mode;
|
|
17
|
+
state.emit();
|
|
18
|
+
},
|
|
19
|
+
setToolBackground(background) {
|
|
20
|
+
const state = getState();
|
|
21
|
+
const normalized = normalizeToolBackground(background);
|
|
22
|
+
if (normalized === state.toolBackground)
|
|
23
|
+
return;
|
|
24
|
+
state.toolBackground = normalized;
|
|
25
|
+
state.emit();
|
|
26
|
+
},
|
|
27
|
+
setScrollGutter(mode) {
|
|
28
|
+
const state = getState();
|
|
29
|
+
const normalized = normalizeScrollGutter(mode);
|
|
30
|
+
if (normalized === state.scrollGutter)
|
|
31
|
+
return;
|
|
32
|
+
state.scrollGutter = normalized;
|
|
33
|
+
state.emit();
|
|
34
|
+
},
|
|
35
|
+
setPageMargin(setting) {
|
|
36
|
+
const state = getState();
|
|
37
|
+
const normalized = normalizePageMargin(setting);
|
|
38
|
+
if (normalized === state.pageMargin)
|
|
39
|
+
return;
|
|
40
|
+
state.pageMargin = normalized;
|
|
41
|
+
state.emit();
|
|
42
|
+
},
|
|
43
|
+
setFoldTerminalCommand(enabled) {
|
|
44
|
+
const state = getState();
|
|
45
|
+
if (enabled === state.foldTerminalCommand)
|
|
46
|
+
return;
|
|
47
|
+
state.foldTerminalCommand = enabled;
|
|
48
|
+
state.emit();
|
|
49
|
+
},
|
|
50
|
+
setPromptSessionLabel(enabled) {
|
|
51
|
+
const state = getState();
|
|
52
|
+
if (enabled === state.promptSessionLabel)
|
|
53
|
+
return;
|
|
54
|
+
state.promptSessionLabel = enabled;
|
|
55
|
+
state.emit();
|
|
56
|
+
},
|
|
57
|
+
setExpandEditor(enabled) {
|
|
58
|
+
const state = getState();
|
|
59
|
+
if (enabled === state.expandEditor)
|
|
60
|
+
return;
|
|
61
|
+
state.expandEditor = enabled;
|
|
62
|
+
state.emit();
|
|
63
|
+
},
|
|
64
|
+
setSmoothStreaming(enabled) {
|
|
65
|
+
const state = getState();
|
|
66
|
+
if (enabled === state.smoothStreaming)
|
|
67
|
+
return;
|
|
68
|
+
state.smoothStreaming = enabled;
|
|
69
|
+
state.emit();
|
|
70
|
+
},
|
|
71
|
+
setStatusBar(config) {
|
|
72
|
+
const state = getState();
|
|
73
|
+
const next = normalizeStatusBar({ ...state.statusBar, ...config });
|
|
74
|
+
const changed = Object.keys(next).some(key => next[key] !== state.statusBar[key]);
|
|
75
|
+
if (!changed)
|
|
76
|
+
return;
|
|
77
|
+
state.statusBar = next;
|
|
78
|
+
state.emit();
|
|
79
|
+
},
|
|
80
|
+
setWhale(visible) {
|
|
81
|
+
const state = getState();
|
|
82
|
+
if (visible === state.whale)
|
|
83
|
+
return;
|
|
84
|
+
state.whale = visible;
|
|
85
|
+
state.emit();
|
|
86
|
+
},
|
|
87
|
+
setWhaleIdle(enabled) {
|
|
88
|
+
const state = getState();
|
|
89
|
+
if (enabled === state.whaleIdle)
|
|
90
|
+
return;
|
|
91
|
+
state.whaleIdle = enabled;
|
|
92
|
+
state.emit();
|
|
93
|
+
},
|
|
94
|
+
setMinimal(enabled) {
|
|
95
|
+
const state = getState();
|
|
96
|
+
setMinimalMode(enabled);
|
|
97
|
+
if (enabled === state.minimal)
|
|
98
|
+
return;
|
|
99
|
+
state.minimal = enabled;
|
|
100
|
+
state.emit();
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TodoPanelItem } from './types.js';
|
|
2
|
+
export declare function isSubagentToolName(name: string): boolean;
|
|
3
|
+
/** Extract `job_id` from a job_output call's raw args (JSON), or undefined. */
|
|
4
|
+
export declare function parseJobOutputId(argsFull: string | undefined): string | undefined;
|
|
5
|
+
/** Extract the command that launched a background job from its tool args
|
|
6
|
+
* (`command` for the shell tools, `text` for terminal_send). The registry
|
|
7
|
+
* label is the friendly description; the command is the actual invocation. */
|
|
8
|
+
export declare function toolCommandOf(argsFull: string | undefined): string | undefined;
|
|
9
|
+
/** The ack a shell tool returns for `run_in_background: true`. */
|
|
10
|
+
export declare const BACKGROUND_START_ACK: RegExp;
|
|
11
|
+
/** Narrow an optional plugin event without importing its module augmentation. */
|
|
12
|
+
export declare function todoPanelItems(data: unknown): TodoPanelItem[] | undefined;
|
|
13
|
+
//# sourceMappingURL=projection-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection-helpers.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/projection-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAY/C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQjF;AAED;;+EAE+E;AAC/E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAa9E;AAED,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,QAAkC,CAAA;AAEnE,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,EAAE,GAAG,SAAS,CAWzE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** Names the subagent delegation tools ship under (preset `toolName` values
|
|
2
|
+
* plus the CLI default); each renders as a live subagent card, never a plain
|
|
3
|
+
* tool card. */
|
|
4
|
+
const SUBAGENT_TOOL_NAMES = new Set([
|
|
5
|
+
'task',
|
|
6
|
+
'subagent',
|
|
7
|
+
'subagent_fork',
|
|
8
|
+
'subagent_claude_code',
|
|
9
|
+
'subagent_codex',
|
|
10
|
+
'spawn_task',
|
|
11
|
+
]);
|
|
12
|
+
export function isSubagentToolName(name) {
|
|
13
|
+
return SUBAGENT_TOOL_NAMES.has(name.toLowerCase());
|
|
14
|
+
}
|
|
15
|
+
/** Extract `job_id` from a job_output call's raw args (JSON), or undefined. */
|
|
16
|
+
export function parseJobOutputId(argsFull) {
|
|
17
|
+
if (argsFull === undefined || argsFull === '')
|
|
18
|
+
return undefined;
|
|
19
|
+
try {
|
|
20
|
+
const args = JSON.parse(argsFull);
|
|
21
|
+
return typeof args.job_id === 'string' && args.job_id !== '' ? args.job_id : undefined;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** Extract the command that launched a background job from its tool args
|
|
28
|
+
* (`command` for the shell tools, `text` for terminal_send). The registry
|
|
29
|
+
* label is the friendly description; the command is the actual invocation. */
|
|
30
|
+
export function toolCommandOf(argsFull) {
|
|
31
|
+
if (argsFull === undefined || argsFull === '')
|
|
32
|
+
return undefined;
|
|
33
|
+
try {
|
|
34
|
+
const args = JSON.parse(argsFull);
|
|
35
|
+
const candidate = typeof args.command === 'string' && args.command !== ''
|
|
36
|
+
? args.command
|
|
37
|
+
: typeof args.text === 'string' && args.text !== ''
|
|
38
|
+
? args.text
|
|
39
|
+
: undefined;
|
|
40
|
+
return candidate;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** The ack a shell tool returns for `run_in_background: true`. */
|
|
47
|
+
export const BACKGROUND_START_ACK = /^started background job (\S+)/;
|
|
48
|
+
/** Narrow an optional plugin event without importing its module augmentation. */
|
|
49
|
+
export function todoPanelItems(data) {
|
|
50
|
+
if (typeof data !== 'object' || data === null)
|
|
51
|
+
return undefined;
|
|
52
|
+
const todos = data.todos;
|
|
53
|
+
if (!Array.isArray(todos))
|
|
54
|
+
return undefined;
|
|
55
|
+
const valid = todos.every(item => {
|
|
56
|
+
if (typeof item !== 'object' || item === null)
|
|
57
|
+
return false;
|
|
58
|
+
const candidate = item;
|
|
59
|
+
return typeof candidate.content === 'string' &&
|
|
60
|
+
(candidate.status === 'pending' || candidate.status === 'in_progress' || candidate.status === 'completed');
|
|
61
|
+
});
|
|
62
|
+
return valid ? todos : undefined;
|
|
63
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Agent, AssistantStreamFrame } from '@deepseek-ai/dsh-agent';
|
|
2
|
+
import type { SessionEvent } from '@deepseek-ai/dsh-session';
|
|
3
|
+
import type { ContentBlock } from '@deepseek-ai/dsh-llm';
|
|
4
|
+
import type { ChannelState, ToolCallView, ToolResultView, ToolsRegistryLike } from './types.js';
|
|
5
|
+
import type { InputConvergence } from './input-actions.js';
|
|
6
|
+
import type { BackgroundJobStore } from '../jobs.js';
|
|
7
|
+
import type { TuiRendererHost } from '../renderers.js';
|
|
8
|
+
type ProjectionState = Pick<ChannelState, 'rows' | 'thinkingFold' | 'activeToolCount' | 'spinnerMode' | 'goal' | 'contextSegments' | 'tokens' | 'lastUsage' | 'lastUserText' | 'responseChars' | 'tps' | 'cancelPending' | 'working' | 'turnStart' | 'tpsSamples' | 'contextWindow' | 'reasoningEffort' | 'sessionTitle' | 'todos' | 'agentPreset' | 'sessionColor' | 'status' | 'emit'>;
|
|
9
|
+
interface ProjectionDependencies {
|
|
10
|
+
agent(): Agent;
|
|
11
|
+
rowIds: {
|
|
12
|
+
value: number;
|
|
13
|
+
};
|
|
14
|
+
resetContextWarning(): void;
|
|
15
|
+
pendingTaskDescriptions: string[];
|
|
16
|
+
jobs: Pick<BackgroundJobStore, 'onOutputSeen' | 'onStarted'>;
|
|
17
|
+
inputConvergence: Pick<InputConvergence, 'cancelInFlight'>;
|
|
18
|
+
checkContextWarning(): void;
|
|
19
|
+
notify: ChannelState['notify'];
|
|
20
|
+
tools?: ToolsRegistryLike;
|
|
21
|
+
renderer?: TuiRendererHost;
|
|
22
|
+
/** DSH attachment service, resolved at call time (a late-mounted provider
|
|
23
|
+
* must still serve images for rows projected earlier). */
|
|
24
|
+
attachments(): unknown;
|
|
25
|
+
}
|
|
26
|
+
/** One authoritative reducer for both durable replay and live session events. */
|
|
27
|
+
export declare function createChannelProjection(state: ProjectionState, deps: ProjectionDependencies): {
|
|
28
|
+
reset: () => void;
|
|
29
|
+
replayEvents: (events: readonly SessionEvent[]) => void;
|
|
30
|
+
renderEvent: (event: SessionEvent) => void;
|
|
31
|
+
renderStreamFrame: (frame: AssistantStreamFrame) => void;
|
|
32
|
+
settleStreaming: () => void;
|
|
33
|
+
updateSpinnerMode: () => void;
|
|
34
|
+
presentCallView: (name: string, rawArgs: string) => ToolCallView | undefined;
|
|
35
|
+
presentResultView: (name: string, rawArgs: string, data: SessionEvent<"tool/result">["data"]) => ToolResultView | undefined;
|
|
36
|
+
textOf: (content: readonly ContentBlock[] | undefined) => string;
|
|
37
|
+
firstTextOf: (content: readonly ContentBlock[] | undefined) => string;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAwB,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACrH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAYtD,KAAK,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,iBAAiB,GAAG,aAAa,GAAG,MAAM,GAAG,iBAAiB,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,GAAG,eAAe,GAAG,KAAK,GAAG,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AACxX,UAAU,sBAAsB;IAC/B,KAAK,IAAI,KAAK,CAAA;IACd,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACzB,mBAAmB,IAAI,IAAI,CAAA;IAC3B,uBAAuB,EAAE,MAAM,EAAE,CAAA;IACjC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,WAAW,CAAC,CAAA;IAC5D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;IAC1D,mBAAmB,IAAI,IAAI,CAAA;IAC3B,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B;+DAC2D;IAC3D,WAAW,IAAI,OAAO,CAAA;CACtB;AACD,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,sBAAsB;iBA6+BxE,IAAI;2BAxpBQ,SAAS,YAAY,EAAE,KAAG,IAAI;yBAiGhC,YAAY,KAAG,IAAI;+BAxBb,oBAAoB,KAAG,IAAI;2BAtKjC,IAAI;6BAgBF,IAAI;4BA/IH,MAAM,WAAW,MAAM,KAAG,YAAY,GAAG,SAAS;8BAYhD,MAAM,WAAW,MAAM,QAAQ,YAAY,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAG,cAAc,GAAG,SAAS;sBAwBvG,SAAS,YAAY,EAAE,GAAG,SAAS,KAAG,MAAM;2BASvC,SAAS,YAAY,EAAE,GAAG,SAAS,KAAG,MAAM;EA21B3E"}
|