@repo-os/repoos 0.5.45

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 (362) hide show
  1. package/LICENSE.md +110 -0
  2. package/README.md +272 -0
  3. package/dist/.build-info.json +4 -0
  4. package/dist/.build-stamp.json +3 -0
  5. package/dist/cli/colors.d.ts +13 -0
  6. package/dist/cli/colors.js +37 -0
  7. package/dist/cli/index.d.ts +2 -0
  8. package/dist/cli/index.js +221 -0
  9. package/dist/commands/check.d.ts +170 -0
  10. package/dist/commands/check.js +1227 -0
  11. package/dist/commands/docs.d.ts +2 -0
  12. package/dist/commands/docs.js +70 -0
  13. package/dist/commands/gc.d.ts +1 -0
  14. package/dist/commands/gc.js +57 -0
  15. package/dist/commands/init.d.ts +9 -0
  16. package/dist/commands/init.js +699 -0
  17. package/dist/commands/screenshots.d.ts +7 -0
  18. package/dist/commands/screenshots.js +77 -0
  19. package/dist/commands/serve.d.ts +55 -0
  20. package/dist/commands/serve.js +204 -0
  21. package/dist/commands/status.d.ts +140 -0
  22. package/dist/commands/status.js +569 -0
  23. package/dist/commands/stop.d.ts +1 -0
  24. package/dist/commands/stop.js +59 -0
  25. package/dist/commands/tasks.d.ts +47 -0
  26. package/dist/commands/tasks.js +334 -0
  27. package/dist/commands/tunnel.d.ts +1 -0
  28. package/dist/commands/tunnel.js +1271 -0
  29. package/dist/commands/ui-harness.d.ts +53 -0
  30. package/dist/commands/ui-harness.js +62 -0
  31. package/dist/commands/ui-smoke.d.ts +6 -0
  32. package/dist/commands/ui-smoke.js +220 -0
  33. package/dist/commands/upgrade.d.ts +15 -0
  34. package/dist/commands/upgrade.js +188 -0
  35. package/dist/core/auth-store.d.ts +81 -0
  36. package/dist/core/auth-store.js +530 -0
  37. package/dist/core/auth.d.ts +75 -0
  38. package/dist/core/auth.js +124 -0
  39. package/dist/core/bootstrap.d.ts +41 -0
  40. package/dist/core/bootstrap.js +236 -0
  41. package/dist/core/build.d.ts +92 -0
  42. package/dist/core/build.js +249 -0
  43. package/dist/core/canary.d.ts +10 -0
  44. package/dist/core/canary.js +14 -0
  45. package/dist/core/check-failure-summary.d.ts +10 -0
  46. package/dist/core/check-failure-summary.js +34 -0
  47. package/dist/core/config.d.ts +160 -0
  48. package/dist/core/config.js +1288 -0
  49. package/dist/core/context-pack.d.ts +74 -0
  50. package/dist/core/context-pack.js +778 -0
  51. package/dist/core/db.d.ts +236 -0
  52. package/dist/core/db.js +747 -0
  53. package/dist/core/detect.d.ts +69 -0
  54. package/dist/core/detect.js +251 -0
  55. package/dist/core/docs.d.ts +76 -0
  56. package/dist/core/docs.js +225 -0
  57. package/dist/core/frontmatter.d.ts +29 -0
  58. package/dist/core/frontmatter.js +215 -0
  59. package/dist/core/git.d.ts +505 -0
  60. package/dist/core/git.js +1453 -0
  61. package/dist/core/indexer.d.ts +33 -0
  62. package/dist/core/indexer.js +282 -0
  63. package/dist/core/input.d.ts +66 -0
  64. package/dist/core/input.js +222 -0
  65. package/dist/core/logger.d.ts +70 -0
  66. package/dist/core/logger.js +138 -0
  67. package/dist/core/models.d.ts +45 -0
  68. package/dist/core/models.js +291 -0
  69. package/dist/core/net-probe.d.ts +4 -0
  70. package/dist/core/net-probe.js +20 -0
  71. package/dist/core/providers/deepinfra.d.ts +23 -0
  72. package/dist/core/providers/deepinfra.js +44 -0
  73. package/dist/core/providers/index.d.ts +24 -0
  74. package/dist/core/providers/index.js +59 -0
  75. package/dist/core/providers/openrouter.d.ts +28 -0
  76. package/dist/core/providers/openrouter.js +82 -0
  77. package/dist/core/providers/spend.d.ts +86 -0
  78. package/dist/core/providers/spend.js +286 -0
  79. package/dist/core/providers/types.d.ts +56 -0
  80. package/dist/core/providers/types.js +39 -0
  81. package/dist/core/repoos.d.ts +59 -0
  82. package/dist/core/repoos.js +221 -0
  83. package/dist/core/runtime.d.ts +35 -0
  84. package/dist/core/runtime.js +167 -0
  85. package/dist/core/skills-registry.d.ts +39 -0
  86. package/dist/core/skills-registry.js +148 -0
  87. package/dist/core/skills-registry.test.d.ts +1 -0
  88. package/dist/core/skills-registry.test.js +52 -0
  89. package/dist/core/sysmem.d.ts +7 -0
  90. package/dist/core/sysmem.js +55 -0
  91. package/dist/core/tailscale.d.ts +2 -0
  92. package/dist/core/tailscale.js +19 -0
  93. package/dist/core/task.d.ts +53 -0
  94. package/dist/core/task.js +310 -0
  95. package/dist/core/toml-line.d.ts +20 -0
  96. package/dist/core/toml-line.js +52 -0
  97. package/dist/core/toml-validate.d.ts +44 -0
  98. package/dist/core/toml-validate.js +335 -0
  99. package/dist/core/tunnel-assistant.d.ts +30 -0
  100. package/dist/core/tunnel-assistant.js +65 -0
  101. package/dist/core/tunnel-registry.d.ts +96 -0
  102. package/dist/core/tunnel-registry.js +267 -0
  103. package/dist/core/tunnel-registry.test.d.ts +1 -0
  104. package/dist/core/tunnel-registry.test.js +309 -0
  105. package/dist/core/tunnel.d.ts +103 -0
  106. package/dist/core/tunnel.js +320 -0
  107. package/dist/core/types.d.ts +811 -0
  108. package/dist/core/types.js +27 -0
  109. package/dist/core/worktree-gc.d.ts +57 -0
  110. package/dist/core/worktree-gc.js +194 -0
  111. package/dist/server/__tests__/integration-job.test.d.ts +1 -0
  112. package/dist/server/__tests__/integration-job.test.js +129 -0
  113. package/dist/server/agents.d.ts +1020 -0
  114. package/dist/server/agents.js +4070 -0
  115. package/dist/server/attachments.d.ts +51 -0
  116. package/dist/server/attachments.js +130 -0
  117. package/dist/server/auto-engineering.d.ts +45 -0
  118. package/dist/server/auto-engineering.js +275 -0
  119. package/dist/server/branchless-release.d.ts +22 -0
  120. package/dist/server/branchless-release.js +67 -0
  121. package/dist/server/built-in-agents.d.ts +305 -0
  122. package/dist/server/built-in-agents.js +1838 -0
  123. package/dist/server/cto-monitor.d.ts +35 -0
  124. package/dist/server/cto-monitor.js +281 -0
  125. package/dist/server/cto.d.ts +125 -0
  126. package/dist/server/cto.js +590 -0
  127. package/dist/server/deployments.d.ts +119 -0
  128. package/dist/server/deployments.js +325 -0
  129. package/dist/server/diff-snapshot.d.ts +20 -0
  130. package/dist/server/diff-snapshot.js +73 -0
  131. package/dist/server/done.d.ts +160 -0
  132. package/dist/server/done.js +488 -0
  133. package/dist/server/freeform.d.ts +55 -0
  134. package/dist/server/freeform.js +179 -0
  135. package/dist/server/handoff.d.ts +99 -0
  136. package/dist/server/handoff.js +575 -0
  137. package/dist/server/hetzner.d.ts +45 -0
  138. package/dist/server/hetzner.js +117 -0
  139. package/dist/server/icons.d.ts +8 -0
  140. package/dist/server/icons.js +195 -0
  141. package/dist/server/integration-job.d.ts +75 -0
  142. package/dist/server/integration-job.js +144 -0
  143. package/dist/server/integration-orchestrator.d.ts +211 -0
  144. package/dist/server/integration-orchestrator.js +1299 -0
  145. package/dist/server/integration-status.d.ts +48 -0
  146. package/dist/server/integration-status.js +71 -0
  147. package/dist/server/live-index.d.ts +295 -0
  148. package/dist/server/live-index.js +452 -0
  149. package/dist/server/model-test.d.ts +20 -0
  150. package/dist/server/model-test.js +100 -0
  151. package/dist/server/ntfy.d.ts +57 -0
  152. package/dist/server/ntfy.js +112 -0
  153. package/dist/server/pm-attachments.d.ts +35 -0
  154. package/dist/server/pm-attachments.js +181 -0
  155. package/dist/server/pm-runs.d.ts +58 -0
  156. package/dist/server/pm-runs.js +80 -0
  157. package/dist/server/preview.d.ts +174 -0
  158. package/dist/server/preview.js +641 -0
  159. package/dist/server/release.d.ts +88 -0
  160. package/dist/server/release.js +449 -0
  161. package/dist/server/reload.d.ts +194 -0
  162. package/dist/server/reload.js +586 -0
  163. package/dist/server/remote-validation.d.ts +132 -0
  164. package/dist/server/remote-validation.js +478 -0
  165. package/dist/server/repo-lock.d.ts +36 -0
  166. package/dist/server/repo-lock.js +141 -0
  167. package/dist/server/review-guard.d.ts +14 -0
  168. package/dist/server/review-guard.js +159 -0
  169. package/dist/server/review.d.ts +243 -0
  170. package/dist/server/review.js +1211 -0
  171. package/dist/server/routes/agents.d.ts +6 -0
  172. package/dist/server/routes/agents.js +28 -0
  173. package/dist/server/routes/auth.d.ts +60 -0
  174. package/dist/server/routes/auth.js +755 -0
  175. package/dist/server/routes/config.d.ts +20 -0
  176. package/dist/server/routes/config.js +347 -0
  177. package/dist/server/routes/debugger.d.ts +33 -0
  178. package/dist/server/routes/debugger.js +360 -0
  179. package/dist/server/routes/deployments.d.ts +3 -0
  180. package/dist/server/routes/deployments.js +16 -0
  181. package/dist/server/routes/docs.d.ts +8 -0
  182. package/dist/server/routes/docs.js +135 -0
  183. package/dist/server/routes/helpers.d.ts +21 -0
  184. package/dist/server/routes/helpers.js +171 -0
  185. package/dist/server/routes/index.d.ts +19 -0
  186. package/dist/server/routes/index.js +18 -0
  187. package/dist/server/routes/info.d.ts +17 -0
  188. package/dist/server/routes/info.js +177 -0
  189. package/dist/server/routes/inputs.d.ts +7 -0
  190. package/dist/server/routes/inputs.js +125 -0
  191. package/dist/server/routes/model-providers.d.ts +27 -0
  192. package/dist/server/routes/model-providers.js +94 -0
  193. package/dist/server/routes/models.d.ts +3 -0
  194. package/dist/server/routes/models.js +36 -0
  195. package/dist/server/routes/notify.d.ts +2 -0
  196. package/dist/server/routes/notify.js +17 -0
  197. package/dist/server/routes/playground.d.ts +29 -0
  198. package/dist/server/routes/playground.js +81 -0
  199. package/dist/server/routes/release.d.ts +20 -0
  200. package/dist/server/routes/release.js +86 -0
  201. package/dist/server/routes/router.d.ts +12 -0
  202. package/dist/server/routes/router.js +32 -0
  203. package/dist/server/routes/skill-registry.d.ts +5 -0
  204. package/dist/server/routes/skill-registry.js +51 -0
  205. package/dist/server/routes/tasks.d.ts +58 -0
  206. package/dist/server/routes/tasks.js +1442 -0
  207. package/dist/server/routes/transcribe.d.ts +2 -0
  208. package/dist/server/routes/transcribe.js +124 -0
  209. package/dist/server/routes/types.d.ts +68 -0
  210. package/dist/server/routes/types.js +1 -0
  211. package/dist/server/routes/ui.d.ts +5 -0
  212. package/dist/server/routes/ui.js +81 -0
  213. package/dist/server/routes/utils.d.ts +3 -0
  214. package/dist/server/routes/utils.js +23 -0
  215. package/dist/server/serve-reaper.d.ts +135 -0
  216. package/dist/server/serve-reaper.js +491 -0
  217. package/dist/server/server.d.ts +49 -0
  218. package/dist/server/server.js +2171 -0
  219. package/dist/server/supervisor.d.ts +89 -0
  220. package/dist/server/supervisor.js +231 -0
  221. package/dist/server/system.d.ts +198 -0
  222. package/dist/server/system.js +480 -0
  223. package/dist/server/task-check.d.ts +45 -0
  224. package/dist/server/task-check.js +71 -0
  225. package/dist/server/task-transitions.d.ts +51 -0
  226. package/dist/server/task-transitions.js +78 -0
  227. package/dist/server/task-watchdog.d.ts +158 -0
  228. package/dist/server/task-watchdog.js +681 -0
  229. package/dist/server/test-run.d.ts +28 -0
  230. package/dist/server/test-run.js +81 -0
  231. package/dist/server/watcher.d.ts +21 -0
  232. package/dist/server/watcher.js +194 -0
  233. package/dist/server/write.d.ts +94 -0
  234. package/dist/server/write.js +345 -0
  235. package/dist/ui/assets/AgentsView-CF4wRvHh.css +1 -0
  236. package/dist/ui/assets/AgentsView-D-myL-kA.js +1 -0
  237. package/dist/ui/assets/ContextView-D3TC-RSp.css +1 -0
  238. package/dist/ui/assets/ContextView-DsOqAdyE.js +4 -0
  239. package/dist/ui/assets/DashboardView-BOhsIJqO.js +1 -0
  240. package/dist/ui/assets/DashboardView-Ck9o0RP2.css +1 -0
  241. package/dist/ui/assets/DeploymentsView--iIUVfEH.css +1 -0
  242. package/dist/ui/assets/DeploymentsView-DXu_FYR2.js +1 -0
  243. package/dist/ui/assets/InputsView-24HVbVPk.js +1 -0
  244. package/dist/ui/assets/InputsView-BLb7GHtx.css +1 -0
  245. package/dist/ui/assets/LoginView-6QlGg6cx.css +1 -0
  246. package/dist/ui/assets/LoginView-BqupI0Lt.js +1 -0
  247. package/dist/ui/assets/ReleasesView-BEG1A0YH.css +1 -0
  248. package/dist/ui/assets/ReleasesView-CAgMuxpe.js +3 -0
  249. package/dist/ui/assets/SettingsView-CA-NYSMK.css +1 -0
  250. package/dist/ui/assets/SettingsView-O3iZSnjg.js +3 -0
  251. package/dist/ui/assets/WorkView-D8Tl6qwy.js +1 -0
  252. package/dist/ui/assets/WorkView-DMYL2s3W.css +1 -0
  253. package/dist/ui/assets/abnfDiagram-VCTEODGH-J5lkSnEE.js +1 -0
  254. package/dist/ui/assets/arc-BHZnmhhM.js +1 -0
  255. package/dist/ui/assets/architecture-7GRP2DOG-pLdFt-xS.js +1 -0
  256. package/dist/ui/assets/architectureDiagram-5GKGNRK7-C3k89uKX.js +36 -0
  257. package/dist/ui/assets/array-BifhSqXX.js +1 -0
  258. package/dist/ui/assets/blockDiagram-I7D4REHJ-AWNoBzop.js +129 -0
  259. package/dist/ui/assets/button-lbikqSph.js +1 -0
  260. package/dist/ui/assets/c4Diagram-7LVT6UL2-DKG1D5gd.js +38 -0
  261. package/dist/ui/assets/channel-gA4qBv3A.js +1 -0
  262. package/dist/ui/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  263. package/dist/ui/assets/chunk-4HAMMTFA-D1YR8lF_.js +62 -0
  264. package/dist/ui/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  265. package/dist/ui/assets/chunk-75Z2AOVW-5GuBxfsL.js +2 -0
  266. package/dist/ui/assets/chunk-DU6HZSFF-DfdNNqwa.js +127 -0
  267. package/dist/ui/assets/chunk-F27PBJKO-BPZzinQ4.js +1 -0
  268. package/dist/ui/assets/chunk-FOHPRMQF-l2z4K2jD.js +161 -0
  269. package/dist/ui/assets/chunk-GMAD6QVW-DGWvSKj5.js +72 -0
  270. package/dist/ui/assets/chunk-GVQU2GXP-D6Aw75wJ.js +1 -0
  271. package/dist/ui/assets/chunk-IMKFNOWR-B8mMBKCW.js +231 -0
  272. package/dist/ui/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  273. package/dist/ui/assets/chunk-L3NEJ4N5-D5OJuXYE.js +1 -0
  274. package/dist/ui/assets/chunk-OSK3NFVY-B7r9w2UW.js +10 -0
  275. package/dist/ui/assets/chunk-P2QGCYS3-C74X4AQX.js +1 -0
  276. package/dist/ui/assets/chunk-POPQ4Y6H-C5_u1gUS.js +1 -0
  277. package/dist/ui/assets/chunk-PWAF6VOD-DfoTLtxn.js +1 -0
  278. package/dist/ui/assets/chunk-SHT3W25Y-D40m2eqz.js +168 -0
  279. package/dist/ui/assets/chunk-SVP7TREG-euxi0Kap.js +88 -0
  280. package/dist/ui/assets/chunk-TICWLB2K-fkdxngzN.js +206 -0
  281. package/dist/ui/assets/chunk-XXDRQBXY-DFBUG-OT.js +1 -0
  282. package/dist/ui/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  283. package/dist/ui/assets/classDiagram-ZZMXUADV-BzW8bq2P.js +1 -0
  284. package/dist/ui/assets/classDiagram-v2-VYDZK3BY-BzW8bq2P.js +1 -0
  285. package/dist/ui/assets/cose-bilkent-JH36ORCC-BTcgMon1.js +1 -0
  286. package/dist/ui/assets/cynefin-OW5HDTMX-B5m_COsS.js +1 -0
  287. package/dist/ui/assets/cynefinDiagram-5FMLGOSQ-C-AG6CGe.js +62 -0
  288. package/dist/ui/assets/cytoscape.esm-FBntH-9t.js +321 -0
  289. package/dist/ui/assets/dagre-GXQ25YYZ-DDfDnp8L.js +4 -0
  290. package/dist/ui/assets/dagre-PrKaheQc.js +1 -0
  291. package/dist/ui/assets/defaultLocale-BFoDCU3G.js +1 -0
  292. package/dist/ui/assets/diagram-S7CK7UJ4-DjQZAlEY.js +30 -0
  293. package/dist/ui/assets/diagram-UQ7AKVKN-DAZ9yp1B.js +41 -0
  294. package/dist/ui/assets/diagram-VSXAHHWV-BWepUKJD.js +3 -0
  295. package/dist/ui/assets/diagram-VX7I27RA-EcV1J81b.js +24 -0
  296. package/dist/ui/assets/diagram-Z3DM3KII-Dbz7XU_K.js +24 -0
  297. package/dist/ui/assets/dist-DTg6UBE_.js +1 -0
  298. package/dist/ui/assets/ebnfDiagram-PWID7BFC-BUyQw8Mm.js +1 -0
  299. package/dist/ui/assets/erDiagram-RLTQ6QDP-WVf8ukKt.js +99 -0
  300. package/dist/ui/assets/eventmodeling-NTZA5JFV-DHqyLOAn.js +1 -0
  301. package/dist/ui/assets/flowDiagram-HODETNUW-CYk_ze5K.js +1 -0
  302. package/dist/ui/assets/ganttDiagram-EL5Y4UJY-rB4MZuB-.js +292 -0
  303. package/dist/ui/assets/gitGraph-4MIJSDKK-BOTWM8dY.js +1 -0
  304. package/dist/ui/assets/gitGraphDiagram-WWUBYQGX-eYscuhtP.js +106 -0
  305. package/dist/ui/assets/graphlib-DS17s2tU.js +1 -0
  306. package/dist/ui/assets/index-BACBfnga.css +1 -0
  307. package/dist/ui/assets/index-BOQ-ust6.js +26 -0
  308. package/dist/ui/assets/info-A6RAGUB7-_67wOORe.js +1 -0
  309. package/dist/ui/assets/infoDiagram-27XIBGKW-XVXbddTA.js +2 -0
  310. package/dist/ui/assets/init-C-OQMol4.js +1 -0
  311. package/dist/ui/assets/ishikawaDiagram-5VMMS53U-ClLNiEru.js +70 -0
  312. package/dist/ui/assets/journeyDiagram-3NMN7TZE-NRawjR6i.js +139 -0
  313. package/dist/ui/assets/kanban-definition-UXKFOSKX-BgSzBfIx.js +89 -0
  314. package/dist/ui/assets/katex-DolUETbr.js +257 -0
  315. package/dist/ui/assets/line-KAyfuul4.js +1 -0
  316. package/dist/ui/assets/linear-cCCPOpu7.js +1 -0
  317. package/dist/ui/assets/mermaid-parser.core-CgXZk1iN.js +7 -0
  318. package/dist/ui/assets/mermaid.core-BUUkChHW.js +44 -0
  319. package/dist/ui/assets/mindmap-definition-YA3MSWOX-Cpn7vW4r.js +96 -0
  320. package/dist/ui/assets/ordinal-BDEzSJ7C.js +1 -0
  321. package/dist/ui/assets/packet-AYTQ26CC-0lZwM-d6.js +1 -0
  322. package/dist/ui/assets/path-COt_16Va.js +1 -0
  323. package/dist/ui/assets/pegDiagram-XKGWAZYB-impy0inn.js +1 -0
  324. package/dist/ui/assets/pie-WAS4IAKB-CqfdGHYg.js +1 -0
  325. package/dist/ui/assets/pieDiagram-E7YTZNPT-CxjL4I1h.js +39 -0
  326. package/dist/ui/assets/quadrantDiagram-AXDQQJYC-Cjd1QMIe.js +7 -0
  327. package/dist/ui/assets/radar-RG4KPBEZ-CRkQIwiv.js +1 -0
  328. package/dist/ui/assets/railroad-74A4TZTK-i67XSWTB.js +1 -0
  329. package/dist/ui/assets/railroad-abnf-HS5TGJTU-Cv9m5aS3.js +1 -0
  330. package/dist/ui/assets/railroad-ebnf-LZEXJU2U-C5ZIn-Jh.js +1 -0
  331. package/dist/ui/assets/railroad-peg-WCYAUIDC-CGra9Oq-.js +1 -0
  332. package/dist/ui/assets/railroadDiagram-O6MQD6OU-_pK0qyaY.js +1 -0
  333. package/dist/ui/assets/releases-B0WNV-SY.js +1 -0
  334. package/dist/ui/assets/repoos-cto-square.webp +0 -0
  335. package/dist/ui/assets/repoos-helpful-pm-square.webp +0 -0
  336. package/dist/ui/assets/repoos-orchestrator-square.webp +0 -0
  337. package/dist/ui/assets/repoos-performance-agent-square.webp +0 -0
  338. package/dist/ui/assets/repoos-ross-from-friends-square.webp +0 -0
  339. package/dist/ui/assets/repoos-tech-debt-agent-square.webp +0 -0
  340. package/dist/ui/assets/requirementDiagram-BXWQKSXE-CRrFX-yw.js +84 -0
  341. package/dist/ui/assets/rough.esm-By172zw-.js +1 -0
  342. package/dist/ui/assets/sankeyDiagram-P5KCCOFB-X_xFRj9E.js +40 -0
  343. package/dist/ui/assets/sequenceDiagram-WJ2MYXX4-Byb49lKf.js +162 -0
  344. package/dist/ui/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
  345. package/dist/ui/assets/src-BH-TyZbA.js +1 -0
  346. package/dist/ui/assets/stateDiagram-D77RDMKH-CzaPrqYF.js +1 -0
  347. package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-BCXckz7K.js +1 -0
  348. package/dist/ui/assets/swimlanes-42K2YHIH-Cx_1lnqr.js +1 -0
  349. package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-54qsKi6A.js +8 -0
  350. package/dist/ui/assets/timeline-definition-24CTP7MA-B1IbZPQ-.js +120 -0
  351. package/dist/ui/assets/treeView-Q6P3EWNA-DFWhVE3d.js +1 -0
  352. package/dist/ui/assets/treemap-WGGIJYW6-BmbYPThn.js +1 -0
  353. package/dist/ui/assets/vendor-ui-DPm7zLxi.js +3 -0
  354. package/dist/ui/assets/vendor-vue-CobgyEJp.js +1 -0
  355. package/dist/ui/assets/vennDiagram-4TSXK5OY-Ae2AtRpt.js +34 -0
  356. package/dist/ui/assets/wardley-WFR3VGLG-BtD4X4tL.js +1 -0
  357. package/dist/ui/assets/wardleyDiagram-VM6X3IG4-B3YN2fTd.js +78 -0
  358. package/dist/ui/assets/xychartDiagram-S5SC5T6Z-CIzJfMKA.js +7 -0
  359. package/dist/ui/favicon.svg +11 -0
  360. package/dist/ui/index.html +49 -0
  361. package/dist/ui/sw.js +48 -0
  362. package/package.json +91 -0
@@ -0,0 +1,55 @@
1
+ /** Fields extracted from the agent's generated file, fed to createTask. */
2
+ export interface GeneratedTaskInput {
3
+ title: string;
4
+ type?: string;
5
+ priority?: string;
6
+ area?: string;
7
+ assignedTo?: string;
8
+ body: string;
9
+ /**
10
+ * Whether the agent's output actually contained a `---` frontmatter block
11
+ * (#0345). False means the agent replied with something other than the
12
+ * requested file content — e.g. a status message like "Done, I wrote the
13
+ * file" instead of the file itself — and `title`/`body` are a best-effort
14
+ * fallback (the raw output verbatim), not real task content. Callers
15
+ * should treat `false` as a failed generation, not a usable result.
16
+ */
17
+ hadFrontmatter: boolean;
18
+ }
19
+ /**
20
+ * A short, human title for a raw explanation, for the no-agent fallback.
21
+ * First non-empty, non-delimiter line of the explanation wins; otherwise the
22
+ * first 60 chars. Delimiter lines (a line that is exactly `---`) are skipped so
23
+ * a stray frontmatter delimiter can never become a title.
24
+ */
25
+ export declare function explanationTitle(explanation: string): string;
26
+ /**
27
+ * Drop leaked tool-call markup from an agent's answer.
28
+ *
29
+ * Only whole lines are removed, and only outside fenced code blocks, so a task
30
+ * that legitimately quotes markup in a code block keeps it. When a removal
31
+ * strands a second consecutive blank line, one is dropped so cutting a block
32
+ * out of the middle of a body doesn't leave a gap. A body with no leaked
33
+ * tokens is returned unchanged.
34
+ */
35
+ export declare function stripToolCallMarkup(output: string): string;
36
+ /**
37
+ * Parse the PM agent's generated markdown into createTask input. Never throws:
38
+ * anything unparsable falls back to treating the whole output as the body with
39
+ * a derived title, so input survives a bad agent response.
40
+ *
41
+ * The agent's answer is the task file verbatim, so any tool-call markup it
42
+ * leaked would be persisted as body text — it is stripped before parsing so a
43
+ * leaked token can never become the title either.
44
+ */
45
+ export declare function parseGeneratedTask(rawOutput: string): GeneratedTaskInput;
46
+ /**
47
+ * Build the PM agent's prompt from a raw explanation.
48
+ *
49
+ * The system already persists the raw explanation under a `## Original prompt`
50
+ * section before the PM runs, so the PM is told not to duplicate it. It should
51
+ * still end with the structured body only; the system re-ensures the section.
52
+ */
53
+ export declare function pmPrompt(explanation: string): string;
54
+ /** The persisted setting key that controls the drawer's default mode. */
55
+ export declare const DEFAULT_TASK_MODE_KEY = "defaultTaskMode";
@@ -0,0 +1,179 @@
1
+ import { FM_DELIM, parseDocument } from "../core/frontmatter.js";
2
+ const TASK_TYPES = ["feature", "bug", "chore", "spec", "refactor"];
3
+ const PRIORITIES = ["p0", "p1", "p2", "p3"];
4
+ /**
5
+ * A short, human title for a raw explanation, for the no-agent fallback.
6
+ * First non-empty, non-delimiter line of the explanation wins; otherwise the
7
+ * first 60 chars. Delimiter lines (a line that is exactly `---`) are skipped so
8
+ * a stray frontmatter delimiter can never become a title.
9
+ */
10
+ export function explanationTitle(explanation) {
11
+ const line = explanation
12
+ .split("\n")
13
+ .map((l) => l.trim())
14
+ .find((l) => Boolean(l) && l !== FM_DELIM) ?? "";
15
+ if (line.length > 0) {
16
+ return line.length <= 60 ? line : `${line.slice(0, 57).trimEnd()}…`;
17
+ }
18
+ const flat = explanation
19
+ .replace(/\s+/g, " ")
20
+ .replace(/\s*---\s*/g, " ")
21
+ .trim();
22
+ return flat.length <= 60 ? flat || "Untitled task" : `${flat.slice(0, 57).trimEnd()}…`;
23
+ }
24
+ function firstMatch(value, allowed, fallback) {
25
+ const v = typeof value === "string" ? value.toLowerCase().trim() : "";
26
+ return allowed.find((a) => a === v) ?? fallback;
27
+ }
28
+ /**
29
+ * The control-token names a leaked tool call is built from. Kept as bare names
30
+ * so every dialect below is matched by one pattern.
31
+ */
32
+ const TOOL_TOKEN_NAMES = "tool_calls?|tool\u2581calls?|function_calls|function_results|invoke|parameter";
33
+ /**
34
+ * A line that is nothing but a tool-call control token. Models that render
35
+ * tool calls as inline markup can emit these into plain prose when a turn is
36
+ * cut short, in several dialects: bare (`<parameter>`), namespaced
37
+ * (`<ns:invoke>`), and special-token wrapped, where the delimiter is either an
38
+ * ASCII or a fullwidth vertical bar.
39
+ *
40
+ * Deliberately anchored to the whole line: a task body legitimately discusses
41
+ * markup inline (`the <input> element`), and only a lone control token on its
42
+ * own line is unambiguous leakage.
43
+ */
44
+ const TOOL_TOKEN_LINE = new RegExp(`^<\\/?[\uff5c|]?\\s*(?:[\\w.-]+[:\u2581\uff5c|])?(?:${TOOL_TOKEN_NAMES})(?:[_\u2581](?:begin|end))?\\b[^>]*[\uff5c|]?\\s*\\/?>$`);
45
+ /** True for a fenced-code-block delimiter line (``` or ~~~). */
46
+ function isFence(line) {
47
+ return /^(?:```|~~~)/.test(line);
48
+ }
49
+ /**
50
+ * Drop leaked tool-call markup from an agent's answer.
51
+ *
52
+ * Only whole lines are removed, and only outside fenced code blocks, so a task
53
+ * that legitimately quotes markup in a code block keeps it. When a removal
54
+ * strands a second consecutive blank line, one is dropped so cutting a block
55
+ * out of the middle of a body doesn't leave a gap. A body with no leaked
56
+ * tokens is returned unchanged.
57
+ */
58
+ export function stripToolCallMarkup(output) {
59
+ const kept = [];
60
+ let inFence = false;
61
+ let removed = false;
62
+ for (const line of output.split("\n")) {
63
+ const trimmed = line.trim();
64
+ if (isFence(trimmed))
65
+ inFence = !inFence;
66
+ if (!inFence && TOOL_TOKEN_LINE.test(trimmed)) {
67
+ removed = true;
68
+ continue;
69
+ }
70
+ const previous = kept[kept.length - 1];
71
+ if (removed && !inFence && trimmed === "" && previous !== undefined && previous.trim() === "") {
72
+ continue;
73
+ }
74
+ kept.push(line);
75
+ }
76
+ return removed ? kept.join("\n").trim() : output;
77
+ }
78
+ /**
79
+ * Parse the PM agent's generated markdown into createTask input. Never throws:
80
+ * anything unparsable falls back to treating the whole output as the body with
81
+ * a derived title, so input survives a bad agent response.
82
+ *
83
+ * The agent's answer is the task file verbatim, so any tool-call markup it
84
+ * leaked would be persisted as body text — it is stripped before parsing so a
85
+ * leaked token can never become the title either.
86
+ */
87
+ export function parseGeneratedTask(rawOutput) {
88
+ const output = stripToolCallMarkup(rawOutput);
89
+ const { data, body, hadFrontmatter } = parseDocument(output.trim());
90
+ const rawTitle = typeof data.title === "string" && data.title.trim()
91
+ ? data.title.trim()
92
+ : typeof data.title === "number"
93
+ ? String(data.title)
94
+ : "";
95
+ if (hadFrontmatter) {
96
+ // A frontmatter block was present (open, closed, or embedded-in-body).
97
+ // Use its parsed fields; the title falls back to the body's first line so
98
+ // a delimiter can never leak into the title.
99
+ return {
100
+ title: rawTitle || explanationTitle(body),
101
+ type: firstMatch(data.type, TASK_TYPES),
102
+ priority: firstMatch(data.priority, PRIORITIES),
103
+ area: typeof data.area === "string" && data.area.trim() ? data.area.trim() : undefined,
104
+ assignedTo: typeof data.assigned_to === "string" && data.assigned_to.trim()
105
+ ? data.assigned_to.trim()
106
+ : undefined,
107
+ body: body.trim(),
108
+ hadFrontmatter: true,
109
+ };
110
+ }
111
+ // No usable frontmatter: the agent didn't return the file content it was
112
+ // asked for (e.g. a "Done, I wrote it" status reply instead — #0345). Keep
113
+ // the raw output as a best-effort title/body so nothing here throws, but
114
+ // `hadFrontmatter: false` tells the caller this is not real task content —
115
+ // it must not be allowed to overwrite the draft.
116
+ return { title: explanationTitle(output), body: output.trim(), hadFrontmatter: false };
117
+ }
118
+ /** The task-file conventions the PM agent must follow, inlined into its prompt. */
119
+ const TASK_CONVENTIONS = [
120
+ "Task files are markdown with YAML frontmatter, like:",
121
+ "---",
122
+ 'id: "0001" # assigned by the system — do NOT include',
123
+ "title: Short imperative title",
124
+ "type: feature # feature | bug | chore | spec | refactor",
125
+ "status: inbox # assigned by the system — do NOT include",
126
+ "priority: p2 # p0 | p1 | p2 | p3",
127
+ "area: web # the part of the product, e.g. web, core, cli, ui, api",
128
+ "assigned_to: ai # ai | human | unassigned",
129
+ "branch: feat/slug # derived from the title — do NOT include",
130
+ "created_at: ... # assigned by the system — do NOT include",
131
+ "updated_at: ... # assigned by the system — do NOT include",
132
+ "---",
133
+ "",
134
+ "The body follows with markdown sections, in order:",
135
+ "- ## Problem — what's broken or missing, why it matters",
136
+ "- ## Desired UX — what the end experience should be",
137
+ "- ## Acceptance criteria — a concrete checkbox list (- [ ] ...)",
138
+ "- ## Notes for AI — constraints, files to touch, things NOT to do",
139
+ "- ## Scope (optional) — what this task covers and what is deferred",
140
+ "- ## Related (optional) — related task ids or docs",
141
+ "- ## Activity — leave it out; the system appends entries",
142
+ "",
143
+ "Flesh out each section with concrete detail drawn ONLY from the explanation.",
144
+ "Do not invent requirements the user did not imply. When a detail is genuinely",
145
+ "ambiguous, pick a reasonable default and state the assumption in Notes for AI.",
146
+ "Do not ask clarifying questions.",
147
+ ].join("\n");
148
+ /**
149
+ * Build the PM agent's prompt from a raw explanation.
150
+ *
151
+ * The system already persists the raw explanation under a `## Original prompt`
152
+ * section before the PM runs, so the PM is told not to duplicate it. It should
153
+ * still end with the structured body only; the system re-ensures the section.
154
+ */
155
+ export function pmPrompt(explanation) {
156
+ return [
157
+ "You are the PM agent for RepoOS. Turn the user's rough explanation into a",
158
+ "complete, well-formed task file that drops straight into the repo's work/ dir.",
159
+ "",
160
+ "The user's explanation:",
161
+ "",
162
+ "```",
163
+ explanation.trim(),
164
+ "```",
165
+ "",
166
+ "The raw explanation is already stored by the system under a",
167
+ "'## Original prompt' section, so do NOT repeat it in your output — write",
168
+ "the structured body only (the section is re-appended for you).",
169
+ "",
170
+ "Task-file conventions (follow them exactly):",
171
+ "",
172
+ TASK_CONVENTIONS,
173
+ "",
174
+ "Respond with ONLY the markdown file content, starting with the opening '---'",
175
+ "line and with no preamble, commentary, or code fences.",
176
+ ].join("\n");
177
+ }
178
+ /** The persisted setting key that controls the drawer's default mode. */
179
+ export const DEFAULT_TASK_MODE_KEY = "defaultTaskMode";
@@ -0,0 +1,99 @@
1
+ import type { RepoOSConfig, Status, Task } from "../core/types.js";
2
+ import type { AgentHandoffRequest, AgentRunner } from "./agents.js";
3
+ import type { TaskCheckManager, TaskCheckListener } from "./task-check.js";
4
+ export type HandoffStep = "validate" | "check" | "commit" | "review" | "main" | "done";
5
+ export interface HandoffResult {
6
+ ok: boolean;
7
+ detail?: string;
8
+ step: HandoffStep;
9
+ }
10
+ /**
11
+ * Finalize one capability issued by an active runner turn.
12
+ *
13
+ * Enforces a hard deadline (600s) on the entire finalization process. If any
14
+ * step (validate, check, commit, review, main) exceeds the deadline, the
15
+ * finalization is abandoned and returned as failed. This ensures the handoff
16
+ * promise never hangs indefinitely.
17
+ */
18
+ export declare function handoffTask(config: RepoOSConfig, task: Task, request: AgentHandoffRequest, onProgress?: (step: HandoffStep) => void, onStatusChange?: (task: Task, prev: Status, next: Status) => void,
19
+ /** Records this finalization's `repoos check` run for the Debug tab (0310). */
20
+ taskChecks?: TaskCheckManager, onTaskCheckEvent?: TaskCheckListener): Promise<HandoffResult>;
21
+ /**
22
+ * On a finalization failure at the `check` step, automatically resume the
23
+ * same engineer session with the check output and ask it to fix (or re-verify,
24
+ * if the failure looks transient) and re-hand-off — up to
25
+ * `MAX_CHECK_RETRY_ATTEMPTS` times. Every other failure step (validate,
26
+ * commit, review, main) is structural/environmental, not something a plain
27
+ * retry of the same session fixes, so only `check` is retried.
28
+ *
29
+ * Returns true when a retry was scheduled. On give-up (cap reached, or no
30
+ * engineer configured) the failure reason is persisted to the task's Activity
31
+ * log via `AgentRunner.persistHandoffFailure` so the task watchdog classifies
32
+ * it correctly instead of falling back to its generic
33
+ * "exited without handoff" guess.
34
+ */
35
+ export declare function scheduleCheckFailureRetry(config: RepoOSConfig, task: Task, result: HandoffResult, runner: AgentRunner,
36
+ /** Called right after `check_retry_count` is persisted so the live index
37
+ * (and its SSE `task.updated` event) picks up the new count immediately —
38
+ * this write bypasses `patchTaskFile`, so nothing else refreshes it. */
39
+ onFileChange?: (absPath: string) => void): boolean;
40
+ /**
41
+ * On a close-out `validating`-phase failure caused by a REAL merge conflict
42
+ * (the candidate's merge of the feature branch into itself failed with named
43
+ * conflicting paths — not the task's own bookkeeping file or `dist/`/
44
+ * `screenshots/`, which auto-resolve, and not an infra failure), automatically
45
+ * resume the task's engineer session and ask it to merge main into ITS OWN
46
+ * branch and resolve the conflict there — the exact manual recovery
47
+ * docs/close-out-pipeline.md prescribes (#0271 follow-up: this was
48
+ * previously always a human/agent-operator manual step, discovered when
49
+ * task #0282 sat failed until someone noticed).
50
+ *
51
+ * Unlike `scheduleCheckFailureRetry`, this does NOT ask the engineer to
52
+ * re-emit the handoff signal — the task is already `review`, and a fresh
53
+ * handoff attempt against an already-`review` task just short-circuits as
54
+ * "already finalized" (see the check near the top of `handoffTask`) without
55
+ * re-running the close-out. Instead, server.ts's `agent.exited` handler
56
+ * watches for this exact session ending while its job is still the
57
+ * failed-on-this-conflict record, and re-enqueues the close-out itself —
58
+ * the same action a human clicking "Move to done" again performs. The
59
+ * engineer's job is just to fix the branch and end its turn.
60
+ *
61
+ * Otherwise mirrors `scheduleCheckFailureRetry` closely: same retry cap
62
+ * shape, same give-up-to-persistHandoffFailure fallback, same
63
+ * do-not-flip-status behavior (the task stays in `review` — TaskCard.vue can
64
+ * label this state the same way it labels a check-failure retry). Capped,
65
+ * because a conflict that survives two resolve attempts is very likely the
66
+ * agent resolving it WRONG in a way that reintroduces the same conflict, not
67
+ * something a third attempt fixes — same logic `MAX_CHECK_RETRY_ATTEMPTS`
68
+ * already encodes.
69
+ *
70
+ * Returns true when a retry was scheduled.
71
+ */
72
+ export declare function scheduleMergeConflictRetry(config: RepoOSConfig, task: Task, reason: string, runner: AgentRunner,
73
+ /** Same purpose as in `scheduleCheckFailureRetry` — let the live index pick
74
+ * up the new retry count immediately via its own SSE event. */
75
+ onFileChange?: (absPath: string) => void): boolean;
76
+ /**
77
+ * Third instance of the same pattern (#0271 follow-up), for the task-watchdog's
78
+ * `exited-without-handoff` classification (task-watchdog.ts): a session ran to
79
+ * completion but its final line wasn't exactly `::repoos-handoff-ready::`, so no
80
+ * handoff ever fired. Previously the watchdog could only surface this — move
81
+ * the task to `review`/`ready` and leave a human to notice and click Restart
82
+ * (task #0268 sat this way until someone asked "why hasn't this recovered on
83
+ * its own").
84
+ *
85
+ * Unlike the other two, this failure has no specific diagnostic to hand back —
86
+ * "you didn't finish right" is vaguer than a named conflict or check output —
87
+ * so it's a strictly weaker signal, which is exactly why the watchdog didn't
88
+ * already do this: auto-resuming on a vague prompt risks looping on genuine
89
+ * confusion, not just fixing a rendering hiccup. The cap bounds that risk the
90
+ * same way it bounds the other two; on exhaustion this returns false and the
91
+ * caller (task-watchdog.ts) falls through to its EXISTING surface behavior —
92
+ * there is no separate give-up path here, unlike the other two schedulers,
93
+ * because surfacing already IS the correct terminal state the watchdog was
94
+ * built for.
95
+ *
96
+ * Returns true when a retry was scheduled; false means "give up, surface it
97
+ * the normal way" — either the cap was hit or no engineer is configured.
98
+ */
99
+ export declare function scheduleHandoffSignalRetry(config: RepoOSConfig, task: Task, runner: AgentRunner, onFileChange?: (absPath: string) => void): boolean;