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,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model names as the model picker shows them (`Opus 4.5`), for every surface
|
|
3
|
-
* that names a model: the context orb, the transcript's receipt and worker
|
|
4
|
-
* rows, session details, settings. One catalog (and the provider labels of
|
|
5
|
-
* the sign-in report), read on the first reader and kept current. A model
|
|
6
|
-
* the catalog doesn't know keeps its id, made readable; so does every model
|
|
7
|
-
* while the catalog can't be listed.
|
|
8
|
-
*/
|
|
9
|
-
import { modelDisplayName, nameFromModelId, type ModelNamer } from 'zidane/chat/pure';
|
|
10
|
-
|
|
11
|
-
import type { ResourceSnapshot } from '../../../app/headless/resource';
|
|
12
|
-
import type { Readable } from '../store';
|
|
13
|
-
import type { ComposerModels } from './host-chrome';
|
|
14
|
-
import type { ModelCatalogRow } from './models';
|
|
15
|
-
|
|
16
|
-
/** How models and providers are named. */
|
|
17
|
-
export interface ModelNames {
|
|
18
|
-
/** A model's name. */
|
|
19
|
-
model: ModelNamer;
|
|
20
|
-
/** A provider's label (`Anthropic`); its key when nothing names it. */
|
|
21
|
-
provider: (providerKey: string) => string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/** A provider as the sign-in report lists it. */
|
|
25
|
-
export interface ModelNamesProvider {
|
|
26
|
-
/** The provider's key. */
|
|
27
|
-
key: string;
|
|
28
|
-
/** Its label. */
|
|
29
|
-
label: string;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/** The live names. */
|
|
33
|
-
export interface ModelNamesStore {
|
|
34
|
-
/** The names now (a new object when the catalog changes). */
|
|
35
|
-
get(): ModelNames;
|
|
36
|
-
/** Registers a listener (the first one starts reading). Returns the unsubscribe. */
|
|
37
|
-
subscribe(listener: () => void): () => void;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* A namer reading `catalog`: the entry of that provider first, then any provider listing the id.
|
|
42
|
-
*
|
|
43
|
-
* @param catalog - The catalog rows.
|
|
44
|
-
*/
|
|
45
|
-
export function namerFor(
|
|
46
|
-
catalog: readonly Pick<ModelCatalogRow, 'providerKey' | 'modelId' | 'modelName'>[],
|
|
47
|
-
): ModelNamer {
|
|
48
|
-
const exact = new Map<string, string>();
|
|
49
|
-
const anyProvider = new Map<string, Pick<ModelCatalogRow, 'providerKey' | 'modelName'>>();
|
|
50
|
-
for (const entry of catalog) {
|
|
51
|
-
exact.set(`${entry.providerKey}\u0000${entry.modelId}`, entry.modelName);
|
|
52
|
-
if (!anyProvider.has(entry.modelId)) anyProvider.set(entry.modelId, entry);
|
|
53
|
-
}
|
|
54
|
-
return (modelId, providerKey) => {
|
|
55
|
-
const name = providerKey ? exact.get(`${providerKey}\u0000${modelId}`) : undefined;
|
|
56
|
-
const fallback = name === undefined ? anyProvider.get(modelId) : undefined;
|
|
57
|
-
return modelDisplayName({
|
|
58
|
-
providerKey: providerKey ?? fallback?.providerKey,
|
|
59
|
-
modelId,
|
|
60
|
-
modelName: name ?? fallback?.modelName,
|
|
61
|
-
}).name;
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Creates the names over a catalog and, optionally, the sign-in report's providers.
|
|
67
|
-
* Both are read for the store's life once a reader subscribes.
|
|
68
|
-
*
|
|
69
|
-
* @param catalog - The model catalog.
|
|
70
|
-
* @param providers - The providers, signed in or not (labels for those with no model listed).
|
|
71
|
-
*/
|
|
72
|
-
export function createModelNames(
|
|
73
|
-
catalog: Readable<
|
|
74
|
-
ResourceSnapshot<readonly Pick<ModelCatalogRow, 'providerKey' | 'providerLabel' | 'modelId' | 'modelName'>[]>
|
|
75
|
-
>,
|
|
76
|
-
providers?: Readable<ResourceSnapshot<readonly ModelNamesProvider[]>>,
|
|
77
|
-
): ModelNamesStore {
|
|
78
|
-
let names: ModelNames = { model: nameFromModelId, provider: (key) => key };
|
|
79
|
-
let wired = false;
|
|
80
|
-
let rows: ReturnType<typeof catalog.get>['data'] | null = null;
|
|
81
|
-
let known: readonly ModelNamesProvider[] = [];
|
|
82
|
-
const listeners = new Set<() => void>();
|
|
83
|
-
|
|
84
|
-
const rebuild = () => {
|
|
85
|
-
if (!rows) return;
|
|
86
|
-
// Provider labels from the sign-in report too: it lists every provider, signed in or not.
|
|
87
|
-
const labels = new Map<string, string>([
|
|
88
|
-
...known.map((p) => [p.key, p.label] as const),
|
|
89
|
-
...rows.map((e) => [e.providerKey, e.providerLabel] as const),
|
|
90
|
-
]);
|
|
91
|
-
names = { model: namerFor(rows), provider: (key) => labels.get(key) ?? key };
|
|
92
|
-
for (const listener of listeners) listener();
|
|
93
|
-
};
|
|
94
|
-
const wire = () => {
|
|
95
|
-
if (wired) return;
|
|
96
|
-
wired = true;
|
|
97
|
-
// Readers for the store's life: never unsubscribed.
|
|
98
|
-
const onCatalog = () => {
|
|
99
|
-
const { data } = catalog.get();
|
|
100
|
-
if (!data || data === rows) return;
|
|
101
|
-
rows = data;
|
|
102
|
-
rebuild();
|
|
103
|
-
};
|
|
104
|
-
catalog.subscribe(onCatalog);
|
|
105
|
-
onCatalog();
|
|
106
|
-
if (providers) {
|
|
107
|
-
const onProviders = () => {
|
|
108
|
-
const { data } = providers.get();
|
|
109
|
-
if (!data || data === known) return;
|
|
110
|
-
known = data;
|
|
111
|
-
rebuild();
|
|
112
|
-
};
|
|
113
|
-
providers.subscribe(onProviders);
|
|
114
|
-
onProviders();
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
return {
|
|
119
|
-
get: () => names,
|
|
120
|
-
subscribe(listener) {
|
|
121
|
-
wire();
|
|
122
|
-
listeners.add(listener);
|
|
123
|
-
return () => listeners.delete(listener);
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
const stores = new WeakMap<ComposerModels, ModelNamesStore>();
|
|
129
|
-
const BY_ID: ModelNamesStore = {
|
|
130
|
-
get: () => ({ model: nameFromModelId, provider: (key) => key }),
|
|
131
|
-
subscribe: () => () => undefined,
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* The one {@link ModelNamesStore} over a host's `models` (this computer's catalog, and its providers when listed).
|
|
136
|
-
* Without `models`, every model keeps its readable id.
|
|
137
|
-
*
|
|
138
|
-
* @param models - The host's member.
|
|
139
|
-
*/
|
|
140
|
-
export function modelNamesOf(models: ComposerModels | undefined): ModelNamesStore {
|
|
141
|
-
if (!models) return BY_ID;
|
|
142
|
-
let store = stores.get(models);
|
|
143
|
-
if (!store) stores.set(models, (store = createModelNames(models.catalog(undefined, null), models.providers?.())));
|
|
144
|
-
return store;
|
|
145
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model picker preferences (`zg:model-picker:v1`): per device, like the
|
|
3
|
-
* editor preferences. One live value the picker, its toggle and an app's
|
|
4
|
-
* command palette entry share.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/** The Storage key the preferences live under. */
|
|
8
|
-
export const MODEL_PICKER_STORAGE_KEY = 'zg:model-picker:v1';
|
|
9
|
-
|
|
10
|
-
/** The model picker's preferences. */
|
|
11
|
-
export interface ModelPickerPrefs {
|
|
12
|
-
/** The stored shape's version. */
|
|
13
|
-
version: 1;
|
|
14
|
-
/** List every model a provider serves, not only the newest of each family (`currentModelKeys`). */
|
|
15
|
-
showLegacy: boolean;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/** The preferences before any change. */
|
|
19
|
-
export const DEFAULT_MODEL_PICKER_PREFS: ModelPickerPrefs = { version: 1, showLegacy: false };
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Parses stored preferences; `undefined` when they are not JSON.
|
|
23
|
-
*
|
|
24
|
-
* @param raw - The stored string.
|
|
25
|
-
*/
|
|
26
|
-
export function parseModelPickerPrefs(raw: string): ModelPickerPrefs | undefined {
|
|
27
|
-
try {
|
|
28
|
-
const o: unknown = JSON.parse(raw);
|
|
29
|
-
if (!o || typeof o !== 'object') return undefined;
|
|
30
|
-
const showLegacy = (o as { showLegacy?: unknown }).showLegacy;
|
|
31
|
-
return { version: 1, showLegacy: typeof showLegacy === 'boolean' ? showLegacy : false };
|
|
32
|
-
} catch {
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** The live preferences. */
|
|
38
|
-
export interface ModelPickerPrefsStore {
|
|
39
|
-
/** The preferences now. */
|
|
40
|
-
get(): ModelPickerPrefs;
|
|
41
|
-
/** Changes them (and stores them). */
|
|
42
|
-
set(update: Partial<ModelPickerPrefs>): void;
|
|
43
|
-
/** Registers a listener called after they change. Returns the unsubscribe. */
|
|
44
|
-
subscribe(listener: () => void): () => void;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** Where the preferences are stored. */
|
|
48
|
-
export type ModelPickerPrefsStorage = Pick<Storage, 'getItem' | 'setItem'>;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Creates the preferences over a Storage, read on first use.
|
|
52
|
-
*
|
|
53
|
-
* @param storage - Where they are stored. Absent: `localStorage` when there is one, else memory only.
|
|
54
|
-
*/
|
|
55
|
-
export function createModelPickerPrefs(storage?: ModelPickerPrefsStorage): ModelPickerPrefsStore {
|
|
56
|
-
const store = (): ModelPickerPrefsStorage | undefined =>
|
|
57
|
-
storage ?? (typeof localStorage === 'undefined' ? undefined : localStorage);
|
|
58
|
-
let state: ModelPickerPrefs | undefined;
|
|
59
|
-
const listeners = new Set<() => void>();
|
|
60
|
-
const read = (): ModelPickerPrefs | undefined => {
|
|
61
|
-
try {
|
|
62
|
-
const raw = store()?.getItem(MODEL_PICKER_STORAGE_KEY) ?? null;
|
|
63
|
-
return raw === null ? undefined : parseModelPickerPrefs(raw);
|
|
64
|
-
} catch {
|
|
65
|
-
return undefined;
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
const get = () => (state ??= read() ?? DEFAULT_MODEL_PICKER_PREFS);
|
|
69
|
-
return {
|
|
70
|
-
get,
|
|
71
|
-
set(update) {
|
|
72
|
-
const prev = get();
|
|
73
|
-
const next: ModelPickerPrefs = { ...prev, ...update, version: 1 };
|
|
74
|
-
if (next.showLegacy === prev.showLegacy) return;
|
|
75
|
-
state = next;
|
|
76
|
-
try {
|
|
77
|
-
store()?.setItem(MODEL_PICKER_STORAGE_KEY, JSON.stringify(next));
|
|
78
|
-
} catch {
|
|
79
|
-
// Non-fatal: the next launch falls back to the default.
|
|
80
|
-
}
|
|
81
|
-
for (const l of listeners) l();
|
|
82
|
-
},
|
|
83
|
-
subscribe(listener) {
|
|
84
|
-
listeners.add(listener);
|
|
85
|
-
return () => {
|
|
86
|
-
listeners.delete(listener);
|
|
87
|
-
};
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The model rows the composer's pickers list, as a host hands them over: chat
|
|
3
|
-
* models (`ModelCatalogRow`, with the options each declares), image models
|
|
4
|
-
* (`ImageModelRow`) and a pick (`ModelPickRef`). React-free, so hosts type
|
|
5
|
-
* their catalogs without the styled layer.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/** A model pick: provider, model and, when the provider has several, the stored account it runs on. */
|
|
9
|
-
export interface ModelPickRef {
|
|
10
|
-
/** Key of the provider, for example `anthropic`. */
|
|
11
|
-
providerKey: string;
|
|
12
|
-
/** Model id within the provider. */
|
|
13
|
-
modelId: string;
|
|
14
|
-
/** Id of the stored account the pick runs on. Only set when the provider has several. */
|
|
15
|
-
account?: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/** One row of the catalog. */
|
|
19
|
-
export interface ModelCatalogRow {
|
|
20
|
-
/** Key of the provider that serves the model. */
|
|
21
|
-
providerKey: string;
|
|
22
|
-
/** Provider name shown as the group heading. */
|
|
23
|
-
providerLabel: string;
|
|
24
|
-
/** The provider's stored account this row runs on, when it has several. Absent: its only one. */
|
|
25
|
-
account?: { id: string; label: string; active?: boolean };
|
|
26
|
-
/** Model id within the provider. */
|
|
27
|
-
modelId: string;
|
|
28
|
-
/** The catalog's display name (`Claude Opus 4.6`); the row shows its natural form (`Opus 4.6`). */
|
|
29
|
-
modelName: string;
|
|
30
|
-
/** Attribution for an aggregator's row (`anthropic` on OpenRouter). */
|
|
31
|
-
modelProvider?: string;
|
|
32
|
-
/** Context window in tokens, or `null` when unknown. */
|
|
33
|
-
contextWindow: number | null;
|
|
34
|
-
/** The model supports reasoning effort. */
|
|
35
|
-
supportsReasoning: boolean;
|
|
36
|
-
/** A typed id the catalog does not know: used as typed, no metadata. */
|
|
37
|
-
offCatalog?: boolean;
|
|
38
|
-
/** Short facts shown beside the name, before the window (`ChatModel.details`). */
|
|
39
|
-
details?: readonly string[];
|
|
40
|
-
/** An image model that takes reference images (to edit, or to match a style). */
|
|
41
|
-
references?: boolean;
|
|
42
|
-
/** An image model that can make a transparent background. */
|
|
43
|
-
transparency?: boolean;
|
|
44
|
-
/** Why the row cannot be picked with the current credentials. The row shows, greyed out, and picking it does nothing. */
|
|
45
|
-
unavailable?: string;
|
|
46
|
-
/** Pre-lowercased search text. Default: provider key and label, account, id, name, attribution. */
|
|
47
|
-
searchCorpus?: string;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/** One image model, as the host lists it. */
|
|
51
|
-
export interface ImageModelRow {
|
|
52
|
-
/** The provider's key, for example `openai`. */
|
|
53
|
-
providerKey: string;
|
|
54
|
-
/** The provider's display name. */
|
|
55
|
-
providerLabel: string;
|
|
56
|
-
/** The model's id at the provider. */
|
|
57
|
-
modelId: string;
|
|
58
|
-
/** The model's display name. */
|
|
59
|
-
modelName: string;
|
|
60
|
-
/** The model takes reference images. */
|
|
61
|
-
references: boolean;
|
|
62
|
-
/** The model can return a transparent background. */
|
|
63
|
-
transparency: boolean;
|
|
64
|
-
/** The provider's credentials can generate with it. */
|
|
65
|
-
available: boolean;
|
|
66
|
-
/** Why it is not available. */
|
|
67
|
-
reason?: string;
|
|
68
|
-
/** The model `generate_image` uses while no default is picked. */
|
|
69
|
-
isDefault?: boolean;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/** A feature toggle a model declares (fast mode, …). */
|
|
73
|
-
export interface ComposerModelOption {
|
|
74
|
-
/** The option's id, a key of the session's enabled options. */
|
|
75
|
-
id: string;
|
|
76
|
-
/** Its name. */
|
|
77
|
-
label: string;
|
|
78
|
-
/** What it does. */
|
|
79
|
-
description?: string;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/** A catalog row with the options its model declares: what `ComposerModels.catalog` lists. */
|
|
83
|
-
export interface ComposerModelEntry extends ModelCatalogRow {
|
|
84
|
-
/** The feature toggles the model declares. Absent or empty: none. */
|
|
85
|
-
options?: readonly ComposerModelOption[];
|
|
86
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What a new session starts with, React-free: the model the host remembers
|
|
3
|
-
* as the next new chat's (`lastProvider` / `lastModelByProvider` in the
|
|
4
|
-
* prefs), the patch a new pick writes there, and what the effort picker has
|
|
5
|
-
* to set for a model (nothing: no dialog).
|
|
6
|
-
*/
|
|
7
|
-
import type { ComposerContextStatus, ComposerPrefsState } from './host-chrome';
|
|
8
|
-
import type { ComposerModelOption, ModelPickRef } from './models';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* The model remembered as the next new chat's, `null` when there is none.
|
|
12
|
-
* The account comes as remembered: check the catalog still serves it.
|
|
13
|
-
*
|
|
14
|
-
* @param prefs - The remembered picks.
|
|
15
|
-
*/
|
|
16
|
-
export function rememberedDefaultModel(prefs: ComposerPrefsState | null | undefined): ModelPickRef | null {
|
|
17
|
-
const providerKey = typeof prefs?.lastProvider === 'string' ? prefs.lastProvider : null;
|
|
18
|
-
const byProvider = prefs?.lastModelByProvider;
|
|
19
|
-
const modelId = providerKey && byProvider && typeof byProvider === 'object' ? byProvider[providerKey] : undefined;
|
|
20
|
-
if (!providerKey || typeof modelId !== 'string' || !modelId) return null;
|
|
21
|
-
const account = prefs?.lastAccountByProvider?.[providerKey];
|
|
22
|
-
return { providerKey, modelId, ...(typeof account === 'string' && account ? { account } : {}) };
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* The prefs patch that remembers `pick` as the next new chat's model.
|
|
27
|
-
*
|
|
28
|
-
* @param current - The remembered picks now.
|
|
29
|
-
* @param pick - The new default.
|
|
30
|
-
*/
|
|
31
|
-
export function defaultModelPatch(
|
|
32
|
-
current: ComposerPrefsState | null | undefined,
|
|
33
|
-
pick: ModelPickRef,
|
|
34
|
-
): ComposerPrefsState {
|
|
35
|
-
const { providerKey, modelId, account } = pick;
|
|
36
|
-
const lastModelByProvider = { ...(current?.lastModelByProvider ?? {}), [providerKey]: modelId };
|
|
37
|
-
const lastAccountByProvider: Partial<Record<string, string>> = { ...(current?.lastAccountByProvider ?? {}) };
|
|
38
|
-
if (account) lastAccountByProvider[providerKey] = account;
|
|
39
|
-
else delete lastAccountByProvider[providerKey];
|
|
40
|
-
return { lastProvider: providerKey, lastModelByProvider, lastAccountByProvider };
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/** What the effort picker sets for a session's model. */
|
|
44
|
-
export interface EffortPickerTarget {
|
|
45
|
-
/** The model has a reasoning effort knob. */
|
|
46
|
-
supportsReasoning: boolean;
|
|
47
|
-
/** The feature toggles it declares. */
|
|
48
|
-
options: readonly ComposerModelOption[];
|
|
49
|
-
/** The options on now. */
|
|
50
|
-
enabled: Record<string, boolean>;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* What the effort picker offers for a session, `null` when its model has
|
|
55
|
-
* nothing to set (no dead-end dialog).
|
|
56
|
-
*
|
|
57
|
-
* @param status - The session's context status (`null` while unknown).
|
|
58
|
-
* @param sessionOptions - The session's own enabled options, which win over the status's.
|
|
59
|
-
*/
|
|
60
|
-
export function effortPickerTarget(
|
|
61
|
-
status: ComposerContextStatus | null | undefined,
|
|
62
|
-
sessionOptions?: Record<string, boolean>,
|
|
63
|
-
): EffortPickerTarget | null {
|
|
64
|
-
const supportsReasoning = status?.supportsReasoning ?? false;
|
|
65
|
-
const options = status?.availableOptions ?? [];
|
|
66
|
-
if (!supportsReasoning && options.length === 0) return null;
|
|
67
|
-
return { supportsReasoning, options, enabled: sessionOptions ?? status?.modelOptions ?? {} };
|
|
68
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The next-prompt suggestion per session (`ComposerHost.suggestions`): the
|
|
3
|
-
* latest one the host offered, until a run or compaction starts or a prompt
|
|
4
|
-
* is sent. One store per host, started on its first subscriber.
|
|
5
|
-
*/
|
|
6
|
-
import type { ComposerSuggestions } from './host';
|
|
7
|
-
|
|
8
|
-
/** A suggested next prompt. */
|
|
9
|
-
export interface PromptSuggestion {
|
|
10
|
-
/** The run it followed. */
|
|
11
|
-
runId: string;
|
|
12
|
-
/** The suggested prompt. */
|
|
13
|
-
text: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/** The suggestions of every session, as {@link createPromptSuggestionStore} keeps them. */
|
|
17
|
-
export interface PromptSuggestionStore {
|
|
18
|
-
/** The session's suggestion, `null` when it has none. */
|
|
19
|
-
get(sessionId: string): PromptSuggestion | null;
|
|
20
|
-
/** Calls `listener` when the session's suggestion changes. Returns the unsubscribe. */
|
|
21
|
-
subscribe(sessionId: string, listener: () => void): () => void;
|
|
22
|
-
/** Drops the session's suggestion. */
|
|
23
|
-
clear(sessionId: string): void;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Creates a {@link PromptSuggestionStore} over a host's suggestions.
|
|
28
|
-
*
|
|
29
|
-
* @param source - The host's `suggestions` member.
|
|
30
|
-
*/
|
|
31
|
-
export function createPromptSuggestionStore(source: ComposerSuggestions): PromptSuggestionStore {
|
|
32
|
-
const suggestions = new Map<string, PromptSuggestion>();
|
|
33
|
-
const listeners = new Map<string, Set<() => void>>();
|
|
34
|
-
let started = false;
|
|
35
|
-
|
|
36
|
-
const notify = (sessionId: string) => {
|
|
37
|
-
for (const listener of listeners.get(sessionId) ?? []) listener();
|
|
38
|
-
};
|
|
39
|
-
const clear = (sessionId: string) => {
|
|
40
|
-
if (!suggestions.delete(sessionId)) return;
|
|
41
|
-
notify(sessionId);
|
|
42
|
-
};
|
|
43
|
-
const start = () => {
|
|
44
|
-
if (started) return;
|
|
45
|
-
started = true;
|
|
46
|
-
source.onReady(({ sessionId, runId, text }) => {
|
|
47
|
-
const prev = suggestions.get(sessionId);
|
|
48
|
-
if (prev?.runId === runId && prev.text === text) return;
|
|
49
|
-
suggestions.set(sessionId, { runId, text });
|
|
50
|
-
notify(sessionId);
|
|
51
|
-
});
|
|
52
|
-
source.onStale?.(clear);
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
return {
|
|
56
|
-
get: (sessionId) => suggestions.get(sessionId) ?? null,
|
|
57
|
-
subscribe(sessionId, listener) {
|
|
58
|
-
start();
|
|
59
|
-
let group = listeners.get(sessionId);
|
|
60
|
-
if (!group) {
|
|
61
|
-
group = new Set();
|
|
62
|
-
listeners.set(sessionId, group);
|
|
63
|
-
}
|
|
64
|
-
group.add(listener);
|
|
65
|
-
return () => {
|
|
66
|
-
group.delete(listener);
|
|
67
|
-
if (group.size === 0 && listeners.get(sessionId) === group) listeners.delete(sessionId);
|
|
68
|
-
};
|
|
69
|
-
},
|
|
70
|
-
clear,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What of a model pick an app remembers as its default (the next new chat's
|
|
3
|
-
* model, the prefs' `lastModelChain` the TUI launches with too): the rule the
|
|
4
|
-
* TUI applies (`rememberableChain` in `zidane/chat/pure`), with "this
|
|
5
|
-
* computer can run it" = a provider this computer is signed in to.
|
|
6
|
-
*/
|
|
7
|
-
import { rememberableChain as rememberable } from 'zidane/chat/pure';
|
|
8
|
-
|
|
9
|
-
import type { ResourceSnapshot } from '../../../app/headless/resource';
|
|
10
|
-
import type { Readable } from '../store';
|
|
11
|
-
import type { ComposerControls, ComposerModels, ComposerPrefs, ComposerRememberedModel } from './host-chrome';
|
|
12
|
-
import type { ModelPickRef } from './models';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* The chain to remember, `null` for nothing (no primary, or a primary only the server runs).
|
|
16
|
-
*
|
|
17
|
-
* @param chain - The picked chain.
|
|
18
|
-
* @param scope - Whether it was picked on a server, and the providers this computer can run.
|
|
19
|
-
*/
|
|
20
|
-
export function rememberableChain(
|
|
21
|
-
chain: readonly ModelPickRef[],
|
|
22
|
-
scope: { onServer: boolean; localProviders: ReadonlySet<string> },
|
|
23
|
-
): ModelPickRef[] | null {
|
|
24
|
-
const kept = rememberable(chain, (entry) => entry.providerKey, {
|
|
25
|
-
onServer: scope.onServer,
|
|
26
|
-
canRunHere: (key) => scope.localProviders.has(key),
|
|
27
|
-
});
|
|
28
|
-
// A server's account ids name ITS credentials: here they would pin nothing (or the wrong account).
|
|
29
|
-
return kept && scope.onServer ? kept.map(({ account: _account, ...entry }) => entry) : kept;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* The first settled value of a resource (subscribing starts its read).
|
|
34
|
-
*
|
|
35
|
-
* @param resource - The resource.
|
|
36
|
-
*/
|
|
37
|
-
export function settledResource<T>(resource: Readable<ResourceSnapshot<T>>): Promise<T> {
|
|
38
|
-
return new Promise<T>((resolve, reject) => {
|
|
39
|
-
let off: (() => void) | null = null;
|
|
40
|
-
let done = false;
|
|
41
|
-
const check = () => {
|
|
42
|
-
const snap = resource.get();
|
|
43
|
-
if (done) return;
|
|
44
|
-
if (snap.status === 'success' && snap.data !== undefined) {
|
|
45
|
-
done = true;
|
|
46
|
-
resolve(snap.data);
|
|
47
|
-
} else if (snap.status === 'error') {
|
|
48
|
-
done = true;
|
|
49
|
-
reject(snap.error instanceof Error ? snap.error : new Error(String(snap.error)));
|
|
50
|
-
} else return;
|
|
51
|
-
off?.();
|
|
52
|
-
};
|
|
53
|
-
off = resource.subscribe(check);
|
|
54
|
-
check();
|
|
55
|
-
if (done) off();
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* {@link rememberableChain} for a pick made on `hostId` (a server, or `null` for this computer).
|
|
61
|
-
*
|
|
62
|
-
* @param chain - The picked chain.
|
|
63
|
-
* @param hostId - Where it was picked.
|
|
64
|
-
* @param models - This computer's catalog, to tell which providers it runs.
|
|
65
|
-
*/
|
|
66
|
-
export async function rememberedPick(
|
|
67
|
-
chain: readonly ModelPickRef[],
|
|
68
|
-
hostId: string | null | undefined,
|
|
69
|
-
models: ComposerModels | undefined,
|
|
70
|
-
): Promise<ModelPickRef[] | null> {
|
|
71
|
-
if (!hostId) return rememberableChain(chain, { onServer: false, localProviders: new Set() });
|
|
72
|
-
let localProviders = new Set<string>();
|
|
73
|
-
try {
|
|
74
|
-
if (models) {
|
|
75
|
-
const catalog = await settledResource(models.catalog(undefined, null));
|
|
76
|
-
localProviders = new Set(catalog.map((entry) => entry.providerKey));
|
|
77
|
-
}
|
|
78
|
-
} catch {
|
|
79
|
-
// This computer's providers unknown: remember nothing rather than a pick it may not run.
|
|
80
|
-
}
|
|
81
|
-
return rememberableChain(chain, { onServer: true, localProviders });
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* The prefs' `lastModelChain` entries for a chain (core `ModelChainEntry` shape, account included).
|
|
86
|
-
*
|
|
87
|
-
* @param chain - The chain.
|
|
88
|
-
*/
|
|
89
|
-
export function lastModelChainOf(chain: readonly ModelPickRef[]): ComposerRememberedModel[] {
|
|
90
|
-
return chain.map((e) => ({
|
|
91
|
-
provider: e.providerKey,
|
|
92
|
-
model: e.modelId,
|
|
93
|
-
...(e.account ? { account: e.account } : {}),
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/** Sets the app's default model (the next new chat's); `persist: false` holds it for this window only. */
|
|
98
|
-
export type SetDefaultModel = (pick: ModelPickRef, opts?: { persist?: boolean }) => void;
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Commits a picked chain, the ONE path every model picker takes: the
|
|
102
|
-
* session's model (when there is one), then the app's default (the next
|
|
103
|
-
* chat's model and `lastModelChain`) when this computer can run it. A draft
|
|
104
|
-
* whose pick only a server can run still launches under it: held for this
|
|
105
|
-
* window, not remembered. `remember: false` (a side chat's pick) only sets
|
|
106
|
-
* the session's model.
|
|
107
|
-
*
|
|
108
|
-
* @param host - The host's `controls`, `models` and `prefs`.
|
|
109
|
-
* @param target - The session (`null`: a draft) and the host it runs on.
|
|
110
|
-
* @param chain - The picked chain, primary first.
|
|
111
|
-
* @param setDefaultModel - Sets the app's default model.
|
|
112
|
-
* @param options - `remember: false` to leave the default alone.
|
|
113
|
-
*/
|
|
114
|
-
export async function commitModelPick(
|
|
115
|
-
host: { controls?: ComposerControls; models?: ComposerModels; prefs?: ComposerPrefs },
|
|
116
|
-
target: { sessionId: string | null; hostId: string | null | undefined },
|
|
117
|
-
chain: readonly ModelPickRef[],
|
|
118
|
-
setDefaultModel: SetDefaultModel,
|
|
119
|
-
{ remember = true }: { remember?: boolean } = {},
|
|
120
|
-
): Promise<void> {
|
|
121
|
-
const primary = chain[0];
|
|
122
|
-
if (!primary) return;
|
|
123
|
-
if (target.sessionId) await host.controls?.setModel?.(target.sessionId, primary, chain.slice(1));
|
|
124
|
-
if (!remember) return;
|
|
125
|
-
const remembered = await rememberedPick(chain, target.hostId, host.models);
|
|
126
|
-
if (remembered?.[0]) {
|
|
127
|
-
setDefaultModel(remembered[0]);
|
|
128
|
-
await host.prefs?.set({ lastModelChain: lastModelChainOf(remembered) });
|
|
129
|
-
} else if (!target.sessionId) {
|
|
130
|
-
setDefaultModel(primary, { persist: false });
|
|
131
|
-
}
|
|
132
|
-
}
|