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,522 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compact density's exchange fold: everything an exchange did behind one
|
|
3
|
-
* row under its prompt, live as a rising stack of its latest steps, settled
|
|
4
|
-
* as a summary that opens onto every step (`ExchangeFoldRow`). Each step
|
|
5
|
-
* opens onto its details in place: a tool call's payload (`ToolDetails`),
|
|
6
|
-
* a thought, a worker's own folded progress (`fold-worker.tsx`).
|
|
7
|
-
*/
|
|
8
|
-
import { memo, useCallback, useMemo, useState } from 'react';
|
|
9
|
-
import type { LiveRunStatus } from 'zidane/chat/pure';
|
|
10
|
-
|
|
11
|
-
import { useStaysMounted } from '../../motion/collapse';
|
|
12
|
-
import { Grow, GrowPresence } from '../../motion/grow';
|
|
13
|
-
import { Crossfade, useCadencedValue } from '../../motion/swap';
|
|
14
|
-
import { foldActionItems, type FoldActionItem, dotVariantFor, type Cluster, type Row } from '../headless/transcript';
|
|
15
|
-
import { foldAttachments, sameAttachments, type FoldAttachment } from '../headless/transcript/fold-attachments';
|
|
16
|
-
import { useChatLabels } from '../useChatLabels';
|
|
17
|
-
import { useModelName } from './actions';
|
|
18
|
-
import { FoldAttachments } from './fold-attachments';
|
|
19
|
-
import { WorkerDetails } from './fold-worker';
|
|
20
|
-
import { FoldStatusTime, useLiveFoldStatus } from './fold-status';
|
|
21
|
-
import { Caret, Dot, RowFrame } from './frame';
|
|
22
|
-
import { createRecentMap } from './recent-map';
|
|
23
|
-
import { ToolDetails } from './tool-details';
|
|
24
|
-
import { ToolTiming } from './tool-parts';
|
|
25
|
-
import { ModelVerdict } from './tool-row';
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Open/closed memory per fold id, outliving the component: the fold's id
|
|
29
|
-
* is stable for the exchange's life (keyed off its first folded row), and
|
|
30
|
-
* the live → settled swap must not reset what the user chose. Capped like
|
|
31
|
-
* the tool batch's: a forgotten fold reopens collapsed.
|
|
32
|
-
*/
|
|
33
|
-
const FOLD_OPEN_STATE = createRecentMap<boolean>(500);
|
|
34
|
-
|
|
35
|
-
/*
|
|
36
|
-
* Compact density: one row for everything an exchange did, right under the
|
|
37
|
-
* prompt, on the transcript's own text size (`text-sm`, the 22.4px line the
|
|
38
|
-
* prose and the prompt use, so it reads as part of the conversation, not as
|
|
39
|
-
* a footnote).
|
|
40
|
-
*
|
|
41
|
-
* - Live (the run is going): "Working" and, under it, the last three
|
|
42
|
-
* actions as a stack. A new action rises in at the bottom, the oldest
|
|
43
|
-
* leaves at the top, each line's glyph tweens running → done in place.
|
|
44
|
-
* It stays up for the whole run, prose included. While the provider is
|
|
45
|
-
* retried or the run waits on the model, the header says so instead,
|
|
46
|
-
* with how long it has lasted in a chip (`fold-status.tsx`).
|
|
47
|
-
* - Settled (the run ended): the stack folds away and the header becomes
|
|
48
|
-
* the summary ("Read a file, ran a command +3") with its duration; the
|
|
49
|
-
* caret expands the full list, painted by the transcript's own renderer.
|
|
50
|
-
* - With Tool attachments on, live or settled: the images the calls
|
|
51
|
-
* returned, as a strip under the steps (`fold-attachments.tsx`).
|
|
52
|
-
*
|
|
53
|
-
* The dot is the shared timeline `Dot`, so the running arc and the ok /
|
|
54
|
-
* error states tween exactly as on a tool row.
|
|
55
|
-
*/
|
|
56
|
-
const FOLD_LINE = '22.4px';
|
|
57
|
-
const NO_FOLD_ACTIONS: readonly FoldActionItem[] = [];
|
|
58
|
-
const NO_OPEN_IDS: ReadonlySet<string> = new Set();
|
|
59
|
-
const NO_ATTACHMENTS: readonly FoldAttachment[] = [];
|
|
60
|
-
/** How many of the latest actions the live fold shows under its header. */
|
|
61
|
-
const FOLD_STACK_SIZE = 3;
|
|
62
|
-
/** One stack step at most this often (a readability cadence; each step's motion is the `Grow` on `settle`). */
|
|
63
|
-
const FOLD_STACK_CADENCE_MS = 200;
|
|
64
|
-
|
|
65
|
-
/** Props for {@link ExchangeFoldRow}. */
|
|
66
|
-
export interface ExchangeFoldRowProps {
|
|
67
|
-
/** The folded exchange. */
|
|
68
|
-
row: Extract<Row, { kind: 'exchange-fold' }>;
|
|
69
|
-
/** Renders clusters with the transcript's row components, for the open list and worker steps. */
|
|
70
|
-
renderRows: (c: readonly Cluster[]) => React.ReactNode[];
|
|
71
|
-
/** The live run's status, which the header names ("Waiting for the model", "Retrying 2/3"). Set on the transcript's live fold only. */
|
|
72
|
-
status?: LiveRunStatus;
|
|
73
|
-
/** Gathers the images the exchange's tool calls returned in a strip under its steps (the Tool attachments setting). @default false */
|
|
74
|
-
showAttachments?: boolean;
|
|
75
|
-
/** Extra classes on the root element. */
|
|
76
|
-
className?: string;
|
|
77
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
78
|
-
style?: React.CSSProperties;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/** Renders a folded exchange: one header line summarizing the work, a live stack of the latest steps while it runs, and the full step list when expanded. */
|
|
82
|
-
export const ExchangeFoldRow = memo(
|
|
83
|
-
({ row, renderRows, status: runStatus, showAttachments = false, className, style }: ExchangeFoldRowProps) => {
|
|
84
|
-
const labels = useChatLabels();
|
|
85
|
-
const [openState, setOpenState] = useState(() => FOLD_OPEN_STATE.get(row.id) ?? false);
|
|
86
|
-
// Which actions show their details: one set for the stack and the full
|
|
87
|
-
// list, so a step opened in the stack stays open when the fold opens.
|
|
88
|
-
const [openIds, setOpenIds] = useState<ReadonlySet<string>>(NO_OPEN_IDS);
|
|
89
|
-
const setOpen = (next: boolean) => {
|
|
90
|
-
FOLD_OPEN_STATE.set(row.id, next);
|
|
91
|
-
setOpenState(next);
|
|
92
|
-
// Closing the group closes its steps: nothing stays open under a shut header.
|
|
93
|
-
if (!next) setOpenIds(NO_OPEN_IDS);
|
|
94
|
-
};
|
|
95
|
-
// One overview line per action (`foldActionItems`), for the live
|
|
96
|
-
// stack and the expanded list alike.
|
|
97
|
-
const items = useMemo(() => foldActionItems(row.rows), [row.rows]);
|
|
98
|
-
const attachments = useStableAttachments(
|
|
99
|
-
useMemo(() => (showAttachments ? foldAttachments(row.rows) : NO_ATTACHMENTS), [showAttachments, row.rows]),
|
|
100
|
-
);
|
|
101
|
-
const actions = items.length;
|
|
102
|
-
const live = useLiveFoldStatus(row.live ? runStatus : undefined);
|
|
103
|
-
const head = !row.live
|
|
104
|
-
? row.summary
|
|
105
|
-
: live.status.kind === 'retrying'
|
|
106
|
-
? labels.runRetrying(live.status.retry.attempt, live.status.retry.max, retrySource(live.status.retry.source))
|
|
107
|
-
: live.status.kind === 'waiting'
|
|
108
|
-
? labels.runWaiting
|
|
109
|
-
: labels.working;
|
|
110
|
-
const settledMs =
|
|
111
|
-
!row.live && row.stats.durationMs !== undefined && row.stats.durationMs >= 1000
|
|
112
|
-
? row.stats.durationMs
|
|
113
|
-
: undefined;
|
|
114
|
-
const outcomes = !row.live && row.stats.tools > 0;
|
|
115
|
-
const state = row.live ? 'live' : 'settled';
|
|
116
|
-
// The stack shows while the run is live and the list is closed (open, the
|
|
117
|
-
// full list says it all). A burst of quick calls is held to a readable
|
|
118
|
-
// cadence (newest wins, last lands) so each step can play its motion.
|
|
119
|
-
const recent = useMemo(() => items.slice(-FOLD_STACK_SIZE), [items]);
|
|
120
|
-
// The group opens only onto something more: a live fold whose steps all
|
|
121
|
-
// already show in its stack (or a fold with no steps) has no arrow and no
|
|
122
|
-
// toggle, so opening never changes nothing.
|
|
123
|
-
// Steps opened from the stack count as shown while the group is closed
|
|
124
|
-
// (closing the group closes them, so they never strand it open).
|
|
125
|
-
const hidden = useMemo(() => {
|
|
126
|
-
const visible = new Set((row.live ? recent : []).map((i) => i.id));
|
|
127
|
-
return items.filter((i) => !visible.has(i.id) && (openState || !openWithin(i, openIds))).length;
|
|
128
|
-
}, [items, recent, openIds, openState, row.live]);
|
|
129
|
-
const expandable = hidden > 0;
|
|
130
|
-
const open = openState && expandable;
|
|
131
|
-
// Tracked while the list is open too, so closing it lands on the current
|
|
132
|
-
// stack at once instead of an empty one for the cadence's first beat.
|
|
133
|
-
const cadenced = useCadencedValue(row.live ? recent : NO_FOLD_ACTIONS, FOLD_STACK_CADENCE_MS);
|
|
134
|
-
const toggleAction = useCallback(
|
|
135
|
-
(id: string) =>
|
|
136
|
-
setOpenIds((prev) => {
|
|
137
|
-
const next = new Set(prev);
|
|
138
|
-
if (next.has(id)) next.delete(id);
|
|
139
|
-
else next.add(id);
|
|
140
|
-
return next;
|
|
141
|
-
}),
|
|
142
|
-
[],
|
|
143
|
-
);
|
|
144
|
-
// One list, two views. Open: every step. Closed: the live stack's last
|
|
145
|
-
// steps (at their latest state) and any step opened from it, which stays
|
|
146
|
-
// (in order) until closed, however many newer steps pushed it out of the
|
|
147
|
-
// stack, and after the run ends. A line on screen in both views is the
|
|
148
|
-
// same element: opening the group grows the earlier steps in above it
|
|
149
|
-
// instead of swapping one list for another.
|
|
150
|
-
const shown = useMemo(() => {
|
|
151
|
-
if (open) return items;
|
|
152
|
-
const inStack = new Set(cadenced.map((i) => i.id));
|
|
153
|
-
const kept = items.filter((i) => inStack.has(i.id) || openWithin(i, openIds));
|
|
154
|
-
return kept.length > 0 ? kept : NO_FOLD_ACTIONS;
|
|
155
|
-
}, [open, cadenced, items, openIds]);
|
|
156
|
-
|
|
157
|
-
return (
|
|
158
|
-
<div
|
|
159
|
-
className={['group relative', className].filter(Boolean).join(' ')}
|
|
160
|
-
style={style}
|
|
161
|
-
data-testid="exchange-fold"
|
|
162
|
-
data-state={state}
|
|
163
|
-
data-open={open}
|
|
164
|
-
>
|
|
165
|
-
<RowFrame>
|
|
166
|
-
<Dot variant={dotVariantFor(row)} line={FOLD_LINE} />
|
|
167
|
-
<div className="flex-1 min-w-0 pb-3 text-sm leading-[1.6]">
|
|
168
|
-
<FoldHeader expandable={expandable} open={open} onToggle={() => setOpen(!open)}>
|
|
169
|
-
<Crossfade activeKey={head} variant="text" className="min-w-0">
|
|
170
|
-
<span className="block truncate">{head}</span>
|
|
171
|
-
</Crossfade>
|
|
172
|
-
{row.live && <FoldStatusTime elapsedSec={live.elapsedSec} />}
|
|
173
|
-
{row.live && actions > FOLD_STACK_SIZE && (
|
|
174
|
-
<span className="shrink-0 tabular-nums text-xs text-[var(--zg-text-subtle)]">
|
|
175
|
-
{labels.foldSteps(actions)}
|
|
176
|
-
</span>
|
|
177
|
-
)}
|
|
178
|
-
{settledMs !== undefined && <ToolTiming durationMs={settledMs} />}
|
|
179
|
-
{outcomes && <FoldOutcomes ok={row.stats.tools - row.stats.failed} failed={row.stats.failed} />}
|
|
180
|
-
</FoldHeader>
|
|
181
|
-
|
|
182
|
-
<FoldActions items={shown} all={open} openIds={openIds} onToggle={toggleAction} renderRows={renderRows} />
|
|
183
|
-
{attachments.length > 0 && <FoldAttachments attachments={attachments} className="pt-2" />}
|
|
184
|
-
</div>
|
|
185
|
-
</RowFrame>
|
|
186
|
-
</div>
|
|
187
|
-
);
|
|
188
|
-
},
|
|
189
|
-
);
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* `next`, or the equal list an earlier render kept (`sameAttachments`): a
|
|
193
|
-
* live fold's rows change on every stream tick, and a tick that brought no
|
|
194
|
-
* image must leave the strip as it is.
|
|
195
|
-
*/
|
|
196
|
-
function useStableAttachments(next: readonly FoldAttachment[]): readonly FoldAttachment[] {
|
|
197
|
-
const [kept, setKept] = useState(next);
|
|
198
|
-
if (sameAttachments(kept, next)) return kept;
|
|
199
|
-
setKept(next);
|
|
200
|
-
return next;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
/** A retried stream's owner as the retry label names it: none for the session's own. */
|
|
204
|
-
function retrySource(source: string | undefined): string | undefined {
|
|
205
|
-
return source && source !== 'parent' ? source : undefined;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/** A settled exchange's calls: those that went through and, split off, those that failed. */
|
|
209
|
-
function FoldOutcomes({ ok, failed }: { ok: number; failed: number }) {
|
|
210
|
-
const labels = useChatLabels();
|
|
211
|
-
return (
|
|
212
|
-
<span
|
|
213
|
-
role="img"
|
|
214
|
-
aria-label={labels.foldOutcomes(ok, failed)}
|
|
215
|
-
title={labels.foldOutcomes(ok, failed)}
|
|
216
|
-
data-testid="fold-outcomes"
|
|
217
|
-
className="zg-fold-outcomes zg-meta shrink-0 self-center tabular-nums"
|
|
218
|
-
>
|
|
219
|
-
<span className={`inline-flex items-center gap-1 pl-1.5 ${failed > 0 ? 'pr-1' : 'pr-1.5'}`}>
|
|
220
|
-
<span aria-hidden className="zg-soft-tint zg-tint-success i-ph-check-bold text-[9px]" />
|
|
221
|
-
{ok}
|
|
222
|
-
</span>
|
|
223
|
-
{failed > 0 && (
|
|
224
|
-
<>
|
|
225
|
-
<span aria-hidden className="w-px self-stretch bg-[var(--zg-hairline)]" />
|
|
226
|
-
<span className="inline-flex items-center gap-1 pl-1 pr-1.5">
|
|
227
|
-
<span aria-hidden className="zg-soft-tint zg-tint-danger i-ph-x-bold text-[9px]" />
|
|
228
|
-
{failed}
|
|
229
|
-
</span>
|
|
230
|
-
</>
|
|
231
|
-
)}
|
|
232
|
-
</span>
|
|
233
|
-
);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/** Props for {@link FoldHeader}. */
|
|
237
|
-
export interface FoldHeaderProps {
|
|
238
|
-
/** Makes the line a toggle with a caret. When false the line is inert. */
|
|
239
|
-
expandable: boolean;
|
|
240
|
-
/** The fold is expanded. Drives `aria-expanded` and the caret. */
|
|
241
|
-
open: boolean;
|
|
242
|
-
/** Called when the user toggles the header. */
|
|
243
|
-
onToggle: () => void;
|
|
244
|
-
/** The header line's content. */
|
|
245
|
-
children: React.ReactNode;
|
|
246
|
-
/** Extra classes on the root element. */
|
|
247
|
-
className?: string;
|
|
248
|
-
/** Inline styles on the root element, merged after the component's own. */
|
|
249
|
-
style?: React.CSSProperties;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* A fold's header line (the exchange's work, a group of earlier messages):
|
|
254
|
-
* a toggle with its caret when opening shows something more, otherwise the
|
|
255
|
-
* same line, inert. Same box, tone and spacing either way.
|
|
256
|
-
*
|
|
257
|
-
* @param props - Header props: `expandable`, `open`, `onToggle`, and the `children` of the line.
|
|
258
|
-
*/
|
|
259
|
-
export function FoldHeader({ expandable, open, onToggle, children, className, style }: FoldHeaderProps) {
|
|
260
|
-
const line = 'flex items-baseline gap-2 h-[22.4px] min-w-0 max-w-full text-[var(--zg-text-muted)]';
|
|
261
|
-
if (!expandable) {
|
|
262
|
-
return (
|
|
263
|
-
<div data-testid="fold-head" className={[line, className].filter(Boolean).join(' ')} style={style}>
|
|
264
|
-
{children}
|
|
265
|
-
</div>
|
|
266
|
-
);
|
|
267
|
-
}
|
|
268
|
-
return (
|
|
269
|
-
<button
|
|
270
|
-
type="button"
|
|
271
|
-
onClick={onToggle}
|
|
272
|
-
aria-expanded={open}
|
|
273
|
-
className={[`zg-disclosure zg-press-subtle ${line}`, className].filter(Boolean).join(' ')}
|
|
274
|
-
style={style}
|
|
275
|
-
>
|
|
276
|
-
{children}
|
|
277
|
-
<Caret open={open} className="shrink-0 self-center" />
|
|
278
|
-
</button>
|
|
279
|
-
);
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* The fold's steps, oldest first: every step when the group is open, the
|
|
284
|
-
* live stack otherwise (see `ExchangeFoldRow`). A burst of new steps rises
|
|
285
|
-
* in at the bottom as the oldest of the stack shrinks out at the top.
|
|
286
|
-
*/
|
|
287
|
-
function FoldActions({
|
|
288
|
-
items,
|
|
289
|
-
all,
|
|
290
|
-
openIds,
|
|
291
|
-
onToggle,
|
|
292
|
-
renderRows,
|
|
293
|
-
}: {
|
|
294
|
-
items: readonly FoldActionItem[];
|
|
295
|
-
all: boolean;
|
|
296
|
-
openIds: ReadonlySet<string>;
|
|
297
|
-
onToggle: (id: string) => void;
|
|
298
|
-
renderRows: (c: readonly Cluster[]) => React.ReactNode[];
|
|
299
|
-
}) {
|
|
300
|
-
// What the list first rendered with is already there; what comes later grows in.
|
|
301
|
-
const [firstIds] = useState(() => new Set(items.map((i) => i.id)));
|
|
302
|
-
return (
|
|
303
|
-
<ul className="list-none m-0 p-0" data-testid={all ? 'fold-action-list' : 'fold-actions'}>
|
|
304
|
-
<GrowPresence initial={false}>
|
|
305
|
-
{items.map((item) => (
|
|
306
|
-
// The inline padding (pulled back by the margin) leaves room for the line's
|
|
307
|
-
// hover pill, which bleeds 6px past the text on each side; the clip is vertical.
|
|
308
|
-
<Grow key={item.id} as="li" appear={!firstIds.has(item.id)} className="-mx-1.5 px-1.5">
|
|
309
|
-
{/* The fold's rhythm, above each step (the header included); inside the
|
|
310
|
-
step, so it grows in with it instead of appearing at once. */}
|
|
311
|
-
<div className="pt-[var(--zg-fold-gap)]">
|
|
312
|
-
<ActionWithDetails item={item} openIds={openIds} onToggle={onToggle} renderRows={renderRows} />
|
|
313
|
-
</div>
|
|
314
|
-
</Grow>
|
|
315
|
-
))}
|
|
316
|
-
</GrowPresence>
|
|
317
|
-
</ul>
|
|
318
|
-
);
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
/** An action's line, opening its details in place when it has any. */
|
|
322
|
-
function ActionWithDetails({
|
|
323
|
-
item,
|
|
324
|
-
openIds,
|
|
325
|
-
onToggle,
|
|
326
|
-
renderRows,
|
|
327
|
-
}: {
|
|
328
|
-
item: FoldActionItem;
|
|
329
|
-
openIds: ReadonlySet<string>;
|
|
330
|
-
onToggle: (id: string) => void;
|
|
331
|
-
renderRows: (c: readonly Cluster[]) => React.ReactNode[];
|
|
332
|
-
}) {
|
|
333
|
-
const open = openIds.has(item.id);
|
|
334
|
-
const expandable = hasActionDetails(item);
|
|
335
|
-
// Mounted through the collapse: unmounting at once would drop the details on
|
|
336
|
-
// the first frame and snap everything below up.
|
|
337
|
-
const mounted = useStaysMounted(open);
|
|
338
|
-
return (
|
|
339
|
-
<>
|
|
340
|
-
<ActionLine item={item} open={open} onToggle={expandable ? () => onToggle(item.id) : undefined} />
|
|
341
|
-
{expandable && (
|
|
342
|
-
<div className="zg-collapsible" data-open={open}>
|
|
343
|
-
<div className="zg-collapsible-inner">{mounted && <ActionDetails item={item} renderRows={renderRows} />}</div>
|
|
344
|
-
</div>
|
|
345
|
-
)}
|
|
346
|
-
{/* The calls this one made, one step in, open or not: its children, not its details. */}
|
|
347
|
-
{item.children && item.children.length > 0 && (
|
|
348
|
-
<ul className="list-none m-0 p-0 pl-7" data-testid="fold-action-children">
|
|
349
|
-
{item.children.map((child) => (
|
|
350
|
-
<li key={child.id} className="pt-[var(--zg-fold-gap)]">
|
|
351
|
-
<ActionWithDetails item={child} openIds={openIds} onToggle={onToggle} renderRows={renderRows} />
|
|
352
|
-
</li>
|
|
353
|
-
))}
|
|
354
|
-
</ul>
|
|
355
|
-
)}
|
|
356
|
-
</>
|
|
357
|
-
);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
/** The item or one of the calls nested under it has its details open. */
|
|
361
|
-
function openWithin(item: FoldActionItem, openIds: ReadonlySet<string>): boolean {
|
|
362
|
-
return openIds.has(item.id) || (item.children ?? []).some((child) => openWithin(child, openIds));
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
function hasActionDetails(item: FoldActionItem): boolean {
|
|
366
|
-
if (item.kind === 'thought') return (item.thoughts ?? []).some((t) => t.text.trim() !== '');
|
|
367
|
-
if (item.kind === 'worker') return (item.workerRows ?? []).length > 0;
|
|
368
|
-
return item.tool !== undefined;
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
/**
|
|
372
|
-
* One action, one line, on the conversation's text size: state glyph, the
|
|
373
|
-
* overview label (a quiet hint after it), edit counts, then its duration at
|
|
374
|
-
* the far end. While running the label carries a soft light sweep.
|
|
375
|
-
*/
|
|
376
|
-
function ActionLine({ item, open = false, onToggle }: { item: FoldActionItem; open?: boolean; onToggle?: () => void }) {
|
|
377
|
-
const labels = useChatLabels();
|
|
378
|
-
const modelName = useModelName();
|
|
379
|
-
const running = item.state === 'running';
|
|
380
|
-
const content = (
|
|
381
|
-
<>
|
|
382
|
-
<ActionGlyph state={item.state} />
|
|
383
|
-
<span className="min-w-0 flex items-baseline gap-2">
|
|
384
|
-
<span className="min-w-0 flex items-baseline gap-2 overflow-hidden">
|
|
385
|
-
<span className={`truncate ${running ? 'zg-shimmer' : ''}`}>{item.label}</span>
|
|
386
|
-
{item.hint && <span className="min-w-0 truncate text-[var(--zg-text-subtle)]">{item.hint}</span>}
|
|
387
|
-
{item.model && (
|
|
388
|
-
<span
|
|
389
|
-
data-testid="agent-model"
|
|
390
|
-
title={item.model}
|
|
391
|
-
className="zg-meta-chip shrink-0 text-[11px] text-[var(--zg-text-muted)]"
|
|
392
|
-
>
|
|
393
|
-
{modelName(item.model)}
|
|
394
|
-
</span>
|
|
395
|
-
)}
|
|
396
|
-
</span>
|
|
397
|
-
{(item.added !== undefined || item.removed !== undefined) && (
|
|
398
|
-
<span className="zg-meta shrink-0 inline-flex gap-1.5">
|
|
399
|
-
<span className="text-zg-success">+{item.added ?? 0}</span>
|
|
400
|
-
<span className="text-zg-danger">−{item.removed ?? 0}</span>
|
|
401
|
-
</span>
|
|
402
|
-
)}
|
|
403
|
-
{item.tool?.approval && <ModelVerdict approval={item.tool.approval} />}
|
|
404
|
-
{/* Duration right after the content (like the settled header), never
|
|
405
|
-
pushed to the far edge where it loses its line on a wide window. */}
|
|
406
|
-
<span className="shrink-0 flex items-baseline gap-1.5">
|
|
407
|
-
{item.waitingFor ? (
|
|
408
|
-
<span
|
|
409
|
-
data-testid="action-waiting"
|
|
410
|
-
title={labels.waitingForSlot(item.waitingFor.max)}
|
|
411
|
-
className="zg-meta whitespace-nowrap"
|
|
412
|
-
>
|
|
413
|
-
{labels.stepWaiting}
|
|
414
|
-
</span>
|
|
415
|
-
) : running && item.startedAt !== undefined ? (
|
|
416
|
-
<>
|
|
417
|
-
{item.resuming && (
|
|
418
|
-
<span data-testid="action-resuming" className="zg-meta whitespace-nowrap">
|
|
419
|
-
{labels.stepResuming}
|
|
420
|
-
</span>
|
|
421
|
-
)}
|
|
422
|
-
<ToolTiming startedAt={item.startedAt} running />
|
|
423
|
-
</>
|
|
424
|
-
) : item.durationMs !== undefined ? (
|
|
425
|
-
<ToolTiming durationMs={item.durationMs} />
|
|
426
|
-
) : null}
|
|
427
|
-
{onToggle && (
|
|
428
|
-
<span
|
|
429
|
-
aria-hidden
|
|
430
|
-
className="zg-caret i-ph-caret-right text-[11px] self-center opacity-0 group-hover/action:opacity-100"
|
|
431
|
-
style={{ transform: open ? 'rotate(90deg)' : 'rotate(0deg)', ...(open ? { opacity: 1 } : {}) }}
|
|
432
|
-
/>
|
|
433
|
-
)}
|
|
434
|
-
</span>
|
|
435
|
-
</span>
|
|
436
|
-
</>
|
|
437
|
-
);
|
|
438
|
-
const cls =
|
|
439
|
-
// The hover pill hugs the content, like the fold header's. The glyph takes the
|
|
440
|
-
// timeline's 16px slot and 12px gap, so a step's text lines up with a message's,
|
|
441
|
-
// on the conversation's 14px / 22.4px line (`text-sm` would reset it to 20px and
|
|
442
|
-
// open up the space between steps).
|
|
443
|
-
'group/action flex items-center gap-3 w-fit max-w-full h-[22.4px] min-w-0 text-[14px] leading-[1.6] text-[var(--zg-text-muted)] -mx-1.5 px-1.5 rounded-[var(--zg-radius-sm)]';
|
|
444
|
-
if (!onToggle) {
|
|
445
|
-
return (
|
|
446
|
-
<div className={cls} title={item.title} data-state={item.state} data-kind={item.kind}>
|
|
447
|
-
{content}
|
|
448
|
-
</div>
|
|
449
|
-
);
|
|
450
|
-
}
|
|
451
|
-
return (
|
|
452
|
-
<button
|
|
453
|
-
type="button"
|
|
454
|
-
onClick={onToggle}
|
|
455
|
-
aria-expanded={open}
|
|
456
|
-
title={item.title}
|
|
457
|
-
data-state={item.state}
|
|
458
|
-
data-kind={item.kind}
|
|
459
|
-
className={`${cls} zg-disclosure zg-press-subtle text-left`}
|
|
460
|
-
>
|
|
461
|
-
{content}
|
|
462
|
-
</button>
|
|
463
|
-
);
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
/**
|
|
467
|
-
* The action's state in a 14px slot. Waiting (a worker every slot is taken
|
|
468
|
-
* for): a pause mark. Running: a thin arc sweeping round a faint ring (the
|
|
469
|
-
* same drawing as the timeline dot's running arc, so the fold's dot and its
|
|
470
|
-
* lines agree). Done: a check. Failed: a red cross. The states cross-fade
|
|
471
|
-
* in place.
|
|
472
|
-
*/
|
|
473
|
-
function ActionGlyph({ state }: { state: FoldActionItem['state'] }) {
|
|
474
|
-
const labels = useChatLabels();
|
|
475
|
-
return (
|
|
476
|
-
<span className="w-4 shrink-0 inline-flex items-center justify-center">
|
|
477
|
-
<Crossfade activeKey={state}>
|
|
478
|
-
{state === 'waiting' ? (
|
|
479
|
-
<span
|
|
480
|
-
role="status"
|
|
481
|
-
aria-label={labels.stepWaiting}
|
|
482
|
-
className="i-ph-pause-fill text-[11px] text-[var(--zg-text-subtle)]"
|
|
483
|
-
/>
|
|
484
|
-
) : state === 'running' ? (
|
|
485
|
-
<span role="status" aria-label={labels.stepRunning} className="zg-arc" />
|
|
486
|
-
) : state === 'err' ? (
|
|
487
|
-
<span aria-label={labels.stepFailed} className="i-ph-x text-[12px] text-zg-danger" />
|
|
488
|
-
) : (
|
|
489
|
-
<span aria-label={labels.stepDone} className="i-ph-check text-[12px] text-[var(--zg-text-subtle)]" />
|
|
490
|
-
)}
|
|
491
|
-
</Crossfade>
|
|
492
|
-
</span>
|
|
493
|
-
);
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
/**
|
|
497
|
-
* What an action did, in full, under its line and indented to its label.
|
|
498
|
-
* Code stays code (monospace, 12px); reasoning stays prose.
|
|
499
|
-
*/
|
|
500
|
-
function ActionDetails({
|
|
501
|
-
item,
|
|
502
|
-
renderRows,
|
|
503
|
-
}: {
|
|
504
|
-
item: FoldActionItem;
|
|
505
|
-
renderRows: (c: readonly Cluster[]) => React.ReactNode[];
|
|
506
|
-
}) {
|
|
507
|
-
const body = (() => {
|
|
508
|
-
if (item.kind === 'thought') {
|
|
509
|
-
return (
|
|
510
|
-
<div className="text-[13px] italic leading-relaxed text-[var(--zg-text-muted)] whitespace-pre-line">
|
|
511
|
-
{(item.thoughts ?? []).map((t) => t.text.replace(/\n{2,}/g, '\n')).join('\n\n')}
|
|
512
|
-
</div>
|
|
513
|
-
);
|
|
514
|
-
}
|
|
515
|
-
// An agent, started or still waiting for a slot (its `spawn` call alone): the task, never the call's JSON.
|
|
516
|
-
if (item.kind === 'worker' || item.tool?.name === 'spawn')
|
|
517
|
-
return <WorkerDetails item={item} renderRows={renderRows} />;
|
|
518
|
-
if (item.tool) return <ToolDetails tool={item.tool} />;
|
|
519
|
-
return null;
|
|
520
|
-
})();
|
|
521
|
-
return <div className="pl-7 pt-1">{body}</div>;
|
|
522
|
-
}
|