@repo-os/repoos 0.5.65 → 0.5.67

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 (331) hide show
  1. package/dist/.build-info.json +2 -2
  2. package/dist/.build-stamp.json +1 -1
  3. package/dist/cli/api-route-parity.d.ts +13 -0
  4. package/dist/cli/api-route-parity.js +128 -0
  5. package/dist/cli/cli-session.d.ts +6 -0
  6. package/dist/cli/cli-session.js +56 -0
  7. package/dist/cli/effective-from-api.d.ts +11 -0
  8. package/dist/cli/effective-from-api.js +12 -0
  9. package/dist/cli/help.js +89 -5
  10. package/dist/cli/index.js +76 -2
  11. package/dist/cli/repoos-api.d.ts +52 -0
  12. package/dist/cli/repoos-api.js +164 -0
  13. package/dist/commands/check.js +118 -77
  14. package/dist/commands/control-api.d.ts +13 -0
  15. package/dist/commands/control-api.js +527 -0
  16. package/dist/commands/docs-io.d.ts +19 -0
  17. package/dist/commands/docs-io.js +66 -0
  18. package/dist/commands/docs.d.ts +9 -0
  19. package/dist/commands/docs.js +49 -0
  20. package/dist/commands/init.d.ts +85 -1
  21. package/dist/commands/init.js +633 -82
  22. package/dist/commands/service.js +22 -3
  23. package/dist/commands/tasks.d.ts +13 -0
  24. package/dist/commands/tasks.js +178 -21
  25. package/dist/core/agent-run-health.d.ts +59 -0
  26. package/dist/core/agent-run-health.js +173 -0
  27. package/dist/core/approval-policy.d.ts +45 -0
  28. package/dist/core/approval-policy.js +161 -0
  29. package/dist/core/attention.d.ts +83 -0
  30. package/dist/core/attention.js +261 -0
  31. package/dist/core/check-buildable-project.d.ts +16 -0
  32. package/dist/core/check-buildable-project.js +34 -0
  33. package/dist/core/check-failure-summary.d.ts +1 -1
  34. package/dist/core/check-failure-summary.js +1 -1
  35. package/dist/core/check-store.d.ts +23 -2
  36. package/dist/core/check-store.js +66 -7
  37. package/dist/core/close-out-failure.d.ts +4 -11
  38. package/dist/core/close-out-failure.js +20 -0
  39. package/dist/core/close-out-timing.d.ts +28 -0
  40. package/dist/core/close-out-timing.js +81 -0
  41. package/dist/core/config.d.ts +17 -0
  42. package/dist/core/config.js +546 -53
  43. package/dist/core/cto-actions.d.ts +56 -0
  44. package/dist/core/cto-actions.js +98 -0
  45. package/dist/core/db.d.ts +6 -4
  46. package/dist/core/db.js +15 -10
  47. package/dist/core/dependency-install.d.ts +85 -0
  48. package/dist/core/dependency-install.js +363 -0
  49. package/dist/core/doctor.js +71 -0
  50. package/dist/core/git.d.ts +48 -2
  51. package/dist/core/git.js +97 -13
  52. package/dist/core/indexer.js +7 -2
  53. package/dist/core/input.js +26 -19
  54. package/dist/core/lockfile-conflict.d.ts +12 -0
  55. package/dist/core/lockfile-conflict.js +83 -0
  56. package/dist/core/models.d.ts +2 -0
  57. package/dist/core/models.js +79 -4
  58. package/dist/core/needs-input.d.ts +2 -0
  59. package/dist/core/needs-input.js +21 -1
  60. package/dist/core/page-browser-gate.d.ts +50 -0
  61. package/dist/core/page-browser-gate.js +130 -0
  62. package/dist/core/process-group.d.ts +20 -0
  63. package/dist/core/process-group.js +85 -0
  64. package/dist/core/project-docs.d.ts +96 -0
  65. package/dist/core/project-docs.js +544 -0
  66. package/dist/core/providers/harness-auth.d.ts +21 -0
  67. package/dist/core/providers/harness-auth.js +87 -0
  68. package/dist/core/remote-pool-queue.d.ts +13 -0
  69. package/dist/core/remote-pool-queue.js +20 -0
  70. package/dist/core/repoos.js +4 -0
  71. package/dist/core/review-findings.d.ts +2 -0
  72. package/dist/core/review-findings.js +43 -0
  73. package/dist/core/review-passes.d.ts +27 -0
  74. package/dist/core/review-passes.js +90 -0
  75. package/dist/core/review-report-sections.d.ts +14 -0
  76. package/dist/core/review-report-sections.js +59 -0
  77. package/dist/core/shot-plan.d.ts +35 -0
  78. package/dist/core/shot-plan.js +44 -26
  79. package/dist/core/storage/index.d.ts +11 -0
  80. package/dist/core/storage/index.js +11 -0
  81. package/dist/core/storage/local.d.ts +11 -0
  82. package/dist/core/storage/local.js +118 -0
  83. package/dist/core/storage/registry.d.ts +65 -0
  84. package/dist/core/storage/registry.js +127 -0
  85. package/dist/core/storage/types.d.ts +94 -0
  86. package/dist/core/storage/types.js +23 -0
  87. package/dist/core/story-context.d.ts +31 -0
  88. package/dist/core/story-context.js +201 -0
  89. package/dist/core/task-dependencies.js +6 -0
  90. package/dist/core/task-fields.d.ts +19 -0
  91. package/dist/core/task-fields.js +48 -0
  92. package/dist/core/task-proof-commands.d.ts +10 -0
  93. package/dist/core/task-proof-commands.js +59 -0
  94. package/dist/core/task-selection.d.ts +97 -0
  95. package/dist/core/task-selection.js +151 -0
  96. package/dist/core/task-underspecified.d.ts +37 -1
  97. package/dist/core/task-underspecified.js +97 -2
  98. package/dist/core/task.js +35 -0
  99. package/dist/core/types.d.ts +259 -8
  100. package/dist/core/types.js +1 -0
  101. package/dist/core/ui-index.d.ts +7 -0
  102. package/dist/core/ui-index.js +10 -0
  103. package/dist/core/ui-verification-config.d.ts +6 -0
  104. package/dist/core/ui-verification-config.js +11 -0
  105. package/dist/server/__tests__/integration-job.test.js +14 -1
  106. package/dist/server/agents.d.ts +141 -13
  107. package/dist/server/agents.js +664 -80
  108. package/dist/server/api-route-catalog.d.ts +12 -0
  109. package/dist/server/api-route-catalog.js +11 -0
  110. package/dist/server/approval-policy.d.ts +15 -0
  111. package/dist/server/approval-policy.js +94 -0
  112. package/dist/server/attachments.d.ts +14 -1
  113. package/dist/server/attachments.js +36 -13
  114. package/dist/server/attention-events.d.ts +8 -0
  115. package/dist/server/attention-events.js +88 -0
  116. package/dist/server/attention-feed.d.ts +21 -0
  117. package/dist/server/attention-feed.js +41 -0
  118. package/dist/server/attention-notify.d.ts +15 -0
  119. package/dist/server/attention-notify.js +51 -0
  120. package/dist/server/auto-engineering.d.ts +27 -1
  121. package/dist/server/auto-engineering.js +152 -122
  122. package/dist/server/close-out-repair.d.ts +10 -0
  123. package/dist/server/close-out-repair.js +100 -0
  124. package/dist/server/close-out-requeue.d.ts +15 -0
  125. package/dist/server/close-out-requeue.js +35 -0
  126. package/dist/server/config-watch.d.ts +41 -0
  127. package/dist/server/config-watch.js +169 -0
  128. package/dist/server/cto-action-rates.d.ts +6 -0
  129. package/dist/server/cto-action-rates.js +65 -0
  130. package/dist/server/cto-actions.d.ts +39 -0
  131. package/dist/server/cto-actions.js +253 -0
  132. package/dist/server/cto-monitor.d.ts +3 -0
  133. package/dist/server/cto-monitor.js +25 -3
  134. package/dist/server/cto.js +29 -8
  135. package/dist/server/debug-tldr.d.ts +1 -1
  136. package/dist/server/debug-tldr.js +2 -0
  137. package/dist/server/distribution.d.ts +13 -0
  138. package/dist/server/distribution.js +37 -0
  139. package/dist/server/done.d.ts +13 -0
  140. package/dist/server/done.js +2 -4
  141. package/dist/server/engineer-launch.d.ts +27 -0
  142. package/dist/server/engineer-launch.js +75 -0
  143. package/dist/server/engineer-remote-self-check.d.ts +49 -0
  144. package/dist/server/engineer-remote-self-check.js +184 -0
  145. package/dist/server/handoff-failure-loop.d.ts +57 -0
  146. package/dist/server/handoff-failure-loop.js +278 -0
  147. package/dist/server/handoff.d.ts +8 -2
  148. package/dist/server/handoff.js +64 -60
  149. package/dist/server/integration-job.d.ts +7 -0
  150. package/dist/server/integration-job.js +6 -3
  151. package/dist/server/integration-orchestrator.d.ts +25 -17
  152. package/dist/server/integration-orchestrator.js +170 -106
  153. package/dist/server/live-index.d.ts +23 -0
  154. package/dist/server/live-index.js +13 -1
  155. package/dist/server/model-test.d.ts +12 -1
  156. package/dist/server/model-test.js +56 -6
  157. package/dist/server/notifications/reasons.js +1 -0
  158. package/dist/server/pre-review-remote-gate.d.ts +13 -2
  159. package/dist/server/pre-review-remote-gate.js +49 -7
  160. package/dist/server/preview.d.ts +63 -0
  161. package/dist/server/preview.js +209 -24
  162. package/dist/server/reload.d.ts +4 -0
  163. package/dist/server/reload.js +6 -0
  164. package/dist/server/remote-validation.d.ts +380 -3
  165. package/dist/server/remote-validation.js +1188 -131
  166. package/dist/server/request-close-out.d.ts +38 -0
  167. package/dist/server/request-close-out.js +175 -0
  168. package/dist/server/review.d.ts +20 -2
  169. package/dist/server/review.js +151 -64
  170. package/dist/server/routes/attention.d.ts +3 -0
  171. package/dist/server/routes/attention.js +20 -0
  172. package/dist/server/routes/config.js +41 -5
  173. package/dist/server/routes/hub.js +3 -2
  174. package/dist/server/routes/index.d.ts +1 -0
  175. package/dist/server/routes/index.js +1 -0
  176. package/dist/server/routes/model-providers.d.ts +8 -3
  177. package/dist/server/routes/model-providers.js +11 -5
  178. package/dist/server/routes/release.d.ts +4 -0
  179. package/dist/server/routes/release.js +11 -0
  180. package/dist/server/routes/router.d.ts +5 -0
  181. package/dist/server/routes/router.js +7 -0
  182. package/dist/server/routes/tasks.d.ts +10 -0
  183. package/dist/server/routes/tasks.js +347 -33
  184. package/dist/server/routes/types.d.ts +7 -1
  185. package/dist/server/server.js +172 -12
  186. package/dist/server/shot-capture.js +6 -0
  187. package/dist/server/task-underspecified-flag.d.ts +25 -2
  188. package/dist/server/task-underspecified-flag.js +87 -5
  189. package/dist/server/task-watchdog.d.ts +8 -0
  190. package/dist/server/task-watchdog.js +44 -3
  191. package/dist/server/telegram/commands.js +2 -2
  192. package/dist/server/ui-handoff-gate.d.ts +53 -0
  193. package/dist/server/ui-handoff-gate.js +255 -0
  194. package/dist/server/write.d.ts +18 -0
  195. package/dist/server/write.js +53 -6
  196. package/dist/ui/assets/AgentModelModal-DhY5NOZ1.js +1 -0
  197. package/dist/ui/assets/{AgentsView-B-VbBCBQ.css → AgentsView-B_yMHKiT.css} +1 -1
  198. package/dist/ui/assets/AgentsView-Dxv4s_ff.js +1 -0
  199. package/dist/ui/assets/ChecksView-BGUWmHHI.js +0 -0
  200. package/dist/ui/assets/{ChecksView-BmdCOghF.css → ChecksView-DAZIbg5B.css} +1 -1
  201. package/dist/ui/assets/ContextView-BxlQCnkt.js +4 -0
  202. package/dist/ui/assets/DashboardView-2xJiQLBz.js +1 -0
  203. package/dist/ui/assets/{DashboardView-AGzNLRGm.css → DashboardView-Ca3kwSow.css} +1 -1
  204. package/dist/ui/assets/{DeleteConfirmDialog-C8JmtQyq.js → DeleteConfirmDialog-B7_fR8N6.js} +1 -1
  205. package/dist/ui/assets/{DeploymentsView-DuhTjFqk.js → DeploymentsView-oXkw2BSL.js} +1 -1
  206. package/dist/ui/assets/DiffView-CcApcT6t.css +1 -0
  207. package/dist/ui/assets/DiffView-qdIZFGbS.js +4 -0
  208. package/dist/ui/assets/FailedTestsList-92u0pppH.js +1 -0
  209. package/dist/ui/assets/InputsView-DtPR9kyl.js +1 -0
  210. package/dist/ui/assets/{LoginView-BrQXEW51.js → LoginView-DWEf0kRL.js} +1 -1
  211. package/dist/ui/assets/ReleasesView-JG7zXQPU.js +5 -0
  212. package/dist/ui/assets/ReleasesView-mGdLAyHK.css +1 -0
  213. package/dist/ui/assets/{SettingsView-C7KstbuH.css → SettingsView-BlDj5TRt.css} +1 -1
  214. package/dist/ui/assets/SettingsView-C8blwbyh.js +4 -0
  215. package/dist/ui/assets/StoriesView-1FeSeEMD.js +1 -0
  216. package/dist/ui/assets/{VoiceDictate-DlhkQVor.js → VoiceDictate-sbY2kf3g.js} +1 -1
  217. package/dist/ui/assets/WorkView-Y9JCMf7I.js +2 -0
  218. package/dist/ui/assets/{WorkView-bYMFgM5P.css → WorkView-vT6nLFuM.css} +1 -1
  219. package/dist/ui/assets/{abnfDiagram-VCTEODGH-D7K5xY21.js → abnfDiagram-VCTEODGH-DbjEiPQk.js} +1 -1
  220. package/dist/ui/assets/architecture-7GRP2DOG-D3Zr7GMJ.js +1 -0
  221. package/dist/ui/assets/{architectureDiagram-5GKGNRK7-B_BA-0Uq.js → architectureDiagram-5GKGNRK7-iuYOljXl.js} +1 -1
  222. package/dist/ui/assets/{blockDiagram-I7D4REHJ-Cpb81UDE.js → blockDiagram-I7D4REHJ-BMQZCcl4.js} +1 -1
  223. package/dist/ui/assets/{button-Q8k6lD-C.js → button-uIODk23A.js} +1 -1
  224. package/dist/ui/assets/{c4Diagram-7LVT6UL2-V3L4erkN.js → c4Diagram-7LVT6UL2-CYARlZF5.js} +1 -1
  225. package/dist/ui/assets/channel-CsOxGNSt.js +1 -0
  226. package/dist/ui/assets/{checkbox-Cx8SQV7s.js → checkbox-EUK8itx1.js} +1 -1
  227. package/dist/ui/assets/{chunk-4HAMMTFA-DEg9Tw-P.js → chunk-4HAMMTFA-C-0fE7Hb.js} +1 -1
  228. package/dist/ui/assets/{chunk-75Z2AOVW-B3NLZ27i.js → chunk-75Z2AOVW-9h5YgMdt.js} +1 -1
  229. package/dist/ui/assets/{chunk-DU6HZSFF-DL1X-Drb.js → chunk-DU6HZSFF-9BISDKkf.js} +1 -1
  230. package/dist/ui/assets/{chunk-F27PBJKO-CtsVl7e2.js → chunk-F27PBJKO-VJth4ETL.js} +1 -1
  231. package/dist/ui/assets/{chunk-GMAD6QVW-DVbfeU88.js → chunk-GMAD6QVW-CMTnCPtC.js} +1 -1
  232. package/dist/ui/assets/{chunk-GVQU2GXP-DrRVvPhy.js → chunk-GVQU2GXP-bjPEFMMp.js} +1 -1
  233. package/dist/ui/assets/{chunk-IMKFNOWR-D9x4VaSZ.js → chunk-IMKFNOWR-C1BByNVf.js} +1 -1
  234. package/dist/ui/assets/{chunk-L3NEJ4N5-CQ838V5P.js → chunk-L3NEJ4N5-whMpUmjS.js} +1 -1
  235. package/dist/ui/assets/{chunk-OSK3NFVY-CscJ3Ugl.js → chunk-OSK3NFVY-B6Ch9_w3.js} +1 -1
  236. package/dist/ui/assets/{chunk-P2QGCYS3-Dn_74uGA.js → chunk-P2QGCYS3-CWRV4Ah9.js} +1 -1
  237. package/dist/ui/assets/{chunk-POPQ4Y6H-BWQVTVVG.js → chunk-POPQ4Y6H-CcHY8rtu.js} +1 -1
  238. package/dist/ui/assets/{chunk-PWAF6VOD-BEip3UPe.js → chunk-PWAF6VOD-BC0VBnZU.js} +1 -1
  239. package/dist/ui/assets/{chunk-SHT3W25Y-BBhLU2Ko.js → chunk-SHT3W25Y-DfFIsip4.js} +1 -1
  240. package/dist/ui/assets/{chunk-SVP7TREG-BAIckYL1.js → chunk-SVP7TREG-C3xL4bvJ.js} +1 -1
  241. package/dist/ui/assets/{chunk-TICWLB2K-DL38vvUq.js → chunk-TICWLB2K-Bt1FxNVL.js} +1 -1
  242. package/dist/ui/assets/classDiagram-ZZMXUADV-DXz5ZBJc.js +1 -0
  243. package/dist/ui/assets/classDiagram-v2-VYDZK3BY-DXz5ZBJc.js +1 -0
  244. package/dist/ui/assets/{cynefin-OW5HDTMX-BtNk2QXI.js → cynefin-OW5HDTMX-BPQzV4Oh.js} +1 -1
  245. package/dist/ui/assets/{cynefinDiagram-5FMLGOSQ-C1RB8hg-.js → cynefinDiagram-5FMLGOSQ-BTmi3fdq.js} +1 -1
  246. package/dist/ui/assets/{dagre-GXQ25YYZ-BK1Ciodj.js → dagre-GXQ25YYZ-EBMMAtpz.js} +1 -1
  247. package/dist/ui/assets/{diagram-S7CK7UJ4-C0Kgo7tc.js → diagram-S7CK7UJ4-BaEfBV0o.js} +1 -1
  248. package/dist/ui/assets/{diagram-UQ7AKVKN-B64zLMX6.js → diagram-UQ7AKVKN-BRL9YWBF.js} +1 -1
  249. package/dist/ui/assets/{diagram-VSXAHHWV-CzrxcSQH.js → diagram-VSXAHHWV-CI_jmzDG.js} +1 -1
  250. package/dist/ui/assets/{diagram-VX7I27RA-yjdIqP0q.js → diagram-VX7I27RA-DoZgqatt.js} +1 -1
  251. package/dist/ui/assets/{diagram-Z3DM3KII-DOyxmmRK.js → diagram-Z3DM3KII-CEZOwotu.js} +1 -1
  252. package/dist/ui/assets/{ebnfDiagram-PWID7BFC-igftIl5p.js → ebnfDiagram-PWID7BFC-DoHUC2pF.js} +1 -1
  253. package/dist/ui/assets/{erDiagram-RLTQ6QDP-D1YF1lZ2.js → erDiagram-RLTQ6QDP-Bpj96FeR.js} +1 -1
  254. package/dist/ui/assets/eventmodeling-NTZA5JFV-BP096yAZ.js +1 -0
  255. package/dist/ui/assets/flowDiagram-HODETNUW-CGQzpVgi.js +1 -0
  256. package/dist/ui/assets/{ganttDiagram-EL5Y4UJY-7cJOmpvL.js → ganttDiagram-EL5Y4UJY-BXWL7ow_.js} +1 -1
  257. package/dist/ui/assets/{gitGraph-4MIJSDKK-vTrxvPkn.js → gitGraph-4MIJSDKK-CygEn6Pm.js} +1 -1
  258. package/dist/ui/assets/{gitGraphDiagram-WWUBYQGX-BzFDa_ja.js → gitGraphDiagram-WWUBYQGX-BEN8kG8Y.js} +1 -1
  259. package/dist/ui/assets/index-CNf-gQPU.js +54 -0
  260. package/dist/ui/assets/index-Dp0zyDhg.css +1 -0
  261. package/dist/ui/assets/{info-A6RAGUB7-DZ5p-DTt.js → info-A6RAGUB7-CG18k5Tc.js} +1 -1
  262. package/dist/ui/assets/{infoDiagram-27XIBGKW-Dt9fTB-K.js → infoDiagram-27XIBGKW-BVEnM-o1.js} +1 -1
  263. package/dist/ui/assets/{ishikawaDiagram-5VMMS53U-DzWqCZwA.js → ishikawaDiagram-5VMMS53U-Bz24j_3Q.js} +1 -1
  264. package/dist/ui/assets/{journeyDiagram-3NMN7TZE-DPqO0nTE.js → journeyDiagram-3NMN7TZE-Cw49nq1P.js} +1 -1
  265. package/dist/ui/assets/{kanban-definition-UXKFOSKX-Csmtd8-e.js → kanban-definition-UXKFOSKX-Ck2BMOZW.js} +1 -1
  266. package/dist/ui/assets/{line-BhE0sIdC.js → line-3ywrXSvS.js} +1 -1
  267. package/dist/ui/assets/{mermaid-parser.core-DXuNQalk.js → mermaid-parser.core-pTkacvis.js} +3 -3
  268. package/dist/ui/assets/{mermaid.core-CBbbhK6t.js → mermaid.core-KI_Ug6Sr.js} +4 -4
  269. package/dist/ui/assets/{mindmap-definition-YA3MSWOX-DVfGFieO.js → mindmap-definition-YA3MSWOX-CK7Qs2O6.js} +1 -1
  270. package/dist/ui/assets/{packet-AYTQ26CC-B1T01rik.js → packet-AYTQ26CC-CB1LAlf8.js} +1 -1
  271. package/dist/ui/assets/{pegDiagram-XKGWAZYB-DX3MmX7k.js → pegDiagram-XKGWAZYB-C7wyvhpZ.js} +1 -1
  272. package/dist/ui/assets/{pie-WAS4IAKB-CYWT14Ey.js → pie-WAS4IAKB-CtkGbS6o.js} +1 -1
  273. package/dist/ui/assets/{pieDiagram-E7YTZNPT-CnZwSuIL.js → pieDiagram-E7YTZNPT-DqYUbDdy.js} +1 -1
  274. package/dist/ui/assets/{quadrantDiagram-AXDQQJYC-TlCorrVm.js → quadrantDiagram-AXDQQJYC-BVzreR-s.js} +1 -1
  275. package/dist/ui/assets/{radar-RG4KPBEZ-zD8NcNrm.js → radar-RG4KPBEZ-ElYRqk-4.js} +1 -1
  276. package/dist/ui/assets/{railroad-74A4TZTK-CZZJ_fBU.js → railroad-74A4TZTK-XUiiGOGw.js} +1 -1
  277. package/dist/ui/assets/railroad-abnf-HS5TGJTU-ebjcwFgX.js +1 -0
  278. package/dist/ui/assets/railroad-ebnf-LZEXJU2U-Z5mPRjaM.js +1 -0
  279. package/dist/ui/assets/railroad-peg-WCYAUIDC-Ds7v_hnS.js +1 -0
  280. package/dist/ui/assets/{railroadDiagram-O6MQD6OU-CcUsh2xT.js → railroadDiagram-O6MQD6OU-C-um7ttl.js} +1 -1
  281. package/dist/ui/assets/repo-XLbfa7u-.js +2 -0
  282. package/dist/ui/assets/{requirementDiagram-BXWQKSXE-BRs-m-IN.js → requirementDiagram-BXWQKSXE-CB77SNNB.js} +1 -1
  283. package/dist/ui/assets/{sankeyDiagram-P5KCCOFB-DZr6ULrz.js → sankeyDiagram-P5KCCOFB-D_qnpDIk.js} +1 -1
  284. package/dist/ui/assets/{sequenceDiagram-WJ2MYXX4-DG3jgNAD.js → sequenceDiagram-WJ2MYXX4-DrR-O2gR.js} +1 -1
  285. package/dist/ui/assets/{stateDiagram-D77RDMKH-BdOc9c8v.js → stateDiagram-D77RDMKH-Mz-Cjby1.js} +1 -1
  286. package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-cIIjufMH.js +1 -0
  287. package/dist/ui/assets/{swimlanes-42K2YHIH-CNGoL8K1.js → swimlanes-42K2YHIH-BwFAfw2O.js} +1 -1
  288. package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-BT2MlBys.js +8 -0
  289. package/dist/ui/assets/{timeline-definition-24CTP7MA-22MZfL5_.js → timeline-definition-24CTP7MA-DS_U9LBk.js} +1 -1
  290. package/dist/ui/assets/{title-DRn1SiDB.js → title-ClcAtTzM.js} +1 -1
  291. package/dist/ui/assets/{treeView-Q6P3EWNA-BD4hTxfi.js → treeView-Q6P3EWNA-D0Ds2Pnh.js} +1 -1
  292. package/dist/ui/assets/{treemap-WGGIJYW6-Cemii_iW.js → treemap-WGGIJYW6-Dr6ADVsx.js} +1 -1
  293. package/dist/ui/assets/{vendor-ui-DvMtGHLC.js → vendor-ui-DsOjPSxk.js} +2 -2
  294. package/dist/ui/assets/{vennDiagram-4TSXK5OY-NxbwfKSB.js → vennDiagram-4TSXK5OY-CcEibS-z.js} +1 -1
  295. package/dist/ui/assets/{wardley-WFR3VGLG-CAkXWtRC.js → wardley-WFR3VGLG-D19UeE7v.js} +1 -1
  296. package/dist/ui/assets/{wardleyDiagram-VM6X3IG4-Ukj6iPYI.js → wardleyDiagram-VM6X3IG4-m2YJGsr8.js} +1 -1
  297. package/dist/ui/assets/{xychartDiagram-S5SC5T6Z-ESpPlWUQ.js → xychartDiagram-S5SC5T6Z-D-ENA4CQ.js} +1 -1
  298. package/dist/ui/index.html +11 -11
  299. package/dist/ui/sw.js +2 -2
  300. package/dist/ui-app/src/lib/effective-agent.d.ts +47 -0
  301. package/dist/ui-app/src/lib/effective-agent.js +37 -0
  302. package/package.json +1 -1
  303. package/dist/ui/assets/AgentModelModal-B8ihisnq.js +0 -1
  304. package/dist/ui/assets/AgentsView-DC2kfIH_.js +0 -1
  305. package/dist/ui/assets/ChecksView-DwfZfOc9.js +0 -0
  306. package/dist/ui/assets/ContextView-2tUPHg0-.js +0 -4
  307. package/dist/ui/assets/DashboardView-BHv_FI1_.js +0 -1
  308. package/dist/ui/assets/DiffView-DphAy_We.js +0 -4
  309. package/dist/ui/assets/DiffView-gEzzmiij.css +0 -1
  310. package/dist/ui/assets/FailedTestsList-Dr_4RX1g.js +0 -1
  311. package/dist/ui/assets/InputsView-YBZYQo72.js +0 -1
  312. package/dist/ui/assets/ReleasesView-BQYf9YdH.js +0 -5
  313. package/dist/ui/assets/ReleasesView-CDa4RD79.css +0 -1
  314. package/dist/ui/assets/SettingsView-CwgTYYnZ.js +0 -4
  315. package/dist/ui/assets/StoriesView-DHA8hQcu.js +0 -1
  316. package/dist/ui/assets/WorkView-DYpJLDv-.js +0 -2
  317. package/dist/ui/assets/architecture-7GRP2DOG-BILS7kzQ.js +0 -1
  318. package/dist/ui/assets/channel-C2fJCoOG.js +0 -1
  319. package/dist/ui/assets/classDiagram-ZZMXUADV-D2HbZ8pG.js +0 -1
  320. package/dist/ui/assets/classDiagram-v2-VYDZK3BY-D2HbZ8pG.js +0 -1
  321. package/dist/ui/assets/config-Brg64iOP.js +0 -1
  322. package/dist/ui/assets/eventmodeling-NTZA5JFV-Cq__3onz.js +0 -1
  323. package/dist/ui/assets/flowDiagram-HODETNUW-oqazLecl.js +0 -1
  324. package/dist/ui/assets/index-BzQofiD_.js +0 -54
  325. package/dist/ui/assets/index-CjufFN0L.css +0 -1
  326. package/dist/ui/assets/railroad-abnf-HS5TGJTU-CfWwDqoE.js +0 -1
  327. package/dist/ui/assets/railroad-ebnf-LZEXJU2U-BHW-SzuB.js +0 -1
  328. package/dist/ui/assets/railroad-peg-WCYAUIDC-DqepkVj5.js +0 -1
  329. package/dist/ui/assets/repo-CMEa_Ho-.js +0 -2
  330. package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-C-B8vQtJ.js +0 -1
  331. package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-l739H5Fp.js +0 -8
@@ -1,5 +1,5 @@
1
1
  {
2
- "hash": "5139d67402c747817a7237d45bbdf3dc259350732a389c4dc4f1037533e74fc0",
3
- "version": "0.5.65",
2
+ "hash": "93934ce20f177f2d06114caa9df33fcc13b17c9f8b1694247b2cb6282628fab8",
3
+ "version": "0.5.67",
4
4
  "devUi": false
5
5
  }
@@ -1,3 +1,3 @@
1
1
  {
2
- "generatedAt": "2026-10-05T04:53:51.934Z"
2
+ "generatedAt": "2026-10-07T10:18:27.380Z"
3
3
  }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CLI/API parity map (#0723). Every registered `/api/*` route must match at
3
+ * least one rule here or the parity test fails.
4
+ *
5
+ * Allowlist entries use exact method + pattern strings from `Router.listRoutes()`
6
+ * — no broad substring matchers that could hide new routes.
7
+ */
8
+ export interface ApiRouteRef {
9
+ method: string;
10
+ pattern: string;
11
+ }
12
+ export declare function isApiRouteCovered(route: ApiRouteRef): boolean;
13
+ export declare function uncoveredApiRoutes(routes: readonly ApiRouteRef[]): ApiRouteRef[];
@@ -0,0 +1,128 @@
1
+ /**
2
+ * CLI/API parity map (#0723). Every registered `/api/*` route must match at
3
+ * least one rule here or the parity test fails.
4
+ *
5
+ * Allowlist entries use exact method + pattern strings from `Router.listRoutes()`
6
+ * — no broad substring matchers that could hide new routes.
7
+ */
8
+ const exact = (method, pattern) => (r) => r.method === method && r.pattern === pattern;
9
+ const re = (method, patternSource) => (r) => r.method === method && r.pattern === patternSource;
10
+ /** Routes implemented by the server-backed control CLI (#0723). */
11
+ const CONTROL_API_MATCHERS = [
12
+ re("POST", /^\/api\/tasks\/([^/]+)\/(start|pause|message|done)$/.source),
13
+ re("POST", /^\/api\/tasks\/([^/]+)\/preview$/.source),
14
+ re("POST", /^\/api\/tasks\/([^/]+)\/preview\/stop$/.source),
15
+ exact("GET", "/api/config"),
16
+ exact("PATCH", "/api/config"),
17
+ exact("GET", "/api/remote-validation/status"),
18
+ exact("POST", "/api/remote-validation/test"),
19
+ exact("GET", "/api/agents/running"),
20
+ exact("GET", "/api/stats/board"),
21
+ // `repoos review` → PATCH status=review; `repoos override` → PATCH overrides
22
+ re("PATCH", /^\/api\/tasks\/([^/]+)$/.source),
23
+ ];
24
+ /** Routes covered by existing file-level CLI commands (not HTTP). */
25
+ const FILE_CLI_MATCHERS = [
26
+ exact("GET", "/api/health"),
27
+ exact("GET", "/api/tasks"),
28
+ re("GET", /^\/api\/tasks\/([^/]+)$/.source),
29
+ exact("POST", "/api/tasks"),
30
+ re("DELETE", /^\/api\/tasks\/([^/]+)$/.source),
31
+ exact("GET", "/api/check-plan"),
32
+ ];
33
+ /** UI-only, SSE/hub, auth, or internal routes — no CLI required. */
34
+ const UI_ONLY_MATCHERS = [
35
+ (r) => r.pattern.startsWith("/api/auth/"),
36
+ (r) => r.pattern.startsWith("/api/hub/"),
37
+ (r) => r.pattern.startsWith("/api/telegram/"),
38
+ exact("GET", "/api/index"),
39
+ exact("GET", "/api/board"),
40
+ exact("GET", "/api/counts"),
41
+ exact("GET", "/api/docs"),
42
+ (r) => r.pattern.startsWith("/api/repo/"),
43
+ (r) => r.pattern.startsWith("/api/inputs"),
44
+ (r) => r.pattern.startsWith("/api/skills"),
45
+ (r) => r.pattern.startsWith("/api/skill-registry"),
46
+ (r) => r.pattern.startsWith("/api/stories"),
47
+ exact("GET", "/api/system"),
48
+ exact("GET", "/api/system/logs"),
49
+ (r) => r.pattern.startsWith("/api/support/"),
50
+ (r) => r.pattern.startsWith("/api/tunnel/"),
51
+ (r) => r.pattern.startsWith("/api/release"),
52
+ (r) => r.pattern.startsWith("/api/deployments"),
53
+ (r) => r.pattern.startsWith("/api/chat"),
54
+ (r) => r.pattern.startsWith("/api/debugger"),
55
+ re("GET", /^\/api\/tasks\/([^/]+)\/debugger$/.source),
56
+ re("POST", /^\/api\/tasks\/([^/]+)\/debugger\/message$/.source),
57
+ re("POST", /^\/api\/tasks\/([^/]+)\/debugger\/interrupt$/.source),
58
+ re("POST", /^\/api\/tasks\/([^/]+)\/debugger\/send-to-engineer$/.source),
59
+ re("POST", /^\/api\/tasks\/([^/]+)\/debugger\/send-to-pm$/.source),
60
+ re("POST", /^\/api\/agents\/built-in\/([^/]+)\/run$/.source),
61
+ (r) => r.pattern.startsWith("/api/cto"),
62
+ exact("GET", "/api/stats/by-type"),
63
+ exact("GET", "/api/stats/daily"),
64
+ exact("POST", "/api/system/kill-process"),
65
+ exact("GET", "/api/system/run-tests"),
66
+ exact("POST", "/api/system/run-tests"),
67
+ exact("GET", "/api/attention"),
68
+ exact("GET", "/api/check-runs"),
69
+ (r) => r.pattern.startsWith("/api/integration"),
70
+ exact("GET", "/api/close-out/outcomes"),
71
+ re("GET", /^\/api\/tasks\/([^/]+)\/integration-job$/.source),
72
+ re("POST", /^\/api\/tasks\/([^/]+)\/done\/cancel$/.source),
73
+ re("POST", /^\/api\/tasks\/([^/]+)\/worktree-handoff\/discard$/.source),
74
+ re("GET", /^\/api\/tasks\/([^/]+)\/review$/.source),
75
+ re("POST", /^\/api\/tasks\/([^/]+)\/review\/again$/.source),
76
+ re("POST", /^\/api\/tasks\/([^/]+)\/review\/message$/.source),
77
+ re("POST", /^\/api\/tasks\/([^/]+)\/pm\/message$/.source),
78
+ re("POST", /^\/api\/tasks\/([^/]+)\/pm\/interrupt$/.source),
79
+ re("GET", /^\/api\/tasks\/([^/]+)\/attachments\/([^/]+)$/.source),
80
+ re("POST", /^\/api\/tasks\/([^/]+)\/attachments$/.source),
81
+ re("GET", /^\/api\/tasks\/([^/]+)\/shots$/.source),
82
+ re("POST", /^\/api\/tasks\/([^/]+)\/shots$/.source),
83
+ re("GET", /^\/api\/tasks\/([^/]+)\/shots\/([^/]+)$/.source),
84
+ re("DELETE", /^\/api\/tasks\/([^/]+)\/shots\/([^/]+)$/.source),
85
+ re("GET", /^\/api\/tasks\/([^/]+)\/ui-verification$/.source),
86
+ re("POST", /^\/api\/tasks\/([^/]+)\/needs-input\/dismiss$/.source),
87
+ re("POST", /^\/api\/tasks\/([^/]+)\/clear-worktree$/.source),
88
+ re("GET", /^\/api\/tasks\/([^/]+)\/output$/.source),
89
+ re("GET", /^\/api\/tasks\/([^/]+)\/logs$/.source),
90
+ re("GET", /^\/api\/tasks\/([^/]+)\/checks$/.source),
91
+ re("GET", /^\/api\/tasks\/([^/]+)\/stats$/.source),
92
+ re("GET", /^\/api\/tasks\/([^/]+)\/diff-stats$/.source),
93
+ re("GET", /^\/api\/tasks\/([^/]+)\/diff$/.source),
94
+ re("GET", /^\/api\/tasks\/([^/]+)\/merge-conflict$/.source),
95
+ re("GET", /^\/api\/tasks\/([^/]+)\/worktree-dirty$/.source),
96
+ re("GET", /^\/api\/tasks\/([^/]+)\/file$/.source),
97
+ re("GET", /^\/api\/tasks\/([^/]+)\/remote-validation\/log$/.source),
98
+ re("GET", /^\/api\/tasks\/([^/]+)\/remote-validation\/events$/.source),
99
+ exact("GET", "/api/config/raw"),
100
+ exact("PUT", "/api/config/raw"),
101
+ (r) => r.pattern.startsWith("/api/dev/"),
102
+ (r) => r.pattern.startsWith("/api/models"),
103
+ (r) => r.pattern.startsWith("/api/playground"),
104
+ (r) => r.pattern.startsWith("/api/model-providers"),
105
+ exact("GET", "/api/agents/queued"),
106
+ exact("GET", "/api/agents/detect"),
107
+ exact("GET", "/api/agents/detect/stream"),
108
+ exact("POST", "/api/agents/updates"),
109
+ re("GET", /^\/api\/agents\/([^/]+)\/logs$/.source),
110
+ (r) => r.pattern.startsWith("/api/ntfy/"),
111
+ exact("POST", "/api/transcribe"),
112
+ (r) => r.pattern.startsWith("/api/service/"),
113
+ exact("POST", "/api/server/restart"),
114
+ re("POST", /^\/api\/tasks\/([^/]+)\/(sync|hotfix|abandon|reopen|archive|unarchive)$/.source),
115
+ exact("POST", "/api/tasks/freeform"),
116
+ exact("POST", "/api/docs/create"),
117
+ exact("POST", "/api/docs/freeform"),
118
+ re("GET", /^\/api\/freeform\/runs\/([^/]+)$/.source),
119
+ ];
120
+ const ALL_MATCHERS = [...CONTROL_API_MATCHERS, ...FILE_CLI_MATCHERS, ...UI_ONLY_MATCHERS];
121
+ export function isApiRouteCovered(route) {
122
+ if (!route.pattern.startsWith("/api/"))
123
+ return true;
124
+ return ALL_MATCHERS.some((m) => m(route));
125
+ }
126
+ export function uncoveredApiRoutes(routes) {
127
+ return routes.filter((r) => r.pattern.startsWith("/api/") && !isApiRouteCovered(r));
128
+ }
@@ -0,0 +1,6 @@
1
+ export declare function cliSessionPath(root: string, cacheDir: string): string;
2
+ export declare function readCliSession(root: string, cacheDir: string): string | null;
3
+ export declare function writeCliSession(root: string, cacheDir: string, token: string): void;
4
+ export declare function clearCliSession(root: string, cacheDir: string): void;
5
+ /** Parse `Set-Cookie` for the RepoOS session token value. */
6
+ export declare function sessionTokenFromSetCookie(setCookie: string | string[] | undefined, cookieName: string): string | null;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Persisted RepoOS web session for the CLI (#0723).
3
+ *
4
+ * Stores the HttpOnly session token the server issued at login so repeat CLI
5
+ * calls do not need OTP every time. Mode 0600, never logged. Loopback calls
6
+ * still prefer the server's local-cli-token when present (#0582).
7
+ */
8
+ import { chmodSync, mkdirSync, readFileSync, writeFileSync, unlinkSync } from "node:fs";
9
+ import { join } from "node:path";
10
+ export function cliSessionPath(root, cacheDir) {
11
+ return join(root, cacheDir, "cli-session");
12
+ }
13
+ export function readCliSession(root, cacheDir) {
14
+ try {
15
+ const token = readFileSync(cliSessionPath(root, cacheDir), "utf8").trim();
16
+ return token || null;
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ }
22
+ export function writeCliSession(root, cacheDir, token) {
23
+ const dir = join(root, cacheDir);
24
+ mkdirSync(dir, { recursive: true });
25
+ const path = cliSessionPath(root, cacheDir);
26
+ writeFileSync(path, `${token}\n`, { mode: 0o600 });
27
+ try {
28
+ chmodSync(path, 0o600);
29
+ }
30
+ catch {
31
+ /* best-effort */
32
+ }
33
+ }
34
+ export function clearCliSession(root, cacheDir) {
35
+ try {
36
+ unlinkSync(cliSessionPath(root, cacheDir));
37
+ }
38
+ catch {
39
+ /* absent */
40
+ }
41
+ }
42
+ /** Parse `Set-Cookie` for the RepoOS session token value. */
43
+ export function sessionTokenFromSetCookie(setCookie, cookieName) {
44
+ if (!setCookie)
45
+ return null;
46
+ const parts = Array.isArray(setCookie) ? setCookie : [setCookie];
47
+ for (const header of parts) {
48
+ const segment = header.split(";")[0]?.trim();
49
+ if (!segment?.startsWith(`${cookieName}=`))
50
+ continue;
51
+ const value = segment.slice(cookieName.length + 1);
52
+ if (value)
53
+ return value;
54
+ }
55
+ return null;
56
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Resolve the engineer a task will run with, from server API payloads (#0723).
3
+ * Uses the same rules as the UI (`effective-agent.ts`), not a local disk reindex.
4
+ */
5
+ import { type EffectiveAgent, type EffectiveAgentInput } from "../ui-app/src/lib/effective-agent.js";
6
+ export interface ApiTaskOverrides {
7
+ agentOverride?: string | null;
8
+ cliOverride?: string | null;
9
+ modelOverride?: string | null;
10
+ }
11
+ export declare function effectiveEngineerFromApi(agents: readonly EffectiveAgentInput[], task: ApiTaskOverrides): EffectiveAgent;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Resolve the engineer a task will run with, from server API payloads (#0723).
3
+ * Uses the same rules as the UI (`effective-agent.ts`), not a local disk reindex.
4
+ */
5
+ import { resolveEffectiveAgent, } from "../ui-app/src/lib/effective-agent.js";
6
+ export function effectiveEngineerFromApi(agents, task) {
7
+ return resolveEffectiveAgent(agents, {
8
+ agentOverride: task.agentOverride ?? null,
9
+ cliOverride: task.cliOverride ?? null,
10
+ modelOverride: task.modelOverride ?? null,
11
+ }, "engineer");
12
+ }
package/dist/cli/help.js CHANGED
@@ -8,6 +8,7 @@
8
8
  * usage line lives in per-command help rather than inline.
9
9
  */
10
10
  import { readVersion } from "../core/version.js";
11
+ import { PRIORITIES, TASK_TYPES } from "../core/types.js";
11
12
  import { c } from "./colors.js";
12
13
  import { table, termWidth, visibleWidth, wrap } from "./layout.js";
13
14
  /** Commands whose own argument parser already handles `--help`. */
@@ -18,8 +19,9 @@ const GROUPS = [
18
19
  commands: [
19
20
  {
20
21
  name: "init",
21
- usage: "init [name]",
22
+ usage: "init [name|--dir <path>] [--new --description <text>|--description-file <path>|- --areas a,b --commit|--no-commit --launch|--no-launch --json] [--docs-from <dir|file|.zip>] [--starter vision|codebase] [--force]",
22
23
  desc: "Scaffold work/, repoos.toml, AGENTS.md; guided flow for a new project",
24
+ flags: "new-project (--new/--yes): --description · --description-file · --areas · --layout · --commit/--no-commit · --launch/--no-launch · --preview-stub/--no-preview-stub · --dir · --force · --json. Any init: --docs-from <dir|file|.zip> · --starter vision|codebase · --force. Existing-repo init takes none of the new-project flags.",
23
25
  },
24
26
  {
25
27
  name: "upgrade",
@@ -46,15 +48,21 @@ const GROUPS = [
46
48
  { name: "show", usage: "show <id>", desc: "Show a task's full spec" },
47
49
  {
48
50
  name: "new",
49
- usage: 'new "<title>" [--ai --type <t> --area <a> --priority <p> --body <b>]',
51
+ usage: `new "<title>" [--ai --type ${TASK_TYPES.join("|")} --area <a> --priority ${PRIORITIES.join("|")} --body <b>]`,
50
52
  desc: "Create a task",
51
- flags: "--ai --type --area --priority --body",
53
+ flags: `--ai · --type · --area · --priority · --body`,
52
54
  },
53
55
  {
54
56
  name: "new-doc",
55
57
  usage: 'new-doc "<desc>"',
56
58
  desc: "Create a document from a description via the PM agent",
57
59
  },
60
+ {
61
+ name: "docs",
62
+ usage: "docs <import|scaffold> [path] [--force] [--dry-run]",
63
+ desc: "Import an existing doc set, or scaffold starter project docs",
64
+ flags: "--force · --dry-run",
65
+ },
58
66
  {
59
67
  name: "note",
60
68
  usage: 'note <id> "<text>"',
@@ -63,14 +71,86 @@ const GROUPS = [
63
71
  {
64
72
  name: "mv",
65
73
  usage: "mv <id> <status> [--note <text>] [--force-not-merged]",
66
- desc: "Move a task to a new status — never merges code",
74
+ desc: "Move a task to a new status (file write) — use review/done for handoff and close-out",
67
75
  flags: '--note "..." · --force-not-merged',
68
76
  },
77
+ {
78
+ name: "start",
79
+ usage: "start <id> [--fresh] [--json] [--port N]",
80
+ desc: "Start or resume the engineer on a task (POST /api/tasks/:id/start)",
81
+ flags: "--fresh · --json · --port",
82
+ },
83
+ {
84
+ name: "pause",
85
+ usage: "pause <id> [--json] [--port N]",
86
+ desc: "Pause the running agent (POST /api/tasks/:id/pause)",
87
+ flags: "--json · --port",
88
+ },
89
+ {
90
+ name: "message",
91
+ usage: 'message <id> "<text>" [--json] [--port N]',
92
+ desc: "Send a follow-up to the task agent (POST /api/tasks/:id/message)",
93
+ flags: "--json · --port",
94
+ },
95
+ {
96
+ name: "review",
97
+ usage: "review <id> [--wait] [--json] [--port N]",
98
+ desc: "Request review synchronously (PATCH status=review; waits for handoff)",
99
+ flags: "--wait · --json · --port",
100
+ },
101
+ {
102
+ name: "done",
103
+ usage: "done <id> [--commit-dirty] [--wait] [--json] [--port N]",
104
+ desc: "Move to done through the close-out pipeline (POST /api/tasks/:id/done)",
105
+ flags: "--commit-dirty · --wait · --json · --port",
106
+ },
107
+ {
108
+ name: "override",
109
+ usage: "override <id> [--cli <name>] [--model <model>] [--json] [--port N]",
110
+ desc: "Set per-task engineer overrides (PATCH /api/tasks/:id)",
111
+ flags: "--cli · --model · --json · --port",
112
+ },
113
+ {
114
+ name: "preview",
115
+ usage: "preview <id> [--stop] [--json] [--port N]",
116
+ desc: "Start or stop the task preview (POST /api/tasks/:id/preview)",
117
+ flags: "--stop · --json · --port",
118
+ },
119
+ {
120
+ name: "config",
121
+ usage: "config get|set <key> [value] [--json] [--port N]",
122
+ desc: "Read or write server config (GET/PATCH /api/config)",
123
+ flags: "--json · --port",
124
+ },
125
+ {
126
+ name: "runners",
127
+ usage: "runners [--probe] [--json] [--port N]",
128
+ desc: "Remote validation runner status (and optional probe)",
129
+ flags: "--probe · --json · --port",
130
+ },
131
+ {
132
+ name: "agents",
133
+ usage: "agents [--json] [--port N]",
134
+ desc: "List running agents (GET /api/agents/running)",
135
+ flags: "--json · --port",
136
+ },
137
+ {
138
+ name: "stats",
139
+ usage: "stats [--json] [--port N]",
140
+ desc: "Board spend summary (GET /api/stats/board)",
141
+ flags: "--json · --port",
142
+ },
143
+ {
144
+ name: "rm",
145
+ usage: "rm <id> --yes",
146
+ desc: "Delete a task file from the repo (same as the UI Delete button)",
147
+ flags: "--yes",
148
+ },
69
149
  {
70
150
  name: "update",
71
151
  usage: "update <id> [flags]",
72
152
  desc: "Edit a task's metadata or body",
73
- flags: "--title --area --priority --type --body --branch --assigned-to",
153
+ flags: `--title · --area · --priority ${PRIORITIES.join("|")} · --type ${TASK_TYPES.join("|")} · --body · --branch · --assigned-to`,
74
154
  },
75
155
  {
76
156
  name: "index",
@@ -171,6 +251,10 @@ const GROUPS = [
171
251
  const EXAMPLES = [
172
252
  { cmd: "repoos init" },
173
253
  { cmd: "repoos init myproject", comment: "guided new-project flow outside a git repo" },
254
+ {
255
+ cmd: 'repoos init myproject --new --description "A tiny social app" --areas web,api --no-launch',
256
+ comment: "non-interactive new project (no TTY, e.g. an agent)",
257
+ },
174
258
  {
175
259
  cmd: 'repoos new "Add company dashboard" --ai --type feature --area web,server --priority p1',
176
260
  },
package/dist/cli/index.js CHANGED
@@ -4,8 +4,8 @@
4
4
  * Dependency-free arg routing — no commander/yargs needed for Stage 1.
5
5
  */
6
6
  import { cmdInit } from "../commands/init.js";
7
- import { cmdList, cmdShow, cmdMv, cmdUpdate, cmdNew, cmdIndex, cmdNote, } from "../commands/tasks.js";
8
- import { cmdNewDoc } from "../commands/docs.js";
7
+ import { cmdList, cmdShow, cmdMv, cmdRm, cmdUpdate, cmdNew, cmdIndex, cmdNote, } from "../commands/tasks.js";
8
+ import { cmdDocs, cmdNewDoc } from "../commands/docs.js";
9
9
  import { cmdGc } from "../commands/gc.js";
10
10
  import { cmdOutline } from "../commands/outline.js";
11
11
  import { cmdCheck } from "../commands/check.js";
@@ -20,6 +20,7 @@ import { cmdDoctor } from "../commands/doctor.js";
20
20
  import { cmdCertify } from "../commands/certify.js";
21
21
  import { cmdSupport } from "../commands/support.js";
22
22
  import { cmdService } from "../commands/service.js";
23
+ import { cmdAgentsRunning, cmdConfig, cmdDone, cmdMessage, cmdOverride, cmdPause, cmdPreview, cmdReview, cmdRunners, cmdStart, cmdStats, } from "../commands/control-api.js";
23
24
  import { checkBuild } from "../core/build.js";
24
25
  import { loadConfig } from "../core/config.js";
25
26
  import { reexecAfterStaleBuild, reexecUnderBunIfRequested } from "../core/runtime.js";
@@ -152,6 +153,10 @@ function main() {
152
153
  case "note":
153
154
  cmdNote(rest);
154
155
  break;
156
+ case "rm":
157
+ case "delete":
158
+ cmdRm(rest);
159
+ break;
155
160
  case "update":
156
161
  cmdUpdate(rest);
157
162
  break;
@@ -162,6 +167,9 @@ function main() {
162
167
  case "new-doc":
163
168
  void cmdNewDoc(rest);
164
169
  break;
170
+ case "docs":
171
+ void cmdDocs(rest);
172
+ break;
165
173
  case "index":
166
174
  case "reindex":
167
175
  cmdIndex(rest);
@@ -185,6 +193,72 @@ function main() {
185
193
  case "check":
186
194
  void cmdCheck(rest);
187
195
  break;
196
+ case "start":
197
+ void cmdStart(rest).then((code) => {
198
+ if (code !== 0)
199
+ process.exitCode = code;
200
+ });
201
+ break;
202
+ case "pause":
203
+ void cmdPause(rest).then((code) => {
204
+ if (code !== 0)
205
+ process.exitCode = code;
206
+ });
207
+ break;
208
+ case "message":
209
+ void cmdMessage(rest).then((code) => {
210
+ if (code !== 0)
211
+ process.exitCode = code;
212
+ });
213
+ break;
214
+ case "review":
215
+ void cmdReview(rest).then((code) => {
216
+ if (code !== 0)
217
+ process.exitCode = code;
218
+ });
219
+ break;
220
+ case "done":
221
+ void cmdDone(rest).then((code) => {
222
+ if (code !== 0)
223
+ process.exitCode = code;
224
+ });
225
+ break;
226
+ case "override":
227
+ void cmdOverride(rest).then((code) => {
228
+ if (code !== 0)
229
+ process.exitCode = code;
230
+ });
231
+ break;
232
+ case "preview":
233
+ void cmdPreview(rest).then((code) => {
234
+ if (code !== 0)
235
+ process.exitCode = code;
236
+ });
237
+ break;
238
+ case "config":
239
+ void cmdConfig(rest).then((code) => {
240
+ if (code !== 0)
241
+ process.exitCode = code;
242
+ });
243
+ break;
244
+ case "runners":
245
+ void cmdRunners(rest).then((code) => {
246
+ if (code !== 0)
247
+ process.exitCode = code;
248
+ });
249
+ break;
250
+ case "agents":
251
+ void cmdAgentsRunning(rest).then((code) => {
252
+ if (code !== 0)
253
+ process.exitCode = code;
254
+ });
255
+ break;
256
+ case "stats":
257
+ void cmdStats(rest).then((code) => {
258
+ if (code !== 0)
259
+ process.exitCode = code;
260
+ });
261
+ break;
188
262
  case "shot":
189
263
  void cmdShot(rest)
190
264
  .then((code) => {
@@ -0,0 +1,52 @@
1
+ /**
2
+ * HTTP client for the running RepoOS control plane (#0723).
3
+ *
4
+ * Authenticates with the loopback local-cli token when available (#0582), else a
5
+ * stored session cookie, and transparently re-logs in via the dev backdoor on
6
+ * 401 after a server reload (never prints the backdoor code).
7
+ */
8
+ import { loadConfig } from "../core/config.js";
9
+ export declare class RepoOsApiError extends Error {
10
+ readonly status: number;
11
+ readonly body?: unknown | undefined;
12
+ constructor(message: string, status: number, body?: unknown | undefined);
13
+ }
14
+ export interface RepoOsApiOptions {
15
+ root?: string;
16
+ port?: number;
17
+ json?: boolean;
18
+ }
19
+ export interface ApiJson {
20
+ ok?: boolean;
21
+ error?: string;
22
+ [key: string]: unknown;
23
+ }
24
+ export declare function resolveControlPlaneBase(opts?: RepoOsApiOptions): {
25
+ root: string;
26
+ baseUrl: string;
27
+ config: ReturnType<typeof loadConfig>;
28
+ };
29
+ export declare class RepoOsApi {
30
+ private readonly root;
31
+ private readonly baseUrl;
32
+ private readonly config;
33
+ private session;
34
+ constructor(opts?: RepoOsApiOptions);
35
+ private localToken;
36
+ get base(): string;
37
+ private buildHeaders;
38
+ private devBackdoorLogin;
39
+ health(): Promise<boolean>;
40
+ request(method: string, path: string, body?: unknown, opts?: {
41
+ retryAuth?: boolean;
42
+ }): Promise<{
43
+ status: number;
44
+ body: ApiJson;
45
+ }>;
46
+ requestOk(method: string, path: string, body?: unknown, allowedStatuses?: number[]): Promise<ApiJson>;
47
+ }
48
+ export declare function pollUntil<T>(fn: () => Promise<T | null>, opts: {
49
+ intervalMs?: number;
50
+ timeoutMs?: number;
51
+ label?: string;
52
+ }): Promise<T>;