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
|
@@ -19,6 +19,8 @@ declare const REMINDER_LABELS: {
|
|
|
19
19
|
remindersCount: (n: number) => string;
|
|
20
20
|
remindersFinished: string;
|
|
21
21
|
reminderNew: string;
|
|
22
|
+
reminderCreateFailed: string;
|
|
23
|
+
remindersActionFailed: string;
|
|
22
24
|
reminderWhenLabel: string;
|
|
23
25
|
reminderWhenPlaceholder: string;
|
|
24
26
|
/** Time words the form offers as one-click picks. */
|
|
@@ -56,6 +58,8 @@ declare const REMINDER_LABELS: {
|
|
|
56
58
|
reminderHistoryHide: (label: string) => string;
|
|
57
59
|
reminderHistoryLabel: (label: string) => string;
|
|
58
60
|
reminderNoFires: string;
|
|
61
|
+
reminderHistoryFailed: string;
|
|
62
|
+
reminderFireFailed: string;
|
|
59
63
|
reminderFireOutcome: (outcome: ScheduleFireOutcome) => string;
|
|
60
64
|
reminderFireLate: string;
|
|
61
65
|
};
|
|
@@ -37,6 +37,8 @@ const REMINDER_LABELS = {
|
|
|
37
37
|
remindersCount: (n) => plural(n, "reminder"),
|
|
38
38
|
remindersFinished: "Finished",
|
|
39
39
|
reminderNew: "New reminder",
|
|
40
|
+
reminderCreateFailed: "Couldn't create the reminder.",
|
|
41
|
+
remindersActionFailed: "Couldn't update the reminder.",
|
|
40
42
|
reminderWhenLabel: "When",
|
|
41
43
|
reminderWhenPlaceholder: "in 20m, tomorrow 9:00, weekdays 9:00",
|
|
42
44
|
/** Time words the form offers as one-click picks. */
|
|
@@ -77,6 +79,8 @@ const REMINDER_LABELS = {
|
|
|
77
79
|
reminderHistoryHide: (label) => `Hide the history of ${label}`,
|
|
78
80
|
reminderHistoryLabel: (label) => `History of ${label}`,
|
|
79
81
|
reminderNoFires: "Not sent yet",
|
|
82
|
+
reminderHistoryFailed: "Couldn't load the history.",
|
|
83
|
+
reminderFireFailed: "This reminder couldn't run.",
|
|
80
84
|
reminderFireOutcome: (outcome) => FIRE_OUTCOMES[outcome],
|
|
81
85
|
reminderFireLate: "late"
|
|
82
86
|
};
|
|
@@ -16,7 +16,7 @@ interface SettingsRestrictedProps {
|
|
|
16
16
|
style?: CSSProperties;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* Renders `children` dimmed and inert with the
|
|
19
|
+
* Renders `children` dimmed and inert with the reason as a tooltip while restricted; else as they are.
|
|
20
20
|
*
|
|
21
21
|
* @param props - {@link SettingsRestrictedProps}.
|
|
22
22
|
*/
|
|
@@ -5,8 +5,8 @@ import { Fragment, jsx } from "react/jsx-runtime";
|
|
|
5
5
|
import { createContext, useContext } from "react";
|
|
6
6
|
//#region src/settings/SettingsRestricted.tsx
|
|
7
7
|
/**
|
|
8
|
-
* A settings section this connection
|
|
9
|
-
* `Restricted` with the settings'
|
|
8
|
+
* A settings section this connection cannot change (the server does not
|
|
9
|
+
* offer the write): `Restricted` with the settings' reason, restricted while the
|
|
10
10
|
* host says this connection may not write (`SettingsHost.writable`). A
|
|
11
11
|
* host that leaves `writable` out is never restricted. Nested ones draw
|
|
12
12
|
* only the outermost, so a section and the list inside it say it once.
|
|
@@ -19,7 +19,7 @@ function useSettingsRestricted() {
|
|
|
19
19
|
return !useReadable(useSettingsHost().writable ?? ALWAYS);
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Renders `children` dimmed and inert with the
|
|
22
|
+
* Renders `children` dimmed and inert with the reason as a tooltip while restricted; else as they are.
|
|
23
23
|
*
|
|
24
24
|
* @param props - {@link SettingsRestrictedProps}.
|
|
25
25
|
*/
|
|
@@ -30,7 +30,7 @@ function SettingsRestricted({ children, restricted, inline, className, style })
|
|
|
30
30
|
if (!(restricted ?? own) || inside) return /* @__PURE__ */ jsx(Fragment, { children });
|
|
31
31
|
return /* @__PURE__ */ jsx(Restricted, {
|
|
32
32
|
restricted: true,
|
|
33
|
-
reason: labels.
|
|
33
|
+
reason: labels.settingsNotOffered,
|
|
34
34
|
...inline ? { inline } : {},
|
|
35
35
|
...className ? { className } : {},
|
|
36
36
|
...style ? { style } : {},
|
|
@@ -22,6 +22,13 @@ interface SettingsFrameProps {
|
|
|
22
22
|
children: ReactNode;
|
|
23
23
|
/** Leaves the settings, when the app can. */
|
|
24
24
|
onClose?: () => void;
|
|
25
|
+
/**
|
|
26
|
+
* On a narrow window (a phone), which one pane shows: the nav until a section is picked, then that section
|
|
27
|
+
* (or the search results). A frame that lays its columns side by side may ignore it.
|
|
28
|
+
*/
|
|
29
|
+
pane: 'nav' | 'section';
|
|
30
|
+
/** Back from the open section to the nav (the narrow window's back button). */
|
|
31
|
+
onShowNav: () => void;
|
|
25
32
|
}
|
|
26
33
|
/** Props for {@link SettingsShell}. */
|
|
27
34
|
interface SettingsShellProps {
|
|
@@ -33,6 +33,8 @@ function SettingsShell({ sections, initialSection, initialFocus, onSelect, count
|
|
|
33
33
|
const labels = useSettingsLabels();
|
|
34
34
|
const firstId = initialSection ?? sections[0]?.id ?? "";
|
|
35
35
|
const [activeId, setActiveId] = useState(firstId);
|
|
36
|
+
const [pane, setPane] = useState(initialSection ? "section" : "nav");
|
|
37
|
+
const showNav = useCallback(() => setPane("nav"), []);
|
|
36
38
|
const active = sections.find((s) => s.id === activeId) ?? sections[0];
|
|
37
39
|
const [visited, setVisited] = useState(() => /* @__PURE__ */ new Set([firstId]));
|
|
38
40
|
const [query, setQuery] = useState("");
|
|
@@ -49,6 +51,7 @@ function SettingsShell({ sections, initialSection, initialFocus, onSelect, count
|
|
|
49
51
|
const select = useCallback((id, focus = null) => {
|
|
50
52
|
setFocusKey(focus);
|
|
51
53
|
setActiveId(id);
|
|
54
|
+
setPane("section");
|
|
52
55
|
setVisited((prev) => prev.has(id) ? prev : new Set(prev).add(id));
|
|
53
56
|
setQuery("");
|
|
54
57
|
onSelectRef.current?.(id);
|
|
@@ -169,7 +172,9 @@ function SettingsShell({ sections, initialSection, initialFocus, onSelect, count
|
|
|
169
172
|
footer,
|
|
170
173
|
headerActions: actions,
|
|
171
174
|
children: body,
|
|
172
|
-
...onClose ? { onClose } : {}
|
|
175
|
+
...onClose ? { onClose } : {},
|
|
176
|
+
pane: trimmedQuery ? "section" : pane,
|
|
177
|
+
onShowNav: showNav
|
|
173
178
|
};
|
|
174
179
|
return renderFrame ? /* @__PURE__ */ jsx(Fragment, { children: renderFrame(frame) }) : /* @__PURE__ */ jsx(SettingsFrame, {
|
|
175
180
|
...frame,
|
|
@@ -16,7 +16,7 @@ interface FixturePerformanceOptions {
|
|
|
16
16
|
reportPath?: string;
|
|
17
17
|
/** What `profile` answers, instead of the generated profile. */
|
|
18
18
|
profileOutcome?: PerfProfileOutcome;
|
|
19
|
-
/** Every watch fails with this
|
|
19
|
+
/** Every watch fails with this: no samples follow. */
|
|
20
20
|
watchError?: PerfWatchError;
|
|
21
21
|
}
|
|
22
22
|
/** Drives the fixture from outside. */
|
|
@@ -11,7 +11,7 @@ import { Settings } from "zidane/chat";
|
|
|
11
11
|
type SettingsErrorKind =
|
|
12
12
|
/** The host could not be reached (offline, the connection dropped). */
|
|
13
13
|
'unreachable' |
|
|
14
|
-
/** The host refused:
|
|
14
|
+
/** The host refused: it does not do that (an extension outside the user's folder, on a server). */
|
|
15
15
|
'refused' |
|
|
16
16
|
/** Anything else: the host answered with an error. */
|
|
17
17
|
'failed';
|
|
@@ -50,7 +50,7 @@ interface SettingsHost {
|
|
|
50
50
|
* refused, and `document` goes back to what the host holds. Absent: read-only.
|
|
51
51
|
*/
|
|
52
52
|
update?(patch: Partial<Settings>): Promise<void>;
|
|
53
|
-
/** Whether `update` may run now (a server
|
|
53
|
+
/** Whether `update` may run now (a server that does not offer `settings.set` may not). Absent: whenever `update` is there. */
|
|
54
54
|
writable?: Readable<boolean>;
|
|
55
55
|
/** Skills on disk for a folder (Settings › Skills). Absent: no skills section content. */
|
|
56
56
|
skills?: SettingsSkillsHost;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DEFAULT_SETTINGS, SETTINGS_CHOICES, SETTINGS_TOGGLES, nextOption } from "./catalog.js";
|
|
2
|
+
import { DEFAULT_SETTINGS_LABELS } from "./labels.js";
|
|
2
3
|
import { isSettingsError, toSettingsError } from "./host.js";
|
|
3
4
|
import { createSettingsResource, keyedSettingsResources } from "./resource.js";
|
|
4
5
|
import { enabledMcpTools, enabledMcpsAfterAdd, mcpBadge, mcpRunning, mcpSettingsAfterRemove, mcpShareable, mcpSharedNow, mcpSharingWith, settingsMcpServerOf, toggleMcpTool } from "./mcp.js";
|
|
5
|
-
import { DEFAULT_SETTINGS_LABELS } from "./labels.js";
|
|
6
6
|
import { accountsFocusId, accountsKeyFocusId, hasCredentialChoice } from "./providers.js";
|
|
7
7
|
import { enabledNames, toggleEnabled } from "./enabled.js";
|
|
8
8
|
import { HIDDEN_TABLE_KEYS, SETTINGS_PAGES, describedOn, isPanelPage, settingsCount, shown, visiblePages } from "./layout.js";
|
|
@@ -24,9 +24,9 @@ declare const DEFAULT_SETTINGS_LABELS: {
|
|
|
24
24
|
settingsUnavailable: string;
|
|
25
25
|
/** Crash recovery on a host whose session store has no durability (memory, file map): the note under it. */
|
|
26
26
|
settingsDurabilityUnavailable: string;
|
|
27
|
-
/** A section this connection
|
|
28
|
-
|
|
29
|
-
/** A section this connection may not even read (a
|
|
27
|
+
/** A section this connection can read but not change (the server's hello does not list the write): its tooltip and its name. */
|
|
28
|
+
settingsNotOffered: string;
|
|
29
|
+
/** A section this connection may not even read (a server that does not offer it). */
|
|
30
30
|
settingsRestrictedEmpty: string;
|
|
31
31
|
/** The settings are being read. */
|
|
32
32
|
settingsLoading: string;
|
|
@@ -23,9 +23,9 @@ const DEFAULT_SETTINGS_LABELS = {
|
|
|
23
23
|
settingsUnavailable: "Unavailable",
|
|
24
24
|
/** Crash recovery on a host whose session store has no durability (memory, file map): the note under it. */
|
|
25
25
|
settingsDurabilityUnavailable: "Unavailable here: this host's session store is not SQLite, so runs keep no checkpoint.",
|
|
26
|
-
/** A section this connection
|
|
27
|
-
|
|
28
|
-
/** A section this connection may not even read (a
|
|
26
|
+
/** A section this connection can read but not change (the server's hello does not list the write): its tooltip and its name. */
|
|
27
|
+
settingsNotOffered: "The server does not offer this",
|
|
28
|
+
/** A section this connection may not even read (a server that does not offer it). */
|
|
29
29
|
settingsRestrictedEmpty: "Nothing to show here.",
|
|
30
30
|
/** The settings are being read. */
|
|
31
31
|
settingsLoading: "Reading settings…",
|
|
@@ -205,12 +205,11 @@ type PerfProfileOutcome = {
|
|
|
205
205
|
};
|
|
206
206
|
/**
|
|
207
207
|
* Why a host's figures can't be watched: `unavailable` (the host can't say:
|
|
208
|
-
* a server too old for it), `
|
|
209
|
-
* performance needs an admin token), `failed` (anything else, `detail` says).
|
|
208
|
+
* a server too old for it), `failed` (anything else, `detail` says).
|
|
210
209
|
*/
|
|
211
210
|
interface PerfWatchError {
|
|
212
|
-
/** Which of the
|
|
213
|
-
kind: 'unavailable' | '
|
|
211
|
+
/** Which of the two. */
|
|
212
|
+
kind: 'unavailable' | 'failed';
|
|
214
213
|
/** The error's message, when there is one. */
|
|
215
214
|
detail?: string;
|
|
216
215
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bf as Settings } from "../../dist/index-C6rzc-tt.js";
|
|
2
2
|
import { SettingsSearchEntry, SettingsSection } from "./registry.js";
|
|
3
3
|
import { SettingsChoice, SettingsToggle } from "./catalog.js";
|
|
4
4
|
import { SettingsActionId, SettingsPage } from "./layout.js";
|
package/dist/settings/index.d.ts
CHANGED
|
@@ -59,6 +59,7 @@ import { DEFAULT_MODEL_ROWS_LABELS, ModelRowsLabels } from "./sections/models/la
|
|
|
59
59
|
import { ModelPickField, ModelPickFieldProps, modelPickLabel } from "./sections/models/ModelPickField.js";
|
|
60
60
|
import { ApprovalModeRow, ApprovalModeRowProps, CompactionModelRow, CompactionModelRowProps, ConversationPresetsRow, ConversationPresetsRowProps, DecisionModelRow, DecisionModelRowProps, TextModelRow, TextModelRowProps, automaticTextModel } from "./sections/models/ModelRows.js";
|
|
61
61
|
import { SpacesDefaultsSection, SpacesDefaultsSectionProps, spaceDefaults, withSpaceDefaults } from "./sections/models/SpacesDefaultsSection.js";
|
|
62
|
+
import { NewChatPlaceRow, NewChatPlaceRowProps } from "./sections/models/NewChatPlaceRow.js";
|
|
62
63
|
import { ModelTestButton, ModelTestButtonProps, ModelTestLine, ModelTestLineProps, ModelTestState, useModelRowsLabels, useModelTest } from "./sections/models/model-test.js";
|
|
63
64
|
import "./sections/index.js";
|
|
64
|
-
export { AccountsConfirm, AccountsSectionLabels, AgentDefaultsRows, AgentDefaultsRowsProps, AgentDefaultsValue, AppearanceSection, AppearanceSectionLabels, AppearanceSectionProps, ApprovalModeRow, ApprovalModeRowProps, CatalogSharedLabels, ChoiceRow, ChoiceRowProps, ClaudeImportDialog, ClaudeImportDialogProps, ClaudeImportLabels, CompactionModelRow, CompactionModelRowProps, ConversationPresetsRow, ConversationPresetsRowProps, CreateExtensionDialog, CreateExtensionDialogProps, CreateExtensionLabels, DEFAULT_ACCOUNTS_SECTION_LABELS, DEFAULT_APPEARANCE_SECTION_LABELS, DEFAULT_CATALOG_SHARED_LABELS, DEFAULT_CLAUDE_IMPORT_LABELS, DEFAULT_CREATE_EXTENSION_LABELS, DEFAULT_EDITOR_SECTION_LABELS, DEFAULT_ENABLED_LIST_SECTION_LABELS, DEFAULT_ENVIRONMENTS_SECTION_LABELS, DEFAULT_EXTENSIONS_SECTION_LABELS, DEFAULT_EXTENSION_OPTIONS_LABELS, DEFAULT_HOST_CATALOG_LABELS, DEFAULT_INSTRUCTIONS_SECTION_LABELS, DEFAULT_KEYBINDINGS_SECTION_LABELS, DEFAULT_LOGS_SECTION_LABELS, DEFAULT_MCP_SECTION_LABELS, DEFAULT_MODEL_ROWS_LABELS, DEFAULT_PERFORMANCE_SECTION_LABELS, DEFAULT_PLUGINS_SECTION_LABELS, DEFAULT_SKILLS_SECTION_LABELS, DecisionModelRow, DecisionModelRowProps, EditorDiagnosticsTool, EditorLanguageServer, EditorOpenIn, EditorSection, EditorSectionLabels, EditorSectionProps, EnabledListSection, EnabledListSectionLabels, EnabledListSectionProps, EnvironmentsSection, EnvironmentsSectionLabels, EnvironmentsSectionProps, ExtensionActionRow, ExtensionActionRowProps, ExtensionActions, ExtensionConfigRow, ExtensionConfigRowProps, ExtensionConfigValue, ExtensionList, ExtensionOptionsLabels, ExtensionOptionsSection, ExtensionOptionsSectionProps, ExtensionPick, ExtensionSourceBrowser, ExtensionSourceBrowserProps, ExtensionsSection, ExtensionsSectionLabels, ExtensionsSectionProps, HostCatalogLabels, HostCatalogSection, HostCatalogSectionKind, HostCatalogSectionProps, InstructionsSection, InstructionsSectionLabels, InstructionsSectionProps, KEYBINDING_ROW_COUNT, KEYBINDING_SECTIONS, KeybindingGroup, KeybindingRow, KeybindingsSection, KeybindingsSectionLabelKey, KeybindingsSectionLabels, KeybindingsSectionProps, LogsSection, LogsSectionLabels, LogsSectionProps, McpSection, McpSectionLabels, McpSectionProps, ModelListEntry, ModelListPicker, ModelListPickerProps, ModelPickField, ModelPickFieldProps, ModelRowsLabels, ModelTestButton, ModelTestButtonProps, ModelTestLine, ModelTestLineProps, ModelTestState, PerfSparkline, PerfSparklineProps, PerformanceHud, PerformanceHudProps, PerformanceSection, PerformanceSectionLabels, PerformanceSectionProps, PluginList, PluginsSection, PluginsSectionLabels, PluginsSectionProps, PreferenceSectionOverrides, ProvidersSection, ProvidersSectionProps, SelectRow, SelectRowOption, SelectRowProps, ServerProvidersSection, ServerProvidersSectionProps, ServerSignIn, ServerSignInProps, SettingFocus, type SettingFocusProps, SettingsFrame, SettingsFrameProps, SettingsHeadingText, SettingsHeadingTextProps, SettingsHostSwitcher, SettingsHostSwitcherProps, SettingsNav, SettingsNavProps, SettingsPanel, SettingsPanelActions, type SettingsPanelActionsProps, SettingsPanelBody, type SettingsPanelBodyProps, type SettingsPanelProps, SettingsProvider, SettingsProviderProps, SettingsRowsPage, SettingsRowsPageProps, type SettingsSearchEntry, type SettingsSection, type SettingsSectionState, SettingsShell, SettingsShellProps, SettingsTutorial, SettingsTutorialProps, SettingsValues, SkillsSection, SkillsSectionLabels, SkillsSectionProps, SpacesDefaultsSection, SpacesDefaultsSectionProps, TextModelRow, TextModelRowProps, ToggleRow, ToggleRowProps, ValueChip, ValueChipProps, agentDefaultsOf, agentDefaultsPatch, appearanceSettingsSection, automaticTextModel, editorSettingsSection, enabledListSettingsSection, environmentsSettingsSection, extensionConfigValue, extensionPickOf, extensionsSettingsSection, filterModelList, hostCatalogSettingsSection, instructionsSettingsSection, keybindingsSettingsSection, logsSettingsSection, mcpSettingsSection, modelPickLabel, navOrder, performanceSettingsSection, pluginsSettingsSection, providersSettingsSection, serverProvidersSettingsSection, skillsSettingsSection, spaceDefaults, useAccountsSectionLabels, useAppearanceSectionLabels, useClaudeImportAvailable, useClaudeImportLabels, useCreateExtensionLabels, useEditorSectionLabels, useEnabledListSectionLabels, useEnvironmentsSectionLabels, useExtensionOptionsLabels, useExtensionOptionsSearch, useExtensionsSectionLabels, useHostCatalogLabels, useInstructionsSectionLabels, useKeybindingsSectionLabels, useLogsSectionLabels, useMcpSectionLabels, useModelRowsLabels, useModelTest, usePerformanceSectionLabels, usePluginsSectionLabels, useSettings, useSettingsDocument, useSettingsHost, useSettingsHostName, useSettingsLabels, useSettingsSection, useSettingsWritable, useSkillsSectionLabels, withSpaceDefaults };
|
|
65
|
+
export { AccountsConfirm, AccountsSectionLabels, AgentDefaultsRows, AgentDefaultsRowsProps, AgentDefaultsValue, AppearanceSection, AppearanceSectionLabels, AppearanceSectionProps, ApprovalModeRow, ApprovalModeRowProps, CatalogSharedLabels, ChoiceRow, ChoiceRowProps, ClaudeImportDialog, ClaudeImportDialogProps, ClaudeImportLabels, CompactionModelRow, CompactionModelRowProps, ConversationPresetsRow, ConversationPresetsRowProps, CreateExtensionDialog, CreateExtensionDialogProps, CreateExtensionLabels, DEFAULT_ACCOUNTS_SECTION_LABELS, DEFAULT_APPEARANCE_SECTION_LABELS, DEFAULT_CATALOG_SHARED_LABELS, DEFAULT_CLAUDE_IMPORT_LABELS, DEFAULT_CREATE_EXTENSION_LABELS, DEFAULT_EDITOR_SECTION_LABELS, DEFAULT_ENABLED_LIST_SECTION_LABELS, DEFAULT_ENVIRONMENTS_SECTION_LABELS, DEFAULT_EXTENSIONS_SECTION_LABELS, DEFAULT_EXTENSION_OPTIONS_LABELS, DEFAULT_HOST_CATALOG_LABELS, DEFAULT_INSTRUCTIONS_SECTION_LABELS, DEFAULT_KEYBINDINGS_SECTION_LABELS, DEFAULT_LOGS_SECTION_LABELS, DEFAULT_MCP_SECTION_LABELS, DEFAULT_MODEL_ROWS_LABELS, DEFAULT_PERFORMANCE_SECTION_LABELS, DEFAULT_PLUGINS_SECTION_LABELS, DEFAULT_SKILLS_SECTION_LABELS, DecisionModelRow, DecisionModelRowProps, EditorDiagnosticsTool, EditorLanguageServer, EditorOpenIn, EditorSection, EditorSectionLabels, EditorSectionProps, EnabledListSection, EnabledListSectionLabels, EnabledListSectionProps, EnvironmentsSection, EnvironmentsSectionLabels, EnvironmentsSectionProps, ExtensionActionRow, ExtensionActionRowProps, ExtensionActions, ExtensionConfigRow, ExtensionConfigRowProps, ExtensionConfigValue, ExtensionList, ExtensionOptionsLabels, ExtensionOptionsSection, ExtensionOptionsSectionProps, ExtensionPick, ExtensionSourceBrowser, ExtensionSourceBrowserProps, ExtensionsSection, ExtensionsSectionLabels, ExtensionsSectionProps, HostCatalogLabels, HostCatalogSection, HostCatalogSectionKind, HostCatalogSectionProps, InstructionsSection, InstructionsSectionLabels, InstructionsSectionProps, KEYBINDING_ROW_COUNT, KEYBINDING_SECTIONS, KeybindingGroup, KeybindingRow, KeybindingsSection, KeybindingsSectionLabelKey, KeybindingsSectionLabels, KeybindingsSectionProps, LogsSection, LogsSectionLabels, LogsSectionProps, McpSection, McpSectionLabels, McpSectionProps, ModelListEntry, ModelListPicker, ModelListPickerProps, ModelPickField, ModelPickFieldProps, ModelRowsLabels, ModelTestButton, ModelTestButtonProps, ModelTestLine, ModelTestLineProps, ModelTestState, NewChatPlaceRow, NewChatPlaceRowProps, PerfSparkline, PerfSparklineProps, PerformanceHud, PerformanceHudProps, PerformanceSection, PerformanceSectionLabels, PerformanceSectionProps, PluginList, PluginsSection, PluginsSectionLabels, PluginsSectionProps, PreferenceSectionOverrides, ProvidersSection, ProvidersSectionProps, SelectRow, SelectRowOption, SelectRowProps, ServerProvidersSection, ServerProvidersSectionProps, ServerSignIn, ServerSignInProps, SettingFocus, type SettingFocusProps, SettingsFrame, SettingsFrameProps, SettingsHeadingText, SettingsHeadingTextProps, SettingsHostSwitcher, SettingsHostSwitcherProps, SettingsNav, SettingsNavProps, SettingsPanel, SettingsPanelActions, type SettingsPanelActionsProps, SettingsPanelBody, type SettingsPanelBodyProps, type SettingsPanelProps, SettingsProvider, SettingsProviderProps, SettingsRowsPage, SettingsRowsPageProps, type SettingsSearchEntry, type SettingsSection, type SettingsSectionState, SettingsShell, SettingsShellProps, SettingsTutorial, SettingsTutorialProps, SettingsValues, SkillsSection, SkillsSectionLabels, SkillsSectionProps, SpacesDefaultsSection, SpacesDefaultsSectionProps, TextModelRow, TextModelRowProps, ToggleRow, ToggleRowProps, ValueChip, ValueChipProps, agentDefaultsOf, agentDefaultsPatch, appearanceSettingsSection, automaticTextModel, editorSettingsSection, enabledListSettingsSection, environmentsSettingsSection, extensionConfigValue, extensionPickOf, extensionsSettingsSection, filterModelList, hostCatalogSettingsSection, instructionsSettingsSection, keybindingsSettingsSection, logsSettingsSection, mcpSettingsSection, modelPickLabel, navOrder, performanceSettingsSection, pluginsSettingsSection, providersSettingsSection, serverProvidersSettingsSection, skillsSettingsSection, spaceDefaults, useAccountsSectionLabels, useAppearanceSectionLabels, useClaudeImportAvailable, useClaudeImportLabels, useCreateExtensionLabels, useEditorSectionLabels, useEnabledListSectionLabels, useEnvironmentsSectionLabels, useExtensionOptionsLabels, useExtensionOptionsSearch, useExtensionsSectionLabels, useHostCatalogLabels, useInstructionsSectionLabels, useKeybindingsSectionLabels, useLogsSectionLabels, useMcpSectionLabels, useModelRowsLabels, useModelTest, usePerformanceSectionLabels, usePluginsSectionLabels, useSettings, useSettingsDocument, useSettingsHost, useSettingsHostName, useSettingsLabels, useSettingsSection, useSettingsWritable, useSkillsSectionLabels, withSpaceDefaults };
|
package/dist/settings/index.js
CHANGED
|
@@ -58,5 +58,6 @@ import { PerformanceHud } from "./sections/performance/PerformanceHud.js";
|
|
|
58
58
|
import { ModelPickField, modelPickLabel } from "./sections/models/ModelPickField.js";
|
|
59
59
|
import { AgentDefaultsRows, agentDefaultsOf, agentDefaultsPatch } from "./sections/models/AgentDefaults.js";
|
|
60
60
|
import { ApprovalModeRow, CompactionModelRow, ConversationPresetsRow, DecisionModelRow, TextModelRow, automaticTextModel } from "./sections/models/ModelRows.js";
|
|
61
|
+
import { NewChatPlaceRow } from "./sections/models/NewChatPlaceRow.js";
|
|
61
62
|
import { SpacesDefaultsSection, spaceDefaults, withSpaceDefaults } from "./sections/models/SpacesDefaultsSection.js";
|
|
62
|
-
export { AgentDefaultsRows, AppearanceSection, ApprovalModeRow, ChoiceRow, ClaudeImportDialog, CompactionModelRow, ConversationPresetsRow, CreateExtensionDialog, DEFAULT_ACCOUNTS_SECTION_LABELS, DEFAULT_APPEARANCE_SECTION_LABELS, DEFAULT_CATALOG_SHARED_LABELS, DEFAULT_CLAUDE_IMPORT_LABELS, DEFAULT_CREATE_EXTENSION_LABELS, DEFAULT_EDITOR_SECTION_LABELS, DEFAULT_ENABLED_LIST_SECTION_LABELS, DEFAULT_ENVIRONMENTS_SECTION_LABELS, DEFAULT_EXTENSIONS_SECTION_LABELS, DEFAULT_EXTENSION_OPTIONS_LABELS, DEFAULT_HOST_CATALOG_LABELS, DEFAULT_INSTRUCTIONS_SECTION_LABELS, DEFAULT_KEYBINDINGS_SECTION_LABELS, DEFAULT_LOGS_SECTION_LABELS, DEFAULT_MCP_SECTION_LABELS, DEFAULT_MODEL_ROWS_LABELS, DEFAULT_PERFORMANCE_SECTION_LABELS, DEFAULT_PLUGINS_SECTION_LABELS, DEFAULT_SKILLS_SECTION_LABELS, DecisionModelRow, EditorSection, EnabledListSection, EnvironmentsSection, ExtensionActionRow, ExtensionActions, ExtensionConfigRow, ExtensionList, ExtensionOptionsSection, ExtensionSourceBrowser, ExtensionsSection, HostCatalogSection, InstructionsSection, KEYBINDING_ROW_COUNT, KEYBINDING_SECTIONS, KeybindingsSection, LogsSection, McpSection, ModelListPicker, ModelPickField, ModelTestButton, ModelTestLine, PerfSparkline, PerformanceHud, PerformanceSection, PluginList, PluginsSection, ProvidersSection, SelectRow, ServerProvidersSection, ServerSignIn, SettingFocus, SettingsFrame, SettingsHeadingText, SettingsHostSwitcher, SettingsNav, SettingsPanel, SettingsPanelActions, SettingsPanelBody, SettingsProvider, SettingsRowsPage, SettingsShell, SettingsTutorial, SkillsSection, SpacesDefaultsSection, TextModelRow, ToggleRow, ValueChip, agentDefaultsOf, agentDefaultsPatch, appearanceSettingsSection, automaticTextModel, editorSettingsSection, enabledListSettingsSection, environmentsSettingsSection, extensionConfigValue, extensionPickOf, extensionsSettingsSection, filterModelList, hostCatalogSettingsSection, instructionsSettingsSection, keybindingsSettingsSection, logsSettingsSection, mcpSettingsSection, modelPickLabel, navOrder, performanceSettingsSection, pluginsSettingsSection, providersSettingsSection, serverProvidersSettingsSection, skillsSettingsSection, spaceDefaults, useAccountsSectionLabels, useAppearanceSectionLabels, useClaudeImportAvailable, useClaudeImportLabels, useCreateExtensionLabels, useEditorSectionLabels, useEnabledListSectionLabels, useEnvironmentsSectionLabels, useExtensionOptionsLabels, useExtensionOptionsSearch, useExtensionsSectionLabels, useHostCatalogLabels, useInstructionsSectionLabels, useKeybindingsSectionLabels, useLogsSectionLabels, useMcpSectionLabels, useModelRowsLabels, useModelTest, usePerformanceSectionLabels, usePluginsSectionLabels, useSettings, useSettingsDocument, useSettingsHost, useSettingsHostName, useSettingsLabels, useSettingsSection, useSettingsWritable, useSkillsSectionLabels, withSpaceDefaults };
|
|
63
|
+
export { AgentDefaultsRows, AppearanceSection, ApprovalModeRow, ChoiceRow, ClaudeImportDialog, CompactionModelRow, ConversationPresetsRow, CreateExtensionDialog, DEFAULT_ACCOUNTS_SECTION_LABELS, DEFAULT_APPEARANCE_SECTION_LABELS, DEFAULT_CATALOG_SHARED_LABELS, DEFAULT_CLAUDE_IMPORT_LABELS, DEFAULT_CREATE_EXTENSION_LABELS, DEFAULT_EDITOR_SECTION_LABELS, DEFAULT_ENABLED_LIST_SECTION_LABELS, DEFAULT_ENVIRONMENTS_SECTION_LABELS, DEFAULT_EXTENSIONS_SECTION_LABELS, DEFAULT_EXTENSION_OPTIONS_LABELS, DEFAULT_HOST_CATALOG_LABELS, DEFAULT_INSTRUCTIONS_SECTION_LABELS, DEFAULT_KEYBINDINGS_SECTION_LABELS, DEFAULT_LOGS_SECTION_LABELS, DEFAULT_MCP_SECTION_LABELS, DEFAULT_MODEL_ROWS_LABELS, DEFAULT_PERFORMANCE_SECTION_LABELS, DEFAULT_PLUGINS_SECTION_LABELS, DEFAULT_SKILLS_SECTION_LABELS, DecisionModelRow, EditorSection, EnabledListSection, EnvironmentsSection, ExtensionActionRow, ExtensionActions, ExtensionConfigRow, ExtensionList, ExtensionOptionsSection, ExtensionSourceBrowser, ExtensionsSection, HostCatalogSection, InstructionsSection, KEYBINDING_ROW_COUNT, KEYBINDING_SECTIONS, KeybindingsSection, LogsSection, McpSection, ModelListPicker, ModelPickField, ModelTestButton, ModelTestLine, NewChatPlaceRow, PerfSparkline, PerformanceHud, PerformanceSection, PluginList, PluginsSection, ProvidersSection, SelectRow, ServerProvidersSection, ServerSignIn, SettingFocus, SettingsFrame, SettingsHeadingText, SettingsHostSwitcher, SettingsNav, SettingsPanel, SettingsPanelActions, SettingsPanelBody, SettingsProvider, SettingsRowsPage, SettingsShell, SettingsTutorial, SkillsSection, SpacesDefaultsSection, TextModelRow, ToggleRow, ValueChip, agentDefaultsOf, agentDefaultsPatch, appearanceSettingsSection, automaticTextModel, editorSettingsSection, enabledListSettingsSection, environmentsSettingsSection, extensionConfigValue, extensionPickOf, extensionsSettingsSection, filterModelList, hostCatalogSettingsSection, instructionsSettingsSection, keybindingsSettingsSection, logsSettingsSection, mcpSettingsSection, modelPickLabel, navOrder, performanceSettingsSection, pluginsSettingsSection, providersSettingsSection, serverProvidersSettingsSection, skillsSettingsSection, spaceDefaults, useAccountsSectionLabels, useAppearanceSectionLabels, useClaudeImportAvailable, useClaudeImportLabels, useCreateExtensionLabels, useEditorSectionLabels, useEnabledListSectionLabels, useEnvironmentsSectionLabels, useExtensionOptionsLabels, useExtensionOptionsSearch, useExtensionsSectionLabels, useHostCatalogLabels, useInstructionsSectionLabels, useKeybindingsSectionLabels, useLogsSectionLabels, useMcpSectionLabels, useModelRowsLabels, useModelTest, usePerformanceSectionLabels, usePluginsSectionLabels, useSettings, useSettingsDocument, useSettingsHost, useSettingsHostName, useSettingsLabels, useSettingsSection, useSettingsWritable, useSkillsSectionLabels, withSpaceDefaults };
|
|
@@ -7,9 +7,9 @@ import { HighlightedCode } from "../../../code/HighlightedCode.js";
|
|
|
7
7
|
import { ACCENT_PRESETS, presetFor } from "../../../theme/accents.js";
|
|
8
8
|
import { derivePalette } from "../../../theme/derive.js";
|
|
9
9
|
import { seedFromTheme } from "../../../theme/from-theme.js";
|
|
10
|
-
import { LIMITS } from "../../../appearance/headless/prefs.js";
|
|
11
|
-
import { availableCuratedFonts, queryInstalledFonts } from "../../../appearance/headless/fonts.js";
|
|
12
10
|
import { codeThemesOf } from "../../../code/code-themes.js";
|
|
11
|
+
import { availableCuratedFonts, queryInstalledFonts } from "../../../appearance/headless/fonts.js";
|
|
12
|
+
import { LIMITS } from "../../../appearance/headless/prefs.js";
|
|
13
13
|
import { resolveCodeTheme, useAppearance, useAppearanceMotion } from "../../../appearance/AppearanceProvider.js";
|
|
14
14
|
import { SettingFocus, SettingsPanel, SettingsPanelBody } from "../../section.js";
|
|
15
15
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BTN_LG_SECONDARY, BTN_LG_SOLID } from "../../../components/button.js";
|
|
2
2
|
import { EmptyState, SectionLabel, Tray } from "../../../components/Surface.js";
|
|
3
3
|
import { ErrorNote, MetaChip, ROW_BUTTON_CLASS, RowText, Switch } from "../../../components/Form.js";
|
|
4
|
-
import { toSettingsError } from "../../headless/host.js";
|
|
5
4
|
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
6
5
|
import { ModalShell } from "../../../app/ModalProvider.js";
|
|
6
|
+
import { toSettingsError } from "../../headless/host.js";
|
|
7
7
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
8
8
|
import { DEFAULT_CLAUDE_IMPORT_LABELS } from "./labels.js";
|
|
9
9
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { Notice } from "../../../components/Notice.js";
|
|
1
2
|
import { FormSection, ROW_BUTTON_CLASS, RowText, SegmentedRow, SliderRow, Switch, SwitchRow } from "../../../components/Form.js";
|
|
2
|
-
import { DIAGNOSTICS_TIMEOUT, LSP_IDLE } from "../../../files/headless/editor-prefs.js";
|
|
3
3
|
import { useAppearanceHost, useAppearanceState } from "../../../appearance/AppearanceProvider.js";
|
|
4
|
+
import { DIAGNOSTICS_TIMEOUT, LSP_IDLE } from "../../../files/headless/editor-prefs.js";
|
|
4
5
|
import { useEditorPrefs, useFilesHost } from "../../../files/FilesProvider.js";
|
|
5
6
|
import { SettingFocus, SettingsPanel, SettingsPanelBody } from "../../section.js";
|
|
6
7
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
@@ -423,10 +424,12 @@ function ServerList({ cwd, list, overrides, onOverride }) {
|
|
|
423
424
|
title: [s.detail, s.log ? l.editorSectionServerLog(s.log.split("\n").slice(-12).join("\n")) : ""].filter(Boolean).join("\n\n"),
|
|
424
425
|
children: s.status === "running" ? l.editorSectionServerRunning(s.openDocuments ?? 0, s.busy) : s.status === "failed" ? l.editorSectionServerFailed : s.status === "ready" ? l.editorSectionServerFound(s.detail) : s.status === "missing" ? s.detail ?? l.editorSectionServerMissing : l.editorSectionServerAbsent
|
|
425
426
|
}),
|
|
426
|
-
s.lastError && /* @__PURE__ */ jsx(
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
427
|
+
s.lastError && /* @__PURE__ */ jsx(Notice, {
|
|
428
|
+
tone: "error",
|
|
429
|
+
compact: true,
|
|
430
|
+
detail: s.lastError,
|
|
431
|
+
className: "mt-0.5",
|
|
432
|
+
children: l.editorSectionServerError
|
|
430
433
|
})
|
|
431
434
|
]
|
|
432
435
|
})]
|
|
@@ -64,6 +64,7 @@ declare const DEFAULT_EDITOR_SECTION_LABELS: {
|
|
|
64
64
|
editorSectionServersRefresh: string;
|
|
65
65
|
editorSectionServerRunning: (open: number, busy: string | undefined) => string;
|
|
66
66
|
editorSectionServerFailed: string;
|
|
67
|
+
editorSectionServerError: string;
|
|
67
68
|
editorSectionServerFound: (detail: string | undefined) => string;
|
|
68
69
|
editorSectionServerMissing: string;
|
|
69
70
|
editorSectionServerAbsent: string;
|
|
@@ -64,6 +64,7 @@ const DEFAULT_EDITOR_SECTION_LABELS = {
|
|
|
64
64
|
editorSectionServersRefresh: "Refresh",
|
|
65
65
|
editorSectionServerRunning: (open, busy) => `running${open ? `, ${open} open` : ""}${busy ? ` · ${busy}` : ""}`,
|
|
66
66
|
editorSectionServerFailed: "failed",
|
|
67
|
+
editorSectionServerError: "The server reported an error.",
|
|
67
68
|
editorSectionServerFound: (detail) => `found: ${detail}`,
|
|
68
69
|
editorSectionServerMissing: "not installed",
|
|
69
70
|
editorSectionServerAbsent: "not used by this project",
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { BTN_SECONDARY } from "../../../components/button.js";
|
|
2
|
+
import { Notice } from "../../../components/Notice.js";
|
|
2
3
|
import { Segmented } from "../../../components/Segmented.js";
|
|
3
4
|
import { ErrorNote, FormCard, FormSection, INPUT_CLASS as INPUT_CLASS$1, MetaChip, RowText, Switch } from "../../../components/Form.js";
|
|
5
|
+
import { errorMessage } from "../../../components/report-error.js";
|
|
4
6
|
import { constant, useReadable } from "../../../chat/headless/store.js";
|
|
5
|
-
import { environmentKindIcon } from "../../../git/headless/environment.js";
|
|
6
|
-
import { toSettingsError } from "../../headless/host.js";
|
|
7
7
|
import { useMachinesHost } from "../../../machines/MachinesProvider.js";
|
|
8
8
|
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
9
|
+
import { environmentKindIcon } from "../../../git/headless/environment.js";
|
|
10
|
+
import { toSettingsError } from "../../headless/host.js";
|
|
9
11
|
import { HostBadge } from "../../../chat/HostBadge.js";
|
|
10
12
|
import { SettingsPanel, SettingsPanelBody, useSettingsSection } from "../../section.js";
|
|
11
13
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
@@ -144,7 +146,6 @@ function EnvironmentsSection({ cwd, className, style }) {
|
|
|
144
146
|
}
|
|
145
147
|
function EnvironmentCard({ descriptor, baseLabel, onUpdate }) {
|
|
146
148
|
const l = useEnvironmentsSectionLabels();
|
|
147
|
-
const shared = useCatalogSharedLabels();
|
|
148
149
|
const verify = useSettingsHost().environments?.verify;
|
|
149
150
|
const { kind } = descriptor;
|
|
150
151
|
const isLocal = kind === "local";
|
|
@@ -159,7 +160,7 @@ function EnvironmentCard({ descriptor, baseLabel, onUpdate }) {
|
|
|
159
160
|
})).catch((err) => setTest({
|
|
160
161
|
state: "done",
|
|
161
162
|
ok: false,
|
|
162
|
-
text:
|
|
163
|
+
text: errorMessage(err)
|
|
163
164
|
}));
|
|
164
165
|
};
|
|
165
166
|
const fields = descriptor.enabled ? descriptor.fields.filter((field) => field.visible) : [];
|
|
@@ -200,23 +201,29 @@ function EnvironmentCard({ descriptor, baseLabel, onUpdate }) {
|
|
|
200
201
|
className: "text-xs text-[var(--zg-text-muted)] mt-0.5",
|
|
201
202
|
children: descriptor.description
|
|
202
203
|
}),
|
|
203
|
-
test?.state === "done" && /* @__PURE__ */ jsxs("div", {
|
|
204
|
+
test?.state === "done" && (test.ok ? /* @__PURE__ */ jsxs("div", {
|
|
204
205
|
role: "status",
|
|
205
|
-
className:
|
|
206
|
+
className: "flex items-start gap-1.5 text-xs mt-1.5 text-[var(--zg-success)]",
|
|
206
207
|
children: [/* @__PURE__ */ jsx("span", {
|
|
207
208
|
"aria-hidden": true,
|
|
208
|
-
className:
|
|
209
|
+
className: "i-ph-check-circle text-sm shrink-0"
|
|
209
210
|
}), /* @__PURE__ */ jsx("span", {
|
|
210
211
|
className: "min-w-0",
|
|
211
212
|
children: test.text
|
|
212
213
|
})]
|
|
213
|
-
}),
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
214
|
+
}) : /* @__PURE__ */ jsx(Notice, {
|
|
215
|
+
tone: "error",
|
|
216
|
+
compact: true,
|
|
217
|
+
detail: test.text,
|
|
218
|
+
className: "mt-1.5",
|
|
219
|
+
children: l.environmentsSectionTestFailed
|
|
220
|
+
})),
|
|
221
|
+
descriptor.enabled && !descriptor.available && descriptor.reason && /* @__PURE__ */ jsx(Notice, {
|
|
222
|
+
tone: "warning",
|
|
223
|
+
compact: true,
|
|
224
|
+
detail: descriptor.reason,
|
|
225
|
+
className: "mt-1",
|
|
226
|
+
children: l.environmentsSectionNotAvailable
|
|
220
227
|
})
|
|
221
228
|
]
|
|
222
229
|
}),
|
|
@@ -13,6 +13,7 @@ declare const DEFAULT_ENVIRONMENTS_SECTION_LABELS: {
|
|
|
13
13
|
environmentsSectionTesting: string;
|
|
14
14
|
environmentsSectionTest: string;
|
|
15
15
|
environmentsSectionConnected: string;
|
|
16
|
+
environmentsSectionTestFailed: string;
|
|
16
17
|
environmentsSectionAlwaysOn: string;
|
|
17
18
|
environmentsSectionTurnOff: (label: string) => string;
|
|
18
19
|
environmentsSectionTurnOn: (label: string) => string;
|
|
@@ -9,10 +9,11 @@ const DEFAULT_ENVIRONMENTS_SECTION_LABELS = {
|
|
|
9
9
|
environmentsSectionDefaultHint: "Pick another one per session in the composer.",
|
|
10
10
|
environmentsSectionDefaultChip: "Default",
|
|
11
11
|
environmentsSectionNotReady: "Not ready",
|
|
12
|
-
environmentsSectionNotAvailable: "Not available.
|
|
12
|
+
environmentsSectionNotAvailable: "Not available.",
|
|
13
13
|
environmentsSectionTesting: "Testing…",
|
|
14
14
|
environmentsSectionTest: "Test connection",
|
|
15
15
|
environmentsSectionConnected: "Connected.",
|
|
16
|
+
environmentsSectionTestFailed: "Couldn't connect.",
|
|
16
17
|
environmentsSectionAlwaysOn: "Always on",
|
|
17
18
|
environmentsSectionTurnOff: (label) => `Turn off ${label}`,
|
|
18
19
|
environmentsSectionTurnOn: (label) => `Turn on ${label}`,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useLabels } from "../../../labels.js";
|
|
2
2
|
import { buttonClass } from "../../../components/button.js";
|
|
3
3
|
import { ErrorNote, INPUT_CLASS, MetaChip } from "../../../components/Form.js";
|
|
4
|
-
import { isSettingsError, toSettingsError } from "../../headless/host.js";
|
|
5
4
|
import { useOptionalModal } from "../../../app/ModalProvider.js";
|
|
5
|
+
import { isSettingsError, toSettingsError } from "../../headless/host.js";
|
|
6
6
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
7
7
|
import { useCatalogSharedLabels } from "../shared/catalog.js";
|
|
8
8
|
import { DEFAULT_EXTENSIONS_SECTION_LABELS } from "./labels.js";
|
|
@@ -2,9 +2,9 @@ import { BTN_LG_SECONDARY, BTN_LG_SOLID } from "../../../components/button.js";
|
|
|
2
2
|
import { Segmented } from "../../../components/Segmented.js";
|
|
3
3
|
import { ErrorNote, INPUT_CLASS } from "../../../components/Form.js";
|
|
4
4
|
import { useDisplayPath } from "../../../hooks/useDisplayPath.js";
|
|
5
|
-
import { toSettingsError } from "../../headless/host.js";
|
|
6
5
|
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
7
6
|
import { ModalShell } from "../../../app/ModalProvider.js";
|
|
7
|
+
import { toSettingsError } from "../../headless/host.js";
|
|
8
8
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
9
9
|
import { DEFAULT_CREATE_EXTENSION_LABELS } from "./create-labels.js";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -22,8 +22,6 @@ interface ExtensionActionRowProps {
|
|
|
22
22
|
busy?: boolean;
|
|
23
23
|
/** The button is off (another row's run is going). */
|
|
24
24
|
disabled?: boolean;
|
|
25
|
-
/** The token scope this client lacks to run it: the button is off, restricted ("Admin only"). */
|
|
26
|
-
needsScope?: 'chat' | 'admin' | null;
|
|
27
25
|
/** Runs the action (the Run button). */
|
|
28
26
|
onRun(): void;
|
|
29
27
|
}
|
|
@@ -32,7 +30,7 @@ interface ExtensionActionRowProps {
|
|
|
32
30
|
*
|
|
33
31
|
* @param props - The action's label and description, its status, whether it runs, and the run.
|
|
34
32
|
*/
|
|
35
|
-
declare function ExtensionActionRow({ label, description, status, busy, disabled,
|
|
33
|
+
declare function ExtensionActionRow({ label, description, status, busy, disabled, onRun }: ExtensionActionRowProps): import("react").JSX.Element;
|
|
36
34
|
/** Props for {@link ExtensionConfigRow}. */
|
|
37
35
|
interface ExtensionConfigRowProps {
|
|
38
36
|
/** The setting, as the host describes it. */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IconButton } from "../../../components/IconButton.js";
|
|
2
2
|
import { BTN_SECONDARY } from "../../../components/button.js";
|
|
3
|
+
import { Notice } from "../../../components/Notice.js";
|
|
3
4
|
import { HostRow, INPUT_CLASS, MetaChip, ROW_BUTTON_CLASS, ROW_CLASS, RowText, Switch } from "../../../components/Form.js";
|
|
4
5
|
import { SegmentSpinner } from "../../../components/SegmentSpinner.js";
|
|
5
|
-
import { Restricted } from "../../../components/Restricted.js";
|
|
6
6
|
import { useComposerModelName } from "../../../chat/composer/use-composer-stores.js";
|
|
7
7
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
8
8
|
import { ModelListPicker } from "../models/ModelListPicker.js";
|
|
@@ -35,7 +35,7 @@ function useExtensionOptionsLabels() {
|
|
|
35
35
|
*
|
|
36
36
|
* @param props - The action's label and description, its status, whether it runs, and the run.
|
|
37
37
|
*/
|
|
38
|
-
function ExtensionActionRow({ label, description, status, busy, disabled,
|
|
38
|
+
function ExtensionActionRow({ label, description, status, busy, disabled, onRun }) {
|
|
39
39
|
const l = useExtensionOptionsLabels();
|
|
40
40
|
return /* @__PURE__ */ jsxs("div", {
|
|
41
41
|
className: ROW_CLASS,
|
|
@@ -44,24 +44,25 @@ function ExtensionActionRow({ label, description, status, busy, disabled, needsS
|
|
|
44
44
|
children: [/* @__PURE__ */ jsx(RowText, {
|
|
45
45
|
label,
|
|
46
46
|
description
|
|
47
|
-
}), status?.text && /* @__PURE__ */ jsx(
|
|
48
|
-
|
|
47
|
+
}), status?.text && (status.error ? /* @__PURE__ */ jsx(Notice, {
|
|
48
|
+
tone: "error",
|
|
49
|
+
compact: true,
|
|
50
|
+
detail: status.text,
|
|
51
|
+
className: "mt-1",
|
|
52
|
+
children: l.extensionOptionsRunFailed
|
|
53
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
54
|
+
className: "text-xs break-words text-[var(--zg-text-muted)]",
|
|
49
55
|
children: status.text
|
|
50
|
-
})]
|
|
51
|
-
}), /* @__PURE__ */ jsx(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
children: busy ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SegmentSpinner, {
|
|
61
|
-
size: "xs",
|
|
62
|
-
label: l.extensionOptionsRunning
|
|
63
|
-
}), l.extensionOptionsRunning] }) : l.extensionOptionsRun
|
|
64
|
-
})
|
|
56
|
+
}))]
|
|
57
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
58
|
+
type: "button",
|
|
59
|
+
onClick: onRun,
|
|
60
|
+
disabled: disabled || busy,
|
|
61
|
+
className: BTN_SECONDARY,
|
|
62
|
+
children: busy ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SegmentSpinner, {
|
|
63
|
+
size: "xs",
|
|
64
|
+
label: l.extensionOptionsRunning
|
|
65
|
+
}), l.extensionOptionsRunning] }) : l.extensionOptionsRun
|
|
65
66
|
})]
|
|
66
67
|
});
|
|
67
68
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FormSection } from "../../../components/Form.js";
|
|
2
|
+
import { errorMessage } from "../../../components/report-error.js";
|
|
2
3
|
import { LoadError } from "../../../components/LoadError.js";
|
|
3
4
|
import { useSettings, useSettingsHost } from "../../SettingsProvider.js";
|
|
4
5
|
import { useModelCatalog } from "../../../chat/composer/use-composer-stores.js";
|
|
@@ -208,7 +209,7 @@ function ExtensionOptionRows({ schema, actions, values, cwd, visible, onWrite, o
|
|
|
208
209
|
ext: action.extension,
|
|
209
210
|
key: action.key,
|
|
210
211
|
state: "error",
|
|
211
|
-
text: err.detail ?? err
|
|
212
|
+
text: err.detail ?? errorMessage(err)
|
|
212
213
|
});
|
|
213
214
|
} finally {
|
|
214
215
|
runBusyRef.current = false;
|
|
@@ -4,8 +4,8 @@ import { Tooltip } from "../../../components/Tooltip.js";
|
|
|
4
4
|
import { ErrorNote, FIELD_LABEL_CLASS, FORM_CARD_CLASS, INPUT_CLASS, MetaChip, OpLine } from "../../../components/Form.js";
|
|
5
5
|
import { RowActionsMenu } from "../../../components/RowActionsMenu.js";
|
|
6
6
|
import { useDisplayPath } from "../../../hooks/useDisplayPath.js";
|
|
7
|
-
import { toSettingsError } from "../../headless/host.js";
|
|
8
7
|
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
8
|
+
import { toSettingsError } from "../../headless/host.js";
|
|
9
9
|
import { ExtensionSlot } from "../../../extensions/ExtensionSlot.js";
|
|
10
10
|
import { SettingsPanel, SettingsPanelActions, SettingsPanelBody } from "../../section.js";
|
|
11
11
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
@@ -7,9 +7,10 @@ declare const DEFAULT_EXTENSION_OPTIONS_LABELS: {
|
|
|
7
7
|
/** An action row's Run button while it runs. */
|
|
8
8
|
extensionOptionsRunning: string;
|
|
9
9
|
/** An action row this client's token may not run: its Run button's tooltip and name. */
|
|
10
|
-
extensionOptionsAdminOnly: string;
|
|
11
10
|
/** An action row's status while it runs. */
|
|
12
11
|
extensionOptionsRunningStatus: string;
|
|
12
|
+
/** An action's run failed. What it said goes under Details. */
|
|
13
|
+
extensionOptionsRunFailed: string;
|
|
13
14
|
/** A model option with nothing picked. */
|
|
14
15
|
extensionOptionsUnset: string;
|
|
15
16
|
/** A model option's reset button: name. */
|
|
@@ -6,9 +6,10 @@ const DEFAULT_EXTENSION_OPTIONS_LABELS = {
|
|
|
6
6
|
/** An action row's Run button while it runs. */
|
|
7
7
|
extensionOptionsRunning: "Running",
|
|
8
8
|
/** An action row this client's token may not run: its Run button's tooltip and name. */
|
|
9
|
-
extensionOptionsAdminOnly: "Admin only",
|
|
10
9
|
/** An action row's status while it runs. */
|
|
11
10
|
extensionOptionsRunningStatus: "running…",
|
|
11
|
+
/** An action's run failed. What it said goes under Details. */
|
|
12
|
+
extensionOptionsRunFailed: "The action failed.",
|
|
12
13
|
/** A model option with nothing picked. */
|
|
13
14
|
extensionOptionsUnset: "(unset)",
|
|
14
15
|
/** A model option's reset button: name. */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BTN_LG_SECONDARY, BTN_PRIMARY } from "../../../components/button.js";
|
|
2
2
|
import { INPUT_CLASS, OpLine } from "../../../components/Form.js";
|
|
3
3
|
import { LoadError } from "../../../components/LoadError.js";
|
|
4
|
-
import { toSettingsError } from "../../headless/host.js";
|
|
5
4
|
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
5
|
+
import { toSettingsError } from "../../headless/host.js";
|
|
6
6
|
import { SettingsPanel, SettingsPanelActions, SettingsPanelBody } from "../../section.js";
|
|
7
7
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
8
8
|
import { useSettingsRestricted } from "../../SettingsRestricted.js";
|