@askdkc/dsh-cli 0.11.3
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/LICENSE +21 -0
- package/README.md +321 -0
- package/bin/dsh-tui.js +1366 -0
- package/cordis.patch.yml +482 -0
- package/cordis.yml +250 -0
- package/dsh-ecosystem-spec/protocols/profile-definitions.d.ts +13 -0
- package/dsh-ecosystem-spec/protocols/profile-definitions.js +59 -0
- package/dsh-ecosystem-spec/protocols/tui-channel-http.d.ts +15 -0
- package/dsh-ecosystem-spec/protocols/tui-channel-http.js +32 -0
- package/dsh-ecosystem-spec/protocols/tui-channel.d.ts +59 -0
- package/dsh-ecosystem-spec/protocols/tui-channel.js +166 -0
- package/dsh-ecosystem-spec/protocols/tui-contributions.d.ts +42 -0
- package/dsh-ecosystem-spec/protocols/tui-contributions.js +143 -0
- package/dsh-ecosystem-spec/registry/README.md +14 -0
- package/dsh-ecosystem-spec/registry/contracts/decision-events-v1alpha1.json +13 -0
- package/dsh-ecosystem-spec/registry/contracts/scene-v1alpha1.json +13 -0
- package/dsh-ecosystem-spec/registry/contracts/settings-section-v1alpha1.json +13 -0
- package/dsh-ecosystem-spec/registry/contracts/tui-channel-v1alpha1.json +30 -0
- package/dsh-ecosystem-spec/registry/contracts/workspace-provider-v1alpha1.json +6 -0
- package/dsh-ecosystem-spec/registry/host-descriptor.tui.example.json +56 -0
- package/dsh-ecosystem-spec/registry/permissions-0.1.json +13 -0
- package/dsh-ecosystem-spec/registry/registry-0.15.json +149 -0
- package/dsh-ecosystem-spec/schemas/conformance-claim.schema.json +15 -0
- package/dsh-ecosystem-spec/schemas/effect-ledger-record.schema.json +16 -0
- package/dsh-ecosystem-spec/schemas/host-descriptor.schema.json +26 -0
- package/lib/types/activityPrefs.d.ts +63 -0
- package/lib/types/activityPrefs.d.ts.map +1 -0
- package/lib/types/activityPrefs.js +126 -0
- 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 +249 -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 +57 -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 +109 -0
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -0
- package/lib/types/adapter/channel/ui-policy.js +170 -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 +173 -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 +216 -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 +428 -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 +327 -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 +16 -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 +279 -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 +593 -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 +663 -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 +68 -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 +148 -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 +62 -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/adapter/standard/grants.d.ts +30 -0
- package/lib/types/adapter/standard/grants.d.ts.map +1 -0
- package/lib/types/adapter/standard/grants.js +219 -0
- 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 +11 -0
- package/lib/types/adapter/standard/negotiate.d.ts.map +1 -0
- package/lib/types/adapter/standard/negotiate.js +97 -0
- package/lib/types/adapter/standard/permission-scope.d.ts +27 -0
- package/lib/types/adapter/standard/permission-scope.d.ts.map +1 -0
- package/lib/types/adapter/standard/permission-scope.js +68 -0
- 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 +23 -0
- package/lib/types/adapter/standard/registry.d.ts.map +1 -0
- package/lib/types/adapter/standard/registry.js +240 -0
- package/lib/types/adapter/standard/schema-check.d.ts +17 -0
- package/lib/types/adapter/standard/schema-check.d.ts.map +1 -0
- package/lib/types/adapter/standard/schema-check.js +167 -0
- 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/adapter/standard/types.d.ts +108 -0
- package/lib/types/adapter/standard/types.d.ts.map +1 -0
- package/lib/types/adapter/standard/types.js +10 -0
- package/lib/types/adapter/standard/validate.d.ts +21 -0
- package/lib/types/adapter/standard/validate.d.ts.map +1 -0
- package/lib/types/adapter/standard/validate.js +139 -0
- 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 +198 -0
- package/lib/types/api.d.ts +7 -0
- package/lib/types/api.d.ts.map +1 -0
- package/lib/types/api.js +1 -0
- package/lib/types/bootstrap/state.d.ts +11 -0
- package/lib/types/bootstrap/state.d.ts.map +1 -0
- package/lib/types/bootstrap/state.js +10 -0
- package/lib/types/command-trees.d.ts +4 -0
- package/lib/types/command-trees.d.ts.map +1 -0
- package/lib/types/command-trees.js +4 -0
- package/lib/types/commands.d.ts +87 -0
- package/lib/types/commands.d.ts.map +1 -0
- package/lib/types/commands.js +218 -0
- package/lib/types/components/ActivityLine.d.ts +34 -0
- package/lib/types/components/ActivityLine.d.ts.map +1 -0
- package/lib/types/components/ActivityLine.js +39 -0
- package/lib/types/components/ActivityPicker.d.ts +16 -0
- package/lib/types/components/ActivityPicker.d.ts.map +1 -0
- package/lib/types/components/ActivityPicker.js +23 -0
- package/lib/types/components/AutoRecapRow.d.ts +23 -0
- package/lib/types/components/AutoRecapRow.d.ts.map +1 -0
- package/lib/types/components/AutoRecapRow.js +23 -0
- package/lib/types/components/BalanceReportRow.d.ts +24 -0
- package/lib/types/components/BalanceReportRow.d.ts.map +1 -0
- package/lib/types/components/BalanceReportRow.js +87 -0
- package/lib/types/components/BtwPanel.d.ts +16 -0
- package/lib/types/components/BtwPanel.d.ts.map +1 -0
- package/lib/types/components/BtwPanel.js +47 -0
- package/lib/types/components/Chat/JobCard.d.ts +23 -0
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -0
- package/lib/types/components/Chat/JobCard.js +93 -0
- package/lib/types/components/Chat/SubagentMessage.d.ts +20 -0
- package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -0
- package/lib/types/components/Chat/SubagentMessage.js +83 -0
- package/lib/types/components/ColorPicker.d.ts +17 -0
- package/lib/types/components/ColorPicker.d.ts.map +1 -0
- package/lib/types/components/ColorPicker.js +20 -0
- package/lib/types/components/CommandSuggestions.d.ts +34 -0
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -0
- package/lib/types/components/CommandSuggestions.js +61 -0
- package/lib/types/components/ContextBarView.d.ts +41 -0
- package/lib/types/components/ContextBarView.d.ts.map +1 -0
- package/lib/types/components/ContextBarView.js +50 -0
- package/lib/types/components/EffortChargeGlyph.d.ts +26 -0
- package/lib/types/components/EffortChargeGlyph.d.ts.map +1 -0
- package/lib/types/components/EffortChargeGlyph.js +70 -0
- package/lib/types/components/EffortInputBorder.d.ts +47 -0
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -0
- package/lib/types/components/EffortInputBorder.js +90 -0
- package/lib/types/components/EffortSlider.d.ts +18 -0
- package/lib/types/components/EffortSlider.d.ts.map +1 -0
- package/lib/types/components/EffortSlider.js +19 -0
- package/lib/types/components/EffortTierBadge.d.ts +26 -0
- package/lib/types/components/EffortTierBadge.d.ts.map +1 -0
- package/lib/types/components/EffortTierBadge.js +97 -0
- package/lib/types/components/ExtensionDialog.d.ts +40 -0
- package/lib/types/components/ExtensionDialog.d.ts.map +1 -0
- package/lib/types/components/ExtensionDialog.js +253 -0
- package/lib/types/components/FileActionsPanel.d.ts +22 -0
- package/lib/types/components/FileActionsPanel.d.ts.map +1 -0
- package/lib/types/components/FileActionsPanel.js +28 -0
- package/lib/types/components/FileSuggestions.d.ts +18 -0
- package/lib/types/components/FileSuggestions.d.ts.map +1 -0
- package/lib/types/components/FileSuggestions.js +78 -0
- package/lib/types/components/GoalTodoPanel.d.ts +38 -0
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -0
- package/lib/types/components/GoalTodoPanel.js +131 -0
- package/lib/types/components/HelpMenu.d.ts +29 -0
- package/lib/types/components/HelpMenu.d.ts.map +1 -0
- package/lib/types/components/HelpMenu.js +39 -0
- package/lib/types/components/HistorySearchDialog.d.ts +18 -0
- package/lib/types/components/HistorySearchDialog.d.ts.map +1 -0
- package/lib/types/components/HistorySearchDialog.js +47 -0
- package/lib/types/components/ImagePreviewOverlay.d.ts +51 -0
- package/lib/types/components/ImagePreviewOverlay.d.ts.map +1 -0
- package/lib/types/components/ImagePreviewOverlay.js +269 -0
- package/lib/types/components/JobsPanel.d.ts +17 -0
- package/lib/types/components/JobsPanel.d.ts.map +1 -0
- package/lib/types/components/JobsPanel.js +111 -0
- package/lib/types/components/LangPicker.d.ts +14 -0
- package/lib/types/components/LangPicker.d.ts.map +1 -0
- package/lib/types/components/LangPicker.js +17 -0
- package/lib/types/components/LoadedContextPanel.d.ts +20 -0
- package/lib/types/components/LoadedContextPanel.d.ts.map +1 -0
- package/lib/types/components/LoadedContextPanel.js +32 -0
- package/lib/types/components/LogoV2.d.ts +48 -0
- package/lib/types/components/LogoV2.d.ts.map +1 -0
- package/lib/types/components/LogoV2.js +239 -0
- package/lib/types/components/Markdown.d.ts +46 -0
- package/lib/types/components/Markdown.d.ts.map +1 -0
- package/lib/types/components/Markdown.js +178 -0
- package/lib/types/components/MarkdownTable.d.ts +13 -0
- package/lib/types/components/MarkdownTable.d.ts.map +1 -0
- package/lib/types/components/MarkdownTable.js +155 -0
- package/lib/types/components/MermaidDiagram.d.ts +13 -0
- package/lib/types/components/MermaidDiagram.d.ts.map +1 -0
- package/lib/types/components/MermaidDiagram.js +61 -0
- package/lib/types/components/MessageList.d.ts +144 -0
- package/lib/types/components/MessageList.d.ts.map +1 -0
- package/lib/types/components/MessageList.js +1170 -0
- package/lib/types/components/MigratePicker.d.ts +30 -0
- package/lib/types/components/MigratePicker.d.ts.map +1 -0
- package/lib/types/components/MigratePicker.js +38 -0
- package/lib/types/components/ModelPicker.d.ts +42 -0
- package/lib/types/components/ModelPicker.d.ts.map +1 -0
- package/lib/types/components/ModelPicker.js +51 -0
- package/lib/types/components/OverlayAbove.d.ts +48 -0
- package/lib/types/components/OverlayAbove.d.ts.map +1 -0
- package/lib/types/components/OverlayAbove.js +98 -0
- package/lib/types/components/PageMargin.d.ts +58 -0
- package/lib/types/components/PageMargin.d.ts.map +1 -0
- package/lib/types/components/PageMargin.js +38 -0
- package/lib/types/components/PermissionsPicker.d.ts +20 -0
- package/lib/types/components/PermissionsPicker.d.ts.map +1 -0
- package/lib/types/components/PermissionsPicker.js +33 -0
- package/lib/types/components/PlanPicker.d.ts +15 -0
- package/lib/types/components/PlanPicker.d.ts.map +1 -0
- package/lib/types/components/PlanPicker.js +18 -0
- package/lib/types/components/PluginSceneBoundary.d.ts +31 -0
- package/lib/types/components/PluginSceneBoundary.d.ts.map +1 -0
- package/lib/types/components/PluginSceneBoundary.js +29 -0
- package/lib/types/components/PluginStatusViewBoundary.d.ts +26 -0
- package/lib/types/components/PluginStatusViewBoundary.d.ts.map +1 -0
- package/lib/types/components/PluginStatusViewBoundary.js +22 -0
- package/lib/types/components/PresetPicker.d.ts +20 -0
- package/lib/types/components/PresetPicker.d.ts.map +1 -0
- package/lib/types/components/PresetPicker.js +24 -0
- package/lib/types/components/PromptEditor.d.ts +48 -0
- package/lib/types/components/PromptEditor.d.ts.map +1 -0
- package/lib/types/components/PromptEditor.js +75 -0
- package/lib/types/components/PromptInput.d.ts +163 -0
- package/lib/types/components/PromptInput.d.ts.map +1 -0
- package/lib/types/components/PromptInput.js +3503 -0
- package/lib/types/components/RecapPanel.d.ts +25 -0
- package/lib/types/components/RecapPanel.d.ts.map +1 -0
- package/lib/types/components/RecapPanel.js +55 -0
- package/lib/types/components/RewindPicker.d.ts +37 -0
- package/lib/types/components/RewindPicker.d.ts.map +1 -0
- package/lib/types/components/RewindPicker.js +66 -0
- package/lib/types/components/ScrollbarGutter.d.ts +43 -0
- package/lib/types/components/ScrollbarGutter.d.ts.map +1 -0
- package/lib/types/components/ScrollbarGutter.js +197 -0
- package/lib/types/components/SearchBox.d.ts +24 -0
- package/lib/types/components/SearchBox.d.ts.map +1 -0
- package/lib/types/components/SearchBox.js +132 -0
- package/lib/types/components/Select.d.ts +29 -0
- package/lib/types/components/Select.d.ts.map +1 -0
- package/lib/types/components/Select.js +21 -0
- package/lib/types/components/SkillsPicker.d.ts +21 -0
- package/lib/types/components/SkillsPicker.d.ts.map +1 -0
- package/lib/types/components/SkillsPicker.js +52 -0
- package/lib/types/components/Spinner/GlimmerMessage.d.ts +16 -0
- package/lib/types/components/Spinner/GlimmerMessage.d.ts.map +1 -0
- package/lib/types/components/Spinner/GlimmerMessage.js +57 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts +33 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts.map +1 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.js +168 -0
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts +16 -0
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts.map +1 -0
- package/lib/types/components/Spinner/SpinnerGlyph.js +36 -0
- package/lib/types/components/Spinner/spinnerMode.d.ts +2 -0
- package/lib/types/components/Spinner/spinnerMode.d.ts.map +1 -0
- package/lib/types/components/Spinner/spinnerMode.js +1 -0
- package/lib/types/components/Spinner/spinnerUtils.d.ts +36 -0
- package/lib/types/components/Spinner/spinnerUtils.d.ts.map +1 -0
- package/lib/types/components/Spinner/spinnerUtils.js +94 -0
- package/lib/types/components/Spinner/useStalledAnimation.d.ts +16 -0
- package/lib/types/components/Spinner/useStalledAnimation.d.ts.map +1 -0
- package/lib/types/components/Spinner/useStalledAnimation.js +52 -0
- package/lib/types/components/SplitDiffView.d.ts +25 -0
- package/lib/types/components/SplitDiffView.d.ts.map +1 -0
- package/lib/types/components/SplitDiffView.js +279 -0
- package/lib/types/components/StreamingMarkdown.d.ts +6 -0
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -0
- package/lib/types/components/StreamingMarkdown.js +279 -0
- package/lib/types/components/SubagentCard.d.ts +10 -0
- package/lib/types/components/SubagentCard.d.ts.map +1 -0
- package/lib/types/components/SubagentCard.js +39 -0
- package/lib/types/components/SubagentDashboard.d.ts +17 -0
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -0
- package/lib/types/components/SubagentDashboard.js +58 -0
- package/lib/types/components/SubagentDetailScene.d.ts +16 -0
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -0
- package/lib/types/components/SubagentDetailScene.js +147 -0
- package/lib/types/components/SuggestionCard.d.ts +65 -0
- package/lib/types/components/SuggestionCard.d.ts.map +1 -0
- package/lib/types/components/SuggestionCard.js +77 -0
- package/lib/types/components/SyntaxText.d.ts +15 -0
- package/lib/types/components/SyntaxText.d.ts.map +1 -0
- package/lib/types/components/SyntaxText.js +34 -0
- package/lib/types/components/ThemePicker.d.ts +27 -0
- package/lib/types/components/ThemePicker.d.ts.map +1 -0
- package/lib/types/components/ThemePicker.js +55 -0
- package/lib/types/components/ThinkingToggle.d.ts +13 -0
- package/lib/types/components/ThinkingToggle.d.ts.map +1 -0
- package/lib/types/components/ThinkingToggle.js +25 -0
- package/lib/types/components/TimelineRail.d.ts +53 -0
- package/lib/types/components/TimelineRail.d.ts.map +1 -0
- package/lib/types/components/TimelineRail.js +197 -0
- package/lib/types/components/TipsPanel.d.ts +14 -0
- package/lib/types/components/TipsPanel.d.ts.map +1 -0
- package/lib/types/components/TipsPanel.js +37 -0
- package/lib/types/components/ToolUseLoader.d.ts +18 -0
- package/lib/types/components/ToolUseLoader.d.ts.map +1 -0
- package/lib/types/components/ToolUseLoader.js +51 -0
- package/lib/types/components/Tooltip.d.ts +67 -0
- package/lib/types/components/Tooltip.d.ts.map +1 -0
- package/lib/types/components/Tooltip.js +266 -0
- package/lib/types/components/TurnInterruptedRow.d.ts +6 -0
- package/lib/types/components/TurnInterruptedRow.d.ts.map +1 -0
- package/lib/types/components/TurnInterruptedRow.js +9 -0
- package/lib/types/components/Whale.d.ts +42 -0
- package/lib/types/components/Whale.d.ts.map +1 -0
- package/lib/types/components/Whale.js +108 -0
- package/lib/types/components/WorkingSpinner.d.ts +26 -0
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -0
- package/lib/types/components/WorkingSpinner.js +67 -0
- package/lib/types/components/WorkspaceFlowPicker.d.ts +20 -0
- package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -0
- package/lib/types/components/WorkspaceFlowPicker.js +21 -0
- package/lib/types/components/WorkspaceMenuPicker.d.ts +19 -0
- package/lib/types/components/WorkspaceMenuPicker.d.ts.map +1 -0
- package/lib/types/components/WorkspaceMenuPicker.js +19 -0
- package/lib/types/components/WorkspacePicker.d.ts +12 -0
- package/lib/types/components/WorkspacePicker.d.ts.map +1 -0
- package/lib/types/components/WorkspacePicker.js +13 -0
- package/lib/types/components/activityFrames.d.ts +23 -0
- package/lib/types/components/activityFrames.d.ts.map +1 -0
- package/lib/types/components/activityFrames.js +31 -0
- package/lib/types/components/approvals/ApprovalPanel.d.ts +24 -0
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -0
- package/lib/types/components/approvals/ApprovalPanel.js +53 -0
- package/lib/types/components/bigfont.d.ts +28 -0
- package/lib/types/components/bigfont.d.ts.map +1 -0
- package/lib/types/components/bigfont.js +91 -0
- package/lib/types/components/design-system/Byline.d.ts +14 -0
- package/lib/types/components/design-system/Byline.d.ts.map +1 -0
- package/lib/types/components/design-system/Byline.js +17 -0
- package/lib/types/components/design-system/Divider.d.ts +61 -0
- package/lib/types/components/design-system/Divider.d.ts.map +1 -0
- package/lib/types/components/design-system/Divider.js +115 -0
- package/lib/types/components/design-system/HintLine.d.ts +11 -0
- package/lib/types/components/design-system/HintLine.d.ts.map +1 -0
- package/lib/types/components/design-system/HintLine.js +14 -0
- package/lib/types/components/design-system/ListItem.d.ts +42 -0
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -0
- package/lib/types/components/design-system/ListItem.js +84 -0
- package/lib/types/components/design-system/LoadingState.d.ts +19 -0
- package/lib/types/components/design-system/LoadingState.d.ts.map +1 -0
- package/lib/types/components/design-system/LoadingState.js +22 -0
- package/lib/types/components/design-system/Pane.d.ts +17 -0
- package/lib/types/components/design-system/Pane.d.ts.map +1 -0
- package/lib/types/components/design-system/Pane.js +15 -0
- package/lib/types/components/design-system/ProgressBar.d.ts +21 -0
- package/lib/types/components/design-system/ProgressBar.d.ts.map +1 -0
- package/lib/types/components/design-system/ProgressBar.js +26 -0
- package/lib/types/components/design-system/StatusIcon.d.ts +15 -0
- package/lib/types/components/design-system/StatusIcon.d.ts.map +1 -0
- package/lib/types/components/design-system/StatusIcon.js +20 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts +21 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemeProvider.js +256 -0
- package/lib/types/components/design-system/ThemedBox.d.ts +60 -0
- package/lib/types/components/design-system/ThemedBox.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemedBox.js +29 -0
- package/lib/types/components/design-system/ThemedText.d.ts +61 -0
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemedText.js +42 -0
- package/lib/types/components/listWindow.d.ts +26 -0
- package/lib/types/components/listWindow.d.ts.map +1 -0
- package/lib/types/components/listWindow.js +47 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts +20 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantTextMessage.js +18 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +40 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantThinkingMessage.js +84 -0
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +72 -0
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantToolUseMessage.js +517 -0
- package/lib/types/components/messages/MessageMetadata.d.ts +14 -0
- package/lib/types/components/messages/MessageMetadata.d.ts.map +1 -0
- package/lib/types/components/messages/MessageMetadata.js +19 -0
- package/lib/types/components/messages/TranscriptImages.d.ts +21 -0
- package/lib/types/components/messages/TranscriptImages.d.ts.map +1 -0
- package/lib/types/components/messages/TranscriptImages.js +83 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts +18 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -0
- package/lib/types/components/messages/UserPromptMessage.js +28 -0
- package/lib/types/components/messages/imageInspection.d.ts +33 -0
- package/lib/types/components/messages/imageInspection.d.ts.map +1 -0
- package/lib/types/components/messages/imageInspection.js +107 -0
- package/lib/types/components/messages/originalImage.d.ts +5 -0
- package/lib/types/components/messages/originalImage.d.ts.map +1 -0
- package/lib/types/components/messages/originalImage.js +56 -0
- package/lib/types/components/messages/transcriptImageDecode.d.ts +9 -0
- package/lib/types/components/messages/transcriptImageDecode.d.ts.map +1 -0
- package/lib/types/components/messages/transcriptImageDecode.js +144 -0
- package/lib/types/components/messages/useImageInspection.d.ts +10 -0
- package/lib/types/components/messages/useImageInspection.d.ts.map +1 -0
- package/lib/types/components/messages/useImageInspection.js +91 -0
- 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/components/promptDraftCache.d.ts +102 -0
- package/lib/types/components/promptDraftCache.d.ts.map +1 -0
- package/lib/types/components/promptDraftCache.js +76 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +94 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -0
- package/lib/types/components/questions/AskUserQuestionPanel.js +527 -0
- package/lib/types/components/questions/PlanReviewPanel.d.ts +55 -0
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -0
- package/lib/types/components/questions/PlanReviewPanel.js +351 -0
- package/lib/types/components/questions/QuestionMinimizedBar.d.ts +12 -0
- package/lib/types/components/questions/QuestionMinimizedBar.d.ts.map +1 -0
- package/lib/types/components/questions/QuestionMinimizedBar.js +43 -0
- package/lib/types/components/sessions/SessionListRow.d.ts +58 -0
- package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -0
- package/lib/types/components/sessions/SessionListRow.js +108 -0
- package/lib/types/components/sessions/SessionPreview.d.ts +25 -0
- package/lib/types/components/sessions/SessionPreview.d.ts.map +1 -0
- package/lib/types/components/sessions/SessionPreview.js +62 -0
- package/lib/types/components/sessions/WorkspaceListRow.d.ts +17 -0
- package/lib/types/components/sessions/WorkspaceListRow.d.ts.map +1 -0
- package/lib/types/components/sessions/WorkspaceListRow.js +27 -0
- package/lib/types/components/shimmer.d.ts +35 -0
- package/lib/types/components/shimmer.d.ts.map +1 -0
- package/lib/types/components/shimmer.js +43 -0
- package/lib/types/components/smoothReveal.d.ts +57 -0
- package/lib/types/components/smoothReveal.d.ts.map +1 -0
- package/lib/types/components/smoothReveal.js +305 -0
- package/lib/types/components/trajectory/HotspotView.d.ts +20 -0
- package/lib/types/components/trajectory/HotspotView.d.ts.map +1 -0
- package/lib/types/components/trajectory/HotspotView.js +89 -0
- package/lib/types/components/trajectory/Inspector.d.ts +31 -0
- package/lib/types/components/trajectory/Inspector.d.ts.map +1 -0
- package/lib/types/components/trajectory/Inspector.js +67 -0
- package/lib/types/components/trajectory/Ledger.d.ts +28 -0
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -0
- package/lib/types/components/trajectory/Ledger.js +130 -0
- package/lib/types/components/trajectory/MiniWake.d.ts +24 -0
- package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -0
- package/lib/types/components/trajectory/MiniWake.js +99 -0
- package/lib/types/components/trajectory/WaveBand.d.ts +42 -0
- package/lib/types/components/trajectory/WaveBand.d.ts.map +1 -0
- package/lib/types/components/trajectory/WaveBand.js +150 -0
- package/lib/types/components/whaleFrames.d.ts +81 -0
- package/lib/types/components/whaleFrames.d.ts.map +1 -0
- package/lib/types/components/whaleFrames.js +768 -0
- package/lib/types/components/whaleIdle.d.ts +66 -0
- package/lib/types/components/whaleIdle.d.ts.map +1 -0
- package/lib/types/components/whaleIdle.js +174 -0
- package/lib/types/components/whaleLayers.d.ts +28 -0
- package/lib/types/components/whaleLayers.d.ts.map +1 -0
- package/lib/types/components/whaleLayers.js +90 -0
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +49 -0
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -0
- package/lib/types/components/workspaces/HomeWorkspaceRow.js +50 -0
- package/lib/types/customTheme.d.ts +108 -0
- package/lib/types/customTheme.d.ts.map +1 -0
- package/lib/types/customTheme.js +281 -0
- package/lib/types/deepseekBalance.d.ts +19 -0
- package/lib/types/deepseekBalance.d.ts.map +1 -0
- package/lib/types/deepseekBalance.js +72 -0
- package/lib/types/deepseekPricing.d.ts +83 -0
- package/lib/types/deepseekPricing.d.ts.map +1 -0
- package/lib/types/deepseekPricing.js +140 -0
- package/lib/types/dsh-adapter/activity-store.d.ts +221 -0
- package/lib/types/dsh-adapter/activity-store.d.ts.map +1 -0
- package/lib/types/dsh-adapter/activity-store.js +359 -0
- package/lib/types/dsh-adapter/agent-view.d.ts +66 -0
- package/lib/types/dsh-adapter/agent-view.d.ts.map +1 -0
- package/lib/types/dsh-adapter/agent-view.js +153 -0
- package/lib/types/dsh-adapter/approvals.d.ts +225 -0
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -0
- package/lib/types/dsh-adapter/approvals.js +465 -0
- package/lib/types/dsh-adapter/bundled-presets.d.ts +10 -0
- package/lib/types/dsh-adapter/bundled-presets.d.ts.map +1 -0
- package/lib/types/dsh-adapter/bundled-presets.js +80 -0
- 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 +86 -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 +312 -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 +110 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +67 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/binding-events.js +170 -0
- package/lib/types/dsh-adapter/channel/binding.d.ts +58 -0
- package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/binding.js +287 -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 +18 -0
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/compaction.js +114 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +62 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/composer-images.js +316 -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 +34 -0
- package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/context-bookkeeping.js +31 -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/ide-selection.d.ts +58 -0
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/ide-selection.js +226 -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 +42 -0
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/input-delivery.js +313 -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 +54 -0
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/local-actions.js +109 -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 +49 -0
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-actions.js +351 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +31 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-switch.js +116 -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 +44 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/projection.js +1031 -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 +163 -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 +36 -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 +109 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +35 -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 +64 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +91 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-metadata.js +220 -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 +43 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +65 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-resume.js +438 -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 +146 -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 +154 -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 +257 -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 +51 -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 +67 -0
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/subagent-projection.js +307 -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 +306 -0
- package/lib/types/dsh-adapter/channel/types.d.ts +167 -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 +23 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.js +96 -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 +23 -0
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel.js +999 -0
- package/lib/types/dsh-adapter/childStderr.d.ts +63 -0
- package/lib/types/dsh-adapter/childStderr.d.ts.map +1 -0
- package/lib/types/dsh-adapter/childStderr.js +180 -0
- package/lib/types/dsh-adapter/command-attribution.d.ts +51 -0
- package/lib/types/dsh-adapter/command-attribution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/command-attribution.js +93 -0
- package/lib/types/dsh-adapter/command-errors.d.ts +42 -0
- package/lib/types/dsh-adapter/command-errors.d.ts.map +1 -0
- package/lib/types/dsh-adapter/command-errors.js +63 -0
- package/lib/types/dsh-adapter/command-trees.d.ts +34 -0
- package/lib/types/dsh-adapter/command-trees.d.ts.map +1 -0
- package/lib/types/dsh-adapter/command-trees.js +111 -0
- package/lib/types/dsh-adapter/compat/index.d.ts +29 -0
- package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/index.js +28 -0
- package/lib/types/dsh-adapter/compat/liveSession.d.ts +79 -0
- package/lib/types/dsh-adapter/compat/liveSession.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/liveSession.js +223 -0
- package/lib/types/dsh-adapter/compat/messages.d.ts +15 -0
- package/lib/types/dsh-adapter/compat/messages.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/messages.js +15 -0
- 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 +309 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/sessionLog.js +1177 -0
- package/lib/types/dsh-adapter/compat/settings.d.ts +35 -0
- package/lib/types/dsh-adapter/compat/settings.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/settings.js +57 -0
- package/lib/types/dsh-adapter/compat/shell.d.ts +25 -0
- package/lib/types/dsh-adapter/compat/shell.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/shell.js +11 -0
- package/lib/types/dsh-adapter/component-identity.d.ts +33 -0
- package/lib/types/dsh-adapter/component-identity.d.ts.map +1 -0
- package/lib/types/dsh-adapter/component-identity.js +108 -0
- package/lib/types/dsh-adapter/contract.d.ts +91 -0
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -0
- package/lib/types/dsh-adapter/contract.js +276 -0
- package/lib/types/dsh-adapter/credentialRefGuard.d.ts +40 -0
- package/lib/types/dsh-adapter/credentialRefGuard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/credentialRefGuard.js +43 -0
- package/lib/types/dsh-adapter/decision-guard.d.ts +128 -0
- package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/decision-guard.js +460 -0
- package/lib/types/dsh-adapter/dialogs.d.ts +145 -0
- package/lib/types/dsh-adapter/dialogs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/dialogs.js +329 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts +96 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -0
- package/lib/types/dsh-adapter/effect-ledger.js +290 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +186 -0
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -0
- package/lib/types/dsh-adapter/extension-events.js +187 -0
- package/lib/types/dsh-adapter/extensions.d.ts +36 -0
- package/lib/types/dsh-adapter/extensions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/extensions.js +51 -0
- package/lib/types/dsh-adapter/host-access.d.ts +37 -0
- package/lib/types/dsh-adapter/host-access.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-access.js +652 -0
- 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/ide-channel.d.ts +224 -0
- package/lib/types/dsh-adapter/ide-channel.d.ts.map +1 -0
- package/lib/types/dsh-adapter/ide-channel.js +556 -0
- package/lib/types/dsh-adapter/index.d.ts +151 -0
- package/lib/types/dsh-adapter/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/index.js +119 -0
- package/lib/types/dsh-adapter/inject-channel.d.ts +108 -0
- package/lib/types/dsh-adapter/inject-channel.d.ts.map +1 -0
- package/lib/types/dsh-adapter/inject-channel.js +247 -0
- package/lib/types/dsh-adapter/invariant.d.ts +20 -0
- package/lib/types/dsh-adapter/invariant.d.ts.map +1 -0
- package/lib/types/dsh-adapter/invariant.js +26 -0
- package/lib/types/dsh-adapter/jobs.d.ts +101 -0
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/jobs.js +177 -0
- package/lib/types/dsh-adapter/message-observer.d.ts +186 -0
- package/lib/types/dsh-adapter/message-observer.d.ts.map +1 -0
- package/lib/types/dsh-adapter/message-observer.js +682 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.js +191 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.js +133 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.js +175 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.js +132 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts +6 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.js +38 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.js +107 -0
- package/lib/types/dsh-adapter/migrate/bin-path.d.ts +6 -0
- package/lib/types/dsh-adapter/migrate/bin-path.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/bin-path.js +30 -0
- package/lib/types/dsh-adapter/migrate/cli.d.ts +9 -0
- package/lib/types/dsh-adapter/migrate/cli.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/cli.js +105 -0
- package/lib/types/dsh-adapter/migrate/index.d.ts +29 -0
- package/lib/types/dsh-adapter/migrate/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/index.js +108 -0
- package/lib/types/dsh-adapter/migrate/picker.d.ts +64 -0
- package/lib/types/dsh-adapter/migrate/picker.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/picker.js +86 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.d.ts +40 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.js +100 -0
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts +19 -0
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/sessionize.js +101 -0
- package/lib/types/dsh-adapter/migrate/types.d.ts +52 -0
- package/lib/types/dsh-adapter/migrate/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/types.js +11 -0
- package/lib/types/dsh-adapter/migrate/uuid.d.ts +7 -0
- package/lib/types/dsh-adapter/migrate/uuid.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/uuid.js +25 -0
- package/lib/types/dsh-adapter/packaged-presets.d.ts +22 -0
- package/lib/types/dsh-adapter/packaged-presets.d.ts.map +1 -0
- package/lib/types/dsh-adapter/packaged-presets.js +94 -0
- package/lib/types/dsh-adapter/plugin-host.d.ts +205 -0
- package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-host.js +762 -0
- package/lib/types/dsh-adapter/plugin-storage.d.ts +118 -0
- package/lib/types/dsh-adapter/plugin-storage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-storage.js +536 -0
- package/lib/types/dsh-adapter/plugin.d.ts +70 -0
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin.js +2140 -0
- package/lib/types/dsh-adapter/plugins-info.d.ts +43 -0
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugins-info.js +293 -0
- package/lib/types/dsh-adapter/preset-resolution.d.ts +57 -0
- package/lib/types/dsh-adapter/preset-resolution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/preset-resolution.js +52 -0
- package/lib/types/dsh-adapter/presets.d.ts +110 -0
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -0
- package/lib/types/dsh-adapter/presets.js +161 -0
- package/lib/types/dsh-adapter/promptDebug.d.ts +4 -0
- package/lib/types/dsh-adapter/promptDebug.d.ts.map +1 -0
- package/lib/types/dsh-adapter/promptDebug.js +163 -0
- package/lib/types/dsh-adapter/providerGuard.d.ts +75 -0
- package/lib/types/dsh-adapter/providerGuard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/providerGuard.js +104 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +42 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/providerWizard.js +921 -0
- package/lib/types/dsh-adapter/questions-answerer.d.ts +51 -0
- package/lib/types/dsh-adapter/questions-answerer.d.ts.map +1 -0
- package/lib/types/dsh-adapter/questions-answerer.js +64 -0
- package/lib/types/dsh-adapter/questions.d.ts +130 -0
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/questions.js +282 -0
- package/lib/types/dsh-adapter/recap.d.ts +41 -0
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -0
- package/lib/types/dsh-adapter/recap.js +111 -0
- package/lib/types/dsh-adapter/renderers.d.ts +58 -0
- package/lib/types/dsh-adapter/renderers.d.ts.map +1 -0
- package/lib/types/dsh-adapter/renderers.js +198 -0
- package/lib/types/dsh-adapter/sanitize.d.ts +45 -0
- package/lib/types/dsh-adapter/sanitize.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sanitize.js +84 -0
- package/lib/types/dsh-adapter/scenes.d.ts +87 -0
- package/lib/types/dsh-adapter/scenes.d.ts.map +1 -0
- package/lib/types/dsh-adapter/scenes.js +223 -0
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +53 -0
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-mount-heartbeat.js +100 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts +232 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessionTree.js +984 -0
- package/lib/types/dsh-adapter/sessions/digest.d.ts +54 -0
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/digest.js +478 -0
- package/lib/types/dsh-adapter/sessions/frames.d.ts +103 -0
- package/lib/types/dsh-adapter/sessions/frames.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/frames.js +263 -0
- package/lib/types/dsh-adapter/sessions/header.d.ts +56 -0
- package/lib/types/dsh-adapter/sessions/header.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/header.js +85 -0
- package/lib/types/dsh-adapter/sessions/index.d.ts +17 -0
- package/lib/types/dsh-adapter/sessions/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/index.js +15 -0
- package/lib/types/dsh-adapter/sessions/list.d.ts +64 -0
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/list.js +331 -0
- package/lib/types/dsh-adapter/sessions/recovery.d.ts +17 -0
- package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/recovery.js +109 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts +60 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/store.js +221 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts +21 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/types.js +1 -0
- package/lib/types/dsh-adapter/settings-sections.d.ts +48 -0
- package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -0
- package/lib/types/dsh-adapter/settings-sections.js +253 -0
- package/lib/types/dsh-adapter/settingsEditor.d.ts +100 -0
- package/lib/types/dsh-adapter/settingsEditor.d.ts.map +1 -0
- package/lib/types/dsh-adapter/settingsEditor.js +238 -0
- package/lib/types/dsh-adapter/sharp.d.ts +10 -0
- package/lib/types/dsh-adapter/sharp.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sharp.js +59 -0
- package/lib/types/dsh-adapter/shortcuts.d.ts +82 -0
- package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -0
- package/lib/types/dsh-adapter/shortcuts.js +252 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts +36 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sideQuestion.js +59 -0
- package/lib/types/dsh-adapter/status.d.ts +148 -0
- package/lib/types/dsh-adapter/status.d.ts.map +1 -0
- package/lib/types/dsh-adapter/status.js +435 -0
- package/lib/types/dsh-adapter/subagents.d.ts +64 -0
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -0
- package/lib/types/dsh-adapter/subagents.js +366 -0
- package/lib/types/dsh-adapter/themes.d.ts +52 -0
- package/lib/types/dsh-adapter/themes.d.ts.map +1 -0
- package/lib/types/dsh-adapter/themes.js +307 -0
- package/lib/types/dsh-adapter/toast.d.ts +80 -0
- package/lib/types/dsh-adapter/toast.d.ts.map +1 -0
- package/lib/types/dsh-adapter/toast.js +171 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts +47 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.js +208 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +196 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/guards.js +273 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts +16 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/index.js +15 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +40 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/inspect.js +160 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +146 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/projection.js +710 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts +232 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/types.js +70 -0
- package/lib/types/dsh-adapter/trajectory/wave.d.ts +45 -0
- package/lib/types/dsh-adapter/trajectory/wave.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/wave.js +210 -0
- package/lib/types/dsh-adapter/transcript-images.d.ts +17 -0
- package/lib/types/dsh-adapter/transcript-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/transcript-images.js +96 -0
- package/lib/types/dsh-adapter/types.d.ts +23 -0
- package/lib/types/dsh-adapter/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/types.js +1 -0
- package/lib/types/dsh-adapter/workspace.d.ts +22 -0
- package/lib/types/dsh-adapter/workspace.d.ts.map +1 -0
- package/lib/types/dsh-adapter/workspace.js +16 -0
- package/lib/types/dsh-adapter/workspaces.d.ts +125 -0
- package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -0
- package/lib/types/dsh-adapter/workspaces.js +543 -0
- package/lib/types/effortPrefs.d.ts +48 -0
- package/lib/types/effortPrefs.d.ts.map +1 -0
- package/lib/types/effortPrefs.js +95 -0
- package/lib/types/extensions.d.ts +18 -0
- package/lib/types/extensions.d.ts.map +1 -0
- package/lib/types/extensions.js +27 -0
- package/lib/types/force-production-react.d.ts +1 -0
- package/lib/types/force-production-react.d.ts.map +1 -0
- package/lib/types/force-production-react.js +12 -0
- package/lib/types/herdr.d.ts +28 -0
- package/lib/types/herdr.d.ts.map +1 -0
- package/lib/types/herdr.js +133 -0
- package/lib/types/history.d.ts +39 -0
- package/lib/types/history.d.ts.map +1 -0
- package/lib/types/history.js +177 -0
- package/lib/types/homePrefs.d.ts +15 -0
- package/lib/types/homePrefs.d.ts.map +1 -0
- package/lib/types/homePrefs.js +53 -0
- package/lib/types/hooks/useBlink.d.ts +10 -0
- package/lib/types/hooks/useBlink.d.ts.map +1 -0
- package/lib/types/hooks/useBlink.js +19 -0
- package/lib/types/hooks/useExternalVersion.d.ts +32 -0
- package/lib/types/hooks/useExternalVersion.d.ts.map +1 -0
- package/lib/types/hooks/useExternalVersion.js +53 -0
- package/lib/types/hooks/useRevealVersion.d.ts +21 -0
- package/lib/types/hooks/useRevealVersion.d.ts.map +1 -0
- package/lib/types/hooks/useRevealVersion.js +33 -0
- package/lib/types/hooks/useRuntimeThemeSnapshot.d.ts +10 -0
- package/lib/types/hooks/useRuntimeThemeSnapshot.d.ts.map +1 -0
- package/lib/types/hooks/useRuntimeThemeSnapshot.js +32 -0
- package/lib/types/i18n.d.ts +4433 -0
- package/lib/types/i18n.d.ts.map +1 -0
- package/lib/types/i18n.js +1493 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +4 -0
- package/lib/types/ink/Ansi.d.ts +9 -0
- package/lib/types/ink/Ansi.d.ts.map +1 -0
- package/lib/types/ink/Ansi.js +45 -0
- package/lib/types/ink/bidi.d.ts +18 -0
- package/lib/types/ink/bidi.d.ts.map +1 -0
- package/lib/types/ink/bidi.js +119 -0
- package/lib/types/ink/clearTerminal.d.ts +22 -0
- package/lib/types/ink/clearTerminal.d.ts.map +1 -0
- package/lib/types/ink/clearTerminal.js +72 -0
- package/lib/types/ink/colorize.d.ts +43 -0
- package/lib/types/ink/colorize.d.ts.map +1 -0
- package/lib/types/ink/colorize.js +233 -0
- package/lib/types/ink/components/AlternateScreen.d.ts +8 -0
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -0
- package/lib/types/ink/components/AlternateScreen.js +29 -0
- package/lib/types/ink/components/App.d.ts +149 -0
- package/lib/types/ink/components/App.d.ts.map +1 -0
- package/lib/types/ink/components/App.js +1027 -0
- package/lib/types/ink/components/AppContext.d.ts +17 -0
- package/lib/types/ink/components/AppContext.d.ts.map +1 -0
- package/lib/types/ink/components/AppContext.js +12 -0
- package/lib/types/ink/components/Box.d.ts +85 -0
- package/lib/types/ink/components/Box.d.ts.map +1 -0
- package/lib/types/ink/components/Box.js +22 -0
- package/lib/types/ink/components/Button.d.ts +37 -0
- package/lib/types/ink/components/Button.d.ts.map +1 -0
- package/lib/types/ink/components/Button.js +23 -0
- package/lib/types/ink/components/ClockContext.d.ts +17 -0
- package/lib/types/ink/components/ClockContext.d.ts.map +1 -0
- package/lib/types/ink/components/ClockContext.js +99 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts +30 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -0
- package/lib/types/ink/components/CursorDeclarationContext.js +6 -0
- package/lib/types/ink/components/ErrorOverview.d.ts +7 -0
- package/lib/types/ink/components/ErrorOverview.d.ts.map +1 -0
- package/lib/types/ink/components/ErrorOverview.js +49 -0
- package/lib/types/ink/components/Image.d.ts +28 -0
- package/lib/types/ink/components/Image.d.ts.map +1 -0
- package/lib/types/ink/components/Image.js +44 -0
- package/lib/types/ink/components/Link.d.ts +8 -0
- package/lib/types/ink/components/Link.d.ts.map +1 -0
- package/lib/types/ink/components/Link.js +7 -0
- package/lib/types/ink/components/Newline.d.ts +7 -0
- package/lib/types/ink/components/Newline.d.ts.map +1 -0
- package/lib/types/ink/components/Newline.js +5 -0
- package/lib/types/ink/components/NoSelect.d.ts +9 -0
- package/lib/types/ink/components/NoSelect.d.ts.map +1 -0
- package/lib/types/ink/components/NoSelect.js +6 -0
- package/lib/types/ink/components/RawAnsi.d.ts +9 -0
- package/lib/types/ink/components/RawAnsi.d.ts.map +1 -0
- package/lib/types/ink/components/RawAnsi.js +7 -0
- package/lib/types/ink/components/ScrollBox.d.ts +78 -0
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -0
- package/lib/types/ink/components/ScrollBox.js +309 -0
- package/lib/types/ink/components/Spacer.d.ts +4 -0
- package/lib/types/ink/components/Spacer.d.ts.map +1 -0
- package/lib/types/ink/components/Spacer.js +6 -0
- package/lib/types/ink/components/StdinContext.d.ts +32 -0
- package/lib/types/ink/components/StdinContext.d.ts.map +1 -0
- package/lib/types/ink/components/StdinContext.js +16 -0
- package/lib/types/ink/components/TerminalFocusContext.d.ts +11 -0
- package/lib/types/ink/components/TerminalFocusContext.d.ts.map +1 -0
- package/lib/types/ink/components/TerminalFocusContext.js +11 -0
- package/lib/types/ink/components/TerminalSizeContext.d.ts +6 -0
- package/lib/types/ink/components/TerminalSizeContext.d.ts.map +1 -0
- package/lib/types/ink/components/TerminalSizeContext.js +2 -0
- package/lib/types/ink/components/Text.d.ts +64 -0
- package/lib/types/ink/components/Text.d.ts.map +1 -0
- package/lib/types/ink/components/Text.js +19 -0
- package/lib/types/ink/constants.d.ts +12 -0
- package/lib/types/ink/constants.d.ts.map +1 -0
- package/lib/types/ink/constants.js +11 -0
- package/lib/types/ink/cursor.d.ts +11 -0
- package/lib/types/ink/cursor.d.ts.map +1 -0
- package/lib/types/ink/cursor.js +1 -0
- package/lib/types/ink/devtools.d.ts +7 -0
- package/lib/types/ink/devtools.d.ts.map +1 -0
- package/lib/types/ink/devtools.js +1 -0
- package/lib/types/ink/dom.d.ts +194 -0
- package/lib/types/ink/dom.d.ts.map +1 -0
- package/lib/types/ink/dom.js +424 -0
- package/lib/types/ink/events/click-event.d.ts +23 -0
- package/lib/types/ink/events/click-event.d.ts.map +1 -0
- package/lib/types/ink/events/click-event.js +33 -0
- package/lib/types/ink/events/context-menu-event.d.ts +19 -0
- package/lib/types/ink/events/context-menu-event.d.ts.map +1 -0
- package/lib/types/ink/events/context-menu-event.js +20 -0
- package/lib/types/ink/events/dispatcher.d.ts +63 -0
- package/lib/types/ink/events/dispatcher.d.ts.map +1 -0
- package/lib/types/ink/events/dispatcher.js +194 -0
- package/lib/types/ink/events/drag-event.d.ts +44 -0
- package/lib/types/ink/events/drag-event.d.ts.map +1 -0
- package/lib/types/ink/events/drag-event.js +39 -0
- package/lib/types/ink/events/emitter.d.ts +20 -0
- package/lib/types/ink/events/emitter.d.ts.map +1 -0
- package/lib/types/ink/events/emitter.js +43 -0
- package/lib/types/ink/events/event-handlers.d.ts +65 -0
- package/lib/types/ink/events/event-handlers.d.ts.map +1 -0
- package/lib/types/ink/events/event-handlers.js +40 -0
- package/lib/types/ink/events/event.d.ts +19 -0
- package/lib/types/ink/events/event.d.ts.map +1 -0
- package/lib/types/ink/events/event.js +22 -0
- package/lib/types/ink/events/focus-event.d.ts +19 -0
- package/lib/types/ink/events/focus-event.d.ts.map +1 -0
- package/lib/types/ink/events/focus-event.js +21 -0
- package/lib/types/ink/events/input-event.d.ts +72 -0
- package/lib/types/ink/events/input-event.d.ts.map +1 -0
- package/lib/types/ink/events/input-event.js +185 -0
- package/lib/types/ink/events/keyboard-event.d.ts +40 -0
- package/lib/types/ink/events/keyboard-event.d.ts.map +1 -0
- package/lib/types/ink/events/keyboard-event.js +65 -0
- package/lib/types/ink/events/paste-event.d.ts +11 -0
- package/lib/types/ink/events/paste-event.d.ts.map +1 -0
- package/lib/types/ink/events/paste-event.js +13 -0
- package/lib/types/ink/events/pointer-event.d.ts +61 -0
- package/lib/types/ink/events/pointer-event.d.ts.map +1 -0
- package/lib/types/ink/events/pointer-event.js +61 -0
- package/lib/types/ink/events/resize-event.d.ts +13 -0
- package/lib/types/ink/events/resize-event.d.ts.map +1 -0
- package/lib/types/ink/events/resize-event.js +16 -0
- package/lib/types/ink/events/terminal-event.d.ts +112 -0
- package/lib/types/ink/events/terminal-event.d.ts.map +1 -0
- package/lib/types/ink/events/terminal-event.js +131 -0
- package/lib/types/ink/events/terminal-focus-event.d.ts +21 -0
- package/lib/types/ink/events/terminal-focus-event.d.ts.map +1 -0
- package/lib/types/ink/events/terminal-focus-event.js +18 -0
- package/lib/types/ink/events/wheel-event.d.ts +17 -0
- package/lib/types/ink/events/wheel-event.d.ts.map +1 -0
- package/lib/types/ink/events/wheel-event.js +20 -0
- package/lib/types/ink/flush-tick.d.ts +26 -0
- package/lib/types/ink/flush-tick.d.ts.map +1 -0
- package/lib/types/ink/flush-tick.js +31 -0
- package/lib/types/ink/focus.d.ts +74 -0
- package/lib/types/ink/focus.d.ts.map +1 -0
- package/lib/types/ink/focus.js +188 -0
- package/lib/types/ink/frame.d.ts +128 -0
- package/lib/types/ink/frame.d.ts.map +1 -0
- package/lib/types/ink/frame.js +43 -0
- package/lib/types/ink/geometry-trace.d.ts +51 -0
- package/lib/types/ink/geometry-trace.d.ts.map +1 -0
- package/lib/types/ink/geometry-trace.js +83 -0
- package/lib/types/ink/get-max-width.d.ts +12 -0
- package/lib/types/ink/get-max-width.d.ts.map +1 -0
- package/lib/types/ink/get-max-width.js +12 -0
- package/lib/types/ink/hit-test.d.ts +181 -0
- package/lib/types/ink/hit-test.d.ts.map +1 -0
- package/lib/types/ink/hit-test.js +540 -0
- package/lib/types/ink/hooks/use-animation-frame.d.ts +27 -0
- package/lib/types/ink/hooks/use-animation-frame.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-animation-frame.js +48 -0
- package/lib/types/ink/hooks/use-app.d.ts +7 -0
- package/lib/types/ink/hooks/use-app.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-app.js +7 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts +26 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-copy-on-select.js +54 -0
- package/lib/types/ink/hooks/use-declared-cursor.d.ts +31 -0
- package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-declared-cursor.js +65 -0
- package/lib/types/ink/hooks/use-input.d.ts +41 -0
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-input.js +81 -0
- package/lib/types/ink/hooks/use-interval.d.ts +23 -0
- package/lib/types/ink/hooks/use-interval.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-interval.js +58 -0
- package/lib/types/ink/hooks/use-search-highlight.d.ts +34 -0
- package/lib/types/ink/hooks/use-search-highlight.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-search-highlight.js +35 -0
- package/lib/types/ink/hooks/use-selection.d.ts +44 -0
- package/lib/types/ink/hooks/use-selection.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-selection.js +64 -0
- package/lib/types/ink/hooks/use-stdin.d.ts +8 -0
- package/lib/types/ink/hooks/use-stdin.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-stdin.js +8 -0
- package/lib/types/ink/hooks/use-tab-status.d.ts +18 -0
- package/lib/types/ink/hooks/use-tab-status.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-tab-status.js +58 -0
- package/lib/types/ink/hooks/use-terminal-focus.d.ts +11 -0
- package/lib/types/ink/hooks/use-terminal-focus.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-focus.js +15 -0
- package/lib/types/ink/hooks/use-terminal-images.d.ts +14 -0
- package/lib/types/ink/hooks/use-terminal-images.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-images.js +22 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts +6 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-size.js +12 -0
- package/lib/types/ink/hooks/use-terminal-title.d.ts +14 -0
- package/lib/types/ink/hooks/use-terminal-title.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-title.js +30 -0
- package/lib/types/ink/hooks/use-terminal-viewport.d.ts +32 -0
- package/lib/types/ink/hooks/use-terminal-viewport.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-viewport.js +79 -0
- package/lib/types/ink/ink.d.ts +571 -0
- package/lib/types/ink/ink.d.ts.map +1 -0
- package/lib/types/ink/ink.js +2818 -0
- package/lib/types/ink/input-suppression.d.ts +20 -0
- package/lib/types/ink/input-suppression.d.ts.map +1 -0
- package/lib/types/ink/input-suppression.js +26 -0
- package/lib/types/ink/instances.d.ts +10 -0
- package/lib/types/ink/instances.d.ts.map +1 -0
- package/lib/types/ink/instances.js +13 -0
- package/lib/types/ink/kitty-graphics.d.ts +41 -0
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -0
- package/lib/types/ink/kitty-graphics.js +229 -0
- package/lib/types/ink/layout/engine.d.ts +7 -0
- package/lib/types/ink/layout/engine.d.ts.map +1 -0
- package/lib/types/ink/layout/engine.js +8 -0
- package/lib/types/ink/layout/geometry.d.ts +86 -0
- package/lib/types/ink/layout/geometry.d.ts.map +1 -0
- package/lib/types/ink/layout/geometry.js +95 -0
- package/lib/types/ink/layout/node.d.ts +153 -0
- package/lib/types/ink/layout/node.d.ts.map +1 -0
- package/lib/types/ink/layout/node.js +72 -0
- package/lib/types/ink/layout/yoga.d.ts +70 -0
- package/lib/types/ink/layout/yoga.d.ts.map +1 -0
- package/lib/types/ink/layout/yoga.js +252 -0
- package/lib/types/ink/line-width-cache.d.ts +9 -0
- package/lib/types/ink/line-width-cache.d.ts.map +1 -0
- package/lib/types/ink/line-width-cache.js +45 -0
- package/lib/types/ink/log-update.d.ts +57 -0
- package/lib/types/ink/log-update.d.ts.map +1 -0
- package/lib/types/ink/log-update.js +1000 -0
- package/lib/types/ink/measure-element.d.ts +19 -0
- package/lib/types/ink/measure-element.d.ts.map +1 -0
- package/lib/types/ink/measure-element.js +10 -0
- package/lib/types/ink/measure-text.d.ts +13 -0
- package/lib/types/ink/measure-text.d.ts.map +1 -0
- package/lib/types/ink/measure-text.js +38 -0
- package/lib/types/ink/node-cache.d.ts +54 -0
- package/lib/types/ink/node-cache.d.ts.map +1 -0
- package/lib/types/ink/node-cache.js +45 -0
- package/lib/types/ink/optimizer.d.ts +18 -0
- package/lib/types/ink/optimizer.d.ts.map +1 -0
- package/lib/types/ink/optimizer.js +83 -0
- package/lib/types/ink/output.d.ts +300 -0
- package/lib/types/ink/output.d.ts.map +1 -0
- package/lib/types/ink/output.js +1205 -0
- package/lib/types/ink/parse-keypress.d.ts +217 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -0
- package/lib/types/ink/parse-keypress.js +1550 -0
- package/lib/types/ink/reconciler.d.ts +43 -0
- package/lib/types/ink/reconciler.d.ts.map +1 -0
- package/lib/types/ink/reconciler.js +414 -0
- package/lib/types/ink/render-border.d.ts +41 -0
- package/lib/types/ink/render-border.d.ts.map +1 -0
- package/lib/types/ink/render-border.js +159 -0
- package/lib/types/ink/render-node-to-output.d.ts +199 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -0
- package/lib/types/ink/render-node-to-output.js +1758 -0
- package/lib/types/ink/render-to-screen.d.ts +65 -0
- package/lib/types/ink/render-to-screen.d.ts.map +1 -0
- package/lib/types/ink/render-to-screen.js +189 -0
- package/lib/types/ink/renderer.d.ts +34 -0
- package/lib/types/ink/renderer.d.ts.map +1 -0
- package/lib/types/ink/renderer.js +181 -0
- package/lib/types/ink/root.d.ts +109 -0
- package/lib/types/ink/root.d.ts.map +1 -0
- package/lib/types/ink/root.js +96 -0
- package/lib/types/ink/screen.d.ts +545 -0
- package/lib/types/ink/screen.d.ts.map +1 -0
- package/lib/types/ink/screen.js +1607 -0
- package/lib/types/ink/selection.d.ts +529 -0
- package/lib/types/ink/selection.d.ts.map +1 -0
- package/lib/types/ink/selection.js +1292 -0
- package/lib/types/ink/sixel-codec.d.ts +41 -0
- package/lib/types/ink/sixel-codec.d.ts.map +1 -0
- package/lib/types/ink/sixel-codec.js +128 -0
- package/lib/types/ink/sixel-graphics.d.ts +74 -0
- package/lib/types/ink/sixel-graphics.d.ts.map +1 -0
- package/lib/types/ink/sixel-graphics.js +498 -0
- package/lib/types/ink/sixel-worker.d.ts +2 -0
- package/lib/types/ink/sixel-worker.d.ts.map +1 -0
- package/lib/types/ink/sixel-worker.js +12 -0
- package/lib/types/ink/squash-text-nodes.d.ts +30 -0
- package/lib/types/ink/squash-text-nodes.d.ts.map +1 -0
- package/lib/types/ink/squash-text-nodes.js +63 -0
- package/lib/types/ink/stringWidth.d.ts +3 -0
- package/lib/types/ink/stringWidth.d.ts.map +1 -0
- package/lib/types/ink/stringWidth.js +248 -0
- package/lib/types/ink/styles.d.ts +346 -0
- package/lib/types/ink/styles.d.ts.map +1 -0
- package/lib/types/ink/styles.js +307 -0
- package/lib/types/ink/supports-hyperlinks.d.ts +20 -0
- package/lib/types/ink/supports-hyperlinks.d.ts.map +1 -0
- package/lib/types/ink/supports-hyperlinks.js +44 -0
- package/lib/types/ink/tabstops.d.ts +10 -0
- package/lib/types/ink/tabstops.d.ts.map +1 -0
- package/lib/types/ink/tabstops.js +47 -0
- package/lib/types/ink/terminal-focus-state.d.ts +35 -0
- package/lib/types/ink/terminal-focus-state.d.ts.map +1 -0
- package/lib/types/ink/terminal-focus-state.js +57 -0
- package/lib/types/ink/terminal-image-protocol.d.ts +4 -0
- package/lib/types/ink/terminal-image-protocol.d.ts.map +1 -0
- package/lib/types/ink/terminal-image-protocol.js +8 -0
- package/lib/types/ink/terminal-image.d.ts +102 -0
- package/lib/types/ink/terminal-image.d.ts.map +1 -0
- package/lib/types/ink/terminal-image.js +223 -0
- package/lib/types/ink/terminal-querier.d.ts +203 -0
- package/lib/types/ink/terminal-querier.d.ts.map +1 -0
- package/lib/types/ink/terminal-querier.js +286 -0
- package/lib/types/ink/terminal.d.ts +192 -0
- package/lib/types/ink/terminal.d.ts.map +1 -0
- package/lib/types/ink/terminal.js +436 -0
- package/lib/types/ink/termio/ansi.d.ts +75 -0
- package/lib/types/ink/termio/ansi.d.ts.map +1 -0
- package/lib/types/ink/termio/ansi.js +79 -0
- package/lib/types/ink/termio/csi.d.ts +263 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -0
- package/lib/types/ink/termio/csi.js +367 -0
- package/lib/types/ink/termio/dec.d.ts +61 -0
- package/lib/types/ink/termio/dec.d.ts.map +1 -0
- package/lib/types/ink/termio/dec.js +76 -0
- package/lib/types/ink/termio/esc.d.ts +15 -0
- package/lib/types/ink/termio/esc.d.ts.map +1 -0
- package/lib/types/ink/termio/esc.js +57 -0
- package/lib/types/ink/termio/osc.d.ts +198 -0
- package/lib/types/ink/termio/osc.d.ts.map +1 -0
- package/lib/types/ink/termio/osc.js +475 -0
- package/lib/types/ink/termio/parser.d.ts +46 -0
- package/lib/types/ink/termio/parser.d.ts.map +1 -0
- package/lib/types/ink/termio/parser.js +366 -0
- package/lib/types/ink/termio/sgr.d.ts +17 -0
- package/lib/types/ink/termio/sgr.d.ts.map +1 -0
- package/lib/types/ink/termio/sgr.js +300 -0
- package/lib/types/ink/termio/tokenize.d.ts +56 -0
- package/lib/types/ink/termio/tokenize.d.ts.map +1 -0
- package/lib/types/ink/termio/tokenize.js +290 -0
- package/lib/types/ink/termio/types.d.ts +211 -0
- package/lib/types/ink/termio/types.d.ts.map +1 -0
- package/lib/types/ink/termio/types.js +68 -0
- package/lib/types/ink/termio.d.ts +25 -0
- package/lib/types/ink/termio.d.ts.map +1 -0
- package/lib/types/ink/termio.js +24 -0
- package/lib/types/ink/timeline-rail.d.ts +134 -0
- package/lib/types/ink/timeline-rail.d.ts.map +1 -0
- package/lib/types/ink/timeline-rail.js +175 -0
- package/lib/types/ink/transcript-highlight.d.ts +25 -0
- package/lib/types/ink/transcript-highlight.d.ts.map +1 -0
- package/lib/types/ink/transcript-highlight.js +82 -0
- package/lib/types/ink/truncateToWidth.d.ts +7 -0
- package/lib/types/ink/truncateToWidth.d.ts.map +1 -0
- package/lib/types/ink/truncateToWidth.js +18 -0
- package/lib/types/ink/update-overflow-guard.d.ts +62 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -0
- package/lib/types/ink/update-overflow-guard.js +164 -0
- package/lib/types/ink/useTerminalNotification.d.ts +45 -0
- package/lib/types/ink/useTerminalNotification.d.ts.map +1 -0
- package/lib/types/ink/useTerminalNotification.js +70 -0
- package/lib/types/ink/warn.d.ts +7 -0
- package/lib/types/ink/warn.d.ts.map +1 -0
- package/lib/types/ink/warn.js +15 -0
- package/lib/types/ink/widest-line.d.ts +7 -0
- package/lib/types/ink/widest-line.d.ts.map +1 -0
- package/lib/types/ink/widest-line.js +19 -0
- package/lib/types/ink/wrap-text.d.ts +10 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -0
- package/lib/types/ink/wrap-text.js +103 -0
- package/lib/types/ink/wrapAnsi.d.ts +17 -0
- package/lib/types/ink/wrapAnsi.d.ts.map +1 -0
- package/lib/types/ink/wrapAnsi.js +38 -0
- package/lib/types/jsx-runtime.d.ts +2 -0
- package/lib/types/jsx-runtime.d.ts.map +1 -0
- package/lib/types/jsx-runtime.js +13 -0
- package/lib/types/migrationPrefs.d.ts +60 -0
- package/lib/types/migrationPrefs.d.ts.map +1 -0
- package/lib/types/migrationPrefs.js +97 -0
- package/lib/types/minimalMode.d.ts +13 -0
- package/lib/types/minimalMode.d.ts.map +1 -0
- package/lib/types/minimalMode.js +17 -0
- package/lib/types/modelGroups.d.ts +72 -0
- package/lib/types/modelGroups.d.ts.map +1 -0
- package/lib/types/modelGroups.js +97 -0
- package/lib/types/modelPrefs.d.ts +37 -0
- package/lib/types/modelPrefs.d.ts.map +1 -0
- package/lib/types/modelPrefs.js +66 -0
- package/lib/types/modelRecents.d.ts +39 -0
- package/lib/types/modelRecents.d.ts.map +1 -0
- package/lib/types/modelRecents.js +97 -0
- package/lib/types/modelRoute.d.ts +87 -0
- package/lib/types/modelRoute.d.ts.map +1 -0
- package/lib/types/modelRoute.js +125 -0
- package/lib/types/native-ts/yoga-layout/enums.d.ts +183 -0
- package/lib/types/native-ts/yoga-layout/enums.d.ts.map +1 -0
- package/lib/types/native-ts/yoga-layout/enums.js +150 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts +804 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -0
- package/lib/types/native-ts/yoga-layout/index.js +2614 -0
- package/lib/types/oauth.d.ts +15 -0
- package/lib/types/oauth.d.ts.map +1 -0
- package/lib/types/oauth.js +14 -0
- package/lib/types/plugin-host.d.ts +14 -0
- package/lib/types/plugin-host.d.ts.map +1 -0
- package/lib/types/plugin-host.js +19 -0
- package/lib/types/presetPrefs.d.ts +30 -0
- package/lib/types/presetPrefs.d.ts.map +1 -0
- package/lib/types/presetPrefs.js +66 -0
- package/lib/types/reload.d.ts +109 -0
- package/lib/types/reload.d.ts.map +1 -0
- package/lib/types/reload.js +118 -0
- package/lib/types/scenes.d.ts +4 -0
- package/lib/types/scenes.d.ts.map +1 -0
- package/lib/types/scenes.js +4 -0
- package/lib/types/screens/Chat.d.ts +82 -0
- package/lib/types/screens/Chat.d.ts.map +1 -0
- package/lib/types/screens/Chat.js +4299 -0
- package/lib/types/screens/SessionSupervisor.d.ts +84 -0
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -0
- package/lib/types/screens/SessionSupervisor.js +350 -0
- package/lib/types/screens/SessionTree.d.ts +27 -0
- package/lib/types/screens/SessionTree.d.ts.map +1 -0
- package/lib/types/screens/SessionTree.js +583 -0
- package/lib/types/screens/Settings.d.ts +22 -0
- package/lib/types/screens/Settings.d.ts.map +1 -0
- package/lib/types/screens/Settings.js +592 -0
- package/lib/types/screens/StatusLine.d.ts +48 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -0
- package/lib/types/screens/StatusLine.js +453 -0
- package/lib/types/screens/StatusMetrics.d.ts +176 -0
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -0
- package/lib/types/screens/StatusMetrics.js +372 -0
- package/lib/types/screens/TrajectoryScene.d.ts +16 -0
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -0
- package/lib/types/screens/TrajectoryScene.js +374 -0
- package/lib/types/screens/chatOverlay.d.ts +267 -0
- package/lib/types/screens/chatOverlay.d.ts.map +1 -0
- package/lib/types/screens/chatOverlay.js +132 -0
- package/lib/types/screens/sessionSupervisor/model.d.ts +83 -0
- package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -0
- package/lib/types/screens/sessionSupervisor/model.js +69 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +120 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +639 -0
- package/lib/types/sessionHistory.d.ts +59 -0
- package/lib/types/sessionHistory.d.ts.map +1 -0
- package/lib/types/sessionHistory.js +223 -0
- package/lib/types/sessionModes.d.ts +83 -0
- package/lib/types/sessionModes.d.ts.map +1 -0
- package/lib/types/sessionModes.js +141 -0
- package/lib/types/sessionMounts.d.ts +272 -0
- package/lib/types/sessionMounts.d.ts.map +1 -0
- package/lib/types/sessionMounts.js +706 -0
- package/lib/types/sessionPins.d.ts +33 -0
- package/lib/types/sessionPins.d.ts.map +1 -0
- package/lib/types/sessionPins.js +181 -0
- package/lib/types/sessions/format.d.ts +125 -0
- package/lib/types/sessions/format.d.ts.map +1 -0
- package/lib/types/sessions/format.js +276 -0
- package/lib/types/sessions/resumeFailure.d.ts +38 -0
- package/lib/types/sessions/resumeFailure.d.ts.map +1 -0
- package/lib/types/sessions/resumeFailure.js +58 -0
- package/lib/types/sessions/view.d.ts +162 -0
- package/lib/types/sessions/view.d.ts.map +1 -0
- package/lib/types/sessions/view.js +350 -0
- package/lib/types/settings-sections.d.ts +4 -0
- package/lib/types/settings-sections.d.ts.map +1 -0
- package/lib/types/settings-sections.js +4 -0
- package/lib/types/terminal-utils/cliHighlight.d.ts +20 -0
- package/lib/types/terminal-utils/cliHighlight.d.ts.map +1 -0
- package/lib/types/terminal-utils/cliHighlight.js +53 -0
- package/lib/types/terminal-utils/figures.d.ts +26 -0
- package/lib/types/terminal-utils/figures.d.ts.map +1 -0
- package/lib/types/terminal-utils/figures.js +36 -0
- package/lib/types/terminal-utils/format.d.ts +35 -0
- package/lib/types/terminal-utils/format.d.ts.map +1 -0
- package/lib/types/terminal-utils/format.js +63 -0
- package/lib/types/terminal-utils/hash.d.ts +25 -0
- package/lib/types/terminal-utils/hash.d.ts.map +1 -0
- package/lib/types/terminal-utils/hash.js +41 -0
- package/lib/types/terminal-utils/hyperlink.d.ts +27 -0
- package/lib/types/terminal-utils/hyperlink.d.ts.map +1 -0
- package/lib/types/terminal-utils/hyperlink.js +70 -0
- package/lib/types/terminal-utils/markdown.d.ts +58 -0
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -0
- package/lib/types/terminal-utils/markdown.js +441 -0
- package/lib/types/terminal-utils/mermaid.d.ts +44 -0
- package/lib/types/terminal-utils/mermaid.d.ts.map +1 -0
- package/lib/types/terminal-utils/mermaid.js +83 -0
- package/lib/types/terminal-utils/sessionColors.d.ts +27 -0
- package/lib/types/terminal-utils/sessionColors.d.ts.map +1 -0
- package/lib/types/terminal-utils/sessionColors.js +39 -0
- package/lib/types/terminal-utils/spinnerVerbs.d.ts +3 -0
- package/lib/types/terminal-utils/spinnerVerbs.d.ts.map +1 -0
- package/lib/types/terminal-utils/spinnerVerbs.js +21 -0
- package/lib/types/terminal-utils/syntaxRuns.d.ts +16 -0
- package/lib/types/terminal-utils/syntaxRuns.d.ts.map +1 -0
- package/lib/types/terminal-utils/syntaxRuns.js +79 -0
- package/lib/types/terminal-utils/syntaxTheme.d.ts +12 -0
- package/lib/types/terminal-utils/syntaxTheme.d.ts.map +1 -0
- package/lib/types/terminal-utils/syntaxTheme.js +76 -0
- package/lib/types/theme.d.ts +201 -0
- package/lib/types/theme.d.ts.map +1 -0
- package/lib/types/theme.js +525 -0
- package/lib/types/themeCatalog.d.ts +36 -0
- package/lib/types/themeCatalog.d.ts.map +1 -0
- package/lib/types/themeCatalog.js +159 -0
- package/lib/types/themePrefs.d.ts +28 -0
- package/lib/types/themePrefs.d.ts.map +1 -0
- package/lib/types/themePrefs.js +59 -0
- package/lib/types/tips.d.ts +30 -0
- package/lib/types/tips.d.ts.map +1 -0
- package/lib/types/tips.js +899 -0
- package/lib/types/trajectory/effortIgnition.d.ts +66 -0
- package/lib/types/trajectory/effortIgnition.d.ts.map +1 -0
- package/lib/types/trajectory/effortIgnition.js +142 -0
- package/lib/types/trajectory/format.d.ts +100 -0
- package/lib/types/trajectory/format.d.ts.map +1 -0
- package/lib/types/trajectory/format.js +213 -0
- package/lib/types/trajectory/motion.d.ts +99 -0
- package/lib/types/trajectory/motion.d.ts.map +1 -0
- package/lib/types/trajectory/motion.js +143 -0
- package/lib/types/trajectory/query.d.ts +83 -0
- package/lib/types/trajectory/query.d.ts.map +1 -0
- package/lib/types/trajectory/query.js +187 -0
- package/lib/types/trajectoryPrefs.d.ts +36 -0
- package/lib/types/trajectoryPrefs.d.ts.map +1 -0
- package/lib/types/trajectoryPrefs.js +65 -0
- package/lib/types/tuiDisplayPrefs.d.ts +49 -0
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -0
- package/lib/types/tuiDisplayPrefs.js +168 -0
- package/lib/types/ui.d.ts +29 -0
- package/lib/types/ui.d.ts.map +1 -0
- package/lib/types/ui.js +25 -0
- package/lib/types/update.d.ts +550 -0
- package/lib/types/update.d.ts.map +1 -0
- package/lib/types/update.js +1751 -0
- package/lib/types/utils/clipboard.d.ts +122 -0
- package/lib/types/utils/clipboard.d.ts.map +1 -0
- package/lib/types/utils/clipboard.js +577 -0
- 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/debug.d.ts +18 -0
- package/lib/types/utils/debug.d.ts.map +1 -0
- package/lib/types/utils/debug.js +37 -0
- package/lib/types/utils/earlyInput.d.ts +6 -0
- package/lib/types/utils/earlyInput.d.ts.map +1 -0
- package/lib/types/utils/earlyInput.js +5 -0
- package/lib/types/utils/env.d.ts +8 -0
- package/lib/types/utils/env.d.ts.map +1 -0
- package/lib/types/utils/env.js +7 -0
- package/lib/types/utils/envUtils.d.ts +8 -0
- package/lib/types/utils/envUtils.d.ts.map +1 -0
- package/lib/types/utils/envUtils.js +13 -0
- package/lib/types/utils/execFileNoThrow.d.ts +17 -0
- package/lib/types/utils/execFileNoThrow.d.ts.map +1 -0
- package/lib/types/utils/execFileNoThrow.js +65 -0
- package/lib/types/utils/externalEditor.d.ts +116 -0
- package/lib/types/utils/externalEditor.d.ts.map +1 -0
- package/lib/types/utils/externalEditor.js +270 -0
- package/lib/types/utils/fileSuggestions.d.ts +12 -0
- package/lib/types/utils/fileSuggestions.d.ts.map +1 -0
- package/lib/types/utils/fileSuggestions.js +40 -0
- package/lib/types/utils/fileTarget.d.ts +46 -0
- package/lib/types/utils/fileTarget.d.ts.map +1 -0
- package/lib/types/utils/fileTarget.js +178 -0
- 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/lib/types/utils/fullscreen.d.ts +7 -0
- package/lib/types/utils/fullscreen.d.ts.map +1 -0
- package/lib/types/utils/fullscreen.js +9 -0
- package/lib/types/utils/imageResize.d.ts +90 -0
- package/lib/types/utils/imageResize.d.ts.map +1 -0
- package/lib/types/utils/imageResize.js +272 -0
- package/lib/types/utils/intl.d.ts +7 -0
- package/lib/types/utils/intl.d.ts.map +1 -0
- package/lib/types/utils/intl.js +9 -0
- package/lib/types/utils/keymap.d.ts +138 -0
- package/lib/types/utils/keymap.d.ts.map +1 -0
- package/lib/types/utils/keymap.js +351 -0
- package/lib/types/utils/loaded-context.d.ts +25 -0
- package/lib/types/utils/loaded-context.d.ts.map +1 -0
- package/lib/types/utils/loaded-context.js +72 -0
- package/lib/types/utils/log.d.ts +7 -0
- package/lib/types/utils/log.d.ts.map +1 -0
- package/lib/types/utils/log.js +9 -0
- package/lib/types/utils/mentions.d.ts +53 -0
- package/lib/types/utils/mentions.d.ts.map +1 -0
- package/lib/types/utils/mentions.js +133 -0
- package/lib/types/utils/modifiers.d.ts +43 -0
- package/lib/types/utils/modifiers.d.ts.map +1 -0
- package/lib/types/utils/modifiers.js +45 -0
- package/lib/types/utils/narration.d.ts +11 -0
- package/lib/types/utils/narration.d.ts.map +1 -0
- package/lib/types/utils/narration.js +16 -0
- package/lib/types/utils/openExternal.d.ts +50 -0
- package/lib/types/utils/openExternal.d.ts.map +1 -0
- package/lib/types/utils/openExternal.js +170 -0
- package/lib/types/utils/pastedImagePath.d.ts +51 -0
- package/lib/types/utils/pastedImagePath.d.ts.map +1 -0
- package/lib/types/utils/pastedImagePath.js +194 -0
- package/lib/types/utils/paths.d.ts +16 -0
- package/lib/types/utils/paths.d.ts.map +1 -0
- package/lib/types/utils/paths.js +19 -0
- package/lib/types/utils/semver.d.ts +9 -0
- package/lib/types/utils/semver.d.ts.map +1 -0
- package/lib/types/utils/semver.js +24 -0
- package/lib/types/utils/shellQuote.d.ts +14 -0
- package/lib/types/utils/shellQuote.d.ts.map +1 -0
- package/lib/types/utils/shellQuote.js +39 -0
- package/lib/types/utils/sliceAnsi.d.ts +12 -0
- package/lib/types/utils/sliceAnsi.d.ts.map +1 -0
- package/lib/types/utils/sliceAnsi.js +79 -0
- package/lib/types/utils/truncateMiddle.d.ts +9 -0
- package/lib/types/utils/truncateMiddle.d.ts.map +1 -0
- package/lib/types/utils/truncateMiddle.js +28 -0
- package/lib/types/utils/urlGuard.d.ts +28 -0
- package/lib/types/utils/urlGuard.d.ts.map +1 -0
- package/lib/types/utils/urlGuard.js +21 -0
- package/lib/types/utils/workspaceRoot.d.ts +21 -0
- package/lib/types/utils/workspaceRoot.d.ts.map +1 -0
- package/lib/types/utils/workspaceRoot.js +47 -0
- package/lib/types/working-activity.d.ts +32 -0
- package/lib/types/working-activity.d.ts.map +1 -0
- package/lib/types/working-activity.js +38 -0
- package/lib/types/workspaces.d.ts +5 -0
- package/lib/types/workspaces.d.ts.map +1 -0
- package/lib/types/workspaces.js +4 -0
- package/node_modules/@askdkc/dsh-auth/LICENSE +21 -0
- package/node_modules/@askdkc/dsh-auth/README.ja.md +164 -0
- package/node_modules/@askdkc/dsh-auth/README.md +163 -0
- package/node_modules/@askdkc/dsh-auth/cordis.patch.yml +11 -0
- package/node_modules/@askdkc/dsh-auth/dsh-plugin.json +44 -0
- package/node_modules/@askdkc/dsh-auth/lib/command.d.ts +14 -0
- package/node_modules/@askdkc/dsh-auth/lib/command.js +70 -0
- package/node_modules/@askdkc/dsh-auth/lib/credentials.d.ts +63 -0
- package/node_modules/@askdkc/dsh-auth/lib/credentials.js +204 -0
- package/node_modules/@askdkc/dsh-auth/lib/custom-profiles.d.ts +26 -0
- package/node_modules/@askdkc/dsh-auth/lib/custom-profiles.js +142 -0
- package/node_modules/@askdkc/dsh-auth/lib/index.d.ts +96 -0
- package/node_modules/@askdkc/dsh-auth/lib/index.js +263 -0
- package/node_modules/@askdkc/dsh-auth/lib/interaction.d.ts +68 -0
- package/node_modules/@askdkc/dsh-auth/lib/interaction.js +193 -0
- package/node_modules/@askdkc/dsh-auth/lib/nous-oauth.d.ts +5 -0
- package/node_modules/@askdkc/dsh-auth/lib/nous-oauth.js +112 -0
- package/node_modules/@askdkc/dsh-auth/lib/opener.d.ts +32 -0
- package/node_modules/@askdkc/dsh-auth/lib/opener.js +101 -0
- package/node_modules/@askdkc/dsh-auth/lib/pi-ai.d.ts +23 -0
- package/node_modules/@askdkc/dsh-auth/lib/pi-ai.js +27 -0
- package/node_modules/@askdkc/dsh-auth/lib/profiles.d.ts +45 -0
- package/node_modules/@askdkc/dsh-auth/lib/profiles.js +110 -0
- package/node_modules/@askdkc/dsh-auth/lib/service.d.ts +80 -0
- package/node_modules/@askdkc/dsh-auth/lib/service.js +224 -0
- package/node_modules/@askdkc/dsh-auth/package.json +70 -0
- package/node_modules/@dsh-std/command/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/command/LICENSE +21 -0
- package/node_modules/@dsh-std/command/README.md +26 -0
- package/node_modules/@dsh-std/command/README.zh.md +28 -0
- package/node_modules/@dsh-std/command/lib/index.d.ts +144 -0
- package/node_modules/@dsh-std/command/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/command/lib/index.js +252 -0
- package/node_modules/@dsh-std/command/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/command/package.json +22 -0
- package/node_modules/@dsh-std/connection/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/connection/LICENSE +21 -0
- package/node_modules/@dsh-std/connection/README.md +42 -0
- package/node_modules/@dsh-std/connection/README.zh.md +42 -0
- package/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts +125 -0
- package/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts.map +1 -0
- package/node_modules/@dsh-std/connection/lib/index.d.ts +89 -0
- package/node_modules/@dsh-std/connection/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/connection/lib/index.js +158 -0
- package/node_modules/@dsh-std/connection/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/connection/lib/memory.d.ts +24 -0
- package/node_modules/@dsh-std/connection/lib/memory.d.ts.map +1 -0
- package/node_modules/@dsh-std/connection/lib/memory.js +258 -0
- package/node_modules/@dsh-std/connection/lib/memory.js.map +1 -0
- package/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js +226 -0
- package/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -0
- package/node_modules/@dsh-std/connection/package.json +20 -0
- package/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/core/LICENSE +21 -0
- package/node_modules/@dsh-std/core/README.md +13 -0
- package/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/core/package.json +21 -0
- package/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -0
- package/node_modules/@dsh-std/manifest/LICENSE +21 -0
- package/node_modules/@dsh-std/manifest/README.md +5 -0
- package/node_modules/@dsh-std/manifest/README.zh.md +5 -0
- package/node_modules/@dsh-std/manifest/lib/index.d.ts +182 -0
- package/node_modules/@dsh-std/manifest/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/manifest/lib/index.js +625 -0
- package/node_modules/@dsh-std/manifest/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/manifest/package.json +20 -0
- package/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -0
- package/node_modules/@dsh-std/messages/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/messages/LICENSE +21 -0
- package/node_modules/@dsh-std/messages/README.md +5 -0
- package/node_modules/@dsh-std/messages/README.zh.md +7 -0
- package/node_modules/@dsh-std/messages/lib/index.d.ts +50 -0
- package/node_modules/@dsh-std/messages/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/messages/lib/index.js +151 -0
- package/node_modules/@dsh-std/messages/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/messages/package.json +20 -0
- package/node_modules/@dsh-std/messages/schema/message-observer-envelope-0.15.schema.json +54 -0
- package/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -0
- package/node_modules/@dsh-std/presentation/LICENSE +21 -0
- package/node_modules/@dsh-std/presentation/README.md +27 -0
- package/node_modules/@dsh-std/presentation/README.zh.md +29 -0
- package/node_modules/@dsh-std/presentation/lib/callback.d.ts +2 -0
- package/node_modules/@dsh-std/presentation/lib/callback.js +179 -0
- package/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -0
- package/node_modules/@dsh-std/presentation/lib/index.d.ts +262 -0
- package/node_modules/@dsh-std/presentation/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/presentation/lib/index.js +550 -0
- package/node_modules/@dsh-std/presentation/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/presentation/lib/interaction.d.ts +2 -0
- package/node_modules/@dsh-std/presentation/lib/interaction.js +2 -0
- package/node_modules/@dsh-std/presentation/lib/operations.d.ts +2 -0
- package/node_modules/@dsh-std/presentation/lib/operations.js +2 -0
- package/node_modules/@dsh-std/presentation/package.json +25 -0
- package/node_modules/@dsh-std/storage/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/storage/LICENSE +21 -0
- package/node_modules/@dsh-std/storage/README.md +5 -0
- package/node_modules/@dsh-std/storage/README.zh.md +7 -0
- package/node_modules/@dsh-std/storage/lib/index.d.ts +48 -0
- package/node_modules/@dsh-std/storage/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/storage/lib/index.js +104 -0
- package/node_modules/@dsh-std/storage/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/storage/package.json +20 -0
- package/node_modules/@dsh-std/storage/schema/local-storage-0.15.schema.json +56 -0
- package/package.json +492 -0
- package/presets/liangshen/.dsh-tui-managed.json +5 -0
- package/presets/liangshen/agent.cordis.yml +425 -0
- package/presets/liangshen/compaction-epoch.mjs +83 -0
- package/presets/liangshen/custom-bash.mjs +301 -0
- package/presets/liangshen/instruction-hint.mjs +190 -0
- package/presets/liangshen/preset.yml +3 -0
- package/presets/liangshen/session-events.mjs +8 -0
- package/presets/liangshen/skill-search.mjs +141 -0
- package/presets/liangshen/tool-bootstrap.mjs +300 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/LICENSE +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.md +42 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.zh.md +42 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts +125 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.d.ts +89 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js +158 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.d.ts +24 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js +258 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js +226 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/package.json +20 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/LICENSE +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.md +5 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.zh.md +5 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.d.ts +182 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js +625 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/package.json +20 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/LICENSE +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.md +27 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.zh.md +29 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.d.ts +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js +179 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.d.ts +262 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js +550 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/interaction.d.ts +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/interaction.js +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/operations.d.ts +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/operations.js +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/package.json +25 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/LICENSE +21 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.md +42 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.zh.md +42 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts +125 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.d.ts +89 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js +158 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.d.ts +24 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.d.ts.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js +258 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js +226 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/package.json +20 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/package.json +21 -0
|
@@ -0,0 +1,1292 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text selection state for fullscreen mode.
|
|
3
|
+
*
|
|
4
|
+
* Tracks a linear selection in screen-buffer coordinates (0-indexed col/row).
|
|
5
|
+
* Selection is line-based: cells from (startCol, startRow) through
|
|
6
|
+
* (endCol, endRow) inclusive, wrapping across line boundaries. This matches
|
|
7
|
+
* terminal-native selection behavior (not rectangular/block).
|
|
8
|
+
*
|
|
9
|
+
* The selection is stored as ANCHOR (where the drag started) + FOCUS (where
|
|
10
|
+
* the cursor is now). The rendered highlight normalizes to start ≤ end.
|
|
11
|
+
*/
|
|
12
|
+
import { clamp } from './layout/geometry.js';
|
|
13
|
+
import { cellAt, cellAtIndex, setCellStyleId } from './screen.js';
|
|
14
|
+
/**
|
|
15
|
+
* Create a new selection state with no active selection.
|
|
16
|
+
* @returns the empty selection state.
|
|
17
|
+
*/
|
|
18
|
+
export function createSelectionState() {
|
|
19
|
+
return {
|
|
20
|
+
anchor: null,
|
|
21
|
+
focus: null,
|
|
22
|
+
isDragging: false,
|
|
23
|
+
anchorSpan: null,
|
|
24
|
+
scrolledOffAbove: [],
|
|
25
|
+
scrolledOffBelow: [],
|
|
26
|
+
scrolledOffAboveSW: [],
|
|
27
|
+
scrolledOffBelowSW: [],
|
|
28
|
+
lastPressHadAlt: false,
|
|
29
|
+
coveredFingerprint: null,
|
|
30
|
+
coveredText: null,
|
|
31
|
+
coveredGeometry: null,
|
|
32
|
+
stale: false,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Begin a new drag selection at (col, row): set the anchor, mark the
|
|
37
|
+
* state as dragging, and clear every accumulator. Focus stays null until
|
|
38
|
+
* the first drag motion, so a bare click never highlights a cell.
|
|
39
|
+
* @param s - the selection state to mutate.
|
|
40
|
+
* @param col - anchor column in screen-buffer coordinates.
|
|
41
|
+
* @param row - anchor row in screen-buffer coordinates.
|
|
42
|
+
*/
|
|
43
|
+
export function startSelection(s, col, row) {
|
|
44
|
+
s.anchor = { col, row };
|
|
45
|
+
// Focus is not set until the first drag motion. A click-release with no
|
|
46
|
+
// drag leaves focus null → hasSelection/selectionBounds return false/null
|
|
47
|
+
// via the `!s.focus` check, so a bare click never highlights a cell.
|
|
48
|
+
s.focus = null;
|
|
49
|
+
s.isDragging = true;
|
|
50
|
+
s.anchorSpan = null;
|
|
51
|
+
s.scrolledOffAbove = [];
|
|
52
|
+
s.scrolledOffBelow = [];
|
|
53
|
+
s.scrolledOffAboveSW = [];
|
|
54
|
+
s.scrolledOffBelowSW = [];
|
|
55
|
+
s.virtualAnchorRow = undefined;
|
|
56
|
+
s.virtualFocusRow = undefined;
|
|
57
|
+
s.dragBounds = undefined;
|
|
58
|
+
s.lastPressHadAlt = false;
|
|
59
|
+
s.coveredFingerprint = null;
|
|
60
|
+
s.coveredText = null;
|
|
61
|
+
s.coveredGeometry = null;
|
|
62
|
+
s.stale = false;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Track the drag position: update focus to (col, row). No-op while not
|
|
66
|
+
* dragging, and the first motion at the anchor cell is ignored so a bare
|
|
67
|
+
* click never becomes a one-cell selection.
|
|
68
|
+
* @param s - the selection state to mutate.
|
|
69
|
+
* @param col - current mouse column.
|
|
70
|
+
* @param row - current mouse row.
|
|
71
|
+
*/
|
|
72
|
+
export function updateSelection(s, col, row) {
|
|
73
|
+
if (!s.isDragging)
|
|
74
|
+
return;
|
|
75
|
+
// First motion at the same cell as anchor is a no-op. Terminals in mode
|
|
76
|
+
// 1002 can fire a drag event at the anchor cell (sub-pixel tremor, or a
|
|
77
|
+
// motion-release pair). Setting focus here would turn a bare click into
|
|
78
|
+
// a 1-cell selection and clobber the clipboard via useCopyOnSelect. Once
|
|
79
|
+
// focus is set (real drag), we track normally including back to anchor.
|
|
80
|
+
if (!s.focus && s.anchor && s.anchor.col === col && s.anchor.row === row)
|
|
81
|
+
return;
|
|
82
|
+
s.focus = { col, row };
|
|
83
|
+
// Fresh mouse position supersedes any virtual focus a resize clamp left
|
|
84
|
+
// behind (shiftSelection clamps focus when the chrome covered its row) —
|
|
85
|
+
// the same reset moveFocus does. Without this, the next shift computes
|
|
86
|
+
// rawFocus from a stale pre-motion row.
|
|
87
|
+
s.virtualFocusRow = undefined;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* End a drag: clear the dragging flag while keeping anchor/focus so the
|
|
91
|
+
* highlight stays visible and the text can be copied. Call
|
|
92
|
+
* clearSelection to drop the selection after copy or on Esc.
|
|
93
|
+
*
|
|
94
|
+
* Deferred ghost guard: a drag that scrolled both ends fully off the same
|
|
95
|
+
* viewport edge (wheeled away while the button was held) is dropped HERE,
|
|
96
|
+
* at commit time, instead of during the drag — the in-flight gesture must
|
|
97
|
+
* survive the wheel, but a committed selection left entirely off-screen
|
|
98
|
+
* would linger as an invisible ghost (see shiftSelectionForFollow).
|
|
99
|
+
* @param s - the selection state to mutate.
|
|
100
|
+
*/
|
|
101
|
+
export function finishSelection(s) {
|
|
102
|
+
s.isDragging = false;
|
|
103
|
+
if (s.dragBounds !== undefined) {
|
|
104
|
+
const { top, bottom } = s.dragBounds;
|
|
105
|
+
s.dragBounds = undefined;
|
|
106
|
+
if (selectionFullyOffEdge(s, top, bottom)) {
|
|
107
|
+
clearSelection(s);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Otherwise keep anchor/focus so highlight stays visible and text can be
|
|
111
|
+
// copied. Clear via clearSelection() on Esc or after copy.
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Reset the selection to the empty state: no anchor, focus, span, or
|
|
115
|
+
* scrolled-off accumulators.
|
|
116
|
+
* @param s - the selection state to mutate.
|
|
117
|
+
*/
|
|
118
|
+
export function clearSelection(s) {
|
|
119
|
+
s.anchor = null;
|
|
120
|
+
s.focus = null;
|
|
121
|
+
s.isDragging = false;
|
|
122
|
+
s.anchorSpan = null;
|
|
123
|
+
s.scrolledOffAbove = [];
|
|
124
|
+
s.scrolledOffBelow = [];
|
|
125
|
+
s.scrolledOffAboveSW = [];
|
|
126
|
+
s.scrolledOffBelowSW = [];
|
|
127
|
+
s.virtualAnchorRow = undefined;
|
|
128
|
+
s.virtualFocusRow = undefined;
|
|
129
|
+
s.dragBounds = undefined;
|
|
130
|
+
s.lastPressHadAlt = false;
|
|
131
|
+
s.coveredFingerprint = null;
|
|
132
|
+
s.coveredText = null;
|
|
133
|
+
s.coveredGeometry = null;
|
|
134
|
+
s.stale = false;
|
|
135
|
+
}
|
|
136
|
+
// Unicode-aware word character matcher: letters (any script), digits,
|
|
137
|
+
// and the punctuation set iTerm2 treats as word-part by default.
|
|
138
|
+
// Matching iTerm2's default means double-clicking a path like
|
|
139
|
+
// `/usr/bin/bash` or `~/.accent/config.json` selects the whole thing,
|
|
140
|
+
// which is the muscle memory most macOS terminal users have.
|
|
141
|
+
// iTerm2 default "characters considered part of a word": /-+\~_.
|
|
142
|
+
const WORD_CHAR = /[\p{L}\p{N}_/.\-+~\\]/u;
|
|
143
|
+
/**
|
|
144
|
+
* Character class for double-click word-expansion. Cells with the same
|
|
145
|
+
* class as the clicked cell are included in the selection; a class change
|
|
146
|
+
* is a boundary. Matches typical terminal-emulator behavior (iTerm2 etc.):
|
|
147
|
+
* double-click on `foo` selects `foo`, on `->` selects `->`, on spaces
|
|
148
|
+
* selects the whitespace run.
|
|
149
|
+
*/
|
|
150
|
+
function charClass(c) {
|
|
151
|
+
if (c === ' ' || c === '')
|
|
152
|
+
return 0;
|
|
153
|
+
if (WORD_CHAR.test(c))
|
|
154
|
+
return 1;
|
|
155
|
+
return 2;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Find the bounds of the same-class character run at (col, row). Returns
|
|
159
|
+
* null if the click is out of bounds or lands on a noSelect cell. Used by
|
|
160
|
+
* selectWordAt (initial double-click) and extendWordSelection (drag).
|
|
161
|
+
*/
|
|
162
|
+
function wordBoundsAt(screen, col, row) {
|
|
163
|
+
if (row < 0 || row >= screen.height)
|
|
164
|
+
return null;
|
|
165
|
+
const width = screen.width;
|
|
166
|
+
const noSelect = screen.noSelect;
|
|
167
|
+
const rowOff = row * width;
|
|
168
|
+
// If the click landed on the spacer tail of a wide char, step back to
|
|
169
|
+
// the head so the class check sees the actual grapheme.
|
|
170
|
+
let c = col;
|
|
171
|
+
if (c > 0) {
|
|
172
|
+
const cell = cellAt(screen, c, row);
|
|
173
|
+
if (cell && cell.width === 2 /* CellWidth.SpacerTail */)
|
|
174
|
+
c -= 1;
|
|
175
|
+
}
|
|
176
|
+
if (c < 0 || c >= width || noSelect[rowOff + c] === 1)
|
|
177
|
+
return null;
|
|
178
|
+
const startCell = cellAt(screen, c, row);
|
|
179
|
+
if (!startCell)
|
|
180
|
+
return null;
|
|
181
|
+
const cls = charClass(startCell.char);
|
|
182
|
+
// Expand left: include cells of the same class, stop at noSelect or
|
|
183
|
+
// class change. SpacerTail cells are stepped over (the wide-char head
|
|
184
|
+
// at the preceding column determines the class).
|
|
185
|
+
let lo = c;
|
|
186
|
+
while (lo > 0) {
|
|
187
|
+
const prev = lo - 1;
|
|
188
|
+
if (noSelect[rowOff + prev] === 1)
|
|
189
|
+
break;
|
|
190
|
+
const pc = cellAt(screen, prev, row);
|
|
191
|
+
if (!pc)
|
|
192
|
+
break;
|
|
193
|
+
if (pc.width === 2 /* CellWidth.SpacerTail */) {
|
|
194
|
+
// Step over the spacer to the wide-char head
|
|
195
|
+
if (prev === 0 || noSelect[rowOff + prev - 1] === 1)
|
|
196
|
+
break;
|
|
197
|
+
const head = cellAt(screen, prev - 1, row);
|
|
198
|
+
if (!head || charClass(head.char) !== cls)
|
|
199
|
+
break;
|
|
200
|
+
lo = prev - 1;
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
if (charClass(pc.char) !== cls)
|
|
204
|
+
break;
|
|
205
|
+
lo = prev;
|
|
206
|
+
}
|
|
207
|
+
// Expand right: same logic, skipping spacer tails.
|
|
208
|
+
let hi = c;
|
|
209
|
+
while (hi < width - 1) {
|
|
210
|
+
const next = hi + 1;
|
|
211
|
+
if (noSelect[rowOff + next] === 1)
|
|
212
|
+
break;
|
|
213
|
+
const nc = cellAt(screen, next, row);
|
|
214
|
+
if (!nc)
|
|
215
|
+
break;
|
|
216
|
+
if (nc.width === 2 /* CellWidth.SpacerTail */) {
|
|
217
|
+
// Include the spacer tail in the selection range (it belongs to
|
|
218
|
+
// the wide char at hi) and continue past it.
|
|
219
|
+
hi = next;
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
if (charClass(nc.char) !== cls)
|
|
223
|
+
break;
|
|
224
|
+
hi = next;
|
|
225
|
+
}
|
|
226
|
+
return { lo, hi };
|
|
227
|
+
}
|
|
228
|
+
/** -1 if a < b, 1 if a > b, 0 if equal (reading order: row then col). */
|
|
229
|
+
function comparePoints(a, b) {
|
|
230
|
+
if (a.row !== b.row)
|
|
231
|
+
return a.row < b.row ? -1 : 1;
|
|
232
|
+
if (a.col !== b.col)
|
|
233
|
+
return a.col < b.col ? -1 : 1;
|
|
234
|
+
return 0;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Select the word at (col, row) by scanning the screen buffer for the
|
|
238
|
+
* bounds of the same-class character run. Mutates the selection in place.
|
|
239
|
+
* No-op if the click is out of bounds or lands on a noSelect cell.
|
|
240
|
+
* Sets isDragging=true and anchorSpan so a subsequent drag extends the
|
|
241
|
+
* selection word-by-word (native macOS behavior).
|
|
242
|
+
* @param s - the selection state to mutate.
|
|
243
|
+
* @param screen - the screen buffer to scan for word bounds.
|
|
244
|
+
* @param col - click column.
|
|
245
|
+
* @param row - click row.
|
|
246
|
+
*/
|
|
247
|
+
export function selectWordAt(s, screen, col, row) {
|
|
248
|
+
const b = wordBoundsAt(screen, col, row);
|
|
249
|
+
if (!b)
|
|
250
|
+
return;
|
|
251
|
+
const lo = { col: b.lo, row };
|
|
252
|
+
const hi = { col: b.hi, row };
|
|
253
|
+
s.anchor = lo;
|
|
254
|
+
s.focus = hi;
|
|
255
|
+
s.isDragging = true;
|
|
256
|
+
s.anchorSpan = { lo, hi, kind: 'word' };
|
|
257
|
+
}
|
|
258
|
+
// Printable ASCII minus terminal URL delimiters. Restricting to single-
|
|
259
|
+
// codeunit ASCII keeps cell-count === string-index, so the column-span
|
|
260
|
+
// check below is exact (no wide-char/grapheme drift).
|
|
261
|
+
const URL_BOUNDARY = new Set([...'<>"\'` ']);
|
|
262
|
+
function isUrlChar(c) {
|
|
263
|
+
if (c.length !== 1)
|
|
264
|
+
return false;
|
|
265
|
+
const code = c.charCodeAt(0);
|
|
266
|
+
return code >= 0x21 && code <= 0x7e && !URL_BOUNDARY.has(c);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Scan the screen buffer for a plain-text URL at (col, row). Mirrors the
|
|
270
|
+
* terminal's native Cmd+Click URL detection, which fullscreen mode's mouse
|
|
271
|
+
* tracking intercepts. Called from getHyperlinkAt as a fallback when the
|
|
272
|
+
* cell has no OSC 8 hyperlink.
|
|
273
|
+
* @param screen - the screen buffer to scan.
|
|
274
|
+
* @param col - click column.
|
|
275
|
+
* @param row - click row.
|
|
276
|
+
* @returns the URL at the click position, or undefined when the cell is
|
|
277
|
+
* not part of a plain-text URL.
|
|
278
|
+
*/
|
|
279
|
+
export function findPlainTextUrlAt(screen, col, row) {
|
|
280
|
+
if (row < 0 || row >= screen.height)
|
|
281
|
+
return undefined;
|
|
282
|
+
const width = screen.width;
|
|
283
|
+
const noSelect = screen.noSelect;
|
|
284
|
+
const rowOff = row * width;
|
|
285
|
+
let c = col;
|
|
286
|
+
if (c > 0) {
|
|
287
|
+
const cell = cellAt(screen, c, row);
|
|
288
|
+
if (cell && cell.width === 2 /* CellWidth.SpacerTail */)
|
|
289
|
+
c -= 1;
|
|
290
|
+
}
|
|
291
|
+
if (c < 0 || c >= width || noSelect[rowOff + c] === 1)
|
|
292
|
+
return undefined;
|
|
293
|
+
const startCell = cellAt(screen, c, row);
|
|
294
|
+
if (!startCell || !isUrlChar(startCell.char))
|
|
295
|
+
return undefined;
|
|
296
|
+
// Expand left/right to the bounds of the URL-char run. URLs are ASCII
|
|
297
|
+
// (CellWidth.Narrow, 1 codeunit), so hitting a non-ASCII/wide/spacer
|
|
298
|
+
// cell is a boundary — no need to step over spacers like wordBoundsAt.
|
|
299
|
+
let lo = c;
|
|
300
|
+
while (lo > 0) {
|
|
301
|
+
const prev = lo - 1;
|
|
302
|
+
if (noSelect[rowOff + prev] === 1)
|
|
303
|
+
break;
|
|
304
|
+
const pc = cellAt(screen, prev, row);
|
|
305
|
+
if (!pc || pc.width !== 0 /* CellWidth.Narrow */ || !isUrlChar(pc.char))
|
|
306
|
+
break;
|
|
307
|
+
lo = prev;
|
|
308
|
+
}
|
|
309
|
+
let hi = c;
|
|
310
|
+
while (hi < width - 1) {
|
|
311
|
+
const next = hi + 1;
|
|
312
|
+
if (noSelect[rowOff + next] === 1)
|
|
313
|
+
break;
|
|
314
|
+
const nc = cellAt(screen, next, row);
|
|
315
|
+
if (!nc || nc.width !== 0 /* CellWidth.Narrow */ || !isUrlChar(nc.char))
|
|
316
|
+
break;
|
|
317
|
+
hi = next;
|
|
318
|
+
}
|
|
319
|
+
let token = '';
|
|
320
|
+
for (let i = lo; i <= hi; i++)
|
|
321
|
+
token += cellAt(screen, i, row).char;
|
|
322
|
+
// 1 cell = 1 char across [lo, hi] (ASCII-only run), so string index =
|
|
323
|
+
// column offset. Find the last scheme anchor at or before the click —
|
|
324
|
+
// a run like `https://a.com,https://b.com` has two, and clicking the
|
|
325
|
+
// second should return the second URL, not the greedy match of both.
|
|
326
|
+
const clickIdx = c - lo;
|
|
327
|
+
const schemeRe = /(?:https?|file):\/\//g;
|
|
328
|
+
let urlStart = -1;
|
|
329
|
+
let urlEnd = token.length;
|
|
330
|
+
for (let m; (m = schemeRe.exec(token));) {
|
|
331
|
+
if (m.index > clickIdx) {
|
|
332
|
+
urlEnd = m.index;
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
urlStart = m.index;
|
|
336
|
+
}
|
|
337
|
+
if (urlStart < 0)
|
|
338
|
+
return undefined;
|
|
339
|
+
let url = token.slice(urlStart, urlEnd);
|
|
340
|
+
// Strip trailing sentence punctuation. For closers () ] }, only strip
|
|
341
|
+
// if unbalanced — `/wiki/Foo_(bar)` keeps `)`, `/arr[0]` keeps `]`.
|
|
342
|
+
const OPENER = { ')': '(', ']': '[', '}': '{' };
|
|
343
|
+
while (url.length > 0) {
|
|
344
|
+
const last = url.at(-1);
|
|
345
|
+
if ('.,;:!?'.includes(last)) {
|
|
346
|
+
url = url.slice(0, -1);
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
const opener = OPENER[last];
|
|
350
|
+
if (!opener)
|
|
351
|
+
break;
|
|
352
|
+
let opens = 0;
|
|
353
|
+
let closes = 0;
|
|
354
|
+
for (let i = 0; i < url.length; i++) {
|
|
355
|
+
const ch = url.charAt(i);
|
|
356
|
+
if (ch === opener)
|
|
357
|
+
opens++;
|
|
358
|
+
else if (ch === last)
|
|
359
|
+
closes++;
|
|
360
|
+
}
|
|
361
|
+
if (closes > opens)
|
|
362
|
+
url = url.slice(0, -1);
|
|
363
|
+
else
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
// urlStart already guarantees click >= URL start; check right edge.
|
|
367
|
+
if (clickIdx >= urlStart + url.length)
|
|
368
|
+
return undefined;
|
|
369
|
+
return url;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Select the entire row. Sets isDragging=true and anchorSpan so a
|
|
373
|
+
* subsequent drag extends the selection line-by-line. The anchor/focus
|
|
374
|
+
* span from col 0 to width-1; getSelectedText handles noSelect skipping
|
|
375
|
+
* and trailing-whitespace trimming so the copied text is just the visible
|
|
376
|
+
* line content.
|
|
377
|
+
* @param s - the selection state to mutate.
|
|
378
|
+
* @param screen - the screen buffer providing the row width.
|
|
379
|
+
* @param row - the row to select.
|
|
380
|
+
*/
|
|
381
|
+
export function selectLineAt(s, screen, row) {
|
|
382
|
+
if (row < 0 || row >= screen.height)
|
|
383
|
+
return;
|
|
384
|
+
const lo = { col: 0, row };
|
|
385
|
+
const hi = { col: screen.width - 1, row };
|
|
386
|
+
s.anchor = lo;
|
|
387
|
+
s.focus = hi;
|
|
388
|
+
s.isDragging = true;
|
|
389
|
+
s.anchorSpan = { lo, hi, kind: 'line' };
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Extend a word/line-mode selection to the word/line at (col, row). The
|
|
393
|
+
* anchor span (the original multi-clicked word/line) stays selected; the
|
|
394
|
+
* selection grows from that span to the word/line at the current mouse
|
|
395
|
+
* position. Word mode falls back to the raw cell when the mouse is over a
|
|
396
|
+
* noSelect cell or out of bounds, so dragging into gutters still extends.
|
|
397
|
+
* @param s - the selection state to mutate.
|
|
398
|
+
* @param screen - the screen buffer to scan for word bounds.
|
|
399
|
+
* @param col - current mouse column.
|
|
400
|
+
* @param row - current mouse row.
|
|
401
|
+
*/
|
|
402
|
+
export function extendSelection(s, screen, col, row) {
|
|
403
|
+
if (!s.isDragging || !s.anchorSpan)
|
|
404
|
+
return;
|
|
405
|
+
const span = s.anchorSpan;
|
|
406
|
+
s.virtualFocusRow = undefined;
|
|
407
|
+
let mLo;
|
|
408
|
+
let mHi;
|
|
409
|
+
if (span.kind === 'word') {
|
|
410
|
+
const b = wordBoundsAt(screen, col, row);
|
|
411
|
+
mLo = { col: b ? b.lo : col, row };
|
|
412
|
+
mHi = { col: b ? b.hi : col, row };
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
const r = clamp(row, 0, screen.height - 1);
|
|
416
|
+
mLo = { col: 0, row: r };
|
|
417
|
+
mHi = { col: screen.width - 1, row: r };
|
|
418
|
+
}
|
|
419
|
+
if (comparePoints(mHi, span.lo) < 0) {
|
|
420
|
+
// Mouse target ends before anchor span: extend backward.
|
|
421
|
+
s.anchor = span.hi;
|
|
422
|
+
s.focus = mLo;
|
|
423
|
+
}
|
|
424
|
+
else if (comparePoints(mLo, span.hi) > 0) {
|
|
425
|
+
// Mouse target starts after anchor span: extend forward.
|
|
426
|
+
s.anchor = span.lo;
|
|
427
|
+
s.focus = mHi;
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
// Mouse overlaps the anchor span: just select the anchor span.
|
|
431
|
+
s.anchor = span.lo;
|
|
432
|
+
s.focus = span.hi;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Set focus to (col, row) for keyboard selection extension (shift+arrow).
|
|
437
|
+
* Anchor stays fixed; selection grows or shrinks depending on where focus
|
|
438
|
+
* moves relative to anchor. Drops to char mode (clears anchorSpan) —
|
|
439
|
+
* native macOS does this too: shift+arrow after a double-click word-select
|
|
440
|
+
* extends char-by-char from the word edge, not word-by-word. Scrolled-off
|
|
441
|
+
* accumulators are preserved: keyboard-extending a drag-scrolled selection
|
|
442
|
+
* keeps the off-screen rows. Caller supplies coords already clamped/wrapped.
|
|
443
|
+
* @param s - the selection state to mutate.
|
|
444
|
+
* @param col - focus column.
|
|
445
|
+
* @param row - focus row.
|
|
446
|
+
*/
|
|
447
|
+
export function moveFocus(s, col, row) {
|
|
448
|
+
if (!s.focus)
|
|
449
|
+
return;
|
|
450
|
+
s.anchorSpan = null;
|
|
451
|
+
s.focus = { col, row };
|
|
452
|
+
// Explicit user repositioning — any stale virtual focus (from a prior
|
|
453
|
+
// shiftSelection clamp) no longer reflects intent. Anchor stays put so
|
|
454
|
+
// virtualAnchorRow is still valid for its own round-trip.
|
|
455
|
+
s.virtualFocusRow = undefined;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Shift anchor AND focus by dRow, clamped to [minRow, maxRow]. Used for
|
|
459
|
+
* keyboard scroll (PgUp/PgDn/ctrl+u/d/b/f): the whole selection must track
|
|
460
|
+
* the content, unlike drag-to-scroll where focus stays at the mouse. Any
|
|
461
|
+
* point that hits a clamp bound gets its col reset to the full-width edge —
|
|
462
|
+
* its original content scrolled off-screen and was captured by
|
|
463
|
+
* captureScrolledRows, so the col constraint was already consumed. Keeping
|
|
464
|
+
* it would truncate the NEW content now at that screen row. Clamp col is 0
|
|
465
|
+
* for dRow<0 (scrolling down, top leaves, 'above' semantics) or width-1 for
|
|
466
|
+
* dRow>0 (scrolling up, bottom leaves, 'below' semantics).
|
|
467
|
+
*
|
|
468
|
+
* If both ends overshoot the SAME viewport edge (select text → Home/End/g/G
|
|
469
|
+
* jumps far enough that both are out of view), clear — otherwise both clamp
|
|
470
|
+
* to the same corner cell and a ghost 1-cell highlight lingers, and
|
|
471
|
+
* getSelectedText returns one unrelated char from that corner. Symmetric
|
|
472
|
+
* with shiftSelectionForFollow's top-edge check, but bidirectional: keyboard
|
|
473
|
+
* scroll can jump either way.
|
|
474
|
+
* @param s - the selection state to mutate.
|
|
475
|
+
* @param dRow - signed row offset to shift by.
|
|
476
|
+
* @param minRow - lowest allowed row (viewport top).
|
|
477
|
+
* @param maxRow - highest allowed row (viewport bottom).
|
|
478
|
+
* @param width - screen width, used for the clamp-edge column.
|
|
479
|
+
*/
|
|
480
|
+
export function shiftSelection(s, dRow, minRow, maxRow, width) {
|
|
481
|
+
if (!s.anchor || !s.focus)
|
|
482
|
+
return;
|
|
483
|
+
// Virtual rows track pre-clamp positions so reverse scrolls restore
|
|
484
|
+
// correctly. Without this, clamp(5→0) + shift(+10) = 10, not the true 5,
|
|
485
|
+
// and scrolledOffAbove stays stale (highlight ≠ copy).
|
|
486
|
+
const vAnchor = (s.virtualAnchorRow ?? s.anchor.row) + dRow;
|
|
487
|
+
const vFocus = (s.virtualFocusRow ?? s.focus.row) + dRow;
|
|
488
|
+
if ((vAnchor < minRow && vFocus < minRow) ||
|
|
489
|
+
(vAnchor > maxRow && vFocus > maxRow)) {
|
|
490
|
+
clearSelection(s);
|
|
491
|
+
return;
|
|
492
|
+
}
|
|
493
|
+
// Debt = how far the nearer endpoint overshoots each edge. When debt
|
|
494
|
+
// shrinks (reverse scroll), those rows are back on-screen — pop from
|
|
495
|
+
// the accumulator so getSelectedText doesn't double-count them.
|
|
496
|
+
const oldMin = Math.min(s.virtualAnchorRow ?? s.anchor.row, s.virtualFocusRow ?? s.focus.row);
|
|
497
|
+
const oldMax = Math.max(s.virtualAnchorRow ?? s.anchor.row, s.virtualFocusRow ?? s.focus.row);
|
|
498
|
+
const oldAboveDebt = Math.max(0, minRow - oldMin);
|
|
499
|
+
const oldBelowDebt = Math.max(0, oldMax - maxRow);
|
|
500
|
+
const newAboveDebt = Math.max(0, minRow - Math.min(vAnchor, vFocus));
|
|
501
|
+
const newBelowDebt = Math.max(0, Math.max(vAnchor, vFocus) - maxRow);
|
|
502
|
+
if (newAboveDebt < oldAboveDebt) {
|
|
503
|
+
// scrolledOffAbove pushes newest at the end (closest to on-screen).
|
|
504
|
+
const drop = oldAboveDebt - newAboveDebt;
|
|
505
|
+
s.scrolledOffAbove.length -= drop;
|
|
506
|
+
s.scrolledOffAboveSW.length = s.scrolledOffAbove.length;
|
|
507
|
+
}
|
|
508
|
+
if (newBelowDebt < oldBelowDebt) {
|
|
509
|
+
// scrolledOffBelow unshifts newest at the front (closest to on-screen).
|
|
510
|
+
const drop = oldBelowDebt - newBelowDebt;
|
|
511
|
+
s.scrolledOffBelow.splice(0, drop);
|
|
512
|
+
s.scrolledOffBelowSW.splice(0, drop);
|
|
513
|
+
}
|
|
514
|
+
// Invariant: accumulator length ≤ debt. If the accumulator exceeds debt,
|
|
515
|
+
// the excess is stale — e.g., moveFocus cleared virtualFocusRow without
|
|
516
|
+
// trimming the accumulator, orphaning entries the pop above can never
|
|
517
|
+
// reach because oldDebt was ALREADY 0. Truncate to debt (keeping the
|
|
518
|
+
// newest = closest-to-on-screen entries). Check newDebt (not oldDebt):
|
|
519
|
+
// captureScrolledRows runs BEFORE this shift in the real flow (ink.tsx),
|
|
520
|
+
// so at entry the accumulator is populated but oldDebt is still 0 —
|
|
521
|
+
// that's the normal establish-debt path, not stale.
|
|
522
|
+
if (s.scrolledOffAbove.length > newAboveDebt) {
|
|
523
|
+
// Above pushes newest at END → keep END.
|
|
524
|
+
s.scrolledOffAbove =
|
|
525
|
+
newAboveDebt > 0 ? s.scrolledOffAbove.slice(-newAboveDebt) : [];
|
|
526
|
+
s.scrolledOffAboveSW =
|
|
527
|
+
newAboveDebt > 0 ? s.scrolledOffAboveSW.slice(-newAboveDebt) : [];
|
|
528
|
+
}
|
|
529
|
+
if (s.scrolledOffBelow.length > newBelowDebt) {
|
|
530
|
+
// Below unshifts newest at FRONT → keep FRONT.
|
|
531
|
+
s.scrolledOffBelow = s.scrolledOffBelow.slice(0, newBelowDebt);
|
|
532
|
+
s.scrolledOffBelowSW = s.scrolledOffBelowSW.slice(0, newBelowDebt);
|
|
533
|
+
}
|
|
534
|
+
// Clamp col depends on which EDGE (not dRow direction): virtual tracking
|
|
535
|
+
// means a top-clamped point can stay top-clamped during a dRow>0 reverse
|
|
536
|
+
// shift — dRow-based clampCol would give it the bottom col.
|
|
537
|
+
const shift = (p, vRow) => {
|
|
538
|
+
if (vRow < minRow)
|
|
539
|
+
return { col: 0, row: minRow };
|
|
540
|
+
if (vRow > maxRow)
|
|
541
|
+
return { col: width - 1, row: maxRow };
|
|
542
|
+
return { col: p.col, row: vRow };
|
|
543
|
+
};
|
|
544
|
+
s.anchor = shift(s.anchor, vAnchor);
|
|
545
|
+
s.focus = shift(s.focus, vFocus);
|
|
546
|
+
s.virtualAnchorRow =
|
|
547
|
+
vAnchor < minRow || vAnchor > maxRow ? vAnchor : undefined;
|
|
548
|
+
s.virtualFocusRow = vFocus < minRow || vFocus > maxRow ? vFocus : undefined;
|
|
549
|
+
// anchorSpan not virtual-tracked: it's for word/line extend-on-drag,
|
|
550
|
+
// irrelevant to the keyboard-scroll round-trip case.
|
|
551
|
+
if (s.anchorSpan) {
|
|
552
|
+
const sp = (p) => {
|
|
553
|
+
const r = p.row + dRow;
|
|
554
|
+
if (r < minRow)
|
|
555
|
+
return { col: 0, row: minRow };
|
|
556
|
+
if (r > maxRow)
|
|
557
|
+
return { col: width - 1, row: maxRow };
|
|
558
|
+
return { col: p.col, row: r };
|
|
559
|
+
};
|
|
560
|
+
s.anchorSpan = {
|
|
561
|
+
lo: sp(s.anchorSpan.lo),
|
|
562
|
+
hi: sp(s.anchorSpan.hi),
|
|
563
|
+
kind: s.anchorSpan.kind,
|
|
564
|
+
};
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
/**
|
|
568
|
+
* Shift the anchor row by dRow, clamped to [minRow, maxRow]. Used during
|
|
569
|
+
* drag-to-scroll: when the ScrollBox scrolls by N rows, the content that
|
|
570
|
+
* was under the anchor is now at a different viewport row, so the anchor
|
|
571
|
+
* must follow it. Focus is left unchanged (it stays at the mouse position).
|
|
572
|
+
* @param s - the selection state to mutate.
|
|
573
|
+
* @param dRow - signed row offset to shift by.
|
|
574
|
+
* @param minRow - lowest allowed row (viewport top).
|
|
575
|
+
* @param maxRow - highest allowed row (viewport bottom).
|
|
576
|
+
*/
|
|
577
|
+
export function shiftAnchor(s, dRow, minRow, maxRow) {
|
|
578
|
+
if (!s.anchor)
|
|
579
|
+
return;
|
|
580
|
+
// Same virtual-row tracking as shiftSelection/shiftSelectionForFollow: the
|
|
581
|
+
// drag→follow transition hands off to shiftSelectionForFollow, which reads
|
|
582
|
+
// (virtualAnchorRow ?? anchor.row). Without this, drag-phase clamping
|
|
583
|
+
// leaves virtual undefined → follow initializes from the already-clamped
|
|
584
|
+
// row, under-counting total drift → shiftSelection's invariant-restore
|
|
585
|
+
// prematurely clears valid drag-phase accumulator entries.
|
|
586
|
+
const raw = (s.virtualAnchorRow ?? s.anchor.row) + dRow;
|
|
587
|
+
s.anchor = { col: s.anchor.col, row: clamp(raw, minRow, maxRow) };
|
|
588
|
+
s.virtualAnchorRow = raw < minRow || raw > maxRow ? raw : undefined;
|
|
589
|
+
// anchorSpan not virtual-tracked (word/line extend, irrelevant to
|
|
590
|
+
// keyboard-scroll round-trip) — plain clamp from current row.
|
|
591
|
+
if (s.anchorSpan) {
|
|
592
|
+
const shift = (p) => ({
|
|
593
|
+
col: p.col,
|
|
594
|
+
row: clamp(p.row + dRow, minRow, maxRow),
|
|
595
|
+
});
|
|
596
|
+
s.anchorSpan = {
|
|
597
|
+
lo: shift(s.anchorSpan.lo),
|
|
598
|
+
hi: shift(s.anchorSpan.hi),
|
|
599
|
+
kind: s.anchorSpan.kind,
|
|
600
|
+
};
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Whether both ends of the selection are strictly past the SAME edge of
|
|
605
|
+
* [minRow, maxRow] — the fully-off-screen condition. Rows are read through
|
|
606
|
+
* the virtual (pre-clamp) trackers so a clamped-then-reversed scroll
|
|
607
|
+
* evaluates at the TRUE position. Called by finishSelection's deferred
|
|
608
|
+
* commit-time check (shiftSelectionForFollow keeps its own inline copy).
|
|
609
|
+
*/
|
|
610
|
+
export function selectionFullyOffEdge(s, minRow, maxRow) {
|
|
611
|
+
const rawAnchor = s.virtualAnchorRow ?? s.anchor?.row;
|
|
612
|
+
const rawFocus = s.virtualFocusRow ?? s.focus?.row;
|
|
613
|
+
if (rawAnchor === undefined || rawFocus === undefined)
|
|
614
|
+
return false;
|
|
615
|
+
return ((rawAnchor < minRow && rawFocus < minRow) ||
|
|
616
|
+
(rawAnchor > maxRow && rawFocus > maxRow));
|
|
617
|
+
}
|
|
618
|
+
/**
|
|
619
|
+
* Shift the whole selection (anchor + focus + anchorSpan) by dRow, clamped
|
|
620
|
+
* to [minRow, maxRow]. Used when sticky/auto-follow scrolls the ScrollBox
|
|
621
|
+
* while a selection is active — native terminal behavior is for the
|
|
622
|
+
* highlight to walk up the screen with the text (not stay at the same
|
|
623
|
+
* screen position).
|
|
624
|
+
*
|
|
625
|
+
* Differs from shiftAnchor: during drag-to-scroll, focus tracks the live
|
|
626
|
+
* mouse position and only anchor follows the text. During streaming-follow,
|
|
627
|
+
* the selection is text-anchored at both ends — both must move. The
|
|
628
|
+
* isDragging check in ink.tsx picks which shift to apply.
|
|
629
|
+
*
|
|
630
|
+
* If both ends would shift strictly BELOW minRow or strictly ABOVE maxRow
|
|
631
|
+
* (unclamped), the selected text has scrolled entirely off the viewport —
|
|
632
|
+
* off the top via streaming follow / wheel-down, off the bottom via
|
|
633
|
+
* wheel-up. Clear it — otherwise a single inverted cell lingers at the
|
|
634
|
+
* edge as a ghost (native terminals drop the selection when it leaves
|
|
635
|
+
* scrollback). Landing AT the edge row is
|
|
636
|
+
* still valid: that cell holds the correct text. Returns true if the
|
|
637
|
+
* selection was cleared so the caller can notify React-land subscribers
|
|
638
|
+
* (useHasSelection) — the caller is inside onRender so it can't use
|
|
639
|
+
* notifySelectionChange (recursion), must fire listeners directly.
|
|
640
|
+
*
|
|
641
|
+
* `allowClear` is false for ACTIVE DRAGS: a wheel must never kill the
|
|
642
|
+
* in-flight gesture, so both ends clamp to the edge instead; the clear is
|
|
643
|
+
* deferred to finishSelection's commit-time check via the recorded
|
|
644
|
+
* dragBounds. Released selections keep the immediate clear.
|
|
645
|
+
* @param s - the selection state to mutate.
|
|
646
|
+
* @param dRow - signed row offset to shift by.
|
|
647
|
+
* @param minRow - lowest allowed row (viewport top).
|
|
648
|
+
* @param maxRow - highest allowed row (viewport bottom).
|
|
649
|
+
* @param allowClear - clear when both ends exit the same edge (default true).
|
|
650
|
+
* @returns true when the selection was cleared because it scrolled
|
|
651
|
+
* entirely off the top, false otherwise.
|
|
652
|
+
*/
|
|
653
|
+
export function shiftSelectionForFollow(s, dRow, minRow, maxRow, allowClear = true) {
|
|
654
|
+
if (!s.anchor)
|
|
655
|
+
return false;
|
|
656
|
+
// Mirror shiftSelection: compute raw (unclamped) positions from virtual
|
|
657
|
+
// if set, else current. This handles BOTH the update path (virtual already
|
|
658
|
+
// set from a prior keyboard scroll) AND the initialize path (first clamp
|
|
659
|
+
// happens HERE via follow-scroll, no prior keyboard scroll). Without the
|
|
660
|
+
// initialize path, follow-scroll-first leaves virtual undefined even
|
|
661
|
+
// though the clamp below occurred → a later PgUp computes debt from the
|
|
662
|
+
// clamped row instead of the true pre-clamp row and never pops the
|
|
663
|
+
// accumulator — getSelectedText double-counts the off-screen rows.
|
|
664
|
+
const rawAnchor = (s.virtualAnchorRow ?? s.anchor.row) + dRow;
|
|
665
|
+
const rawFocus = s.focus
|
|
666
|
+
? (s.virtualFocusRow ?? s.focus.row) + dRow
|
|
667
|
+
: undefined;
|
|
668
|
+
// Both ends strictly past the same edge = selection fully scrolled off
|
|
669
|
+
// (top: follow/wheel-down; bottom: wheel-up). Symmetric clear — a
|
|
670
|
+
// clamped-to-edge pair would render as a 1-row ghost highlight. Skipped
|
|
671
|
+
// during an active drag: the gesture survives (clamp below), and the
|
|
672
|
+
// release-time check in finishSelection drops it if still off-edge.
|
|
673
|
+
if (allowClear &&
|
|
674
|
+
rawFocus !== undefined &&
|
|
675
|
+
((rawAnchor < minRow && rawFocus < minRow) ||
|
|
676
|
+
(rawAnchor > maxRow && rawFocus > maxRow))) {
|
|
677
|
+
clearSelection(s);
|
|
678
|
+
return true;
|
|
679
|
+
}
|
|
680
|
+
// Clamp from raw, not p.row+dRow — so a virtual position coming back
|
|
681
|
+
// in-bounds lands at the TRUE position, not the stale clamped one.
|
|
682
|
+
s.anchor = { col: s.anchor.col, row: clamp(rawAnchor, minRow, maxRow) };
|
|
683
|
+
if (s.focus && rawFocus !== undefined) {
|
|
684
|
+
s.focus = { col: s.focus.col, row: clamp(rawFocus, minRow, maxRow) };
|
|
685
|
+
}
|
|
686
|
+
s.virtualAnchorRow =
|
|
687
|
+
rawAnchor < minRow || rawAnchor > maxRow ? rawAnchor : undefined;
|
|
688
|
+
s.virtualFocusRow =
|
|
689
|
+
rawFocus !== undefined && (rawFocus < minRow || rawFocus > maxRow)
|
|
690
|
+
? rawFocus
|
|
691
|
+
: undefined;
|
|
692
|
+
// anchorSpan not virtual-tracked (word/line extend, irrelevant to
|
|
693
|
+
// keyboard-scroll round-trip) — plain clamp from current row.
|
|
694
|
+
if (s.anchorSpan) {
|
|
695
|
+
const shift = (p) => ({
|
|
696
|
+
col: p.col,
|
|
697
|
+
row: clamp(p.row + dRow, minRow, maxRow),
|
|
698
|
+
});
|
|
699
|
+
s.anchorSpan = {
|
|
700
|
+
lo: shift(s.anchorSpan.lo),
|
|
701
|
+
hi: shift(s.anchorSpan.hi),
|
|
702
|
+
kind: s.anchorSpan.kind,
|
|
703
|
+
};
|
|
704
|
+
}
|
|
705
|
+
return false;
|
|
706
|
+
}
|
|
707
|
+
/**
|
|
708
|
+
* Translate selection screen coordinates when a ScrollBox moves without
|
|
709
|
+
* changing height. This is layout movement, not content scrolling: existing
|
|
710
|
+
* off-screen row accumulators remain untouched and both viewport edges move
|
|
711
|
+
* by the same amount. During a drag only the text anchor moves; after release
|
|
712
|
+
* both endpoints move when both are owned by the old viewport.
|
|
713
|
+
* @param s - the selection state to mutate.
|
|
714
|
+
* @param rowDelta - signed screen-row movement from the old viewport to the new one.
|
|
715
|
+
* @param oldTop - viewport top before the layout move.
|
|
716
|
+
* @param oldBottom - viewport bottom before the layout move.
|
|
717
|
+
* @param newTop - viewport top after the layout move.
|
|
718
|
+
* @param newBottom - viewport bottom after the layout move.
|
|
719
|
+
* @returns true when the selection was cleared because it left the viewport.
|
|
720
|
+
*/
|
|
721
|
+
export function shiftSelectionForViewportTranslation(s, rowDelta, oldTop, oldBottom, newTop, newBottom) {
|
|
722
|
+
if (!s.anchor)
|
|
723
|
+
return false;
|
|
724
|
+
if (newTop > newBottom) {
|
|
725
|
+
clearSelection(s);
|
|
726
|
+
return true;
|
|
727
|
+
}
|
|
728
|
+
if (oldTop > oldBottom)
|
|
729
|
+
return false;
|
|
730
|
+
if (rowDelta === 0 ||
|
|
731
|
+
newBottom - oldBottom !== rowDelta ||
|
|
732
|
+
newTop - oldTop !== rowDelta)
|
|
733
|
+
return false;
|
|
734
|
+
const dRow = rowDelta;
|
|
735
|
+
if (!s.focus || s.isDragging) {
|
|
736
|
+
// During a live drag focus is screen-local (the mouse), so only the text
|
|
737
|
+
// anchor follows the moved viewport. A bare press has no focus yet and
|
|
738
|
+
// follows the same anchor-only rule.
|
|
739
|
+
shiftAnchor(s, dRow, newTop, newBottom);
|
|
740
|
+
return false;
|
|
741
|
+
}
|
|
742
|
+
// A released selection that crosses into static chrome belongs partly to
|
|
743
|
+
// that chrome. Keep it fixed rather than teleporting the static endpoint.
|
|
744
|
+
if (s.anchor.row < oldTop ||
|
|
745
|
+
s.anchor.row > oldBottom ||
|
|
746
|
+
s.focus.row < oldTop ||
|
|
747
|
+
s.focus.row > oldBottom) {
|
|
748
|
+
return false;
|
|
749
|
+
}
|
|
750
|
+
const rawAnchor = (s.virtualAnchorRow ?? s.anchor.row) + dRow;
|
|
751
|
+
const rawFocus = (s.virtualFocusRow ?? s.focus.row) + dRow;
|
|
752
|
+
if ((rawAnchor < newTop && rawFocus < newTop) ||
|
|
753
|
+
(rawAnchor > newBottom && rawFocus > newBottom)) {
|
|
754
|
+
clearSelection(s);
|
|
755
|
+
return true;
|
|
756
|
+
}
|
|
757
|
+
s.anchor = { col: s.anchor.col, row: clamp(rawAnchor, newTop, newBottom) };
|
|
758
|
+
s.focus = { col: s.focus.col, row: clamp(rawFocus, newTop, newBottom) };
|
|
759
|
+
s.virtualAnchorRow =
|
|
760
|
+
rawAnchor < newTop || rawAnchor > newBottom ? rawAnchor : undefined;
|
|
761
|
+
s.virtualFocusRow =
|
|
762
|
+
rawFocus < newTop || rawFocus > newBottom ? rawFocus : undefined;
|
|
763
|
+
if (s.anchorSpan) {
|
|
764
|
+
const shift = (p) => ({
|
|
765
|
+
col: p.col,
|
|
766
|
+
row: clamp(p.row + dRow, newTop, newBottom),
|
|
767
|
+
});
|
|
768
|
+
s.anchorSpan = {
|
|
769
|
+
lo: shift(s.anchorSpan.lo),
|
|
770
|
+
hi: shift(s.anchorSpan.hi),
|
|
771
|
+
kind: s.anchorSpan.kind,
|
|
772
|
+
};
|
|
773
|
+
}
|
|
774
|
+
return false;
|
|
775
|
+
}
|
|
776
|
+
/**
|
|
777
|
+
* Translate the selection for a SCROLLBOX VIEWPORT RESIZE: chrome mounting
|
|
778
|
+
* or unmounting around a ScrollBox (the new-messages pill, the sticky
|
|
779
|
+
* prompt header, the working spinner, prompt multi-line growth) moves the
|
|
780
|
+
* viewport edges WITHOUT any scroll delta — no followScroll event fires, so
|
|
781
|
+
* the follow path never runs and the endpoints keep pointing at stale screen
|
|
782
|
+
* rows. The visible failure: the anchor strands BELOW the shrunken viewport
|
|
783
|
+
* (exactly onto the pill text row when the pill mounts), pickFollowForSelection
|
|
784
|
+
* then rejects every subsequent follow event (anchor outside the viewport),
|
|
785
|
+
* wheel tracking silently dies, and copy-on-select spans whatever the
|
|
786
|
+
* highlight happens to cover — including the chrome row itself ("↓ 回到底部"
|
|
787
|
+
* leaking into bottom-to-top copies, and the rows that scrolled under the
|
|
788
|
+
* dead highlight never reaching the scrolledOff accumulators).
|
|
789
|
+
*
|
|
790
|
+
* Each SHRINKING edge contributes a band of rows the chrome covered:
|
|
791
|
+
* - top band [oldTop, newTop-1] (chrome above — sticky prompt header)
|
|
792
|
+
* - bottom band [newBottom+1, oldBottom] (chrome below — pill/spinner)
|
|
793
|
+
* captureScrolledRows preserves the band's text from the PREVIOUS frame's
|
|
794
|
+
* screen (the caller passes frontFrame.screen — the swap hasn't happened)
|
|
795
|
+
* before this frame's paint overwrites it with chrome cells. Growth edges
|
|
796
|
+
* have no band to capture; the shift below just re-widens the clamp.
|
|
797
|
+
*
|
|
798
|
+
* shiftSelection(dRow=0) then re-derives the endpoints: clamps stragglers
|
|
799
|
+
* into the new bounds (virtual-row tracked, so a later re-widening restores
|
|
800
|
+
* the true position and pops the accumulator), pops captured rows whose
|
|
801
|
+
* debt a re-widening returned to the viewport, and clears when BOTH ends
|
|
802
|
+
* land under the same band (the whole selection is under chrome). Unlike
|
|
803
|
+
* the follow path's shiftAnchor/shiftSelectionForFollow split, this uses
|
|
804
|
+
* shiftSelection for BOTH drag and released states: with dRow=0 a live drag
|
|
805
|
+
* focus stays at the mouse unless the chrome covered it too, and
|
|
806
|
+
* shiftSelection is the only shift that pops debt on re-widening — the
|
|
807
|
+
* follow path never re-widens, a resize does (pill unmount).
|
|
808
|
+
*
|
|
809
|
+
* Degenerate bounds are handled explicitly: a collapsed new viewport
|
|
810
|
+
* (innerHeight 0 — chrome taller than the box) clears the selection, an
|
|
811
|
+
* invalid old range is a no-op, and neither ever reaches clamp/shiftSelection
|
|
812
|
+
* with min > max.
|
|
813
|
+
* @param s - the selection state to mutate.
|
|
814
|
+
* @param screen - the PREVIOUS frame's screen buffer providing the band
|
|
815
|
+
* text (and the width for clamp-edge columns).
|
|
816
|
+
* @param oldTop - viewport top before this frame's layout.
|
|
817
|
+
* @param oldBottom - viewport bottom before this frame's layout.
|
|
818
|
+
* @param newTop - viewport top after this frame's layout.
|
|
819
|
+
* @param newBottom - viewport bottom after this frame's layout.
|
|
820
|
+
*/
|
|
821
|
+
export function shiftSelectionForViewportResize(s, screen, oldTop, oldBottom, newTop, newBottom) {
|
|
822
|
+
if (!s.anchor)
|
|
823
|
+
return;
|
|
824
|
+
// Degenerate ranges. A ScrollBox can fully collapse — chrome taller than
|
|
825
|
+
// the box drives innerHeight to 0, making viewportBottom = top-1 — and
|
|
826
|
+
// clamp/shiftSelection would then run with min > max and leave the
|
|
827
|
+
// endpoints pointing at arbitrary rows. A collapsed NEW viewport holds no
|
|
828
|
+
// selectable row at all: every selected row is under chrome, which is
|
|
829
|
+
// exactly shiftSelection's both-ends-off-viewport case → clear. An
|
|
830
|
+
// invalid OLD range means the selection could never have been tracked in
|
|
831
|
+
// it → nothing to translate, leave the state untouched.
|
|
832
|
+
if (newTop > newBottom) {
|
|
833
|
+
clearSelection(s);
|
|
834
|
+
return;
|
|
835
|
+
}
|
|
836
|
+
if (oldTop > oldBottom)
|
|
837
|
+
return;
|
|
838
|
+
// Re-widening edges (chrome unmounted): rows the chrome previously
|
|
839
|
+
// covered return to the viewport. shiftSelection measures debt against
|
|
840
|
+
// the NEW bounds only — correct for keyboard scroll, whose bounds stay
|
|
841
|
+
// fixed across the shift, but a resize CHANGES the bounds, so the
|
|
842
|
+
// returned rows are popped HERE by pure geometry: the g rows closest to
|
|
843
|
+
// the viewport re-enter, i.e. the FRONT of scrolledOffBelow (newest
|
|
844
|
+
// unshifted there) and the END of scrolledOffAbove (newest pushed there).
|
|
845
|
+
if (newBottom > oldBottom && s.scrolledOffBelow.length > 0) {
|
|
846
|
+
const drop = Math.min(newBottom - oldBottom, s.scrolledOffBelow.length);
|
|
847
|
+
s.scrolledOffBelow.splice(0, drop);
|
|
848
|
+
s.scrolledOffBelowSW.splice(0, drop);
|
|
849
|
+
}
|
|
850
|
+
if (newTop < oldTop && s.scrolledOffAbove.length > 0) {
|
|
851
|
+
const drop = Math.min(oldTop - newTop, s.scrolledOffAbove.length);
|
|
852
|
+
const keep = s.scrolledOffAbove.length - drop;
|
|
853
|
+
s.scrolledOffAbove.length = keep;
|
|
854
|
+
s.scrolledOffAboveSW.length = keep;
|
|
855
|
+
}
|
|
856
|
+
if (newTop > oldTop)
|
|
857
|
+
captureScrolledRows(s, screen, oldTop, newTop - 1, 'above');
|
|
858
|
+
if (newBottom < oldBottom)
|
|
859
|
+
captureScrolledRows(s, screen, newBottom + 1, oldBottom, 'below');
|
|
860
|
+
if (!s.focus) {
|
|
861
|
+
// Bare press (no drag motion yet, focus still null): shiftSelection
|
|
862
|
+
// needs both ends — clamp the anchor alone so a chrome mount can't
|
|
863
|
+
// strand it before the first motion sets focus.
|
|
864
|
+
const raw = s.virtualAnchorRow ?? s.anchor.row;
|
|
865
|
+
s.anchor = { col: s.anchor.col, row: clamp(raw, newTop, newBottom) };
|
|
866
|
+
s.virtualAnchorRow = raw < newTop || raw > newBottom ? raw : undefined;
|
|
867
|
+
return;
|
|
868
|
+
}
|
|
869
|
+
shiftSelection(s, 0, newTop, newBottom, screen.width);
|
|
870
|
+
}
|
|
871
|
+
/**
|
|
872
|
+
* Pick which scroll event a selection belongs to when several ScrollBoxes
|
|
873
|
+
* scrolled in the same frame (e.g., the transcript still draining a wheel
|
|
874
|
+
* burst while an overlay panel's box scrolls). The selection follows the
|
|
875
|
+
* INNERMOST viewport containing the anchor: overlay panels render on top
|
|
876
|
+
* of the transcript, so a selection inside the overlap rows belongs to
|
|
877
|
+
* the panel, not the covered transcript beneath it. A selection outside
|
|
878
|
+
* every viewport (footer/prompt, static text) follows nothing — scrolling
|
|
879
|
+
* doesn't move the content under it.
|
|
880
|
+
* @param events - this frame's scroll events (signed deltas).
|
|
881
|
+
* @param anchorRow - the selection anchor's screen row, or null when no
|
|
882
|
+
* selection is active.
|
|
883
|
+
* @returns the event the selection should be translated by, or null.
|
|
884
|
+
*/
|
|
885
|
+
export function pickFollowForSelection(events, anchorRow) {
|
|
886
|
+
if (anchorRow === null)
|
|
887
|
+
return null;
|
|
888
|
+
let best = null;
|
|
889
|
+
let bestHeight = Infinity;
|
|
890
|
+
for (const e of events) {
|
|
891
|
+
if (anchorRow < e.viewportTop || anchorRow > e.viewportBottom)
|
|
892
|
+
continue;
|
|
893
|
+
const height = e.viewportBottom - e.viewportTop;
|
|
894
|
+
if (best === null || height < bestHeight) {
|
|
895
|
+
best = e;
|
|
896
|
+
bestHeight = height;
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
return best;
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* True when a selection is active, meaning both anchor and focus are set.
|
|
903
|
+
* @param s - the selection state to inspect.
|
|
904
|
+
* @returns true when a selection is active.
|
|
905
|
+
*/
|
|
906
|
+
export function hasSelection(s) {
|
|
907
|
+
return s.anchor !== null && s.focus !== null;
|
|
908
|
+
}
|
|
909
|
+
/**
|
|
910
|
+
* Normalized selection bounds: start is always before end in reading order.
|
|
911
|
+
* Returns null if no active selection.
|
|
912
|
+
* @param s - the selection state to inspect.
|
|
913
|
+
* @returns the normalized start/end cells, or null when there is no
|
|
914
|
+
* active selection.
|
|
915
|
+
*/
|
|
916
|
+
export function selectionBounds(s) {
|
|
917
|
+
if (!s.anchor || !s.focus)
|
|
918
|
+
return null;
|
|
919
|
+
return comparePoints(s.anchor, s.focus) <= 0
|
|
920
|
+
? { start: s.anchor, end: s.focus }
|
|
921
|
+
: { start: s.focus, end: s.anchor };
|
|
922
|
+
}
|
|
923
|
+
/**
|
|
924
|
+
* Check if a cell at (col, row) is within the current selection range.
|
|
925
|
+
* Used by the renderer to apply inverse style.
|
|
926
|
+
* @param s - the selection state to inspect.
|
|
927
|
+
* @param col - cell column.
|
|
928
|
+
* @param row - cell row.
|
|
929
|
+
* @returns true when the cell lies inside the selection range.
|
|
930
|
+
*/
|
|
931
|
+
export function isCellSelected(s, col, row) {
|
|
932
|
+
const b = selectionBounds(s);
|
|
933
|
+
if (!b)
|
|
934
|
+
return false;
|
|
935
|
+
const { start, end } = b;
|
|
936
|
+
if (row < start.row || row > end.row)
|
|
937
|
+
return false;
|
|
938
|
+
if (row === start.row && col < start.col)
|
|
939
|
+
return false;
|
|
940
|
+
if (row === end.row && col > end.col)
|
|
941
|
+
return false;
|
|
942
|
+
return true;
|
|
943
|
+
}
|
|
944
|
+
/** Extract text from one screen row. When the next row is a soft-wrap
|
|
945
|
+
* continuation (screen.softWrap[row+1]>0), clamp to that content-end
|
|
946
|
+
* column and skip the trailing trim so the word-separator space survives
|
|
947
|
+
* the join. See Screen.softWrap for why the clamp is necessary. */
|
|
948
|
+
function extractRowText(screen, row, colStart, colEnd) {
|
|
949
|
+
const noSelect = screen.noSelect;
|
|
950
|
+
const rowOff = row * screen.width;
|
|
951
|
+
const contentEnd = row + 1 < screen.height ? screen.softWrap[row + 1] : 0;
|
|
952
|
+
const lastCol = contentEnd > 0 ? Math.min(colEnd, contentEnd - 1) : colEnd;
|
|
953
|
+
let line = '';
|
|
954
|
+
for (let col = colStart; col <= lastCol; col++) {
|
|
955
|
+
// Skip cells marked noSelect (gutters, line numbers, diff sigils).
|
|
956
|
+
// Check before cellAt to avoid the decode cost for excluded cells.
|
|
957
|
+
if (noSelect[rowOff + col] === 1)
|
|
958
|
+
continue;
|
|
959
|
+
const cell = cellAt(screen, col, row);
|
|
960
|
+
if (!cell)
|
|
961
|
+
continue;
|
|
962
|
+
// Skip spacer tails (second half of wide chars) — the head already
|
|
963
|
+
// contains the full grapheme. SpacerHead is a blank at line-end.
|
|
964
|
+
if (cell.width === 2 /* CellWidth.SpacerTail */ ||
|
|
965
|
+
cell.width === 3 /* CellWidth.SpacerHead */) {
|
|
966
|
+
continue;
|
|
967
|
+
}
|
|
968
|
+
line += cell.char;
|
|
969
|
+
}
|
|
970
|
+
return contentEnd > 0 ? line : line.replace(/\s+$/, '');
|
|
971
|
+
}
|
|
972
|
+
/** Accumulator for selected text that merges soft-wrapped rows back
|
|
973
|
+
* into logical lines. push(text, sw) appends a newline before text
|
|
974
|
+
* only when sw=false (i.e. the row starts a new logical line). Rows
|
|
975
|
+
* with sw=true are concatenated onto the previous row. */
|
|
976
|
+
function joinRows(lines, text, sw) {
|
|
977
|
+
if (sw && lines.length > 0) {
|
|
978
|
+
lines[lines.length - 1] += text;
|
|
979
|
+
}
|
|
980
|
+
else {
|
|
981
|
+
lines.push(text);
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
/**
|
|
985
|
+
* Rehash the rows under the highlight and latch `stale` when they changed
|
|
986
|
+
* without a coordinated shift this frame.
|
|
987
|
+
*
|
|
988
|
+
* Copy reads whatever text occupies the highlight's screen coordinates at
|
|
989
|
+
* commit time. When the transcript REPLACES those rows in place while the
|
|
990
|
+
* highlight sits still (streaming output overwriting folded rows, a card
|
|
991
|
+
* collapsing under the anchor), the copied text is whatever moved in —
|
|
992
|
+
* visibly wrong text, not mojibake from a width bug. The follow/resize
|
|
993
|
+
* shifts keep the highlight anchored to text that MOVES; this guard catches
|
|
994
|
+
* the complementary case: stationary coordinates, moving content.
|
|
995
|
+
*
|
|
996
|
+
* Called once per rendered frame (post-render, pre-swap) on the frame the
|
|
997
|
+
* copy would read. The hash covers every visible cell of every covered row
|
|
998
|
+
* (same visibility rules as getSelectedText: noSelect and spacer cells
|
|
999
|
+
* skipped) via the cell's TEXT — `charPool.get(charId)` — not its pool
|
|
1000
|
+
* index, plus the two soft-wrap inputs that decide how those cells are laid
|
|
1001
|
+
* out into lines (the row's own `softWrap[row]`, and the `softWrap[row + 1]`
|
|
1002
|
+
* extractRowText reads as this row's content end). styleId is excluded so
|
|
1003
|
+
* the selection overlay and syntax highlighting themselves cannot trip the
|
|
1004
|
+
* guard.
|
|
1005
|
+
*
|
|
1006
|
+
* Why content and not charId: a charId is an index into a generational
|
|
1007
|
+
* CharPool, not a stable identity. Ink.resetPools() (ink.tsx) swaps in a
|
|
1008
|
+
* fresh CharPool every ~5 minutes and re-interns the front frame through
|
|
1009
|
+
* migrateScreenPools, so the SAME glyph comes back under a different
|
|
1010
|
+
* number. Hashing ids would read that renumbering as "the covered rows
|
|
1011
|
+
* changed" and refuse a perfectly legitimate copy with the stale-content
|
|
1012
|
+
* notice — a false positive on a screen where nothing was replaced. The
|
|
1013
|
+
* pool lookup is an array index plus a 1-2 code-unit hash loop, measured
|
|
1014
|
+
* at ~0.05ms for a full 200x50 selection (~0.14ms at 200x200), i.e. no
|
|
1015
|
+
* worse than hashing the ids themselves.
|
|
1016
|
+
*
|
|
1017
|
+
* The hash is only a PRE-FILTER; the verdict is the copied text. Hashing the
|
|
1018
|
+
* wrap inputs keeps a cheap screen-signature, but those inputs can move while
|
|
1019
|
+
* the bytes a copy would ship stay identical: flipping the next row's wrap bit
|
|
1020
|
+
* from 0 to a value past the selection's last column only toggles
|
|
1021
|
+
* trailing-blank trimming, which is invisible when the selected columns are
|
|
1022
|
+
* already full (measured live: a streaming tail wrote a row far below the
|
|
1023
|
+
* highlight, the wrap bookkeeping moved, and the guard refused a legitimate
|
|
1024
|
+
* copy — the "content under the selection changed" toast with the highlight
|
|
1025
|
+
* still sitting on exactly the right text). So when the hash moves, this
|
|
1026
|
+
* compares `getSelectedText` against the baselined text and latches only when
|
|
1027
|
+
* THE BYTES differ — the same expression the copy itself ships, which makes
|
|
1028
|
+
* the verdict complete (no real replacement is missed) and sound (no
|
|
1029
|
+
* unchanged text is refused). The text is compared, not stored per frame: the
|
|
1030
|
+
* extraction runs on a geometry change (once per drag motion) and on a
|
|
1031
|
+
* suspected change, never on the steady-state frame.
|
|
1032
|
+
*
|
|
1033
|
+
* @param s - the selection state to fingerprint.
|
|
1034
|
+
* @param screen - the frame's screen buffer.
|
|
1035
|
+
* @param coordinated - true when this frame translated the selection
|
|
1036
|
+
* endpoints (follow-shift or viewport resize); a fingerprint change in
|
|
1037
|
+
* such a frame is the expected content scroll, not an overwrite.
|
|
1038
|
+
* @returns true when an uncoordinated change latched `stale` this call.
|
|
1039
|
+
*/
|
|
1040
|
+
export function refreshSelectionFingerprint(s, screen, coordinated) {
|
|
1041
|
+
if (s.stale)
|
|
1042
|
+
return false;
|
|
1043
|
+
const b = selectionBounds(s);
|
|
1044
|
+
if (!b) {
|
|
1045
|
+
s.coveredFingerprint = null;
|
|
1046
|
+
s.coveredText = null;
|
|
1047
|
+
s.coveredGeometry = null;
|
|
1048
|
+
return false;
|
|
1049
|
+
}
|
|
1050
|
+
// Any geometry change re-baselines: drag motion, word/line extension,
|
|
1051
|
+
// keyboard pan, multi-click — the user redefined what is highlighted, so
|
|
1052
|
+
// the next copy legitimately reads the new band's CURRENT text. Only a
|
|
1053
|
+
// stationary highlight can go stale.
|
|
1054
|
+
const geometry = `${b.start.row}:${b.start.col}-${b.end.row}:${b.end.col}`;
|
|
1055
|
+
if (geometry !== s.coveredGeometry) {
|
|
1056
|
+
s.coveredGeometry = geometry;
|
|
1057
|
+
s.coveredFingerprint = null;
|
|
1058
|
+
s.coveredText = null;
|
|
1059
|
+
}
|
|
1060
|
+
const { cells, noSelect, width, height, charPool, softWrap } = screen;
|
|
1061
|
+
let h = 0x811c9dc5;
|
|
1062
|
+
for (let row = b.start.row; row <= b.end.row; row++) {
|
|
1063
|
+
if (row < 0 || row >= height)
|
|
1064
|
+
continue;
|
|
1065
|
+
const rowOff = row * width;
|
|
1066
|
+
// Column bounds mirror getSelectedText exactly: the boundary rows hash
|
|
1067
|
+
// only from start.col / through end.col. Streaming text appended to a
|
|
1068
|
+
// covered row OUTSIDE the selected column range (stable head selected,
|
|
1069
|
+
// live tail still writing) must not latch stale — the copy would not
|
|
1070
|
+
// read those columns anyway.
|
|
1071
|
+
const colStart = row === b.start.row ? b.start.col : 0;
|
|
1072
|
+
const colEnd = row === b.end.row ? b.end.col : width - 1;
|
|
1073
|
+
for (let col = colStart; col <= colEnd; col++) {
|
|
1074
|
+
const ci = (rowOff + col) * 2;
|
|
1075
|
+
// word1's low 2 bits are the cell width; SpacerTail/SpacerHead carry
|
|
1076
|
+
// no text of their own.
|
|
1077
|
+
if ((cells[ci + 1] & 3) >= 2 /* CellWidth.SpacerTail */)
|
|
1078
|
+
continue;
|
|
1079
|
+
if (noSelect[rowOff + col] === 1)
|
|
1080
|
+
continue;
|
|
1081
|
+
// Resolve the id through the pool and hash the actual characters —
|
|
1082
|
+
// the exact string getSelectedText would emit for this cell. Two
|
|
1083
|
+
// pools holding the same glyph hash identically, so a generational
|
|
1084
|
+
// pool swap is invisible here; a different glyph is not.
|
|
1085
|
+
const ch = charPool.get(cells[ci]);
|
|
1086
|
+
for (let k = 0; k < ch.length; k++) {
|
|
1087
|
+
h = Math.imul(h ^ ch.charCodeAt(k), 0x01000193);
|
|
1088
|
+
}
|
|
1089
|
+
}
|
|
1090
|
+
// Row separator + the row's soft-wrap bit: getSelectedText joins a
|
|
1091
|
+
// wrapped row onto the previous line with NO newline (softWrap[row]>0)
|
|
1092
|
+
// but emits a real newline otherwise — identical cells with a flipped
|
|
1093
|
+
// wrap bit produce a different copy, so the fingerprint must see it.
|
|
1094
|
+
h = Math.imul(h ^ 0x9e3779b9 ^ (softWrap[row] > 0 ? 0x51ed270b : 0), 0x85ebca6b);
|
|
1095
|
+
// The row BELOW is an input to THIS row's copy. extractRowText reads
|
|
1096
|
+
// softWrap[row + 1] as this row's content end: > 0 means the row wraps
|
|
1097
|
+
// into the next one, which both clamps the last column to
|
|
1098
|
+
// min(colEnd, contentEnd - 1) and suppresses the trailing-blank trim.
|
|
1099
|
+
// Flipping only the next row's wrap bit therefore rewrites the last
|
|
1100
|
+
// covered line's trailing columns ("A" → "A ") with every
|
|
1101
|
+
// covered CELL unchanged — the guard has to see the wrap, not just the
|
|
1102
|
+
// cells. Hash exactly what extractRowText consumes (0 = not wrapped) so
|
|
1103
|
+
// a contentEnd change that does not move the clamp stays invisible
|
|
1104
|
+
// instead of becoming a false positive.
|
|
1105
|
+
const contentEnd = row + 1 < height ? softWrap[row + 1] : 0;
|
|
1106
|
+
const wrapClamp = contentEnd > 0 ? Math.min(colEnd, contentEnd - 1) + 1 : 0;
|
|
1107
|
+
h = Math.imul(h ^ 0x27d4eb2f ^ wrapClamp, 0x165667b1);
|
|
1108
|
+
}
|
|
1109
|
+
if (s.coveredFingerprint === null) {
|
|
1110
|
+
// First frame observing this selection: baseline, no verdict. The text is
|
|
1111
|
+
// captured here too — it is the ground truth the next hash change is
|
|
1112
|
+
// judged against, and it can only be read while the baselined frame is
|
|
1113
|
+
// still on screen.
|
|
1114
|
+
s.coveredFingerprint = h;
|
|
1115
|
+
s.coveredText = getSelectedText(s, screen);
|
|
1116
|
+
return false;
|
|
1117
|
+
}
|
|
1118
|
+
if (h === s.coveredFingerprint)
|
|
1119
|
+
return false;
|
|
1120
|
+
// The hash moved: decide on the emitted text, not on the hash. A wrap-bit
|
|
1121
|
+
// flip below the selection (or any other term that does not change the
|
|
1122
|
+
// bytes the copy would ship) must not refuse a legitimate copy.
|
|
1123
|
+
const text = getSelectedText(s, screen);
|
|
1124
|
+
if (text === s.coveredText) {
|
|
1125
|
+
// Same bytes, different layout bookkeeping: accept and re-baseline.
|
|
1126
|
+
s.coveredFingerprint = h;
|
|
1127
|
+
return false;
|
|
1128
|
+
}
|
|
1129
|
+
s.coveredFingerprint = h;
|
|
1130
|
+
s.coveredText = text;
|
|
1131
|
+
if (coordinated)
|
|
1132
|
+
return false;
|
|
1133
|
+
s.stale = true;
|
|
1134
|
+
return true;
|
|
1135
|
+
}
|
|
1136
|
+
/**
|
|
1137
|
+
* Extract text from the screen buffer within the selection range.
|
|
1138
|
+
* Rows are joined with newlines unless the screen's softWrap bitmap
|
|
1139
|
+
* marks a row as a word-wrap continuation — those rows are concatenated
|
|
1140
|
+
* onto the previous row so the copied text matches the logical source
|
|
1141
|
+
* line, not the visual wrapped layout. Trailing whitespace on the last
|
|
1142
|
+
* fragment of each logical line is trimmed. Wide-char spacer cells are
|
|
1143
|
+
* skipped. Rows that scrolled out of the viewport during drag-to-scroll
|
|
1144
|
+
* are joined back in from the scrolledOffAbove/Below accumulators along
|
|
1145
|
+
* with their captured softWrap bits.
|
|
1146
|
+
* @param s - the selection state to read.
|
|
1147
|
+
* @param screen - the screen buffer to extract from.
|
|
1148
|
+
* @returns the selected text, or an empty string when no selection is
|
|
1149
|
+
* active.
|
|
1150
|
+
*/
|
|
1151
|
+
export function getSelectedText(s, screen) {
|
|
1152
|
+
const b = selectionBounds(s);
|
|
1153
|
+
if (!b)
|
|
1154
|
+
return '';
|
|
1155
|
+
const { start, end } = b;
|
|
1156
|
+
const sw = screen.softWrap;
|
|
1157
|
+
const lines = [];
|
|
1158
|
+
for (let i = 0; i < s.scrolledOffAbove.length; i++) {
|
|
1159
|
+
joinRows(lines, s.scrolledOffAbove[i], s.scrolledOffAboveSW[i]);
|
|
1160
|
+
}
|
|
1161
|
+
for (let row = start.row; row <= end.row; row++) {
|
|
1162
|
+
const rowStart = row === start.row ? start.col : 0;
|
|
1163
|
+
const rowEnd = row === end.row ? end.col : screen.width - 1;
|
|
1164
|
+
joinRows(lines, extractRowText(screen, row, rowStart, rowEnd), sw[row] > 0);
|
|
1165
|
+
}
|
|
1166
|
+
for (let i = 0; i < s.scrolledOffBelow.length; i++) {
|
|
1167
|
+
joinRows(lines, s.scrolledOffBelow[i], s.scrolledOffBelowSW[i]);
|
|
1168
|
+
}
|
|
1169
|
+
return lines.join('\n');
|
|
1170
|
+
}
|
|
1171
|
+
/**
|
|
1172
|
+
* Capture text from rows about to scroll out of the viewport during
|
|
1173
|
+
* drag-to-scroll, BEFORE scrollBy overwrites them. Only the rows that
|
|
1174
|
+
* intersect the selection are captured, using the selection's col bounds
|
|
1175
|
+
* for the anchor-side boundary row. After capturing the anchor row, the
|
|
1176
|
+
* anchor.col AND anchorSpan cols are reset to the full-width boundary so
|
|
1177
|
+
* subsequent captures and the final getSelectedText don't re-apply a stale
|
|
1178
|
+
* col constraint to content that's no longer under the original anchor.
|
|
1179
|
+
* Both span cols are reset (not just the near side): after a blocked
|
|
1180
|
+
* reversal the drag can flip direction, and extendSelection then reads the
|
|
1181
|
+
* OPPOSITE span side — which would otherwise still hold the original word
|
|
1182
|
+
* boundary and truncate one subsequently-captured row.
|
|
1183
|
+
*
|
|
1184
|
+
* side='above': rows scrolling out the top (dragging down, anchor=start).
|
|
1185
|
+
* side='below': rows scrolling out the bottom (dragging up, anchor=end).
|
|
1186
|
+
* @param s - the selection state to update.
|
|
1187
|
+
* @param screen - the screen buffer to read rows from.
|
|
1188
|
+
* @param firstRow - first viewport row that is about to scroll out.
|
|
1189
|
+
* @param lastRow - last viewport row that is about to scroll out.
|
|
1190
|
+
* @param side - which viewport edge the rows scroll out of.
|
|
1191
|
+
*/
|
|
1192
|
+
export function captureScrolledRows(s, screen, firstRow, lastRow, side, screenRowOffset = 0) {
|
|
1193
|
+
const b = selectionBounds(s);
|
|
1194
|
+
if (!b || firstRow > lastRow)
|
|
1195
|
+
return;
|
|
1196
|
+
const { start, end } = b;
|
|
1197
|
+
// Intersect [firstRow, lastRow] with [start.row, end.row]. Rows outside
|
|
1198
|
+
// the selection aren't captured — they weren't selected.
|
|
1199
|
+
const lo = Math.max(firstRow, start.row);
|
|
1200
|
+
const hi = Math.min(lastRow, end.row);
|
|
1201
|
+
if (lo > hi)
|
|
1202
|
+
return;
|
|
1203
|
+
const width = screen.width;
|
|
1204
|
+
const sw = screen.softWrap;
|
|
1205
|
+
const captured = [];
|
|
1206
|
+
const capturedSW = [];
|
|
1207
|
+
for (let row = lo; row <= hi; row++) {
|
|
1208
|
+
const colStart = row === start.row ? start.col : 0;
|
|
1209
|
+
const colEnd = row === end.row ? end.col : width - 1;
|
|
1210
|
+
const screenRow = row - screenRowOffset;
|
|
1211
|
+
captured.push(extractRowText(screen, screenRow, colStart, colEnd));
|
|
1212
|
+
capturedSW.push(sw[screenRow] > 0);
|
|
1213
|
+
}
|
|
1214
|
+
if (side === 'above') {
|
|
1215
|
+
// Newest rows go at the bottom of the above-accumulator (closest to
|
|
1216
|
+
// the on-screen content in reading order).
|
|
1217
|
+
s.scrolledOffAbove.push(...captured);
|
|
1218
|
+
s.scrolledOffAboveSW.push(...capturedSW);
|
|
1219
|
+
// We just captured the top of the selection. The anchor (=start when
|
|
1220
|
+
// dragging down) is now pointing at content that will scroll out; its
|
|
1221
|
+
// col constraint was applied to the captured row. Reset to col 0 so
|
|
1222
|
+
// the NEXT tick and the final getSelectedText read the full row.
|
|
1223
|
+
if (s.anchor && s.anchor.row === start.row && lo === start.row) {
|
|
1224
|
+
s.anchor = { col: 0, row: s.anchor.row };
|
|
1225
|
+
if (s.anchorSpan) {
|
|
1226
|
+
s.anchorSpan = {
|
|
1227
|
+
kind: s.anchorSpan.kind,
|
|
1228
|
+
lo: { col: 0, row: s.anchorSpan.lo.row },
|
|
1229
|
+
hi: { col: width - 1, row: s.anchorSpan.hi.row },
|
|
1230
|
+
};
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
}
|
|
1234
|
+
else {
|
|
1235
|
+
// Newest rows go at the TOP of the below-accumulator — they're
|
|
1236
|
+
// closest to the on-screen content.
|
|
1237
|
+
s.scrolledOffBelow.unshift(...captured);
|
|
1238
|
+
s.scrolledOffBelowSW.unshift(...capturedSW);
|
|
1239
|
+
if (s.anchor && s.anchor.row === end.row && hi === end.row) {
|
|
1240
|
+
s.anchor = { col: width - 1, row: s.anchor.row };
|
|
1241
|
+
if (s.anchorSpan) {
|
|
1242
|
+
s.anchorSpan = {
|
|
1243
|
+
kind: s.anchorSpan.kind,
|
|
1244
|
+
lo: { col: 0, row: s.anchorSpan.lo.row },
|
|
1245
|
+
hi: { col: width - 1, row: s.anchorSpan.hi.row },
|
|
1246
|
+
};
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
/**
|
|
1252
|
+
* Apply the selection overlay directly to the screen buffer by changing
|
|
1253
|
+
* the style of every cell in the selection range. Called after the
|
|
1254
|
+
* renderer produces the Frame but before the diff — the normal diffEach
|
|
1255
|
+
* then picks up the restyled cells as ordinary changes, so LogUpdate
|
|
1256
|
+
* stays a pure diff engine with no selection awareness.
|
|
1257
|
+
*
|
|
1258
|
+
* Uses a SOLID selection background (theme-provided via StylePool.
|
|
1259
|
+
* setSelectionBg) that REPLACES each cell's bg while PRESERVING its fg —
|
|
1260
|
+
* matches native terminal selection. Previously SGR-7 inverse (swapped
|
|
1261
|
+
* fg/bg per cell), which fragmented badly over syntax-highlighted text:
|
|
1262
|
+
* every distinct fg color became a different bg stripe.
|
|
1263
|
+
*
|
|
1264
|
+
* Uses StylePool caches so on drag the only work per cell is a Map
|
|
1265
|
+
* lookup + packed-int write.
|
|
1266
|
+
* @param screen - the screen buffer to restyle.
|
|
1267
|
+
* @param selection - the selection whose range to highlight.
|
|
1268
|
+
* @param stylePool - the style pool providing the selection background.
|
|
1269
|
+
*/
|
|
1270
|
+
export function applySelectionOverlay(screen, selection, stylePool) {
|
|
1271
|
+
const b = selectionBounds(selection);
|
|
1272
|
+
if (!b)
|
|
1273
|
+
return;
|
|
1274
|
+
const { start, end } = b;
|
|
1275
|
+
const width = screen.width;
|
|
1276
|
+
const noSelect = screen.noSelect;
|
|
1277
|
+
for (let row = start.row; row <= end.row && row < screen.height; row++) {
|
|
1278
|
+
const colStart = row === start.row ? start.col : 0;
|
|
1279
|
+
const colEnd = row === end.row ? Math.min(end.col, width - 1) : width - 1;
|
|
1280
|
+
const rowOff = row * width;
|
|
1281
|
+
for (let col = colStart; col <= colEnd; col++) {
|
|
1282
|
+
const idx = rowOff + col;
|
|
1283
|
+
// Skip noSelect cells — gutters stay visually unchanged so it's
|
|
1284
|
+
// clear they're not part of the copy. Surrounding selectable cells
|
|
1285
|
+
// still highlight so the selection extent remains visible.
|
|
1286
|
+
if (noSelect[idx] === 1)
|
|
1287
|
+
continue;
|
|
1288
|
+
const cell = cellAtIndex(screen, idx);
|
|
1289
|
+
setCellStyleId(screen, col, row, stylePool.withSelectionBg(cell.styleId));
|
|
1290
|
+
}
|
|
1291
|
+
}
|
|
1292
|
+
}
|