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.
Files changed (309) hide show
  1. package/dist/adapters/index.d.ts +2 -2
  2. package/dist/adapters/index.js +2 -2
  3. package/dist/adapters/live.d.ts +29 -3
  4. package/dist/adapters/live.js +9 -1
  5. package/dist/adapters/server-composer-host.js +17 -2
  6. package/dist/adapters/server-extensions-host.d.ts +0 -1
  7. package/dist/adapters/server-extensions-host.js +5 -16
  8. package/dist/adapters/server-git-host.js +7 -16
  9. package/dist/adapters/server-host.js +181 -43
  10. package/dist/adapters/server-machines-host.d.ts +2 -0
  11. package/dist/adapters/server-machines-host.js +24 -25
  12. package/dist/adapters/server-onboarding-host.d.ts +1 -1
  13. package/dist/adapters/server-onboarding-host.js +3 -4
  14. package/dist/adapters/server-session-host.js +22 -3
  15. package/dist/adapters/server-settings-accounts.js +2 -2
  16. package/dist/adapters/server-settings-host.js +3 -3
  17. package/dist/adapters/server-settings-performance.js +7 -9
  18. package/dist/adapters/server-settings-sections.js +13 -14
  19. package/dist/adapters/server-sidebar-host.js +2 -2
  20. package/dist/adapters/sse-host.js +68 -3
  21. package/dist/adapters/sse-protocol.d.ts +12 -2
  22. package/dist/adapters/sse-protocol.js +4 -2
  23. package/dist/app/AppHostProvider.js +4 -3
  24. package/dist/app/ModalProvider.d.ts +13 -3
  25. package/dist/app/ModalProvider.js +103 -24
  26. package/dist/app/NoticeStack.d.ts +33 -0
  27. package/dist/app/NoticeStack.js +90 -0
  28. package/dist/app/index.d.ts +3 -2
  29. package/dist/app/index.js +3 -2
  30. package/dist/appearance/AppearanceProvider.js +2 -2
  31. package/dist/appearance/headless/index.js +1 -1
  32. package/dist/approvals/headless/index.js +2 -2
  33. package/dist/chat/SessionFilterMenu.d.ts +1 -1
  34. package/dist/chat/SessionFilterMenu.js +2 -1
  35. package/dist/chat/Transcript.js +1 -1
  36. package/dist/chat/composer/Composer.js +9 -6
  37. package/dist/chat/composer/ComposerEditor.js +1 -1
  38. package/dist/chat/composer/ConversationBadges.js +1 -1
  39. package/dist/chat/composer/ModelChainList.js +17 -8
  40. package/dist/chat/composer/ModelChainTooltip.js +5 -2
  41. package/dist/chat/composer/use-composer-stores.js +1 -1
  42. package/dist/chat/composer/use-draft-target.d.ts +20 -1
  43. package/dist/chat/composer/use-draft-target.js +122 -6
  44. package/dist/chat/composer/use-new-session-defaults.d.ts +5 -1
  45. package/dist/chat/composer/use-new-session-defaults.js +17 -4
  46. package/dist/chat/composer/use-run-meter.js +1 -1
  47. package/dist/chat/composer/use-send-prompt.js +1 -1
  48. package/dist/chat/headless/chip-labels.d.ts +1 -0
  49. package/dist/chat/headless/chip-labels.js +1 -0
  50. package/dist/chat/headless/composer/index.js +2 -2
  51. package/dist/chat/headless/draft-target.d.ts +21 -1
  52. package/dist/chat/headless/fixture-host.js +17 -2
  53. package/dist/chat/headless/host.d.ts +3 -3
  54. package/dist/chat/headless/index.d.ts +9 -9
  55. package/dist/chat/headless/index.js +15 -15
  56. package/dist/chat/headless/labels.d.ts +13 -4
  57. package/dist/chat/headless/labels.js +8 -5
  58. package/dist/chat/headless/session-list.d.ts +20 -6
  59. package/dist/chat/headless/session-list.js +1 -0
  60. package/dist/chat/headless/sidebar/directory.d.ts +56 -14
  61. package/dist/chat/headless/sidebar/directory.js +149 -70
  62. package/dist/chat/headless/sidebar/index.d.ts +3 -3
  63. package/dist/chat/headless/sidebar/index.js +3 -3
  64. package/dist/chat/headless/sidebar/labels.d.ts +15 -6
  65. package/dist/chat/headless/sidebar/types.d.ts +3 -1
  66. package/dist/chat/headless/sidebar/view.d.ts +13 -5
  67. package/dist/chat/headless/sidebar/view.js +31 -11
  68. package/dist/chat/headless/streams/actions.d.ts +5 -3
  69. package/dist/chat/headless/streams/actions.js +3 -2
  70. package/dist/chat/headless/streams/index.d.ts +3 -3
  71. package/dist/chat/headless/streams/merge.d.ts +6 -10
  72. package/dist/chat/headless/streams/merge.js +7 -21
  73. package/dist/chat/headless/streams/session-streams.d.ts +29 -4
  74. package/dist/chat/headless/streams/session-streams.js +86 -0
  75. package/dist/chat/headless/streams/store.d.ts +162 -16
  76. package/dist/chat/headless/streams/store.js +334 -38
  77. package/dist/chat/headless/streams/types.d.ts +10 -7
  78. package/dist/chat/headless/transcript-labels.d.ts +1 -0
  79. package/dist/chat/interactions/PlanCard.js +10 -3
  80. package/dist/chat/interactions/QuestionForm.js +7 -3
  81. package/dist/chat/interactions/card-ui.d.ts +5 -3
  82. package/dist/chat/interactions/card-ui.js +9 -7
  83. package/dist/chat/sidebar/SessionSidebar.js +5 -5
  84. package/dist/chat/sidebar/SidebarFilterMenu.js +3 -1
  85. package/dist/chat/sidebar/SidebarFrame.d.ts +4 -0
  86. package/dist/chat/sidebar/SidebarFrame.js +27 -9
  87. package/dist/chat/sidebar/SidebarGroupHeader.js +1 -1
  88. package/dist/chat/sidebar/SidebarHostProvider.d.ts +8 -5
  89. package/dist/chat/sidebar/SidebarHostProvider.js +13 -9
  90. package/dist/chat/sidebar/SidebarToggleButton.js +7 -3
  91. package/dist/chat/sidebar/index.d.ts +2 -2
  92. package/dist/chat/sidebar/session-menu.js +4 -4
  93. package/dist/chat/sidebar/useSaveViewAsSpace.js +2 -2
  94. package/dist/chat/testing/contract.js +2 -2
  95. package/dist/chat/transcript/AuthFailureCard.js +11 -8
  96. package/dist/chat/transcript/BadgeMenu.js +13 -2
  97. package/dist/chat/transcript/MermaidDiagram.js +7 -3
  98. package/dist/chat/transcript/fold.d.ts +4 -0
  99. package/dist/chat/transcript/fold.js +53 -22
  100. package/dist/chat/transcript/script-input.d.ts +1 -1
  101. package/dist/chat/transcript/shell-block.js +8 -4
  102. package/dist/chat/transcript/useStickToBottom.js +12 -0
  103. package/dist/components/BrowserSignIn.js +23 -21
  104. package/dist/components/Form.d.ts +6 -4
  105. package/dist/components/Form.js +16 -8
  106. package/dist/components/LoadError.d.ts +4 -2
  107. package/dist/components/LoadError.js +13 -9
  108. package/dist/components/Notice.d.ts +29 -0
  109. package/dist/components/Notice.js +63 -0
  110. package/dist/components/PanelEmpty.d.ts +1 -1
  111. package/dist/components/PanelEmpty.js +4 -2
  112. package/dist/components/Restricted.d.ts +1 -1
  113. package/dist/components/palette/PaletteList.js +8 -1
  114. package/dist/components/palette/PalettePanel.js +14 -6
  115. package/dist/core.css +24 -5
  116. package/dist/dist/{index-Bq87OcGy.d.ts → index-C6rzc-tt.d.ts} +28 -3
  117. package/dist/dist/index.d.ts +2 -2
  118. package/dist/dist/{timeout-B5pO5I5a.d.ts → timeout-Cz9dRF8Q.d.ts} +1 -1
  119. package/dist/extensions/ExtensionSettingsPage.js +2 -5
  120. package/dist/extensions/ExtensionSettingsSection.js +5 -4
  121. package/dist/extensions/ExtensionSettingsSidebar.js +3 -7
  122. package/dist/extensions/SettingsWireForm.d.ts +1 -7
  123. package/dist/extensions/SettingsWireForm.js +7 -5
  124. package/dist/extensions/headless/fixture-host.d.ts +1 -5
  125. package/dist/extensions/headless/fixture-host.js +2 -5
  126. package/dist/extensions/headless/host.d.ts +1 -11
  127. package/dist/extensions/headless/index.d.ts +3 -3
  128. package/dist/extensions/headless/index.js +6 -6
  129. package/dist/extensions/headless/select.d.ts +1 -11
  130. package/dist/extensions/headless/select.js +1 -18
  131. package/dist/extensions/hooks.js +1 -1
  132. package/dist/files/EditorColumn.js +13 -2
  133. package/dist/files/MediaDiff.js +1 -1
  134. package/dist/files/TreeColumn.js +13 -20
  135. package/dist/files/useEntryActions.js +1 -1
  136. package/dist/files/useOpenFiles.js +3 -1
  137. package/dist/git/BranchMenu.js +6 -4
  138. package/dist/git/ImportRepoDialog.js +18 -9
  139. package/dist/git/MoveSessionDialog.js +16 -8
  140. package/dist/git/RemoteFolderPicker.js +35 -17
  141. package/dist/git/SyncChip.js +17 -17
  142. package/dist/git/WherePicker.d.ts +16 -1
  143. package/dist/git/WherePicker.js +81 -37
  144. package/dist/git/headless/environment.d.ts +33 -3
  145. package/dist/git/headless/environment.js +33 -5
  146. package/dist/git/headless/index.d.ts +2 -2
  147. package/dist/git/headless/index.js +2 -2
  148. package/dist/git/headless/labels.d.ts +15 -2
  149. package/dist/git/headless/labels.js +17 -4
  150. package/dist/git/useEnvironmentChoices.d.ts +3 -1
  151. package/dist/git/useEnvironmentChoices.js +7 -4
  152. package/dist/index.d.ts +2 -1
  153. package/dist/index.js +2 -1
  154. package/dist/keybindings/KeyCommands.js +1 -1
  155. package/dist/keybindings/KeybindingsProvider.js +1 -1
  156. package/dist/keybindings/headless/index.js +2 -2
  157. package/dist/keybindings/headless/overrides.js +1 -1
  158. package/dist/labels.d.ts +5 -0
  159. package/dist/labels.js +5 -0
  160. package/dist/machines/AddMachineDialog.d.ts +34 -0
  161. package/dist/machines/AddMachineDialog.js +464 -0
  162. package/dist/machines/Banners.d.ts +33 -4
  163. package/dist/machines/Banners.js +64 -3
  164. package/dist/machines/DaemonMenu.js +27 -4
  165. package/dist/machines/HostCapabilities.d.ts +1 -3
  166. package/dist/machines/HostCapabilities.js +24 -45
  167. package/dist/machines/HostSyncPanel.js +124 -130
  168. package/dist/machines/HostsSection.d.ts +4 -1
  169. package/dist/machines/HostsSection.js +30 -7
  170. package/dist/machines/MachinesExplainer.d.ts +17 -0
  171. package/dist/machines/MachinesExplainer.js +71 -0
  172. package/dist/machines/MachinesProvider.d.ts +14 -2
  173. package/dist/machines/MachinesProvider.js +35 -1
  174. package/dist/machines/ServerAddedCard.d.ts +31 -0
  175. package/dist/machines/ServerAddedCard.js +72 -0
  176. package/dist/machines/ServerCard.js +91 -215
  177. package/dist/machines/ServerMachinesPanel.d.ts +2 -2
  178. package/dist/machines/ServerMachinesPanel.js +184 -323
  179. package/dist/machines/ServerUpdatePanel.js +51 -40
  180. package/dist/machines/ShareThisComputerForm.d.ts +19 -0
  181. package/dist/machines/ShareThisComputerForm.js +133 -0
  182. package/dist/machines/SyncOutcomeBadge.js +1 -1
  183. package/dist/machines/TokensPanel.d.ts +5 -3
  184. package/dist/machines/TokensPanel.js +98 -78
  185. package/dist/machines/headless/fixture-host.d.ts +19 -3
  186. package/dist/machines/headless/fixture-host.js +43 -6
  187. package/dist/machines/headless/fixtures.js +4 -6
  188. package/dist/machines/headless/host.d.ts +40 -19
  189. package/dist/machines/headless/index.d.ts +3 -3
  190. package/dist/machines/headless/index.js +3 -3
  191. package/dist/machines/headless/labels.d.ts +63 -20
  192. package/dist/machines/headless/labels.js +88 -25
  193. package/dist/machines/headless/messages.js +8 -0
  194. package/dist/machines/headless/stores.d.ts +9 -2
  195. package/dist/machines/headless/stores.js +28 -1
  196. package/dist/machines/index.d.ts +7 -3
  197. package/dist/machines/index.js +8 -4
  198. package/dist/machines/testing/contract.d.ts +15 -3
  199. package/dist/machines/testing/contract.js +68 -14
  200. package/dist/motion/grow.d.ts +8 -1
  201. package/dist/motion/grow.js +10 -4
  202. package/dist/onboarding/headless/labels.d.ts +13 -0
  203. package/dist/onboarding/headless/labels.js +8 -0
  204. package/dist/onboarding/sources/SourceBrowser.js +11 -7
  205. package/dist/onboarding/steps/ImportStep.js +4 -1
  206. package/dist/onboarding/steps/ReadyStep.js +9 -2
  207. package/dist/onboarding/steps/connect/KeyForm.js +6 -2
  208. package/dist/onboarding/steps/connect/ProviderPanel.js +6 -2
  209. package/dist/onboarding/steps/connect/ProviderReady.js +25 -20
  210. package/dist/onboarding/steps/tasks.js +17 -14
  211. package/dist/palette/app-sources.js +1 -1
  212. package/dist/server/sse-handler.js +141 -19
  213. package/dist/session/ArtifactsPanel.js +40 -18
  214. package/dist/session/PlanTracker.js +13 -8
  215. package/dist/session/ProjectHome.js +13 -11
  216. package/dist/session/RemindersPanel.js +35 -17
  217. package/dist/session/RunningWorkDialog.js +6 -2
  218. package/dist/session/SecretsPanel.js +29 -10
  219. package/dist/session/SessionDetailsDialog.d.ts +1 -1
  220. package/dist/session/SessionDetailsDialog.js +18 -10
  221. package/dist/session/SideChat.js +10 -7
  222. package/dist/session/TurnDetailsDialog.js +19 -5
  223. package/dist/session/UsagePanel.js +10 -4
  224. package/dist/session/headless/host.d.ts +2 -0
  225. package/dist/session/headless/index.js +2 -2
  226. package/dist/session/headless/labels.d.ts +19 -1
  227. package/dist/session/headless/labels.js +15 -1
  228. package/dist/session/headless/queue.js +2 -1
  229. package/dist/session/headless/reminder-labels.d.ts +4 -0
  230. package/dist/session/headless/reminder-labels.js +4 -0
  231. package/dist/settings/SettingsRestricted.d.ts +1 -1
  232. package/dist/settings/SettingsRestricted.js +4 -4
  233. package/dist/settings/SettingsShell.d.ts +7 -0
  234. package/dist/settings/SettingsShell.js +6 -1
  235. package/dist/settings/headless/fixture-performance.d.ts +1 -1
  236. package/dist/settings/headless/host.d.ts +2 -2
  237. package/dist/settings/headless/index.js +1 -1
  238. package/dist/settings/headless/labels.d.ts +3 -3
  239. package/dist/settings/headless/labels.js +3 -3
  240. package/dist/settings/headless/performance.d.ts +3 -4
  241. package/dist/settings/headless/search.d.ts +1 -1
  242. package/dist/settings/index.d.ts +2 -1
  243. package/dist/settings/index.js +2 -1
  244. package/dist/settings/sections/appearance/AppearanceSection.js +2 -2
  245. package/dist/settings/sections/claude-import/ClaudeImportDialog.js +1 -1
  246. package/dist/settings/sections/editor/EditorSection.js +8 -5
  247. package/dist/settings/sections/editor/labels.d.ts +1 -0
  248. package/dist/settings/sections/editor/labels.js +1 -0
  249. package/dist/settings/sections/environments/EnvironmentsSection.js +21 -14
  250. package/dist/settings/sections/environments/labels.d.ts +1 -0
  251. package/dist/settings/sections/environments/labels.js +2 -1
  252. package/dist/settings/sections/extensions/ChangeOriginDialog.js +1 -1
  253. package/dist/settings/sections/extensions/CreateExtensionDialog.js +1 -1
  254. package/dist/settings/sections/extensions/ExtensionConfigRows.d.ts +1 -3
  255. package/dist/settings/sections/extensions/ExtensionConfigRows.js +20 -19
  256. package/dist/settings/sections/extensions/ExtensionOptionsSection.js +2 -1
  257. package/dist/settings/sections/extensions/ExtensionsSection.js +1 -1
  258. package/dist/settings/sections/extensions/options-labels.d.ts +2 -1
  259. package/dist/settings/sections/extensions/options-labels.js +2 -1
  260. package/dist/settings/sections/host-catalog/HostCatalogSection.js +1 -1
  261. package/dist/settings/sections/index.d.ts +2 -1
  262. package/dist/settings/sections/index.js +2 -1
  263. package/dist/settings/sections/instructions/InstructionsSection.js +1 -1
  264. package/dist/settings/sections/logs/LogsSection.d.ts +2 -2
  265. package/dist/settings/sections/logs/LogsSection.js +2 -2
  266. package/dist/settings/sections/mcp/McpSection.d.ts +1 -1
  267. package/dist/settings/sections/mcp/McpSection.js +13 -7
  268. package/dist/settings/sections/mcp/McpServerRow.js +21 -14
  269. package/dist/settings/sections/mcp/labels.d.ts +8 -2
  270. package/dist/settings/sections/mcp/labels.js +8 -2
  271. package/dist/settings/sections/models/ModelRows.js +1 -1
  272. package/dist/settings/sections/models/NewChatPlaceRow.d.ts +26 -0
  273. package/dist/settings/sections/models/NewChatPlaceRow.js +78 -0
  274. package/dist/settings/sections/models/SpacesDefaultsSection.js +15 -3
  275. package/dist/settings/sections/models/labels.d.ts +7 -0
  276. package/dist/settings/sections/models/labels.js +7 -0
  277. package/dist/settings/sections/models/model-test.js +7 -4
  278. package/dist/settings/sections/performance/PerformanceSection.js +16 -6
  279. package/dist/settings/sections/performance/labels.d.ts +1 -1
  280. package/dist/settings/sections/performance/labels.js +1 -1
  281. package/dist/settings/sections/providers/ProvidersSection.d.ts +1 -1
  282. package/dist/settings/sections/providers/ProvidersSection.js +15 -8
  283. package/dist/settings/sections/providers/ServerProvidersSection.d.ts +1 -1
  284. package/dist/settings/sections/providers/ServerProvidersSection.js +12 -6
  285. package/dist/settings/sections/providers/labels.d.ts +2 -2
  286. package/dist/settings/sections/providers/labels.js +2 -2
  287. package/dist/settings/sections/shared/catalog.js +1 -1
  288. package/dist/settings/sections/skills/SkillsSection.js +1 -1
  289. package/dist/settings/testing/performance.contract.js +8 -12
  290. package/dist/styles.css +32 -3
  291. package/dist/terminal/HostTerminalSurface.js +17 -7
  292. package/dist/terminal/TerminalPanel.js +30 -17
  293. package/dist/terminal/TerminalSurface.js +11 -4
  294. package/dist/terminal/headless/labels.d.ts +5 -0
  295. package/dist/terminal/headless/labels.js +5 -0
  296. package/dist/terminal/headless/store.d.ts +1 -1
  297. package/dist/terminal/headless/store.js +6 -3
  298. package/dist/workspace/LayoutBudget.d.ts +5 -1
  299. package/dist/workspace/LayoutBudget.js +14 -1
  300. package/dist/workspace/PanelContentView.d.ts +1 -1
  301. package/dist/workspace/PanelContentView.js +17 -6
  302. package/dist/workspace/WorkspaceProvider.js +4 -3
  303. package/dist/workspace/extension-tabs.js +1 -1
  304. package/dist/workspace/headless/index.js +1 -1
  305. package/dist/workspace/headless/labels.d.ts +1 -0
  306. package/dist/workspace/headless/labels.js +1 -0
  307. package/package.json +3 -3
  308. package/src/styles/motion.css +8 -0
  309. package/src/styles/primitives.css +7 -0
@@ -49,5 +49,6 @@ import { DEFAULT_MODEL_ROWS_LABELS, ModelRowsLabels } from "./models/labels.js";
49
49
  import { ModelPickField, ModelPickFieldProps, modelPickLabel } from "./models/ModelPickField.js";
50
50
  import { ApprovalModeRow, ApprovalModeRowProps, CompactionModelRow, CompactionModelRowProps, ConversationPresetsRow, ConversationPresetsRowProps, DecisionModelRow, DecisionModelRowProps, TextModelRow, TextModelRowProps, automaticTextModel } from "./models/ModelRows.js";
51
51
  import { SpacesDefaultsSection, SpacesDefaultsSectionProps, spaceDefaults, withSpaceDefaults } from "./models/SpacesDefaultsSection.js";
52
+ import { NewChatPlaceRow, NewChatPlaceRowProps } from "./models/NewChatPlaceRow.js";
52
53
  import { ModelTestButton, ModelTestButtonProps, ModelTestLine, ModelTestLineProps, ModelTestState, useModelRowsLabels, useModelTest } from "./models/model-test.js";
53
- export { AccountsConfirm, AccountsSectionLabels, AgentDefaultsRows, AgentDefaultsRowsProps, AgentDefaultsValue, AppearanceSection, AppearanceSectionLabels, AppearanceSectionProps, ApprovalModeRow, ApprovalModeRowProps, CatalogSharedLabels, 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, ServerProvidersSection, ServerProvidersSectionProps, ServerSignIn, ServerSignInProps, SkillsSection, SkillsSectionLabels, SkillsSectionProps, SpacesDefaultsSection, SpacesDefaultsSectionProps, TextModelRow, TextModelRowProps, agentDefaultsOf, agentDefaultsPatch, appearanceSettingsSection, automaticTextModel, editorSettingsSection, enabledListSettingsSection, environmentsSettingsSection, extensionConfigValue, extensionPickOf, extensionsSettingsSection, filterModelList, hostCatalogSettingsSection, instructionsSettingsSection, keybindingsSettingsSection, logsSettingsSection, mcpSettingsSection, modelPickLabel, 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, useSkillsSectionLabels, withSpaceDefaults };
54
+ export { AccountsConfirm, AccountsSectionLabels, AgentDefaultsRows, AgentDefaultsRowsProps, AgentDefaultsValue, AppearanceSection, AppearanceSectionLabels, AppearanceSectionProps, ApprovalModeRow, ApprovalModeRowProps, CatalogSharedLabels, 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, ServerProvidersSection, ServerProvidersSectionProps, ServerSignIn, ServerSignInProps, SkillsSection, SkillsSectionLabels, SkillsSectionProps, SpacesDefaultsSection, SpacesDefaultsSectionProps, TextModelRow, TextModelRowProps, agentDefaultsOf, agentDefaultsPatch, appearanceSettingsSection, automaticTextModel, editorSettingsSection, enabledListSettingsSection, environmentsSettingsSection, extensionConfigValue, extensionPickOf, extensionsSettingsSection, filterModelList, hostCatalogSettingsSection, instructionsSettingsSection, keybindingsSettingsSection, logsSettingsSection, mcpSettingsSection, modelPickLabel, 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, useSkillsSectionLabels, withSpaceDefaults };
@@ -49,5 +49,6 @@ import { PerformanceHud } from "./performance/PerformanceHud.js";
49
49
  import { ModelPickField, modelPickLabel } from "./models/ModelPickField.js";
50
50
  import { AgentDefaultsRows, agentDefaultsOf, agentDefaultsPatch } from "./models/AgentDefaults.js";
51
51
  import { ApprovalModeRow, CompactionModelRow, ConversationPresetsRow, DecisionModelRow, TextModelRow, automaticTextModel } from "./models/ModelRows.js";
52
+ import { NewChatPlaceRow } from "./models/NewChatPlaceRow.js";
52
53
  import { SpacesDefaultsSection, spaceDefaults, withSpaceDefaults } from "./models/SpacesDefaultsSection.js";
53
- export { AgentDefaultsRows, AppearanceSection, ApprovalModeRow, 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, ServerProvidersSection, ServerSignIn, SkillsSection, SpacesDefaultsSection, TextModelRow, agentDefaultsOf, agentDefaultsPatch, appearanceSettingsSection, automaticTextModel, editorSettingsSection, enabledListSettingsSection, environmentsSettingsSection, extensionConfigValue, extensionPickOf, extensionsSettingsSection, filterModelList, hostCatalogSettingsSection, instructionsSettingsSection, keybindingsSettingsSection, logsSettingsSection, mcpSettingsSection, modelPickLabel, 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, useSkillsSectionLabels, withSpaceDefaults };
54
+ export { AgentDefaultsRows, AppearanceSection, ApprovalModeRow, 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, ServerProvidersSection, ServerSignIn, SkillsSection, SpacesDefaultsSection, TextModelRow, agentDefaultsOf, agentDefaultsPatch, appearanceSettingsSection, automaticTextModel, editorSettingsSection, enabledListSettingsSection, environmentsSettingsSection, extensionConfigValue, extensionPickOf, extensionsSettingsSection, filterModelList, hostCatalogSettingsSection, instructionsSettingsSection, keybindingsSettingsSection, logsSettingsSection, mcpSettingsSection, modelPickLabel, 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, useSkillsSectionLabels, withSpaceDefaults };
@@ -2,9 +2,9 @@ import { BTN_SECONDARY, buttonClass } from "../../../components/button.js";
2
2
  import { EmptyState } from "../../../components/Surface.js";
3
3
  import { ErrorNote, MetaChip } 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 { Markdown } from "../../../chat/transcript/markdown.js";
7
+ import { toSettingsError } from "../../headless/host.js";
8
8
  import { SettingsPanel, SettingsPanelBody } from "../../section.js";
9
9
  import { useSectionLabels } from "../use-section-labels.js";
10
10
  import { SettingsRestricted } from "../../SettingsRestricted.js";
@@ -11,8 +11,8 @@ interface LogsSectionProps {
11
11
  style?: CSSProperties;
12
12
  }
13
13
  /**
14
- * Renders the log records of the nearest `SettingsProvider`'s host, filtered by level and text. A connection
15
- * that may not write gets no `logs` (reading them is admin-only too): the frame shows, restricted and empty.
14
+ * Renders the log records of the nearest `SettingsProvider`'s host, filtered by level and text. Without the host's
15
+ * `logs`, on a connection that may not write, the frame shows restricted and empty.
16
16
  *
17
17
  * @param props - `className` and `style`.
18
18
  */
@@ -34,8 +34,8 @@ const LEVEL_CLS = {
34
34
  };
35
35
  const NO_RECORDS = [];
36
36
  /**
37
- * Renders the log records of the nearest `SettingsProvider`'s host, filtered by level and text. A connection
38
- * that may not write gets no `logs` (reading them is admin-only too): the frame shows, restricted and empty.
37
+ * Renders the log records of the nearest `SettingsProvider`'s host, filtered by level and text. Without the host's
38
+ * `logs`, on a connection that may not write, the frame shows restricted and empty.
39
39
  *
40
40
  * @param props - `className` and `style`.
41
41
  */
@@ -19,7 +19,7 @@ interface McpSectionProps {
19
19
  /**
20
20
  * Renders the MCP servers of the nearest `SettingsProvider`'s host (`mcp`). Without it the section shows
21
21
  * nothing to do; each action needs its host member, the switches need `update`, and a connection that may
22
- * not write (`writable`) sees the list and Add server restricted ("Admin only").
22
+ * not write (`writable`) sees the list and Add server restricted.
23
23
  *
24
24
  * @param props - The `cwd`, an `intro`, header `actions`, `className` and `style`.
25
25
  */
@@ -1,9 +1,10 @@
1
1
  import { BTN_LG_PRIMARY, BTN_LG_SECONDARY } from "../../../components/button.js";
2
+ import { Notice } from "../../../components/Notice.js";
2
3
  import { EmptyState } from "../../../components/Surface.js";
3
- import { ErrorNote, OpLine } from "../../../components/Form.js";
4
+ import { ErrorNote } from "../../../components/Form.js";
5
+ import { useSettingsHost, useSettingsWritable } from "../../SettingsProvider.js";
4
6
  import { toSettingsError } from "../../headless/host.js";
5
7
  import { enabledMcpTools, enabledMcpsAfterAdd, mcpRunning, mcpSettingsAfterRemove, mcpShareable, mcpSharedNow, mcpSharingWith, toggleMcpTool } from "../../headless/mcp.js";
6
- import { useSettingsHost, useSettingsWritable } from "../../SettingsProvider.js";
7
8
  import { SettingsPanel, SettingsPanelActions, SettingsPanelBody } from "../../section.js";
8
9
  import { useSectionLabels } from "../use-section-labels.js";
9
10
  import { SettingsRestricted } from "../../SettingsRestricted.js";
@@ -38,7 +39,7 @@ const NO_INSTANCES = [];
38
39
  /**
39
40
  * Renders the MCP servers of the nearest `SettingsProvider`'s host (`mcp`). Without it the section shows
40
41
  * nothing to do; each action needs its host member, the switches need `update`, and a connection that may
41
- * not write (`writable`) sees the list and Add server restricted ("Admin only").
42
+ * not write (`writable`) sees the list and Add server restricted.
42
43
  *
43
44
  * @param props - The `cwd`, an `intro`, header `actions`, `className` and `style`.
44
45
  */
@@ -221,11 +222,16 @@ function McpSection({ cwd: folder, intro, actions, className, style }) {
221
222
  onSubmit: (form) => void handleAdd(form),
222
223
  labels: l
223
224
  }),
224
- opLine?.kind === "error" && /* @__PURE__ */ jsx(OpLine, {
225
- kind: "error",
226
- children: l.mcpSectionError(opLine.error)
225
+ opLine?.kind === "error" && /* @__PURE__ */ jsx(Notice, {
226
+ tone: "error",
227
+ compact: true,
228
+ ...opLine.error.detail ? { detail: opLine.error.detail } : {},
229
+ children: l.mcpSectionFailed(opLine.error)
230
+ }),
231
+ shownError && /* @__PURE__ */ jsx(ErrorNote, {
232
+ ...shownError.detail ? { detail: shownError.detail } : {},
233
+ children: l.mcpSectionFailed(shownError)
227
234
  }),
228
- shownError && /* @__PURE__ */ jsx(ErrorNote, { children: l.mcpSectionError(shownError) }),
229
235
  mcp && statuses === null && /* @__PURE__ */ jsx("div", {
230
236
  className: "text-sm text-[var(--zg-text-muted)]",
231
237
  children: l.mcpSectionLoading
@@ -1,10 +1,11 @@
1
1
  import { BrandMark } from "../../../components/BrandMark.js";
2
2
  import { IconButton } from "../../../components/IconButton.js";
3
3
  import { BTN_DANGER, BTN_DANGER_CONFIRM, BTN_PRIMARY, BTN_SECONDARY } from "../../../components/button.js";
4
+ import { Notice } from "../../../components/Notice.js";
4
5
  import { Tray } from "../../../components/Surface.js";
5
6
  import { HostRow, MetaChip, ToggleSwitch } from "../../../components/Form.js";
6
- import { mcpBadge } from "../../headless/mcp.js";
7
7
  import { RoutedLink } from "../../../extensions/links.js";
8
+ import { mcpBadge } from "../../headless/mcp.js";
8
9
  import { useSignIn } from "../../../onboarding/useSignIn.js";
9
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
11
  import { CONNECTORS, ageString, connectorInstalled } from "zidane/chat/pure";
@@ -87,9 +88,12 @@ function McpServerRow({ server: mcp, enabled, expanded, probing, enabledTools, r
87
88
  title: mcp.url,
88
89
  children: mcp.url
89
90
  }),
90
- mcp.lastError && !flow && /* @__PURE__ */ jsx("div", {
91
- className: "mt-1 text-zg-meta text-zg-danger break-words",
92
- children: mcp.lastError
91
+ mcp.lastError && !flow && /* @__PURE__ */ jsx(Notice, {
92
+ tone: "error",
93
+ compact: true,
94
+ detail: mcp.lastError,
95
+ className: "mt-1",
96
+ children: l.mcpSectionServerError
93
97
  }),
94
98
  mcp.lastError && !flow && /dynamic client registration/i.test(mcp.lastError) && /* @__PURE__ */ jsx("div", {
95
99
  className: "mt-1 text-zg-meta text-[var(--zg-text-muted)]",
@@ -99,9 +103,12 @@ function McpServerRow({ server: mcp, enabled, expanded, probing, enabledTools, r
99
103
  test: mcp.test,
100
104
  probing,
101
105
  labels: l
102
- }) : /* @__PURE__ */ jsxs(Fragment, { children: [mcp.toolError && /* @__PURE__ */ jsx("div", {
103
- className: "mt-1 text-zg-meta text-zg-danger break-words",
104
- children: mcp.toolError
106
+ }) : /* @__PURE__ */ jsxs(Fragment, { children: [mcp.toolError && /* @__PURE__ */ jsx(Notice, {
107
+ tone: "error",
108
+ compact: true,
109
+ detail: mcp.toolError,
110
+ className: "mt-1",
111
+ children: l.mcpSectionToolsFailed
105
112
  }), mcp.toolsUpdatedAt && !probing && /* @__PURE__ */ jsx("div", {
106
113
  className: "zg-meta mt-1",
107
114
  children: l.mcpSectionToolsListed(ageString(mcp.toolsUpdatedAt))
@@ -175,17 +182,17 @@ function McpServerRow({ server: mcp, enabled, expanded, probing, enabledTools, r
175
182
  ]
176
183
  }), flow && /* @__PURE__ */ jsx("div", {
177
184
  className: "zg-tray mt-3 px-3 py-2.5 rounded-zg-md text-xs",
178
- children: flow.kind === "error" ? /* @__PURE__ */ jsxs("div", {
179
- className: "flex items-center gap-2",
180
- children: [/* @__PURE__ */ jsx("span", {
181
- className: "flex-1 text-zg-danger break-words",
182
- children: flow.message
183
- }), /* @__PURE__ */ jsx("button", {
185
+ children: flow.kind === "error" ? /* @__PURE__ */ jsx(Notice, {
186
+ tone: "error",
187
+ compact: true,
188
+ detail: flow.message,
189
+ action: /* @__PURE__ */ jsx("button", {
184
190
  type: "button",
185
191
  onClick: signIn.cancel,
186
192
  className: BTN_SECONDARY,
187
193
  children: l.mcpSectionDismiss
188
- })]
194
+ }),
195
+ children: l.mcpSectionSignInFailed
189
196
  }) : /* @__PURE__ */ jsxs("div", {
190
197
  className: "flex items-center gap-2",
191
198
  children: [/* @__PURE__ */ jsx("span", {
@@ -3,8 +3,8 @@ import { SettingsError } from "../../headless/host.js";
3
3
  //#region src/settings/sections/mcp/labels.d.ts
4
4
  /** The default English strings of the MCP servers section. */
5
5
  declare const DEFAULT_MCP_SECTION_LABELS: {
6
- /** A failed read or action, worded from the host's error. */
7
- mcpSectionError: (error: SettingsError) => string;
6
+ /** A failed read or action, worded by its kind. What the host said goes under Details. */
7
+ mcpSectionFailed: (error: SettingsError) => "Couldn't reach the host." | "Not allowed: this connection may not do that." | "Something went wrong.";
8
8
  /** Tests every enabled server. */
9
9
  mcpSectionTestAll: string;
10
10
  /** While that runs. */
@@ -71,6 +71,12 @@ declare const DEFAULT_MCP_SECTION_LABELS: {
71
71
  mcpSectionDisable: string;
72
72
  /** Its tooltip when off. */
73
73
  mcpSectionEnable: string;
74
+ /** The server's last error, worded; what it said goes under Details. */
75
+ mcpSectionServerError: string;
76
+ /** Listing its tools failed. */
77
+ mcpSectionToolsFailed: string;
78
+ /** A sign-in failed. */
79
+ mcpSectionSignInFailed: string;
74
80
  /** Drops a failed sign-in. */
75
81
  mcpSectionDismiss: string;
76
82
  /** The sign-in page is open. */
@@ -9,8 +9,8 @@ import { MCP_KEY_REFUSED_HINT, MCP_STATUS_LABEL } from "zidane/chat/pure";
9
9
  */
10
10
  /** The default English strings of the MCP servers section. */
11
11
  const DEFAULT_MCP_SECTION_LABELS = {
12
- /** A failed read or action, worded from the host's error. */
13
- mcpSectionError: (error) => error.detail ?? (error.kind === "unreachable" ? "Couldn't reach the host." : error.kind === "refused" ? "Not allowed: this connection may not do that." : "Something went wrong."),
12
+ /** A failed read or action, worded by its kind. What the host said goes under Details. */
13
+ mcpSectionFailed: (error) => error.kind === "unreachable" ? "Couldn't reach the host." : error.kind === "refused" ? "Not allowed: this connection may not do that." : "Something went wrong.",
14
14
  /** Tests every enabled server. */
15
15
  mcpSectionTestAll: "Test all",
16
16
  /** While that runs. */
@@ -77,6 +77,12 @@ const DEFAULT_MCP_SECTION_LABELS = {
77
77
  mcpSectionDisable: "Disable for this folder",
78
78
  /** Its tooltip when off. */
79
79
  mcpSectionEnable: "Enable for this folder",
80
+ /** The server's last error, worded; what it said goes under Details. */
81
+ mcpSectionServerError: "The server reported an error.",
82
+ /** Listing its tools failed. */
83
+ mcpSectionToolsFailed: "Couldn't list its tools.",
84
+ /** A sign-in failed. */
85
+ mcpSectionSignInFailed: "Sign-in failed.",
80
86
  /** Drops a failed sign-in. */
81
87
  mcpSectionDismiss: "Dismiss",
82
88
  /** The sign-in page is open. */
@@ -1,8 +1,8 @@
1
1
  import { IconButton } from "../../../components/IconButton.js";
2
2
  import { BTN_SECONDARY } from "../../../components/button.js";
3
3
  import { HostRow, ROW_TRIGGER_CLASS, RowText } from "../../../components/Form.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 { useComposerModelName, useModelCatalog } from "../../../chat/composer/use-composer-stores.js";
7
7
  import { ModelTestButton, ModelTestLine, useModelRowsLabels, useModelTest } from "./model-test.js";
8
8
  import { ModelListPicker } from "./ModelListPicker.js";
@@ -0,0 +1,26 @@
1
+ import { CSSProperties } from "react";
2
+ import { NewChatPlace } from "zidane/chat/pure";
3
+ //#region src/settings/sections/models/NewChatPlaceRow.d.ts
4
+ /** Props for {@link NewChatPlaceRow}. */
5
+ interface NewChatPlaceRowProps {
6
+ /** The place set here; `null` or absent: none. */
7
+ value: NewChatPlace | null | undefined;
8
+ /** What applies while none is set here (a space's row: the global place). Absent: this computer. */
9
+ inherited?: NewChatPlace | null;
10
+ /** A space's row: words it for the space. */
11
+ inSpace?: boolean;
12
+ /** Takes the place back. */
13
+ onClear: () => void;
14
+ /** Extra classes on the row. */
15
+ className?: string;
16
+ /** Inline styles on the row. */
17
+ style?: CSSProperties;
18
+ }
19
+ /**
20
+ * Renders where new chats start, and Clear when a place is set here.
21
+ *
22
+ * @param props - The place, what applies without it, and Clear.
23
+ */
24
+ declare function NewChatPlaceRow({ value, inherited, inSpace, onClear, className, style }: NewChatPlaceRowProps): import("react").JSX.Element;
25
+ //#endregion
26
+ export { NewChatPlaceRow, NewChatPlaceRowProps };
@@ -0,0 +1,78 @@
1
+ import { IconButton } from "../../../components/IconButton.js";
2
+ import { HostRow, MetaChip, RowText } from "../../../components/Form.js";
3
+ import { useModelRowsLabels } from "./model-test.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { LOCAL_HOST_KEY } from "zidane/chat/pure";
6
+ //#region src/settings/sections/models/NewChatPlaceRow.tsx
7
+ /** The place as chips: where, on which machine, in which folder, how. */
8
+ function PlaceChips({ place, muted }) {
9
+ const l = useModelRowsLabels();
10
+ const host = !place || place.hostId === LOCAL_HOST_KEY ? l.modelRowsThisComputer : place.hostName ?? place.hostId;
11
+ const tone = muted ? "muted" : "text";
12
+ return /* @__PURE__ */ jsxs("span", {
13
+ className: "flex items-center gap-1 flex-wrap justify-end min-w-0",
14
+ children: [
15
+ /* @__PURE__ */ jsxs(MetaChip, {
16
+ tone,
17
+ children: [/* @__PURE__ */ jsx("span", {
18
+ "aria-hidden": true,
19
+ className: !place || place.hostId === LOCAL_HOST_KEY ? "i-ph-laptop" : "i-ph-hard-drives"
20
+ }), host]
21
+ }),
22
+ place?.machine && /* @__PURE__ */ jsxs(MetaChip, {
23
+ tone,
24
+ children: [/* @__PURE__ */ jsx("span", {
25
+ "aria-hidden": true,
26
+ className: "i-ph-desktop-tower"
27
+ }), place.machine]
28
+ }),
29
+ place?.folder && /* @__PURE__ */ jsx(MetaChip, {
30
+ tone,
31
+ className: "font-mono max-w-[16rem]",
32
+ children: /* @__PURE__ */ jsx("span", {
33
+ className: "truncate",
34
+ children: place.folder
35
+ })
36
+ }),
37
+ place?.isolation && place.isolation !== "local" && /* @__PURE__ */ jsx(MetaChip, {
38
+ tone,
39
+ children: place.isolation
40
+ })
41
+ ]
42
+ });
43
+ }
44
+ /**
45
+ * Renders where new chats start, and Clear when a place is set here.
46
+ *
47
+ * @param props - The place, what applies without it, and Clear.
48
+ */
49
+ function NewChatPlaceRow({ value, inherited, inSpace = false, onClear, className, style }) {
50
+ const l = useModelRowsLabels();
51
+ const label = l.modelRowsNewChatsStart;
52
+ return /* @__PURE__ */ jsxs(HostRow, {
53
+ "data-testid": "new-chat-place-row",
54
+ disabled: true,
55
+ className,
56
+ style,
57
+ children: [
58
+ /* @__PURE__ */ jsx(RowText, {
59
+ label,
60
+ description: l.modelRowsNewChatsStartHint(inSpace),
61
+ truncate: false
62
+ }),
63
+ /* @__PURE__ */ jsx(PlaceChips, {
64
+ place: value ?? inherited,
65
+ muted: !value
66
+ }),
67
+ value && /* @__PURE__ */ jsx(IconButton, {
68
+ icon: "i-ph-x",
69
+ label: l.modelRowsClear(inSpace ? l.modelRowsPlaceResetSpace : l.modelRowsPlaceReset, label),
70
+ title: inSpace ? l.modelRowsPlaceResetSpace : l.modelRowsPlaceReset,
71
+ size: "sm",
72
+ onClick: onClear
73
+ })
74
+ ]
75
+ });
76
+ }
77
+ //#endregion
78
+ export { NewChatPlaceRow };
@@ -1,7 +1,9 @@
1
1
  import { useSettings } from "../../SettingsProvider.js";
2
2
  import { AgentDefaultsRows, agentDefaultsOf } from "./AgentDefaults.js";
3
3
  import { SpacesSection } from "../../../chat/sidebar/SpacesSection.js";
4
- import { jsx } from "react/jsx-runtime";
4
+ import { NewChatPlaceRow } from "./NewChatPlaceRow.js";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
+ import { readNewChatPlace } from "zidane/chat/pure";
5
7
  //#region src/settings/sections/models/SpacesDefaultsSection.tsx
6
8
  /**
7
9
  * The Spaces sections of the General page: the switch, then the list with each space's defaults while it is on.
@@ -11,14 +13,24 @@ import { jsx } from "react/jsx-runtime";
11
13
  function SpacesDefaultsSection({ cwd, className, style }) {
12
14
  const { settings } = useSettings();
13
15
  const inherited = agentDefaultsOf(settings);
14
- return /* @__PURE__ */ jsx(SpacesSection, { renderDefaults: (space, update) => /* @__PURE__ */ jsx(AgentDefaultsRows, {
16
+ return /* @__PURE__ */ jsx(SpacesSection, { renderDefaults: (space, update) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(AgentDefaultsRows, {
15
17
  value: spaceDefaults(space),
16
18
  onChange: (next) => update((s) => withSpaceDefaults(s, next)),
17
19
  cwd,
18
20
  inherited,
19
21
  className,
20
22
  style
21
- }) });
23
+ }), /* @__PURE__ */ jsx(NewChatPlaceRow, {
24
+ value: space.place,
25
+ inherited: readNewChatPlace(settings.defaultPlace) ?? null,
26
+ inSpace: true,
27
+ onClear: () => update((s) => {
28
+ const { place: _place, ...rest } = s;
29
+ return rest;
30
+ }),
31
+ className,
32
+ style
33
+ })] }) });
22
34
  }
23
35
  /**
24
36
  * A space's defaults for new sessions, as the rows edit them.
@@ -40,6 +40,8 @@ declare const DEFAULT_MODEL_ROWS_LABELS: {
40
40
  modelRowsDuration: (ms: number) => string;
41
41
  /** A failed test: why, and what the provider said. */
42
42
  modelRowsFailed: (reason: string | undefined, message: string | undefined) => string;
43
+ /** A failed test, worded; what the provider said goes under Details. */
44
+ modelRowsTestFailed: (reason: string | undefined) => string;
43
45
  /** A failed test's model on its provider, after the reason. */
44
46
  modelRowsFailedTarget: (target: string) => string;
45
47
  /** The text model row. */
@@ -88,6 +90,11 @@ declare const DEFAULT_MODEL_ROWS_LABELS: {
88
90
  modelRowsStartWith: (where: string) => string;
89
91
  /** The default agent row. */
90
92
  modelRowsDefaultAgent: string;
93
+ modelRowsNewChatsStart: string;
94
+ modelRowsNewChatsStartHint: (inSpace: boolean) => "To change it, pick a place in a new chat of this space, then Use for new chats." | "To change it, pick a place in a new chat, then Use for new chats.";
95
+ modelRowsThisComputer: string;
96
+ modelRowsPlaceReset: string;
97
+ modelRowsPlaceResetSpace: string;
91
98
  /** The agent new sessions start on with none set. */
92
99
  modelRowsBuild: string;
93
100
  /** A saved agent this folder doesn't offer. */
@@ -40,6 +40,8 @@ const DEFAULT_MODEL_ROWS_LABELS = {
40
40
  modelRowsDuration: (ms) => `${ms}ms`,
41
41
  /** A failed test: why, and what the provider said. */
42
42
  modelRowsFailed: (reason, message) => `${reason ?? "error"}: ${message ?? "failed"}`,
43
+ /** A failed test, worded; what the provider said goes under Details. */
44
+ modelRowsTestFailed: (reason) => reason ? `The model didn't answer (${reason}).` : "The model didn't answer.",
43
45
  /** A failed test's model on its provider, after the reason. */
44
46
  modelRowsFailedTarget: (target) => ` (${target})`,
45
47
  /** The text model row. */
@@ -88,6 +90,11 @@ const DEFAULT_MODEL_ROWS_LABELS = {
88
90
  modelRowsStartWith: (where) => `${where} start with them.`,
89
91
  /** The default agent row. */
90
92
  modelRowsDefaultAgent: "Default agent",
93
+ modelRowsNewChatsStart: "Where new chats start",
94
+ modelRowsNewChatsStartHint: (inSpace) => inSpace ? "To change it, pick a place in a new chat of this space, then Use for new chats." : "To change it, pick a place in a new chat, then Use for new chats.",
95
+ modelRowsThisComputer: "This computer",
96
+ modelRowsPlaceReset: "Start new chats on this computer",
97
+ modelRowsPlaceResetSpace: "Use the default place",
91
98
  /** The agent new sessions start on with none set. */
92
99
  modelRowsBuild: "Build",
93
100
  /** A saved agent this folder doesn't offer. */
@@ -1,4 +1,5 @@
1
1
  import { BTN_SECONDARY } from "../../../components/button.js";
2
+ import { Notice } from "../../../components/Notice.js";
2
3
  import { MetaChip } from "../../../components/Form.js";
3
4
  import { toSettingsError } from "../../headless/host.js";
4
5
  import { useComposerModelName, useComposerProviderLabel } from "../../../chat/composer/use-composer-stores.js";
@@ -94,10 +95,12 @@ function ModelTestLine({ result, className }) {
94
95
  ]
95
96
  });
96
97
  const target = model && provider ? l.modelRowsPickLabel(model, provider) : model ?? provider;
97
- return /* @__PURE__ */ jsxs("div", {
98
- role: "alert",
99
- className: `zg-meta px-3 pb-2 !text-zg-danger break-words${className ? ` ${className}` : ""}`,
100
- children: [l.modelRowsFailed(result.reason, result.message), target ? l.modelRowsFailedTarget(target) : ""]
98
+ return /* @__PURE__ */ jsxs(Notice, {
99
+ tone: "error",
100
+ compact: true,
101
+ ...result.message ? { detail: result.message } : {},
102
+ className: `mx-3 mb-2${className ? ` ${className}` : ""}`,
103
+ children: [l.modelRowsTestFailed(result.reason), target ? l.modelRowsFailedTarget(target) : ""]
101
104
  });
102
105
  }
103
106
  //#endregion
@@ -1,8 +1,10 @@
1
1
  import { IconButton } from "../../../components/IconButton.js";
2
2
  import { BTN_PRIMARY, BTN_SECONDARY } from "../../../components/button.js";
3
+ import { Notice } from "../../../components/Notice.js";
3
4
  import { Segmented } from "../../../components/Segmented.js";
4
5
  import { EmptyState, Tray } from "../../../components/Surface.js";
5
6
  import { MetaChip } from "../../../components/Form.js";
7
+ import { errorMessage } from "../../../components/report-error.js";
6
8
  import { CountBadge } from "../../../components/TabPill.js";
7
9
  import { useStaysMounted } from "../../../motion/collapse.js";
8
10
  import { useSettingsHost, useSettingsLabels } from "../../SettingsProvider.js";
@@ -26,8 +28,7 @@ import { memo, useCallback, useMemo, useState } from "react";
26
28
  * summed in its header's badges: Processes (open), Sessions, Threads, Slow
27
29
  * frames and IPC (hosts that keep those counters: the desktop app, not a
28
30
  * server), CPU profile (hosts that record one). A host that can't be
29
- * watched says why (too old, an error); a token without admin sees the page
30
- * restricted ("Admin only") and empty. The process tree opens one level at a time; what
31
+ * watched says why (too old, an error). The process tree opens one level at a time; what
31
32
  * sessions and terminals launched is its own group, collapsed. Sessions lists
32
33
  * what each session runs, one collapsed group per session. Rows are one line:
33
34
  * the pid and command line are the row's tooltip.
@@ -60,7 +61,7 @@ function PerformanceSection({ className, style }) {
60
61
  const l = usePerformanceSectionLabels();
61
62
  const settingsLabels = useSettingsLabels();
62
63
  const latest = samples[samples.length - 1];
63
- const restricted = useSettingsRestricted() && !host || error?.kind === "refused";
64
+ const restricted = useSettingsRestricted() && !host;
64
65
  return /* @__PURE__ */ jsxs(SettingsPanel, {
65
66
  className,
66
67
  style,
@@ -677,7 +678,7 @@ function Profile({ host, reveal }) {
677
678
  ok: false,
678
679
  error: {
679
680
  kind: "failed",
680
- detail: error instanceof Error ? error.message : String(error)
681
+ detail: errorMessage(error)
681
682
  }
682
683
  });
683
684
  } finally {
@@ -732,8 +733,17 @@ function Profile({ host, reveal }) {
732
733
  ]
733
734
  }),
734
735
  outcome && !outcome.ok && /* @__PURE__ */ jsx("div", {
735
- className: "px-2 pb-1.5 text-xs text-zg-danger",
736
- children: outcome.error.kind === "busy" ? l.perfProfileBusy : l.perfProfileFailed(outcome.error.detail)
736
+ className: "px-2 pb-1.5",
737
+ children: outcome.error.kind === "busy" ? /* @__PURE__ */ jsx(Notice, {
738
+ tone: "warning",
739
+ compact: true,
740
+ children: l.perfProfileBusy
741
+ }) : /* @__PURE__ */ jsx(Notice, {
742
+ tone: "error",
743
+ compact: true,
744
+ ...outcome.error.detail ? { detail: outcome.error.detail } : {},
745
+ children: l.perfProfileError
746
+ })
737
747
  }),
738
748
  outcome?.ok && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Heads, { names: [l.perfColShare, l.perfColSelf] }), outcome.profile.top.slice(0, LIST_CAP).map((fn) => /* @__PURE__ */ jsxs("div", {
739
749
  className: ROW,
@@ -70,7 +70,7 @@ declare const DEFAULT_PERFORMANCE_SECTION_LABELS: {
70
70
  perfProfileRecord: string;
71
71
  perfProfileRecording: (s: number) => string;
72
72
  perfProfileBusy: string;
73
- perfProfileFailed: (detail?: string) => string;
73
+ perfProfileError: string;
74
74
  perfHud: string;
75
75
  perfHudClose: string;
76
76
  perfHudOpen: string;
@@ -94,7 +94,7 @@ const DEFAULT_PERFORMANCE_SECTION_LABELS = {
94
94
  perfProfileRecord: "Record",
95
95
  perfProfileRecording: (s) => `Recording ${s} s…`,
96
96
  perfProfileBusy: "Busy. Close DevTools and retry.",
97
- perfProfileFailed: (detail) => detail ? `Failed: ${detail}` : "Failed.",
97
+ perfProfileError: "Couldn't record the profile.",
98
98
  perfHud: "Performance",
99
99
  perfHudClose: "Close the performance overlay",
100
100
  perfHudOpen: "Open Settings › Performance",
@@ -22,7 +22,7 @@ interface ProvidersSectionProps {
22
22
  /**
23
23
  * Renders the providers of the nearest `SettingsProvider`'s host (`providers`). Without it the list is
24
24
  * empty; without an action, its control is hidden; a connection that may not write (`writable`) sees
25
- * the list restricted ("Admin only").
25
+ * the list restricted.
26
26
  *
27
27
  * @param props - The `cwd`, an `intro`, `confirm`, `className` and `style`.
28
28
  */
@@ -1,9 +1,10 @@
1
1
  import { BrandMark } from "../../../components/BrandMark.js";
2
2
  import { BTN_DANGER, BTN_PRIMARY, BTN_SECONDARY } from "../../../components/button.js";
3
+ import { Notice } from "../../../components/Notice.js";
3
4
  import { MetaChip } from "../../../components/Form.js";
4
5
  import { BrowserSignIn } from "../../../components/BrowserSignIn.js";
5
- import { toSettingsError } from "../../headless/host.js";
6
6
  import { useSettingsHost } from "../../SettingsProvider.js";
7
+ import { toSettingsError } from "../../headless/host.js";
7
8
  import { useSignIn } from "../../../onboarding/useSignIn.js";
8
9
  import { SettingFocus, SettingFocusContext, SettingsPanel, SettingsPanelBody } from "../../section.js";
9
10
  import { useSectionLabels } from "../use-section-labels.js";
@@ -36,7 +37,7 @@ const NO_PROVIDERS = [];
36
37
  /**
37
38
  * Renders the providers of the nearest `SettingsProvider`'s host (`providers`). Without it the list is
38
39
  * empty; without an action, its control is hidden; a connection that may not write (`writable`) sees
39
- * the list restricted ("Admin only").
40
+ * the list restricted.
40
41
  *
41
42
  * @param props - The `cwd`, an `intro`, `confirm`, `className` and `style`.
42
43
  */
@@ -64,9 +65,12 @@ function ProvidersSection({ cwd, intro, confirm = YES, className, style }) {
64
65
  confirm
65
66
  }, status.key))
66
67
  }) }),
67
- load.error && /* @__PURE__ */ jsx("div", {
68
- className: "mt-3 text-xs text-zg-danger",
69
- children: l.accountsError(load.error)
68
+ load.error && /* @__PURE__ */ jsx(Notice, {
69
+ tone: "error",
70
+ compact: true,
71
+ className: "mt-3",
72
+ ...load.error.detail ? { detail: load.error.detail } : {},
73
+ children: l.accountsFailed(load.error)
70
74
  })
71
75
  ] })
72
76
  });
@@ -351,9 +355,12 @@ function ProviderRow({ status, cwd, host, restricted, labels: l, confirm }) {
351
355
  onError: setRowError,
352
356
  onReauth: canSignIn && !flow ? startSignIn : void 0
353
357
  }),
354
- rowError && /* @__PURE__ */ jsx("div", {
355
- className: "mt-2 text-xs text-zg-danger",
356
- children: l.accountsError(rowError)
358
+ rowError && /* @__PURE__ */ jsx(Notice, {
359
+ tone: "error",
360
+ compact: true,
361
+ className: "mt-2",
362
+ ...rowError.detail ? { detail: rowError.detail } : {},
363
+ children: l.accountsFailed(rowError)
357
364
  })
358
365
  ]
359
366
  })
@@ -14,7 +14,7 @@ interface ServerProvidersSectionProps {
14
14
  /**
15
15
  * Renders the providers of the nearest `SettingsProvider`'s host (`providers`) as a server's cards: Set API
16
16
  * key needs `setApiKey`, Sign in `signIn`, Remove `remove`; a connection that may not write (`writable`)
17
- * sees the cards restricted ("Admin only").
17
+ * sees the cards restricted.
18
18
  *
19
19
  * @param props - The `hostName`, an `intro`, `className` and `style`.
20
20
  */