cli-jaw 2.17.62 → 2.17.63

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 (360) hide show
  1. package/README.ja.md +17 -17
  2. package/README.ko.md +17 -17
  3. package/README.md +17 -17
  4. package/README.zh-CN.md +17 -17
  5. package/dist/bin/commands/tui/input-handler.js +19 -0
  6. package/dist/bin/commands/tui/input-handler.js.map +1 -1
  7. package/dist/bin/commands/tui/overlays.js +8 -4
  8. package/dist/bin/commands/tui/overlays.js.map +1 -1
  9. package/dist/bin/star-prompt.js +1 -1
  10. package/dist/bin/star-prompt.js.map +1 -1
  11. package/dist/server.js +14 -1
  12. package/dist/server.js.map +1 -1
  13. package/dist/src/agent/claude-runtime-pool.js +2 -1
  14. package/dist/src/agent/claude-runtime-pool.js.map +1 -1
  15. package/dist/src/agent/claude-runtime-run.js +28 -7
  16. package/dist/src/agent/claude-runtime-run.js.map +1 -1
  17. package/dist/src/agent/lifecycle-handler.js +34 -6
  18. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  19. package/dist/src/agent/runtime/claude-sdk-events.js +136 -9
  20. package/dist/src/agent/runtime/claude-sdk-events.js.map +1 -1
  21. package/dist/src/agent/runtime/claude-sdk-history-loader.js +24 -0
  22. package/dist/src/agent/runtime/claude-sdk-history-loader.js.map +1 -0
  23. package/dist/src/agent/runtime/claude-sdk-hooks.js +10 -4
  24. package/dist/src/agent/runtime/claude-sdk-hooks.js.map +1 -1
  25. package/dist/src/agent/runtime/claude-sdk-messages.js +25 -2
  26. package/dist/src/agent/runtime/claude-sdk-messages.js.map +1 -1
  27. package/dist/src/agent/runtime/claude-sdk-options.js +36 -3
  28. package/dist/src/agent/runtime/claude-sdk-options.js.map +1 -1
  29. package/dist/src/agent/runtime/claude-sdk-permissions.js +32 -9
  30. package/dist/src/agent/runtime/claude-sdk-permissions.js.map +1 -1
  31. package/dist/src/agent/runtime/claude-sdk-session.js +165 -17
  32. package/dist/src/agent/runtime/claude-sdk-session.js.map +1 -1
  33. package/dist/src/agent/runtime/claude-sdk-version.js +8 -0
  34. package/dist/src/agent/runtime/claude-sdk-version.js.map +1 -0
  35. package/dist/src/agent/spawn/backend-codex-app.js +619 -0
  36. package/dist/src/agent/spawn/backend-codex-app.js.map +1 -0
  37. package/dist/src/agent/spawn/backend-context.js +2 -0
  38. package/dist/src/agent/spawn/backend-context.js.map +1 -0
  39. package/dist/src/agent/spawn/backend-copilot.js +385 -0
  40. package/dist/src/agent/spawn/backend-copilot.js.map +1 -0
  41. package/dist/src/agent/spawn/backend-native-acp.js +379 -0
  42. package/dist/src/agent/spawn/backend-native-acp.js.map +1 -0
  43. package/dist/src/agent/spawn/backend-pi.js +565 -0
  44. package/dist/src/agent/spawn/backend-pi.js.map +1 -0
  45. package/dist/src/agent/spawn/types.js +2 -0
  46. package/dist/src/agent/spawn/types.js.map +1 -0
  47. package/dist/src/agent/spawn.js +44 -1858
  48. package/dist/src/agent/spawn.js.map +1 -1
  49. package/dist/src/cli/claude-default-model-boot.js +36 -0
  50. package/dist/src/cli/claude-default-model-boot.js.map +1 -0
  51. package/dist/src/cli/claude-model-discovery.js +13 -1
  52. package/dist/src/cli/claude-model-discovery.js.map +1 -1
  53. package/dist/src/cli/claude-models.js +7 -1
  54. package/dist/src/cli/claude-models.js.map +1 -1
  55. package/dist/src/cli/commands.js +5 -15
  56. package/dist/src/cli/commands.js.map +1 -1
  57. package/dist/src/cli/tui/composer.js +3 -3
  58. package/dist/src/cli/tui/composer.js.map +1 -1
  59. package/dist/src/cli/tui/skill-mention.js +15 -0
  60. package/dist/src/cli/tui/skill-mention.js.map +1 -0
  61. package/dist/src/code-mode/manager.js +174 -9
  62. package/dist/src/code-mode/manager.js.map +1 -1
  63. package/dist/src/code-mode/providers/catalog.js +5 -3
  64. package/dist/src/code-mode/providers/catalog.js.map +1 -1
  65. package/dist/src/code-mode/providers/claude-history.js +132 -0
  66. package/dist/src/code-mode/providers/claude-history.js.map +1 -0
  67. package/dist/src/code-mode/providers/claude.js +74 -7
  68. package/dist/src/code-mode/providers/claude.js.map +1 -1
  69. package/dist/src/code-mode/providers/codex-app.js +7 -1
  70. package/dist/src/code-mode/providers/codex-app.js.map +1 -1
  71. package/dist/src/code-mode/session.js +158 -11
  72. package/dist/src/code-mode/session.js.map +1 -1
  73. package/dist/src/code-mode/store.js +416 -28
  74. package/dist/src/code-mode/store.js.map +1 -1
  75. package/dist/src/command-contract/catalog.js +3 -22
  76. package/dist/src/command-contract/catalog.js.map +1 -1
  77. package/dist/src/core/codex-config.js +3 -62
  78. package/dist/src/core/codex-config.js.map +1 -1
  79. package/dist/src/core/config.js +116 -14
  80. package/dist/src/core/config.js.map +1 -1
  81. package/dist/src/core/runtime-settings.js +20 -10
  82. package/dist/src/core/runtime-settings.js.map +1 -1
  83. package/dist/src/core/settings-watch.js +1 -0
  84. package/dist/src/core/settings-watch.js.map +1 -1
  85. package/dist/src/core/skill-mentions.js +83 -0
  86. package/dist/src/core/skill-mentions.js.map +1 -0
  87. package/dist/src/manager/registry.js +5 -1
  88. package/dist/src/manager/registry.js.map +1 -1
  89. package/dist/src/manager/routes/desktop-status.js +1 -1
  90. package/dist/src/manager/routes/desktop-status.js.map +1 -1
  91. package/dist/src/orchestrator/pipeline.js +11 -1
  92. package/dist/src/orchestrator/pipeline.js.map +1 -1
  93. package/dist/src/prompt/builder.js +10 -4
  94. package/dist/src/prompt/builder.js.map +1 -1
  95. package/dist/src/prompt/templates/a1-system.md +1 -1
  96. package/dist/src/routes/code-native.js +51 -3
  97. package/dist/src/routes/code-native.js.map +1 -1
  98. package/dist/src/routes/settings.js +1 -4
  99. package/dist/src/routes/settings.js.map +1 -1
  100. package/dist/src/routes/skills.js +7 -0
  101. package/dist/src/routes/skills.js.map +1 -1
  102. package/dist/src/shared/skill-mention.js +61 -0
  103. package/dist/src/shared/skill-mention.js.map +1 -0
  104. package/dist/src/shared/tool-input.js +137 -0
  105. package/dist/src/shared/tool-input.js.map +1 -0
  106. package/package.json +7 -5
  107. package/public/css/activity.css +83 -20
  108. package/public/css/layout.css +2 -2
  109. package/public/css/sidebar.css +18 -0
  110. package/public/css/variables.css +23 -2
  111. package/public/dist/.vite/manifest.json +302 -334
  112. package/public/dist/assets/Activity-DPLlOJ46.js +1 -0
  113. package/public/dist/assets/AdvancedExport-BgOgGvc5.js +1 -0
  114. package/public/dist/assets/Agent-O_U8ny90.js +1 -0
  115. package/public/dist/assets/Browser-m6VynQXV.js +1 -0
  116. package/public/dist/assets/BrowserPanel-Bb-Bge6B.js +3 -0
  117. package/public/dist/assets/ChannelEnablementControl-BSuKQhTW.js +85 -0
  118. package/public/dist/assets/ChannelSetupEntry-DHLoZEzJ.js +1 -0
  119. package/public/dist/assets/ChannelsDiscord-B-G8vsYy.js +1 -0
  120. package/public/dist/assets/ChannelsSlack-oPuh922z.js +1 -0
  121. package/public/dist/assets/ChannelsTelegram-PmTv43KQ.js +1 -0
  122. package/public/dist/assets/CodeCanvas-CVbdp0S-.js +3 -0
  123. package/public/dist/assets/DashboardMeta-BqEiJrvr.js +1 -0
  124. package/public/dist/assets/DesignPanel-BOb-HMbl.js +2 -0
  125. package/public/dist/assets/{Developer-BdKPcw8Z.js → Developer-CbySB7_Z.js} +1 -1
  126. package/public/dist/assets/{DiffPanel-DtJuvU5y.js → DiffPanel-D9Cch5FG.js} +1 -1
  127. package/public/dist/assets/Display-C0Zdamcb.js +1 -0
  128. package/public/dist/assets/Display-DU4_76cS.js +1 -0
  129. package/public/dist/assets/DocPanel-DvtFw8AP.js +1 -0
  130. package/public/dist/assets/{Embedding-DvdTj1BF.js → Embedding-CCFMOB_2.js} +1 -1
  131. package/public/dist/assets/Employees-BanvF58d.js +1 -0
  132. package/public/dist/assets/FolderPanel-CJvwRwIV.js +3 -0
  133. package/public/dist/assets/Heartbeat-uyi_MpUd.js +1 -0
  134. package/public/dist/assets/InlineWarn-Cq4z28F3.js +1 -0
  135. package/public/dist/assets/MarkdownRenderer-Cc3DeHvm.js +1 -0
  136. package/public/dist/assets/{MarkdownRenderer-DhonsAPC.js → MarkdownRenderer-DzN66XVb.js} +1 -1
  137. package/public/dist/assets/Mcp-rjPoL_Zo.js +4 -0
  138. package/public/dist/assets/Memory-C9I33pIi.js +1 -0
  139. package/public/dist/assets/{MilkdownWysiwygEditor-D6JaLDE4.js → MilkdownWysiwygEditor-xObhviw7.js} +1 -1
  140. package/public/dist/assets/ModelProvider-fiUktMaO.js +1 -0
  141. package/public/dist/assets/Network-CuqFrOvR.js +1 -0
  142. package/public/dist/assets/NotesGraphWorkspace-DO9LtVGF.js +1 -0
  143. package/public/dist/assets/PanelLayoutProvider-DRZ4QkBC.js +1 -0
  144. package/public/dist/assets/Permissions-BltXiZnz.js +1 -0
  145. package/public/dist/assets/{Permissions-BwiMEoTV.js → Permissions-DcCbFMIq.js} +1 -1
  146. package/public/dist/assets/Profile-DUL7-RE_.js +1 -0
  147. package/public/dist/assets/Prompts-C9vY8ivQ.js +1 -0
  148. package/public/dist/assets/SpeechKeys-BJ8V7U5E.js +1 -0
  149. package/public/dist/assets/TelegramHub-DtyjLGFR.js +1 -0
  150. package/public/dist/assets/{TerminalPanel-Bu9i-P2f.js → TerminalPanel-c1xhiy53.js} +1 -1
  151. package/public/dist/assets/app-BjKzqXCv.css +1 -0
  152. package/public/dist/assets/app-CZwx0V6K.js +59 -0
  153. package/public/dist/assets/bgtask-badge-CnVkcp3c.js +1 -0
  154. package/public/dist/assets/{bgtask-badge-DfiHuzxT.js → bgtask-badge-Cp26S8Uq.js} +1 -1
  155. package/public/dist/assets/client-platform-WO8m6kPQ.js +1 -0
  156. package/public/dist/assets/{employees-BQaJNp-u.js → employees-CsvI0_5V.js} +1 -1
  157. package/public/dist/assets/error-normalize-clOi-AAA.js +1 -0
  158. package/public/dist/assets/fields-CicOWY-X.js +1 -0
  159. package/public/dist/assets/iframe-renderer-DWx9v2Iz.js +1 -0
  160. package/public/dist/assets/iframe-renderer-DmHYOI1A.js +142 -0
  161. package/public/dist/assets/{react-C_pPTFsM.js → jsx-runtime-CkEUZM6i.js} +1 -1
  162. package/public/dist/assets/manager-CCXm5Yfe.js +5 -0
  163. package/public/dist/assets/manager-D9rhKFKc.css +1 -0
  164. package/public/dist/assets/manager-shortcuts-Cqmr0mEq.js +1 -0
  165. package/public/dist/assets/{memory-EG1B51up.js → memory-C6qtAMdJ.js} +1 -1
  166. package/public/dist/assets/memory-PPofQPeB.js +1 -0
  167. package/public/dist/assets/message-history-DcjBuubA.js +4 -0
  168. package/public/dist/assets/message-history-bw4qF01Z.js +1 -0
  169. package/public/dist/assets/page-shell-DfinU3mb.js +1 -0
  170. package/public/dist/assets/react-dom-URBLzV3w.js +1 -0
  171. package/public/dist/assets/{render-Dp07lZAJ.js → render-DfYro-fG.js} +1 -1
  172. package/public/dist/assets/{settings-jlI4X-zt.js → settings-CvsLWlJn.js} +38 -30
  173. package/public/dist/assets/settings-DMiQe469.js +1 -0
  174. package/public/dist/assets/settings-DgAlohx9.js +1 -0
  175. package/public/dist/assets/settings-core-BH7J_Rbm.js +1 -0
  176. package/public/dist/assets/{settings-core-B5Uf_lWY.js → settings-core-pnpw-eZv.js} +1 -1
  177. package/public/dist/assets/{settings-embedding-BfWzWKMM.js → settings-embedding-BRW0WZvh.js} +3 -3
  178. package/public/dist/assets/{settings-embedding-DhEdT86W.css → settings-embedding-CUQ8Is3y.css} +1 -1
  179. package/public/dist/assets/settings-types-CYKy0xz4.js +1 -0
  180. package/public/dist/assets/shared-D1begqvi.js +1 -0
  181. package/public/dist/assets/{sidebar-BUemG2ZN.js → sidebar-C_80w4iY.js} +3 -3
  182. package/public/dist/assets/{skills-CKUcEN9m.js → skills-D_2adqge.js} +1 -1
  183. package/public/dist/assets/skills-DeNVAVgt.js +1 -0
  184. package/public/dist/assets/{slash-commands-D34GgHFX.js → slash-commands-B_Hq5RkC.js} +2 -2
  185. package/public/dist/assets/slash-commands-Cj5qoRWc.js +1 -0
  186. package/public/dist/assets/tool-input-DI7uu8Ah.js +2 -0
  187. package/public/dist/assets/{trace-drawer-DBmK-5F_.js → trace-drawer-B6XuPodh.js} +1 -1
  188. package/public/dist/assets/ui-BbR_fFiK.js +1 -0
  189. package/public/dist/assets/{ui-vm2iuLcS.js → ui-D8xzm7DN.js} +1 -1
  190. package/public/dist/index.html +11 -3
  191. package/public/dist/manager/index.html +3 -3
  192. package/public/dist/settings/index.html +2 -2
  193. package/public/index.html +9 -1
  194. package/public/js/features/activity-history.ts +50 -21
  195. package/public/js/features/activity-rows.ts +158 -10
  196. package/public/js/features/activity-view.ts +5 -5
  197. package/public/js/features/chat.ts +2 -0
  198. package/public/js/features/employees.ts +1 -0
  199. package/public/js/features/resize-guard.ts +39 -0
  200. package/public/js/features/settings-cli-status.ts +49 -17
  201. package/public/js/features/settings-types.ts +39 -1
  202. package/public/js/features/skill-mentions.ts +143 -0
  203. package/public/js/main.ts +15 -0
  204. package/public/js/virtual-scroll.ts +67 -1
  205. package/public/locales/en.json +2 -0
  206. package/public/locales/ja.json +2 -0
  207. package/public/locales/ko.json +2 -0
  208. package/public/locales/zh.json +2 -0
  209. package/public/manager/src/AppChrome.tsx +2 -0
  210. package/public/manager/src/InstancePreview.tsx +1 -1
  211. package/public/manager/src/SidebarRailRouter.tsx +3 -1
  212. package/public/manager/src/browser-panel/BrowserPanel.tsx +47 -12
  213. package/public/manager/src/browser-panel/browser-address-state.ts +11 -0
  214. package/public/manager/src/client-platform.ts +18 -0
  215. package/public/manager/src/code/CodeCanvas.tsx +4 -2
  216. package/public/manager/src/code/CodeComposer.tsx +22 -10
  217. package/public/manager/src/code/CodeDraftEmptyState.tsx +64 -0
  218. package/public/manager/src/code/CodeSessionList.tsx +154 -40
  219. package/public/manager/src/code/CodeTranscript.tsx +104 -16
  220. package/public/manager/src/code/CodeWorkbench.tsx +21 -11
  221. package/public/manager/src/code/CodeWorkspaceHeader.tsx +5 -10
  222. package/public/manager/src/code/ComposerFooter.tsx +9 -1
  223. package/public/manager/src/code/code-composer.css +1 -1
  224. package/public/manager/src/code/code-controller-draft-storage.ts +16 -8
  225. package/public/manager/src/code/code-controller-drafts.ts +33 -6
  226. package/public/manager/src/code/code-controller-runtime.ts +189 -17
  227. package/public/manager/src/code/code-controller-types.ts +19 -1
  228. package/public/manager/src/code/code-recent-workspaces.ts +25 -0
  229. package/public/manager/src/code/code-session-client.ts +19 -1
  230. package/public/manager/src/code/code-session-sidebar.css +38 -0
  231. package/public/manager/src/code/code-session-state.ts +2 -0
  232. package/public/manager/src/code/code-types.ts +47 -0
  233. package/public/manager/src/code/code-workbench.css +36 -1
  234. package/public/manager/src/code/code.css +171 -7
  235. package/public/manager/src/code/session-order.ts +80 -0
  236. package/public/manager/src/code/tool-summary.ts +45 -11
  237. package/public/manager/src/folder-panel/folder-shortcuts.ts +5 -9
  238. package/public/manager/src/hooks/useCommandPalette.ts +3 -7
  239. package/public/manager/src/main.tsx +1 -0
  240. package/public/manager/src/manager-components.css +25 -23
  241. package/public/manager/src/manager-dashboard-reminders.css +2 -2
  242. package/public/manager/src/manager-layout.css +1 -1
  243. package/public/manager/src/manager-shortcut-runner.ts +9 -2
  244. package/public/manager/src/manager-shortcuts.ts +83 -21
  245. package/public/manager/src/panels/desktop-bridge.ts +4 -1
  246. package/public/manager/src/panels/panels.css +9 -0
  247. package/public/manager/src/preview.ts +19 -4
  248. package/public/manager/src/settings/pages/AdvancedExport.tsx +28 -30
  249. package/public/manager/src/settings/pages/Browser.tsx +45 -47
  250. package/public/manager/src/settings/pages/ChannelsDiscord.tsx +51 -26
  251. package/public/manager/src/settings/pages/ChannelsSlack.tsx +59 -17
  252. package/public/manager/src/settings/pages/ChannelsTelegram.tsx +51 -26
  253. package/public/manager/src/settings/pages/Display.tsx +2 -1
  254. package/public/manager/src/settings/pages/Employees.tsx +3 -3
  255. package/public/manager/src/settings/pages/Mcp.tsx +220 -200
  256. package/public/manager/src/settings/pages/Memory.tsx +35 -41
  257. package/public/manager/src/settings/pages/ModelProvider.tsx +23 -98
  258. package/public/manager/src/settings/pages/Network.tsx +5 -4
  259. package/public/manager/src/settings/pages/Permissions.tsx +38 -16
  260. package/public/manager/src/settings/pages/Prompts.tsx +12 -9
  261. package/public/manager/src/settings/pages/SpeechKeys.tsx +132 -139
  262. package/public/manager/src/settings/pages/TelegramHub.tsx +67 -20
  263. package/public/manager/src/settings/pages/components/AvatarCard.tsx +9 -8
  264. package/public/manager/src/settings/pages/components/ChannelSetupEntry.tsx +2 -2
  265. package/public/manager/src/settings/pages/components/EmployeeRow.tsx +6 -12
  266. package/public/manager/src/settings/pages/components/HealthBadge.tsx +11 -6
  267. package/public/manager/src/settings/pages/components/HeartbeatJobRow.tsx +35 -16
  268. package/public/manager/src/settings/pages/components/HeartbeatJobsSection.tsx +11 -11
  269. package/public/manager/src/settings/pages/components/HeartbeatMarkdownSection.tsx +7 -7
  270. package/public/manager/src/settings/pages/components/InlineWarn.tsx +4 -9
  271. package/public/manager/src/settings/pages/components/McpServerCard.tsx +39 -27
  272. package/public/manager/src/settings/pages/components/MemoryRow.tsx +21 -16
  273. package/public/manager/src/settings/pages/components/PerCliRow.tsx +122 -121
  274. package/public/manager/src/settings/pages/components/PiProfileDialog.tsx +9 -6
  275. package/public/manager/src/settings/pages/components/SlackSetup.tsx +8 -8
  276. package/public/manager/src/settings/pages/components/TransportStatusChips.tsx +14 -10
  277. package/public/manager/src/settings/pages/components/agent/AgentEmployeesSection.tsx +26 -26
  278. package/public/manager/src/settings/pages/components/agent/PermissionQuickSection.tsx +5 -5
  279. package/public/manager/src/settings/pages/components/agent/RuntimeEmployeeRow.tsx +14 -11
  280. package/public/manager/src/settings/pages/components/agent/RuntimeHeader.tsx +1 -3
  281. package/public/manager/src/settings/pages/components/agent/agent-meta.ts +0 -2
  282. package/public/manager/src/settings/pages/components/runtime-transport-field.tsx +2 -2
  283. package/public/manager/src/settings/pages/manager/Activity.tsx +6 -2
  284. package/public/manager/src/settings/pages/manager/Display.tsx +3 -8
  285. package/public/manager/src/settings/pages/manager/shared.tsx +44 -33
  286. package/public/manager/src/settings/pages/page-shell.tsx +66 -0
  287. package/public/manager/src/settings-agent.css +185 -36
  288. package/public/manager/src/settings-standalone.tsx +1 -0
  289. package/public/manager/src/settings-surface.css +96 -0
  290. package/public/manager/src/types.ts +1 -0
  291. package/scripts/ci/install-ripgrep.sh +35 -0
  292. package/scripts/collect-fresh-install-evidence.sh +2 -2
  293. package/scripts/install-risk-gate.mjs +2 -3
  294. package/scripts/install-wsl.sh +1 -1
  295. package/scripts/install.ps1 +1 -1
  296. package/scripts/install.sh +1 -1
  297. package/scripts/release-1.6.0.sh +1 -1
  298. package/scripts/release-gates.mjs +48 -13
  299. package/scripts/release-preview.sh +2 -2
  300. package/scripts/restack-pr.sh +88 -0
  301. package/scripts/verify-electron-update-metadata.mjs +1 -1
  302. package/scripts/windows-support-contract.json +1 -1
  303. package/public/dist/assets/Activity-BUrp73Re.js +0 -1
  304. package/public/dist/assets/AdvancedExport-B7h_ZvBu.js +0 -1
  305. package/public/dist/assets/Agent-DnbZJP7b.js +0 -1
  306. package/public/dist/assets/Browser-CiBoK5Qx.js +0 -1
  307. package/public/dist/assets/BrowserPanel-SZAUc9T2.js +0 -3
  308. package/public/dist/assets/ChannelEnablementControl-Dl0uYx38.js +0 -85
  309. package/public/dist/assets/ChannelSetupEntry-DxtOrN01.js +0 -1
  310. package/public/dist/assets/ChannelsDiscord-BEGGwd_3.js +0 -1
  311. package/public/dist/assets/ChannelsSlack-BryC2Ahr.js +0 -1
  312. package/public/dist/assets/ChannelsTelegram-CGSpaImJ.js +0 -1
  313. package/public/dist/assets/CodeCanvas-DpkFi5Au.js +0 -2
  314. package/public/dist/assets/DashboardMeta-Dh-tasbY.js +0 -1
  315. package/public/dist/assets/DesignPanel-NLNK9wCo.js +0 -2
  316. package/public/dist/assets/Display-BHGFX3O0.js +0 -1
  317. package/public/dist/assets/Display-BW-_pKRf.js +0 -1
  318. package/public/dist/assets/DocPanel-BM41cYpS.js +0 -1
  319. package/public/dist/assets/Employees-BuFw6-fT.js +0 -1
  320. package/public/dist/assets/FolderPanel-C-eQT3Yq.js +0 -3
  321. package/public/dist/assets/Heartbeat-CIVtKWNc.js +0 -1
  322. package/public/dist/assets/InlineWarn-DIMbcbzk.js +0 -1
  323. package/public/dist/assets/MarkdownRenderer-DyVx6DxM.js +0 -1
  324. package/public/dist/assets/Mcp-uKjor7vh.js +0 -4
  325. package/public/dist/assets/Memory-BSDIXT0B.js +0 -1
  326. package/public/dist/assets/ModelProvider-DMh2tXUx.js +0 -1
  327. package/public/dist/assets/Network-4Pa6JkhK.js +0 -1
  328. package/public/dist/assets/NotesGraphWorkspace-CgdC-fM6.js +0 -1
  329. package/public/dist/assets/PanelLayoutProvider-mn8sI0h-.js +0 -1
  330. package/public/dist/assets/Permissions-CodIW-Yd.js +0 -1
  331. package/public/dist/assets/Profile-DPqrYA44.js +0 -1
  332. package/public/dist/assets/Prompts-CvAx7QqR.js +0 -1
  333. package/public/dist/assets/SpeechKeys-CVBCqoBn.js +0 -1
  334. package/public/dist/assets/TelegramHub-4zKwpk0P.js +0 -1
  335. package/public/dist/assets/app-ByMfeXp-.js +0 -55
  336. package/public/dist/assets/app-DAJWqs33.css +0 -1
  337. package/public/dist/assets/bgtask-badge-Ch88fnhf.js +0 -1
  338. package/public/dist/assets/error-normalize-CL69Bl7z.js +0 -1
  339. package/public/dist/assets/fields-mlGpofqQ.js +0 -1
  340. package/public/dist/assets/iframe-renderer-Bj1JolO8.js +0 -142
  341. package/public/dist/assets/iframe-renderer-DWnvUSrx.js +0 -1
  342. package/public/dist/assets/jsx-runtime-NZYk81nU.js +0 -1
  343. package/public/dist/assets/manager-Bi_xw7TW.js +0 -5
  344. package/public/dist/assets/manager-BnQHAKk6.css +0 -1
  345. package/public/dist/assets/manager-shortcuts-BDOzd8zm.js +0 -1
  346. package/public/dist/assets/memory-Bk_cb3sw.js +0 -1
  347. package/public/dist/assets/message-history-D2vniu04.js +0 -4
  348. package/public/dist/assets/message-history-GAtF_wbZ.js +0 -1
  349. package/public/dist/assets/page-shell-BeGD0rRQ.js +0 -1
  350. package/public/dist/assets/react-dom-DyUOYpVL.js +0 -1
  351. package/public/dist/assets/settings-W4KG9ivu.js +0 -1
  352. package/public/dist/assets/settings-WVGhtneN.js +0 -1
  353. package/public/dist/assets/settings-client-CmwRsVd1.js +0 -1
  354. package/public/dist/assets/settings-core-CgKGnMA5.js +0 -1
  355. package/public/dist/assets/settings-types-D3cd6SWy.js +0 -1
  356. package/public/dist/assets/shared-CiNP20HB.js +0 -1
  357. package/public/dist/assets/skills-Co7Mr-qP.js +0 -1
  358. package/public/dist/assets/slash-commands-BEr-vmIr.js +0 -1
  359. package/public/dist/assets/ui-TUyJsMUf.js +0 -1
  360. package/public/manager/src/settings/pages/components/EngineSubsection.tsx +0 -25
@@ -1,11 +1,14 @@
1
- // Phase 2 — Model & Provider page: per-CLI rows + codex extras +
2
- // fallback chip list + active-overrides table with reset button.
1
+ // Phase 2 — Model & Provider page: per-CLI rows + fallback chip list +
2
+ // active-overrides table with reset button.
3
3
 
4
4
  import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
5
5
  import type { SettingsPageProps, SettingsClient, DirtyEntry } from '../types';
6
6
  import { describeError } from '../components/error-normalize';
7
- import { ChipListField, NumberField } from '../fields';
7
+ import { ChipListField } from '../fields';
8
8
  import {
9
+ SettingsActions,
10
+ SettingsKeyValue,
11
+ SettingsNote,
9
12
  SettingsSection,
10
13
  PageError,
11
14
  PageLoading,
@@ -79,7 +82,6 @@ export default function ModelProvider({ port, client, dirty, registerSave }: Set
79
82
  const [perCliDraft, setPerCliDraft] = useState<Record<string, PerCliEntry>>({});
80
83
  const [piDraft, setPiDraft] = useState<PiSettingsView | undefined>(undefined);
81
84
  const [fallback, setFallback] = useState<string[]>([]);
82
- const [codexCtx, setCodexCtx] = useState<{ contextWindowSize?: number; contextWindowCompactLimit?: number }>({});
83
85
  const [resetting, setResetting] = useState(false);
84
86
  const [resetError, setResetError] = useState<string | null>(null);
85
87
  const [saveError, setSaveError] = useState<string | null>(null);
@@ -126,15 +128,6 @@ export default function ModelProvider({ port, client, dirty, registerSave }: Set
126
128
  setPerCliDraft(nextPerCli);
127
129
  setPiDraft(state.data.pi);
128
130
  setFallback([...(state.data.fallbackOrder || [])]);
129
- const codex = nextPerCli['codex'] || {};
130
- const nextCodexCtx: typeof codexCtx = {};
131
- if (typeof codex.contextWindowSize === 'number') {
132
- nextCodexCtx.contextWindowSize = codex.contextWindowSize;
133
- }
134
- if (typeof codex.contextWindowCompactLimit === 'number') {
135
- nextCodexCtx.contextWindowCompactLimit = codex.contextWindowCompactLimit;
136
- }
137
- setCodexCtx(nextCodexCtx);
138
131
  }, [state, dirty]);
139
132
 
140
133
  const onPiRegistered = useCallback((next: PiRegistration) => {
@@ -228,7 +221,6 @@ export default function ModelProvider({ port, client, dirty, registerSave }: Set
228
221
  const data = state.data;
229
222
  const perCliOriginal = data.perCli || {};
230
223
  const cliKeys = orderModelCliKeys(Object.keys(perCliOriginal));
231
- const codexOriginal = perCliOriginal['codex'] || {};
232
224
  const overrides = data.activeOverrides || {};
233
225
  const overrideRows = Object.entries(overrides);
234
226
 
@@ -248,7 +240,7 @@ export default function ModelProvider({ port, client, dirty, registerSave }: Set
248
240
  hint="Per-CLI model and runtime defaults. Runtime transport applies to the next run; display and permissions stay separate."
249
241
  >
250
242
  {cliKeys.length === 0 ? (
251
- <p className="settings-empty">No CLIs registered for this instance.</p>
243
+ <SettingsNote>No CLIs registered for this instance.</SettingsNote>
252
244
  ) : (
253
245
  cliKeys.map((cli) => (
254
246
  <PerCliRow
@@ -270,58 +262,6 @@ export default function ModelProvider({ port, client, dirty, registerSave }: Set
270
262
  )}
271
263
  </SettingsSection>
272
264
 
273
- {perCliOriginal['codex'] ? (
274
- <SettingsSection
275
- title="Codex context window"
276
- hint="Codex-only sliders. Other CLIs ignore these values."
277
- >
278
- <NumberField
279
- id="model-codex-ctx"
280
- label="Context window size"
281
- disabled={saving || resetting}
282
- value={
283
- codexCtx.contextWindowSize
284
- ?? (typeof codexOriginal.contextWindowSize === 'number'
285
- ? codexOriginal.contextWindowSize
286
- : 1_000_000)
287
- }
288
- min={0}
289
- step={10_000}
290
- onChange={(next) => {
291
- if (!canEdit()) return;
292
- setCodexCtx({ ...codexCtx, contextWindowSize: next });
293
- setEntry('perCli.codex.contextWindowSize', {
294
- value: next,
295
- original: codexOriginal.contextWindowSize ?? 1_000_000,
296
- valid: Number.isFinite(next) && next >= 0,
297
- });
298
- }}
299
- />
300
- <NumberField
301
- id="model-codex-compact"
302
- label="Compact limit"
303
- disabled={saving || resetting}
304
- value={
305
- codexCtx.contextWindowCompactLimit
306
- ?? (typeof codexOriginal.contextWindowCompactLimit === 'number'
307
- ? codexOriginal.contextWindowCompactLimit
308
- : 900_000)
309
- }
310
- min={0}
311
- step={10_000}
312
- onChange={(next) => {
313
- if (!canEdit()) return;
314
- setCodexCtx({ ...codexCtx, contextWindowCompactLimit: next });
315
- setEntry('perCli.codex.contextWindowCompactLimit', {
316
- value: next,
317
- original: codexOriginal.contextWindowCompactLimit ?? 900_000,
318
- valid: Number.isFinite(next) && next >= 0,
319
- });
320
- }}
321
- />
322
- </SettingsSection>
323
- ) : null}
324
-
325
265
  <SettingsSection
326
266
  title="Fallback order"
327
267
  hint="Order of CLIs used when the active CLI fails. Press Enter to add a chip; Backspace to remove the last."
@@ -355,46 +295,31 @@ export default function ModelProvider({ port, client, dirty, registerSave }: Set
355
295
  hint="Per-session overrides applied on top of per-CLI defaults."
356
296
  >
357
297
  {overrideRows.length === 0 ? (
358
- <p className="settings-empty">No active overrides.</p>
298
+ <SettingsNote>No active overrides.</SettingsNote>
359
299
  ) : (
360
- <table className="settings-overrides-table">
361
- <thead>
362
- <tr>
363
- <th scope="col">CLI</th>
364
- <th scope="col">Model</th>
365
- <th scope="col">Effort</th>
366
- </tr>
367
- </thead>
368
- <tbody>
369
- {overrideRows.map(([cli, cfg]) => (
370
- <tr key={cli}>
371
- <td>{cli}</td>
372
- <td>
373
- <code>{cfg?.model || '—'}</code>
374
- </td>
375
- <td>
376
- <code>{cfg?.effort || '—'}</code>
377
- </td>
378
- </tr>
379
- ))}
380
- </tbody>
381
- </table>
300
+ <SettingsKeyValue
301
+ items={overrideRows.flatMap(([cli, cfg]) => [
302
+ { label: `${cli} model`, value: cfg?.model || '—', mono: true },
303
+ { label: `${cli} effort`, value: cfg?.effort || '—', mono: true },
304
+ ])}
305
+ />
382
306
  )}
383
- <div className="settings-overrides-actions">
307
+ <SettingsActions
308
+ status={resetError ? (
309
+ <span className="settings-field-error" role="alert">
310
+ {resetError}
311
+ </span>
312
+ ) : null}
313
+ >
384
314
  <button
385
315
  type="button"
386
- className="settings-action settings-action-discard"
316
+ className="settings-action settings-action-danger"
387
317
  onClick={() => void onResetOverrides()}
388
318
  disabled={saving || resetting || overrideRows.length === 0}
389
319
  >
390
320
  {resetting ? 'Resetting…' : 'Reset overrides'}
391
321
  </button>
392
- {resetError ? (
393
- <span className="settings-field-error" role="alert">
394
- {resetError}
395
- </span>
396
- ) : null}
397
- </div>
322
+ </SettingsActions>
398
323
  </SettingsSection>
399
324
  </form>
400
325
  );
@@ -9,6 +9,7 @@ import type { SettingsPageProps, DirtyEntry } from '../types';
9
9
  import { TextField, SelectField, ToggleField } from '../fields';
10
10
  import {
11
11
  SettingsSection,
12
+ SettingsNote,
12
13
  PageError,
13
14
  PageLoading,
14
15
  PageOffline,
@@ -297,18 +298,18 @@ export default function Network({ port, client, dirty, registerSave }: SettingsP
297
298
  });
298
299
  }}
299
300
  />
300
- <p className="settings-section-hint">
301
+ <SettingsNote>
301
302
  <strong>off</strong> — only loopback can talk to the API.{' '}
302
303
  <strong>http-only</strong> — remote can issue HTTP requests but no
303
304
  WebSocket upgrades. <strong>full</strong> — HTTP + WebSocket open to
304
305
  remote (use with auth).
305
- </p>
306
+ </SettingsNote>
306
307
  {lockoutRisk && (
307
- <InlineWarn role="alert">
308
+ <SettingsNote tone="error" role="alert">
308
309
  Saving will close remote access while you're connected from
309
310
  <code> {typeof window !== 'undefined' ? window.location.host : ''} </code>
310
311
  — you will be locked out. Reach the dashboard over loopback first.
311
- </InlineWarn>
312
+ </SettingsNote>
312
313
  )}
313
314
  {remoteEnabled && (
314
315
  <>
@@ -9,6 +9,10 @@ import type { SettingsPageProps, DirtyEntry } from '../types';
9
9
  import { ChipListField, SelectField } from '../fields';
10
10
  import {
11
11
  SettingsSection,
12
+ SettingsNote,
13
+ SettingsKeyValue,
14
+ StatusBadge,
15
+ type StatusTone,
12
16
  PageError,
13
17
  PageLoading,
14
18
  PageOffline,
@@ -119,6 +123,16 @@ export function isAllowlistValid(tokens: ReadonlyArray<string>): boolean {
119
123
  return tokens.every(isPermissionToken);
120
124
  }
121
125
 
126
+ // Badge tone for the saved-policy readout: Auto (YOLO) is the risky policy,
127
+ // Safe reads as healthy, Unrecognized needs attention, Custom/Not provided read neutrally.
128
+ function configuredPolicyTone(value: unknown): StatusTone {
129
+ if (value === 'auto') return 'warn';
130
+ if (value === 'safe') return 'ok';
131
+ if (Array.isArray(value) && isPermissionsPolicy(value)) return 'neutral';
132
+ if (value === null || value === undefined) return 'neutral';
133
+ return 'error';
134
+ }
135
+
122
136
  // ─── Page component ──────────────────────────────────────────────────
123
137
 
124
138
  const MODE_OPTIONS = [
@@ -261,11 +275,32 @@ export default function Permissions({ port, client, dirty, registerSave }: Setti
261
275
  const isEmpty = mode === 'custom' && tokens.length === 0;
262
276
 
263
277
  const activeSummary = configuredPolicyLabel(state.data.permissions);
278
+ const policyTone = configuredPolicyTone(state.data.permissions);
264
279
 
265
280
  return (
266
281
  <form className="settings-page-form" onSubmit={(event) => event.preventDefault()}>
267
282
  <SettingsSection
268
- title="Permissions"
283
+ title="Saved policy"
284
+ hint="The permission policy currently saved on this instance."
285
+ >
286
+ {/* `.settings-readonly-line` is a test contract: its textContent
287
+ must read "Configured policy: <label>". */}
288
+ <SettingsKeyValue
289
+ items={[{
290
+ label: 'Configured policy:',
291
+ value: <>{' '}<StatusBadge tone={policyTone}>{activeSummary}</StatusBadge></>,
292
+ className: 'settings-readonly-line',
293
+ }]}
294
+ />
295
+ {original?.mode === 'unknown' && (
296
+ <SettingsNote>
297
+ Unrecognized value: choose a policy below (or in Agent) to replace it.
298
+ </SettingsNote>
299
+ )}
300
+ </SettingsSection>
301
+
302
+ <SettingsSection
303
+ title="Change policy"
269
304
  hint="Selecting a value changes the draft. Save applies it. Auto (YOLO) requests automatic approval or permission bypass. Behavior varies by runtime."
270
305
  >
271
306
  <SelectField
@@ -298,10 +333,10 @@ export default function Permissions({ port, client, dirty, registerSave }: Setti
298
333
  : null
299
334
  }
300
335
  />
301
- <p className="settings-section-hint">
336
+ <SettingsNote>
302
337
  Each chip is a permission token. Examples: <code>bash</code>,
303
338
  <code> read</code>, <code> write</code>, <code> mcp.*</code>.
304
- </p>
339
+ </SettingsNote>
305
340
  {isEmpty && (
306
341
  <InlineWarn role="alert">
307
342
  An empty Custom allowlist cannot be saved.
@@ -311,19 +346,6 @@ export default function Permissions({ port, client, dirty, registerSave }: Setti
311
346
  </>
312
347
  )}
313
348
  </SettingsSection>
314
-
315
- <SettingsSection
316
- title="Saved policy"
317
- hint="Shows the saved permission policy."
318
- >
319
- <p className="settings-readonly-line">
320
- <span className="settings-field-label">Configured policy:</span>{' '}
321
- <span>{activeSummary}</span>
322
- </p>
323
- {original?.mode === 'unknown' ? (
324
- <p className="settings-section-hint">Unrecognized value: choose a policy above (or in Agent) to replace it.</p>
325
- ) : null}
326
- </SettingsSection>
327
349
  </form>
328
350
  );
329
351
  }
@@ -16,10 +16,11 @@ import {
16
16
  PageError,
17
17
  PageLoading,
18
18
  PageOffline,
19
+ SettingsNote,
19
20
  SettingsSection,
21
+ StatusBadge,
20
22
  usePageSnapshot,
21
23
  } from './page-shell';
22
- import { InlineWarn } from './components/InlineWarn';
23
24
 
24
25
  type PromptResponse = { content?: string };
25
26
 
@@ -268,7 +269,7 @@ export default function Prompts({ port, client, dirty, registerSave }: SettingsP
268
269
  <span className="settings-field-label">a2.md</span>
269
270
  <textarea
270
271
  id="prompt-system-body"
271
- className="settings-field-monospace"
272
+ className="settings-mono-input"
272
273
  value={systemDraft}
273
274
  rows={14}
274
275
  spellCheck={false}
@@ -276,9 +277,10 @@ export default function Prompts({ port, client, dirty, registerSave }: SettingsP
276
277
  />
277
278
  </label>
278
279
  {systemDraft !== originalSystem && (
279
- <p className="settings-section-hint">
280
+ <SettingsNote>
281
+ <StatusBadge tone="warn">Unsaved</StatusBadge>{' '}
280
282
  Pending edits to a2.md.
281
- </p>
283
+ </SettingsNote>
282
284
  )}
283
285
  </SettingsSection>
284
286
 
@@ -287,9 +289,9 @@ export default function Prompts({ port, client, dirty, registerSave }: SettingsP
287
289
  hint="Edit individual prompt template bodies. Saving regenerates b automatically."
288
290
  >
289
291
  {flatList.length === 0 ? (
290
- <InlineWarn tone="info">
292
+ <SettingsNote>
291
293
  No templates returned by /api/prompt-templates.
292
- </InlineWarn>
294
+ </SettingsNote>
293
295
  ) : (
294
296
  <>
295
297
  <label
@@ -320,7 +322,7 @@ export default function Prompts({ port, client, dirty, registerSave }: SettingsP
320
322
  </span>
321
323
  <textarea
322
324
  id="prompt-template-body"
323
- className="settings-field-monospace"
325
+ className="settings-mono-input"
324
326
  value={templateDraft}
325
327
  rows={16}
326
328
  spellCheck={false}
@@ -329,9 +331,10 @@ export default function Prompts({ port, client, dirty, registerSave }: SettingsP
329
331
  />
330
332
  </label>
331
333
  {templateBodyDirty && (
332
- <p className="settings-section-hint">
334
+ <SettingsNote>
335
+ <StatusBadge tone="warn">Unsaved</StatusBadge>{' '}
333
336
  Pending edits to {activeTemplateId}.md.
334
- </p>
337
+ </SettingsNote>
335
338
  )}
336
339
  </>
337
340
  )}