zidane-ui 9.1.13 → 9.1.14
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/dist/adapters/index.d.ts +2 -2
- package/dist/adapters/index.js +2 -2
- package/dist/adapters/live.d.ts +29 -3
- package/dist/adapters/live.js +9 -1
- package/dist/adapters/server-composer-host.js +17 -2
- package/dist/adapters/server-extensions-host.d.ts +0 -1
- package/dist/adapters/server-extensions-host.js +5 -16
- package/dist/adapters/server-git-host.js +7 -16
- package/dist/adapters/server-host.js +181 -43
- package/dist/adapters/server-machines-host.d.ts +2 -0
- package/dist/adapters/server-machines-host.js +24 -25
- package/dist/adapters/server-onboarding-host.d.ts +1 -1
- package/dist/adapters/server-onboarding-host.js +3 -4
- package/dist/adapters/server-session-host.js +22 -3
- package/dist/adapters/server-settings-accounts.js +2 -2
- package/dist/adapters/server-settings-host.js +3 -3
- package/dist/adapters/server-settings-performance.js +7 -9
- package/dist/adapters/server-settings-sections.js +13 -14
- package/dist/adapters/server-sidebar-host.js +2 -2
- package/dist/adapters/sse-host.js +68 -3
- package/dist/adapters/sse-protocol.d.ts +12 -2
- package/dist/adapters/sse-protocol.js +4 -2
- package/dist/app/AppHostProvider.js +4 -3
- package/dist/app/ModalProvider.d.ts +13 -3
- package/dist/app/ModalProvider.js +103 -24
- package/dist/app/NoticeStack.d.ts +33 -0
- package/dist/app/NoticeStack.js +90 -0
- package/dist/app/index.d.ts +3 -2
- package/dist/app/index.js +3 -2
- package/dist/appearance/AppearanceProvider.js +2 -2
- package/dist/appearance/headless/index.js +1 -1
- package/dist/approvals/headless/index.js +2 -2
- package/dist/chat/SessionFilterMenu.d.ts +1 -1
- package/dist/chat/SessionFilterMenu.js +2 -1
- package/dist/chat/Transcript.js +1 -1
- package/dist/chat/composer/Composer.js +9 -6
- package/dist/chat/composer/ComposerEditor.js +1 -1
- package/dist/chat/composer/ConversationBadges.js +1 -1
- package/dist/chat/composer/ModelChainList.js +17 -8
- package/dist/chat/composer/ModelChainTooltip.js +5 -2
- package/dist/chat/composer/use-composer-stores.js +1 -1
- package/dist/chat/composer/use-draft-target.d.ts +20 -1
- package/dist/chat/composer/use-draft-target.js +122 -6
- package/dist/chat/composer/use-new-session-defaults.d.ts +5 -1
- package/dist/chat/composer/use-new-session-defaults.js +17 -4
- package/dist/chat/composer/use-run-meter.js +1 -1
- package/dist/chat/composer/use-send-prompt.js +1 -1
- package/dist/chat/headless/chip-labels.d.ts +1 -0
- package/dist/chat/headless/chip-labels.js +1 -0
- package/dist/chat/headless/composer/index.js +2 -2
- package/dist/chat/headless/draft-target.d.ts +21 -1
- package/dist/chat/headless/fixture-host.js +17 -2
- package/dist/chat/headless/host.d.ts +3 -3
- package/dist/chat/headless/index.d.ts +9 -9
- package/dist/chat/headless/index.js +15 -15
- package/dist/chat/headless/labels.d.ts +13 -4
- package/dist/chat/headless/labels.js +8 -5
- package/dist/chat/headless/session-list.d.ts +20 -6
- package/dist/chat/headless/session-list.js +1 -0
- package/dist/chat/headless/sidebar/directory.d.ts +56 -14
- package/dist/chat/headless/sidebar/directory.js +149 -70
- package/dist/chat/headless/sidebar/index.d.ts +3 -3
- package/dist/chat/headless/sidebar/index.js +3 -3
- package/dist/chat/headless/sidebar/labels.d.ts +15 -6
- package/dist/chat/headless/sidebar/types.d.ts +3 -1
- package/dist/chat/headless/sidebar/view.d.ts +13 -5
- package/dist/chat/headless/sidebar/view.js +31 -11
- package/dist/chat/headless/streams/actions.d.ts +5 -3
- package/dist/chat/headless/streams/actions.js +3 -2
- package/dist/chat/headless/streams/index.d.ts +3 -3
- package/dist/chat/headless/streams/merge.d.ts +6 -10
- package/dist/chat/headless/streams/merge.js +7 -21
- package/dist/chat/headless/streams/session-streams.d.ts +29 -4
- package/dist/chat/headless/streams/session-streams.js +86 -0
- package/dist/chat/headless/streams/store.d.ts +162 -16
- package/dist/chat/headless/streams/store.js +334 -38
- package/dist/chat/headless/streams/types.d.ts +10 -7
- package/dist/chat/headless/transcript-labels.d.ts +1 -0
- package/dist/chat/interactions/PlanCard.js +10 -3
- package/dist/chat/interactions/QuestionForm.js +7 -3
- package/dist/chat/interactions/card-ui.d.ts +5 -3
- package/dist/chat/interactions/card-ui.js +9 -7
- package/dist/chat/sidebar/SessionSidebar.js +5 -5
- package/dist/chat/sidebar/SidebarFilterMenu.js +3 -1
- package/dist/chat/sidebar/SidebarFrame.d.ts +4 -0
- package/dist/chat/sidebar/SidebarFrame.js +27 -9
- package/dist/chat/sidebar/SidebarGroupHeader.js +1 -1
- package/dist/chat/sidebar/SidebarHostProvider.d.ts +8 -5
- package/dist/chat/sidebar/SidebarHostProvider.js +13 -9
- package/dist/chat/sidebar/SidebarToggleButton.js +7 -3
- package/dist/chat/sidebar/index.d.ts +2 -2
- package/dist/chat/sidebar/session-menu.js +4 -4
- package/dist/chat/sidebar/useSaveViewAsSpace.js +2 -2
- package/dist/chat/testing/contract.js +2 -2
- package/dist/chat/transcript/AuthFailureCard.js +11 -8
- package/dist/chat/transcript/BadgeMenu.js +13 -2
- package/dist/chat/transcript/MermaidDiagram.js +7 -3
- package/dist/chat/transcript/fold.d.ts +4 -0
- package/dist/chat/transcript/fold.js +53 -22
- package/dist/chat/transcript/script-input.d.ts +1 -1
- package/dist/chat/transcript/shell-block.js +8 -4
- package/dist/chat/transcript/useStickToBottom.js +12 -0
- package/dist/components/BrowserSignIn.js +23 -21
- package/dist/components/Form.d.ts +6 -4
- package/dist/components/Form.js +16 -8
- package/dist/components/LoadError.d.ts +4 -2
- package/dist/components/LoadError.js +13 -9
- package/dist/components/Notice.d.ts +29 -0
- package/dist/components/Notice.js +63 -0
- package/dist/components/PanelEmpty.d.ts +1 -1
- package/dist/components/PanelEmpty.js +4 -2
- package/dist/components/Restricted.d.ts +1 -1
- package/dist/components/palette/PaletteList.js +8 -1
- package/dist/components/palette/PalettePanel.js +14 -6
- package/dist/core.css +24 -5
- package/dist/dist/{index-Bq87OcGy.d.ts → index-C6rzc-tt.d.ts} +28 -3
- package/dist/dist/index.d.ts +2 -2
- package/dist/dist/{timeout-B5pO5I5a.d.ts → timeout-Cz9dRF8Q.d.ts} +1 -1
- package/dist/extensions/ExtensionSettingsPage.js +2 -5
- package/dist/extensions/ExtensionSettingsSection.js +5 -4
- package/dist/extensions/ExtensionSettingsSidebar.js +3 -7
- package/dist/extensions/SettingsWireForm.d.ts +1 -7
- package/dist/extensions/SettingsWireForm.js +7 -5
- package/dist/extensions/headless/fixture-host.d.ts +1 -5
- package/dist/extensions/headless/fixture-host.js +2 -5
- package/dist/extensions/headless/host.d.ts +1 -11
- package/dist/extensions/headless/index.d.ts +3 -3
- package/dist/extensions/headless/index.js +6 -6
- package/dist/extensions/headless/select.d.ts +1 -11
- package/dist/extensions/headless/select.js +1 -18
- package/dist/extensions/hooks.js +1 -1
- package/dist/files/EditorColumn.js +13 -2
- package/dist/files/MediaDiff.js +1 -1
- package/dist/files/TreeColumn.js +13 -20
- package/dist/files/useEntryActions.js +1 -1
- package/dist/files/useOpenFiles.js +3 -1
- package/dist/git/BranchMenu.js +6 -4
- package/dist/git/ImportRepoDialog.js +18 -9
- package/dist/git/MoveSessionDialog.js +16 -8
- package/dist/git/RemoteFolderPicker.js +35 -17
- package/dist/git/SyncChip.js +17 -17
- package/dist/git/WherePicker.d.ts +16 -1
- package/dist/git/WherePicker.js +81 -37
- package/dist/git/headless/environment.d.ts +33 -3
- package/dist/git/headless/environment.js +33 -5
- package/dist/git/headless/index.d.ts +2 -2
- package/dist/git/headless/index.js +2 -2
- package/dist/git/headless/labels.d.ts +15 -2
- package/dist/git/headless/labels.js +17 -4
- package/dist/git/useEnvironmentChoices.d.ts +3 -1
- package/dist/git/useEnvironmentChoices.js +7 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/keybindings/KeyCommands.js +1 -1
- package/dist/keybindings/KeybindingsProvider.js +1 -1
- package/dist/keybindings/headless/index.js +2 -2
- package/dist/keybindings/headless/overrides.js +1 -1
- package/dist/labels.d.ts +5 -0
- package/dist/labels.js +5 -0
- package/dist/machines/AddMachineDialog.d.ts +34 -0
- package/dist/machines/AddMachineDialog.js +464 -0
- package/dist/machines/Banners.d.ts +33 -4
- package/dist/machines/Banners.js +64 -3
- package/dist/machines/DaemonMenu.js +27 -4
- package/dist/machines/HostCapabilities.d.ts +1 -3
- package/dist/machines/HostCapabilities.js +24 -45
- package/dist/machines/HostSyncPanel.js +124 -130
- package/dist/machines/HostsSection.d.ts +4 -1
- package/dist/machines/HostsSection.js +30 -7
- package/dist/machines/MachinesExplainer.d.ts +17 -0
- package/dist/machines/MachinesExplainer.js +71 -0
- package/dist/machines/MachinesProvider.d.ts +14 -2
- package/dist/machines/MachinesProvider.js +35 -1
- package/dist/machines/ServerAddedCard.d.ts +31 -0
- package/dist/machines/ServerAddedCard.js +72 -0
- package/dist/machines/ServerCard.js +91 -215
- package/dist/machines/ServerMachinesPanel.d.ts +2 -2
- package/dist/machines/ServerMachinesPanel.js +184 -323
- package/dist/machines/ServerUpdatePanel.js +51 -40
- package/dist/machines/ShareThisComputerForm.d.ts +19 -0
- package/dist/machines/ShareThisComputerForm.js +133 -0
- package/dist/machines/SyncOutcomeBadge.js +1 -1
- package/dist/machines/TokensPanel.d.ts +5 -3
- package/dist/machines/TokensPanel.js +98 -78
- package/dist/machines/headless/fixture-host.d.ts +19 -3
- package/dist/machines/headless/fixture-host.js +43 -6
- package/dist/machines/headless/fixtures.js +4 -6
- package/dist/machines/headless/host.d.ts +40 -19
- package/dist/machines/headless/index.d.ts +3 -3
- package/dist/machines/headless/index.js +3 -3
- package/dist/machines/headless/labels.d.ts +63 -20
- package/dist/machines/headless/labels.js +88 -25
- package/dist/machines/headless/messages.js +8 -0
- package/dist/machines/headless/stores.d.ts +9 -2
- package/dist/machines/headless/stores.js +28 -1
- package/dist/machines/index.d.ts +7 -3
- package/dist/machines/index.js +8 -4
- package/dist/machines/testing/contract.d.ts +15 -3
- package/dist/machines/testing/contract.js +68 -14
- package/dist/motion/grow.d.ts +8 -1
- package/dist/motion/grow.js +10 -4
- package/dist/onboarding/headless/labels.d.ts +13 -0
- package/dist/onboarding/headless/labels.js +8 -0
- package/dist/onboarding/sources/SourceBrowser.js +11 -7
- package/dist/onboarding/steps/ImportStep.js +4 -1
- package/dist/onboarding/steps/ReadyStep.js +9 -2
- package/dist/onboarding/steps/connect/KeyForm.js +6 -2
- package/dist/onboarding/steps/connect/ProviderPanel.js +6 -2
- package/dist/onboarding/steps/connect/ProviderReady.js +25 -20
- package/dist/onboarding/steps/tasks.js +17 -14
- package/dist/palette/app-sources.js +1 -1
- package/dist/server/sse-handler.js +141 -19
- package/dist/session/ArtifactsPanel.js +40 -18
- package/dist/session/PlanTracker.js +13 -8
- package/dist/session/ProjectHome.js +13 -11
- package/dist/session/RemindersPanel.js +35 -17
- package/dist/session/RunningWorkDialog.js +6 -2
- package/dist/session/SecretsPanel.js +29 -10
- package/dist/session/SessionDetailsDialog.d.ts +1 -1
- package/dist/session/SessionDetailsDialog.js +18 -10
- package/dist/session/SideChat.js +10 -7
- package/dist/session/TurnDetailsDialog.js +19 -5
- package/dist/session/UsagePanel.js +10 -4
- package/dist/session/headless/host.d.ts +2 -0
- package/dist/session/headless/index.js +2 -2
- package/dist/session/headless/labels.d.ts +19 -1
- package/dist/session/headless/labels.js +15 -1
- package/dist/session/headless/queue.js +2 -1
- package/dist/session/headless/reminder-labels.d.ts +4 -0
- package/dist/session/headless/reminder-labels.js +4 -0
- package/dist/settings/SettingsRestricted.d.ts +1 -1
- package/dist/settings/SettingsRestricted.js +4 -4
- package/dist/settings/SettingsShell.d.ts +7 -0
- package/dist/settings/SettingsShell.js +6 -1
- package/dist/settings/headless/fixture-performance.d.ts +1 -1
- package/dist/settings/headless/host.d.ts +2 -2
- package/dist/settings/headless/index.js +1 -1
- package/dist/settings/headless/labels.d.ts +3 -3
- package/dist/settings/headless/labels.js +3 -3
- package/dist/settings/headless/performance.d.ts +3 -4
- package/dist/settings/headless/search.d.ts +1 -1
- package/dist/settings/index.d.ts +2 -1
- package/dist/settings/index.js +2 -1
- package/dist/settings/sections/appearance/AppearanceSection.js +2 -2
- package/dist/settings/sections/claude-import/ClaudeImportDialog.js +1 -1
- package/dist/settings/sections/editor/EditorSection.js +8 -5
- package/dist/settings/sections/editor/labels.d.ts +1 -0
- package/dist/settings/sections/editor/labels.js +1 -0
- package/dist/settings/sections/environments/EnvironmentsSection.js +21 -14
- package/dist/settings/sections/environments/labels.d.ts +1 -0
- package/dist/settings/sections/environments/labels.js +2 -1
- package/dist/settings/sections/extensions/ChangeOriginDialog.js +1 -1
- package/dist/settings/sections/extensions/CreateExtensionDialog.js +1 -1
- package/dist/settings/sections/extensions/ExtensionConfigRows.d.ts +1 -3
- package/dist/settings/sections/extensions/ExtensionConfigRows.js +20 -19
- package/dist/settings/sections/extensions/ExtensionOptionsSection.js +2 -1
- package/dist/settings/sections/extensions/ExtensionsSection.js +1 -1
- package/dist/settings/sections/extensions/options-labels.d.ts +2 -1
- package/dist/settings/sections/extensions/options-labels.js +2 -1
- package/dist/settings/sections/host-catalog/HostCatalogSection.js +1 -1
- package/dist/settings/sections/index.d.ts +2 -1
- package/dist/settings/sections/index.js +2 -1
- package/dist/settings/sections/instructions/InstructionsSection.js +1 -1
- package/dist/settings/sections/logs/LogsSection.d.ts +2 -2
- package/dist/settings/sections/logs/LogsSection.js +2 -2
- package/dist/settings/sections/mcp/McpSection.d.ts +1 -1
- package/dist/settings/sections/mcp/McpSection.js +13 -7
- package/dist/settings/sections/mcp/McpServerRow.js +21 -14
- package/dist/settings/sections/mcp/labels.d.ts +8 -2
- package/dist/settings/sections/mcp/labels.js +8 -2
- package/dist/settings/sections/models/ModelRows.js +1 -1
- package/dist/settings/sections/models/NewChatPlaceRow.d.ts +26 -0
- package/dist/settings/sections/models/NewChatPlaceRow.js +78 -0
- package/dist/settings/sections/models/SpacesDefaultsSection.js +15 -3
- package/dist/settings/sections/models/labels.d.ts +7 -0
- package/dist/settings/sections/models/labels.js +7 -0
- package/dist/settings/sections/models/model-test.js +7 -4
- package/dist/settings/sections/performance/PerformanceSection.js +16 -6
- package/dist/settings/sections/performance/labels.d.ts +1 -1
- package/dist/settings/sections/performance/labels.js +1 -1
- package/dist/settings/sections/providers/ProvidersSection.d.ts +1 -1
- package/dist/settings/sections/providers/ProvidersSection.js +15 -8
- package/dist/settings/sections/providers/ServerProvidersSection.d.ts +1 -1
- package/dist/settings/sections/providers/ServerProvidersSection.js +12 -6
- package/dist/settings/sections/providers/labels.d.ts +2 -2
- package/dist/settings/sections/providers/labels.js +2 -2
- package/dist/settings/sections/shared/catalog.js +1 -1
- package/dist/settings/sections/skills/SkillsSection.js +1 -1
- package/dist/settings/testing/performance.contract.js +8 -12
- package/dist/styles.css +32 -3
- package/dist/terminal/HostTerminalSurface.js +17 -7
- package/dist/terminal/TerminalPanel.js +30 -17
- package/dist/terminal/TerminalSurface.js +11 -4
- package/dist/terminal/headless/labels.d.ts +5 -0
- package/dist/terminal/headless/labels.js +5 -0
- package/dist/terminal/headless/store.d.ts +1 -1
- package/dist/terminal/headless/store.js +6 -3
- package/dist/workspace/LayoutBudget.d.ts +5 -1
- package/dist/workspace/LayoutBudget.js +14 -1
- package/dist/workspace/PanelContentView.d.ts +1 -1
- package/dist/workspace/PanelContentView.js +17 -6
- package/dist/workspace/WorkspaceProvider.js +4 -3
- package/dist/workspace/extension-tabs.js +1 -1
- package/dist/workspace/headless/index.js +1 -1
- package/dist/workspace/headless/labels.d.ts +1 -0
- package/dist/workspace/headless/labels.js +1 -0
- package/package.json +3 -3
- package/src/styles/motion.css +8 -0
- package/src/styles/primitives.css +7 -0
|
@@ -99,7 +99,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
99
99
|
authSignedInRetrying: string;
|
|
100
100
|
authFixed: string;
|
|
101
101
|
authTryAgain: string;
|
|
102
|
-
|
|
102
|
+
authSignInFailed: string;
|
|
103
103
|
sessionEventLabel: (title: string, verb: string, needsAttention: boolean) => string;
|
|
104
104
|
clickToAnswer: string;
|
|
105
105
|
openSession: string;
|
|
@@ -160,7 +160,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
160
160
|
/** Copy button of a diagram frame. */
|
|
161
161
|
copyDiagramSource: string;
|
|
162
162
|
/** Under a fence that could not be drawn; `at` is `line 3, column 7` or empty. */
|
|
163
|
-
|
|
163
|
+
diagramNotDrawn: (at: string) => string;
|
|
164
164
|
/** Where a diagram error is. */
|
|
165
165
|
diagramErrorAt: (line: number, column: number) => string;
|
|
166
166
|
stopCommand: string;
|
|
@@ -190,7 +190,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
190
190
|
/** The output kept only its end. */
|
|
191
191
|
blockRunTruncated: string;
|
|
192
192
|
/** The panel when the block could not run. */
|
|
193
|
-
|
|
193
|
+
blockRunError: string;
|
|
194
194
|
/** After a failed run: it may have wanted input, which a terminal gives. */
|
|
195
195
|
blockRunNeedsTerminal: string;
|
|
196
196
|
working: string;
|
|
@@ -221,6 +221,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
221
221
|
composerPlaceholderSteer: string;
|
|
222
222
|
composerPlaceholderQueue: string;
|
|
223
223
|
sendMessage: string;
|
|
224
|
+
composerSendFailed: string;
|
|
224
225
|
sendHint: string;
|
|
225
226
|
stopRun: string;
|
|
226
227
|
stopHint: string;
|
|
@@ -265,7 +266,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
265
266
|
modelsJumpToProvider: string;
|
|
266
267
|
modelsJumpHint: (provider: string, digit: number | null) => string;
|
|
267
268
|
modelsLoading: string;
|
|
268
|
-
|
|
269
|
+
modelsLoadError: string;
|
|
269
270
|
modelsNoProviders: string;
|
|
270
271
|
modelsNoMatch: (query: string) => string;
|
|
271
272
|
modelsTypeAnId: string;
|
|
@@ -322,6 +323,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
322
323
|
inboxRecent: string;
|
|
323
324
|
inboxPreviousSession: string;
|
|
324
325
|
unsupportedInteraction: (tool: string) => string;
|
|
326
|
+
answerSendFailed: string;
|
|
325
327
|
planRejectNote: string;
|
|
326
328
|
planReviseNote: string;
|
|
327
329
|
planRejectPlaceholder: string;
|
|
@@ -386,6 +388,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
386
388
|
filterSorts: {
|
|
387
389
|
recency: string;
|
|
388
390
|
createdTime: string;
|
|
391
|
+
lastUserMessage: string;
|
|
389
392
|
alphabetical: string;
|
|
390
393
|
};
|
|
391
394
|
filterAllProjects: string;
|
|
@@ -477,6 +480,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
477
480
|
interactionAnsweredBy: (who: string) => string;
|
|
478
481
|
badgePathUnavailable: string;
|
|
479
482
|
badgeNoComposer: string;
|
|
483
|
+
badgeActionFailed: string;
|
|
480
484
|
badgeCopied: string;
|
|
481
485
|
badgeOpenIn: (app: string) => string;
|
|
482
486
|
badgeOpenInBrowserPane: string;
|
|
@@ -512,6 +516,9 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
512
516
|
previous: string;
|
|
513
517
|
next: string;
|
|
514
518
|
loading: string;
|
|
519
|
+
noticeDetails: string;
|
|
520
|
+
noticeStack: string;
|
|
521
|
+
noticeDismiss: string;
|
|
515
522
|
filePath: (path: string) => string;
|
|
516
523
|
rename: string;
|
|
517
524
|
current: string;
|
|
@@ -529,6 +536,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
529
536
|
modalBack: string;
|
|
530
537
|
screenBack: (screen: string) => string;
|
|
531
538
|
screenBackKey: string;
|
|
539
|
+
screenNavBack: (screen: string) => string;
|
|
532
540
|
paletteLabel: string;
|
|
533
541
|
paletteFilter: string;
|
|
534
542
|
paletteBack: string;
|
|
@@ -592,6 +600,7 @@ declare const DEFAULT_CHAT_LABELS: {
|
|
|
592
600
|
openInNewTab: string;
|
|
593
601
|
terminal: string;
|
|
594
602
|
terminalLoadFailed: (message: string) => string;
|
|
603
|
+
terminalStartFailed: string;
|
|
595
604
|
terminalExited: (code: number) => string;
|
|
596
605
|
};
|
|
597
606
|
/** The shape of the chat label dictionary: every key of {@link DEFAULT_CHAT_LABELS}. Some values are functions that build a string. */
|
|
@@ -133,7 +133,7 @@ const DEFAULT_CHAT_LABELS = {
|
|
|
133
133
|
authSignedInRetrying: "Signed in · retrying",
|
|
134
134
|
authFixed: "fixed",
|
|
135
135
|
authTryAgain: "Try again",
|
|
136
|
-
|
|
136
|
+
authSignInFailed: "Sign-in didn't work.",
|
|
137
137
|
sessionEventLabel: (title, verb, needsAttention) => `${title} ${verb}${needsAttention ? ". Click to answer" : ""}`,
|
|
138
138
|
clickToAnswer: "Answer",
|
|
139
139
|
openSession: "open →",
|
|
@@ -194,7 +194,7 @@ const DEFAULT_CHAT_LABELS = {
|
|
|
194
194
|
/** Copy button of a diagram frame. */
|
|
195
195
|
copyDiagramSource: "Copy diagram source",
|
|
196
196
|
/** Under a fence that could not be drawn; `at` is `line 3, column 7` or empty. */
|
|
197
|
-
|
|
197
|
+
diagramNotDrawn: (at) => at ? `Diagram not drawn (${at}).` : "Diagram not drawn.",
|
|
198
198
|
/** Where a diagram error is. */
|
|
199
199
|
diagramErrorAt: (line, column) => column ? `line ${line}, column ${column}` : `line ${line}`,
|
|
200
200
|
stopCommand: "Stop command",
|
|
@@ -224,7 +224,7 @@ const DEFAULT_CHAT_LABELS = {
|
|
|
224
224
|
/** The output kept only its end. */
|
|
225
225
|
blockRunTruncated: "Earlier output was cut.",
|
|
226
226
|
/** The panel when the block could not run. */
|
|
227
|
-
|
|
227
|
+
blockRunError: "Couldn't run this block.",
|
|
228
228
|
/** After a failed run: it may have wanted input, which a terminal gives. */
|
|
229
229
|
blockRunNeedsTerminal: "Needs input? Run it in a terminal.",
|
|
230
230
|
working: "Working",
|
|
@@ -255,6 +255,7 @@ const DEFAULT_CHAT_LABELS = {
|
|
|
255
255
|
composerPlaceholderSteer: "Enter adds it to the run. Alt+Enter sends it when the run ends.",
|
|
256
256
|
composerPlaceholderQueue: "Enter sends it when the run ends. Alt+Enter adds it to the run.",
|
|
257
257
|
sendMessage: "Send message",
|
|
258
|
+
composerSendFailed: "Couldn't send your message.",
|
|
258
259
|
sendHint: "Send (Enter)",
|
|
259
260
|
stopRun: "Stop",
|
|
260
261
|
stopHint: "Stop the run (Esc)",
|
|
@@ -299,7 +300,7 @@ const DEFAULT_CHAT_LABELS = {
|
|
|
299
300
|
modelsJumpToProvider: "Jump to provider",
|
|
300
301
|
modelsJumpHint: (provider, digit) => digit ? `${provider} (⌘${digit})` : provider,
|
|
301
302
|
modelsLoading: "Loading…",
|
|
302
|
-
|
|
303
|
+
modelsLoadError: "Couldn't load the models.",
|
|
303
304
|
modelsNoProviders: "No provider is signed in. Sign in under Settings → Accounts.",
|
|
304
305
|
modelsNoMatch: (query) => `No model matches "${query}".`,
|
|
305
306
|
modelsTypeAnId: "Type any model id to use it. Put a provider first to pick one, for example \"xai grok-9\".",
|
|
@@ -356,6 +357,7 @@ const DEFAULT_CHAT_LABELS = {
|
|
|
356
357
|
inboxRecent: "Recent",
|
|
357
358
|
inboxPreviousSession: "previous session",
|
|
358
359
|
unsupportedInteraction: (tool) => `The agent is waiting on ${tool}, which this view cannot answer.`,
|
|
360
|
+
answerSendFailed: "Couldn't send your answer.",
|
|
359
361
|
planRejectNote: "Rejecting stops the run. Add a note so the agent knows why.",
|
|
360
362
|
planReviseNote: "Say what should change. The agent sends back a revised plan.",
|
|
361
363
|
planRejectPlaceholder: "Why you reject this plan (optional)",
|
|
@@ -419,7 +421,8 @@ const DEFAULT_CHAT_LABELS = {
|
|
|
419
421
|
},
|
|
420
422
|
filterSorts: {
|
|
421
423
|
recency: "Recency",
|
|
422
|
-
createdTime: "
|
|
424
|
+
createdTime: "Creation time",
|
|
425
|
+
lastUserMessage: "Last user message",
|
|
423
426
|
alphabetical: "Alphabetically"
|
|
424
427
|
},
|
|
425
428
|
filterAllProjects: "All",
|
|
@@ -13,11 +13,16 @@ interface ListableSession {
|
|
|
13
13
|
createdAt: number;
|
|
14
14
|
/** Epoch milliseconds of the last activity. Used by the `recency` sort and date grouping. */
|
|
15
15
|
updatedAt?: number;
|
|
16
|
+
/** Epoch milliseconds of the user's last typed message. Used by the `lastUserMessage` sort. If absent, `createdAt` stands in. */
|
|
17
|
+
lastUserMessageAt?: number;
|
|
16
18
|
}
|
|
17
19
|
/** How the list groups sessions: `none` (flat), `date`, `state`, or `project`. */
|
|
18
20
|
type SessionGroupBy = 'none' | 'date' | 'state' | 'project';
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
+
/**
|
|
22
|
+
* How sessions are ordered inside a group: `recency` (last activity, newest first), `createdTime` (newest first),
|
|
23
|
+
* `lastUserMessage` (the user's last typed message, newest first, else creation), or `alphabetical` by title.
|
|
24
|
+
*/
|
|
25
|
+
type SessionSortBy = 'recency' | 'createdTime' | 'lastUserMessage' | 'alphabetical';
|
|
21
26
|
/** One row of the flat list {@link buildSessionRows} returns: a group `header`, a `session`, or a `showMore` row that ends a capped group. */
|
|
22
27
|
type SessionListRow<S> = {
|
|
23
28
|
kind: 'header';
|
|
@@ -202,7 +207,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
202
207
|
authSignedInRetrying: string;
|
|
203
208
|
authFixed: string;
|
|
204
209
|
authTryAgain: string;
|
|
205
|
-
|
|
210
|
+
authSignInFailed: string;
|
|
206
211
|
sessionEventLabel: (title: string, verb: string, needsAttention: boolean) => string;
|
|
207
212
|
clickToAnswer: string;
|
|
208
213
|
openSession: string;
|
|
@@ -245,7 +250,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
245
250
|
zoomOutDiagram: string;
|
|
246
251
|
fitDiagram: string;
|
|
247
252
|
copyDiagramSource: string;
|
|
248
|
-
|
|
253
|
+
diagramNotDrawn: (at: string) => string;
|
|
249
254
|
diagramErrorAt: (line: number, column: number) => string;
|
|
250
255
|
stopCommand: string;
|
|
251
256
|
shellCancelled: string;
|
|
@@ -266,7 +271,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
266
271
|
blockRunStopped: string;
|
|
267
272
|
blockRunTimedOut: string;
|
|
268
273
|
blockRunTruncated: string;
|
|
269
|
-
|
|
274
|
+
blockRunError: string;
|
|
270
275
|
blockRunNeedsTerminal: string;
|
|
271
276
|
working: string;
|
|
272
277
|
foldSteps: (count: number) => string;
|
|
@@ -296,6 +301,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
296
301
|
composerPlaceholderSteer: string;
|
|
297
302
|
composerPlaceholderQueue: string;
|
|
298
303
|
sendMessage: string;
|
|
304
|
+
composerSendFailed: string;
|
|
299
305
|
sendHint: string;
|
|
300
306
|
stopRun: string;
|
|
301
307
|
stopHint: string;
|
|
@@ -340,7 +346,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
340
346
|
modelsJumpToProvider: string;
|
|
341
347
|
modelsJumpHint: (provider: string, digit: number | null) => string;
|
|
342
348
|
modelsLoading: string;
|
|
343
|
-
|
|
349
|
+
modelsLoadError: string;
|
|
344
350
|
modelsNoProviders: string;
|
|
345
351
|
modelsNoMatch: (query: string) => string;
|
|
346
352
|
modelsTypeAnId: string;
|
|
@@ -397,6 +403,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
397
403
|
inboxRecent: string;
|
|
398
404
|
inboxPreviousSession: string;
|
|
399
405
|
unsupportedInteraction: (tool: string) => string;
|
|
406
|
+
answerSendFailed: string;
|
|
400
407
|
planRejectNote: string;
|
|
401
408
|
planReviseNote: string;
|
|
402
409
|
planRejectPlaceholder: string;
|
|
@@ -461,6 +468,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
461
468
|
filterSorts: {
|
|
462
469
|
recency: string;
|
|
463
470
|
createdTime: string;
|
|
471
|
+
lastUserMessage: string;
|
|
464
472
|
alphabetical: string;
|
|
465
473
|
};
|
|
466
474
|
filterAllProjects: string;
|
|
@@ -548,6 +556,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
548
556
|
interactionAnsweredBy: (who: string) => string;
|
|
549
557
|
badgePathUnavailable: string;
|
|
550
558
|
badgeNoComposer: string;
|
|
559
|
+
badgeActionFailed: string;
|
|
551
560
|
badgeCopied: string;
|
|
552
561
|
badgeOpenIn: (app: string) => string;
|
|
553
562
|
badgeOpenInBrowserPane: string;
|
|
@@ -583,6 +592,9 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
583
592
|
previous: string;
|
|
584
593
|
next: string;
|
|
585
594
|
loading: string;
|
|
595
|
+
noticeDetails: string;
|
|
596
|
+
noticeStack: string;
|
|
597
|
+
noticeDismiss: string;
|
|
586
598
|
filePath: (path: string) => string;
|
|
587
599
|
rename: string;
|
|
588
600
|
current: string;
|
|
@@ -600,6 +612,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
600
612
|
modalBack: string;
|
|
601
613
|
screenBack: (screen: string) => string;
|
|
602
614
|
screenBackKey: string;
|
|
615
|
+
screenNavBack: (screen: string) => string;
|
|
603
616
|
paletteLabel: string;
|
|
604
617
|
paletteFilter: string;
|
|
605
618
|
paletteBack: string;
|
|
@@ -663,6 +676,7 @@ declare function dateBucket(at: number, now: number, labels?: {
|
|
|
663
676
|
openInNewTab: string;
|
|
664
677
|
terminal: string;
|
|
665
678
|
terminalLoadFailed: (message: string) => string;
|
|
679
|
+
terminalStartFailed: string;
|
|
666
680
|
terminalExited: (code: number) => string;
|
|
667
681
|
}, calendar?: CalendarOptions): string;
|
|
668
682
|
/** From this many days {@link relativeTime} shows a date (`Mar 4`), not a duration: pass it to core `ageStep` to know whether the label takes "ago". */
|
|
@@ -125,6 +125,7 @@ function compareSessions(a, b, sort) {
|
|
|
125
125
|
switch (sort) {
|
|
126
126
|
case "alphabetical": return (a.title || "").localeCompare(b.title || "");
|
|
127
127
|
case "createdTime": return b.createdAt - a.createdAt;
|
|
128
|
+
case "lastUserMessage": return (b.lastUserMessageAt ?? b.createdAt) - (a.lastUserMessageAt ?? a.createdAt);
|
|
128
129
|
default: return (b.updatedAt ?? 0) - (a.updatedAt ?? 0);
|
|
129
130
|
}
|
|
130
131
|
}
|
|
@@ -15,6 +15,21 @@ interface ProjectInSpace {
|
|
|
15
15
|
/** Its repository, when its group also lists the repository's sessions on other machines (`isProjectMember`). */
|
|
16
16
|
repoKey?: string;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* One session's row changed on its host. It was created or updated, with the
|
|
20
|
+
* row the host lists now, or it was deleted. Create and update are applied
|
|
21
|
+
* alike. If `row` is absent, no list shows the session and the change is ignored.
|
|
22
|
+
*/
|
|
23
|
+
type SessionRowChange<S extends {
|
|
24
|
+
id: string;
|
|
25
|
+
}> = {
|
|
26
|
+
op: 'create' | 'update';
|
|
27
|
+
sessionId: S['id'];
|
|
28
|
+
row?: S;
|
|
29
|
+
} | {
|
|
30
|
+
op: 'delete';
|
|
31
|
+
sessionId: S['id'];
|
|
32
|
+
};
|
|
18
33
|
/** What deleting a session did with its environment. */
|
|
19
34
|
type SessionRemoval = {
|
|
20
35
|
kept: false;
|
|
@@ -41,8 +56,8 @@ interface SessionDirectorySource<S extends SidebarListSession, C = unknown> {
|
|
|
41
56
|
setSpace?(sessionId: S['id'], spaceId: string): Promise<void>;
|
|
42
57
|
/** Resolves to `{ kept: true }` when the session's environment stayed on disk. */
|
|
43
58
|
remove?(sessionId: S['id']): Promise<void | SessionRemoval>;
|
|
44
|
-
/** Fires
|
|
45
|
-
onChanged?(listener: (
|
|
59
|
+
/** Fires with each session row change, its new row included. */
|
|
60
|
+
onChanged?(listener: (change: SessionRowChange<S>) => void): () => void;
|
|
46
61
|
/**
|
|
47
62
|
* Fires with a session's facets when the extensions computed new ones (`sessions:facets`): every
|
|
48
63
|
* value, keyed `<extensionId>.<key>`. Absent: facets change only with a re-read.
|
|
@@ -65,6 +80,8 @@ interface SessionDirectoryStreams<K extends string, P> {
|
|
|
65
80
|
hasEvents(sessionId: K): boolean;
|
|
66
81
|
/** Cache a loaded transcript page. */
|
|
67
82
|
setEventsPage(sessionId: K, page: P): void;
|
|
83
|
+
/** Bring a session's window back in step after its live signals may have gone missing (a reconnect). It reads the rows appended since its history position, else its tail. */
|
|
84
|
+
resync(sessionId: K): void;
|
|
68
85
|
/** Drop every cached transcript except these. */
|
|
69
86
|
evictExcept(keep: ReadonlySet<K>): void;
|
|
70
87
|
/** Drop every stream (a runtime switch). */
|
|
@@ -72,6 +89,22 @@ interface SessionDirectoryStreams<K extends string, P> {
|
|
|
72
89
|
/** Drop one session's stream (deleted). */
|
|
73
90
|
reset(sessionId: K): void;
|
|
74
91
|
}
|
|
92
|
+
/** What a transport knows of the runtime process behind a connection change (`signals.onRuntime`). */
|
|
93
|
+
interface RuntimeOrigin {
|
|
94
|
+
/** When connected, the runtime process the live signals come from (a daemon's `signalEpoch`). */
|
|
95
|
+
epoch?: string;
|
|
96
|
+
/** When down, whether the runtime is being reconnected. It is resumed if it comes back as the same process. */
|
|
97
|
+
resuming?: boolean;
|
|
98
|
+
/** When down, whether an attempt to reconnect is in flight. A down notice after one, with no comeback between, means the attempt failed. */
|
|
99
|
+
connecting?: boolean;
|
|
100
|
+
}
|
|
101
|
+
/** The runtime's connection as a transport knows it now (`signals.currentRuntime`). */
|
|
102
|
+
interface RuntimeNow {
|
|
103
|
+
/** Whether the transport reaches the runtime now. */
|
|
104
|
+
connected: boolean;
|
|
105
|
+
/** When connected, the runtime process the live signals come from. */
|
|
106
|
+
origin?: RuntimeOrigin;
|
|
107
|
+
}
|
|
75
108
|
/** A remote host as the directory follows it. */
|
|
76
109
|
interface DirectoryServer {
|
|
77
110
|
/** The host id rows carry as `hostId`. */
|
|
@@ -112,8 +145,19 @@ interface SessionDirectoryOptions<S extends SidebarListSession, P, C = unknown>
|
|
|
112
145
|
signals?: {
|
|
113
146
|
/** A run ended. */
|
|
114
147
|
onRunEnd?(listener: (sessionId: S['id'], ok: boolean) => void): () => void;
|
|
115
|
-
/**
|
|
116
|
-
|
|
148
|
+
/**
|
|
149
|
+
* The runtime connected or disconnected (a daemon, a server connection). The transport passes `origin`
|
|
150
|
+
* when it knows it. When connected, it names the runtime process the signals come from (`epoch`). When
|
|
151
|
+
* down, it says whether the runtime is being reconnected and resumed (`resuming`). A reconnect to the
|
|
152
|
+
* same process keeps the windows, and what they missed is replayed. Any other change drops them.
|
|
153
|
+
*/
|
|
154
|
+
onRuntime?(listener: (connected: boolean, origin?: RuntimeOrigin) => void): () => void;
|
|
155
|
+
/**
|
|
156
|
+
* The runtime's connection now, read once at start. A window that mounts after the last `onRuntime`
|
|
157
|
+
* (a second window, a reload) then knows which process its streams come from. A reconnect to that
|
|
158
|
+
* process keeps them. `null` means unknown.
|
|
159
|
+
*/
|
|
160
|
+
currentRuntime?(): Promise<RuntimeNow | null>;
|
|
117
161
|
/** A remote host was removed, with the sessions it held and the words to show. */
|
|
118
162
|
onHostRemoved?(listener: (removed: {
|
|
119
163
|
hostId: string;
|
|
@@ -132,9 +176,7 @@ interface SessionDirectoryOptions<S extends SidebarListSession, P, C = unknown>
|
|
|
132
176
|
request(run: () => void): number;
|
|
133
177
|
cancel(handle: number): void;
|
|
134
178
|
};
|
|
135
|
-
/**
|
|
136
|
-
changedDebounceMs?: number;
|
|
137
|
-
/** A refresh is about to list these rows (an app's per-row bookkeeping, before they render). */
|
|
179
|
+
/** A refresh or a change is about to list these rows (an app's per-row bookkeeping, before they render). */
|
|
138
180
|
onListed?(rows: readonly S[]): void;
|
|
139
181
|
/** A session was deleted: drop what the app keeps for it (panels, layouts). */
|
|
140
182
|
onRemoved?(sessionId: S['id']): void;
|
|
@@ -202,17 +244,17 @@ interface SessionDirectory<S extends SidebarListSession, C = unknown> {
|
|
|
202
244
|
create(input: C & {
|
|
203
245
|
spaceId?: string;
|
|
204
246
|
}): Promise<S>;
|
|
205
|
-
/** Renames a session
|
|
247
|
+
/** Renames a session (its row comes back as a change). */
|
|
206
248
|
rename(sessionId: S['id'], title: string): Promise<void>;
|
|
207
249
|
/** Stars or unstars a session at once; a failed write puts it back. */
|
|
208
250
|
setFavorite(sessionId: S['id'], favorite: boolean): Promise<void>;
|
|
209
|
-
/** Archives or restores a session
|
|
251
|
+
/** Archives or restores a session. */
|
|
210
252
|
setArchived(sessionId: S['id'], archived: boolean): Promise<void>;
|
|
211
|
-
/** Archives sessions
|
|
253
|
+
/** Archives sessions. */
|
|
212
254
|
archiveMany(sessionIds: readonly S['id'][]): Promise<void>;
|
|
213
|
-
/** Delete one session
|
|
255
|
+
/** Delete one session. */
|
|
214
256
|
drop(sessionId: S['id']): Promise<SessionRemoval>;
|
|
215
|
-
/** Delete sessions
|
|
257
|
+
/** Delete sessions. Resolves to how many kept their environment. */
|
|
216
258
|
removeMany(sessionIds: readonly S['id'][]): Promise<{
|
|
217
259
|
kept: number;
|
|
218
260
|
reason?: string;
|
|
@@ -224,7 +266,7 @@ interface SessionDirectory<S extends SidebarListSession, C = unknown> {
|
|
|
224
266
|
setActiveSpace(spaceId: string): void;
|
|
225
267
|
/** Step to the next or previous space, wrapping at either end; false with spaces off or only one space. */
|
|
226
268
|
stepSpace(delta: 1 | -1): boolean;
|
|
227
|
-
/** Moves a session to a space
|
|
269
|
+
/** Moves a session to a space. */
|
|
228
270
|
setSessionSpace(sessionId: S['id'], spaceId: string): Promise<void>;
|
|
229
271
|
/** Hides a space from the switcher or shows it again; hiding the shown space shows the default one. */
|
|
230
272
|
setSpaceHidden(spaceId: string, hidden: boolean): void;
|
|
@@ -293,4 +335,4 @@ declare function filterDirectorySessions<S extends SidebarListSession>(sessions:
|
|
|
293
335
|
now?: number;
|
|
294
336
|
}): readonly S[];
|
|
295
337
|
//#endregion
|
|
296
|
-
export { DirectoryServer, DirectorySettings, ProjectInSpace, SessionDirectory, SessionDirectoryOptions, SessionDirectorySource, SessionDirectoryState, SessionDirectoryStreams, SessionRef, SessionRemoval, availableProjectsOf, createSessionDirectory, filterDirectorySessions, projectKeyOf, sessionRefsOf };
|
|
338
|
+
export { DirectoryServer, DirectorySettings, ProjectInSpace, RuntimeNow, RuntimeOrigin, SessionDirectory, SessionDirectoryOptions, SessionDirectorySource, SessionDirectoryState, SessionDirectoryStreams, SessionRef, SessionRemoval, SessionRowChange, availableProjectsOf, createSessionDirectory, filterDirectorySessions, projectKeyOf, sessionRefsOf };
|