@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,1170 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
import { getLang, subscribeLang, t } from '../i18n.js';
|
|
4
|
+
import { Box, Text, useTerminalSize } from '../ui.js';
|
|
5
|
+
import { normalizeIdePath } from '../dsh-adapter/ide-channel.js';
|
|
6
|
+
import { Divider } from './design-system/Divider.js';
|
|
7
|
+
import { UserPromptMessage } from './messages/UserPromptMessage.js';
|
|
8
|
+
import { AssistantTextMessage } from './messages/AssistantTextMessage.js';
|
|
9
|
+
import { AssistantThinkingMessage } from './messages/AssistantThinkingMessage.js';
|
|
10
|
+
import { AssistantToolUseMessage } from './messages/AssistantToolUseMessage.js';
|
|
11
|
+
import { SubagentMessage } from './Chat/SubagentMessage.js';
|
|
12
|
+
import { JobCard } from './Chat/JobCard.js';
|
|
13
|
+
import { isMinimalMode } from '../minimalMode.js';
|
|
14
|
+
import { noteFrameCause, noteListGeometry } from '../ink/geometry-trace.js';
|
|
15
|
+
import { getTerminalFlushTick } from '../ink/flush-tick.js';
|
|
16
|
+
import { TurnInterruptedRow } from './TurnInterruptedRow.js';
|
|
17
|
+
import { LogoV2 } from './LogoV2.js';
|
|
18
|
+
import { StreamingMarkdown } from './StreamingMarkdown.js';
|
|
19
|
+
import { MessageMetadata } from './messages/MessageMetadata.js';
|
|
20
|
+
import { stripNarration } from '../utils/narration.js';
|
|
21
|
+
import { foldLongLines } from '../utils/fold-long-lines.js';
|
|
22
|
+
import { stringWidth } from '../ink/stringWidth.js';
|
|
23
|
+
import { truncateToWidth } from '../ink/truncateToWidth.js';
|
|
24
|
+
import { clipPreview } from '../ink/timeline-rail.js';
|
|
25
|
+
import { getRevealVersion, revealLengthOf, revealTextOf } from './smoothReveal.js';
|
|
26
|
+
import { useRevealVersion } from '../hooks/useRevealVersion.js';
|
|
27
|
+
import { TranscriptImages } from './messages/TranscriptImages.js';
|
|
28
|
+
/**
|
|
29
|
+
* Transcript rows rendered with the dsh-TUI message layout: user prompts
|
|
30
|
+
* on a grey bubble with a `❯` pointer, assistant text with a `●` bullet and
|
|
31
|
+
* markdown, thinking as a live three-line/full toggle then a settled
|
|
32
|
+
* `⚓ Thinking` row with the localized ctrl+o expand hint, and tool calls as
|
|
33
|
+
* status-dot cards.
|
|
34
|
+
* `expanded` (Ctrl+O) shows full reasoning + full tool
|
|
35
|
+
* args/results; `expandedRows` (message-selection mode, Enter) expands single
|
|
36
|
+
* rows; `selectedId` highlights the selected row.
|
|
37
|
+
*/
|
|
38
|
+
/** Render cap for very long sessions: older rows fold behind a Divider until
|
|
39
|
+
* Ctrl+E expands them.
|
|
40
|
+
* 120 (was 300): opening a long session paints the whole cap into the
|
|
41
|
+
* main-screen scrollback (historyPaint), and each row's first markdown
|
|
42
|
+
* lex + wrap costs ~2-5ms — 300 rows saturated the main thread for ~6s
|
|
43
|
+
* on open (measured, 800-row inline session). 120 rows ≈ 4-5 screens of
|
|
44
|
+
* paint (<1s) with the rest behind the show-previous divider. The transcript
|
|
45
|
+
* is a viewport, not a printout; load-earlier restores older rows. */
|
|
46
|
+
const RENDERED_ROW_CAP = 120;
|
|
47
|
+
// --- layout virtualization constants -------------------------------------
|
|
48
|
+
// Offscreen rows render as fixed-height spacers whose heights come from the
|
|
49
|
+
// previous commit's Yoga layout, so the pure-JS Yoga engine never walks
|
|
50
|
+
// their subtrees. Spacers preserve the scroll geometry (content height,
|
|
51
|
+
// sticky follow, scrollbar) of a fully-mounted list.
|
|
52
|
+
/** Lines of extra content mounted above/below the visible window. */
|
|
53
|
+
const OVERSCAN_LINES = 8;
|
|
54
|
+
/** Fallback row height before the first measurement (terminal lines). */
|
|
55
|
+
const DEFAULT_ROW_HEIGHT = 2;
|
|
56
|
+
/** Cold-start estimate of the header block above the rows; corrected by the
|
|
57
|
+
* first layout measurement. */
|
|
58
|
+
const DEFAULT_HEADER_LINES = 14;
|
|
59
|
+
/** Stable fallbacks for the stream-view toggle props: verify/repro harnesses
|
|
60
|
+
* and embedders render MessageList with prop sets that predate them, and the
|
|
61
|
+
* render must not throw (same rule as Chat's stubbed channel APIs). Module
|
|
62
|
+
* scope keeps the identities stable so MemoRow's shallow compare and the
|
|
63
|
+
* toggle callback's deps never churn. */
|
|
64
|
+
const NO_STREAM_VIEW_TOGGLED = new Set();
|
|
65
|
+
const NOOP_TOGGLE_STREAM_VIEW = (_rowId) => { };
|
|
66
|
+
// --- smooth-streaming display text -----------------------------------------
|
|
67
|
+
// Render-phase reads of the shared reveal cursors (see smoothReveal.ts for
|
|
68
|
+
// why the cursors live outside React). `active` gates cursor CREATION to
|
|
69
|
+
// live-arrived content (streaming rows, live-settled rows marked `fresh`,
|
|
70
|
+
// replayed history paints complete); once created, a cursor keeps revealing
|
|
71
|
+
// until it catches up — settling mid-reveal must not snap (that is the
|
|
72
|
+
// "non-streaming delivery becomes a smooth flow" contract).
|
|
73
|
+
function assistantRevealText(row, enabled) {
|
|
74
|
+
const stripped = stripNarration(row.text);
|
|
75
|
+
return revealTextOf(`a${row.id}`, stripped, {
|
|
76
|
+
enabled,
|
|
77
|
+
active: row.streaming === true || row.fresh === true,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function reasoningRevealText(row, enabled) {
|
|
81
|
+
return revealTextOf(`r${row.id}`, row.text, { enabled, active: row.streaming === true });
|
|
82
|
+
}
|
|
83
|
+
/** Display length only (layout signature; no slice allocation). */
|
|
84
|
+
function revealDisplayLen(row, enabled) {
|
|
85
|
+
if (row.kind === 'assistant') {
|
|
86
|
+
const stripped = stripNarration(row.text);
|
|
87
|
+
return revealLengthOf(`a${row.id}`, stripped, {
|
|
88
|
+
enabled,
|
|
89
|
+
active: row.streaming === true || row.fresh === true,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (row.kind === 'reasoning') {
|
|
93
|
+
return revealLengthOf(`r${row.id}`, row.text, { enabled, active: row.streaming === true });
|
|
94
|
+
}
|
|
95
|
+
return row.text.length;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Display form of an IDE-selection path (T-FIX-01): when the path lives
|
|
99
|
+
* under the session cwd, strip that prefix so the indicator line reads
|
|
100
|
+
* `src/a.ts` instead of a long absolute path (UAT finding — the extension
|
|
101
|
+
* anchors at its workspace root while the TUI session cwd is the git
|
|
102
|
+
* worktree root, so raw paths are long and redundant). Pure display layer:
|
|
103
|
+
* the `<attached-file>` block keeps its absolute path for the model.
|
|
104
|
+
*
|
|
105
|
+
* Comparison reuses normalizeIdePath (the ide-channel lock matcher's
|
|
106
|
+
* normalizer: backslashes folded to forward slashes, trailing slashes
|
|
107
|
+
* stripped, case folded on case-insensitive filesystems) so Windows forms
|
|
108
|
+
* like `d:/x` vs `D:\X` still match. Prefix hits return the remainder
|
|
109
|
+
* (`src/a.ts`); everything else — outside cwd, empty/undefined cwd, or the
|
|
110
|
+
* path being the cwd itself — returns the input unchanged. NOT basename:
|
|
111
|
+
* that would drop the directory context and collide on same-named files.
|
|
112
|
+
* `caseInsensitive` is parameterized so verifiers can pin either mode on
|
|
113
|
+
* any host.
|
|
114
|
+
*/
|
|
115
|
+
export function displaySelectionPath(path, sessionCwd, caseInsensitive = process.platform === 'win32' || process.platform === 'darwin') {
|
|
116
|
+
if (sessionCwd === undefined || sessionCwd === '')
|
|
117
|
+
return path;
|
|
118
|
+
// Shared normalizer (lock matching uses the same): backslashes fold to
|
|
119
|
+
// forward slashes, trailing slashes stripped — transforms that preserve
|
|
120
|
+
// character positions, so slicing the canonical path at the cwd's length
|
|
121
|
+
// keeps the file's own casing in the displayed relative string. Folding
|
|
122
|
+
// decides only WHETHER the prefix matches, never what gets sliced off.
|
|
123
|
+
const pathNorm = normalizeIdePath(path, false);
|
|
124
|
+
const cwdNorm = normalizeIdePath(sessionCwd, false);
|
|
125
|
+
if (cwdNorm === '' || cwdNorm.length >= pathNorm.length)
|
|
126
|
+
return path;
|
|
127
|
+
// The POSIX root `/` is a prefix of every absolute path without a further
|
|
128
|
+
// separator — `/repo/file.ts` under cwd `/` displays as `repo/file.ts`.
|
|
129
|
+
// (A `startsWith('/' + '/')` check would never match; coderabbit review.)
|
|
130
|
+
if (cwdNorm === '/') {
|
|
131
|
+
return pathNorm.startsWith('/') ? pathNorm.slice(1) : path;
|
|
132
|
+
}
|
|
133
|
+
const foldedPath = normalizeIdePath(pathNorm, caseInsensitive);
|
|
134
|
+
const foldedCwd = normalizeIdePath(cwdNorm, caseInsensitive);
|
|
135
|
+
if (!foldedPath.startsWith(`${foldedCwd}/`))
|
|
136
|
+
return path;
|
|
137
|
+
return pathNorm.slice(cwdNorm.length + 1);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Per-kind layout signature PARTS: the O(1) identity of every input that
|
|
141
|
+
* decides a row's rendered HEIGHT (see sigRef in MessageList). Fields are
|
|
142
|
+
* scoped to the row's own renderer — a global flat signature
|
|
143
|
+
* over-invalidates (a diffLayout switch must not drop user-message
|
|
144
|
+
* heights). Text uses length as the proxy: full-text hashing per row per
|
|
145
|
+
* frame would defeat virtualization's budget, and a same-length miss only
|
|
146
|
+
* degrades to the previous behavior.
|
|
147
|
+
*
|
|
148
|
+
* Returns a PARTS VECTOR instead of a joined string: the caller compares
|
|
149
|
+
* slot-by-slot against the cached vector (all primitives), allocating only
|
|
150
|
+
* when a row's inputs actually changed. Building a joined string per row
|
|
151
|
+
* per render was O(rows) allocation churn on every scroll tick — the GC
|
|
152
|
+
* share of the long-session scroll profile.
|
|
153
|
+
*
|
|
154
|
+
* The vector is a MODULE-LEVEL SCRATCH BUFFER: single-threaded synchronous
|
|
155
|
+
* render makes reuse safe, and the unchanged case (the overwhelming
|
|
156
|
+
* majority) allocates nothing. Callers that retain the vector must copy
|
|
157
|
+
* (parts.slice()).
|
|
158
|
+
*/
|
|
159
|
+
const signatureScratch = [];
|
|
160
|
+
function signatureParts(row, columns, expanded, expandedRows, streamViewToggledRows, thinkingVisible, thinkingFold, diffLayout, foldTerminalCommand, model, failureHintRowId, failureHint, displayTextLen, sessionCwd) {
|
|
161
|
+
signatureScratch.length = 0;
|
|
162
|
+
// Universal height inputs: width reflows every row; kind switches height
|
|
163
|
+
// semantics wholesale; text length drives wrapping. `displayTextLen` is the
|
|
164
|
+
// REVEALED length while smooth streaming is painting (the height follows
|
|
165
|
+
// what is on screen, not what has arrived).
|
|
166
|
+
signatureScratch.push(columns, row.kind, displayTextLen);
|
|
167
|
+
const images = row.images;
|
|
168
|
+
signatureScratch.push(images?.length ?? 0);
|
|
169
|
+
if (images?.length === 1) {
|
|
170
|
+
signatureScratch.push(images[0].width, images[0].height);
|
|
171
|
+
}
|
|
172
|
+
switch (row.kind) {
|
|
173
|
+
case 'assistant':
|
|
174
|
+
// Streaming vs settled swaps renderers; Ctrl+O/per-row expand adds the
|
|
175
|
+
// metadata row (model only renders expanded — keeps an idle /model
|
|
176
|
+
// switch from touching settled rows).
|
|
177
|
+
signatureScratch.push(row.streaming === true, expanded, expandedRows.has(row.id), expanded ? model : '');
|
|
178
|
+
break;
|
|
179
|
+
case 'reasoning':
|
|
180
|
+
// thinkingFold (preview vs full), its per-row live override, and the
|
|
181
|
+
// visibility filter all change the card's height.
|
|
182
|
+
signatureScratch.push(row.streaming === true, expanded, expandedRows.has(row.id), streamViewToggledRows.has(row.id), thinkingVisible, thinkingFold);
|
|
183
|
+
break;
|
|
184
|
+
case 'tool': {
|
|
185
|
+
const tool = row.tool;
|
|
186
|
+
signatureScratch.push(expanded, expandedRows.has(row.id), diffLayout,
|
|
187
|
+
// Terminal header folding changes the header's height the same way
|
|
188
|
+
// diffLayout changes the body's — without it, a /settings toggle
|
|
189
|
+
// leaves already-mounted tool cards at their stale cached height.
|
|
190
|
+
foldTerminalCommand, tool?.status ?? '', tool?.resultText?.length ?? 0, tool?.resultFull?.length ?? 0, tool?.errorText?.length ?? 0, row.id === failureHintRowId ? failureHint ?? '' : '');
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
case 'subagent':
|
|
194
|
+
// 卡片高度输入:running→settled 折叠 waterfall+tool 行(5→1 行),
|
|
195
|
+
// failed 增加 error 行。缺这些字段的话 offscreen 结算后 cached
|
|
196
|
+
// height 永不过期 → 滚回 blank band / 滚不到底。
|
|
197
|
+
signatureScratch.push(row.subagent?.status ?? '', row.subagent?.toolCalls.length ?? 0, row.subagent?.outputLines.length ?? 0, row.subagent?.error?.length ?? 0);
|
|
198
|
+
break;
|
|
199
|
+
case 'compact':
|
|
200
|
+
// Folded one-liner vs full summary text.
|
|
201
|
+
signatureScratch.push(expanded, expandedRows.has(row.id));
|
|
202
|
+
break;
|
|
203
|
+
case 'user':
|
|
204
|
+
// T06: the selection indicator line above the bubble adds one rendered
|
|
205
|
+
// row whose text wraps with width — its presence and content length
|
|
206
|
+
// are height inputs. Missing this would leave offscreen spacer heights
|
|
207
|
+
// stale when the field arrives (scroll jump, DESIGN R4).
|
|
208
|
+
// T-FIX-01: the indicator renders the cwd-relative display path, so
|
|
209
|
+
// the signature hashes THAT string — a cwd switch (/workspace) that
|
|
210
|
+
// changes the display form must invalidate the cached height too.
|
|
211
|
+
// width is the display-CELL width (emoji / CJK / combining / ANSI
|
|
212
|
+
// differ from JS length), not the JS string length — two paths with
|
|
213
|
+
// equal length but different terminal widths must not share a cached
|
|
214
|
+
// height (coderabbit review, repo width convention).
|
|
215
|
+
signatureScratch.push(row.selectionAttached === undefined ? 0 : 1, stringWidth(displaySelectionPath(row.selectionAttached?.path ?? '', sessionCwd)), String(row.selectionAttached?.lines ?? ''));
|
|
216
|
+
// Long-line fold: expanding a folded row swaps the folded preview for
|
|
217
|
+
// the raw line (thousands of rows), so both expansion switches are
|
|
218
|
+
// height inputs on user rows too — same rationale as the default arm.
|
|
219
|
+
signatureScratch.push(expanded, expandedRows.has(row.id));
|
|
220
|
+
break;
|
|
221
|
+
default:
|
|
222
|
+
// notice / interrupt / local / local-output: height follows
|
|
223
|
+
// text + columns alone (selection/background never change height) —
|
|
224
|
+
// EXCEPT the long-line fold: expanding a folded row swaps ~10 rows of
|
|
225
|
+
// folded text for the raw line (thousands), so both expansion switches
|
|
226
|
+
// are height inputs here too. Without them the stale cached height
|
|
227
|
+
// feeds topPad/bottomPad and the offsets scan, and the expanded tail
|
|
228
|
+
// can end up unreachable behind a wrong scroll range.
|
|
229
|
+
signatureScratch.push(expanded, expandedRows.has(row.id));
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
return signatureScratch;
|
|
233
|
+
}
|
|
234
|
+
export function MessageList({ rows, expanded, expandedRows, selectedId, onToggleRow, streamViewToggledRows = NO_STREAM_VIEW_TOGGLED, onToggleStreamView = NOOP_TOGGLE_STREAM_VIEW, model, diffLayout = 'auto', thinkingFold = 'preview', toolBackground = 'none', foldTerminalCommand = false, smoothStreaming = false, activityFrames, showAll, onToggleAll, onLoadOlder, thinkingVisible = true, historyPaintEnabled = true, registerRowRef, scrollHandle, forceMountRowId, newSinceRowId, onUnseenCount, onTimeline, failureHintRowId, failureHint, onOpenSubagent, onOpenJobs, onOpenFile, sessionCwd, onPreviewImage, suppressImageGraphics = false, }) {
|
|
235
|
+
const lang = React.useSyncExternalStore(subscribeLang, getLang);
|
|
236
|
+
const hiddenCount = rows.length - RENDERED_ROW_CAP;
|
|
237
|
+
// The thinking filter runs BEFORE virtualization so window indices line up.
|
|
238
|
+
//
|
|
239
|
+
// Fingerprint memo: every scroll tick re-rendered this pipeline even when
|
|
240
|
+
// nothing changed — slice + filter allocate a fresh rows-length array and
|
|
241
|
+
// the margins pre-pass allocates a Map with one entry per row (3200-row
|
|
242
|
+
// session ⇒ ~200KB churn per 16ms tick, the GC share of the scroll
|
|
243
|
+
// profile). The inputs are all identity-stable across ticks: channel.rows
|
|
244
|
+
// is a live in-place array (identity changes only on rewind/new session),
|
|
245
|
+
// showAll/thinkingVisible are React state. Rows APPENDED in place keep the
|
|
246
|
+
// identity — the cache must key on rows.length too (streaming appends).
|
|
247
|
+
const visibleRowsCacheRef = React.useRef(null);
|
|
248
|
+
/** Generation counter for the visibleRows cache (timeline memo key). */
|
|
249
|
+
const visGenRef = React.useRef(0);
|
|
250
|
+
const visibleCache = visibleRowsCacheRef.current;
|
|
251
|
+
// Streaming-bit fingerprint: in-place `streaming = false` writes (turn
|
|
252
|
+
// settle) are invisible to the rows-identity/length key above, but an
|
|
253
|
+
// assistant row that settles with EMPTY text crosses the empty-assistant
|
|
254
|
+
// filter boundary (visible-while-streaming → filtered-when-settled).
|
|
255
|
+
// Allocation-free scan; rebuild only when a bit actually flipped.
|
|
256
|
+
let streamBitsSame = visibleCache !== null && visibleCache.streamBits.length === rows.length;
|
|
257
|
+
if (streamBitsSame) {
|
|
258
|
+
const bits = visibleCache.streamBits;
|
|
259
|
+
for (let i = 0; i < rows.length; i++) {
|
|
260
|
+
if (bits[i] !== (rows[i].streaming === true ? 1 : 0)) {
|
|
261
|
+
streamBitsSame = false;
|
|
262
|
+
break;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
if (visibleCache === null ||
|
|
267
|
+
visibleCache.rows !== rows ||
|
|
268
|
+
visibleCache.rowsLength !== rows.length ||
|
|
269
|
+
visibleCache.showAll !== (showAll || hiddenCount <= 0) ||
|
|
270
|
+
visibleCache.thinkingVisible !== thinkingVisible ||
|
|
271
|
+
!streamBitsSame) {
|
|
272
|
+
const sliced = showAll || hiddenCount <= 0
|
|
273
|
+
? rows
|
|
274
|
+
: rows.slice(hiddenCount);
|
|
275
|
+
// Empty settled assistant rows (PR #383's duplicate-dot bug): when the
|
|
276
|
+
// model calls a tool without producing text, the assistant/message event
|
|
277
|
+
// carries empty text — rendered as a lone `●` bullet dangling above the
|
|
278
|
+
// tool card. Filter them BEFORE virtualization (not by rendering null in
|
|
279
|
+
// TranscriptRow): a null row never mounts, never enters paintedOnce, and
|
|
280
|
+
// would stall the main-screen history-paint batch loop forever. A row
|
|
281
|
+
// that is STILL STREAMING keeps its place even with empty text — the
|
|
282
|
+
// live dot is the "model is answering" affordance and content may yet
|
|
283
|
+
// arrive.
|
|
284
|
+
// The emptiness test must match what RENDERING shows: the `⏵`
|
|
285
|
+
// self-narration line (dsh-working-activity narrate contract) is
|
|
286
|
+
// stripped at render (stripNarration below), so a narration-only step —
|
|
287
|
+
// thinking, `⏵ …` line, straight to a tool call — has non-empty raw
|
|
288
|
+
// text but RENDERS as that same lone `●`. Test the stripped text, or
|
|
289
|
+
// the raw-text check lets the dot through forever.
|
|
290
|
+
const rendersEmptyAssistant = (row) => row.kind === 'assistant' &&
|
|
291
|
+
row.streaming !== true &&
|
|
292
|
+
stripNarration(row.text ?? '').trim() === '' &&
|
|
293
|
+
(row.images?.length ?? 0) === 0;
|
|
294
|
+
let hasEmptyAssistant = false;
|
|
295
|
+
for (const row of sliced) {
|
|
296
|
+
if (rendersEmptyAssistant(row)) {
|
|
297
|
+
hasEmptyAssistant = true;
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
const out = hasEmptyAssistant
|
|
302
|
+
? sliced.filter(row => !rendersEmptyAssistant(row) &&
|
|
303
|
+
(thinkingVisible || row.kind !== 'reasoning'))
|
|
304
|
+
: thinkingVisible
|
|
305
|
+
? sliced
|
|
306
|
+
: sliced.filter(row => row.kind !== 'reasoning');
|
|
307
|
+
// Every rendered block gets a 1-row top margin except the
|
|
308
|
+
// first. Pre-pass over the FULL list so a windowed row keeps the exact
|
|
309
|
+
// spacing it would have in a fully-mounted list.
|
|
310
|
+
const margins = new Map();
|
|
311
|
+
{
|
|
312
|
+
let prev;
|
|
313
|
+
for (const row of out) {
|
|
314
|
+
margins.set(row.id, prev !== undefined);
|
|
315
|
+
prev = row.kind;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
const streamBits = new Uint8Array(rows.length);
|
|
319
|
+
for (let i = 0; i < rows.length; i++)
|
|
320
|
+
streamBits[i] = rows[i].streaming === true ? 1 : 0;
|
|
321
|
+
visibleRowsCacheRef.current = {
|
|
322
|
+
rows,
|
|
323
|
+
rowsLength: rows.length,
|
|
324
|
+
showAll: showAll || hiddenCount <= 0,
|
|
325
|
+
thinkingVisible,
|
|
326
|
+
out,
|
|
327
|
+
margins,
|
|
328
|
+
streamBits,
|
|
329
|
+
};
|
|
330
|
+
visGenRef.current++;
|
|
331
|
+
}
|
|
332
|
+
const visibleRows = visibleRowsCacheRef.current.out;
|
|
333
|
+
const margins = visibleRowsCacheRef.current.margins;
|
|
334
|
+
// Selection keeps its highlight; expanded rows render with no fill (the
|
|
335
|
+
// diff line tints inside cards are the only backgrounds in the transcript).
|
|
336
|
+
const rowBackground = (rowId) => {
|
|
337
|
+
const isSelected = selectedId === rowId;
|
|
338
|
+
if (isSelected)
|
|
339
|
+
return 'messageActionsBackground';
|
|
340
|
+
return undefined;
|
|
341
|
+
};
|
|
342
|
+
// --- layout virtualization ---------------------------------------------
|
|
343
|
+
const { columns, rows: termRows } = useTerminalSize();
|
|
344
|
+
// Smooth-reveal wakeups: the scheduler's tick bumps this hook, re-running
|
|
345
|
+
// MessageList so the revealed `text`/line-count reads below feed fresh
|
|
346
|
+
// values through the same MemoRow-prop pipeline an arriving chunk uses —
|
|
347
|
+
// memo miss → re-render → post-commit height re-measure. Without this
|
|
348
|
+
// subscription a reveal living in child state would change row heights
|
|
349
|
+
// invisibly to the virtualization (stale cached heights → blank bands).
|
|
350
|
+
// DefaultLane on purpose (useRevealVersion): a useSyncExternalStore wakeup
|
|
351
|
+
// would force a SyncLane render per 33ms tick, and each such commit ending
|
|
352
|
+
// with streaming work still pending feeds React's nested-update counter
|
|
353
|
+
// until error #185 kills the process (beta.3).
|
|
354
|
+
useRevealVersion();
|
|
355
|
+
// Measured row heights, remembered after a row unmounts so virtualization
|
|
356
|
+
// can compute total content height. Bounded: row ids grow monotonically
|
|
357
|
+
// and rows are never removed from the transcript (foldRows keeps the
|
|
358
|
+
// row), so without a cap this Map grew by one entry per row forever.
|
|
359
|
+
// Eviction is FIFO (oldest row first); a forgotten height falls back to
|
|
360
|
+
// DEFAULT_ROW_HEIGHT, which only perturbs deep scrollback estimates.
|
|
361
|
+
const HEIGHTS_CACHE_MAX = 5000;
|
|
362
|
+
const heightsRef = React.useRef(new Map());
|
|
363
|
+
/** Geometry version: bumped at EVERY heightsRef mutation so downstream
|
|
364
|
+
* memos (timeline tops) can key on it instead of re-deriving offsets. */
|
|
365
|
+
const heightsVersionRef = React.useRef(0);
|
|
366
|
+
const localRefs = React.useRef(new Map());
|
|
367
|
+
/** Row ids that have been mounted (and therefore painted into the
|
|
368
|
+
* terminal) at least once. The sticky window may skip a row ONLY after
|
|
369
|
+
* this: an unpainted row above the window has no scrollback copy, so
|
|
370
|
+
* skipping it would erase it from the user's history entirely — preset
|
|
371
|
+
* history at boot (session resume) landed exactly there. Cleared when
|
|
372
|
+
* the list head changes identity (rewind / new session / loadOlder
|
|
373
|
+
* prepends restored rows that must paint again). */
|
|
374
|
+
const paintedOnceRef = React.useRef(new Set());
|
|
375
|
+
const paintedBaseRef = React.useRef(undefined);
|
|
376
|
+
/** Window-expansion hold: after the window WIDENS (new rows mounted),
|
|
377
|
+
* refuse to tighten until a frame containing that layout has actually
|
|
378
|
+
* been FLUSHED to the terminal (flush-tick based, issue #574). React
|
|
379
|
+
* commits and terminal writes are decoupled — the throttled deferred
|
|
380
|
+
* leading edge lets a later commit supersede the wide one inside the
|
|
381
|
+
* same task, so a wall-clock hold (the old 120ms timer) expires during
|
|
382
|
+
* long cold-cache layout work (~190ms on the repro) and the measure-tick
|
|
383
|
+
* re-render still drops the rows before a single byte of them was
|
|
384
|
+
* written; never-mounted rows have no scrollback copy and preset history
|
|
385
|
+
* vanishes. Once flushed, tightening is visually free: those rows sit in
|
|
386
|
+
* scrollback and the diff skips them. */
|
|
387
|
+
const lastStartRef = React.useRef(-1);
|
|
388
|
+
const holdFlushTickRef = React.useRef(-1);
|
|
389
|
+
/** True when frame-budgeted history painting still has batches left
|
|
390
|
+
* (main-screen open): the layout effect schedules the next slice. */
|
|
391
|
+
const paintPendingRef = React.useRef(false);
|
|
392
|
+
const paintTimerRef = React.useRef(null);
|
|
393
|
+
/** Persistent history-paint edge: how far batched painting has advanced
|
|
394
|
+
* (index into visibleRows). -1 = not painting / reset (list head change:
|
|
395
|
+
* rewind, new session, loadOlder — must repaint from scratch). */
|
|
396
|
+
const paintEdgeRef = React.useRef(-1);
|
|
397
|
+
const listHeadId = visibleRows[0]?.id;
|
|
398
|
+
if (listHeadId !== undefined && paintedBaseRef.current !== undefined && listHeadId !== paintedBaseRef.current) {
|
|
399
|
+
paintedOnceRef.current = new Set();
|
|
400
|
+
// History repaints from scratch after a head change too (rewind /
|
|
401
|
+
// loadOlder prepends rows that must paint again).
|
|
402
|
+
paintEdgeRef.current = -1;
|
|
403
|
+
}
|
|
404
|
+
if (listHeadId !== undefined)
|
|
405
|
+
paintedBaseRef.current = listHeadId;
|
|
406
|
+
/** Content-space offset of visibleRows[0] (header + dividers), measured. */
|
|
407
|
+
const baseRef = React.useRef(null);
|
|
408
|
+
const measureTimerRef = React.useRef(null);
|
|
409
|
+
const [, setMeasureTick] = React.useState(0);
|
|
410
|
+
const [, setScrollTick] = React.useState(0);
|
|
411
|
+
React.useEffect(() => () => {
|
|
412
|
+
if (measureTimerRef.current !== null) {
|
|
413
|
+
clearTimeout(measureTimerRef.current);
|
|
414
|
+
measureTimerRef.current = null;
|
|
415
|
+
}
|
|
416
|
+
if (paintTimerRef.current !== null) {
|
|
417
|
+
clearTimeout(paintTimerRef.current);
|
|
418
|
+
paintTimerRef.current = null;
|
|
419
|
+
}
|
|
420
|
+
}, []);
|
|
421
|
+
// A width change reflows every row — all measurements are stale.
|
|
422
|
+
const lastColumns = React.useRef(columns);
|
|
423
|
+
if (lastColumns.current !== columns) {
|
|
424
|
+
lastColumns.current = columns;
|
|
425
|
+
heightsRef.current.clear();
|
|
426
|
+
heightsVersionRef.current++;
|
|
427
|
+
baseRef.current = null;
|
|
428
|
+
}
|
|
429
|
+
// --- layout signature: stale-height invalidation ------------------------
|
|
430
|
+
// heightsRef entries outlive the commits that measured them, but many
|
|
431
|
+
// state changes rewrite a row's height WITHOUT a columns change: Ctrl+O
|
|
432
|
+
// (expanded), single-row expand (expandedRows), reasoning stream→fold,
|
|
433
|
+
// a tool result/error/footnote arriving, diff layout switch, assistant
|
|
434
|
+
// text growth, thinking visibility. A cached height from before such a
|
|
435
|
+
// change feeds topPad/bottomPad spacers, the offsets scan, and the
|
|
436
|
+
// ScrollBox clamps with geometry that no longer exists — blank bands,
|
|
437
|
+
// overlapping rows, wrong scrollTop after toggles (the audit's stale
|
|
438
|
+
// height cache). Track the inputs that decide each row's height; when
|
|
439
|
+
// one changes, drop the cached height. The window extension further
|
|
440
|
+
// down remounts invalidated rows so useLayoutEffect re-measures them.
|
|
441
|
+
// Text identity uses length as an O(1) proxy — per-frame full-text
|
|
442
|
+
// hashing over every row would defeat virtualization's budget, and a
|
|
443
|
+
// same-length miss only degrades to the previous behavior.
|
|
444
|
+
//
|
|
445
|
+
// VECTORS, not strings: the cache stores the parts VECTOR and the
|
|
446
|
+
// comparison is slot-by-slot — the unchanged case (every settled row on
|
|
447
|
+
// every scroll tick) allocates nothing. A joined string per row per
|
|
448
|
+
// render was O(rows) garbage per tick (3200-row session ⇒ several MB/s
|
|
449
|
+
// into minor GC; the GC share of the scroll profile).
|
|
450
|
+
const sigRef = React.useRef(new Map());
|
|
451
|
+
{
|
|
452
|
+
const sigs = sigRef.current;
|
|
453
|
+
for (let i = 0; i < visibleRows.length; i++) {
|
|
454
|
+
const row = visibleRows[i];
|
|
455
|
+
// Per-kind signature: only the inputs that row's OWN renderer consumes.
|
|
456
|
+
// A global flat array (every field × every row) over-invalidates — a
|
|
457
|
+
// /settings diffLayout switch used to drop every user/assistant/
|
|
458
|
+
// reasoning height at once, remounting the widened window over rows
|
|
459
|
+
// whose rendering never changed (Yoga spike + measure churn for
|
|
460
|
+
// nothing). Base parts cover the universal height inputs.
|
|
461
|
+
const parts = signatureParts(row, columns, expanded, expandedRows, streamViewToggledRows, thinkingVisible, thinkingFold, diffLayout, foldTerminalCommand, model, failureHintRowId, failureHint, revealDisplayLen(row, smoothStreaming), sessionCwd);
|
|
462
|
+
const cachedParts = sigs.get(row.id);
|
|
463
|
+
let same = false;
|
|
464
|
+
if (cachedParts !== undefined && cachedParts.length === parts.length) {
|
|
465
|
+
same = true;
|
|
466
|
+
for (let s = 0; s < parts.length; s++) {
|
|
467
|
+
if (parts[s] !== cachedParts[s]) {
|
|
468
|
+
same = false;
|
|
469
|
+
break;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
if (same)
|
|
474
|
+
continue;
|
|
475
|
+
if (sigs.size >= HEIGHTS_CACHE_MAX) {
|
|
476
|
+
const oldest = sigs.keys().next().value;
|
|
477
|
+
if (oldest !== undefined)
|
|
478
|
+
sigs.delete(oldest);
|
|
479
|
+
}
|
|
480
|
+
// Copy out of the module-level scratch buffer — the next row reuses it.
|
|
481
|
+
sigs.set(row.id, parts.slice());
|
|
482
|
+
heightsRef.current.delete(row.id);
|
|
483
|
+
heightsVersionRef.current++;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
// Scrolling bypasses React (imperative DOM scrollTop): subscribe so the
|
|
487
|
+
// window follows the viewport.
|
|
488
|
+
React.useEffect(() => {
|
|
489
|
+
if (!scrollHandle)
|
|
490
|
+
return;
|
|
491
|
+
const tick = () => { setScrollTick(t => t + 1); };
|
|
492
|
+
return scrollHandle.subscribe(tick);
|
|
493
|
+
}, [scrollHandle]);
|
|
494
|
+
// Cached rail/header preview per user row (see the timeline block for why
|
|
495
|
+
// the length guard exists alongside the id key).
|
|
496
|
+
const previewCacheRef = React.useRef(new Map());
|
|
497
|
+
const heightOf = (row) => heightsRef.current.get(row.id) ?? DEFAULT_ROW_HEIGHT;
|
|
498
|
+
// Reused offsets buffer: the prefix-scan itself must run every render
|
|
499
|
+
// (heightsRef mutates in the measure effect), but the ARRAY need not be
|
|
500
|
+
// fresh — offsets never escapes this render scope. A new 3200-slot array
|
|
501
|
+
// per scroll tick was pure GC fodder.
|
|
502
|
+
const offsetsBufRef = React.useRef([]);
|
|
503
|
+
const offsets = offsetsBufRef.current;
|
|
504
|
+
offsets.length = visibleRows.length;
|
|
505
|
+
let total = 0;
|
|
506
|
+
for (let i = 0; i < visibleRows.length; i++) {
|
|
507
|
+
offsets[i] = total;
|
|
508
|
+
total += heightOf(visibleRows[i]);
|
|
509
|
+
}
|
|
510
|
+
const scrollTop = scrollHandle?.getScrollTop() ?? 0;
|
|
511
|
+
const pending = scrollHandle?.getPendingDelta() ?? 0;
|
|
512
|
+
const viewport = scrollHandle?.getViewportHeight() ?? 24;
|
|
513
|
+
const sticky = scrollHandle?.isSticky() ?? true;
|
|
514
|
+
const base = baseRef.current ?? DEFAULT_HEADER_LINES;
|
|
515
|
+
// Mount the union of the committed position and any in-flight pending
|
|
516
|
+
// delta, plus overscan; when sticky, always reach the tail (streaming row).
|
|
517
|
+
const relTop = Math.min(scrollTop, scrollTop + pending) - OVERSCAN_LINES - base;
|
|
518
|
+
const relBottom = Math.max(scrollTop, scrollTop + pending) + viewport + OVERSCAN_LINES - base;
|
|
519
|
+
let start = 0;
|
|
520
|
+
while (start < visibleRows.length && offsets[start] + heightOf(visibleRows[start]) <= relTop)
|
|
521
|
+
start++;
|
|
522
|
+
// Resize invalidates cached heights, so a manual scrollTop can overshoot
|
|
523
|
+
// the entire estimated list. Keep its last row mounted to re-measure:
|
|
524
|
+
// an empty window has no measurement wakeup and collapses scrollHeight,
|
|
525
|
+
// leaving the transcript blank and the gutter believing nothing scrolls.
|
|
526
|
+
if (start === visibleRows.length && start > 0)
|
|
527
|
+
start--;
|
|
528
|
+
let end = start;
|
|
529
|
+
while (end < visibleRows.length && offsets[end] < relBottom)
|
|
530
|
+
end++;
|
|
531
|
+
if (sticky || !scrollHandle)
|
|
532
|
+
end = visibleRows.length;
|
|
533
|
+
// Pinned to bottom: the tail row must stay mounted EVERY pass. The
|
|
534
|
+
// streaming row's measured height only lands in heightsRef when it
|
|
535
|
+
// survives mounted across two consecutive commits (useLayoutEffect reads
|
|
536
|
+
// the previous Yoga pass). If an underestimated `total` ever lets relTop
|
|
537
|
+
// overshoot it, start=len unmounts everything → content collapses to the
|
|
538
|
+
// header → follow yanks scrollTop to 0 → next pass remounts all → follow
|
|
539
|
+
// back to the real bottom: a self-sustaining ping-pong that blanks the
|
|
540
|
+
// transcript mid-stream.
|
|
541
|
+
if (sticky && visibleRows.length > 0) {
|
|
542
|
+
// Sticky (follow-bottom): the viewport shows the TAIL of the content —
|
|
543
|
+
// mount exactly the tail window the floor walk covers, not everything
|
|
544
|
+
// from the scrollTop scan. Main-screen ScrollBox reports its viewport
|
|
545
|
+
// as the CONTENT height (the terminal itself is the scroller), so both
|
|
546
|
+
// the scan and an unclamped floor walk mount EVERY row in long
|
|
547
|
+
// sessions — and React's commit traverses every fiber of every mounted
|
|
548
|
+
// row per frame (measured as the dominant long-session stall). The
|
|
549
|
+
// user only ever sees terminal rows: clamp the walk-back coverage to
|
|
550
|
+
// the TERMINAL viewport plus overscan.
|
|
551
|
+
start = Math.min(start, visibleRows.length - 1);
|
|
552
|
+
// Blank-band guard: sticky scrollTop tracks the renderer's FRESH Yoga
|
|
553
|
+
// scrollHeight, while these offsets use per-row heights measured one to
|
|
554
|
+
// two commits late. During fast streaming the accurate scrollTop scans
|
|
555
|
+
// deeper through the underestimated offsets than the real viewport does,
|
|
556
|
+
// unmounting rows that are still on screen (visible spacer band). Walk
|
|
557
|
+
// backwards from the tail with the known heights and mount at least one
|
|
558
|
+
// terminal viewport plus overscan of content above it, so the window
|
|
559
|
+
// can never open a gap inside what the user is looking at.
|
|
560
|
+
let covered = Math.min(viewport, termRows) + OVERSCAN_LINES;
|
|
561
|
+
let floor = visibleRows.length - 1;
|
|
562
|
+
while (floor > 0 && covered > 0) {
|
|
563
|
+
covered -= heightOf(visibleRows[floor]);
|
|
564
|
+
floor--;
|
|
565
|
+
}
|
|
566
|
+
// The walk exhausted the whole list: every row is within coverage —
|
|
567
|
+
// floor+1 here would drop row 0 (its content then has no terminal copy
|
|
568
|
+
// anywhere; preset history lost its head — CI repro-inline-scrollback).
|
|
569
|
+
start = floor === 0 && covered > 0 ? 0 : floor + 1;
|
|
570
|
+
// Paint-at-least-once: extend the window over any row that has never
|
|
571
|
+
// been mounted. A row the window skips keeps only its terminal/scrollback
|
|
572
|
+
// copy — a row that was never painted has NO copy anywhere, so preset
|
|
573
|
+
// history (session resume, repro-inline-scrollback's #39 family) would
|
|
574
|
+
// vanish from the user's scrollback. Extending mounts everything above
|
|
575
|
+
// on the first frame (topPad 0, full paint), then the set fills and the
|
|
576
|
+
// window tightens to the tail.
|
|
577
|
+
// MAIN-SCREEN ONLY (historyPaintEnabled): the alt-screen has no
|
|
578
|
+
// scrollback — a row outside the window has no "copy" to preserve, and
|
|
579
|
+
// mounting the whole fold window on open lexed/highlighted/laid out
|
|
580
|
+
// hundreds of markdown rows the user never sees (measured: 4.3s of
|
|
581
|
+
// saturated main thread before first paint on a 960-row session; the
|
|
582
|
+
// virtualization window re-mounts rows on demand as they scroll in).
|
|
583
|
+
// FRAME-BUDGETED: mounting the whole window in ONE commit saturated the
|
|
584
|
+
// main thread for seconds (measured 6s wall with ZERO frames in the
|
|
585
|
+
// first second on an 800-row inline open — every input queued behind
|
|
586
|
+
// the React render). Extend in batches of ~2 viewports of measured
|
|
587
|
+
// height per commit instead; the pending-batch effect schedules the
|
|
588
|
+
// next slice, so the app paints, drains input, and stays interactive
|
|
589
|
+
// while history streams in above the fold (opencode-style progressive
|
|
590
|
+
// transcript hydration; the terminal accepts rows whenever they land).
|
|
591
|
+
const paintedOnce = paintedOnceRef.current;
|
|
592
|
+
let paintPending = false;
|
|
593
|
+
if (historyPaintEnabled) {
|
|
594
|
+
// Persistent batch edge: the sticky floor-walk RESETS start to the
|
|
595
|
+
// tail every frame, so a per-frame budget walk from `start` re-spends
|
|
596
|
+
// its whole budget on already-painted rows and never reaches deeper
|
|
597
|
+
// unpainted ones (measured: an infinite 0.3ms/frame batch loop).
|
|
598
|
+
// Remember how far painting has advanced; each batch extends THAT
|
|
599
|
+
// edge upward by the budget.
|
|
600
|
+
if (paintEdgeRef.current < 0)
|
|
601
|
+
paintEdgeRef.current = start;
|
|
602
|
+
let firstUnpainted = -1;
|
|
603
|
+
for (let i = 0; i < paintEdgeRef.current; i++) {
|
|
604
|
+
if (!paintedOnce.has(visibleRows[i].id)) {
|
|
605
|
+
firstUnpainted = i;
|
|
606
|
+
break;
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
if (firstUnpainted !== -1) {
|
|
610
|
+
// Budget: extend the paint edge upward by ~half a viewport of
|
|
611
|
+
// measured content per commit (height estimates; unknown rows fall
|
|
612
|
+
// back to DEFAULT_ROW_HEIGHT and over-mount slightly — harmless).
|
|
613
|
+
// Measured: larger batches (2 viewports) put 50ms+ of first-wrap
|
|
614
|
+
// yoga into one frame; half a viewport keeps batches near the
|
|
615
|
+
// 16ms frame budget while still finishing an 800-row open in
|
|
616
|
+
// well under two seconds of background batches.
|
|
617
|
+
let budget = Math.min(viewport, termRows) / 2 + OVERSCAN_LINES;
|
|
618
|
+
let j = paintEdgeRef.current;
|
|
619
|
+
while (j > firstUnpainted && budget > 0) {
|
|
620
|
+
j--;
|
|
621
|
+
budget -= heightOf(visibleRows[j]);
|
|
622
|
+
}
|
|
623
|
+
paintEdgeRef.current = j;
|
|
624
|
+
start = Math.min(start, j);
|
|
625
|
+
paintPending = j > 0;
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
else {
|
|
629
|
+
paintEdgeRef.current = -1;
|
|
630
|
+
}
|
|
631
|
+
paintPendingRef.current = paintPending;
|
|
632
|
+
// Unknown-height extension (layout signature, see sigRef): a row whose
|
|
633
|
+
// cached height was just INVALIDATED must remount to re-measure even
|
|
634
|
+
// when it sits outside the window — its spacer otherwise falls back to
|
|
635
|
+
// DEFAULT_ROW_HEIGHT until the row scrolls back into view, leaving the
|
|
636
|
+
// content geometry wrong for exactly that long (blank band after
|
|
637
|
+
// Ctrl+O, unreachable scroll bottom after a tool result lands). One
|
|
638
|
+
// remount per change; the measure tick + hold then tighten again.
|
|
639
|
+
// Guard 1: only rows that have actually MOUNTED here once qualify
|
|
640
|
+
// (paintedOnce fills from localRefs post-commit) — a brand-new
|
|
641
|
+
// streaming row has never been measured, and extending over it would
|
|
642
|
+
// mount everything below the window every frame while the user reads
|
|
643
|
+
// scrolled-up (virtualization defeated, per-frame full mount = the
|
|
644
|
+
// long-session stall). New rows keep the original path: their height
|
|
645
|
+
// lands once the window reaches them.
|
|
646
|
+
// Guard 2: rows actively STREAMING are skipped too. A streaming row's
|
|
647
|
+
// signature invalidates EVERY chunk (text length grows), so a painted
|
|
648
|
+
// streaming row below/above the window remounted per chunk — full
|
|
649
|
+
// markdown re-lex + wrap of the whole growing text, invisible to the
|
|
650
|
+
// user reading history (measured: 3s of streaming while scrolled up
|
|
651
|
+
// burned 2.5s of yoga and +84MB heap). Its height is in flux anyway;
|
|
652
|
+
// the final settle invalidates once more and remounts exactly once.
|
|
653
|
+
for (let i = 0; i < start; i++) {
|
|
654
|
+
if (visibleRows[i].streaming === true)
|
|
655
|
+
continue;
|
|
656
|
+
const rowId = visibleRows[i].id;
|
|
657
|
+
if (!heightsRef.current.has(rowId) && paintedOnceRef.current.has(rowId)) {
|
|
658
|
+
start = i;
|
|
659
|
+
break;
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
// Expansion hold — AFTER the extension so it tracks the FINAL window:
|
|
663
|
+
// never tighten past a widen until a frame with that layout has been
|
|
664
|
+
// flushed (getTerminalFlushTick advanced since the widen). A mount
|
|
665
|
+
// followed by the measure-tick re-render that drops the row paints only
|
|
666
|
+
// the DROPPED layout, and the row's painted-once mark (set at the first
|
|
667
|
+
// commit) is a lie; holding until the flush makes the mark real.
|
|
668
|
+
if (lastStartRef.current >= 0 &&
|
|
669
|
+
start > lastStartRef.current &&
|
|
670
|
+
getTerminalFlushTick() === holdFlushTickRef.current) {
|
|
671
|
+
start = lastStartRef.current;
|
|
672
|
+
}
|
|
673
|
+
if (lastStartRef.current < 0 || start < lastStartRef.current) {
|
|
674
|
+
holdFlushTickRef.current = getTerminalFlushTick();
|
|
675
|
+
}
|
|
676
|
+
lastStartRef.current = start;
|
|
677
|
+
}
|
|
678
|
+
// Tail-side invalidated-height extension (see the start-side loop above
|
|
679
|
+
// for the rationale and both guards): rows BELOW the window whose height
|
|
680
|
+
// was just invalidated remount to re-measure, so bottomPad keeps real
|
|
681
|
+
// geometry while the user reads scrolled-up content and the tail streams.
|
|
682
|
+
// Runs for non-sticky views; sticky mounts the tail anyway. Streaming
|
|
683
|
+
// rows are skipped — THIS loop is the measured hot path of the
|
|
684
|
+
// read-while-streaming stall (the streaming tail row sits below the
|
|
685
|
+
// window and invalidated per chunk).
|
|
686
|
+
for (let i = end; i < visibleRows.length; i++) {
|
|
687
|
+
if (visibleRows[i].streaming === true)
|
|
688
|
+
continue;
|
|
689
|
+
const rowId = visibleRows[i].id;
|
|
690
|
+
if (!heightsRef.current.has(rowId) && paintedOnceRef.current.has(rowId))
|
|
691
|
+
end = i + 1;
|
|
692
|
+
}
|
|
693
|
+
if (forceMountRowId !== undefined && forceMountRowId !== null) {
|
|
694
|
+
const idx = visibleRows.findIndex(row => row.id === forceMountRowId);
|
|
695
|
+
if (idx !== -1) {
|
|
696
|
+
start = Math.min(start, idx);
|
|
697
|
+
end = Math.max(end, idx + 1);
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
// The failure footnote is row content, not a seek request. Pinning its
|
|
701
|
+
// row also mounted EVERY later tool card until the trajectory was opened,
|
|
702
|
+
// defeating virtualization for the rest of a tool-heavy conversation.
|
|
703
|
+
// It reappears when scrolled into view; only forceMountRowId widens for a seek.
|
|
704
|
+
const topPad = offsets[start] ?? 0;
|
|
705
|
+
const mountedBottom = end < visibleRows.length ? offsets[end] : total;
|
|
706
|
+
const bottomPad = total - mountedBottom;
|
|
707
|
+
noteListGeometry({
|
|
708
|
+
start,
|
|
709
|
+
end,
|
|
710
|
+
topPad,
|
|
711
|
+
bottomPad,
|
|
712
|
+
total,
|
|
713
|
+
base,
|
|
714
|
+
sticky,
|
|
715
|
+
pending,
|
|
716
|
+
viewport,
|
|
717
|
+
termRows,
|
|
718
|
+
columns,
|
|
719
|
+
rowCount: visibleRows.length,
|
|
720
|
+
});
|
|
721
|
+
// New-messages pill count: rows past the seen-anchor whose top edge is
|
|
722
|
+
// still below the viewport bottom. Same rows-space math as the window
|
|
723
|
+
// (offsets are rows-space, scrollTop content-space — subtract the header
|
|
724
|
+
// base). Decrements as the user scrolls down through the new rows; 0 once
|
|
725
|
+
// every new row has appeared on screen. Reported post-commit (parent
|
|
726
|
+
// setState with an unchanged value is a React no-op, so the per-render
|
|
727
|
+
// effect only re-renders on actual count changes).
|
|
728
|
+
let unseenCount = 0;
|
|
729
|
+
if (newSinceRowId !== null && newSinceRowId !== undefined) {
|
|
730
|
+
const firstNew = visibleRows.findIndex(row => row.id > newSinceRowId);
|
|
731
|
+
if (firstNew !== -1) {
|
|
732
|
+
const seenBottom = scrollTop + viewport - base;
|
|
733
|
+
for (let i = firstNew; i < visibleRows.length; i++) {
|
|
734
|
+
if (offsets[i] >= seenBottom)
|
|
735
|
+
unseenCount++;
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
const lastUnseenReportRef = React.useRef(-1);
|
|
740
|
+
React.useEffect(() => {
|
|
741
|
+
if (unseenCount !== lastUnseenReportRef.current) {
|
|
742
|
+
lastUnseenReportRef.current = unseenCount;
|
|
743
|
+
onUnseenCount?.(unseenCount);
|
|
744
|
+
}
|
|
745
|
+
});
|
|
746
|
+
// Conversation timeline snapshot: one entry per user turn (stable id +
|
|
747
|
+
// content-space text top + preview), plus the viewport-derived targets
|
|
748
|
+
// consumed by BOTH the sticky prompt header (active) and the transcript
|
|
749
|
+
// turn rail (active highlight, ▲/▼). Top-anchored semantics (Grok
|
|
750
|
+
// timeline): active = the LAST turn whose prompt top is at-or-above the
|
|
751
|
+
// viewport top — the turn whose content owns the top row, "the turn
|
|
752
|
+
// being read" — with the first turn standing in while pre-turn content
|
|
753
|
+
// (logo / loaded-context) owns the top. The highlight moves only when a
|
|
754
|
+
// turn boundary crosses the viewport top, never when a later prompt
|
|
755
|
+
// merely becomes visible lower on screen, so it cannot leap when
|
|
756
|
+
// nudging off the bottom and the header/rail can never disagree. The
|
|
757
|
+
// projected top (scrollTop + pending) is used so boundary crossings
|
|
758
|
+
// register during wheel bursts, not one drain frame late. Same
|
|
759
|
+
// rows-space math as the mount window (offsets are rows-space,
|
|
760
|
+
// scrollTop content-space — add the header base). downId additionally
|
|
761
|
+
// requires the turn's top ≤ maxScroll: the renderer clamps scrollTop
|
|
762
|
+
// there, so a turn past it could never own the top row, and naming it
|
|
763
|
+
// would make ▼ repeat itself forever (the stuck-▼ bug). Reported
|
|
764
|
+
// post-commit, only when the signature changes.
|
|
765
|
+
let timelineTurns = [];
|
|
766
|
+
let activeTurnIndex = null;
|
|
767
|
+
let upTurnIndex = null;
|
|
768
|
+
let downTurnIndex = null;
|
|
769
|
+
const timelineMemoRef = React.useRef(null);
|
|
770
|
+
{
|
|
771
|
+
// Split into (a) a GEOMETRY-memoized turns list and (b) a per-frame
|
|
772
|
+
// allocation-free target scan. Before the split this block rebuilt on
|
|
773
|
+
// EVERY scroll tick: an 800-object turns array, an 800-entry
|
|
774
|
+
// measuredTops Map, and the report effect's turns.map().join('|')
|
|
775
|
+
// signature — several hundred KB of churn per second of scrolling on a
|
|
776
|
+
// tool-heavy session.
|
|
777
|
+
//
|
|
778
|
+
// (a) turns/tops/folded change ONLY when geometry changes: row heights
|
|
779
|
+
// (heightsVersion — bumped at every heightsRef mutation), the visible
|
|
780
|
+
// window's content (visGen — bumped when the visibleRows cache
|
|
781
|
+
// rebuilds), the measured header base, or the rows array growing. Key
|
|
782
|
+
// on those and the language used by image-only previews.
|
|
783
|
+
const memo = timelineMemoRef.current;
|
|
784
|
+
const memoKey = `${visGenRef.current}:${heightsVersionRef.current}:${base}:${rows.length}:${columns}:${lang}`;
|
|
785
|
+
if (memo === null || memo.key !== memoKey) {
|
|
786
|
+
const previewCache = previewCacheRef.current;
|
|
787
|
+
if (previewCache.size > 2000)
|
|
788
|
+
previewCache.clear();
|
|
789
|
+
// Measured tops for turns INSIDE the fold window (user rows are never
|
|
790
|
+
// filtered by the thinking toggle, so a user row absent from
|
|
791
|
+
// visibleRows is exactly a folded one).
|
|
792
|
+
const measuredTops = new Map();
|
|
793
|
+
for (let i = 0; i < visibleRows.length; i++) {
|
|
794
|
+
const row = visibleRows[i];
|
|
795
|
+
if (row.kind !== 'user')
|
|
796
|
+
continue;
|
|
797
|
+
measuredTops.set(row.id, base + offsets[i] + (margins.get(row.id) === true ? 1 : 0));
|
|
798
|
+
}
|
|
799
|
+
// Walk ALL rows (not the fold window): the rail must cover the whole
|
|
800
|
+
// conversation — a tool-heavy session packs 300 rows into a handful
|
|
801
|
+
// of turns, and window-only turns made the rail show "2-3 nodes".
|
|
802
|
+
// Folded turns carry folded:true + top:-1; their tops are unknown
|
|
803
|
+
// until revealed (they are all ABOVE the viewport, so active/down
|
|
804
|
+
// over measured turns is unaffected; ▲ may name a folded turn — its
|
|
805
|
+
// click goes through the reveal path, not scrollTo).
|
|
806
|
+
const turns = [];
|
|
807
|
+
for (const row of rows) {
|
|
808
|
+
if (row.kind !== 'user')
|
|
809
|
+
continue;
|
|
810
|
+
let cached = previewCache.get(row.id);
|
|
811
|
+
const imageCount = row.images?.length ?? 0;
|
|
812
|
+
if (cached === undefined || cached.len !== row.text.length || cached.imageCount !== imageCount || cached.lang !== lang) {
|
|
813
|
+
cached = {
|
|
814
|
+
len: row.text.length,
|
|
815
|
+
imageCount,
|
|
816
|
+
lang,
|
|
817
|
+
preview: row.text === '' && imageCount > 0
|
|
818
|
+
? t('transcript-image-message', { count: imageCount })
|
|
819
|
+
: clipPreview(row.text),
|
|
820
|
+
};
|
|
821
|
+
previewCache.set(row.id, cached);
|
|
822
|
+
}
|
|
823
|
+
const textTop = measuredTops.get(row.id);
|
|
824
|
+
if (textTop !== undefined) {
|
|
825
|
+
turns.push({ id: row.id, top: textTop, preview: cached.preview });
|
|
826
|
+
}
|
|
827
|
+
else {
|
|
828
|
+
turns.push({ id: row.id, top: -1, preview: cached.preview, folded: true });
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
timelineMemoRef.current = { key: memoKey, turns };
|
|
832
|
+
}
|
|
833
|
+
timelineTurns = timelineMemoRef.current.turns;
|
|
834
|
+
// (b) per-frame target scan — pure integer comparisons over the
|
|
835
|
+
// memoized list; viewTop is projected (scrollTop + pending) so
|
|
836
|
+
// boundary crossings register during wheel bursts, not one drain
|
|
837
|
+
// frame late. downId additionally requires top ≤ maxScroll: the
|
|
838
|
+
// renderer clamps scrollTop there, so a turn past it could never own
|
|
839
|
+
// the top row, and naming it would make ▼ repeat itself forever.
|
|
840
|
+
const viewTop = scrollTop + pending;
|
|
841
|
+
const maxScroll = Math.max(0, (scrollHandle?.getScrollHeight() ?? 0) - viewport);
|
|
842
|
+
for (let i = 0; i < timelineTurns.length; i++) {
|
|
843
|
+
const t = timelineTurns[i];
|
|
844
|
+
if (t.folded === true) {
|
|
845
|
+
// Above the fold ⇒ strictly above the viewport: a legal ▲ target.
|
|
846
|
+
upTurnIndex = i;
|
|
847
|
+
continue;
|
|
848
|
+
}
|
|
849
|
+
if (t.top <= viewTop)
|
|
850
|
+
activeTurnIndex = i;
|
|
851
|
+
if (t.top < viewTop)
|
|
852
|
+
upTurnIndex = i;
|
|
853
|
+
if (downTurnIndex === null && t.top > viewTop && t.top <= maxScroll) {
|
|
854
|
+
downTurnIndex = i;
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
if (timelineTurns.length > 0 && activeTurnIndex === null)
|
|
858
|
+
activeTurnIndex = 0;
|
|
859
|
+
}
|
|
860
|
+
const timeline = {
|
|
861
|
+
turns: timelineTurns,
|
|
862
|
+
activeId: activeTurnIndex === null ? null : timelineTurns[activeTurnIndex].id,
|
|
863
|
+
upId: upTurnIndex === null ? null : timelineTurns[upTurnIndex].id,
|
|
864
|
+
downId: downTurnIndex === null ? null : timelineTurns[downTurnIndex].id,
|
|
865
|
+
};
|
|
866
|
+
const lastTimelineReportRef = React.useRef(null);
|
|
867
|
+
React.useEffect(() => {
|
|
868
|
+
// Value-level dedup, not geometry-key-level: the memo key pins to
|
|
869
|
+
// heightsVersion, which a GROWING streamed row bumps on every commit,
|
|
870
|
+
// so a key-pinned signature re-reports an identical snapshot every
|
|
871
|
+
// commit of a long stream. Each report is a setState dispatched into
|
|
872
|
+
// Chat from this passive effect; it lands as pending residue at commit
|
|
873
|
+
// end, keeping the commit dirty and feeding React's nested-update
|
|
874
|
+
// counter (50 consecutive dirty commits → error #185, the beta.3
|
|
875
|
+
// crash). The O(turns) compare below is integer/string-reference
|
|
876
|
+
// compares only — cheap next to the joined-string signature the memo
|
|
877
|
+
// key replaced, and it fires exactly when the snapshot content changes.
|
|
878
|
+
const prev = lastTimelineReportRef.current;
|
|
879
|
+
if (prev !== null &&
|
|
880
|
+
prev.activeId === timeline.activeId &&
|
|
881
|
+
prev.upId === timeline.upId &&
|
|
882
|
+
prev.downId === timeline.downId &&
|
|
883
|
+
prev.turns.length === timeline.turns.length &&
|
|
884
|
+
prev.turns.every((t, i) => {
|
|
885
|
+
const n = timeline.turns[i];
|
|
886
|
+
return t.id === n.id && t.top === n.top && t.folded === n.folded && t.preview === n.preview;
|
|
887
|
+
}))
|
|
888
|
+
return;
|
|
889
|
+
lastTimelineReportRef.current = timeline;
|
|
890
|
+
onTimeline?.(timeline);
|
|
891
|
+
});
|
|
892
|
+
// Post-commit: measure mounted rows, derive the content-space base from
|
|
893
|
+
// the first mounted row's Yoga top, and clamp render-time scrollTop to the
|
|
894
|
+
// mounted coverage so burst scrolls never show blank spacer.
|
|
895
|
+
React.useLayoutEffect(() => {
|
|
896
|
+
let changed = false;
|
|
897
|
+
// Mounted ⇒ painted: record rows eligible for window skipping.
|
|
898
|
+
const paintedOnce = paintedOnceRef.current;
|
|
899
|
+
for (const id of localRefs.current.keys()) {
|
|
900
|
+
if (!paintedOnce.has(id))
|
|
901
|
+
paintedOnce.add(id);
|
|
902
|
+
}
|
|
903
|
+
for (const [id, el] of localRefs.current) {
|
|
904
|
+
const h = el.yogaNode?.getComputedHeight();
|
|
905
|
+
if (h !== undefined && h > 0 && heightsRef.current.get(id) !== h) {
|
|
906
|
+
if (heightsRef.current.size >= HEIGHTS_CACHE_MAX) {
|
|
907
|
+
const oldest = heightsRef.current.keys().next().value;
|
|
908
|
+
if (oldest !== undefined)
|
|
909
|
+
heightsRef.current.delete(oldest);
|
|
910
|
+
}
|
|
911
|
+
heightsRef.current.set(id, h);
|
|
912
|
+
heightsVersionRef.current++;
|
|
913
|
+
changed = true;
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
const firstMounted = visibleRows[start];
|
|
917
|
+
// oxlint-disable-next-line typescript/no-unnecessary-condition -- runtime guard: empty list window
|
|
918
|
+
const firstEl = firstMounted ? localRefs.current.get(firstMounted.id) : undefined;
|
|
919
|
+
const top = firstEl?.yogaNode?.getComputedTop();
|
|
920
|
+
if (top !== undefined) {
|
|
921
|
+
const measured = top - (offsets[start] ?? 0);
|
|
922
|
+
if (baseRef.current !== measured) {
|
|
923
|
+
baseRef.current = measured;
|
|
924
|
+
changed = true;
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
if (scrollHandle) {
|
|
928
|
+
if (sticky || (start === 0 && end >= visibleRows.length)) {
|
|
929
|
+
// Sticky still needs the MIN clamp: the first wheel-up breaks sticky
|
|
930
|
+
// on the DOM (ScrollBox.scrollBy) several frames before React
|
|
931
|
+
// commits a new mount window, and the drain frames in between paint
|
|
932
|
+
// unmounted spacer rows as a blank band. Clamping to the currently
|
|
933
|
+
// mounted top shows the edge content until React catches up - same
|
|
934
|
+
// behavior as the steady-state scroll path. The MAX clamp stays
|
|
935
|
+
// disabled: sticky follow pushes scrollTop to each frame's new
|
|
936
|
+
// maxScroll, which a stale mounted max would clamp away.
|
|
937
|
+
const min = start > 0 ? Math.max(0, base + topPad - viewport) : undefined;
|
|
938
|
+
scrollHandle.setClampBounds(min, undefined);
|
|
939
|
+
}
|
|
940
|
+
else {
|
|
941
|
+
const min = Math.max(0, base + topPad - viewport);
|
|
942
|
+
// Upper clamp only while unmounted content remains below the window
|
|
943
|
+
// (bottomPad spacer): it exists to pin the paint to the mounted edge
|
|
944
|
+
// during burst scrolls that outrun React's window re-render. Once the
|
|
945
|
+
// tail is fully mounted (bottomPad 0) there IS no unmounted gap — the
|
|
946
|
+
// estimated `mountedBottom` can sit a line short of the real Yoga
|
|
947
|
+
// extent (engine flex-basis cache vs final child layout drift, see
|
|
948
|
+
// render-node-to-output's scrollHeight floor), and an estimated clamp
|
|
949
|
+
// would then cull the last line at every non-sticky paint — the
|
|
950
|
+
// scrolled-away-and-back tail loss. Leave the max open; the renderer
|
|
951
|
+
// still caps at the frame's real maxScroll.
|
|
952
|
+
scrollHandle.setClampBounds(min, bottomPad <= 0 ? undefined : Math.max(min, base + mountedBottom - viewport));
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
if (changed && measureTimerRef.current === null) {
|
|
956
|
+
// Layout corrections can cascade for many rows. Yield to the next
|
|
957
|
+
// macrotask so React does not count the valid convergence as nested
|
|
958
|
+
// updates when a streaming/reveal commit is already in flight.
|
|
959
|
+
measureTimerRef.current = setTimeout(() => {
|
|
960
|
+
measureTimerRef.current = null;
|
|
961
|
+
noteFrameCause('measure');
|
|
962
|
+
setMeasureTick(t => t + 1);
|
|
963
|
+
}, 0);
|
|
964
|
+
}
|
|
965
|
+
// History-paint continuation (main-screen open): more never-painted
|
|
966
|
+
// batches remain — schedule the next slice on the macrotask queue so
|
|
967
|
+
// pending input events (wheel, keys) drain between batches and the app
|
|
968
|
+
// stays interactive while preset history streams in. A timeout of 0 is
|
|
969
|
+
// enough: each batch's mount+measure work is bounded (~2 viewports),
|
|
970
|
+
// unlike the previous single-commit full mount that saturated the main
|
|
971
|
+
// thread for seconds.
|
|
972
|
+
if (paintPendingRef.current && paintTimerRef.current === null) {
|
|
973
|
+
paintTimerRef.current = setTimeout(() => {
|
|
974
|
+
paintTimerRef.current = null;
|
|
975
|
+
if (!paintPendingRef.current)
|
|
976
|
+
return;
|
|
977
|
+
noteFrameCause('measure');
|
|
978
|
+
setMeasureTick(t => t + 1);
|
|
979
|
+
}, 0);
|
|
980
|
+
}
|
|
981
|
+
});
|
|
982
|
+
// useCallback: the reference feeds MemoRow's shallow compare; a fresh
|
|
983
|
+
// closure per render would defeat every row's memo.
|
|
984
|
+
const setRowRef = React.useCallback((rowId, el) => {
|
|
985
|
+
if (el)
|
|
986
|
+
localRefs.current.set(rowId, el);
|
|
987
|
+
else
|
|
988
|
+
localRefs.current.delete(rowId);
|
|
989
|
+
registerRowRef?.(rowId, el);
|
|
990
|
+
}, [registerRowRef]);
|
|
991
|
+
return (_jsxs(_Fragment, { children: [rows.some(row => row.folded) && (_jsx(ClickableDivider, { title: t('load-earlier'), onClick: onLoadOlder })), !showAll && hiddenCount > 0 && (_jsx(ClickableDivider, { title: t('show-previous-messages', { n: hiddenCount }), onClick: onToggleAll })), topPad > 0 && _jsx(Box, { height: topPad, flexShrink: 0 }), visibleRows
|
|
992
|
+
.slice(start, end)
|
|
993
|
+
.map((row) => {
|
|
994
|
+
// The pre-pass result keeps windowed rows at full-mount
|
|
995
|
+
// spacing; only the very first row of the whole list has none.
|
|
996
|
+
const marginTopOnTurn = margins.get(row.id) === true;
|
|
997
|
+
const tool = row.tool;
|
|
998
|
+
const subagent = row.kind === 'subagent' ? row.subagent : undefined;
|
|
999
|
+
const job = row.kind === 'job' ? row.job : undefined;
|
|
1000
|
+
const revealVersion = smoothStreaming && row.kind === 'tool' && row.fresh === true &&
|
|
1001
|
+
row.tool?.status === 'running' && row.tool.resultView === undefined
|
|
1002
|
+
? getRevealVersion()
|
|
1003
|
+
: 0;
|
|
1004
|
+
// Smooth reveal feeds the SAME flattened text prop a chunk feeds,
|
|
1005
|
+
// and keeps the streaming layout alive until the reveal catches up
|
|
1006
|
+
// (settling mid-reveal must not snap — a one-shot non-streaming
|
|
1007
|
+
// delivery still paints as a flow).
|
|
1008
|
+
let displayText = row.text;
|
|
1009
|
+
let displayStreaming = row.streaming === true;
|
|
1010
|
+
if (row.kind === 'assistant' && smoothStreaming) {
|
|
1011
|
+
const stripped = stripNarration(row.text);
|
|
1012
|
+
displayText = revealTextOf(`a${row.id}`, stripped, {
|
|
1013
|
+
enabled: true,
|
|
1014
|
+
active: displayStreaming || row.fresh === true,
|
|
1015
|
+
});
|
|
1016
|
+
displayStreaming = displayStreaming || displayText.length !== stripped.length;
|
|
1017
|
+
}
|
|
1018
|
+
else if (row.kind === 'assistant') {
|
|
1019
|
+
displayText = stripNarration(row.text);
|
|
1020
|
+
}
|
|
1021
|
+
else if (row.kind === 'reasoning' && smoothStreaming) {
|
|
1022
|
+
displayText = revealTextOf(`r${row.id}`, row.text, { enabled: true, active: displayStreaming });
|
|
1023
|
+
}
|
|
1024
|
+
return (_jsx(MemoRow, { rowId: row.id, kind: row.kind, text: displayText, images: row.images, textFull: row.kind === 'reasoning' ? row.text : undefined, executionTarget: row.executionTarget, selectionAttached: row.selectionAttached, streaming: displayStreaming, durationMs: row.durationMs, time: row.time, marginTopOnTurn: marginTopOnTurn, isSelected: selectedId === row.id, isExpanded: expandedRows.has(row.id), expanded: expanded, model: model, diffLayout: diffLayout, thinkingFold: thinkingFold, toolBackground: toolBackground, foldTerminalCommand: foldTerminalCommand, smoothStreaming: smoothStreaming, fresh: row.fresh === true, revealVersion: revealVersion, activityFrames: activityFrames, background: rowBackground(row.id), toolCallId: tool?.callId, toolName: tool?.name, toolArgsText: tool?.argsText, toolArgsFull: tool?.argsFull, toolStatus: tool?.status, toolResultText: tool?.resultText, toolResultFull: tool?.resultFull, toolErrorText: tool?.errorText, toolFootnote: failureHintRowId === row.id ? failureHint : undefined, toolCallView: tool?.callView, toolResultView: tool?.resultView, toolStartedAt: tool?.startedAt, toolDurationMs: tool?.durationMs, subagent: subagent, job: job, onToggleRow: onToggleRow, onToggleStreamView: onToggleStreamView, streamViewToggled: streamViewToggledRows.has(row.id), onOpenSubagent: onOpenSubagent, onOpenJobs: onOpenJobs, onOpenFile: onOpenFile, sessionCwd: sessionCwd, onPreviewImage: onPreviewImage, suppressImageGraphics: suppressImageGraphics, setRowRef: setRowRef }, row.id));
|
|
1025
|
+
}), bottomPad > 0 && _jsx(Box, { height: bottomPad, flexShrink: 0 })] }));
|
|
1026
|
+
}
|
|
1027
|
+
/** Load-earlier / show-previous divider row with a mouse hover tint — the
|
|
1028
|
+
* clickability is otherwise invisible (audit C-04). */
|
|
1029
|
+
function ClickableDivider({ title, onClick }) {
|
|
1030
|
+
const [hovered, setHovered] = useState(false);
|
|
1031
|
+
return (_jsx(Box, { marginTop: 1, onClick: onClick, onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), backgroundColor: hovered ? 'userMessageBackgroundHover' : undefined, children: _jsx(Divider, { title: title }) }));
|
|
1032
|
+
}
|
|
1033
|
+
function TranscriptRow({ rowId, kind, text, images, textFull, executionTarget, selectionAttached, sessionCwd, streaming, durationMs, time, marginTopOnTurn, isSelected, isExpanded, expanded, model, diffLayout, smoothStreaming, fresh, revealVersion, thinkingFold, toolBackground, foldTerminalCommand, activityFrames, background, toolCallId, toolName, toolArgsText, toolArgsFull, toolStatus, toolResultText, toolResultFull, toolErrorText, toolFootnote, toolCallView, toolResultView, toolStartedAt, toolDurationMs, subagent, job, onToggleRow, onToggleStreamView, streamViewToggled, onOpenSubagent, onOpenJobs, onOpenFile, onPreviewImage, suppressImageGraphics, setRowRef, }) {
|
|
1034
|
+
const ref = React.useCallback((el) => {
|
|
1035
|
+
setRowRef(rowId, el);
|
|
1036
|
+
}, [setRowRef, rowId]);
|
|
1037
|
+
// 可折叠行(工具卡/思考/compact 摘要)共用:点击切换展开,全宽行右侧
|
|
1038
|
+
// 空白(屏幕缓冲未写入单元格)不触发——点击空白想选字/拖拽时不再误触
|
|
1039
|
+
// 展开/收起(审计 C-03/cellIsBlank 零消费)。纯文本行(user/assistant)
|
|
1040
|
+
// 平时不可点:转录是阅读区(用户反馈),折叠语义留给带视觉指示的行——
|
|
1041
|
+
// 唯一例外是**被折叠的超长单行**:那时整行就是展开开关(见 foldClickable)。
|
|
1042
|
+
const foldOnClick = React.useCallback((event) => {
|
|
1043
|
+
if (event.cellIsBlank)
|
|
1044
|
+
return;
|
|
1045
|
+
onToggleRow(rowId);
|
|
1046
|
+
}, [onToggleRow, rowId]);
|
|
1047
|
+
// 流式 reasoning 行:点击在三行预览/全文间切换。它反转 thinkingFold
|
|
1048
|
+
// 的默认值,落定后语义自动回到 foldOnClick。
|
|
1049
|
+
const streamViewOnClick = React.useCallback((event) => {
|
|
1050
|
+
if (event.cellIsBlank)
|
|
1051
|
+
return;
|
|
1052
|
+
onToggleStreamView(rowId);
|
|
1053
|
+
}, [onToggleStreamView, rowId]);
|
|
1054
|
+
// 子代理卡:点击打开详情场景(不是折叠)。
|
|
1055
|
+
const openSubagent = React.useCallback(() => {
|
|
1056
|
+
if (subagent !== undefined)
|
|
1057
|
+
onOpenSubagent?.(subagent.agentId);
|
|
1058
|
+
}, [onOpenSubagent, subagent]);
|
|
1059
|
+
// compact 摘要折叠行 hover 轻指示(∴ 提亮,不刷背景)。
|
|
1060
|
+
const [compactHovered, setCompactHovered] = useState(false);
|
|
1061
|
+
// Long single lines are clipped before layout (utils/fold-long-lines.ts):
|
|
1062
|
+
// one 300k-char paste or minified-JS line otherwise wraps into thousands of
|
|
1063
|
+
// visual rows and that per-frame wrap — not the row count — dominates the
|
|
1064
|
+
// frame. Ctrl+O (global) AND a row click (per-row, the same `expandedRows`
|
|
1065
|
+
// gesture message-selection mode uses) both paint the raw text again.
|
|
1066
|
+
// Reasoning rows are deliberately excluded: their preview is already a fixed
|
|
1067
|
+
// three-row ticker. Tool cards fold inside their own header/body
|
|
1068
|
+
// (AssistantToolUseMessage), whose text never rides this prop.
|
|
1069
|
+
// `lang` is a dependency because the fold marker is localized: a row that
|
|
1070
|
+
// re-renders unchanged after /lang must not keep the previous language.
|
|
1071
|
+
const lang = getLang();
|
|
1072
|
+
const foldable = kind !== 'reasoning' && kind !== 'tool';
|
|
1073
|
+
const folded = React.useMemo(() => (foldable ? foldLongLines(text) : { text, hiddenChars: 0, foldedLines: 0 }), [foldable, text, lang]);
|
|
1074
|
+
const displayText = expanded || isExpanded ? text : folded.text;
|
|
1075
|
+
// Mouse toggle: only a row that ACTUALLY hides something is clickable (an
|
|
1076
|
+
// ordinary message stays inert so plain clicks and drag-selection keep
|
|
1077
|
+
// working there). A streaming row is clickable too — the same contract the
|
|
1078
|
+
// tool card has while running: the click paints the full ARRIVED text, and
|
|
1079
|
+
// the reveal keeps growing it.
|
|
1080
|
+
const foldClickable = foldable && folded.hiddenChars > 0;
|
|
1081
|
+
switch (kind) {
|
|
1082
|
+
case 'user':
|
|
1083
|
+
return (_jsxs(Box, { flexDirection: "column", ref: ref, onClick: foldClickable ? foldOnClick : undefined, children: [selectionAttached && (_jsxs(Text, { dimColor: true, children: ['⧉ ', t('selection-attached', {
|
|
1084
|
+
lines: selectionAttached.lines,
|
|
1085
|
+
count: selectionAttached.lines,
|
|
1086
|
+
path: displaySelectionPath(selectionAttached.path, sessionCwd),
|
|
1087
|
+
})] })), text !== '' && (_jsx(UserPromptMessage, { text: displayText, marginTopOnTurn: marginTopOnTurn, isSelected: isSelected })), images !== undefined && (_jsx(Box, { marginTop: text === '' && marginTopOnTurn ? 1 : 0, children: _jsx(TranscriptImages, { images: images, onPreview: onPreviewImage, suppressGraphics: suppressImageGraphics }) }))] }));
|
|
1088
|
+
case 'assistant':
|
|
1089
|
+
return streaming ? (_jsxs(Box, { alignItems: "flex-start", flexDirection: "row", marginTop: marginTopOnTurn ? 1 : 0, width: "100%", backgroundColor: background, ref: ref, onClick: foldClickable ? foldOnClick : undefined, children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { color: "text", children: "\u25CF" }) }), _jsxs(Box, { flexDirection: "column", children: [_jsx(StreamingMarkdown, { children: stripNarration(displayText) }), images !== undefined && _jsx(TranscriptImages, { images: images, indent: 0, onPreview: onPreviewImage, suppressGraphics: suppressImageGraphics })] })] })) : (_jsxs(Box, { width: "100%", flexDirection: "column", backgroundColor: background, ref: ref, onClick: foldClickable ? foldOnClick : undefined, children: [expanded && (_jsx(Box, { flexDirection: "row", justifyContent: "flex-end", gap: 1, marginTop: 1, children: _jsx(MessageMetadata, { timestamp: time, model: model }) })), _jsx(AssistantTextMessage, { text: stripNarration(displayText), marginTopOnTurn: marginTopOnTurn, isSelected: isSelected, isExpanded: isExpanded }), images !== undefined && _jsx(TranscriptImages, { images: images, onPreview: onPreviewImage, suppressGraphics: suppressImageGraphics })] }));
|
|
1090
|
+
case 'reasoning': {
|
|
1091
|
+
// The setting chooses the live default; a row click reverses it. Global
|
|
1092
|
+
// or per-row transcript expansion always wins and shows the full text.
|
|
1093
|
+
const streamPreview = streaming && !expanded && !isExpanded &&
|
|
1094
|
+
(streamViewToggled ? thinkingFold === 'full' : thinkingFold === 'preview');
|
|
1095
|
+
return (_jsx(Box, { flexDirection: "column", ref: ref, children: _jsx(AssistantThinkingMessage, { thinking: text, textFull: textFull, marginTopOnTurn: marginTopOnTurn, streaming: streaming, preview: streamPreview,
|
|
1096
|
+
// Settled rows keep the fold-on-settle default and expand via
|
|
1097
|
+
// expandedRows/Ctrl+O; a live row is always preview or full.
|
|
1098
|
+
verbose: isExpanded || expanded || (streaming && !streamPreview), durationMs: durationMs, isSelected: isSelected, onClick: streaming ? streamViewOnClick : foldOnClick }) }));
|
|
1099
|
+
}
|
|
1100
|
+
case 'tool': {
|
|
1101
|
+
if (toolCallId === undefined ||
|
|
1102
|
+
toolName === undefined ||
|
|
1103
|
+
toolArgsText === undefined ||
|
|
1104
|
+
toolStatus === undefined ||
|
|
1105
|
+
toolStartedAt === undefined) {
|
|
1106
|
+
return null;
|
|
1107
|
+
}
|
|
1108
|
+
// Rebuilt per render from the flattened props — cheap object literal,
|
|
1109
|
+
// and AssistantToolUseMessage is only reached when memo let us through.
|
|
1110
|
+
const tool = {
|
|
1111
|
+
callId: toolCallId,
|
|
1112
|
+
name: toolName,
|
|
1113
|
+
argsText: toolArgsText,
|
|
1114
|
+
argsFull: toolArgsFull,
|
|
1115
|
+
status: toolStatus,
|
|
1116
|
+
resultText: toolResultText,
|
|
1117
|
+
resultFull: toolResultFull,
|
|
1118
|
+
errorText: toolErrorText,
|
|
1119
|
+
callView: toolCallView,
|
|
1120
|
+
resultView: toolResultView,
|
|
1121
|
+
startedAt: toolStartedAt,
|
|
1122
|
+
durationMs: toolDurationMs,
|
|
1123
|
+
};
|
|
1124
|
+
return (_jsxs(Box, { flexDirection: "column", ref: ref, children: [_jsx(AssistantToolUseMessage, { tool: tool, marginTopOnTurn: marginTopOnTurn, verbose: isExpanded || expanded, isSelected: isSelected, isExpanded: isExpanded, footnote: toolFootnote, diffLayout: diffLayout, toolBackground: toolBackground, smoothReveal: smoothStreaming, fresh: fresh, revealVersion: revealVersion, foldTerminalCommand: foldTerminalCommand, onClick: foldOnClick, onOpenFile: onOpenFile }), images !== undefined && _jsx(TranscriptImages, { images: images, indent: 4, onPreview: onPreviewImage, suppressGraphics: suppressImageGraphics })] }));
|
|
1125
|
+
}
|
|
1126
|
+
case 'notice':
|
|
1127
|
+
return (_jsx(Box, { marginTop: 1, ref: ref, onClick: foldClickable ? foldOnClick : undefined, children: _jsx(Divider, { title: ` ${displayText} ` }) }));
|
|
1128
|
+
case 'interrupt':
|
|
1129
|
+
return (_jsx(Box, { marginTop: 1, ref: ref, children: _jsx(TurnInterruptedRow, {}) }));
|
|
1130
|
+
case 'local':
|
|
1131
|
+
// `!` mode command echo.
|
|
1132
|
+
return (_jsx(Box, { marginTop: 1, backgroundColor: background, ref: ref, onClick: foldClickable ? foldOnClick : undefined, children: _jsxs(Text, { color: "bashBorder", children: ["!", executionTarget ? ` [${executionTarget}]` : '', " ", displayText] }) }));
|
|
1133
|
+
case 'local-output':
|
|
1134
|
+
return (_jsx(Box, { paddingLeft: 2, backgroundColor: background, ref: ref, onClick: foldClickable ? foldOnClick : undefined, children: _jsx(Text, { dimColor: true, children: displayText }) }));
|
|
1135
|
+
case 'compact':
|
|
1136
|
+
// The post-compaction summary defaults to a folded one-liner with a
|
|
1137
|
+
// text preview; Ctrl+O (global), message-selection Enter, or a click
|
|
1138
|
+
// reveals the full summary.
|
|
1139
|
+
return (_jsx(Box, { marginTop: marginTopOnTurn ? 1 : 0, paddingLeft: 2, backgroundColor: background, ref: ref, onClick: foldOnClick, onMouseEnter: () => setCompactHovered(true), onMouseLeave: () => setCompactHovered(false), children: expanded || isExpanded ? (_jsx(Text, { dimColor: true, children: text })) : (_jsxs(Text, { dimColor: true, italic: true, color: compactHovered ? 'text' : undefined, children: [_jsx(Text, { color: compactHovered ? 'text' : undefined, children: "\u2234" }), ' ', t('compact-summary-folded'), " \u00B7 ", compactPreview(displayText), ' ', t('hint-expand-ctrl-o')] })) }));
|
|
1140
|
+
case 'subagent':
|
|
1141
|
+
if (!subagent)
|
|
1142
|
+
return null;
|
|
1143
|
+
return (_jsx(Box, { flexDirection: "column", ref: ref, children: _jsx(SubagentMessage, { subagent: subagent, marginTopOnTurn: marginTopOnTurn, activityFrames: activityFrames, isExpanded: isExpanded, onClick: openSubagent }) }));
|
|
1144
|
+
case 'job':
|
|
1145
|
+
if (!job)
|
|
1146
|
+
return null;
|
|
1147
|
+
return (_jsx(Box, { flexDirection: "column", ref: ref, children: _jsx(JobCard, { job: job, marginTopOnTurn: marginTopOnTurn, onClick: onOpenJobs }) }));
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
/** Folded compact-summary preview: whitespace flattened, capped with an
|
|
1151
|
+
* ellipsis so the fold line never wraps. `limit` is terminal cells, so
|
|
1152
|
+
* CJK wide chars count double and never split mid-glyph. */
|
|
1153
|
+
function compactPreview(text, limit = 60) {
|
|
1154
|
+
const flat = text.replace(/\s+/g, ' ').trim();
|
|
1155
|
+
return stringWidth(flat) <= limit ? flat : `${truncateToWidth(flat, limit - 1)}…`;
|
|
1156
|
+
}
|
|
1157
|
+
const MemoRow = React.memo(TranscriptRow);
|
|
1158
|
+
/**
|
|
1159
|
+
* The header block pinned above the transcript: the DeepSeek pixel whale
|
|
1160
|
+
* with the wordmark, tagline, model/effort and cwd (`LogoV2`), plus the
|
|
1161
|
+
* welcome line. It scrolls away with the transcript once the conversation
|
|
1162
|
+
* fills the viewport.
|
|
1163
|
+
*/
|
|
1164
|
+
export function LogoHeader({ model, effort, cwd, whale = true, whaleIdle = true, working = false, skipIntro = false, }) {
|
|
1165
|
+
// Minimal mode drops the whole splash (whale art AND wordmark) — only the
|
|
1166
|
+
// transcript and a bare status bar remain.
|
|
1167
|
+
if (isMinimalMode())
|
|
1168
|
+
return null;
|
|
1169
|
+
return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: _jsx(LogoV2, { model: model, effort: effort, cwd: cwd, whale: whale, whaleIdle: whaleIdle, working: working, skipIntro: skipIntro }) }));
|
|
1170
|
+
}
|