aicodeman 1.40.0 → 1.41.1

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 (351) hide show
  1. package/README.md +81 -13
  2. package/dist/attachment-registry.d.ts +2 -0
  3. package/dist/attachment-registry.d.ts.map +1 -1
  4. package/dist/attachment-registry.js +14 -3
  5. package/dist/attachment-registry.js.map +1 -1
  6. package/dist/cli-agent.d.ts +227 -0
  7. package/dist/cli-agent.d.ts.map +1 -0
  8. package/dist/cli-agent.js +771 -0
  9. package/dist/cli-agent.js.map +1 -0
  10. package/dist/cli.d.ts +25 -1
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +103 -41
  13. package/dist/cli.js.map +1 -1
  14. package/dist/codeman-credentials.d.ts +27 -0
  15. package/dist/codeman-credentials.d.ts.map +1 -0
  16. package/dist/codeman-credentials.js +66 -0
  17. package/dist/codeman-credentials.js.map +1 -0
  18. package/dist/config/buffer-limits.d.ts +9 -0
  19. package/dist/config/buffer-limits.d.ts.map +1 -1
  20. package/dist/config/buffer-limits.js +9 -0
  21. package/dist/config/buffer-limits.js.map +1 -1
  22. package/dist/config/cli-registry/schema.d.ts +10 -0
  23. package/dist/config/cli-registry/schema.d.ts.map +1 -1
  24. package/dist/config/cli-registry/schema.js +15 -0
  25. package/dist/config/cli-registry/schema.js.map +1 -1
  26. package/dist/config/cli-registry/stock.d.ts.map +1 -1
  27. package/dist/config/cli-registry/stock.js +47 -0
  28. package/dist/config/cli-registry/stock.js.map +1 -1
  29. package/dist/config/cli-registry/types.d.ts +47 -1
  30. package/dist/config/cli-registry/types.d.ts.map +1 -1
  31. package/dist/folder-listing.d.ts +94 -0
  32. package/dist/folder-listing.d.ts.map +1 -0
  33. package/dist/folder-listing.js +241 -0
  34. package/dist/folder-listing.js.map +1 -0
  35. package/dist/git-clone.d.ts.map +1 -1
  36. package/dist/git-clone.js +4 -0
  37. package/dist/git-clone.js.map +1 -1
  38. package/dist/hooks-config.d.ts +36 -16
  39. package/dist/hooks-config.d.ts.map +1 -1
  40. package/dist/hooks-config.js +45 -20
  41. package/dist/hooks-config.js.map +1 -1
  42. package/dist/html-view-capabilities.d.ts +54 -0
  43. package/dist/html-view-capabilities.d.ts.map +1 -0
  44. package/dist/html-view-capabilities.js +103 -0
  45. package/dist/html-view-capabilities.js.map +1 -0
  46. package/dist/image-watcher.d.ts.map +1 -1
  47. package/dist/image-watcher.js +6 -2
  48. package/dist/image-watcher.js.map +1 -1
  49. package/dist/mcp-server.d.ts +114 -0
  50. package/dist/mcp-server.d.ts.map +1 -0
  51. package/dist/mcp-server.js +917 -0
  52. package/dist/mcp-server.js.map +1 -0
  53. package/dist/mcp-sync-targets.d.ts +34 -0
  54. package/dist/mcp-sync-targets.d.ts.map +1 -0
  55. package/dist/mcp-sync-targets.js +55 -0
  56. package/dist/mcp-sync-targets.js.map +1 -0
  57. package/dist/mcp-sync.d.ts +7 -1
  58. package/dist/mcp-sync.d.ts.map +1 -1
  59. package/dist/mcp-sync.js +113 -6
  60. package/dist/mcp-sync.js.map +1 -1
  61. package/dist/mux-interface.d.ts +36 -1
  62. package/dist/mux-interface.d.ts.map +1 -1
  63. package/dist/remote-files.d.ts +37 -0
  64. package/dist/remote-files.d.ts.map +1 -1
  65. package/dist/remote-files.js +103 -0
  66. package/dist/remote-files.js.map +1 -1
  67. package/dist/remote-pane-history.d.ts +103 -0
  68. package/dist/remote-pane-history.d.ts.map +1 -0
  69. package/dist/remote-pane-history.js +258 -0
  70. package/dist/remote-pane-history.js.map +1 -0
  71. package/dist/remote-ssh-limiter.d.ts +16 -3
  72. package/dist/remote-ssh-limiter.d.ts.map +1 -1
  73. package/dist/remote-ssh-limiter.js +37 -6
  74. package/dist/remote-ssh-limiter.js.map +1 -1
  75. package/dist/session.d.ts +29 -1
  76. package/dist/session.d.ts.map +1 -1
  77. package/dist/session.js +63 -4
  78. package/dist/session.js.map +1 -1
  79. package/dist/subagent-watcher.d.ts.map +1 -1
  80. package/dist/subagent-watcher.js +29 -6
  81. package/dist/subagent-watcher.js.map +1 -1
  82. package/dist/tab-layout-legacy-order.d.ts.map +1 -1
  83. package/dist/tab-layout-legacy-order.js +72 -13
  84. package/dist/tab-layout-legacy-order.js.map +1 -1
  85. package/dist/tab-layout-service.d.ts +33 -2
  86. package/dist/tab-layout-service.d.ts.map +1 -1
  87. package/dist/tab-layout-service.js +102 -7
  88. package/dist/tab-layout-service.js.map +1 -1
  89. package/dist/tab-layout.d.ts +9 -0
  90. package/dist/tab-layout.d.ts.map +1 -1
  91. package/dist/tab-layout.js +15 -2
  92. package/dist/tab-layout.js.map +1 -1
  93. package/dist/templates/case-template.md +2 -0
  94. package/dist/tmux-manager.d.ts +76 -2
  95. package/dist/tmux-manager.d.ts.map +1 -1
  96. package/dist/tmux-manager.js +216 -40
  97. package/dist/tmux-manager.js.map +1 -1
  98. package/dist/tui/tui-client.d.ts +3 -17
  99. package/dist/tui/tui-client.d.ts.map +1 -1
  100. package/dist/tui/tui-client.js +3 -44
  101. package/dist/tui/tui-client.js.map +1 -1
  102. package/dist/types/session.d.ts +53 -0
  103. package/dist/types/session.d.ts.map +1 -1
  104. package/dist/types/session.js.map +1 -1
  105. package/dist/usage-telemetry.d.ts +44 -7
  106. package/dist/usage-telemetry.d.ts.map +1 -1
  107. package/dist/usage-telemetry.js +72 -7
  108. package/dist/usage-telemetry.js.map +1 -1
  109. package/dist/utils/index.d.ts +1 -0
  110. package/dist/utils/index.d.ts.map +1 -1
  111. package/dist/utils/index.js +1 -0
  112. package/dist/utils/index.js.map +1 -1
  113. package/dist/utils/process-exit-wait.d.ts +40 -0
  114. package/dist/utils/process-exit-wait.d.ts.map +1 -0
  115. package/dist/utils/process-exit-wait.js +68 -0
  116. package/dist/utils/process-exit-wait.js.map +1 -0
  117. package/dist/web/approval-inbox.d.ts +12 -0
  118. package/dist/web/approval-inbox.d.ts.map +1 -1
  119. package/dist/web/approval-inbox.js +1 -0
  120. package/dist/web/approval-inbox.js.map +1 -1
  121. package/dist/web/middleware/auth.d.ts.map +1 -1
  122. package/dist/web/middleware/auth.js +33 -0
  123. package/dist/web/middleware/auth.js.map +1 -1
  124. package/dist/web/paste-image-gc.d.ts +46 -6
  125. package/dist/web/paste-image-gc.d.ts.map +1 -1
  126. package/dist/web/paste-image-gc.js +106 -32
  127. package/dist/web/paste-image-gc.js.map +1 -1
  128. package/dist/web/ports/session-port.d.ts +8 -1
  129. package/dist/web/ports/session-port.d.ts.map +1 -1
  130. package/dist/web/public/admin-ui.js.gz +0 -0
  131. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  132. package/dist/web/public/app.24689381.js +43 -0
  133. package/dist/web/public/app.24689381.js.br +0 -0
  134. package/dist/web/public/app.24689381.js.gz +0 -0
  135. package/dist/web/public/approvals-ui.js +4 -0
  136. package/dist/web/public/approvals-ui.js.br +0 -0
  137. package/dist/web/public/approvals-ui.js.gz +0 -0
  138. package/dist/web/public/{constants.c0f8f9de.js → constants.17d77b65.js} +690 -35
  139. package/dist/web/public/constants.17d77b65.js.br +0 -0
  140. package/dist/web/public/constants.17d77b65.js.gz +0 -0
  141. package/dist/web/public/cron-ui.js.gz +0 -0
  142. package/dist/web/public/entrance-animations.js +490 -43
  143. package/dist/web/public/entrance-animations.js.br +0 -0
  144. package/dist/web/public/entrance-animations.js.gz +0 -0
  145. package/dist/web/public/gesture/gesture-codeman.js +112 -6
  146. package/dist/web/public/git-status-ui.js.gz +0 -0
  147. package/dist/web/public/home-sessions.js +2 -1
  148. package/dist/web/public/home-sessions.js.br +0 -0
  149. package/dist/web/public/home-sessions.js.gz +0 -0
  150. package/dist/web/public/host-wake-ui.js.gz +0 -0
  151. package/dist/web/public/i18n.9afd8e4d.js +2 -0
  152. package/dist/web/public/i18n.9afd8e4d.js.br +0 -0
  153. package/dist/web/public/i18n.9afd8e4d.js.gz +0 -0
  154. package/dist/web/public/image-input.9ed1d0d2.js +453 -0
  155. package/dist/web/public/image-input.9ed1d0d2.js.br +0 -0
  156. package/dist/web/public/image-input.9ed1d0d2.js.gz +0 -0
  157. package/dist/web/public/index.html +223 -46
  158. package/dist/web/public/index.html.br +0 -0
  159. package/dist/web/public/index.html.gz +0 -0
  160. package/dist/web/public/input-cjk.8bc46081.js.gz +0 -0
  161. package/dist/web/public/{keyboard-accessory.c1e7c7b7.js → keyboard-accessory.c458eea8.js} +115 -35
  162. package/dist/web/public/keyboard-accessory.c458eea8.js.br +0 -0
  163. package/dist/web/public/keyboard-accessory.c458eea8.js.gz +0 -0
  164. package/dist/web/public/mobile-handlers.0ef9c311.js.gz +0 -0
  165. package/dist/web/public/mobile-ime-preview.2dbaf262.js.gz +0 -0
  166. package/dist/web/public/mobile-overview.js +11 -2
  167. package/dist/web/public/mobile-overview.js.br +0 -0
  168. package/dist/web/public/mobile-overview.js.gz +0 -0
  169. package/dist/web/public/mobile.2dff1580.css +1 -0
  170. package/dist/web/public/mobile.2dff1580.css.br +0 -0
  171. package/dist/web/public/mobile.2dff1580.css.gz +0 -0
  172. package/dist/web/public/{notification-manager.50bb87d8.js → notification-manager.feb82c04.js} +19 -2
  173. package/dist/web/public/notification-manager.feb82c04.js.br +0 -0
  174. package/dist/web/public/notification-manager.feb82c04.js.gz +0 -0
  175. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  176. package/dist/web/public/{panels-ui.4735dfc2.js → panels-ui.73ec0137.js} +87 -87
  177. package/dist/web/public/panels-ui.73ec0137.js.br +0 -0
  178. package/dist/web/public/panels-ui.73ec0137.js.gz +0 -0
  179. package/dist/web/public/ralph-panel.b350e2ef.js.gz +0 -0
  180. package/dist/web/public/ralph-wizard.b6c0dd19.js.gz +0 -0
  181. package/dist/web/public/readmymind-ui.js.gz +0 -0
  182. package/dist/web/public/reboot-restore-ui.js.gz +0 -0
  183. package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
  184. package/dist/web/public/sanitize-html.e7147e76.js.gz +0 -0
  185. package/dist/web/public/session-lineage.js.gz +0 -0
  186. package/dist/web/public/{session-ui.f731602c.js → session-ui.dbc6819b.js} +33 -33
  187. package/dist/web/public/session-ui.dbc6819b.js.br +0 -0
  188. package/dist/web/public/session-ui.dbc6819b.js.gz +0 -0
  189. package/dist/web/public/settings-ui.81ac264e.js +97 -0
  190. package/dist/web/public/settings-ui.81ac264e.js.br +0 -0
  191. package/dist/web/public/settings-ui.81ac264e.js.gz +0 -0
  192. package/dist/web/public/spreadsheet-preview-worker.js +11 -0
  193. package/dist/web/public/spreadsheet-preview-worker.js.br +0 -0
  194. package/dist/web/public/spreadsheet-preview-worker.js.gz +0 -0
  195. package/dist/web/public/{spreadsheet-preview.af82fa2f.js → spreadsheet-preview.75c751de.js} +1 -1
  196. package/dist/web/public/spreadsheet-preview.75c751de.js.br +0 -0
  197. package/dist/web/public/spreadsheet-preview.75c751de.js.gz +0 -0
  198. package/dist/web/public/spreadsheet-xlsx-core.js +110 -0
  199. package/dist/web/public/spreadsheet-xlsx-core.js.br +0 -0
  200. package/dist/web/public/spreadsheet-xlsx-core.js.gz +0 -0
  201. package/dist/web/public/styles.900a28e4.css +1 -0
  202. package/dist/web/public/styles.900a28e4.css.br +0 -0
  203. package/dist/web/public/styles.900a28e4.css.gz +0 -0
  204. package/dist/web/public/{subagent-windows.e6ca799f.js → subagent-windows.07277a58.js} +7 -5
  205. package/dist/web/public/subagent-windows.07277a58.js.br +0 -0
  206. package/dist/web/public/subagent-windows.07277a58.js.gz +0 -0
  207. package/dist/web/public/sw.js +6 -2
  208. package/dist/web/public/sw.js.br +0 -0
  209. package/dist/web/public/sw.js.gz +0 -0
  210. package/dist/web/public/tab-layout-browser.2d6189f7.js +1 -0
  211. package/dist/web/public/tab-layout-browser.2d6189f7.js.br +0 -0
  212. package/dist/web/public/tab-layout-browser.2d6189f7.js.gz +0 -0
  213. package/dist/web/public/{tab-rail-resize.a5867793.js → tab-rail-resize.7157e0bd.js} +1 -1
  214. package/dist/web/public/tab-rail-resize.7157e0bd.js.br +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 +135 -38
  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.858f5da5.js +2 -0
  222. package/dist/web/public/terminal-ui.858f5da5.js.br +0 -0
  223. package/dist/web/public/terminal-ui.858f5da5.js.gz +0 -0
  224. package/dist/web/public/tile-grid.js +769 -137
  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 +9 -6
  229. package/dist/web/public/ultracode-windows.js.br +0 -0
  230. package/dist/web/public/ultracode-windows.js.gz +0 -0
  231. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  232. package/dist/web/public/vendor/exceljs.min.js.gz +0 -0
  233. package/dist/web/public/vendor/fflate.min.js.gz +0 -0
  234. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  235. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  236. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  237. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  238. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  239. package/dist/web/public/vendor/xterm-predictive-echo.ae5e3d5d.js.gz +0 -0
  240. package/dist/web/public/vendor/xterm-zerolag-input.0b69623c.js +4 -0
  241. package/dist/web/public/vendor/xterm-zerolag-input.0b69623c.js.br +0 -0
  242. package/dist/web/public/vendor/xterm-zerolag-input.0b69623c.js.gz +0 -0
  243. package/dist/web/public/vendor/xterm.css.gz +0 -0
  244. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  245. package/dist/web/public/voice-input.2342c37b.js.gz +0 -0
  246. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  247. package/dist/web/public/webview-tabs.js +12 -0
  248. package/dist/web/public/webview-tabs.js.br +0 -0
  249. package/dist/web/public/webview-tabs.js.gz +0 -0
  250. package/dist/web/route-helpers.d.ts +8 -0
  251. package/dist/web/route-helpers.d.ts.map +1 -1
  252. package/dist/web/route-helpers.js +8 -0
  253. package/dist/web/route-helpers.js.map +1 -1
  254. package/dist/web/routes/admin-routes.d.ts.map +1 -1
  255. package/dist/web/routes/admin-routes.js +4 -1
  256. package/dist/web/routes/admin-routes.js.map +1 -1
  257. package/dist/web/routes/approval-routes.d.ts.map +1 -1
  258. package/dist/web/routes/approval-routes.js +6 -8
  259. package/dist/web/routes/approval-routes.js.map +1 -1
  260. package/dist/web/routes/case-routes.js +1 -1
  261. package/dist/web/routes/case-routes.js.map +1 -1
  262. package/dist/web/routes/cli-registry-routes.d.ts +23 -4
  263. package/dist/web/routes/cli-registry-routes.d.ts.map +1 -1
  264. package/dist/web/routes/cli-registry-routes.js +92 -7
  265. package/dist/web/routes/cli-registry-routes.js.map +1 -1
  266. package/dist/web/routes/file-routes.d.ts +46 -1
  267. package/dist/web/routes/file-routes.d.ts.map +1 -1
  268. package/dist/web/routes/file-routes.js +214 -27
  269. package/dist/web/routes/file-routes.js.map +1 -1
  270. package/dist/web/routes/hook-event-routes.d.ts.map +1 -1
  271. package/dist/web/routes/hook-event-routes.js +8 -1
  272. package/dist/web/routes/hook-event-routes.js.map +1 -1
  273. package/dist/web/routes/html-view-routes.d.ts +60 -0
  274. package/dist/web/routes/html-view-routes.d.ts.map +1 -0
  275. package/dist/web/routes/html-view-routes.js +288 -0
  276. package/dist/web/routes/html-view-routes.js.map +1 -0
  277. package/dist/web/routes/index.d.ts +1 -0
  278. package/dist/web/routes/index.d.ts.map +1 -1
  279. package/dist/web/routes/index.js +1 -0
  280. package/dist/web/routes/index.js.map +1 -1
  281. package/dist/web/routes/mcp-sync-routes.d.ts +7 -2
  282. package/dist/web/routes/mcp-sync-routes.d.ts.map +1 -1
  283. package/dist/web/routes/mcp-sync-routes.js +10 -3
  284. package/dist/web/routes/mcp-sync-routes.js.map +1 -1
  285. package/dist/web/routes/reboot-restore-routes.js +3 -3
  286. package/dist/web/routes/reboot-restore-routes.js.map +1 -1
  287. package/dist/web/routes/session-routes.d.ts +1 -0
  288. package/dist/web/routes/session-routes.d.ts.map +1 -1
  289. package/dist/web/routes/session-routes.js +345 -90
  290. package/dist/web/routes/session-routes.js.map +1 -1
  291. package/dist/web/routes/status-telemetry-routes.d.ts.map +1 -1
  292. package/dist/web/routes/status-telemetry-routes.js +16 -2
  293. package/dist/web/routes/status-telemetry-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 +74 -0
  297. package/dist/web/schemas.js.map +1 -1
  298. package/dist/web/server.d.ts +7 -2
  299. package/dist/web/server.d.ts.map +1 -1
  300. package/dist/web/server.js +77 -24
  301. package/dist/web/server.js.map +1 -1
  302. package/dist/web/sse-events.d.ts +5 -2
  303. package/dist/web/sse-events.d.ts.map +1 -1
  304. package/dist/web/sse-events.js +5 -2
  305. package/dist/web/sse-events.js.map +1 -1
  306. package/package.json +5 -4
  307. package/skills/codeman/SKILL.md +30 -7
  308. package/README.zh-CN.md +0 -1147
  309. package/dist/web/public/app.abadc970.js +0 -43
  310. package/dist/web/public/app.abadc970.js.br +0 -0
  311. package/dist/web/public/app.abadc970.js.gz +0 -0
  312. package/dist/web/public/constants.c0f8f9de.js.br +0 -0
  313. package/dist/web/public/constants.c0f8f9de.js.gz +0 -0
  314. package/dist/web/public/i18n.a31747a9.js +0 -2
  315. package/dist/web/public/i18n.a31747a9.js.br +0 -0
  316. package/dist/web/public/i18n.a31747a9.js.gz +0 -0
  317. package/dist/web/public/image-input.898a538b.js +0 -281
  318. package/dist/web/public/image-input.898a538b.js.br +0 -0
  319. package/dist/web/public/image-input.898a538b.js.gz +0 -0
  320. package/dist/web/public/keyboard-accessory.c1e7c7b7.js.br +0 -0
  321. package/dist/web/public/keyboard-accessory.c1e7c7b7.js.gz +0 -0
  322. package/dist/web/public/mobile.111b187d.css +0 -1
  323. package/dist/web/public/mobile.111b187d.css.br +0 -0
  324. package/dist/web/public/mobile.111b187d.css.gz +0 -0
  325. package/dist/web/public/notification-manager.50bb87d8.js.br +0 -0
  326. package/dist/web/public/notification-manager.50bb87d8.js.gz +0 -0
  327. package/dist/web/public/panels-ui.4735dfc2.js.br +0 -0
  328. package/dist/web/public/panels-ui.4735dfc2.js.gz +0 -0
  329. package/dist/web/public/session-ui.f731602c.js.br +0 -0
  330. package/dist/web/public/session-ui.f731602c.js.gz +0 -0
  331. package/dist/web/public/settings-ui.a97ab16f.js +0 -97
  332. package/dist/web/public/settings-ui.a97ab16f.js.br +0 -0
  333. package/dist/web/public/settings-ui.a97ab16f.js.gz +0 -0
  334. package/dist/web/public/spreadsheet-preview.af82fa2f.js.br +0 -0
  335. package/dist/web/public/spreadsheet-preview.af82fa2f.js.gz +0 -0
  336. package/dist/web/public/styles.8ee12666.css +0 -1
  337. package/dist/web/public/styles.8ee12666.css.br +0 -0
  338. package/dist/web/public/styles.8ee12666.css.gz +0 -0
  339. package/dist/web/public/subagent-windows.e6ca799f.js.br +0 -0
  340. package/dist/web/public/subagent-windows.e6ca799f.js.gz +0 -0
  341. package/dist/web/public/tab-layout-browser.065fcba4.js +0 -1
  342. package/dist/web/public/tab-layout-browser.065fcba4.js.br +0 -0
  343. package/dist/web/public/tab-layout-browser.065fcba4.js.gz +0 -0
  344. package/dist/web/public/tab-rail-resize.a5867793.js.br +0 -0
  345. package/dist/web/public/tab-rail-resize.a5867793.js.gz +0 -0
  346. package/dist/web/public/terminal-ui.5059b30e.js +0 -2
  347. package/dist/web/public/terminal-ui.5059b30e.js.br +0 -0
  348. package/dist/web/public/terminal-ui.5059b30e.js.gz +0 -0
  349. package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js +0 -4
  350. package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js.br +0 -0
  351. package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js.gz +0 -0
@@ -0,0 +1,288 @@
1
+ /**
2
+ * @fileoverview Render a local HTML file (an agent's report, a generated page) as a
3
+ * page instead of as source text.
4
+ *
5
+ * Routes:
6
+ * - `POST /api/sessions/:id/html-view` (authenticated) — `{ path }` of an `.html` file;
7
+ * returns `{ url }`, an `/html-view/<cap>/<file>` URL for that file.
8
+ * - `GET /html-view/:cap/*` (capability) — the HTML file and its sibling assets.
9
+ *
10
+ * ⚠️ Every response carries `Content-Security-Policy: sandbox ...` WITHOUT
11
+ * `allow-same-origin`, so the page runs in an opaque origin whether it is framed or
12
+ * opened as a top-level tab: it can run its own scripts but cannot read the Codeman
13
+ * document, its cookies or its API. That is what makes rendering safe at all; see
14
+ * html-view-capabilities.ts for why the route authenticates on a capability.
15
+ * Network access is deliberately OPEN (owner decision, see {@link HTML_VIEW_CSP}).
16
+ *
17
+ * Path policy: the HTML file itself is admitted like the file preview admits a file
18
+ * (inside the session workspace, or outside it under the attachment guard), and the
19
+ * capability then serves ONLY the files in that file's own directory tree, filtered
20
+ * by the same blocklist plus an asset-extension allowlist and a no-dotfile rule, so
21
+ * a page cannot use its own directory to pull a `.env` out through the browser.
22
+ * Because that tree is served recursively, minting is refused for an HTML file in a
23
+ * hidden directory or directly in a broad root (`/`, home, `/tmp`, `/var/tmp` and
24
+ * `$TMPDIR`, the cases and user-space roots, a drive's mount point) or in a
25
+ * directory above one, see {@link isBroadHtmlViewRoot}.
26
+ */
27
+ import { realpathSync } from 'node:fs';
28
+ import fs from 'node:fs/promises';
29
+ import { homedir, tmpdir } from 'node:os';
30
+ import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from 'node:path';
31
+ import { ApiErrorCode, createErrorResponse } from '../../types.js';
32
+ import { isBlockedAttachmentPath, isUnderTree, loadAttachmentGuardConfig } from '../../config/attachment-guard.js';
33
+ import { HTML_VIEW_PREFIX, htmlViewCapabilities } from '../../html-view-capabilities.js';
34
+ import { CASES_DIR, findSessionOrFail, ownerFor, parseBody, validateSessionFilePath } from '../route-helpers.js';
35
+ import { HtmlViewOpenSchema } from '../schemas.js';
36
+ import { DOCKER_HOME_PATH_ERROR, localFileSource, sendFileBody } from './file-routes.js';
37
+ import { getUserSpacesDir } from '../../config/multiuser.js';
38
+ import { exceedsDownloadLimit } from '../../config/buffer-limits.js';
39
+ /** Extensions that open as a rendered page. */
40
+ export const HTML_VIEW_EXTENSIONS = new Set(['html', 'htm']);
41
+ /** What a rendered page may load from its own directory, with the type it is served as. */
42
+ const ASSET_TYPES = {
43
+ html: 'text/html; charset=utf-8',
44
+ htm: 'text/html; charset=utf-8',
45
+ css: 'text/css; charset=utf-8',
46
+ js: 'text/javascript; charset=utf-8',
47
+ mjs: 'text/javascript; charset=utf-8',
48
+ json: 'application/json; charset=utf-8',
49
+ map: 'application/json; charset=utf-8',
50
+ txt: 'text/plain; charset=utf-8',
51
+ csv: 'text/csv; charset=utf-8',
52
+ md: 'text/plain; charset=utf-8',
53
+ svg: 'image/svg+xml',
54
+ png: 'image/png',
55
+ jpg: 'image/jpeg',
56
+ jpeg: 'image/jpeg',
57
+ gif: 'image/gif',
58
+ webp: 'image/webp',
59
+ avif: 'image/avif',
60
+ ico: 'image/x-icon',
61
+ bmp: 'image/bmp',
62
+ woff: 'font/woff',
63
+ woff2: 'font/woff2',
64
+ ttf: 'font/ttf',
65
+ otf: 'font/otf',
66
+ wasm: 'application/wasm',
67
+ mp4: 'video/mp4',
68
+ webm: 'video/webm',
69
+ mp3: 'audio/mpeg',
70
+ wav: 'audio/wav',
71
+ pdf: 'application/pdf',
72
+ };
73
+ /**
74
+ * The whole Content-Security-Policy every response is served under: the `sandbox`
75
+ * directive and nothing else. It REPLACES Codeman's own policy (`default-src 'self'`
76
+ * and the rest, set earlier by registerSecurityHeaders). No `allow-same-origin`:
77
+ * that one token is the difference between "a page" and "a page that can drive
78
+ * Codeman".
79
+ *
80
+ * ⚠️ Network access is OPEN, by the owner's decision (2026-10-13, #547): a rendered
81
+ * page behaves like a file opened from disk in a browser, so there is deliberately
82
+ * no fetch directive (`default-src`, `script-src`, `connect-src`, ...). It loads
83
+ * scripts, styles, fonts, images and media from anywhere (an agent's dashboard
84
+ * pulling Chart.js from a CDN) and may fetch, XHR, open WebSockets, send beacons and
85
+ * post forms anywhere. What confines it is the opaque origin (no Codeman cookies, no
86
+ * Codeman API) and the capability serving only its own folder. Do not add a fetch
87
+ * directive, or `allow-same-origin`, without the owner. test/routes/html-view-routes.test.ts
88
+ * pins the exact value.
89
+ */
90
+ export const HTML_VIEW_CSP = 'sandbox allow-scripts allow-forms allow-popups allow-modals allow-downloads';
91
+ function extensionOf(path) {
92
+ return extname(path).toLowerCase().replace(/^\./, '');
93
+ }
94
+ /** realpath when the path exists, else the plain resolved path. */
95
+ function canonical(path) {
96
+ try {
97
+ return realpathSync(path);
98
+ }
99
+ catch {
100
+ return resolve(path);
101
+ }
102
+ }
103
+ /**
104
+ * The shared temp dirs, named literally: `os.tmpdir()` is `$TMPDIR` whenever that
105
+ * is set, and macOS sets it in every terminal session (`/var/folders/.../T`), so
106
+ * a server started from one would otherwise never see `/tmp` as broad.
107
+ */
108
+ const SHARED_TEMP_DIRS = ['/tmp', '/var/tmp'];
109
+ /**
110
+ * Where drives are mounted. A page at a drive's root (WSL's `/mnt/d/report.html`)
111
+ * would be handed the whole drive, so the mount parent and each mount point in it
112
+ * count as broad.
113
+ */
114
+ const MOUNT_PARENTS = ['/mnt', '/media', '/Volumes'];
115
+ /**
116
+ * Whether a directory is too broad to hand to a page as its asset root. The
117
+ * capability serves the HTML file's directory RECURSIVELY to the page's own
118
+ * scripts, so `/tmp/report.html` would expose every other session's scratch
119
+ * output under `/tmp`, and `~/report.html` the home tree. Refuse those roots
120
+ * (and the cases / user-space roots, which hold every workspace) outright, and
121
+ * any directory ABOVE one of them (`/home`, `/Users`, macOS's `/private`), since
122
+ * serving it recursively serves the root below it too.
123
+ */
124
+ export function isBroadHtmlViewRoot(dir) {
125
+ const target = canonical(dir);
126
+ const userSpaces = canonical(getUserSpacesDir());
127
+ // canonical() also maps the literal temp dirs to macOS's `/private/tmp` and `/private/var/tmp`.
128
+ const broad = [sep, homedir(), tmpdir(), ...SHARED_TEMP_DIRS, CASES_DIR, userSpaces].map(canonical);
129
+ if (broad.some((root) => isUnderTree(root, target)))
130
+ return true;
131
+ for (const parent of MOUNT_PARENTS.map(canonical)) {
132
+ if (target === parent || dirname(target) === parent)
133
+ return true;
134
+ }
135
+ // A user's own space (`<spaces>/<user>`) and its cases dir hold every workspace of that user.
136
+ if (dirname(target) === userSpaces)
137
+ return true;
138
+ return basename(target) === 'cases' && dirname(dirname(target)) === userSpaces;
139
+ }
140
+ export function registerHtmlViewRoutes(app, ctx) {
141
+ app.post('/api/sessions/:id/html-view', async (req, reply) => {
142
+ const { id } = req.params;
143
+ const session = findSessionOrFail(ctx, id, req);
144
+ const body = parseBody(HtmlViewOpenSchema, req.body ?? {});
145
+ if (session.remote) {
146
+ reply
147
+ .code(400)
148
+ .send(createErrorResponse(ApiErrorCode.INVALID_INPUT, 'HTML pages in a remote (SSH) case cannot be rendered'));
149
+ return;
150
+ }
151
+ if (!HTML_VIEW_EXTENSIONS.has(extensionOf(body.path))) {
152
+ reply.code(400).send(createErrorResponse(ApiErrorCode.INVALID_INPUT, 'Not an HTML file'));
153
+ return;
154
+ }
155
+ // A `~/` link (the terminal passes a home-relative path through, since only
156
+ // the server knows the home) is this host's home, as the attachment route
157
+ // expands it. A Docker case's `~` is the container's, so it is refused there.
158
+ let requestedPath = body.path;
159
+ if (requestedPath.startsWith('~/')) {
160
+ if (session.docker) {
161
+ reply.code(400).send(createErrorResponse(ApiErrorCode.INVALID_INPUT, DOCKER_HOME_PATH_ERROR));
162
+ return;
163
+ }
164
+ requestedPath = join(homedir(), requestedPath.slice(2));
165
+ }
166
+ // Inside the workspace: the same check every file route uses. Outside it: the
167
+ // attachment guard, exactly as an external file preview is admitted.
168
+ let resolvedPath;
169
+ const inWorkspace = validateSessionFilePath(session.workingDir, requestedPath);
170
+ if (inWorkspace) {
171
+ resolvedPath = inWorkspace.resolvedPath;
172
+ }
173
+ else {
174
+ if (!isAbsolute(requestedPath)) {
175
+ reply.code(404).send(createErrorResponse(ApiErrorCode.NOT_FOUND, 'File not found'));
176
+ return;
177
+ }
178
+ try {
179
+ resolvedPath = await fs.realpath(requestedPath);
180
+ }
181
+ catch {
182
+ reply.code(404).send(createErrorResponse(ApiErrorCode.NOT_FOUND, 'File not found'));
183
+ return;
184
+ }
185
+ const guard = await loadAttachmentGuardConfig();
186
+ if (guard.confineToWorkspace || isBlockedAttachmentPath(resolvedPath, guard.blockedTrees)) {
187
+ reply.code(403).send(createErrorResponse(ApiErrorCode.INVALID_INPUT, 'Access to this file is blocked'));
188
+ return;
189
+ }
190
+ }
191
+ const stat = await fs.stat(resolvedPath).catch(() => null);
192
+ if (!stat?.isFile()) {
193
+ reply.code(404).send(createErrorResponse(ApiErrorCode.NOT_FOUND, 'File not found'));
194
+ return;
195
+ }
196
+ // The page URL names the RESOLVED file, so it has to be HTML too: a
197
+ // `report.html -> notes.txt` link would otherwise mint a page for a text file.
198
+ if (!HTML_VIEW_EXTENSIONS.has(extensionOf(resolvedPath))) {
199
+ reply.code(400).send(createErrorResponse(ApiErrorCode.INVALID_INPUT, 'Not an HTML file'));
200
+ return;
201
+ }
202
+ // The serving route never descends into a dot segment below the capability
203
+ // root; the HTML file's own path gets the same rule, or `.cache/r.html` would
204
+ // mint a capability over a hidden directory and serve its `token.json`. Inside
205
+ // the workspace the rule covers the part below the workspace root, which is
206
+ // all the page's tree can reach, so a workspace that itself lives under a
207
+ // hidden folder (`~/.local/src/app`) can still render its pages.
208
+ const checkedPath = inWorkspace ? inWorkspace.relativePath : resolvedPath;
209
+ if (checkedPath.split(sep).some((segment) => segment.startsWith('.'))) {
210
+ reply
211
+ .code(403)
212
+ .send(createErrorResponse(ApiErrorCode.INVALID_INPUT, 'HTML files in hidden directories cannot be rendered'));
213
+ return;
214
+ }
215
+ if (isBroadHtmlViewRoot(dirname(resolvedPath))) {
216
+ reply
217
+ .code(403)
218
+ .send(createErrorResponse(ApiErrorCode.INVALID_INPUT, 'This folder is too broad to render a page from; move the HTML file into its own folder'));
219
+ return;
220
+ }
221
+ const cap = htmlViewCapabilities.mint(dirname(resolvedPath), ownerFor(req), !inWorkspace);
222
+ return {
223
+ success: true,
224
+ data: { url: `${HTML_VIEW_PREFIX}/${cap}/${encodeURIComponent(basename(resolvedPath))}` },
225
+ };
226
+ });
227
+ app.get(`${HTML_VIEW_PREFIX}/:cap/*`, async (req, reply) => {
228
+ const { cap, '*': rest } = req.params;
229
+ const record = htmlViewCapabilities.resolve(cap);
230
+ const notFound = () => reply.code(404).header('Content-Type', 'text/plain; charset=utf-8').send('Not found');
231
+ if (!record)
232
+ return notFound();
233
+ // Fastify has already percent-decoded the wildcard. Hidden files and
234
+ // directories are never served, whatever their extension. This is the cheap
235
+ // reject on the requested name; the same two rules run again on the resolved
236
+ // path below.
237
+ const segments = (rest || '').split('/').filter(Boolean);
238
+ if (segments.length === 0 || segments.some((s) => s.startsWith('.')))
239
+ return notFound();
240
+ if (!ASSET_TYPES[extensionOf(segments[segments.length - 1])])
241
+ return notFound();
242
+ let resolvedPath;
243
+ try {
244
+ resolvedPath = await fs.realpath(resolve(record.rootDir, segments.join(sep)));
245
+ }
246
+ catch {
247
+ return notFound();
248
+ }
249
+ // Symlinks are resolved above, so this is the real containment check, and the
250
+ // dot and extension rules have to hold for where a link LANDS as well: a
251
+ // `cfg.json -> .git/config` inside the page's folder passes both on its own name.
252
+ if (!isUnderTree(resolvedPath, record.rootDir))
253
+ return notFound();
254
+ const landed = relative(record.rootDir, resolvedPath).split(sep);
255
+ if (landed.some((s) => s.startsWith('.')))
256
+ return notFound();
257
+ // Typed by what the bytes are, the resolved name.
258
+ const contentType = ASSET_TYPES[extensionOf(resolvedPath)];
259
+ if (!contentType)
260
+ return notFound();
261
+ const guard = await loadAttachmentGuardConfig();
262
+ if (isBlockedAttachmentPath(resolvedPath, guard.blockedTrees))
263
+ return notFound();
264
+ // Re-checked per request, like the attachment serve path (file-routes.ts): a
265
+ // page minted from outside the workspace before an admin switched confinement
266
+ // on stops serving once it is on, instead of living out its capability.
267
+ if (record.outsideWorkspace && guard.confineToWorkspace)
268
+ return notFound();
269
+ const stat = await fs.stat(resolvedPath).catch(() => null);
270
+ if (!stat?.isFile() || exceedsDownloadLimit(stat.size))
271
+ return notFound();
272
+ reply.header('Content-Security-Policy', HTML_VIEW_CSP);
273
+ reply.header('Content-Type', contentType);
274
+ reply.header('Cache-Control', 'no-store');
275
+ reply.header('Referrer-Policy', 'no-referrer');
276
+ // The sandboxed page is opaque-origin, so even its fetch() of a sibling
277
+ // `data.json` is CORS-checked with `Origin: null`. `*` without credentials is
278
+ // enough, and widens nothing: these bytes are already readable by anyone
279
+ // holding the capability URL.
280
+ reply.header('Access-Control-Allow-Origin', '*');
281
+ // The file routes' body sender: Content-Length, and `Range` answered with 206
282
+ // (or 416), so a page's own <video>/<audio> can seek. It hijacks the reply, and
283
+ // carries every header set above across to it.
284
+ sendFileBody(reply, stat.size, req.headers.range, localFileSource(resolvedPath));
285
+ return reply;
286
+ });
287
+ }
288
+ //# sourceMappingURL=html-view-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-view-routes.js","sourceRoot":"","sources":["../../../src/web/routes/html-view-routes.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export { registerPushRoutes } from './push-routes.js';
5
5
  export { registerTeamRoutes } from './team-routes.js';
6
6
  export { registerMuxRoutes } from './mux-routes.js';
7
7
  export { registerFileRoutes } from './file-routes.js';
8
+ export { registerHtmlViewRoutes } from './html-view-routes.js';
8
9
  export { registerScheduledRoutes } from './scheduled-routes.js';
9
10
  export { registerCronRoutes } from './cron-routes.js';
10
11
  export { registerSystemRoutes } from './system-routes.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/routes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,GACjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/routes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,GACjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
@@ -5,6 +5,7 @@ export { registerPushRoutes } from './push-routes.js';
5
5
  export { registerTeamRoutes } from './team-routes.js';
6
6
  export { registerMuxRoutes } from './mux-routes.js';
7
7
  export { registerFileRoutes } from './file-routes.js';
8
+ export { registerHtmlViewRoutes } from './html-view-routes.js';
8
9
  export { registerScheduledRoutes } from './scheduled-routes.js';
9
10
  export { registerCronRoutes } from './cron-routes.js';
10
11
  export { registerSystemRoutes } from './system-routes.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/routes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,GAG3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAoB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/routes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,GAG3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAoB,MAAM,0BAA0B,CAAC"}
@@ -10,7 +10,8 @@
10
10
  * only, never env values, headers or file content (a parse failure is reported by position).
11
11
  *
12
12
  * A CLI takes part when it is ENABLED in the registry, declares an `mcpConfig`, and is installed
13
- * or already has its config file; one that is enabled but absent from the machine is reported
13
+ * or already has its config file (Copilot CLI, which is not a registry CLI, takes part when installed
14
+ * or when its config file exists); one that is enabled but absent from the machine is reported
14
15
  * `absent` and never created. Its file is located with this process's env (the env the CLIs
15
16
  * Codeman spawns inherit), so a relocation var such as `CODEX_HOME` is followed.
16
17
  */
@@ -18,7 +19,11 @@ import type { FastifyInstance } from 'fastify';
18
19
  import { type McpSyncTarget } from '../../mcp-sync.js';
19
20
  /** Default OFF, same shape as `readCliManagementEnabled`: read fresh so a toggle applies at once. */
20
21
  export declare function readMcpSyncEnabled(): Promise<boolean>;
21
- /** Enabled CLIs that declare an MCP config file, in registry order (first definition wins). */
22
+ /**
23
+ * Enabled CLIs that declare an MCP config file, in registry order (first definition wins), then the
24
+ * sync-only tools (src/mcp-sync-targets.ts: Copilot CLI), which come last so a registry CLI's
25
+ * definition wins a same-name difference.
26
+ */
22
27
  export declare function mcpSyncTargets(availability: Record<string, boolean>): McpSyncTarget[];
23
28
  /**
24
29
  * Installed, enabled agent CLIs with no known MCP config file (sync cannot touch them). One that
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-sync-routes.d.ts","sourceRoot":"","sources":["../../../src/web/routes/mcp-sync-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAY7E,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEzF,qGAAqG;AACrG,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG3D;AAED,+FAA+F;AAC/F,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,EAAE,CAUrF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAIpF;AAeD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAuBhE"}
1
+ {"version":3,"file":"mcp-sync-routes.d.ts","sourceRoot":"","sources":["../../../src/web/routes/mcp-sync-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAY7E,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGzF,qGAAqG;AACrG,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,EAAE,CAWrF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAIpF;AAeD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAuBhE"}
@@ -10,7 +10,8 @@
10
10
  * only, never env values, headers or file content (a parse failure is reported by position).
11
11
  *
12
12
  * A CLI takes part when it is ENABLED in the registry, declares an `mcpConfig`, and is installed
13
- * or already has its config file; one that is enabled but absent from the machine is reported
13
+ * or already has its config file (Copilot CLI, which is not a registry CLI, takes part when installed
14
+ * or when its config file exists); one that is enabled but absent from the machine is reported
14
15
  * `absent` and never created. Its file is located with this process's env (the env the CLIs
15
16
  * Codeman spawns inherit), so a relocation var such as `CODEX_HOME` is followed.
16
17
  */
@@ -20,14 +21,19 @@ import { isMultiUserMode } from '../../config/multiuser.js';
20
21
  import { enabledClis } from '../../config/cli-registry/registry.js';
21
22
  import { isCliEntryInstalled, probeStockCliAvailability } from '../../utils/cli-installed-probes.js';
22
23
  import { McpSyncBusyError, syncMcpServers } from '../../mcp-sync.js';
24
+ import { mcpSyncOnlyTargets } from '../../mcp-sync-targets.js';
23
25
  /** Default OFF, same shape as `readCliManagementEnabled`: read fresh so a toggle applies at once. */
24
26
  export async function readMcpSyncEnabled() {
25
27
  const settings = await readJsonConfig(SETTINGS_PATH, 'settings.json', {});
26
28
  return settings.mcpSyncEnabled === true;
27
29
  }
28
- /** Enabled CLIs that declare an MCP config file, in registry order (first definition wins). */
30
+ /**
31
+ * Enabled CLIs that declare an MCP config file, in registry order (first definition wins), then the
32
+ * sync-only tools (src/mcp-sync-targets.ts: Copilot CLI), which come last so a registry CLI's
33
+ * definition wins a same-name difference.
34
+ */
29
35
  export function mcpSyncTargets(availability) {
30
- return enabledClis()
36
+ const registry = enabledClis()
31
37
  .filter((e) => e.capabilities.mcpConfig)
32
38
  .sort((a, b) => a.order - b.order)
33
39
  .map((e) => ({
@@ -36,6 +42,7 @@ export function mcpSyncTargets(availability) {
36
42
  ...e.capabilities.mcpConfig,
37
43
  installed: isCliEntryInstalled(e, availability),
38
44
  }));
45
+ return [...registry, ...mcpSyncOnlyTargets(new Set(registry.map((t) => t.id)))];
39
46
  }
40
47
  /**
41
48
  * Installed, enabled agent CLIs with no known MCP config file (sync cannot touch them). One that
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-sync-routes.js","sourceRoot":"","sources":["../../../src/web/routes/mcp-sync-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-sync-routes.js","sourceRoot":"","sources":["../../../src/web/routes/mcp-sync-routes.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ import { clampEnvOverridesForOwner } from '../../session-env-clamp.js';
32
32
  import { Session } from '../../session.js';
33
33
  import { resolveClaudeModeForUsername } from '../../user-store.js';
34
34
  import { getCli } from '../../config/cli-registry/registry.js';
35
- import { applyWorkspaceHooks, seedAgentSessionPreamble } from '../../hooks-config.js';
35
+ import { agentSkillDir, applyWorkspaceHooks, seedAgentSessionPreamble } from '../../hooks-config.js';
36
36
  import { getLifecycleLog } from '../../session-lifecycle-log.js';
37
37
  import { STATS_COLLECTION_INTERVAL_MS } from '../../config/server-timing.js';
38
38
  import { SseEvent } from '../sse-events.js';
@@ -213,7 +213,7 @@ export function registerRebootRestoreRoutes(app, ctx) {
213
213
  // skill falls back to writing out the whole ~150-line §0 preamble. Remote and
214
214
  // docker sessions never reach here (the plan rejects them as
215
215
  // `remote-or-docker`), so the local-only condition is structural.
216
- if (getCli(session.mode)?.capabilities.agentSkillInjection && (await ctx.getAgentSkillEnabled())) {
216
+ if (agentSkillDir(getCli(session.mode)?.capabilities) && (await ctx.getAgentSkillEnabled())) {
217
217
  await seedAgentSessionPreamble(session.id).catch((err) => console.warn(`[agent-skill] preamble seed failed for ${session.id}: ${getErrorMessage(err)}`));
218
218
  }
219
219
  getLifecycleLog().log({ event: 'recovered', sessionId: session.id, name: session.name });
@@ -239,7 +239,7 @@ export function registerRebootRestoreRoutes(app, ctx) {
239
239
  // count this session's historical tokens into the lifetime totals, demote
240
240
  // a pinned record to `stopped` (which this pass reads as an intentional
241
241
  // kill, making the session permanently unrestorable) and delete the
242
- // workspace's `.claude-images`. This undoes only the construction.
242
+ // workspace's `.codeman-uploads`. This undoes only the construction.
243
243
  await ctx
244
244
  .discardPartiallyBuiltSession(entry.sessionId)
245
245
  .catch((discardErr) => console.error(`[reboot-restore] discarding a failed rebuild failed: ${getErrorMessage(discardErr)}`));
@@ -1 +1 @@
1
- {"version":3,"file":"reboot-restore-routes.js","sourceRoot":"","sources":["../../../src/web/routes/reboot-restore-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reboot-restore-routes.js","sourceRoot":"","sources":["../../../src/web/routes/reboot-restore-routes.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,7 @@ export declare function stripInkRedrawBloat(buffer: string): string;
52
52
  */
53
53
  export declare function imageMagicMatchesExt(data: Buffer, ext: string): boolean;
54
54
  export declare function consumePasteToken(key: string, now?: number): boolean;
55
+ export declare function consumeVideoToken(key: string, now?: number): boolean;
55
56
  export declare function _resetPasteRateBuckets(): void;
56
57
  /**
57
58
  * Test hook, and the positional shape the clamp has always been called with in tests.
@@ -1 +1 @@
1
- {"version":3,"file":"session-routes.d.ts","sourceRoot":"","sources":["../../../src/web/routes/session-routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAS7D,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAqDxB,OAAO,EACL,kBAAkB,EAKnB,MAAM,sBAAsB,CAAC;AAwB9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAqCvE,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA6EhH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAY7F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA0C1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAmCvE;AAWD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAiBhF;AAGD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAoED;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,YAAY,EAC3B,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,QAAQ,CAAC,EAAE,QAAQ,EACnB,UAAU,CAAC,EAAE,UAAU,EACvB,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC;IACT,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IACvC,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IACnC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;CAC5C,CAAC,CAiBD;AAED,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,kCAA4B,CAAC;AA8LpE,2FAA2F;AAC3F,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AA2ED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,SAAS,GAAG,SAAS,CAYvB;AAoCD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa;AAChF,oFAAoF;AACpF,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAAO,GAChD,kBAAkB,CAu5IpB"}
1
+ {"version":3,"file":"session-routes.d.ts","sourceRoot":"","sources":["../../../src/web/routes/session-routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAU7D,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAsDxB,OAAO,EACL,kBAAkB,EAKnB,MAAM,sBAAsB,CAAC;AAwB9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAuCvE,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAgFhH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAY7F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA0C1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAgDvE;AAmGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAEhF;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAEhF;AAGD,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAoED;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,YAAY,EAC3B,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,QAAQ,CAAC,EAAE,QAAQ,EACnB,UAAU,CAAC,EAAE,UAAU,EACvB,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC;IACT,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IACvC,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IACnC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;CAC5C,CAAC,CAiBD;AAED,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,kCAA4B,CAAC;AA8LpE,2FAA2F;AAC3F,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AA2ED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,SAAS,GAAG,SAAS,CAYvB;AAoCD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa;AAChF,oFAAoF;AACpF,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAAO,GAChD,kBAAkB,CAglJpB"}