zidane-ui 9.1.1 → 9.1.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/README.md +2 -0
- package/dist/adapters/index.js +1 -1
- package/dist/adapters/server-transcript-members.d.ts +1 -1
- package/dist/adapters/server-transcript-members.js +19 -1
- package/dist/app/ModalProvider.d.ts +3 -1
- package/dist/app/ModalProvider.js +15 -9
- package/dist/approvals/headless/index.js +1 -1
- package/dist/chat/HostTranscript.d.ts +3 -1
- package/dist/chat/HostTranscript.js +5 -3
- package/dist/chat/Transcript.js +1 -1
- package/dist/chat/composer/ComposerEditor.js +1 -1
- package/dist/chat/composer/index.js +1 -1
- package/dist/chat/composer/use-composer-stores.js +1 -1
- package/dist/chat/headless/block-runs.d.ts +57 -0
- package/dist/chat/headless/block-runs.js +123 -0
- package/dist/chat/headless/composer/index.js +2 -2
- package/dist/chat/headless/fixture-transcript.d.ts +6 -1
- package/dist/chat/headless/fixture-transcript.js +49 -0
- package/dist/chat/headless/host.d.ts +3 -0
- package/dist/chat/headless/index.d.ts +2 -1
- package/dist/chat/headless/index.js +12 -11
- package/dist/chat/headless/labels.d.ts +42 -0
- package/dist/chat/headless/labels.js +42 -0
- package/dist/chat/headless/session-list.d.ts +27 -0
- package/dist/chat/headless/sidebar/index.js +1 -1
- package/dist/chat/headless/sidebar/labels.d.ts +27 -0
- package/dist/chat/headless/streams/index.js +1 -1
- package/dist/chat/headless/streams/live-events.js +2 -1
- package/dist/chat/headless/streams/session-streams.js +2 -2
- package/dist/chat/headless/streams/store.js +2 -2
- package/dist/chat/headless/transcript/batch.d.ts +21 -1
- package/dist/chat/headless/transcript/batch.js +55 -10
- package/dist/chat/headless/transcript/collapse.js +18 -3
- package/dist/chat/headless/transcript/fold.js +26 -10
- package/dist/chat/headless/transcript/index.js +1 -1
- package/dist/chat/headless/transcript/rows.d.ts +7 -1
- package/dist/chat/index.d.ts +6 -1
- package/dist/chat/index.js +7 -2
- package/dist/chat/testing/contract.d.ts +6 -1
- package/dist/chat/testing/contract.js +30 -3
- package/dist/chat/transcript/AnsiText.d.ts +27 -0
- package/dist/chat/transcript/AnsiText.js +73 -0
- package/dist/chat/transcript/CodemodeScript.d.ts +33 -0
- package/dist/chat/transcript/CodemodeScript.js +212 -0
- package/dist/chat/transcript/LiveOutput.d.ts +21 -0
- package/dist/chat/transcript/LiveOutput.js +42 -0
- package/dist/chat/transcript/TranscriptRow.js +19 -2
- package/dist/chat/transcript/actions.d.ts +6 -0
- package/dist/chat/transcript/index.d.ts +6 -1
- package/dist/chat/transcript/index.js +6 -1
- package/dist/chat/transcript/markdown.js +9 -0
- package/dist/chat/transcript/renderers.d.ts +7 -0
- package/dist/chat/transcript/script-input.d.ts +17 -0
- package/dist/chat/transcript/script-input.js +16 -0
- package/dist/chat/transcript/shell-block-scope.d.ts +29 -0
- package/dist/chat/transcript/shell-block-scope.js +18 -0
- package/dist/chat/transcript/shell-block.d.ts +27 -0
- package/dist/chat/transcript/shell-block.js +306 -0
- package/dist/chat/transcript/tool-parts.d.ts +18 -6
- package/dist/chat/transcript/tool-parts.js +15 -5
- package/dist/chat/transcript/tool-payload.js +6 -3
- package/dist/chat/transcript/tool-row.js +155 -96
- package/dist/chat/transcript/user-bash.js +3 -2
- package/dist/code/HighlightedCode.js +3 -69
- package/dist/code/highlight-lines.d.ts +24 -0
- package/dist/code/highlight-lines.js +41 -0
- package/dist/code/use-highlighted-html.d.ts +5 -0
- package/dist/code/use-highlighted-html.js +75 -0
- package/dist/core.css +6 -2
- package/dist/dist/{index-CGbOWa7y.d.ts → index-WlE93Q6d.d.ts} +101 -3
- package/dist/extensions/ExtensionSettingsSidebar.js +19 -3
- package/dist/extensions/kit.d.ts +1 -1
- package/dist/git/BranchMenu.d.ts +1 -7
- package/dist/git/BranchMenu.js +17 -40
- package/dist/git/headless/labels.d.ts +0 -2
- package/dist/git/headless/labels.js +0 -2
- package/dist/index.d.ts +4 -3
- package/dist/index.js +2 -1
- package/dist/onboarding/index.js +1 -1
- package/dist/onboarding/steps/ConnectStep.js +1 -1
- package/dist/onboarding/steps/ExtensionsStep.js +1 -1
- package/dist/onboarding/steps/ReadyStep.js +1 -1
- package/dist/onboarding/steps/connect/ProviderPanel.js +1 -1
- package/dist/session/headless/index.js +2 -2
- package/dist/settings/SettingsShell.d.ts +3 -1
- package/dist/settings/SettingsShell.js +15 -8
- package/dist/settings/headless/catalog.js +5 -0
- package/dist/settings/headless/layout.js +2 -1
- package/dist/settings/headless/registry.d.ts +2 -0
- package/dist/settings/headless/search.d.ts +1 -1
- package/dist/settings/sections/environments/EnvironmentsSection.js +1 -1
- package/dist/settings/sections/extensions/ExtensionsSection.js +2 -2
- package/dist/settings/sections/models/ModelRows.js +1 -1
- package/dist/settings/sections/models/model-test.js +1 -1
- package/dist/styles.css +291 -2
- package/dist/terminal/TerminalProvider.d.ts +3 -1
- package/dist/terminal/TerminalProvider.js +5 -1
- package/dist/terminal/headless/store.d.ts +10 -0
- package/dist/terminal/headless/store.js +16 -0
- package/dist/terminal/index.d.ts +2 -2
- package/dist/terminal/index.js +2 -2
- package/dist/theme/runtime-icons.d.ts +50 -0
- package/dist/theme/runtime-icons.js +95 -0
- package/package.json +3 -6
- package/src/styles/primitives.css +5 -2
- package/src/styles/transcript.css +281 -0
- package/src/adapters/browser-appearance-host.ts +0 -51
- package/src/adapters/browser-keybindings-host.ts +0 -48
- package/src/adapters/browser-workspace-host.ts +0 -92
- package/src/adapters/closable-client.ts +0 -34
- package/src/adapters/extension-modules.ts +0 -360
- package/src/adapters/index.ts +0 -35
- package/src/adapters/live-events.ts +0 -6
- package/src/adapters/live.ts +0 -270
- package/src/adapters/run-host.ts +0 -238
- package/src/adapters/server-approvals-host.ts +0 -102
- package/src/adapters/server-client.ts +0 -15
- package/src/adapters/server-composer-host.ts +0 -459
- package/src/adapters/server-extensions-host.ts +0 -979
- package/src/adapters/server-files-host.ts +0 -287
- package/src/adapters/server-git-host.ts +0 -289
- package/src/adapters/server-host.ts +0 -489
- package/src/adapters/server-machines-host.ts +0 -283
- package/src/adapters/server-oauth-flow.ts +0 -133
- package/src/adapters/server-onboarding-host.ts +0 -363
- package/src/adapters/server-palette-host.ts +0 -134
- package/src/adapters/server-session-host.ts +0 -241
- package/src/adapters/server-settings-accounts.ts +0 -212
- package/src/adapters/server-settings-host.ts +0 -120
- package/src/adapters/server-settings-models.ts +0 -46
- package/src/adapters/server-settings-performance.ts +0 -58
- package/src/adapters/server-settings-sections.ts +0 -222
- package/src/adapters/server-sidebar-host.ts +0 -59
- package/src/adapters/server-terminal-host.ts +0 -124
- package/src/adapters/server-transcript-members.ts +0 -131
- package/src/adapters/sse-host.ts +0 -264
- package/src/adapters/sse-parser.ts +0 -82
- package/src/adapters/sse-protocol.ts +0 -118
- package/src/adapters/stream-pacer.ts +0 -122
- package/src/adapters/worker-host.ts +0 -192
- package/src/adapters/worker-protocol.ts +0 -97
- package/src/app/AppHostProvider.tsx +0 -135
- package/src/app/ModalProvider.tsx +0 -731
- package/src/app/headless/app-host.ts +0 -61
- package/src/app/headless/index.ts +0 -6
- package/src/app/headless/resource.ts +0 -444
- package/src/app/index.ts +0 -9
- package/src/app/testing/index.ts +0 -90
- package/src/app/useConfirm.tsx +0 -65
- package/src/app/useResource.ts +0 -30
- package/src/appearance/AppearanceProvider.tsx +0 -383
- package/src/appearance/apply.ts +0 -69
- package/src/appearance/headless/fixture-host.ts +0 -111
- package/src/appearance/headless/fonts.ts +0 -224
- package/src/appearance/headless/host.ts +0 -65
- package/src/appearance/headless/index.ts +0 -12
- package/src/appearance/headless/prefs.ts +0 -252
- package/src/appearance/headless/storage.ts +0 -127
- package/src/appearance/headless/zoom-commands.ts +0 -21
- package/src/appearance/index.ts +0 -11
- package/src/appearance/testing/contract.ts +0 -210
- package/src/appearance/testing/index.ts +0 -6
- package/src/approvals/ApprovalBar.tsx +0 -234
- package/src/approvals/ApprovalConcern.tsx +0 -33
- package/src/approvals/ApprovalShell.tsx +0 -69
- package/src/approvals/ApprovalsProvider.tsx +0 -110
- package/src/approvals/FileEditApproval.tsx +0 -310
- package/src/approvals/HunkPreviews.tsx +0 -225
- package/src/approvals/SafelistPanel.tsx +0 -149
- package/src/approvals/headless/fixture-host.ts +0 -73
- package/src/approvals/headless/fixtures.ts +0 -86
- package/src/approvals/headless/heads.ts +0 -81
- package/src/approvals/headless/host.ts +0 -80
- package/src/approvals/headless/index.ts +0 -12
- package/src/approvals/headless/labels.ts +0 -67
- package/src/approvals/headless/pending.ts +0 -91
- package/src/approvals/headless/preview.ts +0 -94
- package/src/approvals/headless/safelist.ts +0 -63
- package/src/approvals/index.ts +0 -13
- package/src/approvals/key-scope.ts +0 -33
- package/src/approvals/testing/contract.ts +0 -230
- package/src/approvals/testing/index.ts +0 -7
- package/src/brands/marks.ts +0 -298
- package/src/chat/ChatProvider.tsx +0 -60
- package/src/chat/DaemonOrb.tsx +0 -107
- package/src/chat/HostBadge.tsx +0 -71
- package/src/chat/HostStatusDot.tsx +0 -53
- package/src/chat/HostTranscript.tsx +0 -101
- package/src/chat/PdfPreview.tsx +0 -65
- package/src/chat/RunEstimateChip.tsx +0 -168
- package/src/chat/SessionFilterMenu.tsx +0 -397
- package/src/chat/SessionGroupHeader.tsx +0 -177
- package/src/chat/SessionHostHeader.tsx +0 -66
- package/src/chat/SessionList.tsx +0 -413
- package/src/chat/SessionListRow.tsx +0 -296
- package/src/chat/SessionStreamsProvider.tsx +0 -253
- package/src/chat/StatusDot.tsx +0 -128
- package/src/chat/TextPreview.tsx +0 -121
- package/src/chat/Throbber.tsx +0 -270
- package/src/chat/Transcript.tsx +0 -523
- package/src/chat/composer/AgentPicker.tsx +0 -155
- package/src/chat/composer/AgentPickerDialog.tsx +0 -99
- package/src/chat/composer/ApprovalDock.tsx +0 -64
- package/src/chat/composer/ArchivedBanner.tsx +0 -44
- package/src/chat/composer/AttachmentTiles.tsx +0 -211
- package/src/chat/composer/Composer.tsx +0 -500
- package/src/chat/composer/ComposerBadges.tsx +0 -339
- package/src/chat/composer/ComposerControls.tsx +0 -243
- package/src/chat/composer/ComposerEditor.tsx +0 -101
- package/src/chat/composer/ComposerHostProvider.tsx +0 -46
- package/src/chat/composer/ComposerShell.tsx +0 -129
- package/src/chat/composer/ContextBreakdown.tsx +0 -382
- package/src/chat/composer/ContextOrb.tsx +0 -176
- package/src/chat/composer/ConversationBadges.tsx +0 -168
- package/src/chat/composer/DockCard.tsx +0 -126
- package/src/chat/composer/EffortPickerDialog.tsx +0 -184
- package/src/chat/composer/HostComposer.tsx +0 -135
- package/src/chat/composer/HostContextOrb.tsx +0 -94
- package/src/chat/composer/HostModelChainList.tsx +0 -102
- package/src/chat/composer/HostPicker.tsx +0 -97
- package/src/chat/composer/HostPickers.tsx +0 -320
- package/src/chat/composer/ImageModelList.tsx +0 -151
- package/src/chat/composer/ModelChainList.tsx +0 -442
- package/src/chat/composer/ModelChainParts.tsx +0 -247
- package/src/chat/composer/ModelChainRow.tsx +0 -191
- package/src/chat/composer/ModelChainRows.tsx +0 -223
- package/src/chat/composer/ModelChainTooltip.tsx +0 -121
- package/src/chat/composer/ModelFacts.tsx +0 -204
- package/src/chat/composer/ModelOptionsPicker.tsx +0 -257
- package/src/chat/composer/ModelPicker.tsx +0 -513
- package/src/chat/composer/ModelPickerDialog.tsx +0 -99
- package/src/chat/composer/ModelProviderPills.tsx +0 -141
- package/src/chat/composer/PickerPill.tsx +0 -41
- package/src/chat/composer/ProjectMenu.tsx +0 -187
- package/src/chat/composer/PromptHistoryProvider.tsx +0 -214
- package/src/chat/composer/RetryPill.tsx +0 -47
- package/src/chat/composer/RunStatusChip.tsx +0 -150
- package/src/chat/composer/ScopeToggle.tsx +0 -94
- package/src/chat/composer/SelectTurnHint.tsx +0 -40
- package/src/chat/composer/SendButton.tsx +0 -89
- package/src/chat/composer/ServerScopeToggle.tsx +0 -188
- package/src/chat/composer/attachment-ingest.ts +0 -413
- package/src/chat/composer/attachments.tsx +0 -176
- package/src/chat/composer/badge-order.ts +0 -65
- package/src/chat/composer/composer-bus.ts +0 -317
- package/src/chat/composer/index.ts +0 -63
- package/src/chat/composer/load-composer-editor.ts +0 -25
- package/src/chat/composer/model-catalog.ts +0 -424
- package/src/chat/composer/model-list-layout.ts +0 -118
- package/src/chat/composer/prompt-history-nav.ts +0 -60
- package/src/chat/composer/scope-side.ts +0 -7
- package/src/chat/composer/suggestion-extension.ts +0 -113
- package/src/chat/composer/suggestions.tsx +0 -115
- package/src/chat/composer/use-agent-profiles.ts +0 -97
- package/src/chat/composer/use-cache-hints.ts +0 -93
- package/src/chat/composer/use-composer-stores.ts +0 -140
- package/src/chat/composer/use-draft-target.ts +0 -317
- package/src/chat/composer/use-new-session-defaults.ts +0 -201
- package/src/chat/composer/use-provider-ready-poll.ts +0 -35
- package/src/chat/composer/use-run-meter.ts +0 -140
- package/src/chat/composer/use-send-prompt.ts +0 -188
- package/src/chat/composer/use-session-meters.ts +0 -109
- package/src/chat/composer/use-sustained-work.ts +0 -74
- package/src/chat/composer/useAttachmentIngest.ts +0 -116
- package/src/chat/composer/useModelListSpy.ts +0 -19
- package/src/chat/headless/badge-refs.ts +0 -76
- package/src/chat/headless/chip-labels.ts +0 -40
- package/src/chat/headless/chip-settle.ts +0 -53
- package/src/chat/headless/chip-views.ts +0 -215
- package/src/chat/headless/composer/attachment-dedupe.ts +0 -50
- package/src/chat/headless/composer/commands.ts +0 -16
- package/src/chat/headless/composer/composer-sources.ts +0 -150
- package/src/chat/headless/composer/conversation-badges.ts +0 -227
- package/src/chat/headless/composer/draft-sync.ts +0 -199
- package/src/chat/headless/composer/editor-markdown.ts +0 -137
- package/src/chat/headless/composer/ghost-autocomplete.ts +0 -381
- package/src/chat/headless/composer/host-chrome.ts +0 -197
- package/src/chat/headless/composer/host.ts +0 -250
- package/src/chat/headless/composer/index.ts +0 -17
- package/src/chat/headless/composer/labels-chrome.ts +0 -83
- package/src/chat/headless/composer/labels-editor.ts +0 -44
- package/src/chat/headless/composer/labels.ts +0 -18
- package/src/chat/headless/composer/live-cost.ts +0 -67
- package/src/chat/headless/composer/model-knobs.ts +0 -179
- package/src/chat/headless/composer/model-names.ts +0 -145
- package/src/chat/headless/composer/model-picker-prefs.ts +0 -90
- package/src/chat/headless/composer/models.ts +0 -86
- package/src/chat/headless/composer/new-session-defaults.ts +0 -68
- package/src/chat/headless/composer/prompt-suggestions.ts +0 -72
- package/src/chat/headless/composer/remember-model-pick.ts +0 -132
- package/src/chat/headless/composer/run-meter.ts +0 -228
- package/src/chat/headless/composer-modes.ts +0 -170
- package/src/chat/headless/draft-scope.ts +0 -136
- package/src/chat/headless/draft-target.ts +0 -87
- package/src/chat/headless/extension-sources.ts +0 -64
- package/src/chat/headless/file-chip.ts +0 -175
- package/src/chat/headless/fixture-host.ts +0 -294
- package/src/chat/headless/fixture-transcript.ts +0 -125
- package/src/chat/headless/fixtures/demo-transcript-all-kinds.ts +0 -233
- package/src/chat/headless/fixtures/demo-transcript.ts +0 -244
- package/src/chat/headless/host.ts +0 -264
- package/src/chat/headless/hosts.ts +0 -55
- package/src/chat/headless/index.ts +0 -31
- package/src/chat/headless/labels.ts +0 -373
- package/src/chat/headless/markdown-chunks.ts +0 -134
- package/src/chat/headless/path-resolver.ts +0 -178
- package/src/chat/headless/prompt-origin.ts +0 -90
- package/src/chat/headless/reference-store.ts +0 -285
- package/src/chat/headless/send-flow.ts +0 -347
- package/src/chat/headless/session-list.ts +0 -400
- package/src/chat/headless/sidebar/activity.ts +0 -179
- package/src/chat/headless/sidebar/badges.ts +0 -190
- package/src/chat/headless/sidebar/compaction.ts +0 -98
- package/src/chat/headless/sidebar/directory.ts +0 -1046
- package/src/chat/headless/sidebar/dot-state.ts +0 -36
- package/src/chat/headless/sidebar/environment.ts +0 -70
- package/src/chat/headless/sidebar/estimates.ts +0 -146
- package/src/chat/headless/sidebar/host.ts +0 -41
- package/src/chat/headless/sidebar/index.ts +0 -18
- package/src/chat/headless/sidebar/labels.ts +0 -161
- package/src/chat/headless/sidebar/notifications.ts +0 -61
- package/src/chat/headless/sidebar/pinned-projects.ts +0 -51
- package/src/chat/headless/sidebar/pinned-sessions.ts +0 -27
- package/src/chat/headless/sidebar/project-icons.ts +0 -116
- package/src/chat/headless/sidebar/query.ts +0 -621
- package/src/chat/headless/sidebar/rows.ts +0 -427
- package/src/chat/headless/sidebar/types.ts +0 -96
- package/src/chat/headless/sidebar/view.ts +0 -367
- package/src/chat/headless/site-icons.ts +0 -51
- package/src/chat/headless/smooth-stream.ts +0 -76
- package/src/chat/headless/store.ts +0 -62
- package/src/chat/headless/streams/actions.ts +0 -85
- package/src/chat/headless/streams/index.ts +0 -25
- package/src/chat/headless/streams/live-events.ts +0 -124
- package/src/chat/headless/streams/merge.ts +0 -60
- package/src/chat/headless/streams/pacer.ts +0 -189
- package/src/chat/headless/streams/prompt-previews.ts +0 -64
- package/src/chat/headless/streams/scheduler.ts +0 -36
- package/src/chat/headless/streams/selectors.ts +0 -76
- package/src/chat/headless/streams/session-streams.ts +0 -407
- package/src/chat/headless/streams/store.ts +0 -1107
- package/src/chat/headless/streams/transcript.ts +0 -41
- package/src/chat/headless/streams/types.ts +0 -84
- package/src/chat/headless/transcript/batch.ts +0 -429
- package/src/chat/headless/transcript/collapse.ts +0 -789
- package/src/chat/headless/transcript/fold-actions.ts +0 -269
- package/src/chat/headless/transcript/fold-attachments.ts +0 -78
- package/src/chat/headless/transcript/fold.ts +0 -382
- package/src/chat/headless/transcript/index.ts +0 -41
- package/src/chat/headless/transcript/nesting.ts +0 -73
- package/src/chat/headless/transcript/pairing.ts +0 -124
- package/src/chat/headless/transcript/rows.ts +0 -377
- package/src/chat/headless/transcript/run-failures.ts +0 -72
- package/src/chat/headless/transcript/select-stops.ts +0 -151
- package/src/chat/headless/transcript/tool-media.ts +0 -42
- package/src/chat/headless/transcript-host.ts +0 -180
- package/src/chat/headless/transcript-labels.ts +0 -12
- package/src/chat/headless/turn-labels.ts +0 -28
- package/src/chat/headless/turn-prompt.ts +0 -32
- package/src/chat/index.ts +0 -31
- package/src/chat/interactions/HostInteractions.tsx +0 -76
- package/src/chat/interactions/InboxPanel.tsx +0 -226
- package/src/chat/interactions/InteractionCard.tsx +0 -111
- package/src/chat/interactions/PlanCard.tsx +0 -186
- package/src/chat/interactions/QuestionField.tsx +0 -336
- package/src/chat/interactions/QuestionForm.tsx +0 -283
- package/src/chat/interactions/card-ui.tsx +0 -86
- package/src/chat/interactions/hooks.ts +0 -49
- package/src/chat/interactions/index.ts +0 -8
- package/src/chat/provider-color.ts +0 -71
- package/src/chat/rich-composer/MentionList.tsx +0 -238
- package/src/chat/rich-composer/RichComposer.tsx +0 -1071
- package/src/chat/rich-composer/badge-decorations.ts +0 -157
- package/src/chat/rich-composer/composer-controls.tsx +0 -102
- package/src/chat/rich-composer/composer-extensions.ts +0 -388
- package/src/chat/rich-composer/composer-keys.ts +0 -416
- package/src/chat/rich-composer/ghost-plugin.ts +0 -89
- package/src/chat/rich-composer/index.ts +0 -3
- package/src/chat/rich-composer/mention-popover.ts +0 -336
- package/src/chat/rich-composer/slash-completion.ts +0 -143
- package/src/chat/rich-composer/use-composer-bus.ts +0 -57
- package/src/chat/rich-composer/use-composer-editor.ts +0 -216
- package/src/chat/rich-composer/use-composer-sources.ts +0 -90
- package/src/chat/rich-composer/use-draft-mirror.ts +0 -398
- package/src/chat/rich-composer/use-editor-handover.ts +0 -45
- package/src/chat/rich-composer/use-extension-composer.ts +0 -80
- package/src/chat/rich-composer/use-ghost-lifecycle.ts +0 -265
- package/src/chat/rich-composer/use-prompt-ghost.ts +0 -90
- package/src/chat/rich-composer/use-staged-attachments.ts +0 -65
- package/src/chat/sidebar/MainSessionRow.tsx +0 -102
- package/src/chat/sidebar/ProjectIcon.tsx +0 -399
- package/src/chat/sidebar/RowChips.tsx +0 -98
- package/src/chat/sidebar/SessionSidebar.tsx +0 -1039
- package/src/chat/sidebar/SidebarDecoration.tsx +0 -93
- package/src/chat/sidebar/SidebarFilterMenu.tsx +0 -270
- package/src/chat/sidebar/SidebarFooter.tsx +0 -244
- package/src/chat/sidebar/SidebarFrame.tsx +0 -154
- package/src/chat/sidebar/SidebarGroupHeader.tsx +0 -263
- package/src/chat/sidebar/SidebarHostProvider.tsx +0 -51
- package/src/chat/sidebar/SidebarRowView.tsx +0 -151
- package/src/chat/sidebar/SidebarSearchRow.tsx +0 -66
- package/src/chat/sidebar/SidebarSessionRow.tsx +0 -317
- package/src/chat/sidebar/SidebarToggleButton.tsx +0 -48
- package/src/chat/sidebar/SpaceSwitcher.tsx +0 -341
- package/src/chat/sidebar/SpacesSection.tsx +0 -259
- package/src/chat/sidebar/collapsed.ts +0 -61
- package/src/chat/sidebar/index.ts +0 -109
- package/src/chat/sidebar/session-menu.ts +0 -441
- package/src/chat/sidebar/sidebar-focus-hold.ts +0 -56
- package/src/chat/sidebar/sidebar-live.tsx +0 -666
- package/src/chat/sidebar/use-main-session.ts +0 -32
- package/src/chat/sidebar/useAgentNames.ts +0 -12
- package/src/chat/sidebar/useCompactionProgress.ts +0 -24
- package/src/chat/sidebar/usePinnedProjects.ts +0 -36
- package/src/chat/sidebar/useSaveViewAsSpace.ts +0 -42
- package/src/chat/sidebar/useSessionActivity.ts +0 -24
- package/src/chat/sidebar/useSessionBadges.ts +0 -26
- package/src/chat/sidebar/useSessionDirectoryView.ts +0 -128
- package/src/chat/sidebar/useSessionSearch.ts +0 -94
- package/src/chat/sidebar/useSidebarKeyboardNav.ts +0 -167
- package/src/chat/sidebar/useSidebarLabels.ts +0 -10
- package/src/chat/testing/composer.contract.ts +0 -508
- package/src/chat/testing/contract.ts +0 -634
- package/src/chat/testing/fixture-composer-chrome.ts +0 -159
- package/src/chat/testing/fixture-composer-host.ts +0 -147
- package/src/chat/testing/fixture-sidebar-host.ts +0 -99
- package/src/chat/testing/index.ts +0 -12
- package/src/chat/testing/sidebar.contract.ts +0 -196
- package/src/chat/transcript/BadgeMenu.tsx +0 -241
- package/src/chat/transcript/CardMarkdown.tsx +0 -102
- package/src/chat/transcript/ChipCard.tsx +0 -187
- package/src/chat/transcript/ChipCards.tsx +0 -100
- package/src/chat/transcript/DiffLines.tsx +0 -122
- package/src/chat/transcript/EarlierHistory.tsx +0 -136
- package/src/chat/transcript/EditDiffBlock.tsx +0 -176
- package/src/chat/transcript/FileChip.tsx +0 -361
- package/src/chat/transcript/ImageGenerationBlock.tsx +0 -239
- package/src/chat/transcript/InlineChipText.tsx +0 -57
- package/src/chat/transcript/InteractionToolBody.tsx +0 -211
- package/src/chat/transcript/LazyRow.tsx +0 -311
- package/src/chat/transcript/MermaidDiagram.tsx +0 -484
- package/src/chat/transcript/PromptEcho.tsx +0 -171
- package/src/chat/transcript/PromptOriginLabel.tsx +0 -44
- package/src/chat/transcript/ProseMarkdown.tsx +0 -168
- package/src/chat/transcript/ReferenceText.tsx +0 -198
- package/src/chat/transcript/SelectCursor.tsx +0 -118
- package/src/chat/transcript/SelectTurnHint.tsx +0 -81
- package/src/chat/transcript/SelectTurnProvider.tsx +0 -150
- package/src/chat/transcript/SubagentBlock.tsx +0 -224
- package/src/chat/transcript/TranscriptRow.tsx +0 -362
- package/src/chat/transcript/TranscriptSearch.tsx +0 -171
- package/src/chat/transcript/TurnMenu.tsx +0 -217
- package/src/chat/transcript/actions.tsx +0 -77
- package/src/chat/transcript/badges.tsx +0 -155
- package/src/chat/transcript/chip-details.ts +0 -169
- package/src/chat/transcript/chip-resolve.ts +0 -56
- package/src/chat/transcript/extension-renderers.tsx +0 -148
- package/src/chat/transcript/fold-attachments.tsx +0 -221
- package/src/chat/transcript/fold-status.tsx +0 -112
- package/src/chat/transcript/fold-worker.tsx +0 -160
- package/src/chat/transcript/fold.tsx +0 -522
- package/src/chat/transcript/frame.tsx +0 -326
- package/src/chat/transcript/index.ts +0 -66
- package/src/chat/transcript/markdown-cache.ts +0 -84
- package/src/chat/transcript/markdown-context.ts +0 -52
- package/src/chat/transcript/markdown.tsx +0 -351
- package/src/chat/transcript/messages.tsx +0 -169
- package/src/chat/transcript/notices.tsx +0 -508
- package/src/chat/transcript/prompt-lines.tsx +0 -55
- package/src/chat/transcript/prompt.tsx +0 -258
- package/src/chat/transcript/prose.tsx +0 -171
- package/src/chat/transcript/recent-map.ts +0 -32
- package/src/chat/transcript/references.ts +0 -108
- package/src/chat/transcript/remark-references.ts +0 -157
- package/src/chat/transcript/remark-refs.ts +0 -176
- package/src/chat/transcript/renderer-slots.tsx +0 -35
- package/src/chat/transcript/renderers.tsx +0 -251
- package/src/chat/transcript/row-estimate.ts +0 -158
- package/src/chat/transcript/run-rows.tsx +0 -291
- package/src/chat/transcript/site-icons.ts +0 -27
- package/src/chat/transcript/thumbnails.ts +0 -146
- package/src/chat/transcript/tool-batch.tsx +0 -102
- package/src/chat/transcript/tool-details.tsx +0 -31
- package/src/chat/transcript/tool-media.tsx +0 -132
- package/src/chat/transcript/tool-parts.tsx +0 -358
- package/src/chat/transcript/tool-payload.tsx +0 -76
- package/src/chat/transcript/tool-row.tsx +0 -496
- package/src/chat/transcript/turn-commands.ts +0 -101
- package/src/chat/transcript/use-transcript-rows.ts +0 -195
- package/src/chat/transcript/useComposerSearch.ts +0 -106
- package/src/chat/transcript/useSelectTurnKeys.ts +0 -204
- package/src/chat/transcript/useSettledReveal.ts +0 -57
- package/src/chat/transcript/useStickToBottom.ts +0 -600
- package/src/chat/transcript/useTranscriptFind.ts +0 -70
- package/src/chat/transcript/useTranscriptFindKey.ts +0 -52
- package/src/chat/transcript/useTranscriptScroll.ts +0 -163
- package/src/chat/transcript/useTranscriptSearch.tsx +0 -382
- package/src/chat/transcript/useTranscriptSelectionCopy.ts +0 -63
- package/src/chat/transcript/useWheelHoverPause.ts +0 -79
- package/src/chat/transcript/user-bash.tsx +0 -134
- package/src/chat/transcript-options.ts +0 -51
- package/src/chat/useChatLabels.ts +0 -14
- package/src/code/CodeHighlightProvider.tsx +0 -87
- package/src/code/HighlightedCode.tsx +0 -156
- package/src/code/code-themes.ts +0 -187
- package/src/code/editor/CodeCompletion.tsx +0 -719
- package/src/code/editor/CodeEditor.tsx +0 -480
- package/src/code/editor/CodeHover.tsx +0 -429
- package/src/code/editor/DiagnosticAnnotation.tsx +0 -73
- package/src/code/editor/DiagnosticsChip.tsx +0 -85
- package/src/code/editor/DiffView.tsx +0 -197
- package/src/code/editor/EditorColumn.tsx +0 -256
- package/src/code/editor/FileIcon.tsx +0 -89
- package/src/code/editor/FileTabPill.tsx +0 -101
- package/src/code/editor/FileTree.tsx +0 -414
- package/src/code/editor/FileView.tsx +0 -462
- package/src/code/editor/HighlightWorkers.tsx +0 -84
- package/src/code/editor/LanguageEditor.tsx +0 -210
- package/src/code/editor/_vendor/tree-icon-colors.ts +0 -72
- package/src/code/editor/diagnostics.ts +0 -140
- package/src/code/editor/edit-session.ts +0 -32
- package/src/code/editor/environment.tsx +0 -88
- package/src/code/editor/find/FindBar.tsx +0 -126
- package/src/code/editor/find/find-highlight.ts +0 -138
- package/src/code/editor/find/find-model.ts +0 -123
- package/src/code/editor/find/settle-scroll.ts +0 -77
- package/src/code/editor/find/useFind.ts +0 -203
- package/src/code/editor/fs-adapter.ts +0 -37
- package/src/code/editor/index.ts +0 -36
- package/src/code/editor/language.ts +0 -31
- package/src/code/editor/patch-parse.ts +0 -176
- package/src/code/editor/patch-parse.worker.ts +0 -12
- package/src/code/editor/pierre-theme.ts +0 -155
- package/src/code/editor/prime-diff.ts +0 -37
- package/src/code/editor/reveal.ts +0 -58
- package/src/code/editor/scroll-reach.ts +0 -28
- package/src/code/editor/useCodeDocument.ts +0 -226
- package/src/code/editor/useDefinition.ts +0 -159
- package/src/code/editor/useDetachCleanup.ts +0 -36
- package/src/code/editor/useFileDocument.ts +0 -87
- package/src/code/editor/useRevealLine.ts +0 -92
- package/src/code/editor/word-at.ts +0 -145
- package/src/code/highlight.worker.ts +0 -16
- package/src/code/highlighter.ts +0 -181
- package/src/code/highlights.ts +0 -51
- package/src/code/mermaid-lexer.ts +0 -331
- package/src/code/shiki-theme.ts +0 -46
- package/src/components/BrandMark.tsx +0 -118
- package/src/components/Breadcrumb.tsx +0 -105
- package/src/components/BrowserChrome.tsx +0 -189
- package/src/components/BrowserSignIn.tsx +0 -210
- package/src/components/ChoiceCards.tsx +0 -170
- package/src/components/CodeFrame.tsx +0 -225
- package/src/components/ConfirmDialog.tsx +0 -119
- package/src/components/CopyButton.tsx +0 -85
- package/src/components/EditableTitle.tsx +0 -199
- package/src/components/ErrorBoundary.tsx +0 -208
- package/src/components/Form.tsx +0 -593
- package/src/components/Highlighted.tsx +0 -68
- package/src/components/HowItWorks.tsx +0 -123
- package/src/components/IconButton.tsx +0 -101
- package/src/components/IconToggle.tsx +0 -71
- package/src/components/Keycap.tsx +0 -334
- package/src/components/Lightbox.tsx +0 -257
- package/src/components/LoadError.tsx +0 -45
- package/src/components/MediaNav.tsx +0 -85
- package/src/components/Menu.tsx +0 -435
- package/src/components/Overlay.tsx +0 -327
- package/src/components/PanelEmpty.tsx +0 -80
- package/src/components/PanelRows.tsx +0 -107
- package/src/components/PreviewWindow.tsx +0 -53
- package/src/components/ReorderTabs.tsx +0 -103
- package/src/components/RowActionsMenu.tsx +0 -383
- package/src/components/SegmentSpinner.tsx +0 -88
- package/src/components/Segmented.tsx +0 -126
- package/src/components/StepFrame.tsx +0 -151
- package/src/components/Stepper.tsx +0 -157
- package/src/components/Surface.tsx +0 -191
- package/src/components/SwatchPicker.tsx +0 -147
- package/src/components/SwitchGlyph.tsx +0 -56
- package/src/components/TabPill.tsx +0 -188
- package/src/components/ThemeThumb.tsx +0 -52
- package/src/components/ToggleCard.tsx +0 -120
- package/src/components/Tooltip.tsx +0 -288
- package/src/components/ZoomableImage.tsx +0 -322
- package/src/components/button.ts +0 -120
- package/src/components/floating/FloatingSurface.tsx +0 -158
- package/src/components/floating/HoverCard.tsx +0 -143
- package/src/components/floating/Popover.tsx +0 -166
- package/src/components/floating/useAnchoredPosition.ts +0 -186
- package/src/components/floating/usePopover.ts +0 -158
- package/src/components/image-clipboard.ts +0 -70
- package/src/components/keyboard-layout.ts +0 -115
- package/src/components/palette/PaletteList.tsx +0 -432
- package/src/components/palette/PalettePanel.tsx +0 -338
- package/src/components/palette/palette-layout.ts +0 -86
- package/src/components/report-error.ts +0 -142
- package/src/components/zoom.ts +0 -133
- package/src/extensions/ExtensionComponent.tsx +0 -167
- package/src/extensions/ExtensionDialogHost.tsx +0 -445
- package/src/extensions/ExtensionRenderer.tsx +0 -100
- package/src/extensions/ExtensionScreen.tsx +0 -122
- package/src/extensions/ExtensionSettingsPage.tsx +0 -112
- package/src/extensions/ExtensionSettingsPages.tsx +0 -44
- package/src/extensions/ExtensionSettingsSidebar.tsx +0 -373
- package/src/extensions/ExtensionSlot.tsx +0 -213
- package/src/extensions/ExtensionWebview.tsx +0 -104
- package/src/extensions/ExtensionsProvider.tsx +0 -124
- package/src/extensions/SettingsWireForm.tsx +0 -182
- package/src/extensions/headless/dialog-queue.ts +0 -92
- package/src/extensions/headless/effect-channel.ts +0 -50
- package/src/extensions/headless/effect-router.ts +0 -107
- package/src/extensions/headless/fixture-host.ts +0 -381
- package/src/extensions/headless/host.ts +0 -398
- package/src/extensions/headless/index.ts +0 -17
- package/src/extensions/headless/labels.ts +0 -64
- package/src/extensions/headless/links.ts +0 -56
- package/src/extensions/headless/select.ts +0 -249
- package/src/extensions/headless/webview-bridge.ts +0 -127
- package/src/extensions/headless/wire.ts +0 -175
- package/src/extensions/hooks.ts +0 -209
- package/src/extensions/index.ts +0 -25
- package/src/extensions/kit.ts +0 -79
- package/src/extensions/links.tsx +0 -165
- package/src/extensions/testing/contract.ts +0 -382
- package/src/extensions/testing/index.ts +0 -6
- package/src/extensions/useExtensionsLabels.ts +0 -14
- package/src/files/CodeViewer.tsx +0 -289
- package/src/files/DiffFileViewer.tsx +0 -143
- package/src/files/DiffsTab.tsx +0 -581
- package/src/files/EditorColumn.tsx +0 -453
- package/src/files/EditorEnvironmentRoot.tsx +0 -63
- package/src/files/FilesDiagnosticsChip.tsx +0 -32
- package/src/files/FilesProvider.tsx +0 -58
- package/src/files/FilesTab.tsx +0 -441
- package/src/files/MediaDiff.tsx +0 -61
- package/src/files/MediaView.tsx +0 -170
- package/src/files/ReviewDraft.tsx +0 -88
- package/src/files/ReviewableDiff.tsx +0 -72
- package/src/files/SearchPanel.tsx +0 -325
- package/src/files/TreeColumn.tsx +0 -229
- package/src/files/code-excerpt.ts +0 -265
- package/src/files/code-menu.ts +0 -53
- package/src/files/drafts-store.ts +0 -192
- package/src/files/file-actions.ts +0 -152
- package/src/files/headless/editor-prefs.ts +0 -230
- package/src/files/headless/entries.ts +0 -172
- package/src/files/headless/fixture-host.ts +0 -260
- package/src/files/headless/host.ts +0 -387
- package/src/files/headless/index.ts +0 -14
- package/src/files/headless/labels.ts +0 -123
- package/src/files/headless/lsp-edits.ts +0 -58
- package/src/files/headless/media.ts +0 -57
- package/src/files/headless/name-match.ts +0 -38
- package/src/files/headless/search.ts +0 -23
- package/src/files/headless/view.ts +0 -114
- package/src/files/headless/workspace-diff.ts +0 -82
- package/src/files/index.ts +0 -25
- package/src/files/lazy-tabs.tsx +0 -41
- package/src/files/session-patch.ts +0 -45
- package/src/files/tab-hooks.ts +0 -37
- package/src/files/testing/contract.ts +0 -279
- package/src/files/testing/demo.ts +0 -36
- package/src/files/testing/index.ts +0 -7
- package/src/files/useCodeReview.tsx +0 -177
- package/src/files/useDiagnostics.ts +0 -59
- package/src/files/useDiagnosticsRun.ts +0 -86
- package/src/files/useEntryActions.ts +0 -280
- package/src/files/useFilesDiagnostics.ts +0 -51
- package/src/files/useFilesLabels.ts +0 -14
- package/src/files/useFolderChanges.ts +0 -38
- package/src/files/useLsp.ts +0 -181
- package/src/files/useOpenFiles.ts +0 -402
- package/src/files/useWorkspace.ts +0 -148
- package/src/files/working-tree-diff.ts +0 -142
- package/src/git/BranchMenu.tsx +0 -988
- package/src/git/GitBar.tsx +0 -297
- package/src/git/GitProvider.tsx +0 -50
- package/src/git/ImportRepoDialog.tsx +0 -390
- package/src/git/MoveSessionDialog.tsx +0 -396
- package/src/git/RemoteFolderPicker.tsx +0 -475
- package/src/git/SyncChip.tsx +0 -275
- package/src/git/WherePicker.tsx +0 -358
- package/src/git/headless/environment.ts +0 -132
- package/src/git/headless/host.ts +0 -353
- package/src/git/headless/index.ts +0 -14
- package/src/git/headless/labels.ts +0 -230
- package/src/git/headless/move.ts +0 -101
- package/src/git/headless/remote-clone.ts +0 -44
- package/src/git/headless/status-reads.ts +0 -77
- package/src/git/headless/switcher.ts +0 -215
- package/src/git/headless/sync.ts +0 -71
- package/src/git/index.ts +0 -17
- package/src/git/testing/contract.ts +0 -551
- package/src/git/testing/index.ts +0 -537
- package/src/git/useEnvironmentChoices.ts +0 -50
- package/src/git/useGitBar.ts +0 -180
- package/src/hooks/keyed-store.ts +0 -65
- package/src/hooks/useDisplayPath.tsx +0 -93
- package/src/hooks/useHydrated.ts +0 -16
- package/src/hooks/useMinuteTick.ts +0 -49
- package/src/hooks/useNearViewport.ts +0 -111
- package/src/hooks/usePersistedState.ts +0 -98
- package/src/hooks/useResizeDrag.ts +0 -240
- package/src/hooks/useTabDrag.ts +0 -88
- package/src/index.ts +0 -119
- package/src/keybindings/KeyCommands.tsx +0 -123
- package/src/keybindings/KeyHint.tsx +0 -78
- package/src/keybindings/KeybindingsProvider.tsx +0 -231
- package/src/keybindings/headless/catalog.ts +0 -360
- package/src/keybindings/headless/commands.ts +0 -77
- package/src/keybindings/headless/fixture-host.ts +0 -51
- package/src/keybindings/headless/host.ts +0 -29
- package/src/keybindings/headless/index.ts +0 -13
- package/src/keybindings/headless/key-scope.ts +0 -91
- package/src/keybindings/headless/labels.ts +0 -14
- package/src/keybindings/headless/overrides.ts +0 -64
- package/src/keybindings/index.ts +0 -15
- package/src/keybindings/load-once.ts +0 -11
- package/src/keybindings/match.ts +0 -48
- package/src/keybindings/press.ts +0 -80
- package/src/keybindings/testing/contract.ts +0 -139
- package/src/keybindings/testing/index.ts +0 -6
- package/src/keybindings/useHelpKey.ts +0 -35
- package/src/keybindings/useKeybindingsLabels.ts +0 -14
- package/src/labels.tsx +0 -175
- package/src/machines/AddServerForm.tsx +0 -151
- package/src/machines/Banners.tsx +0 -172
- package/src/machines/DaemonMenu.tsx +0 -413
- package/src/machines/HostCapabilities.tsx +0 -245
- package/src/machines/HostSignIn.tsx +0 -63
- package/src/machines/HostSyncPanel.tsx +0 -275
- package/src/machines/HostsSection.tsx +0 -312
- package/src/machines/MachinesProvider.tsx +0 -164
- package/src/machines/ServerCard.tsx +0 -347
- package/src/machines/ServerMachinesPanel.tsx +0 -547
- package/src/machines/ServerUpdatePanel.tsx +0 -160
- package/src/machines/SyncAccounts.tsx +0 -148
- package/src/machines/SyncMarker.tsx +0 -87
- package/src/machines/SyncOutcomeBadge.tsx +0 -84
- package/src/machines/TokensPanel.tsx +0 -249
- package/src/machines/headless/fixture-host.ts +0 -519
- package/src/machines/headless/fixtures.ts +0 -164
- package/src/machines/headless/host.ts +0 -381
- package/src/machines/headless/index.ts +0 -13
- package/src/machines/headless/labels.ts +0 -364
- package/src/machines/headless/messages.ts +0 -209
- package/src/machines/headless/presence.ts +0 -110
- package/src/machines/headless/settings-focus.ts +0 -25
- package/src/machines/headless/stores.ts +0 -137
- package/src/machines/headless/sync.ts +0 -207
- package/src/machines/index.ts +0 -29
- package/src/machines/settings-section.tsx +0 -37
- package/src/machines/testing/contract.ts +0 -617
- package/src/machines/testing/index.ts +0 -7
- package/src/machines/testing/sync.contract.ts +0 -260
- package/src/motion/SwapIcon.tsx +0 -29
- package/src/motion/collapse.ts +0 -21
- package/src/motion/grow.tsx +0 -86
- package/src/motion/layout-animating.ts +0 -50
- package/src/motion/presence.ts +0 -191
- package/src/motion/provider.tsx +0 -63
- package/src/motion/reduced.ts +0 -36
- package/src/motion/roll.tsx +0 -131
- package/src/motion/shimmer.ts +0 -15
- package/src/motion/size.tsx +0 -192
- package/src/motion/springs.ts +0 -413
- package/src/motion/swap.tsx +0 -216
- package/src/motion/title-text.tsx +0 -74
- package/src/onboarding/ConnectProviderCard.tsx +0 -49
- package/src/onboarding/OnboardingFlow.tsx +0 -176
- package/src/onboarding/OnboardingProvider.tsx +0 -209
- package/src/onboarding/OnboardingStepFrame.tsx +0 -80
- package/src/onboarding/conversation.tsx +0 -196
- package/src/onboarding/demos/autonomy.tsx +0 -154
- package/src/onboarding/demos/extensions.tsx +0 -183
- package/src/onboarding/demos/features.tsx +0 -488
- package/src/onboarding/demos/how-it-works.tsx +0 -698
- package/src/onboarding/demos/index.ts +0 -11
- package/src/onboarding/demos/parts.tsx +0 -133
- package/src/onboarding/demos/tour.tsx +0 -217
- package/src/onboarding/headless/controller.ts +0 -110
- package/src/onboarding/headless/fixture-host.ts +0 -269
- package/src/onboarding/headless/fixtures.ts +0 -486
- package/src/onboarding/headless/host.ts +0 -176
- package/src/onboarding/headless/index.ts +0 -8
- package/src/onboarding/headless/labels.ts +0 -282
- package/src/onboarding/index.ts +0 -21
- package/src/onboarding/marks.tsx +0 -107
- package/src/onboarding/preview-attachments.ts +0 -39
- package/src/onboarding/skills/SkillSourceBrowser.tsx +0 -128
- package/src/onboarding/skills/parts.tsx +0 -464
- package/src/onboarding/sources/SourceBrowser.tsx +0 -400
- package/src/onboarding/steps/AutonomyStep.tsx +0 -128
- package/src/onboarding/steps/ConnectStep.tsx +0 -104
- package/src/onboarding/steps/ConnectorsStep.tsx +0 -222
- package/src/onboarding/steps/ConversationStep.tsx +0 -132
- package/src/onboarding/steps/ExtensionsStep.tsx +0 -113
- package/src/onboarding/steps/FeatureExample.tsx +0 -46
- package/src/onboarding/steps/FeaturesStep.tsx +0 -88
- package/src/onboarding/steps/ImportStep.tsx +0 -156
- package/src/onboarding/steps/LookStep.tsx +0 -276
- package/src/onboarding/steps/ReadyStep.tsx +0 -278
- package/src/onboarding/steps/SkillsStep.tsx +0 -45
- package/src/onboarding/steps/StepSection.tsx +0 -63
- package/src/onboarding/steps/Tradeoff.tsx +0 -45
- package/src/onboarding/steps/WelcomeStep.tsx +0 -147
- package/src/onboarding/steps/connect/KeyForm.tsx +0 -112
- package/src/onboarding/steps/connect/ProviderPanel.tsx +0 -149
- package/src/onboarding/steps/connect/ProviderReady.tsx +0 -171
- package/src/onboarding/steps/connect/ready-text.ts +0 -17
- package/src/onboarding/steps/index.ts +0 -12
- package/src/onboarding/steps/tasks.tsx +0 -84
- package/src/onboarding/testing/contract.ts +0 -472
- package/src/onboarding/testing/index.ts +0 -7
- package/src/onboarding/tutorials.tsx +0 -45
- package/src/onboarding/useSignIn.ts +0 -58
- package/src/palette/CommandPalette.tsx +0 -59
- package/src/palette/PaletteDialog.tsx +0 -186
- package/src/palette/PaletteProvider.tsx +0 -149
- package/src/palette/PaletteRows.tsx +0 -208
- package/src/palette/app-sources.ts +0 -62
- package/src/palette/headless/app-sources.ts +0 -515
- package/src/palette/headless/gather.ts +0 -50
- package/src/palette/headless/host.ts +0 -129
- package/src/palette/headless/index.ts +0 -15
- package/src/palette/headless/labels.ts +0 -124
- package/src/palette/headless/rank-protocol.ts +0 -23
- package/src/palette/headless/recents.ts +0 -35
- package/src/palette/headless/session-sources.ts +0 -218
- package/src/palette/headless/sources.ts +0 -313
- package/src/palette/headless/store.ts +0 -105
- package/src/palette/index.ts +0 -17
- package/src/palette/rank.worker.ts +0 -30
- package/src/palette/setup.ts +0 -19
- package/src/palette/testing/contract.ts +0 -250
- package/src/palette/testing/index.ts +0 -152
- package/src/palette/useConversationSearch.ts +0 -115
- package/src/palette/usePaletteController.ts +0 -229
- package/src/palette/useRankedItems.ts +0 -122
- package/src/path.ts +0 -199
- package/src/server/demo-tools.ts +0 -34
- package/src/server/environment.ts +0 -118
- package/src/server/index.ts +0 -7
- package/src/server/scripted-provider.ts +0 -174
- package/src/server/sse-handler.ts +0 -457
- package/src/server/testing/index.ts +0 -7
- package/src/session/ArtifactRowChips.tsx +0 -260
- package/src/session/ArtifactsPanel.tsx +0 -426
- package/src/session/DiffFileTree.tsx +0 -173
- package/src/session/PanelAttention.tsx +0 -131
- package/src/session/ProjectHome.tsx +0 -733
- package/src/session/ProviderUsageProvider.tsx +0 -113
- package/src/session/QueueTab.tsx +0 -669
- package/src/session/RunningWorkDialog.tsx +0 -178
- package/src/session/SessionCacheFacts.tsx +0 -190
- package/src/session/SessionDetailsDialog.tsx +0 -627
- package/src/session/SessionHeader.tsx +0 -242
- package/src/session/SessionProvider.tsx +0 -98
- package/src/session/SessionShell.tsx +0 -77
- package/src/session/SideChat.tsx +0 -320
- package/src/session/TodoList.tsx +0 -123
- package/src/session/TodosPanel.tsx +0 -279
- package/src/session/TurnDetailsDialog.tsx +0 -299
- package/src/session/UsagePanel.tsx +0 -358
- package/src/session/WelcomeScreen.tsx +0 -88
- package/src/session/headless/artifacts.ts +0 -101
- package/src/session/headless/diff-tree.ts +0 -167
- package/src/session/headless/fixture-host.ts +0 -362
- package/src/session/headless/home-layout.ts +0 -276
- package/src/session/headless/host.ts +0 -263
- package/src/session/headless/index.ts +0 -23
- package/src/session/headless/keyed.ts +0 -72
- package/src/session/headless/labels.ts +0 -337
- package/src/session/headless/queue-attachments.ts +0 -73
- package/src/session/headless/queue.ts +0 -122
- package/src/session/headless/running-work.ts +0 -85
- package/src/session/headless/session-actions.ts +0 -198
- package/src/session/headless/session-diffs.ts +0 -136
- package/src/session/headless/side.ts +0 -63
- package/src/session/headless/todos.ts +0 -62
- package/src/session/headless/usage-format.ts +0 -19
- package/src/session/headless/usage.ts +0 -407
- package/src/session/index.ts +0 -31
- package/src/session/modal-shell.tsx +0 -24
- package/src/session/testing/contract.ts +0 -588
- package/src/session/testing/demo.ts +0 -224
- package/src/session/testing/index.ts +0 -7
- package/src/session/useSessionLabels.ts +0 -14
- package/src/session/useUsageSummary.ts +0 -82
- package/src/settings/SettingsHeadingText.tsx +0 -54
- package/src/settings/SettingsHostSwitcher.tsx +0 -93
- package/src/settings/SettingsNav.tsx +0 -198
- package/src/settings/SettingsProvider.tsx +0 -127
- package/src/settings/SettingsRowsPage.tsx +0 -218
- package/src/settings/SettingsShell.tsx +0 -337
- package/src/settings/SettingsTutorial.tsx +0 -55
- package/src/settings/headless/catalog.ts +0 -570
- package/src/settings/headless/claude-import.ts +0 -61
- package/src/settings/headless/enabled.ts +0 -44
- package/src/settings/headless/fixture-accounts.ts +0 -260
- package/src/settings/headless/fixture-host.ts +0 -162
- package/src/settings/headless/fixture-models.ts +0 -51
- package/src/settings/headless/fixture-performance.ts +0 -350
- package/src/settings/headless/fixture-sections.ts +0 -391
- package/src/settings/headless/host.ts +0 -127
- package/src/settings/headless/index.ts +0 -22
- package/src/settings/headless/labels.ts +0 -63
- package/src/settings/headless/layout-sections.ts +0 -41
- package/src/settings/headless/layout.ts +0 -732
- package/src/settings/headless/mcp.ts +0 -319
- package/src/settings/headless/models.ts +0 -51
- package/src/settings/headless/page-counts.ts +0 -40
- package/src/settings/headless/performance.ts +0 -524
- package/src/settings/headless/providers.ts +0 -117
- package/src/settings/headless/registry.ts +0 -62
- package/src/settings/headless/resource.ts +0 -75
- package/src/settings/headless/search.ts +0 -142
- package/src/settings/headless/sections-host.ts +0 -340
- package/src/settings/index.ts +0 -32
- package/src/settings/rows.tsx +0 -152
- package/src/settings/section.tsx +0 -165
- package/src/settings/sections/appearance/AppearanceSection.tsx +0 -667
- package/src/settings/sections/appearance/labels.ts +0 -77
- package/src/settings/sections/claude-import/ClaudeImportDialog.tsx +0 -258
- package/src/settings/sections/claude-import/labels.ts +0 -42
- package/src/settings/sections/claude-import/use-claude-import-available.ts +0 -35
- package/src/settings/sections/descriptors.tsx +0 -261
- package/src/settings/sections/editor/EditorSection.tsx +0 -521
- package/src/settings/sections/editor/labels.ts +0 -84
- package/src/settings/sections/enabled-list/EnabledListSection.tsx +0 -112
- package/src/settings/sections/enabled-list/labels.ts +0 -37
- package/src/settings/sections/environments/EnvironmentsSection.tsx +0 -549
- package/src/settings/sections/environments/labels.ts +0 -31
- package/src/settings/sections/extensions/ChangeOriginDialog.tsx +0 -218
- package/src/settings/sections/extensions/CreateExtensionDialog.tsx +0 -210
- package/src/settings/sections/extensions/ExtensionConfigRows.tsx +0 -508
- package/src/settings/sections/extensions/ExtensionOptionsSection.tsx +0 -356
- package/src/settings/sections/extensions/ExtensionPicksBar.tsx +0 -112
- package/src/settings/sections/extensions/ExtensionSourceBrowser.tsx +0 -244
- package/src/settings/sections/extensions/ExtensionsSection.tsx +0 -665
- package/src/settings/sections/extensions/create-labels.ts +0 -31
- package/src/settings/sections/extensions/labels.ts +0 -64
- package/src/settings/sections/extensions/options-labels.ts +0 -34
- package/src/settings/sections/host-catalog/HostCatalogSection.tsx +0 -457
- package/src/settings/sections/host-catalog/labels.ts +0 -44
- package/src/settings/sections/index.ts +0 -60
- package/src/settings/sections/instructions/InstructionsSection.tsx +0 -385
- package/src/settings/sections/instructions/labels.ts +0 -33
- package/src/settings/sections/keybindings/KeybindingsSection.tsx +0 -124
- package/src/settings/sections/keybindings/labels.ts +0 -72
- package/src/settings/sections/keybindings/rows.ts +0 -103
- package/src/settings/sections/logs/LogsSection.tsx +0 -153
- package/src/settings/sections/logs/labels.ts +0 -20
- package/src/settings/sections/mcp/McpAddForm.tsx +0 -245
- package/src/settings/sections/mcp/McpSection.tsx +0 -358
- package/src/settings/sections/mcp/McpServerRow.tsx +0 -404
- package/src/settings/sections/mcp/labels.ts +0 -193
- package/src/settings/sections/models/AgentDefaults.tsx +0 -365
- package/src/settings/sections/models/ModelListPicker.tsx +0 -265
- package/src/settings/sections/models/ModelPickField.tsx +0 -220
- package/src/settings/sections/models/ModelRows.tsx +0 -381
- package/src/settings/sections/models/SpacesDefaultsSection.tsx +0 -102
- package/src/settings/sections/models/labels.ts +0 -119
- package/src/settings/sections/models/model-test.tsx +0 -125
- package/src/settings/sections/performance/PerfSparkline.tsx +0 -64
- package/src/settings/sections/performance/PerformanceHud.tsx +0 -110
- package/src/settings/sections/performance/PerformanceSection.tsx +0 -770
- package/src/settings/sections/performance/labels.ts +0 -114
- package/src/settings/sections/performance/use-perf-monitor.ts +0 -26
- package/src/settings/sections/plugins/PluginsSection.tsx +0 -151
- package/src/settings/sections/plugins/labels.ts +0 -23
- package/src/settings/sections/providers/CredentialSources.tsx +0 -237
- package/src/settings/sections/providers/ProvidersSection.tsx +0 -389
- package/src/settings/sections/providers/ServerProvidersSection.tsx +0 -244
- package/src/settings/sections/providers/ServerSignIn.tsx +0 -137
- package/src/settings/sections/providers/labels.ts +0 -160
- package/src/settings/sections/shared/catalog.tsx +0 -265
- package/src/settings/sections/shared/labels.ts +0 -31
- package/src/settings/sections/skills/SkillList.tsx +0 -494
- package/src/settings/sections/skills/SkillsSection.tsx +0 -249
- package/src/settings/sections/skills/labels.ts +0 -54
- package/src/settings/sections/use-section-labels.ts +0 -10
- package/src/settings/testing/accounts-demo.ts +0 -110
- package/src/settings/testing/accounts.contract.ts +0 -319
- package/src/settings/testing/claude-import.contract.ts +0 -93
- package/src/settings/testing/contract.ts +0 -192
- package/src/settings/testing/extension-options.contract.ts +0 -163
- package/src/settings/testing/index.ts +0 -11
- package/src/settings/testing/models.contract.ts +0 -135
- package/src/settings/testing/performance.contract.ts +0 -219
- package/src/settings/testing/sections.contract.ts +0 -306
- package/src/terminal/HostTerminalSurface.tsx +0 -917
- package/src/terminal/TerminalDrawer.tsx +0 -228
- package/src/terminal/TerminalPanel.tsx +0 -740
- package/src/terminal/TerminalProvider.tsx +0 -201
- package/src/terminal/TerminalSurface.tsx +0 -262
- package/src/terminal/box-glyphs.ts +0 -333
- package/src/terminal/ghostty.ts +0 -116
- package/src/terminal/grid-size.ts +0 -46
- package/src/terminal/headless/fixture-host.ts +0 -250
- package/src/terminal/headless/host.ts +0 -99
- package/src/terminal/headless/index.ts +0 -11
- package/src/terminal/headless/labels.ts +0 -69
- package/src/terminal/headless/layout.ts +0 -57
- package/src/terminal/headless/links.ts +0 -227
- package/src/terminal/headless/order.ts +0 -28
- package/src/terminal/headless/output-cursor.ts +0 -66
- package/src/terminal/headless/recent.ts +0 -20
- package/src/terminal/headless/replay.ts +0 -45
- package/src/terminal/headless/scope.ts +0 -60
- package/src/terminal/headless/store.ts +0 -637
- package/src/terminal/index.ts +0 -40
- package/src/terminal/keys.ts +0 -34
- package/src/terminal/testing/contract.ts +0 -274
- package/src/terminal/testing/demo.ts +0 -40
- package/src/terminal/testing/index.ts +0 -7
- package/src/terminal/theme.ts +0 -110
- package/src/terminal/useTerminalLabels.ts +0 -14
- package/src/theme/accents.ts +0 -46
- package/src/theme/color.ts +0 -450
- package/src/theme/css-vars.ts +0 -187
- package/src/theme/derive.ts +0 -700
- package/src/theme/from-theme.ts +0 -52
- package/src/theme/stylesheet.ts +0 -55
- package/src/theme/themes.ts +0 -767
- package/src/theme/without-transitions.ts +0 -18
- package/src/uno.ts +0 -167
- package/src/workspace/LayoutBudget.tsx +0 -143
- package/src/workspace/PanelContentView.tsx +0 -523
- package/src/workspace/PanelCorner.tsx +0 -111
- package/src/workspace/PanelGroups.tsx +0 -264
- package/src/workspace/PanelHome.tsx +0 -71
- package/src/workspace/PanelItems.tsx +0 -368
- package/src/workspace/PanelStrip.tsx +0 -316
- package/src/workspace/SidePanel.tsx +0 -240
- package/src/workspace/TabParking.tsx +0 -120
- package/src/workspace/WorkspaceProvider.tsx +0 -558
- package/src/workspace/dnd/engine.ts +0 -371
- package/src/workspace/dnd/hooks.ts +0 -72
- package/src/workspace/dnd/index.ts +0 -57
- package/src/workspace/dnd/parking.tsx +0 -181
- package/src/workspace/extension-tabs.tsx +0 -174
- package/src/workspace/frame-motion.ts +0 -160
- package/src/workspace/headless/contents.ts +0 -125
- package/src/workspace/headless/host.ts +0 -129
- package/src/workspace/headless/index.ts +0 -33
- package/src/workspace/headless/labels.ts +0 -44
- package/src/workspace/headless/layout-memory.ts +0 -649
- package/src/workspace/headless/layouts.ts +0 -224
- package/src/workspace/headless/open-target.ts +0 -125
- package/src/workspace/headless/ops.ts +0 -163
- package/src/workspace/headless/panel-focus.ts +0 -58
- package/src/workspace/headless/panel-tree.ts +0 -259
- package/src/workspace/headless/resolve.ts +0 -146
- package/src/workspace/headless/reveal-at.ts +0 -27
- package/src/workspace/headless/strip-drop.ts +0 -81
- package/src/workspace/headless/tree.ts +0 -480
- package/src/workspace/headless/view.ts +0 -164
- package/src/workspace/index.ts +0 -23
- package/src/workspace/panel-group-keys.ts +0 -36
- package/src/workspace/panel-visibility.ts +0 -28
- package/src/workspace/tab-scopes.ts +0 -245
- package/src/workspace/testing/contract.ts +0 -282
- package/src/workspace/testing/index.ts +0 -140
- package/src/workspace/use-split-drag.ts +0 -73
- package/src/workspace/useScopeLayout.ts +0 -26
- package/src/workspace/useViewport.ts +0 -22
- package/src/workspace/useWorkspaceLabels.ts +0 -14
- package/src/workspace/workspace-key-commands.ts +0 -108
- /package/dist/dist/{types-bDQagoiL.d.ts → types-2HrgolQz.d.ts} +0 -0
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Inline (ghost-text) autocomplete for the rich composer: the pure
|
|
3
|
-
* trigger/accept/dismiss state machine. TUI parity throughout; every
|
|
4
|
-
* semantic cites its source in `src/tui/prompt/`. The provider engine runs
|
|
5
|
-
* host-side (`ComposerHost.autocomplete`); the ProseMirror decoration plugin
|
|
6
|
-
* and the editor's text/caret mapping are `chat/rich-composer/ghost-plugin.ts`.
|
|
7
|
-
*/
|
|
8
|
-
import type { InlineGhost } from 'zidane/chat/pure';
|
|
9
|
-
|
|
10
|
-
/** Debounce between an edit and the provider query — TUI parity (`INLINE_GHOST_DEBOUNCE_MS`, src/tui/prompt/use-inline-ghost-query.ts). */
|
|
11
|
-
export const GHOST_DEBOUNCE_MS = 120;
|
|
12
|
-
|
|
13
|
-
export type GhostComposerMode = 'normal' | 'shell' | 'search';
|
|
14
|
-
|
|
15
|
-
export interface GhostGate {
|
|
16
|
-
/** The `inlineAutocomplete` setting (live). */
|
|
17
|
-
enabled: boolean;
|
|
18
|
-
/** Full plain-text buffer + caret offset (see `plainTextWithCursor`). */
|
|
19
|
-
text: string;
|
|
20
|
-
cursor: number;
|
|
21
|
-
/** Any mention/slash popover open — the popover owns Tab and ↑/↓ (TUI `useInlineGhostQuery`). */
|
|
22
|
-
popoverOpen: boolean;
|
|
23
|
-
/** Composer prompt mode — shell (`!`) and search (`?`) suppress (TUI `useInlineGhostQuery`). */
|
|
24
|
-
mode: GhostComposerMode;
|
|
25
|
-
/** Prompt-history recall in flight — browsing must not pop ghosts. */
|
|
26
|
-
historyRecall: boolean;
|
|
27
|
-
/** IME composition — never ghost mid-composition. */
|
|
28
|
-
composing: boolean;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Should this buffer state trigger a provider query? Mirrors the TUI's
|
|
33
|
-
* trigger effect gate (`useInlineGhostQuery`,
|
|
34
|
-
* src/tui/prompt/use-inline-ghost-query.ts): setting on, no popover, no
|
|
35
|
-
* shell/search mode, non-empty buffer, and the caret at a WORD BOUNDARY
|
|
36
|
-
* (end of buffer, or the next character is whitespace) — completing
|
|
37
|
-
* mid-word would suggest garbage for the token ENDING at the cursor.
|
|
38
|
-
*/
|
|
39
|
-
export function ghostQueryAllowed(gate: GhostGate): boolean {
|
|
40
|
-
if (!gate.enabled || gate.popoverOpen || gate.mode !== 'normal' || gate.historyRecall || gate.composing) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (gate.text.length === 0) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return gate.cursor === gate.text.length || /\s/.test(gate.text[gate.cursor]);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Does the mention/slash popover own the keys (and therefore suppress
|
|
53
|
-
* the ghost)? TUI parity (`PromptBlock`, src/tui/prompt/prompt-block.tsx):
|
|
54
|
-
* `popupOpen` is true only
|
|
55
|
-
* while the completion is active AND actually SHOWS items — an active
|
|
56
|
-
* suggestion with zero matches leaves the gate open, so extension
|
|
57
|
-
* providers (e.g. an LLM completing arbitrary prose) still ghost while
|
|
58
|
-
* the user types an `@`/`#`-prefixed token with no popover matches.
|
|
59
|
-
*/
|
|
60
|
-
export function mentionPopoverActive(itemCount: number): boolean {
|
|
61
|
-
return itemCount > 0;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Single-row ghost — keep the first line of each candidate, drop empties
|
|
66
|
-
* (TUI `useInlineGhostQuery`).
|
|
67
|
-
*/
|
|
68
|
-
export function firstLineSuffixes(suffixes: readonly string[]): string[] {
|
|
69
|
-
return suffixes.map((s) => s.split('\n')[0]).filter((s) => s.length > 0);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/** A next-prompt suggestion (`Settings.promptSuggestions`) on offer for the empty composer. */
|
|
73
|
-
export interface PromptGhostOffer {
|
|
74
|
-
/** `sessionId:runId` — one suggestion, for the dismissal memory and the counters. */
|
|
75
|
-
key: string;
|
|
76
|
-
text: string;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* The suggestion the empty composer may show, or null: the setting is on, no
|
|
81
|
-
* run is going, the suggestion belongs to the composer's session (the store is
|
|
82
|
-
* per session) and Escape hasn't dismissed it. Only its first line is kept.
|
|
83
|
-
*/
|
|
84
|
-
export function promptGhostOffer(input: {
|
|
85
|
-
enabled: boolean;
|
|
86
|
-
running: boolean;
|
|
87
|
-
sessionId: string | null;
|
|
88
|
-
suggestion: { runId: string; text: string } | null;
|
|
89
|
-
dismissedKey: string | null;
|
|
90
|
-
}): PromptGhostOffer | null {
|
|
91
|
-
const { enabled, running, sessionId, suggestion, dismissedKey } = input;
|
|
92
|
-
|
|
93
|
-
if (!enabled || running || !sessionId || !suggestion) {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
const text = suggestion.text.split('\n')[0].trim();
|
|
98
|
-
const key = `${sessionId}:${suggestion.runId}`;
|
|
99
|
-
|
|
100
|
-
return text.length > 0 && key !== dismissedKey ? { key, text } : null;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/** The empty-buffer suggestion shows only on an empty doc in normal mode, no popover, no IME. */
|
|
104
|
-
export function promptGhostAllowed(gate: GhostGate): boolean {
|
|
105
|
-
return gate.text.length === 0 && !gate.popoverOpen && gate.mode === 'normal' && !gate.composing;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export type GhostKeyAction =
|
|
109
|
-
/** Insert `insert` at the caret and clear the ghost (consume the key). */
|
|
110
|
-
| { type: 'accept'; insert: string }
|
|
111
|
-
/** Rotate to candidate `index` (consume the key). */
|
|
112
|
-
| { type: 'rotate'; index: number }
|
|
113
|
-
/**
|
|
114
|
-
* Clear the ghost. `consume: false` lets the key fall through to its
|
|
115
|
-
* normal behavior (caret movement, Esc reaching other handlers) —
|
|
116
|
-
* exactly the TUI's non-preventDefault dismissals.
|
|
117
|
-
*/
|
|
118
|
-
| { type: 'dismiss'; consume: boolean; forSuggestion?: true }
|
|
119
|
-
| { type: 'none' };
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Pure caret-movement keys — these move the caret WITHOUT a content
|
|
123
|
-
* change, so the ghost must drop instead of dangling at the old caret
|
|
124
|
-
* (TUI `handleInlineGhostKey`). `ArrowUp`/`ArrowDown` are handled by the
|
|
125
|
-
* rotate branch first; they land here only with a single candidate.
|
|
126
|
-
*/
|
|
127
|
-
const MOVEMENT_KEYS = new Set(['ArrowLeft', 'ArrowRight', 'Home', 'End', 'PageUp', 'PageDown', 'ArrowUp', 'ArrowDown']);
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Keydown resolution while a ghost is visible — TUI parity
|
|
131
|
-
* (`handleInlineGhostKey`, src/tui/prompt/prompt-key-handlers.ts):
|
|
132
|
-
* - modifier chords are never ghost keys;
|
|
133
|
-
* - Tab accepts, but only when the live buffer still matches the
|
|
134
|
-
* ghost's snapshot — a race with fast typing can never insert a
|
|
135
|
-
* stale suffix;
|
|
136
|
-
* - ↑/↓ rotate when there is more than one candidate;
|
|
137
|
-
* - Esc dismisses WITHOUT consuming — other Esc semantics still run;
|
|
138
|
-
* - pure movement keys dismiss without consuming;
|
|
139
|
-
* - everything else (typing) passes through — the transaction
|
|
140
|
-
* reconciliation handles it blink-free.
|
|
141
|
-
*
|
|
142
|
-
* A next-prompt suggestion (`opts.prompt`, empty buffer) differs: → with the
|
|
143
|
-
* caret at the end accepts too, Esc dismisses it for good (`forSuggestion`),
|
|
144
|
-
* and every other key passes through so ↑ still recalls history.
|
|
145
|
-
*/
|
|
146
|
-
export function ghostKeyAction(
|
|
147
|
-
ghost: InlineGhost | null,
|
|
148
|
-
event: { key: string; ctrlKey: boolean; metaKey: boolean; altKey: boolean; shiftKey: boolean },
|
|
149
|
-
live: { text: string; cursor: number },
|
|
150
|
-
opts: { prompt?: boolean } = {},
|
|
151
|
-
): GhostKeyAction {
|
|
152
|
-
if (!ghost) {
|
|
153
|
-
return { type: 'none' };
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey) {
|
|
157
|
-
return { type: 'none' };
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
const snapshotMatches = live.text === ghost.text && live.cursor === ghost.cursor;
|
|
161
|
-
|
|
162
|
-
if (opts.prompt) {
|
|
163
|
-
const atEnd = live.cursor === live.text.length;
|
|
164
|
-
|
|
165
|
-
if (snapshotMatches && (event.key === 'Tab' || (event.key === 'ArrowRight' && atEnd))) {
|
|
166
|
-
return { type: 'accept', insert: ghost.suffixes[ghost.index] };
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
if (event.key === 'Escape') {
|
|
170
|
-
return { type: 'dismiss', consume: false, forSuggestion: true };
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
return { type: 'none' };
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
if (event.key === 'Tab') {
|
|
177
|
-
if (!snapshotMatches) {
|
|
178
|
-
// Stale ghost: drop it and let Tab do whatever it normally does —
|
|
179
|
-
// never insert a suffix for a buffer that moved on.
|
|
180
|
-
return { type: 'dismiss', consume: false };
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
return { type: 'accept', insert: ghost.suffixes[ghost.index] };
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
if ((event.key === 'ArrowUp' || event.key === 'ArrowDown') && ghost.suffixes.length > 1) {
|
|
187
|
-
const delta = event.key === 'ArrowDown' ? 1 : -1;
|
|
188
|
-
|
|
189
|
-
return { type: 'rotate', index: (ghost.index + delta + ghost.suffixes.length) % ghost.suffixes.length };
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
if (event.key === 'Escape') {
|
|
193
|
-
return { type: 'dismiss', consume: false };
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
if (MOVEMENT_KEYS.has(event.key)) {
|
|
197
|
-
return { type: 'dismiss', consume: false };
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
return { type: 'none' };
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
// ---------------------------------------------------------------------------
|
|
204
|
-
// Query controller
|
|
205
|
-
// ---------------------------------------------------------------------------
|
|
206
|
-
|
|
207
|
-
export interface GhostControllerHost {
|
|
208
|
-
/** Live gate snapshot — buffer, caret, and every suppression flag. */
|
|
209
|
-
gate(): GhostGate;
|
|
210
|
-
/** Resolve suffix candidates for the snapshot (the IPC round trip). */
|
|
211
|
-
query(text: string, cursor: number): Promise<readonly string[] | null | undefined>;
|
|
212
|
-
/**
|
|
213
|
-
* Reply-time recheck: the live buffer still matches the queried
|
|
214
|
-
* snapshot and no gate flag flipped during the round trip. A `false`
|
|
215
|
-
* drops the reply without painting.
|
|
216
|
-
*/
|
|
217
|
-
confirm(text: string, cursor: number): boolean;
|
|
218
|
-
/** Paint (or clear) the ghost; `prompt` is set when it is the empty-buffer next-prompt suggestion. */
|
|
219
|
-
apply(ghost: InlineGhost | null, prompt?: PromptGhostOffer): void;
|
|
220
|
-
/** The next-prompt suggestion on offer (see {@link promptGhostOffer}); an empty buffer shows it without a query. */
|
|
221
|
-
promptSuggestion?(): PromptGhostOffer | null;
|
|
222
|
-
debounceMs?: number;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export interface GhostController {
|
|
226
|
-
/**
|
|
227
|
-
* Re-evaluate the gate NOW and query/dismiss accordingly. Edits AND
|
|
228
|
-
* edit-less gate transitions both land here — TUI parity: the trigger
|
|
229
|
-
* effect re-runs on every gate dependency (`useInlineGhostQuery`), so a
|
|
230
|
-
* popover closing on Esc, a shell/search mode exiting with the buffer
|
|
231
|
-
* kept, or the setting flipping on all re-query WITHOUT a keystroke
|
|
232
|
-
* (and a gate closing dismisses the ghost immediately).
|
|
233
|
-
*/
|
|
234
|
-
reevaluate(): void;
|
|
235
|
-
/** Drop any pending query; a stale in-flight reply is discarded. */
|
|
236
|
-
cancel(): void;
|
|
237
|
-
/**
|
|
238
|
-
* A local query is pending — debounce timer armed or an IPC round
|
|
239
|
-
* trip in flight whose reply will still be honored. The remote-mirror
|
|
240
|
-
* path uses this as the "active typist" test: a daemon-fanned
|
|
241
|
-
* suggestion is only applied when it arrived WITHOUT a local pending
|
|
242
|
-
* request (see {@link remoteGhostUpdate}).
|
|
243
|
-
*/
|
|
244
|
-
hasPending(): boolean;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* Debounced latest-wins query loop — the renderer half of the TUI's
|
|
249
|
-
* abort-on-change effect (`useInlineGhostQuery`,
|
|
250
|
-
* src/tui/prompt/use-inline-ghost-query.ts). Every `reevaluate`
|
|
251
|
-
* bumps the sequence, so at most one query is pending and a reply that
|
|
252
|
-
* lost the race is dropped. Host errors collapse to "no ghost".
|
|
253
|
-
*/
|
|
254
|
-
export function createGhostController(host: GhostControllerHost): GhostController {
|
|
255
|
-
let seq = 0;
|
|
256
|
-
let timer: ReturnType<typeof setTimeout> | null = null;
|
|
257
|
-
// Seq of the query currently awaiting its IPC reply, or null. Compared
|
|
258
|
-
// against `seq` so a cancel/reevaluate (which bumps `seq`) implicitly
|
|
259
|
-
// marks the in-flight reply as no longer pending.
|
|
260
|
-
let inflightSeq: number | null = null;
|
|
261
|
-
const debounce = host.debounceMs ?? GHOST_DEBOUNCE_MS;
|
|
262
|
-
|
|
263
|
-
const cancel = () => {
|
|
264
|
-
seq += 1;
|
|
265
|
-
|
|
266
|
-
if (timer !== null) {
|
|
267
|
-
clearTimeout(timer);
|
|
268
|
-
timer = null;
|
|
269
|
-
}
|
|
270
|
-
};
|
|
271
|
-
|
|
272
|
-
return {
|
|
273
|
-
cancel,
|
|
274
|
-
hasPending: () => timer !== null || inflightSeq === seq,
|
|
275
|
-
reevaluate() {
|
|
276
|
-
cancel();
|
|
277
|
-
|
|
278
|
-
const gate = host.gate();
|
|
279
|
-
const offer = promptGhostAllowed(gate) ? (host.promptSuggestion?.() ?? null) : null;
|
|
280
|
-
|
|
281
|
-
if (offer) {
|
|
282
|
-
host.apply({ suffixes: [offer.text], index: 0, text: '', cursor: 0 }, offer);
|
|
283
|
-
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
if (!ghostQueryAllowed(gate)) {
|
|
288
|
-
host.apply(null);
|
|
289
|
-
|
|
290
|
-
return;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
const mySeq = seq;
|
|
294
|
-
const { text, cursor } = gate;
|
|
295
|
-
|
|
296
|
-
timer = setTimeout(() => {
|
|
297
|
-
timer = null;
|
|
298
|
-
inflightSeq = mySeq;
|
|
299
|
-
|
|
300
|
-
host
|
|
301
|
-
.query(text, cursor)
|
|
302
|
-
.then((suffixes) => {
|
|
303
|
-
if (mySeq !== seq || !host.confirm(text, cursor)) {
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
const lines = firstLineSuffixes(suffixes ?? []);
|
|
308
|
-
|
|
309
|
-
host.apply(lines.length > 0 ? { suffixes: lines, index: 0, text, cursor } : null);
|
|
310
|
-
})
|
|
311
|
-
.catch(() => undefined)
|
|
312
|
-
.finally(() => {
|
|
313
|
-
if (inflightSeq === mySeq) {
|
|
314
|
-
inflightSeq = null;
|
|
315
|
-
}
|
|
316
|
-
});
|
|
317
|
-
}, debounce);
|
|
318
|
-
},
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
// ---------------------------------------------------------------------------
|
|
323
|
-
// Remote mirror (daemon mode)
|
|
324
|
-
// ---------------------------------------------------------------------------
|
|
325
|
-
|
|
326
|
-
/** The wire payload of a daemon-fanned `suggest:changed` signal. */
|
|
327
|
-
export interface RemoteGhostSignal {
|
|
328
|
-
/** Buffer text the suggestion was computed against. */
|
|
329
|
-
basis: string;
|
|
330
|
-
caret: number;
|
|
331
|
-
suggestion: string | null;
|
|
332
|
-
/**
|
|
333
|
-
* Full ordered candidate list (additive — older daemons omit it).
|
|
334
|
-
* When present, the mirrored ghost keeps ↑/↓ rotation instead of
|
|
335
|
-
* pinning to the single `suggestion`.
|
|
336
|
-
*/
|
|
337
|
-
candidates?: string[];
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
/**
|
|
341
|
-
* Reconcile a daemon-fanned remote suggestion against the live buffer —
|
|
342
|
-
* the mirroring half of the shared-computation contract (the daemon
|
|
343
|
-
* excludes the requesting peer, but every renderer WINDOW of one main
|
|
344
|
-
* process receives the forward, so the typist is re-excluded here):
|
|
345
|
-
* - `localPending` (this window is the active typist — its own query
|
|
346
|
-
* answers) → ignore;
|
|
347
|
-
* - live buffer no longer equals `basis` (the standard staleness
|
|
348
|
-
* guard) → ignore;
|
|
349
|
-
* - otherwise the ghost to paint, or null to clear (the remote typist
|
|
350
|
-
* got no suggestion for this exact basis).
|
|
351
|
-
*
|
|
352
|
-
* Returns `undefined` for "ignore" so callers keep the existing ghost —
|
|
353
|
-
* prefers-existing behavior when signals never flow is untouched.
|
|
354
|
-
*/
|
|
355
|
-
export function remoteGhostUpdate(
|
|
356
|
-
signal: RemoteGhostSignal,
|
|
357
|
-
live: { text: string; cursor: number },
|
|
358
|
-
localPending: boolean,
|
|
359
|
-
): InlineGhost | null | undefined {
|
|
360
|
-
if (localPending) {
|
|
361
|
-
return undefined;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
if (live.text !== signal.basis) {
|
|
365
|
-
return undefined;
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
if (signal.suggestion === null) {
|
|
369
|
-
return null;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
const lines = firstLineSuffixes(
|
|
373
|
-
signal.candidates && signal.candidates.length > 0 ? signal.candidates : [signal.suggestion],
|
|
374
|
-
);
|
|
375
|
-
|
|
376
|
-
if (lines.length === 0) {
|
|
377
|
-
return null;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
return { suffixes: lines, index: 0, text: signal.basis, cursor: signal.caret };
|
|
381
|
-
}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The members of `ComposerHost` the chrome around the editor reads: the
|
|
3
|
-
* pickers' session writes (`controls`), the model catalogs (`models`), the
|
|
4
|
-
* agent profiles (`agents`), the picks remembered across apps (`prefs`), the
|
|
5
|
-
* context and cost meters (`context`) and the run counters (`runs`). Every member is optional: leaving one out
|
|
6
|
-
* hides what needs it.
|
|
7
|
-
*/
|
|
8
|
-
import type { IpcParams, IpcResult } from 'zidane/ipc';
|
|
9
|
-
import type { ContextBreakdown } from 'zidane/chat/pure';
|
|
10
|
-
import type { ThinkingLevel } from 'zidane/types';
|
|
11
|
-
|
|
12
|
-
import type { ResourceSnapshot } from '../../../app/headless/resource';
|
|
13
|
-
import type { Readable } from '../store';
|
|
14
|
-
import type { ComposerModelEntry, ComposerModelOption, ImageModelRow, ModelPickRef } from './models';
|
|
15
|
-
import type { RunMeterState } from './run-meter';
|
|
16
|
-
|
|
17
|
-
export type { ResourceSnapshot };
|
|
18
|
-
|
|
19
|
-
/** A reasoning effort level. */
|
|
20
|
-
export type ComposerEffort = ThinkingLevel;
|
|
21
|
-
|
|
22
|
-
/** A switch a picker would make: what its cache estimate is asked for. */
|
|
23
|
-
export type ComposerCacheImpactChange = IpcParams<'sessions.cacheImpact'>['change'];
|
|
24
|
-
|
|
25
|
-
/** What a switch would cost the session's prompt cache. */
|
|
26
|
-
export type ComposerCacheImpact = NonNullable<IpcResult<'sessions.cacheImpact'>>;
|
|
27
|
-
|
|
28
|
-
/** What the pickers read of a session (the desktop app's session rows fit it as they are). */
|
|
29
|
-
export interface ComposerSessionView {
|
|
30
|
-
/** The session's id. */
|
|
31
|
-
id: string;
|
|
32
|
-
/** Its title. */
|
|
33
|
-
title?: string;
|
|
34
|
-
/** Its folder (`''`: none). */
|
|
35
|
-
cwd?: string;
|
|
36
|
-
/** The server it runs on, absent or `null` for this computer. */
|
|
37
|
-
hostId?: string | null;
|
|
38
|
-
/** Its agent profile. */
|
|
39
|
-
agentId?: string;
|
|
40
|
-
/** Its reasoning effort. */
|
|
41
|
-
effort?: ComposerEffort;
|
|
42
|
-
/** Its enabled model options. */
|
|
43
|
-
modelOptions?: Record<string, boolean>;
|
|
44
|
-
/** The stored account its model runs on. */
|
|
45
|
-
account?: string;
|
|
46
|
-
/** Its model's fallbacks, primary excluded. */
|
|
47
|
-
modelFallbacks?: readonly ModelPickRef[];
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/** The pickers' writes on a session. Each one left out hides the control that needs it. */
|
|
51
|
-
export interface ComposerControls {
|
|
52
|
-
/** Sets the session's model: `primary`, then `fallbacks` (replacing the chain). */
|
|
53
|
-
setModel?(sessionId: string, primary: ModelPickRef, fallbacks: readonly ModelPickRef[]): Promise<void>;
|
|
54
|
-
/** Sets the session's reasoning effort. */
|
|
55
|
-
setEffort?(sessionId: string, effort: ComposerEffort): Promise<void>;
|
|
56
|
-
/** Sets the session's enabled model options. */
|
|
57
|
-
setModelOptions?(sessionId: string, options: Record<string, boolean>): Promise<void>;
|
|
58
|
-
/** Sets the session's agent profile. */
|
|
59
|
-
setAgent?(sessionId: string, agentId: string): Promise<void>;
|
|
60
|
-
/** What a switch would cost the session's prompt cache, `null` when unknown. Absent: pickers show no cache hints. */
|
|
61
|
-
cacheImpact?(sessionId: string, change: ComposerCacheImpactChange): Promise<ComposerCacheImpact | null>;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/** The model catalogs, kept current. */
|
|
65
|
-
export interface ComposerModels {
|
|
66
|
-
/** The chat models a folder (`cwd`, `undefined`: the host's default) on a host (`null`: this one) can run. */
|
|
67
|
-
catalog(cwd: string | undefined, hostId: string | null): Readable<ResourceSnapshot<readonly ComposerModelEntry[]>>;
|
|
68
|
-
/** The image models for a folder. Absent: the picker has no Image tab. */
|
|
69
|
-
images?(cwd: string | null): Readable<ResourceSnapshot<readonly ImageModelRow[]>>;
|
|
70
|
-
/** Every provider this computer knows, signed in or not (labels for model names). */
|
|
71
|
-
providers?(): Readable<ResourceSnapshot<readonly { key: string; label: string }[]>>;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/** An agent profile a folder offers. */
|
|
75
|
-
export interface ComposerAgentProfile {
|
|
76
|
-
/** Stable id. */
|
|
77
|
-
id: string;
|
|
78
|
-
/** Its name. */
|
|
79
|
-
label: string;
|
|
80
|
-
/** What it does. */
|
|
81
|
-
description: string;
|
|
82
|
-
/** Its accent color (a theme color name or a CSS color). */
|
|
83
|
-
accent: string;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/** The agent profiles. Absent: the agent picker hides. */
|
|
87
|
-
export interface ComposerAgents {
|
|
88
|
-
/** The profiles a folder offers (`''`: no folder). */
|
|
89
|
-
list(cwd: string): Promise<readonly ComposerAgentProfile[]>;
|
|
90
|
-
/** Calls `listener` when the offered profiles may have changed. Returns the unsubscribe. */
|
|
91
|
-
onChanged?(listener: () => void): () => void;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/** A model chain entry as remembered (`state.json`'s `lastModelChain`). */
|
|
95
|
-
export interface ComposerRememberedModel {
|
|
96
|
-
/** The provider's key. */
|
|
97
|
-
provider: string;
|
|
98
|
-
/** The model's id. */
|
|
99
|
-
model: string;
|
|
100
|
-
/** The stored account it runs on. */
|
|
101
|
-
account?: string;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/** The picks remembered across apps (the TUI's `state.json`). */
|
|
105
|
-
export interface ComposerPrefsState {
|
|
106
|
-
/** The last effort used with each model. */
|
|
107
|
-
lastEffortByModel?: Record<string, ComposerEffort>;
|
|
108
|
-
/** The last enabled options used with each model. */
|
|
109
|
-
lastModelOptionsByModel?: Record<string, Record<string, boolean>>;
|
|
110
|
-
/** The next new chat's model chain. */
|
|
111
|
-
lastModelChain?: ComposerRememberedModel[];
|
|
112
|
-
/** The provider of the last model picked as the next new chat's. */
|
|
113
|
-
lastProvider?: string;
|
|
114
|
-
/** The last model picked with each provider. */
|
|
115
|
-
lastModelByProvider?: Partial<Record<string, string>>;
|
|
116
|
-
/** The stored account last picked with each provider. */
|
|
117
|
-
lastAccountByProvider?: Partial<Record<string, string>>;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/** Where picks are remembered. Absent: they last for the page's life. */
|
|
121
|
-
export interface ComposerPrefs {
|
|
122
|
-
/** The remembered picks, `null` when there are none. */
|
|
123
|
-
get(): Promise<ComposerPrefsState | null>;
|
|
124
|
-
/** Merges `patch` into them (top-level keys replace). */
|
|
125
|
-
set(patch: ComposerPrefsState): Promise<void>;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/** A session's context gauge and what its model offers. */
|
|
129
|
-
export interface ComposerContextStatus {
|
|
130
|
-
/** The model the gauge measures. */
|
|
131
|
-
modelId: string;
|
|
132
|
-
/** Tokens in the last request. */
|
|
133
|
-
used: number;
|
|
134
|
-
/** The usable window. */
|
|
135
|
-
effectiveWindow: number;
|
|
136
|
-
/** `used / effectiveWindow`, 0 to 1. */
|
|
137
|
-
fraction: number;
|
|
138
|
-
/** `used`, formatted. */
|
|
139
|
-
usedLabel: string;
|
|
140
|
-
/** `effectiveWindow`, formatted. */
|
|
141
|
-
windowLabel: string;
|
|
142
|
-
/** The model has a reasoning effort knob. */
|
|
143
|
-
supportsReasoning: boolean;
|
|
144
|
-
/** The feature toggles the model declares. */
|
|
145
|
-
availableOptions: readonly ComposerModelOption[];
|
|
146
|
-
/** The session's enabled options. */
|
|
147
|
-
modelOptions: Record<string, boolean>;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/** A session's total cost as last settled. */
|
|
151
|
-
export interface ComposerCostStatus {
|
|
152
|
-
/** Total in USD. */
|
|
153
|
-
totalCost: number;
|
|
154
|
-
/** Runs counted. */
|
|
155
|
-
runCount: number;
|
|
156
|
-
/** `totalCost` formatted, `null` when zero. */
|
|
157
|
-
label: string | null;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/** What `ContextBreakdown` renders. */
|
|
161
|
-
export type ComposerContextBreakdown = ContextBreakdown;
|
|
162
|
-
|
|
163
|
-
/** A session's meters. Each one left out hides what reads it. */
|
|
164
|
-
export interface ComposerContext {
|
|
165
|
-
/** The session's context gauge (keyed by its model, so a switch refetches it). */
|
|
166
|
-
status?(
|
|
167
|
-
sessionId: string,
|
|
168
|
-
modelId: string | null,
|
|
169
|
-
providerKey: string | null,
|
|
170
|
-
): Readable<ResourceSnapshot<ComposerContextStatus | null>>;
|
|
171
|
-
/** What fills the session's context, by category. */
|
|
172
|
-
breakdown?(sessionId: string): Readable<ResourceSnapshot<ComposerContextBreakdown | null>>;
|
|
173
|
-
/** The session's cost as its finished runs settled it. */
|
|
174
|
-
cost?(sessionId: string): Promise<ComposerCostStatus | null>;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/** A run joined midway, as its host counts it. */
|
|
178
|
-
export interface ComposerRunProgress {
|
|
179
|
-
/** When it began (epoch ms). */
|
|
180
|
-
startedAt: number;
|
|
181
|
-
/** Output tokens of its settled turns. */
|
|
182
|
-
outputTokens: number;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/** The current run's counters per session. Absent: no run chip. */
|
|
186
|
-
export interface ComposerRuns {
|
|
187
|
-
/** The session's counters (`createRunMeter` keeps them from the stream). */
|
|
188
|
-
meter(sessionId: string): Readable<RunMeterState>;
|
|
189
|
-
/** Reads a run this window joined midway, `null` for none. Absent: the chip counts from when this window saw it. */
|
|
190
|
-
progress?(sessionId: string): Promise<ComposerRunProgress | null>;
|
|
191
|
-
/** Records a run's start this window saw without a start stamp (the chip counts from now). */
|
|
192
|
-
noteSeen?(sessionId: string): void;
|
|
193
|
-
/** Records the joined run's progress, read during run `generation`. */
|
|
194
|
-
noteProgress?(sessionId: string, generation: number, progress: ComposerRunProgress): void;
|
|
195
|
-
/** Zeroes the accrued cost when a cost read issued during run `generation` settled it. */
|
|
196
|
-
settleCost?(sessionId: string, generation: number): void;
|
|
197
|
-
}
|