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,427 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The sidebar's rows: zidane-ui's session-list model (sort, date / state /
|
|
3
|
-
* project grouping, collapse, "show more") over the app's sessions, plus the
|
|
4
|
-
* app's own layer on top: the Per host view's one section per host, and the
|
|
5
|
-
* sections the list renders (`nestSidebarRows`).
|
|
6
|
-
*/
|
|
7
|
-
import { groupRows, type SessionGroupBy as QueryGroupBy, type SessionQueryRow } from 'zidane/chat/pure';
|
|
8
|
-
|
|
9
|
-
import type { ExtensionItem } from '../../../extensions/headless/wire';
|
|
10
|
-
import type { HostView } from '../hosts';
|
|
11
|
-
import { DEFAULT_CHAT_LABELS } from '../labels';
|
|
12
|
-
import {
|
|
13
|
-
buildSessionRows,
|
|
14
|
-
type SessionGroupBy as ListGroupBy,
|
|
15
|
-
type SessionListOptions,
|
|
16
|
-
type SessionListRow,
|
|
17
|
-
} from '../session-list';
|
|
18
|
-
import type { SidebarItemEntry } from './query';
|
|
19
|
-
import type { SidebarGroupBy, SidebarListSession, SidebarSortBy } from './types';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* The project a session is listed under: its repository's root, else its folder (`''`: none).
|
|
23
|
-
*
|
|
24
|
-
* @param session - Its folder and project root.
|
|
25
|
-
*/
|
|
26
|
-
export function projectPathOf(session: Pick<SidebarListSession, 'projectRoot' | 'cwd'>): string {
|
|
27
|
-
return session.projectRoot || session.cwd;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** One row of the sidebar: a session-list row (a header may name its host) or a host's section header. */
|
|
31
|
-
export type SidebarListRow<S extends SidebarListSession = SidebarListSession> =
|
|
32
|
-
| Extract<SessionListRow<S>, { kind: 'showMore' }>
|
|
33
|
-
/** A session; `itemId`: listed under that extension item (one of its child sessions). */
|
|
34
|
-
| (Extract<SessionListRow<S>, { kind: 'session' }> & { itemId?: string })
|
|
35
|
-
/**
|
|
36
|
-
* An extension item listed among the sessions; its child sessions follow it (`itemId`) unless
|
|
37
|
-
* it is collapsed.
|
|
38
|
-
*/
|
|
39
|
-
| { kind: 'item'; id: string; entry: ExtensionItem<'sidebar-row'>; collapsed: boolean; childCount: number }
|
|
40
|
-
/**
|
|
41
|
-
* A group header; a server's folder names its server (`hostId`), shown as a chip. A project
|
|
42
|
-
* whose repository also has sessions on other machines names it (`repoKey`): those sessions
|
|
43
|
-
* are listed under it.
|
|
44
|
-
*/
|
|
45
|
-
| (Extract<SessionListRow<S>, { kind: 'header' }> & { hostId?: string; repoKey?: string })
|
|
46
|
-
/**
|
|
47
|
-
* A host's section in the Per host view (This computer, then each saved
|
|
48
|
-
* server): its name and connection status. Collapsing it hides every
|
|
49
|
-
* group under it.
|
|
50
|
-
*/
|
|
51
|
-
| { kind: 'host'; id: string; host: HostView; collapsed: boolean; count: number };
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Views whose groups are folders: Per directory, and each host's section in Per host.
|
|
55
|
-
*
|
|
56
|
-
* @param groupBy - The view.
|
|
57
|
-
*/
|
|
58
|
-
export function groupsByFolder(groupBy: SidebarGroupBy): boolean {
|
|
59
|
-
return groupBy === 'project' || groupBy === 'host';
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const EMPTY_SET: ReadonlySet<string> = new Set();
|
|
63
|
-
|
|
64
|
-
/** The directory-less bucket's label ("pure chat" sessions, no project). */
|
|
65
|
-
export const CHATS_BUCKET = 'Chats';
|
|
66
|
-
|
|
67
|
-
/** The list options {@link buildSidebarRows} passes through. */
|
|
68
|
-
export type BuildSidebarRowsOptions = Pick<
|
|
69
|
-
SessionListOptions<SidebarListSession>,
|
|
70
|
-
'collapsedGroups' | 'showMoreExpanded' | 'idPrefix' | 'pinnedProjects' | 'compare'
|
|
71
|
-
>;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Orchestration on: the main session is pulled out (pinned above the list).
|
|
75
|
-
* Off: the main is not a chat; it is hidden, not regrouped.
|
|
76
|
-
*
|
|
77
|
-
* @param sessions - The listed sessions.
|
|
78
|
-
* @param orchestrationEnabled - Orchestration is on.
|
|
79
|
-
*/
|
|
80
|
-
export function partitionMainSession<S extends SidebarListSession>(
|
|
81
|
-
sessions: readonly S[],
|
|
82
|
-
orchestrationEnabled: boolean,
|
|
83
|
-
): { main: S | null; rest: S[] } {
|
|
84
|
-
if (!orchestrationEnabled) return { main: null, rest: sessions.filter((s) => s.isMain !== true) };
|
|
85
|
-
const main = sessions.find((s) => s.isMain === true) ?? null;
|
|
86
|
-
return main ? { main, rest: sessions.filter((s) => s.id !== main.id) } : { main: null, rest: sessions.slice() };
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* The sidebar's rows over the kit's session-list model: favorites, git repositories and the project of each session.
|
|
91
|
-
*
|
|
92
|
-
* @param sessions - The sessions to list.
|
|
93
|
-
* @param groupBy - The session-list grouping.
|
|
94
|
-
* @param sortBy - The order inside a group.
|
|
95
|
-
* @param options - Collapsed groups, expanded "show more", id prefix, pinned projects.
|
|
96
|
-
* @param project - The project a session groups under (defaults to {@link projectPathOf}).
|
|
97
|
-
*/
|
|
98
|
-
export function buildSidebarRows<S extends SidebarListSession>(
|
|
99
|
-
sessions: S[],
|
|
100
|
-
groupBy: ListGroupBy,
|
|
101
|
-
sortBy: SidebarSortBy,
|
|
102
|
-
options: BuildSidebarRowsOptions = {},
|
|
103
|
-
project: (session: S) => string = projectPathOf,
|
|
104
|
-
): SidebarListRow<S>[] {
|
|
105
|
-
return buildSessionRows(sessions, {
|
|
106
|
-
...options,
|
|
107
|
-
groupBy,
|
|
108
|
-
sortBy,
|
|
109
|
-
project,
|
|
110
|
-
isGitRepo: (s) => s.isGitRepo === true,
|
|
111
|
-
isFavorite: (s) => s.favorite === true,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/*
|
|
116
|
-
* Outside Per host every host shares one list, so a server's folder is keyed
|
|
117
|
-
* with its host: the same path on two hosts is two groups. The list model
|
|
118
|
-
* labels a folder by its last segment, so the host goes at the end
|
|
119
|
-
* (`api<SEP>box`): server folders never take a local folder's name, and the
|
|
120
|
-
* suffix is swapped for the server's name once the rows are built.
|
|
121
|
-
*/
|
|
122
|
-
const HOST_SEP = '\u0000';
|
|
123
|
-
|
|
124
|
-
function hostFolderKey(session: SidebarListSession): string {
|
|
125
|
-
const path = projectPathOf(session);
|
|
126
|
-
if (!session.hostId || !path) return path;
|
|
127
|
-
return `${path.replace(/\/+$/, '') || '/'}${HOST_SEP}${session.hostId}`;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* The group each repository's sessions share across machines, by `repoKey`. A
|
|
132
|
-
* repository with one local folder groups under that folder: its sessions on
|
|
133
|
-
* servers join it. A repository only on servers groups under its first
|
|
134
|
-
* server folder, in key order. A repository with several local folders (two
|
|
135
|
-
* clones) is left out: each folder keeps its own group, and so does each
|
|
136
|
-
* server folder.
|
|
137
|
-
*
|
|
138
|
-
* @param sessions - The listed sessions.
|
|
139
|
-
*/
|
|
140
|
-
export function repoGroups(sessions: readonly SidebarListSession[]): Map<string, string> {
|
|
141
|
-
const local = new Map<string, Set<string>>();
|
|
142
|
-
const remote = new Map<string, string>();
|
|
143
|
-
for (const session of sessions) {
|
|
144
|
-
if (!session.repoKey || !projectPathOf(session)) continue;
|
|
145
|
-
if (session.hostId) {
|
|
146
|
-
const key = hostFolderKey(session);
|
|
147
|
-
const first = remote.get(session.repoKey);
|
|
148
|
-
if (first === undefined || key < first) remote.set(session.repoKey, key);
|
|
149
|
-
} else {
|
|
150
|
-
const folders = local.get(session.repoKey) ?? new Set<string>();
|
|
151
|
-
folders.add(projectPathOf(session).replace(/\/+$/, '') || '/');
|
|
152
|
-
local.set(session.repoKey, folders);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
const groups = new Map<string, string>();
|
|
156
|
-
for (const [repoKey, first] of remote) {
|
|
157
|
-
const folders = local.get(repoKey);
|
|
158
|
-
if (!folders) groups.set(repoKey, first);
|
|
159
|
-
else if (folders.size === 1) groups.set(repoKey, [...folders][0]!);
|
|
160
|
-
}
|
|
161
|
-
return groups;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Whether `session` is listed under a project header: a local session in its
|
|
166
|
-
* folder, or, for a header that names a `repoKey`, a server session of that
|
|
167
|
-
* repository.
|
|
168
|
-
*
|
|
169
|
-
* @param session - The session.
|
|
170
|
-
* @param project - The header's folder (`path`), its server (`hostId`) and its repository (`repoKey`).
|
|
171
|
-
*/
|
|
172
|
-
export function isProjectMember(
|
|
173
|
-
session: SidebarListSession,
|
|
174
|
-
project: { path: string; hostId?: string; repoKey?: string },
|
|
175
|
-
): boolean {
|
|
176
|
-
if (project.repoKey && session.hostId && session.repoKey === project.repoKey) return true;
|
|
177
|
-
return (session.hostId ?? undefined) === project.hostId && projectPathOf(session) === project.path;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/** A server folder's header: the folder, its server as `hostId` (a chip), without the local folder affordances. */
|
|
181
|
-
function serverFolderHeader<S extends SidebarListSession>(row: SidebarListRow<S>): SidebarListRow<S> {
|
|
182
|
-
if (row.kind !== 'header' || !row.fullPath?.includes(HOST_SEP)) return row;
|
|
183
|
-
const { fullPath, isGitRepo: _isGitRepo, ...rest } = row;
|
|
184
|
-
const hostId = fullPath.slice(fullPath.indexOf(HOST_SEP) + 1);
|
|
185
|
-
const folder = row.label.replace(`${HOST_SEP}${hostId}`, '') || '/';
|
|
186
|
-
return { ...rest, label: folder, hostId };
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/** A header whose group holds a repository's sessions from several machines names the repository. */
|
|
190
|
-
function withRepoKey<S extends SidebarListSession>(
|
|
191
|
-
row: SidebarListRow<S>,
|
|
192
|
-
repoByGroup: ReadonlyMap<string, string>,
|
|
193
|
-
): SidebarListRow<S> {
|
|
194
|
-
if (row.kind !== 'header' || row.fullPath === undefined) return row;
|
|
195
|
-
const repoKey = repoByGroup.get(row.fullPath);
|
|
196
|
-
return repoKey ? { ...row, repoKey } : row;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
function withoutLocalPath<S extends SidebarListSession>(row: SidebarListRow<S>): SidebarListRow<S> {
|
|
200
|
-
if (row.kind !== 'header' || row.fullPath === undefined) {
|
|
201
|
-
return row;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
const { fullPath: _fullPath, isGitRepo: _isGitRepo, ...rest } = row;
|
|
205
|
-
return rest;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* The sidebar's rows over every host. Per host: This computer's section
|
|
210
|
-
* first, then each saved server's, each host's sessions grouped per folder
|
|
211
|
-
* under its header. Any other view lists every host in one list, a server's
|
|
212
|
-
* folder headers naming the server, and a repository's sessions on every
|
|
213
|
-
* machine under one header ({@link repoGroups}). Sessions of a server no
|
|
214
|
-
* longer saved are not listed.
|
|
215
|
-
*
|
|
216
|
-
* @param sessions - The sessions to list.
|
|
217
|
-
* @param hosts - This machine and each saved server, in order.
|
|
218
|
-
* @param groupBy - The view.
|
|
219
|
-
* @param sortBy - The order inside a group.
|
|
220
|
-
* @param options - Collapsed groups, expanded "show more", pinned projects.
|
|
221
|
-
*/
|
|
222
|
-
export function buildHostSidebarRows<S extends SidebarListSession>(
|
|
223
|
-
sessions: S[],
|
|
224
|
-
hosts: readonly HostView[],
|
|
225
|
-
groupBy: Exclude<SidebarGroupBy, 'agent'>,
|
|
226
|
-
sortBy: SidebarSortBy,
|
|
227
|
-
options: BuildSidebarRowsOptions = {},
|
|
228
|
-
): SidebarListRow<S>[] {
|
|
229
|
-
const servers = new Map(hosts.filter((host) => host.kind === 'server').map((host) => [host.id, host.name]));
|
|
230
|
-
|
|
231
|
-
if (groupBy !== 'host') {
|
|
232
|
-
const listed = sessions.filter((s) => !s.hostId || servers.has(s.hostId));
|
|
233
|
-
const groups = servers.size > 0 ? repoGroups(listed) : new Map<string, string>();
|
|
234
|
-
const repoByGroup = new Map([...groups].map(([repoKey, group]) => [group, repoKey]));
|
|
235
|
-
const rows = buildSidebarRows(listed, groupBy, sortBy, options, (s) =>
|
|
236
|
-
s.repoKey && groups.has(s.repoKey) ? groups.get(s.repoKey)! : hostFolderKey(s),
|
|
237
|
-
);
|
|
238
|
-
return servers.size > 0 ? rows.map((row) => serverFolderHeader(withRepoKey(row, repoByGroup))) : rows;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
const local = sessions.filter((s) => !s.hostId);
|
|
242
|
-
const collapsedGroups = options.collapsedGroups ?? EMPTY_SET;
|
|
243
|
-
const out: SidebarListRow<S>[] = [];
|
|
244
|
-
|
|
245
|
-
for (const host of hosts) {
|
|
246
|
-
const own = host.kind === 'local' ? local : sessions.filter((s) => s.hostId === host.id);
|
|
247
|
-
const id = `host-${host.id}`;
|
|
248
|
-
const collapsed = collapsedGroups.has(id);
|
|
249
|
-
out.push({ kind: 'host', id, host, collapsed, count: own.length });
|
|
250
|
-
|
|
251
|
-
if (!collapsed) {
|
|
252
|
-
// Pins are this computer's folders: a server's list ignores them.
|
|
253
|
-
const { pinnedProjects: _pinnedProjects, ...rest } = options;
|
|
254
|
-
const rows = buildSidebarRows(own, 'project', sortBy, {
|
|
255
|
-
...(host.kind === 'local' ? options : rest),
|
|
256
|
-
idPrefix: `${host.id}:`,
|
|
257
|
-
});
|
|
258
|
-
// A server's folders are not on this machine: no icon keying, no "new session here".
|
|
259
|
-
out.push(...(host.kind === 'server' ? rows.map(withoutLocalPath) : rows));
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
return out;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* An item's row and its child sessions' rows (none while it is collapsed).
|
|
268
|
-
*
|
|
269
|
-
* @param item - The item and its child sessions.
|
|
270
|
-
* @param collapsedGroups - Collapsed row ids (an item collapses under its row id).
|
|
271
|
-
*/
|
|
272
|
-
export function itemRows<S extends SidebarListSession>(
|
|
273
|
-
item: SidebarItemEntry<S>,
|
|
274
|
-
collapsedGroups: ReadonlySet<string> = EMPTY_SET,
|
|
275
|
-
): SidebarListRow<S>[] {
|
|
276
|
-
const id = `i-${item.entry.item.id}`;
|
|
277
|
-
const collapsed = collapsedGroups.has(id);
|
|
278
|
-
const out: SidebarListRow<S>[] = [
|
|
279
|
-
{ kind: 'item', id, entry: item.entry, collapsed, childCount: item.children.length },
|
|
280
|
-
];
|
|
281
|
-
if (!collapsed) {
|
|
282
|
-
for (const session of item.children) out.push({ kind: 'session', id: session.id, session, itemId: id });
|
|
283
|
-
}
|
|
284
|
-
return out;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
/** Options of {@link buildQuerySidebarRows}. */
|
|
288
|
-
export interface BuildQuerySidebarRowsOptions<S extends SidebarListSession> {
|
|
289
|
-
/** Collapsed header and item ids. */
|
|
290
|
-
collapsedGroups?: ReadonlySet<string>;
|
|
291
|
-
/** Labels by group key, under the grouping's own (agent names for the agent grouping). */
|
|
292
|
-
labels?: Readonly<Record<string, string>>;
|
|
293
|
-
/** The label of the group of sessions without a value. */
|
|
294
|
-
missingLabel?: string;
|
|
295
|
-
/** The favorites section's label. Default: the chat labels'. */
|
|
296
|
-
favoritesLabel?: string;
|
|
297
|
-
/** Favorited sessions lead the list under their own header, as in every grouping. */
|
|
298
|
-
isFavorite?: (session: S) => boolean;
|
|
299
|
-
/** Extension items, each listed first in the group its `group` names (no `group`: the group without a value). */
|
|
300
|
-
items?: readonly SidebarItemEntry<S>[];
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
const MISSING = '\u0000none';
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* The sidebar's rows under a query grouping (a space's, an extension's, the agents'): favorites
|
|
307
|
-
* first, then one group per value in the grouping's order, the items of each group leading it. A
|
|
308
|
-
* session whose value is a list is in each of its groups. The sessions come sorted.
|
|
309
|
-
*
|
|
310
|
-
* @param sessions - The sessions to list, in order.
|
|
311
|
-
* @param groupBy - The grouping.
|
|
312
|
-
* @param options - Collapse, labels, favorites and items.
|
|
313
|
-
*/
|
|
314
|
-
export function buildQuerySidebarRows<S extends SidebarListSession>(
|
|
315
|
-
sessions: readonly S[],
|
|
316
|
-
groupBy: QueryGroupBy,
|
|
317
|
-
options: BuildQuerySidebarRowsOptions<S> = {},
|
|
318
|
-
): SidebarListRow<S>[] {
|
|
319
|
-
const collapsedGroups = options.collapsedGroups ?? EMPTY_SET;
|
|
320
|
-
const out: SidebarListRow<S>[] = [];
|
|
321
|
-
const favorites = options.isFavorite ? sessions.filter(options.isFavorite) : [];
|
|
322
|
-
const rest = favorites.length > 0 ? sessions.filter((s) => !options.isFavorite!(s)) : sessions;
|
|
323
|
-
if (favorites.length > 0) {
|
|
324
|
-
const id = 'h-Favorites';
|
|
325
|
-
const collapsed = collapsedGroups.has(id);
|
|
326
|
-
out.push({
|
|
327
|
-
kind: 'header',
|
|
328
|
-
id,
|
|
329
|
-
label: options.favoritesLabel ?? DEFAULT_CHAT_LABELS.favorites,
|
|
330
|
-
collapsed,
|
|
331
|
-
favorites: true,
|
|
332
|
-
});
|
|
333
|
-
if (!collapsed)
|
|
334
|
-
for (const session of favorites) out.push({ kind: 'session', id: session.id, session, favorites: true });
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
const groups = groupRows(rest as readonly (S & SessionQueryRow)[], groupBy, {
|
|
338
|
-
...(options.labels ? { labels: options.labels } : {}),
|
|
339
|
-
...(options.missingLabel ? { missingLabel: options.missingLabel } : {}),
|
|
340
|
-
}).map((g) => ({ key: g.key, label: g.label, rows: g.rows as readonly S[] }));
|
|
341
|
-
const itemsByKey = new Map<string, SidebarItemEntry<S>[]>();
|
|
342
|
-
for (const item of options.items ?? []) {
|
|
343
|
-
const key = item.entry.item.group ?? MISSING;
|
|
344
|
-
itemsByKey.set(key, [...(itemsByKey.get(key) ?? []), item]);
|
|
345
|
-
}
|
|
346
|
-
// An item's group with no session yet still shows, before the group without a value.
|
|
347
|
-
for (const key of itemsByKey.keys()) {
|
|
348
|
-
if (groups.some((g) => (g.key ?? MISSING) === key)) continue;
|
|
349
|
-
const label =
|
|
350
|
-
key === MISSING ? (options.missingLabel ?? '') : (groupBy.labels?.[key] ?? options.labels?.[key] ?? key);
|
|
351
|
-
const at = groups.findIndex((g) => g.key === null);
|
|
352
|
-
const group = { key: key === MISSING ? null : key, label, rows: [] as readonly S[] };
|
|
353
|
-
if (key === MISSING || at === -1) groups.push(group);
|
|
354
|
-
else groups.splice(at, 0, group);
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
for (const group of groups) {
|
|
358
|
-
const key = group.key ?? MISSING;
|
|
359
|
-
const id = `h-q:${key}`;
|
|
360
|
-
const collapsed = collapsedGroups.has(id);
|
|
361
|
-
out.push({ kind: 'header', id, label: group.label, collapsed });
|
|
362
|
-
if (collapsed) continue;
|
|
363
|
-
for (const item of itemsByKey.get(key) ?? []) out.push(...itemRows(item, collapsedGroups));
|
|
364
|
-
for (const session of group.rows) out.push({ kind: 'session', id: session.id, session });
|
|
365
|
-
}
|
|
366
|
-
return out;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
type SectionHeader<S extends SidebarListSession> = Extract<SidebarListRow<S>, { kind: 'header' } | { kind: 'host' }>;
|
|
370
|
-
|
|
371
|
-
/**
|
|
372
|
-
* What the sidebar list renders: a session or "show more" row, or a section,
|
|
373
|
-
* a header and the rows under it, drawn as its own `<ul>` so the header
|
|
374
|
-
* sticks while they scroll by and the next section pushes it out.
|
|
375
|
-
*/
|
|
376
|
-
export type SidebarNode<S extends SidebarListSession = SidebarListSession> =
|
|
377
|
-
| Extract<SidebarListRow<S>, { kind: 'session' } | { kind: 'showMore' }>
|
|
378
|
-
| { kind: 'section'; id: string; header: SectionHeader<S>; children: SidebarNode<S>[] }
|
|
379
|
-
/** An extension item and its child sessions' rows. */
|
|
380
|
-
| { kind: 'item'; id: string; row: Extract<SidebarListRow<S>, { kind: 'item' }>; children: SidebarNode<S>[] };
|
|
381
|
-
|
|
382
|
-
/**
|
|
383
|
-
* The flat rows as nested sections: a host's section holds its groups, a
|
|
384
|
-
* group's holds its rows. Rows before any header (a flat view) stay at the
|
|
385
|
-
* top level, and so do a flat view's rows after its Favorites.
|
|
386
|
-
*
|
|
387
|
-
* @param rows - The flat rows.
|
|
388
|
-
*/
|
|
389
|
-
export function nestSidebarRows<S extends SidebarListSession>(rows: readonly SidebarListRow<S>[]): SidebarNode<S>[] {
|
|
390
|
-
const top: SidebarNode<S>[] = [];
|
|
391
|
-
let host: Extract<SidebarNode<S>, { kind: 'section' }> | null = null;
|
|
392
|
-
let group: Extract<SidebarNode<S>, { kind: 'section' }> | null = null;
|
|
393
|
-
let item: Extract<SidebarNode<S>, { kind: 'item' }> | null = null;
|
|
394
|
-
|
|
395
|
-
for (const row of rows) {
|
|
396
|
-
if (row.kind === 'session' && row.itemId !== undefined && item?.id === row.itemId) {
|
|
397
|
-
item.children.push(row);
|
|
398
|
-
continue;
|
|
399
|
-
}
|
|
400
|
-
if (row.kind === 'item') {
|
|
401
|
-
item = { kind: 'item', id: row.id, row, children: [] };
|
|
402
|
-
const parent = group ?? host;
|
|
403
|
-
if (parent) parent.children.push(item);
|
|
404
|
-
else top.push(item);
|
|
405
|
-
continue;
|
|
406
|
-
}
|
|
407
|
-
if (row.kind === 'host') {
|
|
408
|
-
host = { kind: 'section', id: row.id, header: row, children: [] };
|
|
409
|
-
group = null;
|
|
410
|
-
top.push(host);
|
|
411
|
-
continue;
|
|
412
|
-
}
|
|
413
|
-
if (row.kind === 'header') {
|
|
414
|
-
group = { kind: 'section', id: row.id, header: row, children: [] };
|
|
415
|
-
(host?.children ?? top).push(group);
|
|
416
|
-
continue;
|
|
417
|
-
}
|
|
418
|
-
if (group?.header.kind === 'header' && group.header.favorites && row.kind === 'session' && !row.favorites) {
|
|
419
|
-
group = null;
|
|
420
|
-
}
|
|
421
|
-
const parent = group ?? host;
|
|
422
|
-
if (parent) parent.children.push(row);
|
|
423
|
-
else top.push(row);
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
return top;
|
|
427
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The session sidebar's shared vocabulary: the row a session list shows, the
|
|
3
|
-
* five filter axes and the per-space view. React-free.
|
|
4
|
-
*/
|
|
5
|
-
import type { ChatSessionStatus } from '../host';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* One session as the sidebar lists it: the chat session plus where it runs
|
|
9
|
-
* (folder, host, space). An app's own row type extends it.
|
|
10
|
-
*/
|
|
11
|
-
export interface SidebarListSession {
|
|
12
|
-
/** The session's key. */
|
|
13
|
-
id: string;
|
|
14
|
-
/** What the row shows. */
|
|
15
|
-
title: string;
|
|
16
|
-
/** Whether a run is going, and how the last one ended. */
|
|
17
|
-
status: ChatSessionStatus;
|
|
18
|
-
/** Epoch ms. */
|
|
19
|
-
createdAt: number;
|
|
20
|
-
/** Epoch ms of the last activity. */
|
|
21
|
-
updatedAt: number;
|
|
22
|
-
/** The folder its tools run in. */
|
|
23
|
-
cwd: string;
|
|
24
|
-
/** The repository or project folder it belongs to, when known. */
|
|
25
|
-
projectRoot?: string;
|
|
26
|
-
/** The remote host it lives on; undefined on this machine. */
|
|
27
|
-
hostId?: string;
|
|
28
|
-
/** The space it belongs to; undefined in the default space. */
|
|
29
|
-
spaceId?: string;
|
|
30
|
-
/** The orchestration main session. */
|
|
31
|
-
isMain?: boolean;
|
|
32
|
-
/** Its folder is a git repository. */
|
|
33
|
-
isGitRepo?: boolean;
|
|
34
|
-
/**
|
|
35
|
-
* The repository its folder is a checkout of (`github.com/owner/repo`). Sessions of one
|
|
36
|
-
* repository on several machines are listed under one project.
|
|
37
|
-
*/
|
|
38
|
-
repoKey?: string;
|
|
39
|
-
/** Starred: listed under Favorites. */
|
|
40
|
-
favorite?: boolean;
|
|
41
|
-
/** Archived: listed only under the archived filter. */
|
|
42
|
-
archived?: boolean;
|
|
43
|
-
/** The agent profile it runs (`AgentProfile.id`): the agent grouping and filter read it. */
|
|
44
|
-
agentId?: string;
|
|
45
|
-
/**
|
|
46
|
-
* What extensions computed for it, keyed `<extensionId>.<key>` (a query reads one as
|
|
47
|
-
* `facet.<extensionId>.<key>`). Absent: none, or a host that sends none.
|
|
48
|
-
*/
|
|
49
|
-
facets?: Readonly<Record<string, unknown>>;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/** Which sessions the list reads: the archive axis is the one the host filters. */
|
|
53
|
-
export type SessionArchiveFilter = 'active' | 'archived' | 'all';
|
|
54
|
-
/** Only sessions touched within the last day, 3, 7 or 30 days. */
|
|
55
|
-
export type SessionActivityFilter = 'all' | '1d' | '3d' | '7d' | '30d';
|
|
56
|
-
/** How the sidebar groups its rows: the session list's groupings, one section per host, or one group per agent. */
|
|
57
|
-
export type SidebarGroupBy = 'none' | 'date' | 'state' | 'project' | 'host' | 'agent';
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* In {@link SidebarExtensionView}: the view's own axis (`groupBy`, `sortBy`) in a space that has a
|
|
61
|
-
* grouping or sort of its own (an extension space, a saved view), where that one applies by default.
|
|
62
|
-
*/
|
|
63
|
-
export const VIEW_CHOICE = '@view';
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* The user's layer over what extensions contribute to the filter menu, kept per space with the rest
|
|
67
|
-
* of the view. Ids are the published ones (`<extension>/<id>`); an id no extension offers now is ignored.
|
|
68
|
-
*/
|
|
69
|
-
export interface SidebarExtensionView {
|
|
70
|
-
/** Each contributed filter's value: `true` for an active toggle, an option id (select), option ids (multi). */
|
|
71
|
-
filters: Readonly<Record<string, boolean | string | readonly string[]>>;
|
|
72
|
-
/** A contributed sort, or {@link VIEW_CHOICE}. Absent: the space's sort when it has one, else `sortBy`. */
|
|
73
|
-
sort?: string;
|
|
74
|
-
/** A contributed grouping, or {@link VIEW_CHOICE}. Absent: the space's grouping when it has one, else `groupBy`. */
|
|
75
|
-
group?: string;
|
|
76
|
-
}
|
|
77
|
-
/** How the sidebar orders sessions inside a group. */
|
|
78
|
-
export type SidebarSortBy = 'recency' | 'createdTime' | 'alphabetical';
|
|
79
|
-
|
|
80
|
-
/** The filter axes, kept per space. */
|
|
81
|
-
export interface SidebarView {
|
|
82
|
-
/** Active, archived or every session. */
|
|
83
|
-
archive: SessionArchiveFilter;
|
|
84
|
-
/** A project's folder name, or null for every project. */
|
|
85
|
-
project: string | null;
|
|
86
|
-
/** Only sessions touched recently. */
|
|
87
|
-
activity: SessionActivityFilter;
|
|
88
|
-
/** How the rows group. */
|
|
89
|
-
groupBy: SidebarGroupBy;
|
|
90
|
-
/** How the rows sort inside a group. */
|
|
91
|
-
sortBy: SidebarSortBy;
|
|
92
|
-
/** Only this agent's sessions (`AgentProfile.id`), or null for every agent. */
|
|
93
|
-
agent?: string | null;
|
|
94
|
-
/** What the user picked of the extensions' filters, sorts and groupings. Absent: nothing. */
|
|
95
|
-
extension?: SidebarExtensionView;
|
|
96
|
-
}
|