@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,1550 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keyboard input parser - converts terminal input to key events
|
|
3
|
+
*
|
|
4
|
+
* Uses the termio tokenizer for escape sequence boundary detection,
|
|
5
|
+
* then interprets sequences as keypresses.
|
|
6
|
+
*/
|
|
7
|
+
import { Buffer } from 'buffer';
|
|
8
|
+
import { PASTE_END, PASTE_START } from './termio/csi.js';
|
|
9
|
+
import { createTokenizer } from './termio/tokenize.js';
|
|
10
|
+
// eslint-disable-next-line no-control-regex
|
|
11
|
+
const META_KEY_CODE_RE = /^(?:\x1b)([a-zA-Z0-9])$/;
|
|
12
|
+
// eslint-disable-next-line no-control-regex
|
|
13
|
+
const FN_KEY_RE =
|
|
14
|
+
// eslint-disable-next-line no-control-regex
|
|
15
|
+
/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/;
|
|
16
|
+
// CSI u (kitty keyboard protocol): ESC [ codepoint [; modifier] u
|
|
17
|
+
// Example: ESC[13;2u = Shift+Enter, ESC[27u = Escape (no modifiers)
|
|
18
|
+
// Modifier is optional - when absent, defaults to 1 (no modifiers)
|
|
19
|
+
// eslint-disable-next-line no-control-regex
|
|
20
|
+
const CSI_U_RE = /^\x1b\[(\d+)(?:;(\d+))?u/;
|
|
21
|
+
// xterm modifyOtherKeys: ESC [ 27 ; modifier ; keycode ~
|
|
22
|
+
// Example: ESC[27;2;13~ = Shift+Enter. Emitted by Ghostty/tmux/xterm when
|
|
23
|
+
// modifyOtherKeys=2 is active or via user keybinds, typically over SSH where
|
|
24
|
+
// TERM sniffing misses Ghostty and we never push Kitty keyboard mode.
|
|
25
|
+
// Note param order is reversed vs CSI u (modifier first, keycode second).
|
|
26
|
+
// eslint-disable-next-line no-control-regex
|
|
27
|
+
const MODIFY_OTHER_KEYS_RE = /^\x1b\[27;(\d+);(\d+)~/;
|
|
28
|
+
// win32-input-mode (ConPTY, DECSET 9001): CSI Vk;Sc;Uc;Kd;Cs;Rc _
|
|
29
|
+
// One record per key event, carrying the full INPUT_RECORD state:
|
|
30
|
+
// Vk = virtual-key code (VK_RETURN=13, VK_ESCAPE=27, VK_UP=38, ...)
|
|
31
|
+
// Sc = scan code (unused — Vk+Uc fully determine the key)
|
|
32
|
+
// Uc = UTF-16 code unit of the produced character (0 for non-printing)
|
|
33
|
+
// Kd = keydown(1)/keyup(0)
|
|
34
|
+
// Cs = dwControlKeyState (0x01/0x02 Alt, 0x04/0x08 Ctrl, 0x10 Shift;
|
|
35
|
+
// also NUMLOCK 0x20 / CAPSLOCK 0x80 / ENHANCED 0x100 — mask before
|
|
36
|
+
// testing modifiers)
|
|
37
|
+
// Rc = repeat count
|
|
38
|
+
// All six fields are optional per spec #4999 and take their KEY_EVENT_RECORD
|
|
39
|
+
// defaults (Vk/Sc/Uc/Kd/Cs=0, Rc=1) when omitted or empty — a reduced 'a'
|
|
40
|
+
// keydown is legitimately `CSI 65;30;97;1_`. This is the only encoding that
|
|
41
|
+
// preserves Enter's Shift/Ctrl bits on Windows (issue #147). Enabled on
|
|
42
|
+
// win32 instead of kitty/modifyOtherKeys.
|
|
43
|
+
// eslint-disable-next-line no-control-regex
|
|
44
|
+
const WIN32_INPUT_RE = /^\x1b\[([\d;]*)_$/;
|
|
45
|
+
const WIN32_INPUT_TAIL_RE = /\[\d*;\d*;\d*;[01](?:;\d*){0,2}_/g;
|
|
46
|
+
const WIN32_INPUT_TAILS_RE = /^(?:\[\d*;\d*;\d*;[01](?:;\d*){0,2}_)+$/;
|
|
47
|
+
// Prefix of a fragmenting SGR mouse report (`[<btn;col;rowM/m`). ConPTY can
|
|
48
|
+
// split one report across multiple stdin reads; when App's 50ms escape timer
|
|
49
|
+
// fires between the fragments, the pieces stop being part of one buffered
|
|
50
|
+
// sequence and would leak into the prompt as visible `[<0;32;5M` garbage
|
|
51
|
+
// (the orphan-tail branch below only matches COMPLETE tails). A prefix that
|
|
52
|
+
// matches this regex (and is not plain `[`-typed text — see the hold logic)
|
|
53
|
+
// is mouse-protocol-shaped and safe to hold for the 50ms grace window.
|
|
54
|
+
// eslint-disable-next-line no-control-regex
|
|
55
|
+
const SGR_MOUSE_PREFIX_RE = /^\[<\d+(?:;\d*){0,2}$/;
|
|
56
|
+
// Complete SGR tail exactly as the orphan branch expects it.
|
|
57
|
+
// eslint-disable-next-line no-control-regex
|
|
58
|
+
const SGR_MOUSE_TAIL_RE = /^\[<\d+;\d+;\d+[Mm]$/;
|
|
59
|
+
// Prefix variant (no $ anchor): matches a complete SGR report at the START
|
|
60
|
+
// of a longer string, for streaming consumption of "report + suffix" tokens
|
|
61
|
+
// (e.g. `;34Mabc` — the terminal batched the tail and the next keystrokes
|
|
62
|
+
// into one read). The $-anchored SGR_MOUSE_TAIL_RE above stays for the
|
|
63
|
+
// "token is exactly one report" path.
|
|
64
|
+
// eslint-disable-next-line no-control-regex
|
|
65
|
+
const SGR_MOUSE_TAIL_PREFIX_RE = /^\[<\d+;\d+;\d+[Mm]/;
|
|
66
|
+
// How long a held SGR mouse prefix waits for its continuation before being
|
|
67
|
+
// discarded. The hold sentinel re-arms App's 50ms flush timer, so the hold
|
|
68
|
+
// faces a discard decision on every parse call — the lifetime is measured
|
|
69
|
+
// from FIRST capture, not "survived this call", or a press split by two
|
|
70
|
+
// quiet flushes (>~100ms of SSH jitter / render stall) is destroyed and its
|
|
71
|
+
// tail leaks into the prompt as text (field-reproduced: `18;34M` typed
|
|
72
|
+
// itself). 1s covers WAN jitter and heavy-render stalls. Digits/semicolons
|
|
73
|
+
// typed during that window are indistinguishable from report fragments;
|
|
74
|
+
// the deadline bounds this ambiguity. It runs on every call so continuous
|
|
75
|
+
// input cannot starve it into a de-facto immortal hold.
|
|
76
|
+
const MOUSE_TAIL_HOLD_GRACE_MS = 1000;
|
|
77
|
+
// dwControlKeyState modifier bits (others — NUMLOCK_ON 0x20, CAPSLOCK_ON
|
|
78
|
+
// 0x80, ENHANCED_KEY 0x100 — are state indicators, not pressed modifiers)
|
|
79
|
+
const WIN32_CS_ALT = 0x01 | 0x02;
|
|
80
|
+
const WIN32_CS_CTRL = 0x04 | 0x08;
|
|
81
|
+
const WIN32_CS_SHIFT = 0x10;
|
|
82
|
+
// Virtual-key codes that produce no input event of their own: the bare
|
|
83
|
+
// modifier keys. Their pressed state rides on the NEXT real key's Cs field,
|
|
84
|
+
// so both their keydown and keyup records are dropped.
|
|
85
|
+
const WIN32_VK_MODIFIER = new Set([16, 17, 18]); // VK_SHIFT, VK_CONTROL, VK_MENU
|
|
86
|
+
// Virtual-key code → key name for non-printing keys. Names match the
|
|
87
|
+
// keyName vocabulary below so input-event's nonAlphanumericKeys filter
|
|
88
|
+
// clears their raw sequence from text input. Printable keys are NOT here —
|
|
89
|
+
// they map through Uc (or Vk for Ctrl+letter, whose Uc is a control code).
|
|
90
|
+
const WIN32_VK_NAMES = {
|
|
91
|
+
8: 'backspace', // VK_BACK
|
|
92
|
+
9: 'tab', // VK_TAB
|
|
93
|
+
13: 'return', // VK_RETURN
|
|
94
|
+
27: 'escape', // VK_ESCAPE
|
|
95
|
+
32: 'space', // VK_SPACE
|
|
96
|
+
33: 'pageup', // VK_PRIOR
|
|
97
|
+
34: 'pagedown', // VK_NEXT
|
|
98
|
+
35: 'end', // VK_END
|
|
99
|
+
36: 'home', // VK_HOME
|
|
100
|
+
37: 'left', // VK_LEFT
|
|
101
|
+
38: 'up', // VK_UP
|
|
102
|
+
39: 'right', // VK_RIGHT
|
|
103
|
+
40: 'down', // VK_DOWN
|
|
104
|
+
45: 'insert', // VK_INSERT
|
|
105
|
+
46: 'delete', // VK_DELETE
|
|
106
|
+
};
|
|
107
|
+
// VK_F1 (112) .. VK_F12 (123)
|
|
108
|
+
for (let i = 0; i < 12; i++)
|
|
109
|
+
WIN32_VK_NAMES[112 + i] = `f${i + 1}`;
|
|
110
|
+
// OEM punctuation virtual-key codes → base character, used to recover
|
|
111
|
+
// Ctrl+<punctuation> combos (Ctrl+] etc.) whose Uc collapses to a control
|
|
112
|
+
// code. US-layout values; other layouts differ, but these combos are
|
|
113
|
+
// rare enough that a best-effort base key beats swallowing the event.
|
|
114
|
+
const WIN32_VK_OEM_CHARS = {
|
|
115
|
+
186: ';', // VK_OEM_1
|
|
116
|
+
187: '=', // VK_OEM_PLUS
|
|
117
|
+
188: ',', // VK_OEM_COMMA
|
|
118
|
+
189: '-', // VK_OEM_MINUS
|
|
119
|
+
190: '.', // VK_OEM_PERIOD
|
|
120
|
+
191: '/', // VK_OEM_2
|
|
121
|
+
192: '`', // VK_OEM_3
|
|
122
|
+
219: '[', // VK_OEM_4
|
|
123
|
+
220: '\\', // VK_OEM_5
|
|
124
|
+
221: ']', // VK_OEM_6
|
|
125
|
+
222: "'", // VK_OEM_7
|
|
126
|
+
226: '\\', // VK_OEM_102
|
|
127
|
+
};
|
|
128
|
+
// -- Terminal response patterns (inbound sequences from the terminal itself) --
|
|
129
|
+
// DECRPM: CSI ? Ps ; Pm $ y — response to DECRQM (request mode)
|
|
130
|
+
// eslint-disable-next-line no-control-regex
|
|
131
|
+
const DECRPM_RE = /^\x1b\[\?(\d+);(\d+)\$y$/;
|
|
132
|
+
// DA1: CSI ? Ps ; ... c — primary device attributes response
|
|
133
|
+
// eslint-disable-next-line no-control-regex
|
|
134
|
+
const DA1_RE = /^\x1b\[\?([\d;]*)c$/;
|
|
135
|
+
// DA2: CSI > Ps ; ... c — secondary device attributes response
|
|
136
|
+
// eslint-disable-next-line no-control-regex
|
|
137
|
+
const DA2_RE = /^\x1b\[>([\d;]*)c$/;
|
|
138
|
+
// Kitty keyboard flags: CSI ? flags u — response to CSI ? u query
|
|
139
|
+
// (private ? marker distinguishes from CSI u key events)
|
|
140
|
+
// eslint-disable-next-line no-control-regex
|
|
141
|
+
const KITTY_FLAGS_RE = /^\x1b\[\?(\d+)u$/;
|
|
142
|
+
// Kitty graphics APC response: ESC_G key=value,...;OK|error ESC\\
|
|
143
|
+
// eslint-disable-next-line no-control-regex
|
|
144
|
+
const KITTY_GRAPHICS_RE = /^\x1b_G([^;]*);([^\x1b]*)\x1b\\$/;
|
|
145
|
+
// DECXCPR cursor position: CSI ? row ; col R
|
|
146
|
+
// The ? marker disambiguates from modified F3 keys (Shift+F3 = CSI 1;2 R,
|
|
147
|
+
// Ctrl+F3 = CSI 1;5 R, etc.) — plain CSI row;col R is genuinely ambiguous.
|
|
148
|
+
// eslint-disable-next-line no-control-regex
|
|
149
|
+
const CURSOR_POSITION_RE = /^\x1b\[\?(\d+);(\d+)R$/;
|
|
150
|
+
// XTWINOPS pixel-size replies: CSI 6;height;width t (cell) and
|
|
151
|
+
// CSI 4;height;width t (text area).
|
|
152
|
+
// eslint-disable-next-line no-control-regex
|
|
153
|
+
const TERMINAL_PIXEL_SIZE_RE = /^\x1b\[([46]);(\d+);(\d+)t$/;
|
|
154
|
+
// OSC response: OSC code ; data (BEL|ST)
|
|
155
|
+
// eslint-disable-next-line no-control-regex
|
|
156
|
+
const OSC_RESPONSE_RE = /^\x1b\](\d+);(.*?)(?:\x07|\x1b\\)$/s;
|
|
157
|
+
// XTVERSION: DCS > | name ST — terminal name/version string (answer to CSI > 0 q).
|
|
158
|
+
// xterm.js replies "xterm.js(X.Y.Z)"; Ghostty, kitty, iTerm2, etc. reply with
|
|
159
|
+
// their own name. Unlike TERM_PROGRAM, this survives SSH since the query/reply
|
|
160
|
+
// goes through the pty, not the environment.
|
|
161
|
+
// eslint-disable-next-line no-control-regex
|
|
162
|
+
const XTVERSION_RE = /^\x1bP>\|(.*?)(?:\x07|\x1b\\)$/s;
|
|
163
|
+
// SGR mouse event: CSI < button ; col ; row M (press) or m (release)
|
|
164
|
+
// Button codes: 64=wheel-up, 65=wheel-down (0x40 | wheel-bit).
|
|
165
|
+
// Button 32=left-drag (0x20 | motion-bit). Plain 0/1/2 = left/mid/right click.
|
|
166
|
+
// eslint-disable-next-line no-control-regex
|
|
167
|
+
const SGR_MOUSE_RE = /^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;
|
|
168
|
+
function createPasteKey(content) {
|
|
169
|
+
return {
|
|
170
|
+
kind: 'key',
|
|
171
|
+
name: '',
|
|
172
|
+
fn: false,
|
|
173
|
+
ctrl: false,
|
|
174
|
+
meta: false,
|
|
175
|
+
shift: false,
|
|
176
|
+
option: false,
|
|
177
|
+
super: false,
|
|
178
|
+
sequence: content,
|
|
179
|
+
raw: content,
|
|
180
|
+
isPasted: true,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/** DECRPM status values (response to DECRQM) */
|
|
184
|
+
export const DECRPM_STATUS = {
|
|
185
|
+
NOT_RECOGNIZED: 0,
|
|
186
|
+
SET: 1,
|
|
187
|
+
RESET: 2,
|
|
188
|
+
PERMANENTLY_SET: 3,
|
|
189
|
+
PERMANENTLY_RESET: 4,
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Try to recognize a sequence token as a terminal response.
|
|
193
|
+
* Returns null if the sequence is not a known response pattern
|
|
194
|
+
* (i.e. it should be treated as a keypress).
|
|
195
|
+
*
|
|
196
|
+
* These patterns are syntactically distinguishable from keyboard input —
|
|
197
|
+
* no physical key produces CSI ? ... c or CSI ? ... $ y, so they can be
|
|
198
|
+
* safely parsed out of the input stream at any time.
|
|
199
|
+
*/
|
|
200
|
+
function parseTerminalResponse(s) {
|
|
201
|
+
// CSI-prefixed responses
|
|
202
|
+
if (s.startsWith('\x1b[')) {
|
|
203
|
+
let m;
|
|
204
|
+
if ((m = DECRPM_RE.exec(s))) {
|
|
205
|
+
return {
|
|
206
|
+
type: 'decrpm',
|
|
207
|
+
mode: parseInt(m[1], 10),
|
|
208
|
+
status: parseInt(m[2], 10),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
if ((m = DA1_RE.exec(s))) {
|
|
212
|
+
return { type: 'da1', params: splitNumericParams(m[1]) };
|
|
213
|
+
}
|
|
214
|
+
if ((m = DA2_RE.exec(s))) {
|
|
215
|
+
return { type: 'da2', params: splitNumericParams(m[1]) };
|
|
216
|
+
}
|
|
217
|
+
if ((m = KITTY_FLAGS_RE.exec(s))) {
|
|
218
|
+
return { type: 'kittyKeyboard', flags: parseInt(m[1], 10) };
|
|
219
|
+
}
|
|
220
|
+
if ((m = CURSOR_POSITION_RE.exec(s))) {
|
|
221
|
+
return {
|
|
222
|
+
type: 'cursorPosition',
|
|
223
|
+
row: parseInt(m[1], 10),
|
|
224
|
+
col: parseInt(m[2], 10),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
if ((m = TERMINAL_PIXEL_SIZE_RE.exec(s))) {
|
|
228
|
+
return {
|
|
229
|
+
type: 'terminalPixelSize',
|
|
230
|
+
scope: m[1] === '6' ? 'cell' : 'window',
|
|
231
|
+
height: parseInt(m[2], 10),
|
|
232
|
+
width: parseInt(m[3], 10),
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
// OSC responses (e.g. OSC 11 ; rgb:... for bg color query)
|
|
238
|
+
if (s.startsWith('\x1b]')) {
|
|
239
|
+
const m = OSC_RESPONSE_RE.exec(s);
|
|
240
|
+
if (m) {
|
|
241
|
+
return { type: 'osc', code: parseInt(m[1], 10), data: m[2] };
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// DCS responses (e.g. XTVERSION: DCS > | name ST)
|
|
245
|
+
if (s.startsWith('\x1bP')) {
|
|
246
|
+
const m = XTVERSION_RE.exec(s);
|
|
247
|
+
if (m) {
|
|
248
|
+
return { type: 'xtversion', name: m[1] };
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (s.startsWith('\x1b_G')) {
|
|
252
|
+
const m = KITTY_GRAPHICS_RE.exec(s);
|
|
253
|
+
if (m) {
|
|
254
|
+
const imageId = m[1]
|
|
255
|
+
.split(',')
|
|
256
|
+
.map(field => field.split('=', 2))
|
|
257
|
+
.find(([key]) => key === 'i')?.[1];
|
|
258
|
+
if (imageId !== undefined && /^\d+$/u.test(imageId)) {
|
|
259
|
+
return {
|
|
260
|
+
type: 'kittyGraphics',
|
|
261
|
+
imageId: parseInt(imageId, 10),
|
|
262
|
+
status: m[2],
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return null;
|
|
268
|
+
}
|
|
269
|
+
function splitNumericParams(params) {
|
|
270
|
+
if (!params)
|
|
271
|
+
return [];
|
|
272
|
+
return params.split(';').map(p => parseInt(p, 10));
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Build a modifier-free text key from a win32 record (used for the
|
|
276
|
+
* Alt+numpad payload on Alt-release). `sequence` defaults to the char —
|
|
277
|
+
* space needs the literal ' ' so input-event lets it through as text.
|
|
278
|
+
*/
|
|
279
|
+
function win32TextKey(raw, name, sequence = name) {
|
|
280
|
+
return {
|
|
281
|
+
kind: 'key',
|
|
282
|
+
name,
|
|
283
|
+
fn: false,
|
|
284
|
+
ctrl: false,
|
|
285
|
+
meta: false,
|
|
286
|
+
shift: false,
|
|
287
|
+
option: false,
|
|
288
|
+
super: false,
|
|
289
|
+
sequence,
|
|
290
|
+
raw,
|
|
291
|
+
isPasted: false,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Translate a win32-input-mode record (CSI Vk;Sc;Uc;Kd;Cs;Rc _) into a
|
|
296
|
+
* ParsedKey, so the rest of the input pipeline sees the same key objects as
|
|
297
|
+
* on VT-protocol terminals (issue #147).
|
|
298
|
+
*
|
|
299
|
+
* @param ctx - surrogate-pair scratch state. Uc is a UTF-16 code unit, so a
|
|
300
|
+
* supplementary-plane character (emoji, CJK ext-B) arrives as two
|
|
301
|
+
* consecutive records; the high half waits in `ctx.high` for its low half.
|
|
302
|
+
* Mutated here, never on the caller's KeyParseState — the caller threads
|
|
303
|
+
* it into the next call's state.
|
|
304
|
+
* @returns `undefined` when `s` is not a win32 record (caller falls through
|
|
305
|
+
* to the VT parsers); `null` for a record that must be swallowed (keyup,
|
|
306
|
+
* bare modifier transition, orphaned surrogate half); otherwise the key
|
|
307
|
+
* plus its repeat count (Rc — ConPTY coalesces held-key repeats into one
|
|
308
|
+
* record).
|
|
309
|
+
*/
|
|
310
|
+
function parseWin32KeyEvent(s, ctx) {
|
|
311
|
+
const m = WIN32_INPUT_RE.exec(s);
|
|
312
|
+
if (!m)
|
|
313
|
+
return undefined;
|
|
314
|
+
const fields = m[1].split(';');
|
|
315
|
+
const num = (i, dflt) => {
|
|
316
|
+
const f = fields[i];
|
|
317
|
+
return f === undefined || f === '' ? dflt : parseInt(f, 10);
|
|
318
|
+
};
|
|
319
|
+
const vk = num(0, 0);
|
|
320
|
+
const uc = num(2, 0);
|
|
321
|
+
const keydown = num(3, 0) === 1;
|
|
322
|
+
const cs = num(4, 0);
|
|
323
|
+
// Rc coalesces auto-repeat; cap it so a corrupt/huge field can't flood the
|
|
324
|
+
// input queue (legitimate bursts arrive as separate records anyway).
|
|
325
|
+
const repeat = Math.max(1, Math.min(num(5, 1) || 1, 64));
|
|
326
|
+
// A line editor acts on keypresses only — keyup carries no meaning and
|
|
327
|
+
// would double every key if dispatched. Checked BEFORE settling a pending
|
|
328
|
+
// surrogate pair: CharToKeyEvents emits down+up per UTF-16 unit, so a
|
|
329
|
+
// supplementary character legitimately streams as high-down, high-up,
|
|
330
|
+
// low-down — a keyup must never clear the held high half.
|
|
331
|
+
if (!keydown) {
|
|
332
|
+
// Exception: Alt+numpad Unicode input (WindowsInbox's
|
|
333
|
+
// Feature_UseNumpadEventsForClipboardInput). The stream is Alt-down,
|
|
334
|
+
// digit records with no text, then a single Alt KEYUP whose Uc carries
|
|
335
|
+
// the composed character — the only payload in the stream. Ordinary
|
|
336
|
+
// keyups also carry Uc, so this is gated strictly on VK_MENU release
|
|
337
|
+
// with a nonzero Uc.
|
|
338
|
+
if (vk !== 18 || uc === 0)
|
|
339
|
+
return null;
|
|
340
|
+
// A supplementary-plane char is synthesized per UTF-16 unit: TWO Alt
|
|
341
|
+
// rounds, high half then low half, each riding its own Alt-up. The
|
|
342
|
+
// pending high waits in ctx.altHigh — a dedicated slot, because the
|
|
343
|
+
// next round's Alt-down/numpad records are keydowns that would settle
|
|
344
|
+
// the regular ctx.high before the low half ever arrives.
|
|
345
|
+
if (uc >= 0xd800 && uc <= 0xdbff) {
|
|
346
|
+
ctx.altHigh = uc;
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
if (uc >= 0xdc00 && uc <= 0xdfff) {
|
|
350
|
+
const high = ctx.altHigh;
|
|
351
|
+
ctx.altHigh = undefined;
|
|
352
|
+
if (high === undefined)
|
|
353
|
+
return null;
|
|
354
|
+
return { key: win32TextKey(s, String.fromCharCode(high, uc)), repeat: 1 };
|
|
355
|
+
}
|
|
356
|
+
// BMP payload: any pending synthesized high is orphaned by this char.
|
|
357
|
+
ctx.altHigh = undefined;
|
|
358
|
+
if (uc === 0x20) {
|
|
359
|
+
return { key: win32TextKey(s, 'space', ' '), repeat: 1 };
|
|
360
|
+
}
|
|
361
|
+
if (uc > 0x20 && !(uc >= 0x7f && uc <= 0x9f)) {
|
|
362
|
+
return { key: win32TextKey(s, String.fromCharCode(uc)), repeat: 1 };
|
|
363
|
+
}
|
|
364
|
+
return null;
|
|
365
|
+
}
|
|
366
|
+
// Every keydown settles a pending pair: a high half followed by anything
|
|
367
|
+
// but its low half is dropped, never combined across keys.
|
|
368
|
+
const highSurrogate = ctx.high;
|
|
369
|
+
ctx.high = undefined;
|
|
370
|
+
// The Alt+numpad pending high survives ONLY the synthesis stream's own
|
|
371
|
+
// filler records: a payload-free VK_MENU transition (the next round's
|
|
372
|
+
// Alt-down), or a payload-free numpad digit while Alt is held (Cs carries
|
|
373
|
+
// an Alt bit). Real Shift/Ctrl transitions and digits pressed without
|
|
374
|
+
// Alt are real input — they settle (drop) the pending high.
|
|
375
|
+
const altHeld = (cs & WIN32_CS_ALT) !== 0;
|
|
376
|
+
const isSynthesisFiller = (vk === 18 && uc === 0) || (vk >= 96 && vk <= 105 && uc === 0 && altHeld);
|
|
377
|
+
if (!isSynthesisFiller) {
|
|
378
|
+
ctx.altHigh = undefined;
|
|
379
|
+
}
|
|
380
|
+
// Bare modifier transitions: their state rides on the next real key's Cs.
|
|
381
|
+
if (WIN32_VK_MODIFIER.has(vk))
|
|
382
|
+
return null;
|
|
383
|
+
const shift = (cs & WIN32_CS_SHIFT) !== 0;
|
|
384
|
+
let ctrl = (cs & WIN32_CS_CTRL) !== 0;
|
|
385
|
+
let meta = (cs & WIN32_CS_ALT) !== 0;
|
|
386
|
+
const base = {
|
|
387
|
+
kind: 'key',
|
|
388
|
+
fn: false,
|
|
389
|
+
ctrl,
|
|
390
|
+
meta,
|
|
391
|
+
shift,
|
|
392
|
+
option: false,
|
|
393
|
+
super: false,
|
|
394
|
+
raw: s,
|
|
395
|
+
isPasted: false,
|
|
396
|
+
};
|
|
397
|
+
// Printable text comes through Uc, already shift/IME-composed by the
|
|
398
|
+
// console host — so it must win over the Vk name table: NumLock-on numpad
|
|
399
|
+
// keys legitimately carry the Ins/Del/Home/... cluster's Vk with the digit
|
|
400
|
+
// in Uc (tcell emits e.g. CSI 45;82;48;1;32;1_ for numpad 0), and only Uc
|
|
401
|
+
// (plus the ENHANCED_KEY bit, which text keys never set) tells them apart.
|
|
402
|
+
// "Printable" excludes C0, DEL and the C1 band (matching Windows
|
|
403
|
+
// Terminal's own codepoint > 0x20 && != 0x7f rule, extended over C1):
|
|
404
|
+
// Ctrl+8 / Ctrl+/ report Uc=0x7F and must reach the Ctrl recovery chain
|
|
405
|
+
// below.
|
|
406
|
+
let char;
|
|
407
|
+
if (uc >= 0xd800 && uc <= 0xdbff) {
|
|
408
|
+
ctx.high = uc;
|
|
409
|
+
return null;
|
|
410
|
+
}
|
|
411
|
+
if (uc >= 0xdc00 && uc <= 0xdfff) {
|
|
412
|
+
// Orphaned low half (no pending high): swallow immediately. Falling
|
|
413
|
+
// through to the Vk table would resurrect it as a named key — a stray
|
|
414
|
+
// CSI 32;57;56832;1;0;1_ must not become a Space.
|
|
415
|
+
if (highSurrogate === undefined)
|
|
416
|
+
return null;
|
|
417
|
+
char = String.fromCharCode(highSurrogate, uc);
|
|
418
|
+
}
|
|
419
|
+
else if (uc > 0x20 && !(uc >= 0x7f && uc <= 0x9f)) {
|
|
420
|
+
char = String.fromCharCode(uc);
|
|
421
|
+
}
|
|
422
|
+
// Space gets its own Vk-independent branch: spec-legal records omit Vk
|
|
423
|
+
// (CSI ;;32;1_) and Unicode-injected input arrives as VK_PACKET (231) —
|
|
424
|
+
// neither reaches the Vk=32 name entry below. Unlike graphic chars,
|
|
425
|
+
// space KEEPS ctrl/meta: Ctrl+Alt+Space is a binding, not AltGr text
|
|
426
|
+
// (input-event maps ctrl+space to ' ').
|
|
427
|
+
if (uc === 0x20) {
|
|
428
|
+
return { key: { ...base, name: 'space', sequence: ' ' }, repeat };
|
|
429
|
+
}
|
|
430
|
+
if (char !== undefined) {
|
|
431
|
+
// AltGr arrives as RightAlt + a synthesized LeftCtrl with the printable
|
|
432
|
+
// char in Uc — that's text input ('@', '€', '\', '|', braces on
|
|
433
|
+
// international layouts), not a Ctrl+Alt binding. Clearing the modifiers
|
|
434
|
+
// is required for the text to be insertable at all (PromptInput rejects
|
|
435
|
+
// input carrying ctrl/meta). Genuine Ctrl+Alt+<printable> bindings are
|
|
436
|
+
// indistinguishable from AltGr by Windows design.
|
|
437
|
+
if (ctrl && meta) {
|
|
438
|
+
ctrl = false;
|
|
439
|
+
meta = false;
|
|
440
|
+
}
|
|
441
|
+
return { key: { ...base, ctrl, meta, name: char, sequence: char }, repeat };
|
|
442
|
+
}
|
|
443
|
+
// Synthesized character records (conhost's SynthesizeKeyEvent: Vk=0,
|
|
444
|
+
// Sc=0, Cs=0) carry their entire payload in Uc — including the control
|
|
445
|
+
// chars that spell the bracketed-paste markers (ESC[200~ / ESC[201~).
|
|
446
|
+
// Map the editing-relevant ones to named keys so the decomposed-paste
|
|
447
|
+
// reassembler below can see the marker characters at all.
|
|
448
|
+
if (vk === 0) {
|
|
449
|
+
if (uc === 27)
|
|
450
|
+
return { key: { ...base, name: 'escape', sequence: s }, repeat };
|
|
451
|
+
if (uc === 13 || uc === 10)
|
|
452
|
+
return { key: { ...base, name: 'return', sequence: s }, repeat };
|
|
453
|
+
if (uc === 9)
|
|
454
|
+
return { key: { ...base, name: 'tab', sequence: s }, repeat };
|
|
455
|
+
if (uc === 8 || uc === 0x7f)
|
|
456
|
+
return { key: { ...base, name: 'backspace', sequence: s }, repeat };
|
|
457
|
+
return null;
|
|
458
|
+
}
|
|
459
|
+
// Non-printing keys by virtual-key code. sequence stays the raw record so
|
|
460
|
+
// input-event clears it via nonAlphanumericKeys ('space' isn't in that
|
|
461
|
+
// list — it needs the literal ' ' as sequence to reach text input).
|
|
462
|
+
const named = WIN32_VK_NAMES[vk];
|
|
463
|
+
if (named) {
|
|
464
|
+
return {
|
|
465
|
+
key: { ...base, name: named, sequence: named === 'space' ? ' ' : s },
|
|
466
|
+
repeat,
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
// Ctrl combos collapse Uc to a control code (Ctrl+C → 3, Ctrl+[ → 27,
|
|
470
|
+
// Ctrl+2 → 0). Recover the base key from Vk so the combination isn't
|
|
471
|
+
// swallowed: Ctrl+[ must stay usable as Escape (legacy VT parity — the
|
|
472
|
+
// \x1b byte), letters map to their name for bindings like Ctrl+C
|
|
473
|
+
// (exitOnCtrlC), punctuation via the OEM table.
|
|
474
|
+
if (ctrl) {
|
|
475
|
+
if (uc === 27) {
|
|
476
|
+
return { key: { ...base, name: 'escape', sequence: s }, repeat };
|
|
477
|
+
}
|
|
478
|
+
const baseChar = vk >= 65 && vk <= 90
|
|
479
|
+
? String.fromCharCode(vk + 32)
|
|
480
|
+
: vk >= 48 && vk <= 57
|
|
481
|
+
? String.fromCharCode(vk)
|
|
482
|
+
: WIN32_VK_OEM_CHARS[vk];
|
|
483
|
+
if (baseChar !== undefined) {
|
|
484
|
+
return { key: { ...base, name: baseChar, sequence: baseChar }, repeat };
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
// No usable payload (unmapped function key, dead key, Uc=0): swallow so
|
|
488
|
+
// the raw record can't leak into the prompt as text.
|
|
489
|
+
return null;
|
|
490
|
+
}
|
|
491
|
+
// Character spellings of CSI 200~ / CSI 201~ as key records: the ESC char
|
|
492
|
+
// arrives as a Vk=27 record (name 'escape'), the rest as text chars.
|
|
493
|
+
const WIN32_PASTE_START_CHARS = ['\x1b', '[', '2', '0', '0', '~'];
|
|
494
|
+
const WIN32_PASTE_END_CHARS = ['\x1b', '[', '2', '0', '1', '~'];
|
|
495
|
+
/**
|
|
496
|
+
* The text equivalent of a translated win32 key for paste purposes: chars
|
|
497
|
+
* map to themselves, named editing keys to their control char. Returns
|
|
498
|
+
* undefined for keys with no text meaning (arrows, F-keys).
|
|
499
|
+
*/
|
|
500
|
+
function win32RecordChar(key) {
|
|
501
|
+
switch (key.name) {
|
|
502
|
+
case 'escape':
|
|
503
|
+
return '\x1b';
|
|
504
|
+
case 'space':
|
|
505
|
+
return ' ';
|
|
506
|
+
case 'tab':
|
|
507
|
+
return '\t';
|
|
508
|
+
case 'return':
|
|
509
|
+
return '\n';
|
|
510
|
+
case 'backspace':
|
|
511
|
+
return '\x7f';
|
|
512
|
+
default:
|
|
513
|
+
// Text keys carry their char as BOTH name and sequence; named keys
|
|
514
|
+
// keep the raw CSI record as sequence. This avoids a UTF-16 length
|
|
515
|
+
// check — a supplementary-plane char (emoji, CJK ext-B) is a
|
|
516
|
+
// length-2 string but still text.
|
|
517
|
+
return key.sequence === key.name ? key.name : undefined;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Feed one translated win32 key through the decomposed-paste matcher.
|
|
522
|
+
* Returns the keys to emit (empty while holding a candidate prefix or
|
|
523
|
+
* collecting paste content).
|
|
524
|
+
*/
|
|
525
|
+
function feedWin32Paste(state, key) {
|
|
526
|
+
const pattern = state.active ? WIN32_PASTE_END_CHARS : WIN32_PASTE_START_CHARS;
|
|
527
|
+
// Marker chars never carry Ctrl/Alt in the synthesized stream; requiring
|
|
528
|
+
// this keeps a user's real Ctrl+[ from starting a phantom paste. Shift is
|
|
529
|
+
// allowed — '~' legitimately arrives with it.
|
|
530
|
+
const ch = key.ctrl || key.meta ? undefined : win32RecordChar(key);
|
|
531
|
+
if (ch !== undefined && ch === pattern[state.matched]) {
|
|
532
|
+
state.held.push(key);
|
|
533
|
+
state.matched++;
|
|
534
|
+
if (state.matched === pattern.length) {
|
|
535
|
+
state.matched = 0;
|
|
536
|
+
state.held = [];
|
|
537
|
+
if (!state.active) {
|
|
538
|
+
state.active = true;
|
|
539
|
+
state.buffer = '';
|
|
540
|
+
return [];
|
|
541
|
+
}
|
|
542
|
+
// End marker complete: the whole paste as a single event.
|
|
543
|
+
const paste = createPasteKey(state.buffer);
|
|
544
|
+
state.active = false;
|
|
545
|
+
state.buffer = '';
|
|
546
|
+
return [paste];
|
|
547
|
+
}
|
|
548
|
+
return [];
|
|
549
|
+
}
|
|
550
|
+
// Mismatch: release whatever prefix was held, then re-evaluate the
|
|
551
|
+
// current key from a clean match position (it may itself start a marker,
|
|
552
|
+
// e.g. ESC ESC [ 2 0 1 ~).
|
|
553
|
+
if (state.matched > 0) {
|
|
554
|
+
const held = state.held;
|
|
555
|
+
state.held = [];
|
|
556
|
+
state.matched = 0;
|
|
557
|
+
if (state.active) {
|
|
558
|
+
for (const k of held)
|
|
559
|
+
state.buffer += win32RecordChar(k) ?? '';
|
|
560
|
+
return feedWin32Paste(state, key);
|
|
561
|
+
}
|
|
562
|
+
return [...held, ...feedWin32Paste(state, key)];
|
|
563
|
+
}
|
|
564
|
+
if (state.active) {
|
|
565
|
+
state.buffer += win32RecordChar(key) ?? '';
|
|
566
|
+
return [];
|
|
567
|
+
}
|
|
568
|
+
return [key];
|
|
569
|
+
}
|
|
570
|
+
function synthesizedWin32Char(key) {
|
|
571
|
+
const match = WIN32_INPUT_RE.exec(key.raw ?? '');
|
|
572
|
+
if (!match)
|
|
573
|
+
return undefined;
|
|
574
|
+
const fields = match[1].split(';');
|
|
575
|
+
const num = (index, dflt) => {
|
|
576
|
+
const field = fields[index];
|
|
577
|
+
return field === undefined || field === '' ? dflt : parseInt(field, 10);
|
|
578
|
+
};
|
|
579
|
+
if (num(0, 0) !== 0 || num(1, 0) !== 0 || num(3, 0) !== 1 || num(4, 0) !== 0) {
|
|
580
|
+
return undefined;
|
|
581
|
+
}
|
|
582
|
+
return win32RecordChar(key);
|
|
583
|
+
}
|
|
584
|
+
function parseReassembledWin32Protocol(sequence) {
|
|
585
|
+
const response = parseTerminalResponse(sequence);
|
|
586
|
+
if (response)
|
|
587
|
+
return { kind: 'response', sequence, response };
|
|
588
|
+
const mouse = parseMouseEvent(sequence) ?? parseX10MouseEvent(sequence);
|
|
589
|
+
if (mouse)
|
|
590
|
+
return mouse;
|
|
591
|
+
if (SGR_MOUSE_RE.test(sequence) || (sequence.length === 6 && sequence.startsWith('\x1b[M'))) {
|
|
592
|
+
return parseKeypress(sequence);
|
|
593
|
+
}
|
|
594
|
+
return null;
|
|
595
|
+
}
|
|
596
|
+
function feedWin32Protocol(state, key) {
|
|
597
|
+
const ch = synthesizedWin32Char(key);
|
|
598
|
+
if (state.held.length === 0) {
|
|
599
|
+
if (ch !== '\x1b')
|
|
600
|
+
return [key];
|
|
601
|
+
state.held.push(key);
|
|
602
|
+
state.sequence = ch;
|
|
603
|
+
return [];
|
|
604
|
+
}
|
|
605
|
+
if (ch === undefined) {
|
|
606
|
+
const held = state.held;
|
|
607
|
+
state.held = [];
|
|
608
|
+
state.sequence = '';
|
|
609
|
+
return [...held, ...feedWin32Protocol(state, key)];
|
|
610
|
+
}
|
|
611
|
+
state.held.push(key);
|
|
612
|
+
state.sequence += ch;
|
|
613
|
+
const sequence = state.sequence;
|
|
614
|
+
if (sequence === '\x1b' || sequence === '\x1b[')
|
|
615
|
+
return [];
|
|
616
|
+
if (!sequence.startsWith('\x1b[') || sequence.length > 64) {
|
|
617
|
+
const held = state.held;
|
|
618
|
+
state.held = [];
|
|
619
|
+
state.sequence = '';
|
|
620
|
+
return held;
|
|
621
|
+
}
|
|
622
|
+
if (sequence.startsWith('\x1b[M')) {
|
|
623
|
+
if (sequence.length < 6)
|
|
624
|
+
return [];
|
|
625
|
+
const held = state.held;
|
|
626
|
+
state.held = [];
|
|
627
|
+
state.sequence = '';
|
|
628
|
+
const parsed = sequence.length === 6
|
|
629
|
+
? parseReassembledWin32Protocol(sequence)
|
|
630
|
+
: null;
|
|
631
|
+
return parsed ? [parsed] : held;
|
|
632
|
+
}
|
|
633
|
+
const code = ch.charCodeAt(0);
|
|
634
|
+
if ((code >= 0x20 && code <= 0x3f))
|
|
635
|
+
return [];
|
|
636
|
+
if (code >= 0x40 && code <= 0x7e) {
|
|
637
|
+
const held = state.held;
|
|
638
|
+
state.held = [];
|
|
639
|
+
state.sequence = '';
|
|
640
|
+
const parsed = parseReassembledWin32Protocol(sequence);
|
|
641
|
+
return parsed ? [parsed] : held;
|
|
642
|
+
}
|
|
643
|
+
const held = state.held;
|
|
644
|
+
state.held = [];
|
|
645
|
+
state.sequence = '';
|
|
646
|
+
return held;
|
|
647
|
+
}
|
|
648
|
+
function feedWin32Input(pasteState, protocolState, key) {
|
|
649
|
+
const inputs = [];
|
|
650
|
+
for (const pasteKey of feedWin32Paste(pasteState, key)) {
|
|
651
|
+
inputs.push(...feedWin32Protocol(protocolState, pasteKey));
|
|
652
|
+
}
|
|
653
|
+
return inputs;
|
|
654
|
+
}
|
|
655
|
+
/** Initial `KeyParseState` for a fresh parser. */
|
|
656
|
+
export const INITIAL_STATE = {
|
|
657
|
+
mode: 'NORMAL',
|
|
658
|
+
incomplete: '',
|
|
659
|
+
pasteBuffer: '',
|
|
660
|
+
};
|
|
661
|
+
function inputToString(input) {
|
|
662
|
+
if (Buffer.isBuffer(input)) {
|
|
663
|
+
if (input[0] > 127 && input[1] === undefined) {
|
|
664
|
+
;
|
|
665
|
+
input[0] -= 128;
|
|
666
|
+
return '\x1b' + String(input);
|
|
667
|
+
}
|
|
668
|
+
else {
|
|
669
|
+
return String(input);
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
else if (input !== undefined && typeof input !== 'string') {
|
|
673
|
+
return String(input);
|
|
674
|
+
}
|
|
675
|
+
else if (!input) {
|
|
676
|
+
return '';
|
|
677
|
+
}
|
|
678
|
+
else {
|
|
679
|
+
return input;
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* Tokenize and parse a chunk of terminal input into parsed keys, mouse
|
|
684
|
+
* events, and terminal responses, maintaining paste-mode state.
|
|
685
|
+
* @param prevState - the state returned by the previous call, or INITIAL_STATE.
|
|
686
|
+
* @param input - the input chunk; null flushes the tokenizer's pending input.
|
|
687
|
+
* @returns the parsed inputs plus the state to pass to the next call.
|
|
688
|
+
*/
|
|
689
|
+
export function parseMultipleKeypresses(prevState, input = '') {
|
|
690
|
+
const isFlush = input === null;
|
|
691
|
+
const inputString = isFlush ? '' : inputToString(input);
|
|
692
|
+
// Get or create tokenizer
|
|
693
|
+
const tokenizer = prevState._tokenizer ?? createTokenizer({
|
|
694
|
+
x10Mouse: true,
|
|
695
|
+
splitInputControls: true,
|
|
696
|
+
});
|
|
697
|
+
// Tokenize the input
|
|
698
|
+
const tokens = isFlush ? tokenizer.flush() : tokenizer.feed(inputString);
|
|
699
|
+
// Convert tokens to parsed keys, handling paste mode
|
|
700
|
+
const keys = [];
|
|
701
|
+
let inPaste = prevState.mode === 'IN_PASTE';
|
|
702
|
+
let pasteBuffer = prevState.pasteBuffer;
|
|
703
|
+
// Surrogate-pair scratch for win32-input-mode records. Threaded through a
|
|
704
|
+
// local object so prevState is never mutated — App.tsx seeds the parser
|
|
705
|
+
// with the shared INITIAL_STATE singleton, and a pending high surrogate
|
|
706
|
+
// leaking into it would survive into fresh parser instances.
|
|
707
|
+
const win32Ctx = {
|
|
708
|
+
high: prevState.win32HighSurrogate,
|
|
709
|
+
altHigh: prevState.win32AltHighSurrogate,
|
|
710
|
+
};
|
|
711
|
+
// Decomposed-paste matcher state rides on a shared mutable object across
|
|
712
|
+
// calls (like _tokenizer). Fresh instances never touch INITIAL_STATE —
|
|
713
|
+
// the field stays undefined there and the object is created on demand.
|
|
714
|
+
const win32Paste = prevState.win32Paste ?? {
|
|
715
|
+
active: false,
|
|
716
|
+
matched: 0,
|
|
717
|
+
held: [],
|
|
718
|
+
buffer: '',
|
|
719
|
+
};
|
|
720
|
+
const win32Protocol = prevState.win32Protocol ?? {
|
|
721
|
+
held: [],
|
|
722
|
+
sequence: '',
|
|
723
|
+
};
|
|
724
|
+
// Pending fragmented SGR mouse prefix (see KeyParseState.mouseTailHold).
|
|
725
|
+
let mouseTailHold = prevState.mouseTailHold;
|
|
726
|
+
// First-capture timestamp of the current hold — the discard is time-based
|
|
727
|
+
// (MOUSE_TAIL_HOLD_GRACE_MS), not per-call: the hold sentinel re-arms
|
|
728
|
+
// App's 50ms flush timer, so a per-call flag would still let the SECOND
|
|
729
|
+
// quiet flush kill a press split by >~100ms (observed over SSH).
|
|
730
|
+
let mouseTailHoldAt = prevState.mouseTailHoldAt;
|
|
731
|
+
// Hard deadline, checked at the top of EVERY call — not only on flush.
|
|
732
|
+
// Continuous input keeps cancelling and re-arming App's 50ms flush timer,
|
|
733
|
+
// so a flush-only check can starve while the user types: a hold past its
|
|
734
|
+
// grace would then still merge a late `;34M` (or plain digits) into a
|
|
735
|
+
// phantom report.
|
|
736
|
+
if (mouseTailHold !== undefined &&
|
|
737
|
+
Date.now() - (mouseTailHoldAt ?? 0) > MOUSE_TAIL_HOLD_GRACE_MS) {
|
|
738
|
+
mouseTailHold = undefined;
|
|
739
|
+
mouseTailHoldAt = undefined;
|
|
740
|
+
}
|
|
741
|
+
// Mutable token queue: a text token that starts with the completion of
|
|
742
|
+
// the CURRENT hold but carries trailing bytes is split in-place — the
|
|
743
|
+
// completion tail is consumed now, the suffix is pushed back for the
|
|
744
|
+
// next iteration (it may itself be another protocol prefix, a win32
|
|
745
|
+
// tail, or ordinary typing). This avoids both re-feeding the tokenizer
|
|
746
|
+
// with already-tokenized bytes AND the stale-hold pre-expansion bug
|
|
747
|
+
// (a response/CSI/paste earlier in the same batch may have cleared the
|
|
748
|
+
// hold before the tail-shaped text token is reached).
|
|
749
|
+
const tokenQueue = [...tokens];
|
|
750
|
+
for (let qi = 0; qi < tokenQueue.length; qi++) {
|
|
751
|
+
const token = tokenQueue[qi];
|
|
752
|
+
if (token.type === 'sequence') {
|
|
753
|
+
if (token.value === PASTE_START) {
|
|
754
|
+
inPaste = true;
|
|
755
|
+
pasteBuffer = '';
|
|
756
|
+
// Bracketed paste is a terminal-controlled mode: report bytes are
|
|
757
|
+
// contiguous on the wire, so a held SGR prefix's report is dead
|
|
758
|
+
// once paste starts. Discard it — a late `;34M` arriving after the
|
|
759
|
+
// paste must not merge into a phantom press.
|
|
760
|
+
mouseTailHold = undefined;
|
|
761
|
+
mouseTailHoldAt = undefined;
|
|
762
|
+
}
|
|
763
|
+
else if (token.value === PASTE_END) {
|
|
764
|
+
// Always emit a paste key, even for empty pastes. This allows
|
|
765
|
+
// downstream handlers to detect empty pastes (e.g., for clipboard
|
|
766
|
+
// image handling on macOS). The paste content may be empty string.
|
|
767
|
+
keys.push(createPasteKey(pasteBuffer));
|
|
768
|
+
inPaste = false;
|
|
769
|
+
pasteBuffer = '';
|
|
770
|
+
// Paste end is a terminal protocol boundary too — a held SGR prefix
|
|
771
|
+
// from before the paste cannot complete now.
|
|
772
|
+
mouseTailHold = undefined;
|
|
773
|
+
mouseTailHoldAt = undefined;
|
|
774
|
+
}
|
|
775
|
+
else if (inPaste) {
|
|
776
|
+
// Sequences inside paste are treated as literal text
|
|
777
|
+
pasteBuffer += token.value;
|
|
778
|
+
}
|
|
779
|
+
else {
|
|
780
|
+
const win32 = parseWin32KeyEvent(token.value, win32Ctx);
|
|
781
|
+
if (win32 !== undefined) {
|
|
782
|
+
// A fresh protocol record proves a held SGR prefix's report died:
|
|
783
|
+
// report bytes are contiguous on the wire, so nothing may
|
|
784
|
+
// interleave between a report's fragments.
|
|
785
|
+
mouseTailHold = undefined;
|
|
786
|
+
mouseTailHoldAt = undefined;
|
|
787
|
+
// win32-input-mode record. null means a swallowed event (keyup,
|
|
788
|
+
// bare modifier, orphaned surrogate) — the sequence is consumed
|
|
789
|
+
// either way and never reaches the VT keypress parser.
|
|
790
|
+
if (win32 !== null) {
|
|
791
|
+
// Keys pass through the decomposed-paste matcher: on classic
|
|
792
|
+
// conhost the bracketed-paste markers themselves arrive as key
|
|
793
|
+
// records and must be reassembled before dispatch.
|
|
794
|
+
for (let i = 0; i < win32.repeat; i++) {
|
|
795
|
+
keys.push(...feedWin32Input(win32Paste, win32Protocol, win32.key));
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
else {
|
|
800
|
+
const response = parseTerminalResponse(token.value);
|
|
801
|
+
if (response) {
|
|
802
|
+
// Terminal reply (DECRPM, DA, …) — same dead-report proof.
|
|
803
|
+
mouseTailHold = undefined;
|
|
804
|
+
mouseTailHoldAt = undefined;
|
|
805
|
+
keys.push({ kind: 'response', sequence: token.value, response });
|
|
806
|
+
}
|
|
807
|
+
else {
|
|
808
|
+
// SGR first (1006); X10 (legacy 1000/1002 without SGR) as the
|
|
809
|
+
// compatibility fallback for clicks/drags. Wheel falls through
|
|
810
|
+
// to parseKeypress, which turns it into a wheel key WITH the
|
|
811
|
+
// pointer coordinates for position-based routing.
|
|
812
|
+
const mouse = parseMouseEvent(token.value) ??
|
|
813
|
+
parseX10MouseEvent(token.value);
|
|
814
|
+
if (mouse) {
|
|
815
|
+
// A complete report arrived — any held prefix belongs to an
|
|
816
|
+
// older, dead report. Discard it BEFORE it can merge the next
|
|
817
|
+
// fragment into a phantom event.
|
|
818
|
+
mouseTailHold = undefined;
|
|
819
|
+
mouseTailHoldAt = undefined;
|
|
820
|
+
keys.push(mouse);
|
|
821
|
+
}
|
|
822
|
+
else if (SGR_MOUSE_PREFIX_RE.test(token.value.replace(/^\x1b/, ''))) {
|
|
823
|
+
// Flush-truncated SGR mouse report: the tokenizer's flush
|
|
824
|
+
// emitted the buffered prefix (ESC still attached) as a
|
|
825
|
+
// sequence token. It is protocol bytes mid-report, not a key —
|
|
826
|
+
// strip the ESC, hold for the continuation (the text-token
|
|
827
|
+
// branch above completes it), and never let it fall through
|
|
828
|
+
// to parseKeypress, where it would leak into the prompt.
|
|
829
|
+
// A fresh prefix REPLACES any stale hold instead of appending:
|
|
830
|
+
// the new report's arrival proves the old one's tail never
|
|
831
|
+
// came (`[<0;18` + `[<64;…` concatenated parses as garbage).
|
|
832
|
+
mouseTailHold = token.value.replace(/^\x1b/, '');
|
|
833
|
+
mouseTailHoldAt = Date.now();
|
|
834
|
+
}
|
|
835
|
+
else {
|
|
836
|
+
// Ordinary key sequence (arrows, function keys, …) — still an
|
|
837
|
+
// ESC protocol start, so a held prefix's report is dead.
|
|
838
|
+
mouseTailHold = undefined;
|
|
839
|
+
mouseTailHoldAt = undefined;
|
|
840
|
+
keys.push(parseKeypress(token.value));
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
else if (token.type === 'text') {
|
|
847
|
+
if (inPaste) {
|
|
848
|
+
pasteBuffer += token.value;
|
|
849
|
+
}
|
|
850
|
+
else if (WIN32_INPUT_TAILS_RE.test(token.value)) {
|
|
851
|
+
// Protocol bytes — a live SGR mouse report cannot contain them, so
|
|
852
|
+
// a held prefix's report is dead. Discard before recovering.
|
|
853
|
+
mouseTailHold = undefined;
|
|
854
|
+
mouseTailHoldAt = undefined;
|
|
855
|
+
// A delayed win32-input-mode continuation can arrive after App's
|
|
856
|
+
// escape timer has already flushed its ESC prefix. Recover complete
|
|
857
|
+
// record tails so their protocol bytes do not leak into the prompt.
|
|
858
|
+
for (const tail of token.value.match(WIN32_INPUT_TAIL_RE) ?? []) {
|
|
859
|
+
const win32 = parseWin32KeyEvent('\x1b' + tail, win32Ctx);
|
|
860
|
+
if (win32 !== undefined && win32 !== null) {
|
|
861
|
+
for (let i = 0; i < win32.repeat; i++) {
|
|
862
|
+
keys.push(...feedWin32Input(win32Paste, win32Protocol, win32.key));
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
else if (SGR_MOUSE_TAIL_RE.test(token.value) ||
|
|
868
|
+
/^\[M[\x60-\x7f][\x20-\uffff]{2}$/.test(token.value)) {
|
|
869
|
+
// Standalone COMPLETE orphan SGR/X10 mouse tail (fullscreen only —
|
|
870
|
+
// mouse tracking is off otherwise). A heavy render blocked the event
|
|
871
|
+
// loop past App's 50ms flush timer, so the buffered ESC was flushed
|
|
872
|
+
// as a lone Escape and the continuation `[<btn;col;rowM` arrived as
|
|
873
|
+
// text. Re-synthesize with the ESC prefix so the scroll event still
|
|
874
|
+
// fires instead of leaking into the prompt. The spurious Escape is
|
|
875
|
+
// gone; App.tsx's readableLength check prevents it. The X10 Cb slot
|
|
876
|
+
// is narrowed to the wheel range [\x60-\x7f] (0x40|modifiers + 32) —
|
|
877
|
+
// a full [\x20-] range would match typed input like `[MAX]` batched
|
|
878
|
+
// into one read and silently drop it as a phantom click.
|
|
879
|
+
// Any older hold belongs to a DIFFERENT, dead report: a complete
|
|
880
|
+
// report's arrival proves its tail never came. Discard the stale
|
|
881
|
+
// hold and resynthesize this tail cleanly — concatenating them
|
|
882
|
+
// (`ESC + hold + complete tail`) parses as garbage and leaks the
|
|
883
|
+
// protocol bytes into the prompt as an ordinary key.
|
|
884
|
+
mouseTailHold = undefined;
|
|
885
|
+
mouseTailHoldAt = undefined;
|
|
886
|
+
const resynthesized = '\x1b' + token.value;
|
|
887
|
+
const mouse = parseMouseEvent(resynthesized);
|
|
888
|
+
keys.push(mouse ?? parseKeypress(resynthesized));
|
|
889
|
+
}
|
|
890
|
+
else if (mouseTailHold !== undefined &&
|
|
891
|
+
SGR_MOUSE_TAIL_PREFIX_RE.test(mouseTailHold + token.value)) {
|
|
892
|
+
// Completion of the held prefix: the split report's tail finally
|
|
893
|
+
// arrived (SSH jitter, render-stalled reads). Resynthesize and clear.
|
|
894
|
+
// If the token carries trailing bytes beyond the completion (e.g.
|
|
895
|
+
// `;34Mabc` — the terminal batched the tail and the next keystrokes
|
|
896
|
+
// into one read), split the suffix off and push it back into the
|
|
897
|
+
// token queue for the next iteration — it may itself be another
|
|
898
|
+
// protocol prefix, a win32 tail, or ordinary typing. The prefix
|
|
899
|
+
// regex (no $ anchor) matches the report at the head; the suffix
|
|
900
|
+
// is whatever follows.
|
|
901
|
+
const combined = mouseTailHold + token.value;
|
|
902
|
+
const m = combined.match(SGR_MOUSE_TAIL_PREFIX_RE);
|
|
903
|
+
const reportEnd = m[0].length;
|
|
904
|
+
if (reportEnd < combined.length) {
|
|
905
|
+
const suffix = combined.slice(reportEnd);
|
|
906
|
+
tokenQueue.splice(qi + 1, 0, { type: 'text', value: suffix });
|
|
907
|
+
}
|
|
908
|
+
const resynthesized = '\x1b' + combined.slice(0, reportEnd);
|
|
909
|
+
mouseTailHold = undefined;
|
|
910
|
+
mouseTailHoldAt = undefined;
|
|
911
|
+
const mouse = parseMouseEvent(resynthesized);
|
|
912
|
+
keys.push(mouse ?? parseKeypress(resynthesized));
|
|
913
|
+
}
|
|
914
|
+
else if (SGR_MOUSE_PREFIX_RE.test(token.value) ||
|
|
915
|
+
// Continuation of an active hold: with the prefix already captured,
|
|
916
|
+
// the next fragment (`32;5M`'s leading digits, more params) is
|
|
917
|
+
// digits/semicolons — ambiguous with typing, so treat them as part
|
|
918
|
+
// of the in-flight report until the deadline. Completion uses the branch
|
|
919
|
+
// above first, so reaching here with a hold means still incomplete.
|
|
920
|
+
(mouseTailHold !== undefined && /^[\d;]*$/.test(token.value) && token.value !== '')) {
|
|
921
|
+
// Incomplete SGR mouse prefix: ConPTY split the report mid-sequence
|
|
922
|
+
// and the flush timer already released the buffered ESC prefix, so
|
|
923
|
+
// this text token carries protocol bytes, not typing. Hold it for
|
|
924
|
+
// the next chunk (which completes the tail — handled by the branch
|
|
925
|
+
// above via the combined `hold + value` check) instead of leaking
|
|
926
|
+
// into the prompt; the deadline check at the top of every call
|
|
927
|
+
// discards the hold once its grace expires. The regex demands `<` +
|
|
928
|
+
// digits, which no realistic typed text produces as a single text
|
|
929
|
+
// token.
|
|
930
|
+
if (mouseTailHold === undefined)
|
|
931
|
+
mouseTailHoldAt = Date.now();
|
|
932
|
+
mouseTailHold = (mouseTailHold ?? '') + token.value;
|
|
933
|
+
}
|
|
934
|
+
else {
|
|
935
|
+
// Ordinary typing while a hold is pending: text that can never
|
|
936
|
+
// continue an SGR report proves the held report died. Discard the
|
|
937
|
+
// stale hold so it cannot merge the NEXT fragment into a phantom
|
|
938
|
+
// event, then pass the text through untouched.
|
|
939
|
+
mouseTailHold = undefined;
|
|
940
|
+
mouseTailHoldAt = undefined;
|
|
941
|
+
keys.push(parseKeypress(token.value));
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
// If flushing and still in paste mode, emit what we have
|
|
946
|
+
if (isFlush && inPaste && pasteBuffer) {
|
|
947
|
+
keys.push(createPasteKey(pasteBuffer));
|
|
948
|
+
inPaste = false;
|
|
949
|
+
pasteBuffer = '';
|
|
950
|
+
}
|
|
951
|
+
// Flush handling for the decomposed win32 paste: mid-paste (active) the
|
|
952
|
+
// 50ms quiet timer means the paste stream ended — finalize with whatever
|
|
953
|
+
// was collected (mirrors the VT IN_PASTE flush above; a truncated end
|
|
954
|
+
// marker must not strand the matcher and eat all future typing). Outside
|
|
955
|
+
// a paste, release any held marker-prefix keys (e.g. a lone Escape).
|
|
956
|
+
if (isFlush && win32Paste.active) {
|
|
957
|
+
let content = win32Paste.buffer;
|
|
958
|
+
for (const k of win32Paste.held)
|
|
959
|
+
content += win32RecordChar(k) ?? '';
|
|
960
|
+
keys.push(createPasteKey(content));
|
|
961
|
+
win32Paste.active = false;
|
|
962
|
+
win32Paste.buffer = '';
|
|
963
|
+
win32Paste.held = [];
|
|
964
|
+
win32Paste.matched = 0;
|
|
965
|
+
}
|
|
966
|
+
else if (isFlush && win32Paste.held.length > 0) {
|
|
967
|
+
keys.push(...win32Paste.held);
|
|
968
|
+
win32Paste.held = [];
|
|
969
|
+
win32Paste.matched = 0;
|
|
970
|
+
}
|
|
971
|
+
// A quiet timeout ends a synthesized protocol candidate. Incomplete mouse
|
|
972
|
+
// reports are terminal input and must not become prompt text; other held
|
|
973
|
+
// input (a lone Escape or an unknown CSI sequence) remains ordinary keys.
|
|
974
|
+
if (isFlush && win32Protocol.held.length > 0) {
|
|
975
|
+
const isMouseCandidate = win32Protocol.sequence.startsWith('\x1b[<') ||
|
|
976
|
+
win32Protocol.sequence.startsWith('\x1b[M');
|
|
977
|
+
if (!isMouseCandidate)
|
|
978
|
+
keys.push(...win32Protocol.held);
|
|
979
|
+
win32Protocol.held = [];
|
|
980
|
+
win32Protocol.sequence = '';
|
|
981
|
+
}
|
|
982
|
+
// A held SGR mouse prefix that never completed is discarded by the
|
|
983
|
+
// deadline check at the top of this call — on flush AND on ordinary
|
|
984
|
+
// input alike (continuous input starves flush-only checks). Discarded
|
|
985
|
+
// silently, never emitted as text: protocol bytes that reach the prompt
|
|
986
|
+
// as text are exactly the leak this hold exists to prevent. Partial
|
|
987
|
+
// recovery of the coords is not worth one more branch — a mouse event
|
|
988
|
+
// with guessed terminators would dispatch phantom clicks.
|
|
989
|
+
// Build new state
|
|
990
|
+
const newState = {
|
|
991
|
+
mode: inPaste ? 'IN_PASTE' : 'NORMAL',
|
|
992
|
+
// App.tsx arms its flush timer whenever `incomplete` is non-empty. The
|
|
993
|
+
// tokenizer only reports raw bytes there, so paste-matcher holds (a
|
|
994
|
+
// marker prefix in flight, or an active paste) set a sentinel to get the
|
|
995
|
+
// same 50ms release — a lone Escape stays as responsive as in VT mode.
|
|
996
|
+
// A held mouse prefix rides the same mechanism so its grace window
|
|
997
|
+
// actually opens.
|
|
998
|
+
incomplete: tokenizer.buffer() ||
|
|
999
|
+
(win32Paste.held.length > 0 ||
|
|
1000
|
+
win32Paste.active ||
|
|
1001
|
+
win32Protocol.held.length > 0 ||
|
|
1002
|
+
mouseTailHold !== undefined
|
|
1003
|
+
? '\x1b'
|
|
1004
|
+
: ''),
|
|
1005
|
+
pasteBuffer,
|
|
1006
|
+
win32HighSurrogate: win32Ctx.high,
|
|
1007
|
+
win32AltHighSurrogate: win32Ctx.altHigh,
|
|
1008
|
+
win32Paste,
|
|
1009
|
+
win32Protocol,
|
|
1010
|
+
mouseTailHold,
|
|
1011
|
+
mouseTailHoldAt,
|
|
1012
|
+
_tokenizer: tokenizer,
|
|
1013
|
+
};
|
|
1014
|
+
return [keys, newState];
|
|
1015
|
+
}
|
|
1016
|
+
const keyName = {
|
|
1017
|
+
/* xterm/gnome ESC O letter */
|
|
1018
|
+
OP: 'f1',
|
|
1019
|
+
OQ: 'f2',
|
|
1020
|
+
OR: 'f3',
|
|
1021
|
+
OS: 'f4',
|
|
1022
|
+
/* Application keypad mode (numpad digits 0-9) */
|
|
1023
|
+
Op: '0',
|
|
1024
|
+
Oq: '1',
|
|
1025
|
+
Or: '2',
|
|
1026
|
+
Os: '3',
|
|
1027
|
+
Ot: '4',
|
|
1028
|
+
Ou: '5',
|
|
1029
|
+
Ov: '6',
|
|
1030
|
+
Ow: '7',
|
|
1031
|
+
Ox: '8',
|
|
1032
|
+
Oy: '9',
|
|
1033
|
+
/* Application keypad mode (numpad operators) */
|
|
1034
|
+
Oj: '*',
|
|
1035
|
+
Ok: '+',
|
|
1036
|
+
Ol: ',',
|
|
1037
|
+
Om: '-',
|
|
1038
|
+
On: '.',
|
|
1039
|
+
Oo: '/',
|
|
1040
|
+
OM: 'return',
|
|
1041
|
+
/* xterm/rxvt ESC [ number ~ */
|
|
1042
|
+
'[11~': 'f1',
|
|
1043
|
+
'[12~': 'f2',
|
|
1044
|
+
'[13~': 'f3',
|
|
1045
|
+
'[14~': 'f4',
|
|
1046
|
+
/* from Cygwin and used in libuv */
|
|
1047
|
+
'[[A': 'f1',
|
|
1048
|
+
'[[B': 'f2',
|
|
1049
|
+
'[[C': 'f3',
|
|
1050
|
+
'[[D': 'f4',
|
|
1051
|
+
'[[E': 'f5',
|
|
1052
|
+
/* common */
|
|
1053
|
+
'[15~': 'f5',
|
|
1054
|
+
'[17~': 'f6',
|
|
1055
|
+
'[18~': 'f7',
|
|
1056
|
+
'[19~': 'f8',
|
|
1057
|
+
'[20~': 'f9',
|
|
1058
|
+
'[21~': 'f10',
|
|
1059
|
+
'[23~': 'f11',
|
|
1060
|
+
'[24~': 'f12',
|
|
1061
|
+
/* xterm ESC [ letter */
|
|
1062
|
+
'[A': 'up',
|
|
1063
|
+
'[B': 'down',
|
|
1064
|
+
'[C': 'right',
|
|
1065
|
+
'[D': 'left',
|
|
1066
|
+
'[E': 'clear',
|
|
1067
|
+
'[F': 'end',
|
|
1068
|
+
'[H': 'home',
|
|
1069
|
+
/* xterm/gnome ESC O letter */
|
|
1070
|
+
OA: 'up',
|
|
1071
|
+
OB: 'down',
|
|
1072
|
+
OC: 'right',
|
|
1073
|
+
OD: 'left',
|
|
1074
|
+
OE: 'clear',
|
|
1075
|
+
OF: 'end',
|
|
1076
|
+
OH: 'home',
|
|
1077
|
+
/* xterm/rxvt ESC [ number ~ */
|
|
1078
|
+
'[1~': 'home',
|
|
1079
|
+
'[2~': 'insert',
|
|
1080
|
+
'[3~': 'delete',
|
|
1081
|
+
'[4~': 'end',
|
|
1082
|
+
'[5~': 'pageup',
|
|
1083
|
+
'[6~': 'pagedown',
|
|
1084
|
+
/* putty */
|
|
1085
|
+
'[[5~': 'pageup',
|
|
1086
|
+
'[[6~': 'pagedown',
|
|
1087
|
+
/* rxvt */
|
|
1088
|
+
'[7~': 'home',
|
|
1089
|
+
'[8~': 'end',
|
|
1090
|
+
/* rxvt keys with modifiers */
|
|
1091
|
+
'[a': 'up',
|
|
1092
|
+
'[b': 'down',
|
|
1093
|
+
'[c': 'right',
|
|
1094
|
+
'[d': 'left',
|
|
1095
|
+
'[e': 'clear',
|
|
1096
|
+
'[2$': 'insert',
|
|
1097
|
+
'[3$': 'delete',
|
|
1098
|
+
'[5$': 'pageup',
|
|
1099
|
+
'[6$': 'pagedown',
|
|
1100
|
+
'[7$': 'home',
|
|
1101
|
+
'[8$': 'end',
|
|
1102
|
+
Oa: 'up',
|
|
1103
|
+
Ob: 'down',
|
|
1104
|
+
Oc: 'right',
|
|
1105
|
+
Od: 'left',
|
|
1106
|
+
Oe: 'clear',
|
|
1107
|
+
'[2^': 'insert',
|
|
1108
|
+
'[3^': 'delete',
|
|
1109
|
+
'[5^': 'pageup',
|
|
1110
|
+
'[6^': 'pagedown',
|
|
1111
|
+
'[7^': 'home',
|
|
1112
|
+
'[8^': 'end',
|
|
1113
|
+
/* misc. */
|
|
1114
|
+
'[Z': 'tab',
|
|
1115
|
+
};
|
|
1116
|
+
/**
|
|
1117
|
+
* Key names that never produce printable input (function keys, navigation,
|
|
1118
|
+
* modifiers, mouse), used to filter parsed keypresses.
|
|
1119
|
+
*/
|
|
1120
|
+
export const nonAlphanumericKeys = [
|
|
1121
|
+
// Filter out single-character values (digits, operators from numpad) since
|
|
1122
|
+
// those are printable characters that should produce input
|
|
1123
|
+
...Object.values(keyName).filter(v => v.length > 1),
|
|
1124
|
+
// escape and backspace are assigned directly in parseKeypress (not via the
|
|
1125
|
+
// keyName map), so the spread above misses them. Without these, ctrl+escape
|
|
1126
|
+
// via Kitty/modifyOtherKeys leaks the literal word "escape" as input text
|
|
1127
|
+
// (input-event.ts:58 assigns keypress.name when ctrl is set).
|
|
1128
|
+
'escape',
|
|
1129
|
+
'backspace',
|
|
1130
|
+
'wheelup',
|
|
1131
|
+
'wheeldown',
|
|
1132
|
+
'wheelleft',
|
|
1133
|
+
'wheelright',
|
|
1134
|
+
'mouse',
|
|
1135
|
+
];
|
|
1136
|
+
const isShiftKey = (code) => {
|
|
1137
|
+
return [
|
|
1138
|
+
'[a',
|
|
1139
|
+
'[b',
|
|
1140
|
+
'[c',
|
|
1141
|
+
'[d',
|
|
1142
|
+
'[e',
|
|
1143
|
+
'[2$',
|
|
1144
|
+
'[3$',
|
|
1145
|
+
'[5$',
|
|
1146
|
+
'[6$',
|
|
1147
|
+
'[7$',
|
|
1148
|
+
'[8$',
|
|
1149
|
+
'[Z',
|
|
1150
|
+
].includes(code);
|
|
1151
|
+
};
|
|
1152
|
+
const isCtrlKey = (code) => {
|
|
1153
|
+
return [
|
|
1154
|
+
'Oa',
|
|
1155
|
+
'Ob',
|
|
1156
|
+
'Oc',
|
|
1157
|
+
'Od',
|
|
1158
|
+
'Oe',
|
|
1159
|
+
'[2^',
|
|
1160
|
+
'[3^',
|
|
1161
|
+
'[5^',
|
|
1162
|
+
'[6^',
|
|
1163
|
+
'[7^',
|
|
1164
|
+
'[8^',
|
|
1165
|
+
].includes(code);
|
|
1166
|
+
};
|
|
1167
|
+
/**
|
|
1168
|
+
* Decode XTerm-style modifier value to individual flags.
|
|
1169
|
+
* Modifier encoding: 1 + (shift ? 1 : 0) + (alt ? 2 : 0) + (ctrl ? 4 : 0) + (super ? 8 : 0)
|
|
1170
|
+
*
|
|
1171
|
+
* Note: `meta` here means Alt/Option (bit 2). `super` is a distinct
|
|
1172
|
+
* modifier (bit 8, i.e. Cmd on macOS / Win key). Most legacy terminal
|
|
1173
|
+
* sequences can't express super — it only arrives via kitty keyboard
|
|
1174
|
+
* protocol (CSI u) or xterm modifyOtherKeys.
|
|
1175
|
+
*/
|
|
1176
|
+
function decodeModifier(modifier) {
|
|
1177
|
+
const m = modifier - 1;
|
|
1178
|
+
return {
|
|
1179
|
+
shift: !!(m & 1),
|
|
1180
|
+
meta: !!(m & 2),
|
|
1181
|
+
ctrl: !!(m & 4),
|
|
1182
|
+
super: !!(m & 8),
|
|
1183
|
+
};
|
|
1184
|
+
}
|
|
1185
|
+
/**
|
|
1186
|
+
* Map keycode to key name for modifyOtherKeys/CSI u sequences.
|
|
1187
|
+
* Handles both ASCII keycodes and Kitty keyboard protocol functional keys.
|
|
1188
|
+
*
|
|
1189
|
+
* Numpad codepoints are from Unicode Private Use Area, defined at:
|
|
1190
|
+
* https://sw.kovidgoyal.net/kitty/keyboard-protocol/#functional-key-definitions
|
|
1191
|
+
*/
|
|
1192
|
+
function keycodeToName(keycode) {
|
|
1193
|
+
switch (keycode) {
|
|
1194
|
+
case 9:
|
|
1195
|
+
return 'tab';
|
|
1196
|
+
case 13:
|
|
1197
|
+
return 'return';
|
|
1198
|
+
case 27:
|
|
1199
|
+
return 'escape';
|
|
1200
|
+
case 32:
|
|
1201
|
+
return 'space';
|
|
1202
|
+
case 127:
|
|
1203
|
+
return 'backspace';
|
|
1204
|
+
// Kitty keyboard protocol numpad keys (KP_0 through KP_9)
|
|
1205
|
+
case 57399:
|
|
1206
|
+
return '0';
|
|
1207
|
+
case 57400:
|
|
1208
|
+
return '1';
|
|
1209
|
+
case 57401:
|
|
1210
|
+
return '2';
|
|
1211
|
+
case 57402:
|
|
1212
|
+
return '3';
|
|
1213
|
+
case 57403:
|
|
1214
|
+
return '4';
|
|
1215
|
+
case 57404:
|
|
1216
|
+
return '5';
|
|
1217
|
+
case 57405:
|
|
1218
|
+
return '6';
|
|
1219
|
+
case 57406:
|
|
1220
|
+
return '7';
|
|
1221
|
+
case 57407:
|
|
1222
|
+
return '8';
|
|
1223
|
+
case 57408:
|
|
1224
|
+
return '9';
|
|
1225
|
+
case 57409: // KP_DECIMAL
|
|
1226
|
+
return '.';
|
|
1227
|
+
case 57410: // KP_DIVIDE
|
|
1228
|
+
return '/';
|
|
1229
|
+
case 57411: // KP_MULTIPLY
|
|
1230
|
+
return '*';
|
|
1231
|
+
case 57412: // KP_SUBTRACT
|
|
1232
|
+
return '-';
|
|
1233
|
+
case 57413: // KP_ADD
|
|
1234
|
+
return '+';
|
|
1235
|
+
case 57414: // KP_ENTER
|
|
1236
|
+
return 'return';
|
|
1237
|
+
case 57415: // KP_EQUAL
|
|
1238
|
+
return '=';
|
|
1239
|
+
default:
|
|
1240
|
+
// Printable ASCII characters
|
|
1241
|
+
if (keycode >= 32 && keycode <= 126) {
|
|
1242
|
+
return String.fromCharCode(keycode).toLowerCase();
|
|
1243
|
+
}
|
|
1244
|
+
return undefined;
|
|
1245
|
+
}
|
|
1246
|
+
}
|
|
1247
|
+
/**
|
|
1248
|
+
* Parse an SGR mouse event sequence into a ParsedMouse, or null if not a
|
|
1249
|
+
* mouse event or if it's a wheel event (wheel stays as ParsedKey for the
|
|
1250
|
+
* keybinding system). Button bit 0x40 = wheel, bit 0x20 = drag/motion.
|
|
1251
|
+
*/
|
|
1252
|
+
function parseMouseEvent(s) {
|
|
1253
|
+
const match = SGR_MOUSE_RE.exec(s);
|
|
1254
|
+
if (!match)
|
|
1255
|
+
return null;
|
|
1256
|
+
const button = parseInt(match[1], 10);
|
|
1257
|
+
// Wheel events (bit 6 set, low bits 0/1 for up/down) stay as ParsedKey
|
|
1258
|
+
// so the keybinding system can route them to scroll handlers.
|
|
1259
|
+
if ((button & 0x40) !== 0)
|
|
1260
|
+
return null;
|
|
1261
|
+
return {
|
|
1262
|
+
kind: 'mouse',
|
|
1263
|
+
button,
|
|
1264
|
+
action: match[4] === 'M' ? 'press' : 'release',
|
|
1265
|
+
col: parseInt(match[2], 10),
|
|
1266
|
+
row: parseInt(match[3], 10),
|
|
1267
|
+
sequence: s,
|
|
1268
|
+
};
|
|
1269
|
+
}
|
|
1270
|
+
/**
|
|
1271
|
+
* Parse an X10 mouse sequence (CSI M + Cb/Cx/Cy raw bytes, each +32) into
|
|
1272
|
+
* a ParsedMouse, or null for anything else. Serves terminals that honor
|
|
1273
|
+
* DECSET 1000/1002 but ignore 1006 (SGR): clicks and button-drags become
|
|
1274
|
+
* real ParsedMouse events so text selection works there too.
|
|
1275
|
+
*
|
|
1276
|
+
* Classic X10 reports release as Cb low bits 3 with the same `M` framing;
|
|
1277
|
+
* it cannot identify WHICH button was released, but App can pair it with its
|
|
1278
|
+
* active left selection/drag session. No-button hover is not representable,
|
|
1279
|
+
* so hover stays SGR-only. Wheel returns null (parseKeypress's wheel branch
|
|
1280
|
+
* turns it into a key with coordinates).
|
|
1281
|
+
*/
|
|
1282
|
+
function parseX10MouseEvent(s) {
|
|
1283
|
+
if (s.length !== 6 || !s.startsWith('\x1b[M'))
|
|
1284
|
+
return null;
|
|
1285
|
+
const button = s.charCodeAt(3) - 32;
|
|
1286
|
+
// Wheel (bit 6) → key path. Low bits 3 without motion is the classic
|
|
1287
|
+
// X10 release code (button identity is unavailable, pairing happens in App).
|
|
1288
|
+
if ((button & 0x40) !== 0)
|
|
1289
|
+
return null;
|
|
1290
|
+
const release = (button & 0x03) === 3 && (button & 0x20) === 0;
|
|
1291
|
+
return {
|
|
1292
|
+
kind: 'mouse',
|
|
1293
|
+
button,
|
|
1294
|
+
action: release ? 'release' : 'press',
|
|
1295
|
+
// X10 coords are 1-indexed like SGR (charCode - 32).
|
|
1296
|
+
col: s.charCodeAt(4) - 32,
|
|
1297
|
+
row: s.charCodeAt(5) - 32,
|
|
1298
|
+
sequence: s,
|
|
1299
|
+
};
|
|
1300
|
+
}
|
|
1301
|
+
function parseKeypress(s = '') {
|
|
1302
|
+
let parts;
|
|
1303
|
+
const key = {
|
|
1304
|
+
kind: 'key',
|
|
1305
|
+
name: '',
|
|
1306
|
+
fn: false,
|
|
1307
|
+
ctrl: false,
|
|
1308
|
+
meta: false,
|
|
1309
|
+
shift: false,
|
|
1310
|
+
option: false,
|
|
1311
|
+
super: false,
|
|
1312
|
+
sequence: s,
|
|
1313
|
+
raw: s,
|
|
1314
|
+
isPasted: false,
|
|
1315
|
+
};
|
|
1316
|
+
key.sequence = key.sequence || s || key.name;
|
|
1317
|
+
// Handle CSI u (kitty keyboard protocol): ESC [ codepoint [; modifier] u
|
|
1318
|
+
// Example: ESC[13;2u = Shift+Enter, ESC[27u = Escape (no modifiers)
|
|
1319
|
+
let match;
|
|
1320
|
+
if ((match = CSI_U_RE.exec(s))) {
|
|
1321
|
+
const codepoint = parseInt(match[1], 10);
|
|
1322
|
+
// Modifier defaults to 1 (no modifiers) when not present
|
|
1323
|
+
const modifier = match[2] ? parseInt(match[2], 10) : 1;
|
|
1324
|
+
const mods = decodeModifier(modifier);
|
|
1325
|
+
const name = keycodeToName(codepoint);
|
|
1326
|
+
return {
|
|
1327
|
+
kind: 'key',
|
|
1328
|
+
name,
|
|
1329
|
+
fn: false,
|
|
1330
|
+
ctrl: mods.ctrl,
|
|
1331
|
+
meta: mods.meta,
|
|
1332
|
+
shift: mods.shift,
|
|
1333
|
+
option: false,
|
|
1334
|
+
super: mods.super,
|
|
1335
|
+
sequence: s,
|
|
1336
|
+
raw: s,
|
|
1337
|
+
isPasted: false,
|
|
1338
|
+
};
|
|
1339
|
+
}
|
|
1340
|
+
// Handle xterm modifyOtherKeys: ESC [ 27 ; modifier ; keycode ~
|
|
1341
|
+
// Must run before FN_KEY_RE — FN_KEY_RE only allows 2 params before ~ and
|
|
1342
|
+
// would leave the tail as garbage if it partially matched.
|
|
1343
|
+
if ((match = MODIFY_OTHER_KEYS_RE.exec(s))) {
|
|
1344
|
+
const mods = decodeModifier(parseInt(match[1], 10));
|
|
1345
|
+
const name = keycodeToName(parseInt(match[2], 10));
|
|
1346
|
+
return {
|
|
1347
|
+
kind: 'key',
|
|
1348
|
+
name,
|
|
1349
|
+
fn: false,
|
|
1350
|
+
ctrl: mods.ctrl,
|
|
1351
|
+
meta: mods.meta,
|
|
1352
|
+
shift: mods.shift,
|
|
1353
|
+
option: false,
|
|
1354
|
+
super: mods.super,
|
|
1355
|
+
sequence: s,
|
|
1356
|
+
raw: s,
|
|
1357
|
+
isPasted: false,
|
|
1358
|
+
};
|
|
1359
|
+
}
|
|
1360
|
+
// SGR mouse wheel events. Click/drag/release events are handled
|
|
1361
|
+
// earlier by parseMouseEvent and emitted as ParsedMouse, so they
|
|
1362
|
+
// never reach here. Mask with 0x43 (bits 6+1+0) to check wheel-flag
|
|
1363
|
+
// + direction while ignoring modifier bits (Shift=0x04, Meta=0x08,
|
|
1364
|
+
// Ctrl=0x10) — modified wheel events (e.g. Ctrl+scroll, button=80)
|
|
1365
|
+
// should still be recognized as wheelup/wheeldown.
|
|
1366
|
+
//
|
|
1367
|
+
// The SGR sequence carries the pointer position (CSI < btn;col;row M) —
|
|
1368
|
+
// preserved on the ParsedKey (mouseCol/mouseRow, 0-indexed) so wheel
|
|
1369
|
+
// routing can hit-test the ScrollBox under the pointer instead of
|
|
1370
|
+
// scrolling a hardcoded target. Buttons 66/67 are horizontal wheel
|
|
1371
|
+
// (wheelleft/wheelright); kept as keys with coords for future consumers.
|
|
1372
|
+
if ((match = SGR_MOUSE_RE.exec(s))) {
|
|
1373
|
+
const button = parseInt(match[1], 10);
|
|
1374
|
+
const col = parseInt(match[2], 10) - 1;
|
|
1375
|
+
const row = parseInt(match[3], 10) - 1;
|
|
1376
|
+
const dir = button & 0x43;
|
|
1377
|
+
if (dir === 0x40)
|
|
1378
|
+
return createWheelKey(s, 'wheelup', col, row, button);
|
|
1379
|
+
if (dir === 0x41)
|
|
1380
|
+
return createWheelKey(s, 'wheeldown', col, row, button);
|
|
1381
|
+
if (dir === 0x42)
|
|
1382
|
+
return createWheelKey(s, 'wheelleft', col, row, button);
|
|
1383
|
+
if (dir === 0x43)
|
|
1384
|
+
return createWheelKey(s, 'wheelright', col, row, button);
|
|
1385
|
+
// Shouldn't reach here (parseMouseEvent catches non-wheel) but be safe
|
|
1386
|
+
return createNavKey(s, 'mouse', false);
|
|
1387
|
+
}
|
|
1388
|
+
// X10 mouse: CSI M + 3 raw bytes (Cb+32, Cx+32, Cy+32). Terminals that
|
|
1389
|
+
// ignore DECSET 1006 (SGR) but honor 1000/1002 emit this legacy encoding.
|
|
1390
|
+
// Button bits match SGR: 0x40 = wheel, low bit = direction, 0x20 = drag.
|
|
1391
|
+
// Wheel events become wheel keys (with coordinates, like SGR); clicks and
|
|
1392
|
+
// drags and the generic low-bits-3 release become ParsedMouse so X10-only
|
|
1393
|
+
// terminals get selection and click/drag completion support.
|
|
1394
|
+
if (s.length === 6 && s.startsWith('\x1b[M')) {
|
|
1395
|
+
const button = s.charCodeAt(3) - 32;
|
|
1396
|
+
const col = s.charCodeAt(4) - 32 - 1;
|
|
1397
|
+
const row = s.charCodeAt(5) - 32 - 1;
|
|
1398
|
+
const dir = button & 0x43;
|
|
1399
|
+
if (dir === 0x40)
|
|
1400
|
+
return createWheelKey(s, 'wheelup', col, row, button);
|
|
1401
|
+
if (dir === 0x41)
|
|
1402
|
+
return createWheelKey(s, 'wheeldown', col, row, button);
|
|
1403
|
+
if (dir === 0x42)
|
|
1404
|
+
return createWheelKey(s, 'wheelleft', col, row, button);
|
|
1405
|
+
if (dir === 0x43)
|
|
1406
|
+
return createWheelKey(s, 'wheelright', col, row, button);
|
|
1407
|
+
// Non-wheel X10 clicks/drags are intercepted by parseX10MouseEvent in
|
|
1408
|
+
// parseMultipleKeypresses before this function runs; reaching here means
|
|
1409
|
+
// a flush path bypassed it (no-button motion without the drag bit — X10
|
|
1410
|
+
// hover, unsupported). Swallow as before.
|
|
1411
|
+
return createNavKey(s, 'mouse', false);
|
|
1412
|
+
}
|
|
1413
|
+
if (s === '\r') {
|
|
1414
|
+
key.raw = undefined;
|
|
1415
|
+
key.name = 'return';
|
|
1416
|
+
}
|
|
1417
|
+
else if (s === '\x1b\r' || s === '\x1b\n') {
|
|
1418
|
+
// Option+Enter on terminals without extended key reporting (Terminal.app,
|
|
1419
|
+
// default macOS terminal) sends ESC CR when "Use Option as Meta" is on —
|
|
1420
|
+
// the tokenizer passes CR through as text since it's not an ESC final
|
|
1421
|
+
// byte, so the pair arrives here as one chunk (issue #110).
|
|
1422
|
+
key.raw = undefined;
|
|
1423
|
+
key.name = 'return';
|
|
1424
|
+
key.meta = true;
|
|
1425
|
+
}
|
|
1426
|
+
else if (s === '\n') {
|
|
1427
|
+
key.name = 'enter';
|
|
1428
|
+
}
|
|
1429
|
+
else if (s === '\t') {
|
|
1430
|
+
key.name = 'tab';
|
|
1431
|
+
}
|
|
1432
|
+
else if (s === '\b' || s === '\x1b\b') {
|
|
1433
|
+
key.name = 'backspace';
|
|
1434
|
+
key.meta = s.charAt(0) === '\x1b';
|
|
1435
|
+
}
|
|
1436
|
+
else if (s === '\x7f' || s === '\x1b\x7f') {
|
|
1437
|
+
key.name = 'backspace';
|
|
1438
|
+
key.meta = s.charAt(0) === '\x1b';
|
|
1439
|
+
}
|
|
1440
|
+
else if (s === '\x1b' || s === '\x1b\x1b') {
|
|
1441
|
+
key.name = 'escape';
|
|
1442
|
+
key.meta = s.length === 2;
|
|
1443
|
+
}
|
|
1444
|
+
else if (s === ' ' || s === '\x1b ') {
|
|
1445
|
+
key.name = 'space';
|
|
1446
|
+
key.meta = s.length === 2;
|
|
1447
|
+
}
|
|
1448
|
+
else if (s === '\x1f') {
|
|
1449
|
+
key.name = '_';
|
|
1450
|
+
key.ctrl = true;
|
|
1451
|
+
}
|
|
1452
|
+
else if (s <= '\x1a' && s.length === 1) {
|
|
1453
|
+
key.name = String.fromCharCode(s.charCodeAt(0) + 'a'.charCodeAt(0) - 1);
|
|
1454
|
+
key.ctrl = true;
|
|
1455
|
+
}
|
|
1456
|
+
else if (s.length === 1 && s >= '0' && s <= '9') {
|
|
1457
|
+
key.name = 'number';
|
|
1458
|
+
}
|
|
1459
|
+
else if (s.length === 1 && s >= 'a' && s <= 'z') {
|
|
1460
|
+
key.name = s;
|
|
1461
|
+
}
|
|
1462
|
+
else if (s.length === 1 && s >= 'A' && s <= 'Z') {
|
|
1463
|
+
key.name = s.toLowerCase();
|
|
1464
|
+
key.shift = true;
|
|
1465
|
+
}
|
|
1466
|
+
else if ((parts = META_KEY_CODE_RE.exec(s))) {
|
|
1467
|
+
key.meta = true;
|
|
1468
|
+
key.shift = /^[A-Z]$/.test(parts[1]);
|
|
1469
|
+
}
|
|
1470
|
+
else if ((parts = FN_KEY_RE.exec(s))) {
|
|
1471
|
+
const segs = [...s];
|
|
1472
|
+
if (segs[0] === '\u001b' && segs[1] === '\u001b') {
|
|
1473
|
+
key.option = true;
|
|
1474
|
+
}
|
|
1475
|
+
const code = [parts[1], parts[2], parts[4], parts[6]]
|
|
1476
|
+
.filter(Boolean)
|
|
1477
|
+
.join('');
|
|
1478
|
+
const modifier = (parts[3] || parts[5] || 1) - 1;
|
|
1479
|
+
key.ctrl = !!(modifier & 4);
|
|
1480
|
+
key.meta = !!(modifier & 2);
|
|
1481
|
+
key.super = !!(modifier & 8);
|
|
1482
|
+
key.shift = !!(modifier & 1);
|
|
1483
|
+
key.code = code;
|
|
1484
|
+
key.name = keyName[code];
|
|
1485
|
+
key.shift = isShiftKey(code) || key.shift;
|
|
1486
|
+
key.ctrl = isCtrlKey(code) || key.ctrl;
|
|
1487
|
+
}
|
|
1488
|
+
// iTerm in natural text editing mode
|
|
1489
|
+
if (key.raw === '\x1Bb') {
|
|
1490
|
+
key.meta = true;
|
|
1491
|
+
key.name = 'left';
|
|
1492
|
+
}
|
|
1493
|
+
else if (key.raw === '\x1Bf') {
|
|
1494
|
+
key.meta = true;
|
|
1495
|
+
key.name = 'right';
|
|
1496
|
+
}
|
|
1497
|
+
switch (s) {
|
|
1498
|
+
case '\u001b[1~':
|
|
1499
|
+
return createNavKey(s, 'home', false);
|
|
1500
|
+
case '\u001b[4~':
|
|
1501
|
+
return createNavKey(s, 'end', false);
|
|
1502
|
+
case '\u001b[5~':
|
|
1503
|
+
return createNavKey(s, 'pageup', false);
|
|
1504
|
+
case '\u001b[6~':
|
|
1505
|
+
return createNavKey(s, 'pagedown', false);
|
|
1506
|
+
case '\u001b[1;5D':
|
|
1507
|
+
return createNavKey(s, 'left', true);
|
|
1508
|
+
case '\u001b[1;5C':
|
|
1509
|
+
return createNavKey(s, 'right', true);
|
|
1510
|
+
}
|
|
1511
|
+
return key;
|
|
1512
|
+
}
|
|
1513
|
+
function createNavKey(s, name, ctrl) {
|
|
1514
|
+
return {
|
|
1515
|
+
kind: 'key',
|
|
1516
|
+
name,
|
|
1517
|
+
ctrl,
|
|
1518
|
+
meta: false,
|
|
1519
|
+
shift: false,
|
|
1520
|
+
option: false,
|
|
1521
|
+
super: false,
|
|
1522
|
+
fn: false,
|
|
1523
|
+
sequence: s,
|
|
1524
|
+
raw: s,
|
|
1525
|
+
isPasted: false,
|
|
1526
|
+
};
|
|
1527
|
+
}
|
|
1528
|
+
/**
|
|
1529
|
+
* Build a wheel ParsedKey preserving the pointer position and modifier
|
|
1530
|
+
* bits from the protocol's button byte (Shift=0x04, Meta/Alt=0x08,
|
|
1531
|
+
* Ctrl=0x10 — same bit layout decodeModifier documents).
|
|
1532
|
+
*/
|
|
1533
|
+
function createWheelKey(s, name, col, row, button) {
|
|
1534
|
+
return {
|
|
1535
|
+
kind: 'key',
|
|
1536
|
+
name,
|
|
1537
|
+
ctrl: (button & 0x10) !== 0,
|
|
1538
|
+
meta: (button & 0x08) !== 0,
|
|
1539
|
+
shift: (button & 0x04) !== 0,
|
|
1540
|
+
option: false,
|
|
1541
|
+
super: false,
|
|
1542
|
+
fn: false,
|
|
1543
|
+
sequence: s,
|
|
1544
|
+
raw: s,
|
|
1545
|
+
isPasted: false,
|
|
1546
|
+
mouseCol: col,
|
|
1547
|
+
mouseRow: row,
|
|
1548
|
+
mouseButton: button,
|
|
1549
|
+
};
|
|
1550
|
+
}
|