aicodeman 1.42.0 → 1.44.0

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 (350) hide show
  1. package/README.md +13 -12
  2. package/dist/claude-session-title.d.ts +6 -4
  3. package/dist/claude-session-title.d.ts.map +1 -1
  4. package/dist/claude-session-title.js +6 -4
  5. package/dist/claude-session-title.js.map +1 -1
  6. package/dist/cli-agent.d.ts +3 -3
  7. package/dist/cli-agent.d.ts.map +1 -1
  8. package/dist/cli-agent.js +8 -6
  9. package/dist/cli-agent.js.map +1 -1
  10. package/dist/config/cli-registry/patterns.d.ts +1 -1
  11. package/dist/config/cli-registry/patterns.d.ts.map +1 -1
  12. package/dist/config/cli-registry/patterns.js +3 -0
  13. package/dist/config/cli-registry/patterns.js.map +1 -1
  14. package/dist/config/cli-registry/schema.d.ts +1 -0
  15. package/dist/config/cli-registry/schema.d.ts.map +1 -1
  16. package/dist/config/cli-registry/schema.js +5 -3
  17. package/dist/config/cli-registry/schema.js.map +1 -1
  18. package/dist/config/cli-registry/stock.d.ts.map +1 -1
  19. package/dist/config/cli-registry/stock.js +263 -4
  20. package/dist/config/cli-registry/stock.js.map +1 -1
  21. package/dist/config/cli-registry/types.d.ts +13 -5
  22. package/dist/config/cli-registry/types.d.ts.map +1 -1
  23. package/dist/config/map-limits.d.ts +13 -1
  24. package/dist/config/map-limits.d.ts.map +1 -1
  25. package/dist/config/map-limits.js +28 -1
  26. package/dist/config/map-limits.js.map +1 -1
  27. package/dist/config-backup.d.ts +279 -0
  28. package/dist/config-backup.d.ts.map +1 -0
  29. package/dist/config-backup.js +794 -0
  30. package/dist/config-backup.js.map +1 -0
  31. package/dist/cron/cron-service.d.ts +5 -5
  32. package/dist/cron/cron-service.js +6 -6
  33. package/dist/cron/cron-service.js.map +1 -1
  34. package/dist/custom-model-hosts.d.ts +16 -0
  35. package/dist/custom-model-hosts.d.ts.map +1 -1
  36. package/dist/custom-model-hosts.js.map +1 -1
  37. package/dist/hooks-config.d.ts +24 -0
  38. package/dist/hooks-config.d.ts.map +1 -1
  39. package/dist/hooks-config.js +47 -0
  40. package/dist/hooks-config.js.map +1 -1
  41. package/dist/intent-store.d.ts +2 -0
  42. package/dist/intent-store.d.ts.map +1 -1
  43. package/dist/intent-store.js +9 -0
  44. package/dist/intent-store.js.map +1 -1
  45. package/dist/mcp-sync-targets.d.ts +6 -3
  46. package/dist/mcp-sync-targets.d.ts.map +1 -1
  47. package/dist/mcp-sync-targets.js +6 -3
  48. package/dist/mcp-sync-targets.js.map +1 -1
  49. package/dist/mux-interface.d.ts +28 -7
  50. package/dist/mux-interface.d.ts.map +1 -1
  51. package/dist/prompt-cache-keepwarm.d.ts +193 -0
  52. package/dist/prompt-cache-keepwarm.d.ts.map +1 -0
  53. package/dist/prompt-cache-keepwarm.js +359 -0
  54. package/dist/prompt-cache-keepwarm.js.map +1 -0
  55. package/dist/respawn-controller.d.ts.map +1 -1
  56. package/dist/respawn-controller.js +6 -5
  57. package/dist/respawn-controller.js.map +1 -1
  58. package/dist/session-auto-ops.d.ts.map +1 -1
  59. package/dist/session-auto-ops.js +6 -1
  60. package/dist/session-auto-ops.js.map +1 -1
  61. package/dist/session-cli-registry-bridge.d.ts +15 -1
  62. package/dist/session-cli-registry-bridge.d.ts.map +1 -1
  63. package/dist/session-cli-registry-bridge.js +20 -3
  64. package/dist/session-cli-registry-bridge.js.map +1 -1
  65. package/dist/session-submit-verifier.d.ts +19 -0
  66. package/dist/session-submit-verifier.d.ts.map +1 -1
  67. package/dist/session-submit-verifier.js +88 -0
  68. package/dist/session-submit-verifier.js.map +1 -1
  69. package/dist/session.d.ts +83 -12
  70. package/dist/session.d.ts.map +1 -1
  71. package/dist/session.js +150 -16
  72. package/dist/session.js.map +1 -1
  73. package/dist/state-store.d.ts +10 -0
  74. package/dist/state-store.d.ts.map +1 -1
  75. package/dist/state-store.js +35 -0
  76. package/dist/state-store.js.map +1 -1
  77. package/dist/tab-layout-service.d.ts +33 -0
  78. package/dist/tab-layout-service.d.ts.map +1 -1
  79. package/dist/tab-layout-service.js +75 -3
  80. package/dist/tab-layout-service.js.map +1 -1
  81. package/dist/tmux-manager.d.ts +52 -9
  82. package/dist/tmux-manager.d.ts.map +1 -1
  83. package/dist/tmux-manager.js +148 -30
  84. package/dist/tmux-manager.js.map +1 -1
  85. package/dist/tmux-prefix-table.d.ts +54 -0
  86. package/dist/tmux-prefix-table.d.ts.map +1 -0
  87. package/dist/tmux-prefix-table.js +137 -0
  88. package/dist/tmux-prefix-table.js.map +1 -0
  89. package/dist/tui/tui-app.d.ts +9 -1
  90. package/dist/tui/tui-app.d.ts.map +1 -1
  91. package/dist/tui/tui-app.js +21 -8
  92. package/dist/tui/tui-app.js.map +1 -1
  93. package/dist/tui/tui-client.d.ts +3 -2
  94. package/dist/tui/tui-client.d.ts.map +1 -1
  95. package/dist/tui/tui-client.js +3 -2
  96. package/dist/tui/tui-client.js.map +1 -1
  97. package/dist/types/app-state.d.ts +6 -0
  98. package/dist/types/app-state.d.ts.map +1 -1
  99. package/dist/types/app-state.js.map +1 -1
  100. package/dist/types/session.d.ts +72 -5
  101. package/dist/types/session.d.ts.map +1 -1
  102. package/dist/types/session.js +2 -1
  103. package/dist/types/session.js.map +1 -1
  104. package/dist/usage-telemetry.d.ts +15 -0
  105. package/dist/usage-telemetry.d.ts.map +1 -1
  106. package/dist/usage-telemetry.js +45 -2
  107. package/dist/usage-telemetry.js.map +1 -1
  108. package/dist/utils/cli-installed-probes.d.ts +1 -1
  109. package/dist/utils/cli-installed-probes.d.ts.map +1 -1
  110. package/dist/utils/cli-installed-probes.js +4 -2
  111. package/dist/utils/cli-installed-probes.js.map +1 -1
  112. package/dist/utils/copilot-cli-resolver.d.ts +48 -0
  113. package/dist/utils/copilot-cli-resolver.d.ts.map +1 -0
  114. package/dist/utils/copilot-cli-resolver.js +112 -0
  115. package/dist/utils/copilot-cli-resolver.js.map +1 -0
  116. package/dist/utils/copilot-plan-usage.d.ts +46 -0
  117. package/dist/utils/copilot-plan-usage.d.ts.map +1 -0
  118. package/dist/utils/copilot-plan-usage.js +95 -0
  119. package/dist/utils/copilot-plan-usage.js.map +1 -0
  120. package/dist/utils/index.d.ts +3 -0
  121. package/dist/utils/index.d.ts.map +1 -1
  122. package/dist/utils/index.js +3 -0
  123. package/dist/utils/index.js.map +1 -1
  124. package/dist/utils/single-line.d.ts +22 -0
  125. package/dist/utils/single-line.d.ts.map +1 -0
  126. package/dist/utils/single-line.js +30 -0
  127. package/dist/utils/single-line.js.map +1 -0
  128. package/dist/web/approval-inbox.d.ts +6 -0
  129. package/dist/web/approval-inbox.d.ts.map +1 -1
  130. package/dist/web/approval-inbox.js +2 -2
  131. package/dist/web/approval-inbox.js.map +1 -1
  132. package/dist/web/case-path.d.ts +4 -2
  133. package/dist/web/case-path.d.ts.map +1 -1
  134. package/dist/web/case-path.js +13 -4
  135. package/dist/web/case-path.js.map +1 -1
  136. package/dist/web/plan-usage-latest.d.ts +2 -1
  137. package/dist/web/plan-usage-latest.d.ts.map +1 -1
  138. package/dist/web/plan-usage-latest.js +12 -2
  139. package/dist/web/plan-usage-latest.js.map +1 -1
  140. package/dist/web/ports/index.d.ts +1 -0
  141. package/dist/web/ports/index.d.ts.map +1 -1
  142. package/dist/web/ports/keep-warm-port.d.ts +9 -0
  143. package/dist/web/ports/keep-warm-port.d.ts.map +1 -0
  144. package/dist/web/ports/keep-warm-port.js +6 -0
  145. package/dist/web/ports/keep-warm-port.js.map +1 -0
  146. package/dist/web/ports/session-port.d.ts +3 -1
  147. package/dist/web/ports/session-port.d.ts.map +1 -1
  148. package/dist/web/public/admin-ui.js.gz +0 -0
  149. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  150. package/dist/web/public/app.9314ee60.js +43 -0
  151. package/dist/web/public/app.9314ee60.js.br +0 -0
  152. package/dist/web/public/app.9314ee60.js.gz +0 -0
  153. package/dist/web/public/approvals-ui.js.gz +0 -0
  154. package/dist/web/public/{constants.12b0c247.js → constants.4866ecc3.js} +205 -3
  155. package/dist/web/public/constants.4866ecc3.js.br +0 -0
  156. package/dist/web/public/constants.4866ecc3.js.gz +0 -0
  157. package/dist/web/public/cron-ui.js.gz +0 -0
  158. package/dist/web/public/entrance-animations.js.gz +0 -0
  159. package/dist/web/public/git-status-ui.js.gz +0 -0
  160. package/dist/web/public/home-sessions.js.gz +0 -0
  161. package/dist/web/public/host-wake-ui.js.gz +0 -0
  162. package/dist/web/public/i18n.22ca902b.js +2 -0
  163. package/dist/web/public/i18n.22ca902b.js.br +0 -0
  164. package/dist/web/public/i18n.22ca902b.js.gz +0 -0
  165. package/dist/web/public/{image-input.fcdcb46c.js → image-input.941386e7.js} +24 -14
  166. package/dist/web/public/image-input.941386e7.js.br +0 -0
  167. package/dist/web/public/image-input.941386e7.js.gz +0 -0
  168. package/dist/web/public/index.html +110 -16
  169. package/dist/web/public/index.html.br +0 -0
  170. package/dist/web/public/index.html.gz +0 -0
  171. package/dist/web/public/input-cjk.8bc46081.js.gz +0 -0
  172. package/dist/web/public/{keyboard-accessory.b42f539b.js → keyboard-accessory.4e8b20ac.js} +51 -22
  173. package/dist/web/public/keyboard-accessory.4e8b20ac.js.br +0 -0
  174. package/dist/web/public/keyboard-accessory.4e8b20ac.js.gz +0 -0
  175. package/dist/web/public/{mobile-handlers.0ef9c311.js → mobile-handlers.44adaa07.js} +48 -16
  176. package/dist/web/public/mobile-handlers.44adaa07.js.br +0 -0
  177. package/dist/web/public/mobile-handlers.44adaa07.js.gz +0 -0
  178. package/dist/web/public/mobile-ime-preview.2dbaf262.js.gz +0 -0
  179. package/dist/web/public/mobile-overview.js +1 -0
  180. package/dist/web/public/mobile-overview.js.br +0 -0
  181. package/dist/web/public/mobile-overview.js.gz +0 -0
  182. package/dist/web/public/mobile.12fb18de.css +1 -0
  183. package/dist/web/public/mobile.12fb18de.css.br +0 -0
  184. package/dist/web/public/mobile.12fb18de.css.gz +0 -0
  185. package/dist/web/public/notification-manager.feb82c04.js.gz +0 -0
  186. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  187. package/dist/web/public/{panels-ui.73ec0137.js → panels-ui.cbb24ba1.js} +66 -66
  188. package/dist/web/public/panels-ui.cbb24ba1.js.br +0 -0
  189. package/dist/web/public/panels-ui.cbb24ba1.js.gz +0 -0
  190. package/dist/web/public/ralph-panel.b350e2ef.js.gz +0 -0
  191. package/dist/web/public/ralph-wizard.b6c0dd19.js.gz +0 -0
  192. package/dist/web/public/readmymind-ui.js.gz +0 -0
  193. package/dist/web/public/reboot-restore-ui.js.gz +0 -0
  194. package/dist/web/public/respawn-ui.d7adcf6a.js.gz +0 -0
  195. package/dist/web/public/sanitize-html.e7147e76.js.gz +0 -0
  196. package/dist/web/public/security-notices.json +21 -0
  197. package/dist/web/public/session-lineage.js.gz +0 -0
  198. package/dist/web/public/{session-ui.d52ff6aa.js → session-ui.9c1f009b.js} +8 -4
  199. package/dist/web/public/session-ui.9c1f009b.js.br +0 -0
  200. package/dist/web/public/session-ui.9c1f009b.js.gz +0 -0
  201. package/dist/web/public/settings-ui.fea9ddae.js +106 -0
  202. package/dist/web/public/settings-ui.fea9ddae.js.br +0 -0
  203. package/dist/web/public/settings-ui.fea9ddae.js.gz +0 -0
  204. package/dist/web/public/spreadsheet-preview-worker.js.gz +0 -0
  205. package/dist/web/public/spreadsheet-preview.75c751de.js.gz +0 -0
  206. package/dist/web/public/spreadsheet-xlsx-core.js.gz +0 -0
  207. package/dist/web/public/styles.e096fcd6.css +1 -0
  208. package/dist/web/public/styles.e096fcd6.css.br +0 -0
  209. package/dist/web/public/styles.e096fcd6.css.gz +0 -0
  210. package/dist/web/public/subagent-windows.07277a58.js.gz +0 -0
  211. package/dist/web/public/sw.js +2 -2
  212. package/dist/web/public/sw.js.br +0 -0
  213. package/dist/web/public/sw.js.gz +0 -0
  214. package/dist/web/public/tab-layout-browser.2d6189f7.js.gz +0 -0
  215. package/dist/web/public/tab-rail-resize.7157e0bd.js.gz +0 -0
  216. package/dist/web/public/terminal-keycode229-recovery.af09f99a.js.gz +0 -0
  217. package/dist/web/public/terminal-split.js.gz +0 -0
  218. package/dist/web/public/terminal-tile.js +41 -22
  219. package/dist/web/public/terminal-tile.js.br +0 -0
  220. package/dist/web/public/terminal-tile.js.gz +0 -0
  221. package/dist/web/public/terminal-ui.68dbd352.js +2 -0
  222. package/dist/web/public/terminal-ui.68dbd352.js.br +0 -0
  223. package/dist/web/public/terminal-ui.68dbd352.js.gz +0 -0
  224. package/dist/web/public/tile-grid.js +3 -6
  225. package/dist/web/public/tile-grid.js.br +0 -0
  226. package/dist/web/public/tile-grid.js.gz +0 -0
  227. package/dist/web/public/ultracode-panel.js.gz +0 -0
  228. package/dist/web/public/ultracode-windows.js.gz +0 -0
  229. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  230. package/dist/web/public/vendor/exceljs.min.js.gz +0 -0
  231. package/dist/web/public/vendor/fflate.min.js.gz +0 -0
  232. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  233. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  234. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  235. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  236. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  237. package/dist/web/public/vendor/xterm-predictive-echo.ae5e3d5d.js.gz +0 -0
  238. package/dist/web/public/vendor/xterm-zerolag-input.0b69623c.js.gz +0 -0
  239. package/dist/web/public/vendor/xterm.css.gz +0 -0
  240. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  241. package/dist/web/public/voice-input.2342c37b.js.gz +0 -0
  242. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  243. package/dist/web/public/webview-tabs.js.gz +0 -0
  244. package/dist/web/public/whats-new.json +9 -9
  245. package/dist/web/response-viewer-transcript.d.ts +6 -0
  246. package/dist/web/response-viewer-transcript.d.ts.map +1 -1
  247. package/dist/web/response-viewer-transcript.js +134 -1
  248. package/dist/web/response-viewer-transcript.js.map +1 -1
  249. package/dist/web/routes/admin-routes.d.ts +2 -1
  250. package/dist/web/routes/admin-routes.d.ts.map +1 -1
  251. package/dist/web/routes/admin-routes.js +3 -0
  252. package/dist/web/routes/admin-routes.js.map +1 -1
  253. package/dist/web/routes/case-routes.d.ts +2 -2
  254. package/dist/web/routes/case-routes.d.ts.map +1 -1
  255. package/dist/web/routes/case-routes.js +81 -3
  256. package/dist/web/routes/case-routes.js.map +1 -1
  257. package/dist/web/routes/config-backup-routes.d.ts +54 -0
  258. package/dist/web/routes/config-backup-routes.d.ts.map +1 -0
  259. package/dist/web/routes/config-backup-routes.js +268 -0
  260. package/dist/web/routes/config-backup-routes.js.map +1 -0
  261. package/dist/web/routes/custom-model-routes.d.ts +17 -1
  262. package/dist/web/routes/custom-model-routes.d.ts.map +1 -1
  263. package/dist/web/routes/custom-model-routes.js +118 -13
  264. package/dist/web/routes/custom-model-routes.js.map +1 -1
  265. package/dist/web/routes/hook-event-routes.d.ts.map +1 -1
  266. package/dist/web/routes/hook-event-routes.js +26 -5
  267. package/dist/web/routes/hook-event-routes.js.map +1 -1
  268. package/dist/web/routes/index.d.ts +1 -0
  269. package/dist/web/routes/index.d.ts.map +1 -1
  270. package/dist/web/routes/index.js +1 -0
  271. package/dist/web/routes/index.js.map +1 -1
  272. package/dist/web/routes/mcp-sync-routes.d.ts +4 -4
  273. package/dist/web/routes/mcp-sync-routes.js +4 -4
  274. package/dist/web/routes/ralph-routes.js +2 -2
  275. package/dist/web/routes/ralph-routes.js.map +1 -1
  276. package/dist/web/routes/reboot-restore-routes.d.ts.map +1 -1
  277. package/dist/web/routes/reboot-restore-routes.js +2 -0
  278. package/dist/web/routes/reboot-restore-routes.js.map +1 -1
  279. package/dist/web/routes/session-routes.d.ts +14 -4
  280. package/dist/web/routes/session-routes.d.ts.map +1 -1
  281. package/dist/web/routes/session-routes.js +131 -30
  282. package/dist/web/routes/session-routes.js.map +1 -1
  283. package/dist/web/routes/status-telemetry-routes.d.ts +2 -2
  284. package/dist/web/routes/status-telemetry-routes.d.ts.map +1 -1
  285. package/dist/web/routes/status-telemetry-routes.js +8 -4
  286. package/dist/web/routes/status-telemetry-routes.js.map +1 -1
  287. package/dist/web/routes/system-routes.d.ts +2 -2
  288. package/dist/web/routes/system-routes.d.ts.map +1 -1
  289. package/dist/web/routes/system-routes.js +18 -0
  290. package/dist/web/routes/system-routes.js.map +1 -1
  291. package/dist/web/routes/webview-routes.d.ts.map +1 -1
  292. package/dist/web/routes/webview-routes.js +1 -0
  293. package/dist/web/routes/webview-routes.js.map +1 -1
  294. package/dist/web/schemas.d.ts +32 -0
  295. package/dist/web/schemas.d.ts.map +1 -1
  296. package/dist/web/schemas.js +64 -4
  297. package/dist/web/schemas.js.map +1 -1
  298. package/dist/web/server.d.ts +12 -2
  299. package/dist/web/server.d.ts.map +1 -1
  300. package/dist/web/server.js +127 -6
  301. package/dist/web/server.js.map +1 -1
  302. package/dist/web/session-listener-wiring.d.ts +6 -0
  303. package/dist/web/session-listener-wiring.d.ts.map +1 -1
  304. package/dist/web/session-listener-wiring.js +10 -3
  305. package/dist/web/session-listener-wiring.js.map +1 -1
  306. package/dist/web/sse-events.d.ts +5 -2
  307. package/dist/web/sse-events.d.ts.map +1 -1
  308. package/dist/web/sse-events.js +5 -2
  309. package/dist/web/sse-events.js.map +1 -1
  310. package/dist/web/webview-proxy.d.ts +8 -3
  311. package/dist/web/webview-proxy.d.ts.map +1 -1
  312. package/dist/web/webview-proxy.js +23 -5
  313. package/dist/web/webview-proxy.js.map +1 -1
  314. package/package.json +1 -1
  315. package/skills/codeman/SKILL.md +23 -11
  316. package/skills/codeman/preamble.sh +12 -2
  317. package/skills/codeman/reference/endpoints.md +16 -15
  318. package/skills/codeman/reference/messaging.md +5 -5
  319. package/skills/codeman/reference/recipes.md +2 -2
  320. package/skills/codeman/reference/verbs.md +25 -17
  321. package/dist/web/public/app.f04bb2a5.js +0 -43
  322. package/dist/web/public/app.f04bb2a5.js.br +0 -0
  323. package/dist/web/public/app.f04bb2a5.js.gz +0 -0
  324. package/dist/web/public/constants.12b0c247.js.br +0 -0
  325. package/dist/web/public/constants.12b0c247.js.gz +0 -0
  326. package/dist/web/public/i18n.06659676.js +0 -2
  327. package/dist/web/public/i18n.06659676.js.br +0 -0
  328. package/dist/web/public/i18n.06659676.js.gz +0 -0
  329. package/dist/web/public/image-input.fcdcb46c.js.br +0 -0
  330. package/dist/web/public/image-input.fcdcb46c.js.gz +0 -0
  331. package/dist/web/public/keyboard-accessory.b42f539b.js.br +0 -0
  332. package/dist/web/public/keyboard-accessory.b42f539b.js.gz +0 -0
  333. package/dist/web/public/mobile-handlers.0ef9c311.js.br +0 -0
  334. package/dist/web/public/mobile-handlers.0ef9c311.js.gz +0 -0
  335. package/dist/web/public/mobile.2dff1580.css +0 -1
  336. package/dist/web/public/mobile.2dff1580.css.br +0 -0
  337. package/dist/web/public/mobile.2dff1580.css.gz +0 -0
  338. package/dist/web/public/panels-ui.73ec0137.js.br +0 -0
  339. package/dist/web/public/panels-ui.73ec0137.js.gz +0 -0
  340. package/dist/web/public/session-ui.d52ff6aa.js.br +0 -0
  341. package/dist/web/public/session-ui.d52ff6aa.js.gz +0 -0
  342. package/dist/web/public/settings-ui.3a22bd2a.js +0 -97
  343. package/dist/web/public/settings-ui.3a22bd2a.js.br +0 -0
  344. package/dist/web/public/settings-ui.3a22bd2a.js.gz +0 -0
  345. package/dist/web/public/styles.ba6a9b84.css +0 -1
  346. package/dist/web/public/styles.ba6a9b84.css.br +0 -0
  347. package/dist/web/public/styles.ba6a9b84.css.gz +0 -0
  348. package/dist/web/public/terminal-ui.0a7ccc29.js +0 -2
  349. package/dist/web/public/terminal-ui.0a7ccc29.js.br +0 -0
  350. package/dist/web/public/terminal-ui.0a7ccc29.js.gz +0 -0
@@ -1,7 +1,33 @@
1
1
  // Keep in lockstep with isExternalCliMode() in src/session.ts. Importing it here
2
2
  // would drag node-pty and the whole session layer into this pure module, so the
3
3
  // list is duplicated and test/response-viewer-transcript.test.ts pins the parity.
4
- const EXTERNAL_CLI_MODES = new Set(['codex', 'gemini', 'opencode', 'antigravity', 'pi', 'grok', 'deepseek']);
4
+ const EXTERNAL_CLI_MODES = new Set(['codex', 'gemini', 'opencode', 'antigravity', 'pi', 'grok', 'deepseek', 'copilot']);
5
+ const PANE_DIALECTS = {
6
+ // GitHub Copilot CLI, measured on 1.0.95 inside tmux: ` ❯ <prompt> HH:MM`, then ` ● <answer>`
7
+ // with 3-space continuation lines, a cwd + `Session: N AIC used` row, the composer between two
8
+ // rules, and a `← open sidebar · … · / commands · ? help` footer. Tool-call rows are not
9
+ // modelled: they open with the same bullet and read as part of the answer.
10
+ copilot: {
11
+ // Copilot draws a submitted prompt at column 0 or 1; the continuation rows of an answer are
12
+ // indented three spaces, so a shell prompt inside a code block (` ❯ npm test`) is not a prompt.
13
+ prompt: /^ ?❯\s+(\S.*)$/,
14
+ promptTrailer: /\s{2,}\d{1,2}:\d{2}\s*$/,
15
+ responseBullet: /^\s*●\s+/,
16
+ status: [
17
+ /^\s*(?:!|●)\s+(?:Tip:|MCP Servers?\b|Model\b)/,
18
+ /^\s*!\s+/,
19
+ /\bSession: .*(?:AIC used|credits unavailable)/,
20
+ /^\s*←\s+open sidebar/,
21
+ /\/ commands · \? help/,
22
+ /^\s*[◉◎]\s+Working\b/,
23
+ ],
24
+ ignore: [/^ ?❯\s*$/],
25
+ composer: /^ ?❯/,
26
+ // The right-hand scrollbar gutter, `┃` on a row (or alone on a blank one).
27
+ lineTrailer: /\s*[┃▐]\s*$/,
28
+ startup: [/Copilot v\d+\.\d+\.\d+ uses AI/, /Confirm folder trust/, /Do you trust the files in this folder/],
29
+ },
30
+ };
5
31
  function isPromptLine(line) {
6
32
  return /^\s*›\s*/.test(line);
7
33
  }
@@ -258,6 +284,110 @@ function pushBlock(blocks, kind, lines) {
258
284
  export function isExternalCliTranscriptMode(mode) {
259
285
  return EXTERNAL_CLI_MODES.has(String(mode || ''));
260
286
  }
287
+ /**
288
+ * Whether this mode's pane is a repainting full-screen TUI whose output stream is absolute cursor
289
+ * moves rather than lines. The segmenter needs the SCREEN for those (tmux capture-pane), because
290
+ * stripping the escapes from the stream concatenates every row into one run of text.
291
+ */
292
+ export function transcriptNeedsScreenCapture(mode) {
293
+ return Object.prototype.hasOwnProperty.call(PANE_DIALECTS, String(mode || ''));
294
+ }
295
+ /**
296
+ * Segment a pane that has its own dialect. Everything before the first prompt is the banner (or a
297
+ * trust dialog) and is dropped, so a session that has not been asked anything answers "nothing
298
+ * yet" rather than serving its logo as a reply.
299
+ *
300
+ * The screen is all there is to read, so a long answer scrolls the prompt row off the top. When no
301
+ * prompt row is on screen AND no startup text is either, the session has already been asked
302
+ * something: the rows above the composer are the tail of the last answer, not "nothing yet".
303
+ */
304
+ function parseDialectTranscript(cleaned, dialect) {
305
+ const blocks = [];
306
+ let kind = null;
307
+ let current = [];
308
+ const rows = cleaned.split('\n').map((row) => (dialect.lineTrailer ? row.replace(dialect.lineTrailer, '') : row));
309
+ // The composer sits between two rules and holds whatever is typed but not sent. That is not a
310
+ // prompt row: otherwise typing under a tall answer would make the answer's tail read as banner.
311
+ let composerIndex = -1;
312
+ for (let i = rows.length - 2; i > 0; i -= 1) {
313
+ if (dialect.composer.test(rows[i] ?? '') &&
314
+ isDividerOnlyLine(rows[i - 1] ?? '') &&
315
+ isDividerOnlyLine(rows[i + 1] ?? '')) {
316
+ composerIndex = i;
317
+ break;
318
+ }
319
+ }
320
+ const isComposerRow = (i) => i === composerIndex;
321
+ const isComposerRule = (i) => composerIndex !== -1 && (i === composerIndex - 1 || i === composerIndex + 1);
322
+ const hasPrompt = rows.some((row, i) => dialect.prompt.test(row) && !isComposerRow(i));
323
+ const startupVisible = rows.some((row) => dialect.startup.some((re) => re.test(row)));
324
+ let sawPrompt = !hasPrompt && !startupVisible;
325
+ // A rule drawn INSIDE an answer (a markdown `---`, a quoted passage between two rules) is part
326
+ // of the answer, so it must not end the block, or `agent read` returns only the text after the
327
+ // last rule. It is held until more of the same answer follows, so a rule that only separates
328
+ // the answer from the footer never trails it. The composer's own two rules stay boundaries.
329
+ let pendingRule = false;
330
+ const flush = () => {
331
+ if (sawPrompt)
332
+ pushBlock(blocks, kind, current);
333
+ kind = null;
334
+ current = [];
335
+ pendingRule = false;
336
+ };
337
+ for (const [index, line] of rows.entries()) {
338
+ if (kind === 'response' && isDividerOnlyLine(line) && !isComposerRule(index)) {
339
+ pendingRule = true;
340
+ continue;
341
+ }
342
+ if (isDividerOnlyLine(line) || isComposerRow(index) || dialect.ignore.some((re) => re.test(line))) {
343
+ flush();
344
+ continue;
345
+ }
346
+ const prompt = dialect.prompt.exec(line);
347
+ if (prompt) {
348
+ flush();
349
+ sawPrompt = true;
350
+ kind = 'prompt';
351
+ current = [dialect.promptTrailer ? prompt[1].replace(dialect.promptTrailer, '').trim() : prompt[1].trim()];
352
+ continue;
353
+ }
354
+ if (!sawPrompt)
355
+ continue;
356
+ if (dialect.status.some((re) => re.test(line))) {
357
+ if (kind !== 'status')
358
+ flush();
359
+ kind = 'status';
360
+ current.push(line.trim());
361
+ continue;
362
+ }
363
+ // A wrapped warning or tip: indented under its status row.
364
+ if (kind === 'status' && /^\s{3,}\S/.test(line)) {
365
+ current.push(line.trim());
366
+ continue;
367
+ }
368
+ if (!line.trim()) {
369
+ if (kind)
370
+ current.push('');
371
+ continue;
372
+ }
373
+ const bullet = dialect.responseBullet.exec(line);
374
+ if (bullet) {
375
+ flush();
376
+ kind = 'response';
377
+ current = [line.slice(bullet[0].length)];
378
+ continue;
379
+ }
380
+ if (!kind)
381
+ kind = 'response';
382
+ if (pendingRule) {
383
+ current.push('', '---', '');
384
+ pendingRule = false;
385
+ }
386
+ current.push(line);
387
+ }
388
+ flush();
389
+ return blocks.filter((block) => block.text.trim().length > 0);
390
+ }
261
391
  export function parseExternalCliTranscript(buffer, mode) {
262
392
  const resolvedMode = String(mode || '');
263
393
  if (!isExternalCliTranscriptMode(resolvedMode))
@@ -265,6 +395,9 @@ export function parseExternalCliTranscript(buffer, mode) {
265
395
  const cleaned = cleanTerminalTranscript(buffer);
266
396
  if (!cleaned)
267
397
  return [];
398
+ const dialect = PANE_DIALECTS[resolvedMode];
399
+ if (dialect)
400
+ return parseDialectTranscript(cleaned, dialect);
268
401
  const lines = trimLeadingStartup(cleaned.split('\n'));
269
402
  const blocks = [];
270
403
  let currentKind = null;
@@ -1 +1 @@
1
- {"version":3,"file":"response-viewer-transcript.js","sourceRoot":"","sources":["../../src/web/response-viewer-transcript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response-viewer-transcript.js","sourceRoot":"","sources":["../../src/web/response-viewer-transcript.ts"],"names":[],"mappings":"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"}
@@ -18,5 +18,6 @@ import type { FastifyInstance } from 'fastify';
18
18
  import type { AuthPort } from '../ports/auth-port.js';
19
19
  import type { SessionPort } from '../ports/session-port.js';
20
20
  import type { EventPort } from '../ports/event-port.js';
21
- export declare function registerAdminRoutes(app: FastifyInstance, ctx: SessionPort & AuthPort & EventPort): void;
21
+ import type { TabLayoutPort } from '../ports/tab-layout-port.js';
22
+ export declare function registerAdminRoutes(app: FastifyInstance, ctx: SessionPort & AuthPort & EventPort & TabLayoutPort): void;
22
23
  //# sourceMappingURL=admin-routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-routes.d.ts","sourceRoot":"","sources":["../../../src/web/routes/admin-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAwB7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAgCxD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAsOvG"}
1
+ {"version":3,"file":"admin-routes.d.ts","sourceRoot":"","sources":["../../../src/web/routes/admin-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAwB7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAiCjE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GACtD,IAAI,CAwON"}
@@ -25,6 +25,7 @@ import { webviewCapabilities } from '../../webview-capabilities.js';
25
25
  import { htmlViewCapabilities } from '../../html-view-capabilities.js';
26
26
  import { appendAdminAudit } from '../admin-audit.js';
27
27
  import { SseEvent } from '../sse-events.js';
28
+ import { ownerLayoutKey } from '../../tab-layout-persistence.js';
28
29
  const CreateUserSchema = z.object({
29
30
  username: z.string().min(1).max(64),
30
31
  role: z.enum(['admin', 'user']).default('user'),
@@ -282,6 +283,8 @@ export function registerAdminRoutes(app, ctx) {
282
283
  return createErrorResponse(ApiErrorCode.CONFLICT, `Case folder is in use by ${inUse} live session(s), close them first`);
283
284
  }
284
285
  await fsp.rm(realTarget, { recursive: true, force: true });
286
+ // The user's default session group for that case goes with it.
287
+ await ctx.tabLayouts.forgetCaseDefaultGroup(ownerLayoutKey(username), params.caseName).catch(() => undefined);
285
288
  audit(req, 'user.case-delete', username, { caseName: params.caseName });
286
289
  ctx.broadcast(SseEvent.AdminUsersChanged, {});
287
290
  return { success: true, data: { username, caseName: params.caseName } };
@@ -1 +1 @@
1
- {"version":3,"file":"admin-routes.js","sourceRoot":"","sources":["../../../src/web/routes/admin-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-routes.js","sourceRoot":"","sources":["../../../src/web/routes/admin-routes.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * and ralph-wizard file serving.
7
7
  */
8
8
  import { FastifyInstance } from 'fastify';
9
- import type { EventPort, ConfigPort, SessionPort } from '../ports/index.js';
9
+ import type { EventPort, ConfigPort, SessionPort, TabLayoutPort } from '../ports/index.js';
10
10
  import type { FastifyRequest } from 'fastify';
11
11
  /**
12
12
  * Whether a clone or preflight must run with git's credential helpers cleared:
@@ -17,5 +17,5 @@ import type { FastifyRequest } from 'fastify';
17
17
  * above guards. Admins and single-user mode keep the account's own helpers.
18
18
  */
19
19
  export declare function cloneWithoutCredentialHelpers(req: FastifyRequest): boolean;
20
- export declare function registerCaseRoutes(app: FastifyInstance, ctx: EventPort & ConfigPort & SessionPort): void;
20
+ export declare function registerCaseRoutes(app: FastifyInstance, ctx: EventPort & ConfigPort & SessionPort & TabLayoutPort): void;
21
21
  //# sourceMappingURL=case-routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"case-routes.d.ts","sourceRoot":"","sources":["../../../src/web/routes/case-routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAgE1C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA4D9C;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAE1E;AAyGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAquDxG"}
1
+ {"version":3,"file":"case-routes.d.ts","sourceRoot":"","sources":["../../../src/web/routes/case-routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAiE1C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA4D9C;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAE1E;AAgID,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GACxD,IAAI,CA2xDN"}
@@ -12,17 +12,19 @@ import { join, resolve, basename } from 'node:path';
12
12
  import { fileURLToPath } from 'node:url';
13
13
  import { homedir } from 'node:os';
14
14
  import { ApiErrorCode, createErrorResponse, getErrorMessage } from '../../types.js';
15
- import { CreateCaseSchema, CloneCaseSchema, ClonePreflightSchema, LinkCaseSchema, CaseOrderSchema, RemoteCaseLinkSchema, RemoteHostSchema, DockerCaseLinkSchema, DockerCaseAdoptSchema, DockerAdoptPreflightSchema, DockerBrowseSchema, DockerHostSchema, DockerExportSchema, DockerImportSchema, DockerQuickCreateSchema, } from '../schemas.js';
15
+ import { CreateCaseSchema, CloneCaseSchema, ClonePreflightSchema, LinkCaseSchema, CaseOrderSchema, CaseDefaultGroupSchema, RemoteCaseLinkSchema, RemoteHostSchema, DockerCaseLinkSchema, DockerCaseAdoptSchema, DockerAdoptPreflightSchema, DockerBrowseSchema, DockerHostSchema, DockerExportSchema, DockerImportSchema, DockerQuickCreateSchema, } from '../schemas.js';
16
16
  import { exportDockerCase, importDockerBundle, listDockerExports, exportBundleName } from '../../docker-export.js';
17
17
  import { cloneRepository, isGitAvailable, isSafeGitRef, parseGitRepositoryUrl, probeGitRemote, } from '../../git-clone.js';
18
18
  import { generateClaudeMd } from '../../templates/claude-md.js';
19
19
  import { prepareNewCasePath } from '../case-path.js';
20
- import { boundedPathExists, describeUnknownPath, probePath } from '../../utils/index.js';
20
+ import { boundedPathExists, describeUnknownPath, probePath, probePathKind } from '../../utils/index.js';
21
21
  import { readAgentCaseMarker } from '../../agent-case-marker.js';
22
22
  import { settingsWriteBlocker, writeHooksConfig } from '../../hooks-config.js';
23
23
  import { canAccessOwned, getAuthUser, isAdmin, isWorkingDirAllowed, ownerFor, requireAdmin, resolveCasesDir, SETTINGS_PATH, validatePathWithinBase, parseBody, readJsonConfig, } from '../route-helpers.js';
24
24
  import { isMultiUserMode } from '../../config/multiuser.js';
25
25
  import { SseEvent } from '../sse-events.js';
26
+ import { ownerLayoutKey } from '../../tab-layout-persistence.js';
27
+ import { TabLayoutValidationError } from '../../tab-layout.js';
26
28
  import { dataPath, getDataDir } from '../../config/instance.js';
27
29
  import { checkDockerAvailable, checkDockerImagePresent, checkDockerTmuxAvailable, ensureAgentBaseImage, DEFAULT_AGENT_IMAGE, dockerContainerName, dockerDisplayPath, probeAdoptableContainer, classifyAdoptContainerConflict, listDockerContainers, browseInContainer, dockerAdoptProbeModes, readDockerCases, readDockerHosts, removeDockerContainer, toSessionDocker, writeDockerCases, writeDockerHosts, } from '../../docker-hosts.js';
28
30
  import { buildDockerRemoveCommand } from '../../tmux-manager.js';
@@ -152,6 +154,29 @@ async function ensureCaseImage(broadcast, sessionDocker, name) {
152
154
  .catch((err) => broadcast(SseEvent.DockerImageBuildFailed, { name, image: sessionDocker.image, error: getErrorMessage(err) }));
153
155
  return { ok: true, imageBuilding: true };
154
156
  }
157
+ /**
158
+ * Is `name` a case the caller can see (the same rules as GET /api/cases and
159
+ * resolveCasePath): an owned remote or Docker case, a linked case (admin or
160
+ * single-user only), or a directory in the caller's own case space. Bounded:
161
+ * a case folder on a mount that stopped answering still counts as there, like
162
+ * the case list keeps listing it.
163
+ */
164
+ async function caseVisibleToCaller(name, req) {
165
+ if (!SAFE_CASE_NAME.test(name))
166
+ return false;
167
+ const user = getAuthUser(req);
168
+ if ((await readRemoteCases(CODEMAN_CONFIG_DIR)).some((c) => c.name === name && canAccessOwned(user, c.owner))) {
169
+ return true;
170
+ }
171
+ if ((await readDockerCases(CODEMAN_CONFIG_DIR)).some((c) => c.name === name && canAccessOwned(user, c.owner))) {
172
+ return true;
173
+ }
174
+ const linkedCases = await readLinkedCases();
175
+ if (linkedCases[name] && (!isMultiUserMode() || isAdmin(req)))
176
+ return (await probePath(linkedCases[name])) !== 'absent';
177
+ const kind = await probePathKind(join(resolveCasesDir(user), name));
178
+ return kind === 'directory' || kind === 'unknown';
179
+ }
155
180
  export function registerCaseRoutes(app, ctx) {
156
181
  // ═══════════════════════════════════════════════════════════════
157
182
  // Case CRUD (list, create, link, detail, fix-plan)
@@ -1299,6 +1324,20 @@ export function registerCaseRoutes(app, ctx) {
1299
1324
  app.delete('/api/cases/:name', async (req) => {
1300
1325
  const { name } = req.params;
1301
1326
  const user = getAuthUser(req);
1327
+ // The caller's default session group for this case goes with it (best-effort:
1328
+ // a stale value is ignored at creation anyway).
1329
+ // An admin deleting another user's remote/Docker case clears that owner's too.
1330
+ const forgetCaseDefault = async (caseOwner) => {
1331
+ const owners = new Set([ownerLayoutKey(ownerFor(req)), ...(caseOwner ? [ownerLayoutKey(caseOwner)] : [])]);
1332
+ for (const owner of owners) {
1333
+ try {
1334
+ await ctx.tabLayouts.forgetCaseDefaultGroup(owner, name);
1335
+ }
1336
+ catch {
1337
+ /* never blocks the delete */
1338
+ }
1339
+ }
1340
+ };
1302
1341
  if (!validatePathWithinBase(name, resolveCasesDir(user))) {
1303
1342
  return createErrorResponse(ApiErrorCode.INVALID_INPUT, 'Invalid case name');
1304
1343
  }
@@ -1306,9 +1345,11 @@ export function registerCaseRoutes(app, ctx) {
1306
1345
  // docker case is skipped so control falls through to the caller's own local delete.
1307
1346
  // canAccessOwned is all-true for admins/single-user, so flag-OFF stays byte-identical.
1308
1347
  const remoteCases = await readRemoteCases(CODEMAN_CONFIG_DIR);
1309
- if (remoteCases.some((item) => item.name === name && canAccessOwned(user, item.owner))) {
1348
+ const remoteCase = remoteCases.find((item) => item.name === name && canAccessOwned(user, item.owner));
1349
+ if (remoteCase) {
1310
1350
  await writeRemoteCases(CODEMAN_CONFIG_DIR, remoteCases.filter((item) => !(item.name === name && canAccessOwned(user, item.owner))));
1311
1351
  ctx.broadcast(SseEvent.CaseDeleted, { name, type: 'remote-unlinked' });
1352
+ await forgetCaseDefault(remoteCase.owner);
1312
1353
  return { success: true, data: { name } };
1313
1354
  }
1314
1355
  const dockerCases = await readDockerCases(CODEMAN_CONFIG_DIR);
@@ -1337,6 +1378,7 @@ export function registerCaseRoutes(app, ctx) {
1337
1378
  .catch(() => { });
1338
1379
  }
1339
1380
  ctx.broadcast(SseEvent.CaseDeleted, { name, type: 'docker-unlinked' });
1381
+ await forgetCaseDefault(dockerCase.owner);
1340
1382
  return { success: true, data: { name } };
1341
1383
  }
1342
1384
  // Check linked cases first — unlink only, don't delete the actual directory.
@@ -1348,6 +1390,7 @@ export function registerCaseRoutes(app, ctx) {
1348
1390
  try {
1349
1391
  await fs.writeFile(LINKED_CASES_FILE, JSON.stringify(linkedCases, null, 2));
1350
1392
  ctx.broadcast(SseEvent.CaseDeleted, { name, type: 'unlinked' });
1393
+ await forgetCaseDefault();
1351
1394
  return { success: true, data: { name } };
1352
1395
  }
1353
1396
  catch (err) {
@@ -1362,12 +1405,47 @@ export function registerCaseRoutes(app, ctx) {
1362
1405
  try {
1363
1406
  await fs.rm(casePath, { recursive: true, force: true });
1364
1407
  ctx.broadcast(SseEvent.CaseDeleted, { name, type: 'deleted' });
1408
+ await forgetCaseDefault();
1365
1409
  return { success: true, data: { name } };
1366
1410
  }
1367
1411
  catch (err) {
1368
1412
  return createErrorResponse(ApiErrorCode.OPERATION_FAILED, getErrorMessage(err));
1369
1413
  }
1370
1414
  });
1415
+ // ========== Default session group ==========
1416
+ /**
1417
+ * The tab group new sessions of this case land in when the create request names
1418
+ * no group and no parent places them. Scoped to the caller's own tab layout: the
1419
+ * options are their groups, and a stored id that is no longer one of them reads
1420
+ * as Ungrouped (null); the read writes nothing (the next creation for the case
1421
+ * forgets it). Not admin-gated in multi-user mode: the
1422
+ * value is per owner (like the layout it points into), never server-wide.
1423
+ */
1424
+ app.get('/api/cases/:name/default-group', async (req, reply) => {
1425
+ const { name } = req.params;
1426
+ if (!(await caseVisibleToCaller(name, req))) {
1427
+ return reply.code(404).send(createErrorResponse(ApiErrorCode.NOT_FOUND, `Case "${name}" not found`));
1428
+ }
1429
+ const view = await ctx.tabLayouts.caseDefaultGroup(ownerLayoutKey(ownerFor(req)), name);
1430
+ return { success: true, data: { caseName: name, ...view } };
1431
+ });
1432
+ app.put('/api/cases/:name/default-group', async (req, reply) => {
1433
+ const { name } = req.params;
1434
+ const { groupId } = parseBody(CaseDefaultGroupSchema, req.body, 'Invalid default group');
1435
+ if (!(await caseVisibleToCaller(name, req))) {
1436
+ return reply.code(404).send(createErrorResponse(ApiErrorCode.NOT_FOUND, `Case "${name}" not found`));
1437
+ }
1438
+ try {
1439
+ const view = await ctx.tabLayouts.setCaseDefaultGroup(ownerLayoutKey(ownerFor(req)), name, groupId);
1440
+ return { success: true, data: { caseName: name, ...view } };
1441
+ }
1442
+ catch (err) {
1443
+ if (err instanceof TabLayoutValidationError) {
1444
+ return reply.code(400).send(createErrorResponse(ApiErrorCode.INVALID_INPUT, 'That tab group does not exist'));
1445
+ }
1446
+ throw err;
1447
+ }
1448
+ });
1371
1449
  // ========== Reorder Cases ==========
1372
1450
  app.put('/api/cases/order', async (req, reply) => {
1373
1451
  // `caseOrder` is ONE list in the server-wide settings.json, read by every user's