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,387 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The files host: a folder's listing, its files (read, write, search), its
|
|
3
|
-
* git status and working-tree diff, when its files may have moved, the
|
|
4
|
-
* editor preferences, and what only some platforms do (project-tool
|
|
5
|
-
* diagnostics, language servers, opening a path in another app, media
|
|
6
|
-
* addresses). An app implements it once (the desktop app over IPC, a web
|
|
7
|
-
* app over zidane-server) and hands it to `FilesProvider` (or
|
|
8
|
-
* `AppHost.files`).
|
|
9
|
-
*
|
|
10
|
-
* Every member is optional: a host that leaves one out hides what needs it
|
|
11
|
-
* (no `write`: the editor is read-only; no `workingTreeDiff`: the Diffs tab
|
|
12
|
-
* has no working-tree source and changed files open plain; no `search`:
|
|
13
|
-
* search in files matches names only; no `entries`: the tree creates, moves
|
|
14
|
-
* and removes nothing). Paths are relative to the folder (`cwd`), which is
|
|
15
|
-
* the files root of a scope (`filesRootOf`).
|
|
16
|
-
*/
|
|
17
|
-
import type { EntryImportResult, EntryRefusal, EntryResult } from 'zidane/chat/pure';
|
|
18
|
-
|
|
19
|
-
import type { EditorPrefs } from './editor-prefs';
|
|
20
|
-
|
|
21
|
-
/** One entry of a folder listing. */
|
|
22
|
-
export interface WorkspaceEntry {
|
|
23
|
-
/** Relative to the folder; directories end with `/` (only listed when empty). */
|
|
24
|
-
path: string;
|
|
25
|
-
/** A file or a folder. */
|
|
26
|
-
kind: 'file' | 'dir';
|
|
27
|
-
/** Gitignored (only present when listed with `showIgnored`). */
|
|
28
|
-
ignored?: boolean;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/** The media kinds a browser plays on its own. */
|
|
32
|
-
export type MediaKind = 'image' | 'video' | 'audio' | 'pdf';
|
|
33
|
-
|
|
34
|
-
/** A file the page shows as media, with its MIME type. */
|
|
35
|
-
export interface MediaType {
|
|
36
|
-
/** How it is shown. */
|
|
37
|
-
kind: MediaKind;
|
|
38
|
-
/** Its MIME type. */
|
|
39
|
-
mime: string;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/** A file as read. */
|
|
43
|
-
export interface WorkspaceFile {
|
|
44
|
-
/** Relative to the folder. */
|
|
45
|
-
path: string;
|
|
46
|
-
/** The text (empty for a binary or media file). */
|
|
47
|
-
contents: string;
|
|
48
|
-
/** Too large: `contents` is cut. */
|
|
49
|
-
truncated: boolean;
|
|
50
|
-
/** Size in bytes. */
|
|
51
|
-
size: number;
|
|
52
|
-
/** Not text. */
|
|
53
|
-
binary: boolean;
|
|
54
|
-
/** Version at read (a modification time, or any number that changes with the bytes); `write` refuses when it moved. */
|
|
55
|
-
mtimeMs: number;
|
|
56
|
-
/** A binary the page plays (an image, a video, audio), shown through `FilesHost.mediaUrl`. */
|
|
57
|
-
media?: MediaType;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/** What a guarded write did. */
|
|
61
|
-
export type WorkspaceWriteResult =
|
|
62
|
-
| { ok: true; mtimeMs: number }
|
|
63
|
-
/** `changed`: the file moved since `expectedMtimeMs`; `missing`: it is gone; `denied`: outside the folder or unwritable. */
|
|
64
|
-
| { ok: false; reason: 'changed' | 'missing' | 'denied' };
|
|
65
|
-
|
|
66
|
-
/** One path's git status. */
|
|
67
|
-
export interface GitStatusEntry {
|
|
68
|
-
/** Relative to the folder. */
|
|
69
|
-
path: string;
|
|
70
|
-
/** What changed. */
|
|
71
|
-
status: 'added' | 'deleted' | 'ignored' | 'modified' | 'renamed' | 'untracked';
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/** How text matches. */
|
|
75
|
-
export interface TextMatchOptions {
|
|
76
|
-
/** Match case. */
|
|
77
|
-
caseSensitive: boolean;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/** One matching line of a search in files. */
|
|
81
|
-
export interface ContentMatch {
|
|
82
|
-
/** Relative to the folder. */
|
|
83
|
-
path: string;
|
|
84
|
-
/** 1-based. */
|
|
85
|
-
line: number;
|
|
86
|
-
/** The line. */
|
|
87
|
-
text: string;
|
|
88
|
-
/** The matches in it, as UTF-16 offsets. */
|
|
89
|
-
ranges: { start: number; end: number }[];
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/** A search in files. */
|
|
93
|
-
export interface ContentSearchResult {
|
|
94
|
-
/** The matching lines. */
|
|
95
|
-
matches: ContentMatch[];
|
|
96
|
-
/** Stopped at the cap: there are more. */
|
|
97
|
-
capped: boolean;
|
|
98
|
-
/** What ran: ripgrep, `git grep`, a walk of the files, or nothing (empty query, superseded). */
|
|
99
|
-
engine: 'rg' | 'git' | 'walk' | 'none';
|
|
100
|
-
/** File contents can't be searched here (a sandboxed session); names still can. */
|
|
101
|
-
unsupported?: 'sandbox';
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/** Options of {@link FilesHost.search}. */
|
|
105
|
-
export interface ContentSearchOptions extends TextMatchOptions {
|
|
106
|
-
/** A later search with the same id cancels this one (one per search box). */
|
|
107
|
-
searchId: string;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/** What a view works from: a folder, optionally bound to a session (or the new-chat draft). */
|
|
111
|
-
export interface FilesScope {
|
|
112
|
-
/** The project root. */
|
|
113
|
-
root: string;
|
|
114
|
-
/** Where things open. */
|
|
115
|
-
cwd: string;
|
|
116
|
-
/** Bound to this session. */
|
|
117
|
-
session?: string;
|
|
118
|
-
/** The new-chat draft's id. */
|
|
119
|
-
draft?: string;
|
|
120
|
-
/** Where a bound session's files live when they are not on this machine (`zidane-env://…`). */
|
|
121
|
-
workspace?: string;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/** Why a folder may have changed: a tool result in it, or the repository moving. */
|
|
125
|
-
export type FolderChange = 'tool-result' | 'git';
|
|
126
|
-
|
|
127
|
-
/** The severity of a finding. */
|
|
128
|
-
export type DiagnosticSeverity = 'error' | 'warning' | 'info' | 'hint';
|
|
129
|
-
|
|
130
|
-
/** One finding from a project tool or a language server, positions 1-based like editors show them. */
|
|
131
|
-
export interface Diagnostic {
|
|
132
|
-
/** Relative to the folder. */
|
|
133
|
-
path: string;
|
|
134
|
-
/** 1-based line. */
|
|
135
|
-
line: number;
|
|
136
|
-
/** 1-based column. */
|
|
137
|
-
column: number;
|
|
138
|
-
/** Last line. */
|
|
139
|
-
endLine?: number;
|
|
140
|
-
/** Last column. */
|
|
141
|
-
endColumn?: number;
|
|
142
|
-
/** How bad. */
|
|
143
|
-
severity: DiagnosticSeverity;
|
|
144
|
-
/** What it says. */
|
|
145
|
-
message: string;
|
|
146
|
-
/** Tool id (`tsc`, `eslint`, …). */
|
|
147
|
-
source: string;
|
|
148
|
-
/** Rule / error code (`TS2322`, `no-unused-vars`). */
|
|
149
|
-
code?: string;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/** A diagnostics run. */
|
|
153
|
-
export interface DiagnosticsResult {
|
|
154
|
-
/** The findings. */
|
|
155
|
-
diagnostics: Diagnostic[];
|
|
156
|
-
/** Tools that ran (ids), for the "checked by" line. */
|
|
157
|
-
ran: string[];
|
|
158
|
-
/** Tools that failed or timed out, with a short reason. */
|
|
159
|
-
failed: { id: string; reason: string }[];
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/** Options of {@link FilesDiagnostics.run}. */
|
|
163
|
-
export interface DiagnosticsRunOptions {
|
|
164
|
-
/** Tool ids switched off. */
|
|
165
|
-
disabled: string[];
|
|
166
|
-
/** Per-command timeout. */
|
|
167
|
-
timeoutMs: number;
|
|
168
|
-
/** The files are open in a language server, which reports what the project-wide checks would: skip those. */
|
|
169
|
-
lsp: boolean;
|
|
170
|
-
/** Aborted when the caller no longer reads the answer (the file moved on, the view went): the backend may stop the run. */
|
|
171
|
-
signal?: AbortSignal;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/** The project's own linters and typecheckers. */
|
|
175
|
-
export interface FilesDiagnostics {
|
|
176
|
-
/** Runs the tools on `paths` (cached by the backend until the files move). */
|
|
177
|
-
run(cwd: string, paths: string[], options: DiagnosticsRunOptions): Promise<DiagnosticsResult>;
|
|
178
|
-
/** Drops the cached results for the folder (the next run checks again). */
|
|
179
|
-
invalidate(cwd: string): Promise<void>;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/** A position in a file, 1-based. */
|
|
183
|
-
export interface LspLocation {
|
|
184
|
-
/** Relative to the folder. */
|
|
185
|
-
path: string;
|
|
186
|
-
/** 1-based line. */
|
|
187
|
-
line: number;
|
|
188
|
-
/** 1-based column. */
|
|
189
|
-
column: number;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/** A definition target, and the symbol it was asked from when the server says. */
|
|
193
|
-
export interface LspDefinition extends LspLocation {
|
|
194
|
-
/** The symbol in the asking file, 1-based, `endColumn` exclusive: what Cmd-hover underlines. */
|
|
195
|
-
origin?: { line: number; column: number; endLine: number; endColumn: number };
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/** 0-based LSP range. */
|
|
199
|
-
export interface LspRange {
|
|
200
|
-
/** Start. */
|
|
201
|
-
start: { line: number; character: number };
|
|
202
|
-
/** End. */
|
|
203
|
-
end: { line: number; character: number };
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/** One incremental document change, LSP shape (0-based positions in the document before the change). */
|
|
207
|
-
export interface LspTextChange {
|
|
208
|
-
/** What it replaces. */
|
|
209
|
-
range: LspRange;
|
|
210
|
-
/** The new text. */
|
|
211
|
-
text: string;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
/** A hover answer; `busy` says why `text` may be missing (the server is still loading the project). */
|
|
215
|
-
export interface LspHover {
|
|
216
|
-
/** The hover text (Markdown). */
|
|
217
|
-
text: string | null;
|
|
218
|
-
/** What the server is still doing. */
|
|
219
|
-
busy?: string;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/** One completion candidate, ready to insert. */
|
|
223
|
-
export interface LspCompletionItem {
|
|
224
|
-
/** What the menu shows. */
|
|
225
|
-
label: string;
|
|
226
|
-
/** LSP kind as a word (`function`, `field`, `module`, …). */
|
|
227
|
-
kind?: string;
|
|
228
|
-
/** Shown after the label (signature, type, module). */
|
|
229
|
-
detail?: string;
|
|
230
|
-
/** Text that replaces `range` (snippet syntax already flattened). */
|
|
231
|
-
insertText: string;
|
|
232
|
-
/** 0-based range the item replaces; absent: the word before the caret. */
|
|
233
|
-
range?: LspRange;
|
|
234
|
-
/** What typing filters on (defaults to `label`). */
|
|
235
|
-
filterText?: string;
|
|
236
|
-
/** Sort key. */
|
|
237
|
-
sortText?: string;
|
|
238
|
-
/** Selected first. */
|
|
239
|
-
preselect?: boolean;
|
|
240
|
-
/** Where the caret lands inside `insertText`, as offsets; absent: its end. */
|
|
241
|
-
cursor?: { start: number; end: number };
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
/** A completion answer; `id` names it for {@link FilesLsp.resolveCompletion}. */
|
|
245
|
-
export interface LspCompletionList {
|
|
246
|
-
/** The answer's id. */
|
|
247
|
-
id: number;
|
|
248
|
-
/** The candidates. */
|
|
249
|
-
items: LspCompletionItem[];
|
|
250
|
-
/** Typing on must ask again instead of filtering these. */
|
|
251
|
-
incomplete: boolean;
|
|
252
|
-
/** What the server is still doing. */
|
|
253
|
-
busy?: string;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
/** The rest of a completion item, fetched when it is selected or accepted. */
|
|
257
|
-
export interface LspCompletionDetail {
|
|
258
|
-
/** The item's detail. */
|
|
259
|
-
detail?: string;
|
|
260
|
-
/** Its documentation (Markdown). */
|
|
261
|
-
documentation?: string;
|
|
262
|
-
/** Edits elsewhere in the file applied with the item (an auto-import). */
|
|
263
|
-
additionalEdits?: { range: LspRange; newText: string }[];
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/** Language servers: live findings while typing, hovers, completion and go to definition. */
|
|
267
|
-
export interface FilesLsp {
|
|
268
|
-
/** The idle timeout and the per-server command overrides (the editor preferences). */
|
|
269
|
-
configure(options: { idleMs: number; overrides: Record<string, string> }): Promise<void>;
|
|
270
|
-
/** Opens the document (or sends a change: `changes` incremental, else the full text); resolves to the findings known now. */
|
|
271
|
-
open(cwd: string, path: string, text: string, changes?: LspTextChange[]): Promise<Diagnostic[]>;
|
|
272
|
-
/** Closes the document. */
|
|
273
|
-
close(cwd: string, path: string): Promise<void>;
|
|
274
|
-
/** Findings the server pushes for an open document. Returns the unsubscribe. */
|
|
275
|
-
onDiagnostics(listener: (cwd: string, path: string, diagnostics: Diagnostic[]) => void): () => void;
|
|
276
|
-
/** Where the symbol at a 1-based position is defined (several places for an overload; empty: nowhere known). */
|
|
277
|
-
definition(cwd: string, path: string, line: number, column: number): Promise<LspDefinition[]>;
|
|
278
|
-
/** The hover at a 1-based position. */
|
|
279
|
-
hover(cwd: string, path: string, line: number, column: number): Promise<LspHover>;
|
|
280
|
-
/** Completion at a 1-based position, sending the document's pending change with it. */
|
|
281
|
-
completion(
|
|
282
|
-
cwd: string,
|
|
283
|
-
path: string,
|
|
284
|
-
text: string,
|
|
285
|
-
changes: LspTextChange[] | undefined,
|
|
286
|
-
line: number,
|
|
287
|
-
column: number,
|
|
288
|
-
trigger?: string,
|
|
289
|
-
): Promise<LspCompletionList>;
|
|
290
|
-
/** The rest of item `index` of answer `id`. */
|
|
291
|
-
resolveCompletion(cwd: string, path: string, id: number, index: number): Promise<LspCompletionDetail | null>;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
/** What the platform does with a path outside the page. */
|
|
295
|
-
export interface FilesSystem {
|
|
296
|
-
/** Whether files of `cwd` are on this machine (not a sandbox's or a server's): only those can be opened elsewhere. */
|
|
297
|
-
isLocal(cwd: string): boolean;
|
|
298
|
-
/** Opens an absolute path in the default editor. Resolves false when it could not. */
|
|
299
|
-
openPath(path: string): Promise<boolean>;
|
|
300
|
-
/** Shows an absolute path in the file manager. Resolves false when it could not. */
|
|
301
|
-
revealPath(path: string): Promise<boolean>;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
/** A media file's address: as it is now, or one side of a working-tree change. */
|
|
305
|
-
export type MediaSource =
|
|
306
|
-
| { kind: 'file'; cwd: string; path: string; version: number }
|
|
307
|
-
/** `path` as git diff names it; `old`: the last commit's, `new`: now; `version`: the side's blob id. */
|
|
308
|
-
| { kind: 'diff'; cwd: string; path: string; side: 'old' | 'new'; version?: string };
|
|
309
|
-
|
|
310
|
-
/** Why an entry action was refused: a taken name, a source gone, an invalid name, no access, over the import limits. */
|
|
311
|
-
export type FilesEntryRefusal = EntryRefusal;
|
|
312
|
-
|
|
313
|
-
/** What an entry action did: the path it ended at, or why it was refused (`message`: the backend's own words). */
|
|
314
|
-
export type FilesEntryResult = EntryResult;
|
|
315
|
-
|
|
316
|
-
/** What an import did: the top-level paths it made, and why it stopped when it did. */
|
|
317
|
-
export type FilesImportResult = EntryImportResult;
|
|
318
|
-
|
|
319
|
-
/** One thing dropped from outside the page, taken while the drop lasts (a `DataTransfer` is emptied after it). */
|
|
320
|
-
export interface DroppedItem {
|
|
321
|
-
/** The dropped file (a dropped folder too, where the platform hands folders as files). */
|
|
322
|
-
file: File;
|
|
323
|
-
/** Its entry, to walk a dropped folder (`webkitGetAsEntry`); `null` when the platform gives none. */
|
|
324
|
-
entry: FileSystemEntry | null;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
/** How a folder's removals end: in the system trash (recoverable), or gone for good. */
|
|
328
|
-
export type FilesRemoval = 'trash' | 'permanent';
|
|
329
|
-
|
|
330
|
-
/**
|
|
331
|
-
* Entry actions on a folder's files: what the tree's new file and folder,
|
|
332
|
-
* rename, move, copy, delete and drops from outside run. Paths are relative
|
|
333
|
-
* to the folder, never `..` or absolute. Nothing is overwritten: a create,
|
|
334
|
-
* move or rename onto a taken name is refused (`exists`); a copy or an
|
|
335
|
-
* import takes the next free name (`a copy.ts`). A refusal resolves; it
|
|
336
|
-
* does not throw.
|
|
337
|
-
*/
|
|
338
|
-
export interface FilesEntries {
|
|
339
|
-
/** Creates a file (empty) or a folder at `path`, making the folders on the way. */
|
|
340
|
-
create(cwd: string, path: string, kind: 'file' | 'dir'): Promise<FilesEntryResult>;
|
|
341
|
-
/** Moves (renames) `from` to `to`, making the folders on the way. */
|
|
342
|
-
move(cwd: string, from: string, to: string): Promise<FilesEntryResult>;
|
|
343
|
-
/** Copies `from` into folder `toDir` (`''`: the root) under its name, or the next free one. */
|
|
344
|
-
copy(cwd: string, from: string, toDir: string): Promise<FilesEntryResult>;
|
|
345
|
-
/** Removes `path` (a folder whole), where {@link removal} says. */
|
|
346
|
-
remove(cwd: string, path: string): Promise<FilesEntryResult>;
|
|
347
|
-
/** Brings what was dropped from outside the page into folder `dir`, each top-level item under a free name. */
|
|
348
|
-
importFiles(cwd: string, dir: string, items: readonly DroppedItem[]): Promise<FilesImportResult>;
|
|
349
|
-
/** Where {@link remove} sends `cwd`'s entries: the confirmation says so. */
|
|
350
|
-
removal(cwd: string): FilesRemoval;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
/** The files host. Every member is optional. */
|
|
354
|
-
export interface FilesHost {
|
|
355
|
-
/** The folder's entries (files, and empty folders). Rejects when the folder can't be read. */
|
|
356
|
-
list?(cwd: string, options?: { showIgnored?: boolean }): Promise<WorkspaceEntry[]>;
|
|
357
|
-
/** A file, or `null` when it is gone (moved, deleted, outside the folder). */
|
|
358
|
-
read?(cwd: string, path: string): Promise<WorkspaceFile | null>;
|
|
359
|
-
/** Writes a file, refused when its version moved past `expectedMtimeMs`. Absent: files are read-only. */
|
|
360
|
-
write?(cwd: string, path: string, contents: string, expectedMtimeMs: number): Promise<WorkspaceWriteResult>;
|
|
361
|
-
/** Creates, moves, copies, removes and imports entries. Absent: the tree only browses. */
|
|
362
|
-
entries?: FilesEntries;
|
|
363
|
-
/** Searches the folder's file contents. Absent: search in files matches names only. */
|
|
364
|
-
search?(cwd: string, query: string, options: ContentSearchOptions): Promise<ContentSearchResult>;
|
|
365
|
-
/** The folder's git status. Absent: no changed marks, no "changed only". */
|
|
366
|
-
gitStatus?(cwd: string): Promise<GitStatusEntry[]>;
|
|
367
|
-
/**
|
|
368
|
-
* The working tree against HEAD as a unified patch (untracked files included), the whole folder or one
|
|
369
|
-
* `path`, with `context` lines (`Infinity`: the whole file). Absent: no working-tree diffs.
|
|
370
|
-
*/
|
|
371
|
-
workingTreeDiff?(cwd: string, options?: { path?: string; context?: number }): Promise<string>;
|
|
372
|
-
/**
|
|
373
|
-
* Calls `onChange` when files of the scope's folder may have moved (a tool result from a session working there,
|
|
374
|
-
* the repository moving), raw: callers settle bursts. Returns the unsubscribe. Absent: views refresh by hand.
|
|
375
|
-
*/
|
|
376
|
-
watch?(scope: FilesScope, onChange: (why: FolderChange) => void): () => void;
|
|
377
|
-
/** The editor preferences. Absent: the defaults, unchangeable. */
|
|
378
|
-
editorPrefs?: EditorPrefs;
|
|
379
|
-
/** Project-tool diagnostics. Absent: no findings, no chip. */
|
|
380
|
-
diagnostics?: FilesDiagnostics;
|
|
381
|
-
/** Language servers. Absent: the `lsp` diagnostics mode runs project tools only. */
|
|
382
|
-
lsp?: FilesLsp;
|
|
383
|
-
/** Opening paths in other apps. Absent: no "Open in editor" / "Reveal" actions. */
|
|
384
|
-
system?: FilesSystem;
|
|
385
|
-
/** The address a media file plays from. Absent: media files show as binary. */
|
|
386
|
-
mediaUrl?(source: MediaSource): string;
|
|
387
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `zidane-ui/files/headless`: the Files and Diffs tabs' React-free half. The
|
|
3
|
-
* `FilesHost` an app implements (listing, reading, writing, searching, git
|
|
4
|
-
* status and the working-tree diff, folder changes, diagnostics, language
|
|
5
|
-
* servers), the editor preferences model and its `Storage`-backed store,
|
|
6
|
-
* the per-scope view state and the labels.
|
|
7
|
-
*/
|
|
8
|
-
export * from './host';
|
|
9
|
-
export * from './editor-prefs';
|
|
10
|
-
export * from './view';
|
|
11
|
-
export * from './labels';
|
|
12
|
-
export * from './entries';
|
|
13
|
-
export { matchRanges } from './search';
|
|
14
|
-
export { mediaTypeOfPath } from './media';
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The Files and Diffs tabs' strings (the desktop app's wording). One flat
|
|
3
|
-
* dictionary an app overrides with `<LabelsProvider>` or the `labels` prop of
|
|
4
|
-
* `FilesProvider`. Keys you leave out keep the default English label.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const plural = (n: number, one: string, many: string) => (n === 1 ? one : many);
|
|
8
|
-
|
|
9
|
-
/** The default English strings of the Files and Diffs tabs. Override any of them through `FilesProvider`. */
|
|
10
|
-
export const DEFAULT_FILES_LABELS = {
|
|
11
|
-
// Folders
|
|
12
|
-
filesNoFolder: 'No folder',
|
|
13
|
-
filesSessionNoFolder: 'This session has no folder',
|
|
14
|
-
// The tree
|
|
15
|
-
filesShowTree: 'Show tree',
|
|
16
|
-
filesHideTree: 'Hide tree',
|
|
17
|
-
filesSearchFiles: 'Search files',
|
|
18
|
-
filesClearSearch: 'Clear search',
|
|
19
|
-
filesAllFiles: 'All files',
|
|
20
|
-
filesChangedOnly: 'Changed only',
|
|
21
|
-
filesShowIgnored: 'Show ignored',
|
|
22
|
-
filesHideIgnored: 'Hide ignored',
|
|
23
|
-
filesRefresh: 'Refresh',
|
|
24
|
-
filesNoChanged: 'No changed files',
|
|
25
|
-
filesEmptyFolder: 'Empty folder',
|
|
26
|
-
// Open files
|
|
27
|
-
filesOpenFiles: 'Open files',
|
|
28
|
-
filesPickFile: 'Pick a file to view it',
|
|
29
|
-
filesNotFound: 'File not found at this path',
|
|
30
|
-
filesBinary: 'Binary file',
|
|
31
|
-
filesTooLarge: (kb: number) => `Too large to preview (${kb} KB)`,
|
|
32
|
-
filesPlainView: 'Plain view',
|
|
33
|
-
filesShowChanges: 'Show changes',
|
|
34
|
-
filesShowChangesLarge: 'Show changes (large file)',
|
|
35
|
-
filesOpenEditor: 'Editor',
|
|
36
|
-
filesRevealFinder: 'Finder',
|
|
37
|
-
filesFindInDiff: 'Find in diff',
|
|
38
|
-
filesGoToDefinition: 'Go to definition (⌘-click)',
|
|
39
|
-
filesMediaFailed: (name: string) => `${name} could not be shown.`,
|
|
40
|
-
filesImageSize: (name: string, width: number, height: number) => `${name} (${width}×${height})`,
|
|
41
|
-
// Path actions
|
|
42
|
-
filesAddToChat: 'Add to chat',
|
|
43
|
-
filesCopyPath: 'Copy path',
|
|
44
|
-
filesCopyRelativePath: 'Copy relative path',
|
|
45
|
-
filesOpenInEditor: 'Open in editor',
|
|
46
|
-
filesOpenFolderInEditor: 'Open folder in editor',
|
|
47
|
-
filesRevealInFinder: 'Reveal in Finder',
|
|
48
|
-
filesNoChat: 'No chat to add to here',
|
|
49
|
-
// Entries
|
|
50
|
-
filesNewFile: 'New file',
|
|
51
|
-
filesNewFolder: 'New folder',
|
|
52
|
-
filesRename: 'Rename',
|
|
53
|
-
filesDuplicate: 'Duplicate',
|
|
54
|
-
filesCut: 'Cut',
|
|
55
|
-
filesCopy: 'Copy',
|
|
56
|
-
filesPaste: 'Paste',
|
|
57
|
-
filesDelete: 'Delete',
|
|
58
|
-
filesDeleteTitle: (name: string, count: number) => (count > 1 ? `Delete ${count} items?` : `Delete ${name}?`),
|
|
59
|
-
filesDeleteToTrash: 'You can restore it from the Trash.',
|
|
60
|
-
filesDeletePermanent: "It is deleted for good: this can't be undone.",
|
|
61
|
-
filesDeleteConfirm: 'Delete',
|
|
62
|
-
filesMoveToTrash: 'Move to Trash',
|
|
63
|
-
filesEntryExists: 'That name is already taken here.',
|
|
64
|
-
filesEntryMissing: "It isn't there anymore.",
|
|
65
|
-
filesEntryInvalid: "That name can't be used.",
|
|
66
|
-
filesEntryDenied: "That can't be done here.",
|
|
67
|
-
filesEntryTooLarge: 'Too much to bring in at once (50 MB, 20 MB per file).',
|
|
68
|
-
filesDropHere: 'Drop to copy here',
|
|
69
|
-
filesDismiss: 'Dismiss',
|
|
70
|
-
// Review
|
|
71
|
-
filesSelection: 'selection',
|
|
72
|
-
filesAddWhatToChat: (what: string) => `Add ${what} to chat`,
|
|
73
|
-
filesCommentOn: (what: string) => `Comment on ${what}`,
|
|
74
|
-
filesCopyWhat: (what: string) => `Copy ${what}`,
|
|
75
|
-
filesToAdd: 'to add',
|
|
76
|
-
filesSelectedLines: 'Selected lines',
|
|
77
|
-
filesBlankLines: '(blank lines)',
|
|
78
|
-
filesMoreLines: (count: number) => `… ${count} more`,
|
|
79
|
-
filesCommentPlaceholder: 'What should change here?',
|
|
80
|
-
filesCancel: 'Cancel',
|
|
81
|
-
filesAddToPrompt: 'Add to prompt',
|
|
82
|
-
// Diagnostics
|
|
83
|
-
filesChecking: 'Checking…',
|
|
84
|
-
filesCheckFailed: (tools: readonly string[]) => `Check failed: ${tools.join(', ')}`,
|
|
85
|
-
filesNoTool: 'No tool for this file',
|
|
86
|
-
filesCheckedBy: (ran: readonly string[], failed: readonly string[]) =>
|
|
87
|
-
`Checked by ${ran.join(', ')}.${failed.length ? ` Failed: ${failed.join(', ')}.` : ''} Click to re-run.`,
|
|
88
|
-
filesLanguageServer: 'language server',
|
|
89
|
-
// Search
|
|
90
|
-
filesSearchInFiles: 'Search in files',
|
|
91
|
-
filesSearchInChanges: 'Search in changes',
|
|
92
|
-
filesSearching: 'Searching…',
|
|
93
|
-
filesSearchNamesOnly: 'Only file names can be searched in a sandboxed session.',
|
|
94
|
-
filesNoResults: 'No results',
|
|
95
|
-
filesNameHits: (count: number, more: boolean) => `${count}${more ? '+' : ''} ${plural(count, 'name', 'names')}`,
|
|
96
|
-
filesLineHits: (count: number, more: boolean, files: number) =>
|
|
97
|
-
`${count}${more ? '+' : ''} ${plural(count, 'match', 'matches')} in ${files} ${plural(files, 'file', 'files')}`,
|
|
98
|
-
filesMatchCase: 'Match case',
|
|
99
|
-
filesCloseSearch: 'Close search',
|
|
100
|
-
filesCloseSearchHint: 'Close (Esc)',
|
|
101
|
-
filesFileNames: 'File names',
|
|
102
|
-
filesMatchingLines: 'Matching lines',
|
|
103
|
-
filesMatchLine: (path: string, line: number, text: string) => `${path} line ${line}: ${text}`,
|
|
104
|
-
// Diffs
|
|
105
|
-
filesDiffsToolbar: 'Diffs',
|
|
106
|
-
filesDiffSource: 'Diff source',
|
|
107
|
-
filesSourceSession: 'Session',
|
|
108
|
-
filesSourceWorking: 'Working tree',
|
|
109
|
-
filesShowFileList: 'Show file list',
|
|
110
|
-
filesHideFileList: 'Hide file list',
|
|
111
|
-
filesSplit: 'Split',
|
|
112
|
-
filesWrap: 'Wrap',
|
|
113
|
-
filesNoChangesYet: 'No changes yet',
|
|
114
|
-
filesNoChangesHint: "The agent's edits in this session show up here.",
|
|
115
|
-
filesWorkingTreeClean: 'Working tree clean',
|
|
116
|
-
filesNoWorkingTree: 'No working-tree changes here',
|
|
117
|
-
filesFindInDiffs: 'Find in diffs',
|
|
118
|
-
filesBefore: 'Before',
|
|
119
|
-
filesAfter: 'After',
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
/** The shape of the files label dictionary. Some values are functions that build a string. */
|
|
123
|
-
export type FilesLabels = typeof DEFAULT_FILES_LABELS;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Edits made in the panel editor since the language server last saw the
|
|
3
|
-
* document, per (cwd, path). `CodeViewer` records them as pierre reports
|
|
4
|
-
* them; `useLsp` takes the batch when its debounce fires and sends it as an
|
|
5
|
-
* incremental `didChange`. Anything that reseeds the document (discard,
|
|
6
|
-
* external reload) calls `resetEdits` so the next sync ships the full text.
|
|
7
|
-
* Nothing takes the edits of a document no language server has open, so a
|
|
8
|
-
* batch past `MAX_CHANGES` gives up and the next sync ships the full text,
|
|
9
|
-
* and a document's buffer goes when the server closes it (`forgetEdits`).
|
|
10
|
-
*/
|
|
11
|
-
import type { LspTextChange } from './host';
|
|
12
|
-
|
|
13
|
-
const MAX_CHANGES = 1000;
|
|
14
|
-
|
|
15
|
-
const buffers = new Map<string, { changes: LspTextChange[]; complete: boolean }>();
|
|
16
|
-
|
|
17
|
-
const key = (cwd: string, path: string) => `${cwd}\0${path}`;
|
|
18
|
-
|
|
19
|
-
export function recordEdits(cwd: string, path: string, changes: readonly LspTextChange[]): void {
|
|
20
|
-
const k = key(cwd, path);
|
|
21
|
-
const buf = buffers.get(k) ?? { changes: [], complete: true };
|
|
22
|
-
if (buf.complete) buf.changes.push(...changes);
|
|
23
|
-
if (buf.changes.length > MAX_CHANGES) {
|
|
24
|
-
buf.changes = [];
|
|
25
|
-
buf.complete = false;
|
|
26
|
-
}
|
|
27
|
-
buffers.set(k, buf);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** The document was replaced wholesale: whatever was buffered no longer describes it. */
|
|
31
|
-
export function resetEdits(cwd: string, path: string): void {
|
|
32
|
-
buffers.set(key(cwd, path), { changes: [], complete: false });
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Edits since the last take, or `undefined` when the caller must send the
|
|
37
|
-
* full text (no complete history for this document).
|
|
38
|
-
*/
|
|
39
|
-
export function takeEdits(cwd: string, path: string): LspTextChange[] | undefined {
|
|
40
|
-
const k = key(cwd, path);
|
|
41
|
-
const buf = buffers.get(k);
|
|
42
|
-
buffers.set(k, { changes: [], complete: true });
|
|
43
|
-
if (!buf || !buf.complete) return undefined;
|
|
44
|
-
return buf.changes;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** The server closed the document: its next open starts from the full text. */
|
|
48
|
-
export function forgetEdits(cwd: string, path: string): void {
|
|
49
|
-
buffers.delete(key(cwd, path));
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function __resetLspEditsForTests(): void {
|
|
53
|
-
buffers.clear();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export function __lspEditBuffersForTests(): number {
|
|
57
|
-
return buffers.size;
|
|
58
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Media a page shows in place of "Binary file": the formats a browser
|
|
3
|
-
* decodes on its own, by file extension. Anything else stays binary.
|
|
4
|
-
*/
|
|
5
|
-
import type { MediaType } from './host';
|
|
6
|
-
|
|
7
|
-
const BY_EXTENSION: Readonly<Record<string, MediaType>> = {
|
|
8
|
-
png: { kind: 'image', mime: 'image/png' },
|
|
9
|
-
jpg: { kind: 'image', mime: 'image/jpeg' },
|
|
10
|
-
jpeg: { kind: 'image', mime: 'image/jpeg' },
|
|
11
|
-
gif: { kind: 'image', mime: 'image/gif' },
|
|
12
|
-
webp: { kind: 'image', mime: 'image/webp' },
|
|
13
|
-
avif: { kind: 'image', mime: 'image/avif' },
|
|
14
|
-
svg: { kind: 'image', mime: 'image/svg+xml' },
|
|
15
|
-
bmp: { kind: 'image', mime: 'image/bmp' },
|
|
16
|
-
ico: { kind: 'image', mime: 'image/x-icon' },
|
|
17
|
-
mp4: { kind: 'video', mime: 'video/mp4' },
|
|
18
|
-
m4v: { kind: 'video', mime: 'video/mp4' },
|
|
19
|
-
webm: { kind: 'video', mime: 'video/webm' },
|
|
20
|
-
ogv: { kind: 'video', mime: 'video/ogg' },
|
|
21
|
-
mov: { kind: 'video', mime: 'video/quicktime' },
|
|
22
|
-
mp3: { kind: 'audio', mime: 'audio/mpeg' },
|
|
23
|
-
wav: { kind: 'audio', mime: 'audio/wav' },
|
|
24
|
-
ogg: { kind: 'audio', mime: 'audio/ogg' },
|
|
25
|
-
oga: { kind: 'audio', mime: 'audio/ogg' },
|
|
26
|
-
m4a: { kind: 'audio', mime: 'audio/mp4' },
|
|
27
|
-
flac: { kind: 'audio', mime: 'audio/flac' },
|
|
28
|
-
pdf: { kind: 'pdf', mime: 'application/pdf' },
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* The media a path names, by its extension; `null` for everything else.
|
|
33
|
-
*
|
|
34
|
-
* @param path - A file path.
|
|
35
|
-
*/
|
|
36
|
-
export function mediaTypeOfPath(path: string): MediaType | null {
|
|
37
|
-
const name = path.slice(path.lastIndexOf('/') + 1).toLowerCase();
|
|
38
|
-
const dot = name.lastIndexOf('.');
|
|
39
|
-
return dot > 0 ? (BY_EXTENSION[name.slice(dot + 1)] ?? null) : null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* The media files in a path's folder (not its subfolders), sorted by name,
|
|
44
|
-
* and where the path is among them: what the Files editor steps through.
|
|
45
|
-
* `null` when the path is not one of them.
|
|
46
|
-
*
|
|
47
|
-
* @param paths - Every listed file path, relative to the workspace.
|
|
48
|
-
* @param path - The file on show.
|
|
49
|
-
*/
|
|
50
|
-
export function mediaSiblings(paths: readonly string[], path: string): { paths: string[]; index: number } | null {
|
|
51
|
-
const folder = path.slice(0, path.lastIndexOf('/') + 1);
|
|
52
|
-
const siblings = paths
|
|
53
|
-
.filter((p) => p.startsWith(folder) && !p.includes('/', folder.length) && mediaTypeOfPath(p) !== null)
|
|
54
|
-
.sort((a, b) => a.localeCompare(b));
|
|
55
|
-
const index = siblings.indexOf(path);
|
|
56
|
-
return index === -1 ? null : { paths: siblings, index };
|
|
57
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File names matching a query, best first: the query in the file name
|
|
3
|
-
* before the query only in its folders, then an earlier hit, then the
|
|
4
|
-
* shorter file name (the tighter match), then the shorter path.
|
|
5
|
-
*/
|
|
6
|
-
import type { TextMatchOptions } from './host';
|
|
7
|
-
import { matchRanges } from './search';
|
|
8
|
-
|
|
9
|
-
function basename(path: string): string {
|
|
10
|
-
const trimmed = path.replace(/[/\\]+$/, '');
|
|
11
|
-
return trimmed.slice(Math.max(trimmed.lastIndexOf('/'), trimmed.lastIndexOf('\\')) + 1);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* The paths whose file name (or, ranked after, folders) contain `query`, best first, at most `limit`.
|
|
16
|
-
*
|
|
17
|
-
* @param paths - The folder's file paths.
|
|
18
|
-
* @param query - What to find.
|
|
19
|
-
* @param opts - Whether case matters.
|
|
20
|
-
* @param limit - How many to return.
|
|
21
|
-
*/
|
|
22
|
-
export function nameMatches(paths: readonly string[], query: string, opts: TextMatchOptions, limit = 50): string[] {
|
|
23
|
-
if (!query) return [];
|
|
24
|
-
const scored: { path: string; rank: number; base: number }[] = [];
|
|
25
|
-
for (const path of paths) {
|
|
26
|
-
const base = basename(path);
|
|
27
|
-
const inBase = matchRanges(base, query, opts)[0];
|
|
28
|
-
if (inBase) {
|
|
29
|
-
scored.push({ path, rank: inBase.start, base: base.length });
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
if (matchRanges(path, query, opts).length > 0) scored.push({ path, rank: 10_000, base: base.length });
|
|
33
|
-
}
|
|
34
|
-
scored.sort(
|
|
35
|
-
(a, b) => a.rank - b.rank || a.base - b.base || a.path.length - b.path.length || a.path.localeCompare(b.path),
|
|
36
|
-
);
|
|
37
|
-
return scored.slice(0, limit).map((s) => s.path);
|
|
38
|
-
}
|