zidane-ui 9.1.1 → 9.1.4
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 +11 -10
- 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/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/demos/index.js +1 -1
- package/dist/onboarding/index.js +5 -5
- package/dist/onboarding/steps/ConnectStep.js +1 -1
- package/dist/onboarding/steps/ConnectorsStep.js +1 -1
- package/dist/onboarding/steps/ExtensionsStep.js +1 -1
- package/dist/onboarding/steps/ReadyStep.js +2 -2
- package/dist/onboarding/steps/SkillsStep.js +1 -1
- package/dist/onboarding/steps/connect/ProviderPanel.js +1 -1
- package/dist/session/headless/index.js +1 -1
- 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 +2 -2
- package/dist/settings/sections/models/model-test.js +1 -1
- package/dist/settings/sections/skills/SkillsSection.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,373 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The chat layer's strings, on top of the design system's (`labels.tsx`).
|
|
3
|
-
* One flat dictionary so an app overrides any of them with one
|
|
4
|
-
* `<LabelsProvider>`; the headless helpers take it as an argument.
|
|
5
|
-
*/
|
|
6
|
-
import { RUN_WAITING_LABEL, runRetryingLabel } from 'zidane/chat/pure';
|
|
7
|
-
|
|
8
|
-
import { DEFAULT_LABELS } from '../../labels';
|
|
9
|
-
import { TRANSCRIPT_LABELS } from './transcript-labels';
|
|
10
|
-
|
|
11
|
-
/** The default English strings of the chat layer, merged over the design system's labels. Override any of them through {@link ChatProvider}. */
|
|
12
|
-
export const DEFAULT_CHAT_LABELS = {
|
|
13
|
-
...DEFAULT_LABELS,
|
|
14
|
-
...TRANSCRIPT_LABELS,
|
|
15
|
-
// Session list
|
|
16
|
-
today: 'Today',
|
|
17
|
-
yesterday: 'Yesterday',
|
|
18
|
-
months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] as readonly string[],
|
|
19
|
-
justNow: 'now',
|
|
20
|
-
chats: 'Chats',
|
|
21
|
-
favorites: 'Favorites',
|
|
22
|
-
addFavorite: 'Add to favorites',
|
|
23
|
-
removeFavorite: 'Remove from favorites',
|
|
24
|
-
stateRunning: 'Running',
|
|
25
|
-
stateCompleted: 'Completed',
|
|
26
|
-
stateError: 'Error',
|
|
27
|
-
stateIdle: 'Idle',
|
|
28
|
-
archived: 'Archived',
|
|
29
|
-
sessionActions: 'Open chat actions',
|
|
30
|
-
moreActions: 'More actions',
|
|
31
|
-
archive: 'Archive',
|
|
32
|
-
unarchive: 'Unarchive',
|
|
33
|
-
delete: 'Delete',
|
|
34
|
-
showMore: 'Show more',
|
|
35
|
-
expandGroup: (label: string) => `Expand ${label}`,
|
|
36
|
-
collapseGroup: (label: string) => `Collapse ${label}`,
|
|
37
|
-
openGroup: (label: string) => `Open ${label}`,
|
|
38
|
-
newSessionIn: (label: string) => `New session in ${label}`,
|
|
39
|
-
newSession: 'New session',
|
|
40
|
-
searchSessions: 'Search sessions',
|
|
41
|
-
noSessions: 'No sessions yet',
|
|
42
|
-
noMatches: (query: string) => `No sessions match "${query}"`,
|
|
43
|
-
sessions: 'Sessions',
|
|
44
|
-
// Status dot
|
|
45
|
-
dotIdle: 'Idle',
|
|
46
|
-
dotRunning: 'Running',
|
|
47
|
-
dotPending: 'Pending approval',
|
|
48
|
-
dotCompleted: 'Completed',
|
|
49
|
-
dotError: 'Errored',
|
|
50
|
-
dotAttention: 'Awaiting input',
|
|
51
|
-
dotAttached: 'Attached',
|
|
52
|
-
// Run time estimates: the chip on a running session's row and a subagent's header
|
|
53
|
-
estimateTitle: (left: string) => `About ${left.replace(/^~/, '')} left (estimated)`,
|
|
54
|
-
estimatePausedTitle: (left: string) => `About ${left.replace(/^~/, '')} left. Paused while the run waits for you`,
|
|
55
|
-
estimateDue: 'almost done',
|
|
56
|
-
estimateDueTitle: 'Past its estimate, so it should end soon',
|
|
57
|
-
estimateOver: 'over',
|
|
58
|
-
estimateOverTitle: 'Taking longer than estimated',
|
|
59
|
-
runningFor: (elapsed: string) => `Running for ${elapsed}`,
|
|
60
|
-
// Transcript
|
|
61
|
-
agent: 'Agent',
|
|
62
|
-
stepRunning: 'running',
|
|
63
|
-
stepFailed: 'failed',
|
|
64
|
-
stepDone: 'done',
|
|
65
|
-
// Reasoning rows
|
|
66
|
-
thinkingLive: 'Thinking…',
|
|
67
|
-
thoughtFor: (seconds: number) => `Thought for ${seconds}s`,
|
|
68
|
-
thoughts: 'Thoughts',
|
|
69
|
-
thoughtTimes: (count: number) => `Thought ${count} times`,
|
|
70
|
-
// Run status, in the live work row's header (the TUI's words: `zidane/chat/pure`)
|
|
71
|
-
runWaiting: RUN_WAITING_LABEL,
|
|
72
|
-
runRetrying: (attempt: number, max: number, source?: string) => runRetryingLabel({ attempt, max, source }),
|
|
73
|
-
// Run receipt
|
|
74
|
-
runReceipt: 'Run receipt',
|
|
75
|
-
receiptAgent: 'Agent that ran this turn',
|
|
76
|
-
receiptAgentSwitched: 'Agent that ran this turn, switched from the previous run',
|
|
77
|
-
receiptModel: 'Model that ran this turn',
|
|
78
|
-
receiptModelOthers: (others: number) =>
|
|
79
|
-
`Model that wrote the last reply. ${others} other model${others === 1 ? '' : 's'} ran earlier turns.`,
|
|
80
|
-
receiptDuration: 'Run time, tools included',
|
|
81
|
-
receiptTurns: (turns: number) => `${turns} model call${turns === 1 ? '' : 's'} in this run`,
|
|
82
|
-
receiptCost: 'Run cost',
|
|
83
|
-
receiptTokens: (sent: string, received: string) => `${sent} tokens sent, ${received} received`,
|
|
84
|
-
receiptSpeed: 'Output speed while streaming',
|
|
85
|
-
// Run failures
|
|
86
|
-
stopped: 'Stopped',
|
|
87
|
-
stoppedByYou: 'Stopped by you',
|
|
88
|
-
retry: 'Retry',
|
|
89
|
-
retryHint: 'Send your message again',
|
|
90
|
-
continueRun: 'Continue',
|
|
91
|
-
continueHint: 'Ask the model to continue',
|
|
92
|
-
resetsAt: (time: string) => `Resets at ${time}`,
|
|
93
|
-
// Session events
|
|
94
|
-
sessionEventLabel: (title: string, verb: string, needsAttention: boolean) =>
|
|
95
|
-
`${title} ${verb}${needsAttention ? '. Click to answer' : ''}`,
|
|
96
|
-
clickToAnswer: 'Answer',
|
|
97
|
-
openSession: 'open →',
|
|
98
|
-
// Command, spawn and compaction rows
|
|
99
|
-
commandDetail: 'detail',
|
|
100
|
-
spawnTask: 'Task',
|
|
101
|
-
spawnResumes: (childId: string) => `resumes ${childId}`,
|
|
102
|
-
turnsCompacted: 'turns compacted',
|
|
103
|
-
// Tool rows
|
|
104
|
-
stepWaiting: 'waiting',
|
|
105
|
-
/** A running call of a batch a durable run resumed after a process death (`StreamEvent.resuming`). */
|
|
106
|
-
stepResuming: 'resuming',
|
|
107
|
-
waitingForSlot: (max: number) => `Starts when one of the ${max} running agents finishes`,
|
|
108
|
-
autoDenied: 'auto-denied',
|
|
109
|
-
modelVerdictTitle: (approved: boolean, model: string, confidence: string | null) =>
|
|
110
|
-
`${approved ? 'Approved' : 'Blocked'} by the decision model ${model}${confidence ? ` (confidence ${confidence})` : ''}`,
|
|
111
|
-
loadFullOutput: 'Load full output',
|
|
112
|
-
loadingFullOutput: 'Loading full output…',
|
|
113
|
-
showOutput: 'Show output',
|
|
114
|
-
inputCaption: 'Input',
|
|
115
|
-
outputCaption: 'Output',
|
|
116
|
-
openNamedSession: (title: string) => `Open ${title}`,
|
|
117
|
-
/** A Mermaid diagram's accessible name, and its type when Pele detected one (`flowchart`). */
|
|
118
|
-
diagram: (type: string | null) => (type ? `${type} diagram` : 'Diagram'),
|
|
119
|
-
/** The diagram frame's toggle to its Mermaid source. */
|
|
120
|
-
showDiagramSource: 'Show source',
|
|
121
|
-
/** The diagram frame's toggle back to the drawing. */
|
|
122
|
-
showDiagram: 'Show diagram',
|
|
123
|
-
/** The diagram frame's zoom controls. */
|
|
124
|
-
zoomInDiagram: 'Zoom in',
|
|
125
|
-
zoomOutDiagram: 'Zoom out',
|
|
126
|
-
fitDiagram: 'Fit diagram',
|
|
127
|
-
/** Copy button of a diagram frame. */
|
|
128
|
-
copyDiagramSource: 'Copy diagram source',
|
|
129
|
-
/** Under a fence that could not be drawn; `at` is `line 3, column 7` or empty. */
|
|
130
|
-
diagramError: (message: string, at: string) =>
|
|
131
|
-
at ? `Diagram not drawn (${at}): ${message}` : `Diagram not drawn: ${message}`,
|
|
132
|
-
/** Where a diagram error is. */
|
|
133
|
-
diagramErrorAt: (line: number, column: number) => (column ? `line ${line}, column ${column}` : `line ${line}`),
|
|
134
|
-
// `!` shell rows
|
|
135
|
-
stopCommand: 'Stop command',
|
|
136
|
-
shellCancelled: 'cancelled',
|
|
137
|
-
shellKilled: 'killed',
|
|
138
|
-
shellExit: (code: number) => `exit ${code}`,
|
|
139
|
-
earlierLines: (count: number) => `… (+${count} earlier lines)`,
|
|
140
|
-
// Folds
|
|
141
|
-
working: 'Working',
|
|
142
|
-
foldSteps: (count: number) => `${count} steps`,
|
|
143
|
-
foldOutcomes: (ok: number, failed: number) => (failed > 0 ? `${ok} succeeded, ${failed} failed` : `${ok} succeeded`),
|
|
144
|
-
workerModel: 'Model',
|
|
145
|
-
workerType: 'Type',
|
|
146
|
-
workerContinues: 'Continues',
|
|
147
|
-
workerSystemPrompt: 'System prompt',
|
|
148
|
-
workerSystemReplaced: 'replaced for this worker',
|
|
149
|
-
showSystemPrompt: 'Show system prompt',
|
|
150
|
-
earlierMessages: (count: number) => `${count} earlier message${count === 1 ? '' : 's'}`,
|
|
151
|
-
// The fold's attachments strip
|
|
152
|
-
toolAttachments: 'Tool attachments',
|
|
153
|
-
moreAttachments: (count: number) => `+${count}`,
|
|
154
|
-
showMoreAttachments: (count: number) => `Show ${count} more attachment${count === 1 ? '' : 's'}`,
|
|
155
|
-
// Prompt echo
|
|
156
|
-
viewAttachment: (name: string) => `View ${name}`,
|
|
157
|
-
// Image generation (`generate_image` rows)
|
|
158
|
-
generatingImage: (model: string | null) => (model ? `Generating with ${model}…` : 'Generating image…'),
|
|
159
|
-
generatingImages: (count: number, model: string | null) =>
|
|
160
|
-
model ? `Generating ${count} images with ${model}…` : `Generating ${count} images…`,
|
|
161
|
-
generatedImage: 'Generated image',
|
|
162
|
-
openImageFile: (path: string) => `Open ${path}`,
|
|
163
|
-
// Host transcript
|
|
164
|
-
transcriptLoading: 'Loading conversation…',
|
|
165
|
-
earlierHistory: 'Earlier messages',
|
|
166
|
-
loadingEarlierMessages: 'Loading earlier messages',
|
|
167
|
-
loadEarlierHistory: 'Load earlier history',
|
|
168
|
-
loadingEarlierHistory: 'Loading earlier history…',
|
|
169
|
-
// Composer
|
|
170
|
-
composerLabel: 'Message',
|
|
171
|
-
composerPlaceholder: 'Message the agent…',
|
|
172
|
-
sendMessage: 'Send message',
|
|
173
|
-
sendHint: 'Send (Enter)',
|
|
174
|
-
stopRun: 'Stop',
|
|
175
|
-
stopHint: 'Stop the run (Esc)',
|
|
176
|
-
steerMessage: 'Steer the run',
|
|
177
|
-
steerHint: 'Add to the running turn (Enter)',
|
|
178
|
-
queueMessage: 'Queue message',
|
|
179
|
-
queueHint: 'Send when the run ends (Enter)',
|
|
180
|
-
attachFile: 'Attach file',
|
|
181
|
-
removeAttachment: (name: string) => `Remove ${name}`,
|
|
182
|
-
attachments: 'Attachments',
|
|
183
|
-
previewTooLarge: (name: string, size: string) => `${name} (${size}) is too large to preview.`,
|
|
184
|
-
previewFailed: (name: string) => `Couldn't load ${name}.`,
|
|
185
|
-
attachmentEmpty: (name: string) => `${name} is empty.`,
|
|
186
|
-
attachmentTooLarge: (name: string, size: string, limit: string) =>
|
|
187
|
-
`${name} is too large (${size}). The limit is ${limit}.`,
|
|
188
|
-
attachmentExportPdf: (name: string) => `${name} can't be attached. Export it as PDF first.`,
|
|
189
|
-
attachmentUnreadableImage: (name: string) => `${name} can't be read here. Export it as PNG or JPEG.`,
|
|
190
|
-
attachmentUnsupported: (name: string) => `${name} can't be attached. Only images, PDFs and text files can.`,
|
|
191
|
-
attachmentReadFailed: (name: string) => `${name} could not be read.`,
|
|
192
|
-
attachmentTitle: (name: string, detail: string) => `${name} (${detail})`,
|
|
193
|
-
attachmentNotices: 'Files not attached',
|
|
194
|
-
mentionSuggestions: 'Mentions',
|
|
195
|
-
commandSuggestions: 'Commands',
|
|
196
|
-
noSuggestions: 'No matches',
|
|
197
|
-
composerBadges: 'Composer badges',
|
|
198
|
-
// Agent, model and model options pickers (the desktop app's wording)
|
|
199
|
-
switchAgent: 'Switch agent',
|
|
200
|
-
defaultAgent: 'Default agent',
|
|
201
|
-
agentProfiles: 'Agent profiles',
|
|
202
|
-
switchingAgent: 'switching…',
|
|
203
|
-
agentDraftNote: 'Applies to your next chat.',
|
|
204
|
-
switchModel: 'Switch model',
|
|
205
|
-
chooseModel: 'Choose model',
|
|
206
|
-
// The model pill's tooltip: the chain, then how to change it
|
|
207
|
-
modelChain: 'Model chain',
|
|
208
|
-
modelForNextChat: 'For your next chat',
|
|
209
|
-
modelServing: (picked: string, serving: string) =>
|
|
210
|
-
`${picked} failed this run, so ${serving} took over. The next run tries ${picked} again.`,
|
|
211
|
-
modelServingFallback: 'The picked model',
|
|
212
|
-
modelChainNoModel: 'No model picked yet',
|
|
213
|
-
searchModels: 'Search models',
|
|
214
|
-
searchModelsPlaceholder: 'Search models…',
|
|
215
|
-
modelsShowLegacy: 'Show legacy models',
|
|
216
|
-
modelsShowLegacyHint: 'Show legacy models (⌥L)',
|
|
217
|
-
modelsLegacy: 'Legacy',
|
|
218
|
-
modelsJumpToProvider: 'Jump to provider',
|
|
219
|
-
modelsJumpHint: (provider: string, digit: number | null) => (digit ? `${provider} (⌘${digit})` : provider),
|
|
220
|
-
modelsLoading: 'Loading…',
|
|
221
|
-
modelsLoadFailed: (error: string) => `Failed to load models: ${error}`,
|
|
222
|
-
modelsNoProviders: 'No provider is signed in. Sign in under Settings → Accounts.',
|
|
223
|
-
modelsNoMatch: (query: string) => `No model matches "${query}".`,
|
|
224
|
-
modelsTypeAnId: 'Type any model id to use it. Put a provider first to pick one, for example "xai grok-9".',
|
|
225
|
-
modelsInUse: 'In use',
|
|
226
|
-
modelsChatTab: 'Chat',
|
|
227
|
-
modelsImageTab: 'Image',
|
|
228
|
-
modelKinds: 'Model kind',
|
|
229
|
-
imageModelsPill: 'Image model',
|
|
230
|
-
imageModelsNone:
|
|
231
|
-
'No connected provider generates images. Connect OpenRouter, Google Gemini, xAI, or OpenAI with a platform API key.',
|
|
232
|
-
imageModelReferences: 'reference images',
|
|
233
|
-
imageModelReferencesHint: 'Edits or matches reference images',
|
|
234
|
-
imageModelTransparency: 'transparency',
|
|
235
|
-
imageModelTransparencyHint: 'Can make a transparent background',
|
|
236
|
-
modelsCustomId: 'Custom id',
|
|
237
|
-
modelsShownOf: (shown: number, total: number) => `${shown} of ${total}`,
|
|
238
|
-
modelsLegacyHidden: (count: number) => `${count} legacy hidden`,
|
|
239
|
-
modelsSelected: (count: number) => `${count} selected`,
|
|
240
|
-
pickModel: 'pick',
|
|
241
|
-
modelPrimary: 'primary',
|
|
242
|
-
modelFallback: 'fallback',
|
|
243
|
-
modelFallbackHint: 'Tab or shift+click adds or removes a fallback',
|
|
244
|
-
modelChainOrderHint: 'Fallbacks run in this order. ctrl+shift+↑↓ moves the highlighted row.',
|
|
245
|
-
modelPrimaryHint: 'Primary model',
|
|
246
|
-
modelFallbackPosition: (n: number) => `Fallback #${n}`,
|
|
247
|
-
modelRemovePrimary: 'Remove primary model',
|
|
248
|
-
modelRemoveFallback: (n: number) => `Remove fallback #${n}`,
|
|
249
|
-
modelRemoveFromChain: 'Remove from chain',
|
|
250
|
-
modelAccountBlocked: (provider: string) =>
|
|
251
|
-
`Another ${provider} account is in use. Picking this one switches the chain to it.`,
|
|
252
|
-
modelLegacy: 'legacy',
|
|
253
|
-
modelLegacyHint: 'Newer models exist in this family',
|
|
254
|
-
modelUnavailable: 'unavailable',
|
|
255
|
-
modelNotInCatalog: 'not in catalog',
|
|
256
|
-
modelNotInCatalogHint: 'Used as typed. No details are known for this id.',
|
|
257
|
-
modelVia: 'via',
|
|
258
|
-
modelViaHint: (modelId: string, provider: string) => `${modelId} via ${provider}`,
|
|
259
|
-
modelInUse: 'in use',
|
|
260
|
-
modelReasoning: 'reasoning',
|
|
261
|
-
modelReasoningHint: 'Can think before answering',
|
|
262
|
-
contextWindow: 'Context window',
|
|
263
|
-
modelOptions: 'Model options',
|
|
264
|
-
setModelOptions: 'Set model options',
|
|
265
|
-
modelOptionsHint: 'Reasoning effort and model options',
|
|
266
|
-
modelOptionsEmpty: 'Options',
|
|
267
|
-
modelFeatures: 'Features',
|
|
268
|
-
reasoningEffort: 'Reasoning effort',
|
|
269
|
-
effortLevel: (level: string) => level,
|
|
270
|
-
// Interactions (exact desktop wording: the inbox cards render through these)
|
|
271
|
-
interactionPlan: 'Plan',
|
|
272
|
-
interactionQuestion: 'Question',
|
|
273
|
-
questionCount: (count: number) => `${count} questions`,
|
|
274
|
-
interactionsLabel: 'Requests from the agent',
|
|
275
|
-
inboxEmpty: 'Nothing waiting on you',
|
|
276
|
-
inboxPreviousSession: 'previous session',
|
|
277
|
-
unsupportedInteraction: (tool: string) => `The agent is waiting on ${tool}, which this view cannot answer.`,
|
|
278
|
-
planRejectNote: 'Rejecting stops the run. Add a note so the agent knows why.',
|
|
279
|
-
planReviseNote: 'Say what should change. The agent sends back a revised plan.',
|
|
280
|
-
planRejectPlaceholder: 'Why you reject this plan (optional)',
|
|
281
|
-
planRevisePlaceholder: 'What should change (optional)',
|
|
282
|
-
back: 'Back',
|
|
283
|
-
planRejectAndStop: 'Reject and stop',
|
|
284
|
-
planSendRevision: 'Send revision',
|
|
285
|
-
planReject: 'Reject…',
|
|
286
|
-
planRevise: 'Revise…',
|
|
287
|
-
planApprove: 'Approve',
|
|
288
|
-
additionalInstructions: 'Additional instructions',
|
|
289
|
-
additionalInstructionsHint: 'optional, refines or overrides the answers',
|
|
290
|
-
additionalInstructionsPlaceholder: 'e.g. keep the old endpoint alive until the migration lands',
|
|
291
|
-
dismiss: 'Dismiss',
|
|
292
|
-
dismissHint: 'Continue without answering',
|
|
293
|
-
sendAnswers: (count: number) => `Send answer${count === 1 ? '' : 's'}`,
|
|
294
|
-
requiredHint: 'Required',
|
|
295
|
-
requiredMark: 'required',
|
|
296
|
-
pickOneOrMore: 'Pick one or more.',
|
|
297
|
-
noAnswer: 'No answer',
|
|
298
|
-
confirmYes: 'yes',
|
|
299
|
-
confirmNo: 'no',
|
|
300
|
-
// Session filter menu (the desktop app's sidebar faders menu)
|
|
301
|
-
filterSessions: 'Filter sessions',
|
|
302
|
-
filterView: 'View',
|
|
303
|
-
filterStatus: 'Status',
|
|
304
|
-
filterProject: 'Project',
|
|
305
|
-
filterActivity: 'Last activity',
|
|
306
|
-
filterSort: 'Sort by',
|
|
307
|
-
filterViews: {
|
|
308
|
-
project: 'Per directory',
|
|
309
|
-
host: 'Per host',
|
|
310
|
-
none: 'All projects',
|
|
311
|
-
date: 'By date',
|
|
312
|
-
state: 'By state',
|
|
313
|
-
agent: 'By agent',
|
|
314
|
-
},
|
|
315
|
-
filterStatuses: { active: 'Active', archived: 'Archived', all: 'All' },
|
|
316
|
-
filterActivities: { '1d': '1d', '3d': '3d', '7d': '7d', '30d': '30d', all: 'All' },
|
|
317
|
-
filterSorts: { recency: 'Recency', createdTime: 'Created time', alphabetical: 'Alphabetically' },
|
|
318
|
-
filterAllProjects: 'All',
|
|
319
|
-
filterAllProjectsOption: 'All projects',
|
|
320
|
-
filterNoProjects: 'No projects yet',
|
|
321
|
-
filterAgent: 'Agent',
|
|
322
|
-
filterAllAgents: 'All',
|
|
323
|
-
filterAllAgentsOption: 'All agents',
|
|
324
|
-
filterNoAgents: 'No agents yet',
|
|
325
|
-
/** A contributed select or multi filter with nothing picked. */
|
|
326
|
-
filterAny: 'Any',
|
|
327
|
-
/** A contributed filter's value: how many options are picked. */
|
|
328
|
-
filterPicked: (count: number) => `${count} picked`,
|
|
329
|
-
/** A space's own grouping or sort, among the view's choices. */
|
|
330
|
-
filterSpaceDefault: 'Space default',
|
|
331
|
-
filterSaveView: 'Save view as space',
|
|
332
|
-
// Hosts: the sidebar's host headers, status dots and the new-chat host picker (the desktop app's wording)
|
|
333
|
-
hostStatuses: {
|
|
334
|
-
local: 'connected',
|
|
335
|
-
connected: 'connected',
|
|
336
|
-
connecting: 'connecting',
|
|
337
|
-
reconnecting: 'reconnecting',
|
|
338
|
-
offline: 'offline',
|
|
339
|
-
'auth-refused': 'token refused',
|
|
340
|
-
identity: 'different server',
|
|
341
|
-
'version-mismatch': 'version mismatch',
|
|
342
|
-
},
|
|
343
|
-
hostStatusError: (status: string, error: string) => `${status}: ${error}`,
|
|
344
|
-
hostBadgeTitle: (host: string, status: string) => `${host}: ${status}`,
|
|
345
|
-
hostOpenSettings: (host: string) => `Open ${host}'s settings`,
|
|
346
|
-
hostExpand: (name: string) => `Expand ${name}`,
|
|
347
|
-
hostCollapse: (name: string) => `Collapse ${name}`,
|
|
348
|
-
hostPicker: 'Choose the host for this chat',
|
|
349
|
-
hostRunsOn: (name: string) => `Runs on: ${name}`,
|
|
350
|
-
hostRunsOnSection: 'Runs on',
|
|
351
|
-
hostThisMachine: 'This machine',
|
|
352
|
-
// Context orb and breakdown (the desktop app's composer)
|
|
353
|
-
contextSummary: (used: string, window: string, pct: number) => `Context: ${used} / ${window} (${pct}%)`,
|
|
354
|
-
contextSummaryCost: (summary: string, cost: string) => `${summary}, ${cost} this session`,
|
|
355
|
-
contextDetail: 'Context window detail',
|
|
356
|
-
contextAutoCompact: (pct: number) => `Auto-compact at ${pct}%`,
|
|
357
|
-
contextSessionCost: 'Session cost',
|
|
358
|
-
contextRunCount: (runs: number) => `${runs} run${runs === 1 ? '' : 's'}`,
|
|
359
|
-
contextNoBreakdown: 'The breakdown shows after the first run.',
|
|
360
|
-
contextDeferred: 'Deferred',
|
|
361
|
-
contextActiveSkills: 'Active skills',
|
|
362
|
-
contextLastTurn: 'Last turn',
|
|
363
|
-
contextCacheRead: 'Cached (read)',
|
|
364
|
-
contextCacheWrite: 'Cache write',
|
|
365
|
-
contextFreshInput: 'Fresh input',
|
|
366
|
-
contextOutput: 'Output',
|
|
367
|
-
contextEstimated: '~ Estimated. This provider does not report exact counts.',
|
|
368
|
-
contextClickToCopy: (hasDescription: boolean) => `click to copy ${hasDescription ? 'description' : 'name'}`,
|
|
369
|
-
contextCopied: 'Copied',
|
|
370
|
-
};
|
|
371
|
-
|
|
372
|
-
/** The shape of the chat label dictionary: every key of {@link DEFAULT_CHAT_LABELS}. Some values are functions that build a string. */
|
|
373
|
-
export type ChatLabels = typeof DEFAULT_CHAT_LABELS;
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Split long markdown into independently parseable chunks.
|
|
3
|
-
*
|
|
4
|
-
* A boundary is a blank line followed by a line that starts at column 0,
|
|
5
|
-
* outside a fenced code block: nothing can continue across it (an indented
|
|
6
|
-
* line after a blank could still belong to a list item, a fence spans
|
|
7
|
-
* blanks). What it changes is cosmetic at worst: a loose list becomes two
|
|
8
|
-
* adjacent lists (an ordered one keeps its numbering through `start`).
|
|
9
|
-
*
|
|
10
|
-
* Boundaries only depend on the text before them and the line right after,
|
|
11
|
-
* so while a reply streams every chunk but the last keeps its exact text,
|
|
12
|
-
* and its memoised render.
|
|
13
|
-
*
|
|
14
|
-
* Fences open and close by core's rules (`parseFenceOpen` / `isFenceClose`),
|
|
15
|
-
* so a chunk never ends inside a code block the parse sees as still open.
|
|
16
|
-
*/
|
|
17
|
-
import { type FenceOpen, isFenceClose, parseFenceOpen } from 'zidane/chat/pure';
|
|
18
|
-
|
|
19
|
-
/** Below this, one parse is cheap enough: no chunking at all. */
|
|
20
|
-
export const CHUNK_THRESHOLD = 6000;
|
|
21
|
-
/** A chunk closes at the first boundary past this size. */
|
|
22
|
-
const CHUNK_TARGET = 3000;
|
|
23
|
-
|
|
24
|
-
/** The fence open after `line`, given the one open before it. */
|
|
25
|
-
function stepFence(fence: FenceOpen | null, line: string): FenceOpen | null {
|
|
26
|
-
if (fence) return isFenceClose(line, fence.char, fence.length) ? null : fence;
|
|
27
|
-
return parseFenceOpen(line);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* While a reply streams it is re-rendered on every delta (many per second),
|
|
32
|
-
* so it splits much finer: everything above the growing paragraph stays a
|
|
33
|
-
* memoised chunk and only the tail is parsed again.
|
|
34
|
-
*/
|
|
35
|
-
const STREAMING_THRESHOLD = 1200;
|
|
36
|
-
const STREAMING_TARGET = 600;
|
|
37
|
-
|
|
38
|
-
/** A last line of one or two backticks or tildes: a fence still arriving. */
|
|
39
|
-
const PARTIAL_FENCE = /\n {0,3}(?:`{1,2}|~{1,2})$/;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Holds back a fence still arriving at the end of a streaming reply. Text
|
|
43
|
-
* reveals a few characters a frame, so a closing ```` ``` ```` lands as `` ` ``,
|
|
44
|
-
* then ` `` `: until the third, an open code block shows the partial
|
|
45
|
-
* marker as one more line of code, then drops it, and the reply shrinks by
|
|
46
|
-
* a line under a view following its bottom. A frame later the whole fence
|
|
47
|
-
* is there.
|
|
48
|
-
*
|
|
49
|
-
* @param text - The reply so far.
|
|
50
|
-
*/
|
|
51
|
-
export function withoutPartialFence(text: string): string {
|
|
52
|
-
return text.replace(PARTIAL_FENCE, '\n');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/** A streaming chunk's fence that has not closed yet, apart from the text before it. */
|
|
56
|
-
export interface OpenFence {
|
|
57
|
-
/** The markdown before the fence (may be empty). */
|
|
58
|
-
before: string;
|
|
59
|
-
/** The fence's language, as the parsed block names it (`plaintext` when the info string names none). */
|
|
60
|
-
language: string;
|
|
61
|
-
/** The code so far. */
|
|
62
|
-
code: string;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* The fence a streaming chunk ends inside, when it opened at column 0 (an
|
|
67
|
-
* indented one may belong to a list item, which only the parse can tell).
|
|
68
|
-
* The open fence is the whole tail of the chunk, so parsing it again on
|
|
69
|
-
* every delta re-parses a growing code block for nothing: the code block can
|
|
70
|
-
* draw the text as is, and the chunk parses normally once the fence closes.
|
|
71
|
-
*
|
|
72
|
-
* @param chunk - The last chunk of a streaming reply.
|
|
73
|
-
* @returns The open fence, or `null` when the chunk does not end inside one.
|
|
74
|
-
*/
|
|
75
|
-
export function openFenceOf(chunk: string): OpenFence | null {
|
|
76
|
-
const lines = chunk.split('\n');
|
|
77
|
-
let fence: FenceOpen | null = null;
|
|
78
|
-
let at = -1;
|
|
79
|
-
for (let i = 0; i < lines.length; i++) {
|
|
80
|
-
const next = stepFence(fence, lines[i]!);
|
|
81
|
-
if (next && !fence) at = i;
|
|
82
|
-
fence = next;
|
|
83
|
-
}
|
|
84
|
-
if (fence === null || fence.indent !== 0) return null;
|
|
85
|
-
const info = lines[at]!.slice(fence.length);
|
|
86
|
-
// The parse's class is `language-<first word of the info string>`, read back as its leading \w run.
|
|
87
|
-
const language = /^(\w+)/.exec(info.trim().split(/\s/)[0] ?? '')?.[1] ?? 'plaintext';
|
|
88
|
-
return {
|
|
89
|
-
before: lines.slice(0, at).join('\n'),
|
|
90
|
-
language,
|
|
91
|
-
code: lines
|
|
92
|
-
.slice(at + 1)
|
|
93
|
-
.join('\n')
|
|
94
|
-
.replace(/\n$/, ''),
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Splits markdown into chunks that parse on their own, so a long or streaming reply can re-render only its last chunk. Text shorter than the threshold comes back as one chunk.
|
|
100
|
-
*
|
|
101
|
-
* @param text - The markdown to split.
|
|
102
|
-
* @param opts - Split options. `streaming: true` uses finer chunks for a reply that is still growing.
|
|
103
|
-
*/
|
|
104
|
-
export function splitMarkdown(text: string, opts: { streaming?: boolean } = {}): string[] {
|
|
105
|
-
const threshold = opts.streaming ? STREAMING_THRESHOLD : CHUNK_THRESHOLD;
|
|
106
|
-
const target = opts.streaming ? STREAMING_TARGET : CHUNK_TARGET;
|
|
107
|
-
if (text.length < threshold) return [text];
|
|
108
|
-
const lines = text.split('\n');
|
|
109
|
-
const chunks: string[] = [];
|
|
110
|
-
let start = 0;
|
|
111
|
-
let size = 0;
|
|
112
|
-
let fence: FenceOpen | null = null;
|
|
113
|
-
for (let i = 0; i < lines.length; i++) {
|
|
114
|
-
const line = lines[i]!;
|
|
115
|
-
fence = stepFence(fence, line);
|
|
116
|
-
size += line.length + 1;
|
|
117
|
-
const next = lines[i + 1];
|
|
118
|
-
if (
|
|
119
|
-
fence === null &&
|
|
120
|
-
size >= target &&
|
|
121
|
-
line.trim() === '' &&
|
|
122
|
-
next !== undefined &&
|
|
123
|
-
next.length > 0 &&
|
|
124
|
-
next[0] !== ' ' &&
|
|
125
|
-
next[0] !== '\t'
|
|
126
|
-
) {
|
|
127
|
-
chunks.push(lines.slice(start, i + 1).join('\n'));
|
|
128
|
-
start = i + 1;
|
|
129
|
-
size = 0;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
chunks.push(lines.slice(start).join('\n'));
|
|
133
|
-
return chunks;
|
|
134
|
-
}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What a prose chip points at (a file or folder on disk, or a branch), asked
|
|
3
|
-
* of the host (`ChatHost.paths`) in batches.
|
|
4
|
-
*
|
|
5
|
-
* Every chip mounting in the same frame shares one `resolve` call per
|
|
6
|
-
* folder; answers are cached per folder and text so scrolling history back
|
|
7
|
-
* into view costs nothing. An answer older than `STALE_MS` is shown while it
|
|
8
|
-
* is checked again (the agent may have created or removed the file since),
|
|
9
|
-
* and a folder the host says moved (a commit, a checkout) is checked afresh.
|
|
10
|
-
*/
|
|
11
|
-
import type { ChatPaths, ChatResolvedPath } from './transcript-host';
|
|
12
|
-
|
|
13
|
-
/** `null`: not known yet, or the folder can't be checked (sandboxes). */
|
|
14
|
-
export type ChipResolution = ChatResolvedPath | null;
|
|
15
|
-
|
|
16
|
-
const STALE_MS = 15_000;
|
|
17
|
-
|
|
18
|
-
interface Entry {
|
|
19
|
-
value: ChipResolution;
|
|
20
|
-
at: number;
|
|
21
|
-
inFlight: boolean;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/** Options for {@link createPathResolver}. */
|
|
25
|
-
export interface PathResolverOptions {
|
|
26
|
-
/** Marks a first ask (an answer may resize the chip); the returned function ends it (`beginChipWork`). */
|
|
27
|
-
beginWork?: () => () => void;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** The chip answers of one host. */
|
|
31
|
-
export interface PathResolver {
|
|
32
|
-
/** The current answer for `text` in `cwd`. */
|
|
33
|
-
get(cwd: string, text: string): ChipResolution;
|
|
34
|
-
/** Asks for `text` in `cwd` unless an answer is fresh or on the wire. */
|
|
35
|
-
request(cwd: string, text: string): void;
|
|
36
|
-
/** Asks again now, bypassing the cache (a click: the file may exist since). */
|
|
37
|
-
resolveNow(cwd: string, text: string): Promise<ChipResolution>;
|
|
38
|
-
/** Calls `listener` when the answer for `text` in `cwd` changes. Returns the unsubscribe. */
|
|
39
|
-
subscribe(cwd: string, text: string, listener: () => void): () => void;
|
|
40
|
-
/** Stops following the host's changes. */
|
|
41
|
-
dispose(): void;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const keyOf = (cwd: string, text: string) => `${cwd}\0${text}`;
|
|
45
|
-
const NO_WORK = () => () => {};
|
|
46
|
-
|
|
47
|
-
function sameResolution(a: ChipResolution, b: ChipResolution): boolean {
|
|
48
|
-
return JSON.stringify(a) === JSON.stringify(b);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Creates the chip answers over a host's paths.
|
|
53
|
-
*
|
|
54
|
-
* @param paths - The host's `paths` member.
|
|
55
|
-
* @param options - The chip-work counter.
|
|
56
|
-
*/
|
|
57
|
-
export function createPathResolver(paths: ChatPaths, options: PathResolverOptions = {}): PathResolver {
|
|
58
|
-
const beginWork = options.beginWork ?? NO_WORK;
|
|
59
|
-
const cache = new Map<string, Map<string, Entry>>();
|
|
60
|
-
const listeners = new Map<string, Set<() => void>>();
|
|
61
|
-
const queued = new Map<string, Set<string>>();
|
|
62
|
-
let flushScheduled = false;
|
|
63
|
-
/** First asks (nothing shown yet): an answer may resize the chip, so a thread's reveal waits on them. */
|
|
64
|
-
const firstAsks = new Map<string, () => void>();
|
|
65
|
-
let watching = false;
|
|
66
|
-
let offChanges: (() => void) | undefined;
|
|
67
|
-
|
|
68
|
-
const answered = (cwd: string, text: string) => {
|
|
69
|
-
const key = keyOf(cwd, text);
|
|
70
|
-
firstAsks.get(key)?.();
|
|
71
|
-
firstAsks.delete(key);
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
/** `null` when the host can't answer. */
|
|
75
|
-
const ask = (cwd: string, texts: string[]): Promise<readonly ChatResolvedPath[] | null> =>
|
|
76
|
-
Promise.resolve()
|
|
77
|
-
.then(() => paths.resolve(cwd, texts))
|
|
78
|
-
.catch(() => null);
|
|
79
|
-
|
|
80
|
-
const entries = (cwd: string) => {
|
|
81
|
-
let map = cache.get(cwd);
|
|
82
|
-
if (!map) {
|
|
83
|
-
map = new Map();
|
|
84
|
-
cache.set(cwd, map);
|
|
85
|
-
}
|
|
86
|
-
return map;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
const emit = (cwd: string, text: string) => {
|
|
90
|
-
for (const listener of listeners.get(keyOf(cwd, text)) ?? []) listener();
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
const watchRepoMoves = () => {
|
|
94
|
-
if (watching) return;
|
|
95
|
-
watching = true;
|
|
96
|
-
// Commits, checkouts and pulls add and remove files (and branches): answer afresh.
|
|
97
|
-
offChanges = paths.onChanged?.((cwd) => {
|
|
98
|
-
for (const entry of cache.get(cwd)?.values() ?? []) entry.at = 0;
|
|
99
|
-
});
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
const flush = async () => {
|
|
103
|
-
flushScheduled = false;
|
|
104
|
-
const batches = [...queued];
|
|
105
|
-
queued.clear();
|
|
106
|
-
await Promise.all(
|
|
107
|
-
batches.map(async ([cwd, set]) => {
|
|
108
|
-
const texts = [...set];
|
|
109
|
-
const answers = await ask(cwd, texts);
|
|
110
|
-
const map = entries(cwd);
|
|
111
|
-
texts.forEach((text, i) => {
|
|
112
|
-
const value = answers ? (answers[i] ?? { kind: 'missing' as const }) : null;
|
|
113
|
-
const prev = map.get(text);
|
|
114
|
-
map.set(text, { value, at: Date.now(), inFlight: false });
|
|
115
|
-
if (!prev || !sameResolution(prev.value, value)) emit(cwd, text);
|
|
116
|
-
answered(cwd, text);
|
|
117
|
-
});
|
|
118
|
-
}),
|
|
119
|
-
);
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
const request = (cwd: string, text: string) => {
|
|
123
|
-
watchRepoMoves();
|
|
124
|
-
const map = entries(cwd);
|
|
125
|
-
const entry = map.get(text);
|
|
126
|
-
if (entry?.inFlight) return;
|
|
127
|
-
if (entry && Date.now() - entry.at < STALE_MS) return;
|
|
128
|
-
if (entry) entry.inFlight = true;
|
|
129
|
-
else {
|
|
130
|
-
map.set(text, { value: null, at: 0, inFlight: true });
|
|
131
|
-
firstAsks.set(keyOf(cwd, text), beginWork());
|
|
132
|
-
}
|
|
133
|
-
let set = queued.get(cwd);
|
|
134
|
-
if (!set) {
|
|
135
|
-
set = new Set();
|
|
136
|
-
queued.set(cwd, set);
|
|
137
|
-
}
|
|
138
|
-
set.add(text);
|
|
139
|
-
if (!flushScheduled) {
|
|
140
|
-
flushScheduled = true;
|
|
141
|
-
// One frame of chips per call: the whole message, not one call per chip.
|
|
142
|
-
setTimeout(() => void flush(), 0);
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
return {
|
|
147
|
-
get: (cwd, text) => cache.get(cwd)?.get(text)?.value ?? null,
|
|
148
|
-
request,
|
|
149
|
-
async resolveNow(cwd, text) {
|
|
150
|
-
const answers = await ask(cwd, [text]);
|
|
151
|
-
const value = answers ? (answers[0] ?? { kind: 'missing' as const }) : null;
|
|
152
|
-
const map = entries(cwd);
|
|
153
|
-
const prev = map.get(text);
|
|
154
|
-
map.set(text, { value, at: Date.now(), inFlight: false });
|
|
155
|
-
if (!prev || !sameResolution(prev.value, value)) emit(cwd, text);
|
|
156
|
-
return value;
|
|
157
|
-
},
|
|
158
|
-
subscribe(cwd, text, listener) {
|
|
159
|
-
const key = keyOf(cwd, text);
|
|
160
|
-
let set = listeners.get(key);
|
|
161
|
-
if (!set) {
|
|
162
|
-
set = new Set();
|
|
163
|
-
listeners.set(key, set);
|
|
164
|
-
}
|
|
165
|
-
set.add(listener);
|
|
166
|
-
const own = set;
|
|
167
|
-
return () => {
|
|
168
|
-
own.delete(listener);
|
|
169
|
-
if (own.size === 0 && listeners.get(key) === own) listeners.delete(key);
|
|
170
|
-
};
|
|
171
|
-
},
|
|
172
|
-
dispose() {
|
|
173
|
-
offChanges?.();
|
|
174
|
-
for (const done of firstAsks.values()) done();
|
|
175
|
-
firstAsks.clear();
|
|
176
|
-
},
|
|
177
|
-
};
|
|
178
|
-
}
|