@repo-os/repoos 0.5.46 → 0.5.48
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.
- package/README.md +16 -8
- package/dist/.build-info.json +2 -2
- package/dist/.build-stamp.json +1 -1
- package/dist/cli/index.js +91 -34
- package/dist/commands/check.d.ts +49 -2
- package/dist/commands/check.js +691 -447
- package/dist/commands/doctor.d.ts +4 -0
- package/dist/commands/doctor.js +78 -0
- package/dist/commands/init.d.ts +26 -1
- package/dist/commands/init.js +372 -41
- package/dist/commands/service.d.ts +1 -0
- package/dist/commands/service.js +198 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.js +11 -1
- package/dist/commands/support.d.ts +2 -0
- package/dist/commands/support.js +193 -0
- package/dist/commands/tasks.d.ts +22 -3
- package/dist/commands/tasks.js +105 -11
- package/dist/commands/ui-harness.d.ts +36 -0
- package/dist/commands/ui-harness.js +4 -19
- package/dist/commands/ui-smoke.js +63 -3
- package/dist/commands/upgrade.d.ts +10 -0
- package/dist/commands/upgrade.js +38 -8
- package/dist/core/agent-updates.d.ts +38 -0
- package/dist/core/agent-updates.js +203 -0
- package/dist/core/auth.d.ts +1 -1
- package/dist/core/auth.js +1 -1
- package/dist/core/board-columns.test.d.ts +1 -0
- package/dist/core/board-columns.test.js +175 -0
- package/dist/core/check-plan-proposal.d.ts +31 -0
- package/dist/core/check-plan-proposal.js +96 -0
- package/dist/core/check-plan.d.ts +230 -0
- package/dist/core/check-plan.js +732 -0
- package/dist/core/check-results-store.d.ts +38 -0
- package/dist/core/check-results-store.js +72 -0
- package/dist/core/check-results.d.ts +38 -0
- package/dist/core/check-results.js +184 -0
- package/dist/core/check-runner.d.ts +61 -0
- package/dist/core/check-runner.js +253 -0
- package/dist/core/config.d.ts +64 -2
- package/dist/core/config.js +407 -4
- package/dist/core/detect.d.ts +50 -0
- package/dist/core/detect.js +136 -4
- package/dist/core/doctor.d.ts +74 -0
- package/dist/core/doctor.js +680 -0
- package/dist/core/git.d.ts +24 -1
- package/dist/core/git.js +132 -18
- package/dist/core/models.d.ts +15 -1
- package/dist/core/models.js +105 -6
- package/dist/core/providers/spend.d.ts +1 -1
- package/dist/core/providers/spend.js +69 -5
- package/dist/core/redact.d.ts +70 -0
- package/dist/core/redact.js +223 -0
- package/dist/core/repoos.d.ts +2 -0
- package/dist/core/repoos.js +2 -1
- package/dist/core/review-verdict.d.ts +25 -0
- package/dist/core/review-verdict.js +51 -0
- package/dist/core/review-verdict.test.d.ts +1 -0
- package/dist/core/review-verdict.test.js +40 -0
- package/dist/core/service-manager.d.ts +187 -0
- package/dist/core/service-manager.js +925 -0
- package/dist/core/service-manager.test.d.ts +1 -0
- package/dist/core/service-manager.test.js +372 -0
- package/dist/core/support-bundle.d.ts +263 -0
- package/dist/core/support-bundle.js +731 -0
- package/dist/core/task.js +10 -0
- package/dist/core/types.d.ts +237 -4
- package/dist/core/worktree-gc.js +9 -5
- package/dist/server/agent-run-doc.d.ts +111 -0
- package/dist/server/agent-run-doc.js +183 -0
- package/dist/server/agents.d.ts +225 -24
- package/dist/server/agents.js +1391 -67
- package/dist/server/auto-engineering.js +1 -1
- package/dist/server/auto-fix-gate.d.ts +64 -0
- package/dist/server/auto-fix-gate.js +220 -0
- package/dist/server/branchless-release.js +5 -4
- package/dist/server/built-in-agent-runner.d.ts +103 -0
- package/dist/server/built-in-agent-runner.js +454 -0
- package/dist/server/built-in-agent-skill-docs.d.ts +36 -0
- package/dist/server/built-in-agent-skill-docs.js +306 -0
- package/dist/server/built-in-agents.d.ts +229 -97
- package/dist/server/built-in-agents.js +971 -1165
- package/dist/server/check-plan-info.d.ts +108 -0
- package/dist/server/check-plan-info.js +132 -0
- package/dist/server/distribution.d.ts +73 -0
- package/dist/server/distribution.js +173 -0
- package/dist/server/done.js +12 -11
- package/dist/server/freeform-runs.d.ts +103 -0
- package/dist/server/freeform-runs.js +427 -0
- package/dist/server/freeform.js +11 -1
- package/dist/server/handoff.d.ts +1 -1
- package/dist/server/handoff.js +5 -4
- package/dist/server/integration-job.d.ts +35 -0
- package/dist/server/integration-job.js +22 -1
- package/dist/server/integration-orchestrator.d.ts +41 -4
- package/dist/server/integration-orchestrator.js +329 -86
- package/dist/server/integration-status.d.ts +12 -1
- package/dist/server/integration-status.js +11 -7
- package/dist/server/json-truncation.d.ts +57 -0
- package/dist/server/json-truncation.js +223 -0
- package/dist/server/live-index.d.ts +17 -0
- package/dist/server/live-index.js +12 -0
- package/dist/server/preview.d.ts +9 -7
- package/dist/server/preview.js +53 -25
- package/dist/server/release.js +2 -1
- package/dist/server/reload.d.ts +11 -0
- package/dist/server/reload.js +34 -5
- package/dist/server/review-guard.js +4 -8
- package/dist/server/review.js +20 -26
- package/dist/server/routes/agents.d.ts +2 -0
- package/dist/server/routes/agents.js +25 -0
- package/dist/server/routes/auth.js +17 -12
- package/dist/server/routes/check-plan.d.ts +16 -0
- package/dist/server/routes/check-plan.js +18 -0
- package/dist/server/routes/config.js +9 -2
- package/dist/server/routes/debugger.js +12 -2
- package/dist/server/routes/docs.js +2 -2
- package/dist/server/routes/helpers.js +13 -3
- package/dist/server/routes/index.d.ts +3 -0
- package/dist/server/routes/index.js +3 -0
- package/dist/server/routes/info.js +3 -0
- package/dist/server/routes/notify.js +2 -2
- package/dist/server/routes/release.d.ts +19 -0
- package/dist/server/routes/release.js +106 -0
- package/dist/server/routes/service.d.ts +25 -0
- package/dist/server/routes/service.js +62 -0
- package/dist/server/routes/support.d.ts +11 -0
- package/dist/server/routes/support.js +60 -0
- package/dist/server/routes/tasks.d.ts +40 -0
- package/dist/server/routes/tasks.js +414 -154
- package/dist/server/routes/types.d.ts +7 -0
- package/dist/server/routes/ui.js +2 -2
- package/dist/server/server.js +202 -32
- package/dist/server/skill-suggestions.d.ts +222 -0
- package/dist/server/skill-suggestions.js +627 -0
- package/dist/server/system.d.ts +1 -1
- package/dist/server/task-check.js +4 -2
- package/dist/server/write.d.ts +4 -0
- package/dist/server/write.js +17 -1
- package/dist/ui/assets/AgentsView-B-w3_cUA.js +1 -0
- package/dist/ui/assets/AgentsView-Cp-2uoJK.css +1 -0
- package/dist/ui/assets/ChecksView-CBObmY95.js +1 -0
- package/dist/ui/assets/ChecksView-Dquk2SnE.css +1 -0
- package/dist/ui/assets/ContextView-5BIYLq1t.js +4 -0
- package/dist/ui/assets/{ContextView-D3TC-RSp.css → ContextView-TVoMpCso.css} +1 -1
- package/dist/ui/assets/DashboardView-C7HwIylJ.js +1 -0
- package/dist/ui/assets/{DashboardView-Ck9o0RP2.css → DashboardView-CRdYYcWz.css} +1 -1
- package/dist/ui/assets/DeploymentsView-AYs3M5WP.js +1 -0
- package/dist/ui/assets/DiffView-COhR1P-a.css +1 -0
- package/dist/ui/assets/DiffView-elhz-H8B.js +2 -0
- package/dist/ui/assets/InputsView-D4XmIvgc.js +1 -0
- package/dist/ui/assets/InputsView-oTB_RUkL.css +1 -0
- package/dist/ui/assets/LoginView-Bgv90FPK.js +1 -0
- package/dist/ui/assets/ReleasesView-6NUvSu9N.css +1 -0
- package/dist/ui/assets/ReleasesView-DPt6F5YS.js +3 -0
- package/dist/ui/assets/SettingsView-5eZ1Py0Q.js +3 -0
- package/dist/ui/assets/SettingsView-tL4SoVW8.css +1 -0
- package/dist/ui/assets/WorkView-C3h32p3k.js +2 -0
- package/dist/ui/assets/WorkView-CFnddFhr.css +1 -0
- package/dist/ui/assets/{abnfDiagram-VCTEODGH-B3HDyW1L.js → abnfDiagram-VCTEODGH-pHc-qg0W.js} +1 -1
- package/dist/ui/assets/api-Dic4Uw1D.js +1 -0
- package/dist/ui/assets/architecture-7GRP2DOG-BExW7N2X.js +1 -0
- package/dist/ui/assets/{architectureDiagram-5GKGNRK7-CF1NMjye.js → architectureDiagram-5GKGNRK7-DQV0ZlG2.js} +1 -1
- package/dist/ui/assets/{blockDiagram-I7D4REHJ-NN5i_rnJ.js → blockDiagram-I7D4REHJ-BsnD-5PV.js} +1 -1
- package/dist/ui/assets/button-ywbZCzIW.js +1 -0
- package/dist/ui/assets/{c4Diagram-7LVT6UL2-CIIOAuP6.js → c4Diagram-7LVT6UL2-CqpUjbtK.js} +1 -1
- package/dist/ui/assets/channel-ZvHJgbXo.js +1 -0
- package/dist/ui/assets/{chunk-4HAMMTFA-l4djRUYV.js → chunk-4HAMMTFA-Cp59m-71.js} +1 -1
- package/dist/ui/assets/{chunk-75Z2AOVW-DyrFYAG_.js → chunk-75Z2AOVW-ChHwnZLM.js} +1 -1
- package/dist/ui/assets/{chunk-DU6HZSFF-CItRm7J1.js → chunk-DU6HZSFF-Becd7Cgr.js} +1 -1
- package/dist/ui/assets/{chunk-F27PBJKO-DaczqqTE.js → chunk-F27PBJKO-Blb2qqJ4.js} +1 -1
- package/dist/ui/assets/{chunk-GMAD6QVW-CB0tZHa7.js → chunk-GMAD6QVW-5Qh43abc.js} +1 -1
- package/dist/ui/assets/{chunk-GVQU2GXP-C-cDJVm0.js → chunk-GVQU2GXP-Bb0Ur8QB.js} +1 -1
- package/dist/ui/assets/{chunk-IMKFNOWR-OA75ThJF.js → chunk-IMKFNOWR-OYY7Z4BW.js} +1 -1
- package/dist/ui/assets/{chunk-L3NEJ4N5-CBE4DSCk.js → chunk-L3NEJ4N5-aNCeLfta.js} +1 -1
- package/dist/ui/assets/{chunk-OSK3NFVY-BuXhb1_B.js → chunk-OSK3NFVY-DeC-74ju.js} +1 -1
- package/dist/ui/assets/{chunk-P2QGCYS3-BGBBMTyP.js → chunk-P2QGCYS3-D9AFqJkh.js} +1 -1
- package/dist/ui/assets/{chunk-POPQ4Y6H-D0ZTnRsC.js → chunk-POPQ4Y6H-Ba34aN-g.js} +1 -1
- package/dist/ui/assets/{chunk-PWAF6VOD-ByX-zr35.js → chunk-PWAF6VOD-DO8Mg8r-.js} +1 -1
- package/dist/ui/assets/{chunk-SHT3W25Y-Bh_gkUMX.js → chunk-SHT3W25Y-CoPZM9XW.js} +1 -1
- package/dist/ui/assets/{chunk-SVP7TREG-DW3_jpLk.js → chunk-SVP7TREG-Bawvkywu.js} +1 -1
- package/dist/ui/assets/{chunk-TICWLB2K-DdzwBMkK.js → chunk-TICWLB2K-D-QDMLtT.js} +1 -1
- package/dist/ui/assets/classDiagram-ZZMXUADV-CmFaEw-m.js +1 -0
- package/dist/ui/assets/classDiagram-v2-VYDZK3BY-CmFaEw-m.js +1 -0
- package/dist/ui/assets/{cynefin-OW5HDTMX-HRsrbC5X.js → cynefin-OW5HDTMX-BArHh8-d.js} +1 -1
- package/dist/ui/assets/{cynefinDiagram-5FMLGOSQ-BygrCWJt.js → cynefinDiagram-5FMLGOSQ-DhS-kLot.js} +1 -1
- package/dist/ui/assets/{dagre-GXQ25YYZ-unKY8vsX.js → dagre-GXQ25YYZ-9nuP3Mhz.js} +1 -1
- package/dist/ui/assets/{diagram-S7CK7UJ4-bBTGuKeX.js → diagram-S7CK7UJ4-CcjB4ae6.js} +1 -1
- package/dist/ui/assets/{diagram-UQ7AKVKN-DhSz2err.js → diagram-UQ7AKVKN-gEbDZ2wA.js} +1 -1
- package/dist/ui/assets/{diagram-VSXAHHWV-D_1IlJ5N.js → diagram-VSXAHHWV-B2I7HJ_I.js} +1 -1
- package/dist/ui/assets/{diagram-VX7I27RA-DcJu9i5Y.js → diagram-VX7I27RA-BjZiKmur.js} +1 -1
- package/dist/ui/assets/{diagram-Z3DM3KII-BegKxxS3.js → diagram-Z3DM3KII-uHuWeWJS.js} +1 -1
- package/dist/ui/assets/{ebnfDiagram-PWID7BFC-B2W_iiID.js → ebnfDiagram-PWID7BFC-Dt6YEtM2.js} +1 -1
- package/dist/ui/assets/{erDiagram-RLTQ6QDP-DgQmNV6c.js → erDiagram-RLTQ6QDP-eWb4VjRB.js} +1 -1
- package/dist/ui/assets/eventmodeling-NTZA5JFV-BGINq340.js +1 -0
- package/dist/ui/assets/flowDiagram-HODETNUW-CslflvVm.js +1 -0
- package/dist/ui/assets/{ganttDiagram-EL5Y4UJY-1Q0-GyM3.js → ganttDiagram-EL5Y4UJY-Dc1YagBo.js} +1 -1
- package/dist/ui/assets/{gitGraph-4MIJSDKK-BR7WCjO-.js → gitGraph-4MIJSDKK-BKTHQFNQ.js} +1 -1
- package/dist/ui/assets/{gitGraphDiagram-WWUBYQGX-yNQ1AZdE.js → gitGraphDiagram-WWUBYQGX-5MXnQYI9.js} +1 -1
- package/dist/ui/assets/index-DWedw2UO.css +1 -0
- package/dist/ui/assets/index-DXotWZmz.js +27 -0
- package/dist/ui/assets/{info-A6RAGUB7-CqP9o5kc.js → info-A6RAGUB7-CB_w7eMD.js} +1 -1
- package/dist/ui/assets/{infoDiagram-27XIBGKW-CQXLSaWm.js → infoDiagram-27XIBGKW-C-9Kuflq.js} +1 -1
- package/dist/ui/assets/{ishikawaDiagram-5VMMS53U-B9xRfvdR.js → ishikawaDiagram-5VMMS53U-Dd1RLJJm.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-3NMN7TZE-CLecupNd.js → journeyDiagram-3NMN7TZE-CD4al8cv.js} +1 -1
- package/dist/ui/assets/{kanban-definition-UXKFOSKX-Bgh0O41s.js → kanban-definition-UXKFOSKX-CicP51YB.js} +1 -1
- package/dist/ui/assets/{line-D-TkCLYl.js → line-Cd1yQwS1.js} +1 -1
- package/dist/ui/assets/{mermaid-parser.core-DuQ04aZW.js → mermaid-parser.core-B65nU8-J.js} +3 -3
- package/dist/ui/assets/{mermaid.core-BBpIvweb.js → mermaid.core-m8HIJWVk.js} +4 -4
- package/dist/ui/assets/{mindmap-definition-YA3MSWOX-DSHjdhEw.js → mindmap-definition-YA3MSWOX-B6X7miC7.js} +1 -1
- package/dist/ui/assets/{packet-AYTQ26CC-BDfW3rtB.js → packet-AYTQ26CC-BGs-wvw2.js} +1 -1
- package/dist/ui/assets/{pegDiagram-XKGWAZYB-rMIAYGZz.js → pegDiagram-XKGWAZYB-C-lyH7_H.js} +1 -1
- package/dist/ui/assets/{pie-WAS4IAKB-DfYZwArG.js → pie-WAS4IAKB-Dk_1-q02.js} +1 -1
- package/dist/ui/assets/{pieDiagram-E7YTZNPT-CuQsR7e8.js → pieDiagram-E7YTZNPT-g_h8F1NG.js} +1 -1
- package/dist/ui/assets/{quadrantDiagram-AXDQQJYC-Dt2tyjxB.js → quadrantDiagram-AXDQQJYC-BZnaapW7.js} +1 -1
- package/dist/ui/assets/{radar-RG4KPBEZ-DVzWY-M9.js → radar-RG4KPBEZ-DDgd9Igt.js} +1 -1
- package/dist/ui/assets/{railroad-74A4TZTK-Cu6stMtw.js → railroad-74A4TZTK-DhAP39G6.js} +1 -1
- package/dist/ui/assets/railroad-abnf-HS5TGJTU-BqsR_EwF.js +1 -0
- package/dist/ui/assets/railroad-ebnf-LZEXJU2U-Duonsle8.js +1 -0
- package/dist/ui/assets/railroad-peg-WCYAUIDC-LVUZVuDx.js +1 -0
- package/dist/ui/assets/{railroadDiagram-O6MQD6OU-DdPLKXLv.js → railroadDiagram-O6MQD6OU-CB0apIqD.js} +1 -1
- package/dist/ui/assets/{requirementDiagram-BXWQKSXE-Ced7kyzl.js → requirementDiagram-BXWQKSXE-DgmeoXsi.js} +1 -1
- package/dist/ui/assets/{sankeyDiagram-P5KCCOFB-O7BvVpMl.js → sankeyDiagram-P5KCCOFB-DjzQt3qt.js} +1 -1
- package/dist/ui/assets/{sequenceDiagram-WJ2MYXX4-CcgW2ANH.js → sequenceDiagram-WJ2MYXX4-CbbbJQEL.js} +1 -1
- package/dist/ui/assets/{stateDiagram-D77RDMKH-9LFja-bW.js → stateDiagram-D77RDMKH-4wOmoi5j.js} +1 -1
- package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-BJWDIO8n.js +1 -0
- package/dist/ui/assets/{swimlanes-42K2YHIH--Qka2jcY.js → swimlanes-42K2YHIH-BsVty5RJ.js} +1 -1
- package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-DibiQlL8.js +8 -0
- package/dist/ui/assets/{timeline-definition-24CTP7MA-Ddok2Czn.js → timeline-definition-24CTP7MA-jG7c5_Cs.js} +1 -1
- package/dist/ui/assets/{treeView-Q6P3EWNA-CsnID5mj.js → treeView-Q6P3EWNA-DLCAW9b3.js} +1 -1
- package/dist/ui/assets/{treemap-WGGIJYW6-BLo8xcAp.js → treemap-WGGIJYW6-uUXNdPOX.js} +1 -1
- package/dist/ui/assets/vendor-ui-C4DmZ9GE.js +3 -0
- package/dist/ui/assets/vendor-vue-0d2wfih_.js +1 -0
- package/dist/ui/assets/{vennDiagram-4TSXK5OY-mHJwXX5J.js → vennDiagram-4TSXK5OY-CHK_fGs0.js} +1 -1
- package/dist/ui/assets/{wardley-WFR3VGLG-DKxzocuy.js → wardley-WFR3VGLG-DJG6hnMr.js} +1 -1
- package/dist/ui/assets/{wardleyDiagram-VM6X3IG4-DSraOQ5a.js → wardleyDiagram-VM6X3IG4-C82KklcY.js} +1 -1
- package/dist/ui/assets/{xychartDiagram-S5SC5T6Z-DvcL8eBl.js → xychartDiagram-S5SC5T6Z-q9hGmKYE.js} +1 -1
- package/dist/ui/index.html +8 -5
- package/dist/ui/sw.js +2 -2
- package/package.json +2 -3
- package/dist/commands/screenshots.d.ts +0 -7
- package/dist/commands/screenshots.js +0 -77
- package/dist/ui/assets/AgentsView-7zA87rTf.js +0 -1
- package/dist/ui/assets/AgentsView-CdTKjw_Y.css +0 -1
- package/dist/ui/assets/ContextView-MigaqOfe.js +0 -4
- package/dist/ui/assets/DashboardView-Dcrwlrwn.js +0 -1
- package/dist/ui/assets/DeploymentsView-DxCQsZvb.js +0 -1
- package/dist/ui/assets/InputsView-BLb7GHtx.css +0 -1
- package/dist/ui/assets/InputsView-C1A3fbei.js +0 -1
- package/dist/ui/assets/LoginView-DRMjCnGr.js +0 -1
- package/dist/ui/assets/ReleasesView-BEG1A0YH.css +0 -1
- package/dist/ui/assets/ReleasesView-jG4d0Mo5.js +0 -3
- package/dist/ui/assets/SettingsView-CA-NYSMK.css +0 -1
- package/dist/ui/assets/SettingsView-w8HbTZnf.js +0 -3
- package/dist/ui/assets/WorkView-BURSyjUL.js +0 -1
- package/dist/ui/assets/WorkView-DMYL2s3W.css +0 -1
- package/dist/ui/assets/architecture-7GRP2DOG-B-YNUE4u.js +0 -1
- package/dist/ui/assets/button-lbikqSph.js +0 -1
- package/dist/ui/assets/channel-ByPPwpr0.js +0 -1
- package/dist/ui/assets/classDiagram-ZZMXUADV-Dl8H1P8I.js +0 -1
- package/dist/ui/assets/classDiagram-v2-VYDZK3BY-Dl8H1P8I.js +0 -1
- package/dist/ui/assets/eventmodeling-NTZA5JFV-DG7FAHfq.js +0 -1
- package/dist/ui/assets/flowDiagram-HODETNUW-BW1KIkAC.js +0 -1
- package/dist/ui/assets/index-BqPcSMLi.css +0 -1
- package/dist/ui/assets/index-KCn__xLG.js +0 -26
- package/dist/ui/assets/railroad-abnf-HS5TGJTU-D05JnF_u.js +0 -1
- package/dist/ui/assets/railroad-ebnf-LZEXJU2U-Dwp8jJ0X.js +0 -1
- package/dist/ui/assets/railroad-peg-WCYAUIDC-lqOiNYZz.js +0 -1
- package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-DkIUWCT9.js +0 -1
- package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-D_VVVLM0.js +0 -8
- package/dist/ui/assets/vendor-ui-DPm7zLxi.js +0 -3
- package/dist/ui/assets/vendor-vue-CobgyEJp.js +0 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ It is **not** a Jira/Linear replacement bolted onto your repo. It is the
|
|
|
11
11
|
connective tissue for an AI-native workflow: humans define and review work,
|
|
12
12
|
agents read the same files as full context and execute against the repo.
|
|
13
13
|
RepoOS directly spawns and manages coding agents in isolated worktrees,
|
|
14
|
-
streams their output, and
|
|
14
|
+
streams their output, and leaves merge decisions with humans.
|
|
15
15
|
|
|
16
16
|
```
|
|
17
17
|
the repo ──▶ source of truth (markdown + git)
|
|
@@ -33,8 +33,8 @@ RepoOS doesn't just host tasks that agents read — it spawns and manages the
|
|
|
33
33
|
agents themselves. You configure a coding agent on the Agents page, click Start
|
|
34
34
|
on a task, and RepoOS launches the agent in a dedicated git worktree, streams
|
|
35
35
|
its output live, and lets you resume the conversation at any point. When the
|
|
36
|
-
agent finishes, the task moves to review for human
|
|
37
|
-
first-class participants, but
|
|
36
|
+
agent finishes, the task moves to review for human approval. Agents are
|
|
37
|
+
first-class participants, but people decide what merges.
|
|
38
38
|
|
|
39
39
|
## Install
|
|
40
40
|
|
|
@@ -46,12 +46,18 @@ Install the standalone `repoos` command. This is the quickest option when you
|
|
|
46
46
|
want a self-contained release build:
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
curl -fsSL https://repoos.org/install
|
|
49
|
+
curl -fsSL https://repoos.org/install | bash
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
It runs on Bun when available (recommended), otherwise requires Node.js >=
|
|
53
53
|
20.6.0. It installs to `~/.repoos` and links `repoos` into `~/.local/bin`.
|
|
54
54
|
|
|
55
|
+
### Homebrew
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
brew install repo-os/tap/repoos
|
|
59
|
+
```
|
|
60
|
+
|
|
55
61
|
### npm
|
|
56
62
|
|
|
57
63
|
```bash
|
|
@@ -82,8 +88,10 @@ is enabled so its `repoos` shim is on your PATH.
|
|
|
82
88
|
|
|
83
89
|
Use the same tool to update a package-manager install: `npm update -g
|
|
84
90
|
@repo-os/repoos`, `bun update -g @repo-os/repoos`, `pnpm update -g
|
|
85
|
-
@repo-os/repoos`,
|
|
86
|
-
|
|
91
|
+
@repo-os/repoos`, `mise upgrade npm:@repo-os/repoos`, or `brew update && brew
|
|
92
|
+
upgrade repo-os/tap/repoos`. A standalone install updates with `repoos upgrade`
|
|
93
|
+
and removes with `repoos uninstall`. When run from a recognised package-manager
|
|
94
|
+
install, `repoos upgrade` prints the matching package-manager command instead.
|
|
87
95
|
|
|
88
96
|
Then in any repo:
|
|
89
97
|
|
|
@@ -117,7 +125,7 @@ repoos mv <id> <status> Move a task (inbox|ready|active|review|done)
|
|
|
117
125
|
repoos new "<title>" [flags] Create a task
|
|
118
126
|
repoos index [--json] Rebuild the derived index (--json for agents/tools)
|
|
119
127
|
repoos serve [--port N] Start the local server: live API + SSE event stream
|
|
120
|
-
repoos check
|
|
128
|
+
repoos check Pre-merge checks (build, typecheck, tests, UI smoke)
|
|
121
129
|
repoos tunnel [subcommand] Cloudflare Tunnel + Zero Trust publishing
|
|
122
130
|
```
|
|
123
131
|
|
|
@@ -280,7 +288,7 @@ RepoOS can spawn and manage coding agents (opencode, Claude Code, Qwen, Codex)
|
|
|
280
288
|
to execute tasks. Agents run in isolated git worktrees per task so parallel work
|
|
281
289
|
never collides. Output streams over SSE in real time, and the per-task chat tab
|
|
282
290
|
lets you resume a session mid-flight. When the agent finishes, the task moves to
|
|
283
|
-
review — human
|
|
291
|
+
review — a human decides whether it is ready to merge.
|
|
284
292
|
|
|
285
293
|
Configure agents on the Agents page: choose the CLI, pick a model (sourced live
|
|
286
294
|
from `opencode models`), add custom instructions, and set up PM and reviewer
|
package/dist/.build-info.json
CHANGED
package/dist/.build-stamp.json
CHANGED
package/dist/cli/index.js
CHANGED
|
@@ -14,6 +14,9 @@ import { cmdTunnel } from "../commands/tunnel.js";
|
|
|
14
14
|
import { cmdUpgrade } from "../commands/upgrade.js";
|
|
15
15
|
import { cmdUninstall } from "../commands/uninstall.js";
|
|
16
16
|
import { cmdStatus } from "../commands/status.js";
|
|
17
|
+
import { cmdDoctor } from "../commands/doctor.js";
|
|
18
|
+
import { cmdSupport } from "../commands/support.js";
|
|
19
|
+
import { cmdService } from "../commands/service.js";
|
|
17
20
|
import { checkBuild } from "../core/build.js";
|
|
18
21
|
import { loadConfig } from "../core/config.js";
|
|
19
22
|
import { reexecUnderBunIfRequested } from "../core/runtime.js";
|
|
@@ -49,7 +52,77 @@ function readVersion() {
|
|
|
49
52
|
return "0.0.0-dev";
|
|
50
53
|
}
|
|
51
54
|
const VERSION = readVersion();
|
|
55
|
+
// Column where COMMANDS descriptions start, measured from the start of the
|
|
56
|
+
// command text (not counting the leading 4-space indent). Wide enough for
|
|
57
|
+
// the longest single-line entry ("gc [--yes|--dry-run]", 21 chars) plus a
|
|
58
|
+
// 2-space gap. Kept as one constant (rather than hand-counted spaces per
|
|
59
|
+
// line) so every row stays aligned when an entry is added or renamed.
|
|
60
|
+
const CMD_COL = 23;
|
|
61
|
+
const CMD_INDENT = " ".repeat(4 + CMD_COL);
|
|
62
|
+
/**
|
|
63
|
+
* A COMMANDS row: `cmd` is plain text (for width math), `desc` may contain
|
|
64
|
+
* ANSI codes. Callers join rows with `"\n "` — the 4-space indent lives
|
|
65
|
+
* in the join separator (and the template literal for the first row), not
|
|
66
|
+
* here, so a row must not add its own leading indent.
|
|
67
|
+
*/
|
|
68
|
+
function cmdRow(cmd, desc) {
|
|
69
|
+
if (cmd.length >= CMD_COL) {
|
|
70
|
+
// Too long to share a line with its description — command on its own
|
|
71
|
+
// line, description indented to the same column as every other row.
|
|
72
|
+
return `${c.cyan(cmd)}\n${CMD_INDENT}${desc}`;
|
|
73
|
+
}
|
|
74
|
+
return `${c.cyan(cmd)}${" ".repeat(CMD_COL - cmd.length)}${desc}`;
|
|
75
|
+
}
|
|
76
|
+
// Column where trailing `# comment`s line up in the EXAMPLES block below.
|
|
77
|
+
const EX_COL = 28;
|
|
78
|
+
/** An EXAMPLES row; see cmdRow's doc comment re: indentation living in the join. */
|
|
79
|
+
function exRow(cmd, comment) {
|
|
80
|
+
if (!comment)
|
|
81
|
+
return `${c.dim("$")} ${cmd}`;
|
|
82
|
+
const pad = " ".repeat(Math.max(1, EX_COL - cmd.length));
|
|
83
|
+
return `${c.dim("$")} ${cmd}${pad}${c.dim("# " + comment)}`;
|
|
84
|
+
}
|
|
52
85
|
function help() {
|
|
86
|
+
const commandLines = [
|
|
87
|
+
cmdRow("check", "Definition-of-done gate: runs the check plan declared in repoos.toml"),
|
|
88
|
+
cmdRow("check --profile full", "Run every declared step, including ones held back from a routine run"),
|
|
89
|
+
cmdRow("check --changed main", "Fast pre-review pass over steps affected by changed paths"),
|
|
90
|
+
cmdRow("check --print-plan", "Print the resolved plan as [[check.steps]] TOML to commit"),
|
|
91
|
+
cmdRow("init [name]", "Scaffold work/, repoos.toml, AGENTS.md; outside a git repo runs a guided flow that can launch the web console"),
|
|
92
|
+
cmdRow("list [status]", `Show the board (or one column: ${c.dim("inbox|ready|active|review|done")})`),
|
|
93
|
+
cmdRow("status [--json]", "One-screen health snapshot: server, build freshness, board, worktrees, tunnel, git"),
|
|
94
|
+
cmdRow("doctor [--json]", "Read-only readiness preflight: identity, config, layout, tools, check plan, server, secrets"),
|
|
95
|
+
cmdRow("support bundle", "Write a redacted, inspectable diagnostic bundle for failed setups"),
|
|
96
|
+
cmdRow("show <id>", "Show a task's full spec"),
|
|
97
|
+
cmdRow("mv <id> <status>", `Move a task to a new status — never merges code ${c.dim('flags: --note "...", --force-not-merged')}`),
|
|
98
|
+
cmdRow('note <id> "<text>"', "Append a free-form note to a task's activity log"),
|
|
99
|
+
cmdRow("update <id>", `Edit a task's metadata/body ${c.dim("flags: --title --area --priority --type --body --branch --assigned-to")}`),
|
|
100
|
+
cmdRow('new "<title>"', `Create a task ${c.dim("flags: --ai --type --area --priority --body")}`),
|
|
101
|
+
cmdRow('new-doc "<desc>"', "Create a document from a description via PM agent"),
|
|
102
|
+
cmdRow("index [--json]", "Rebuild the derived index cache"),
|
|
103
|
+
cmdRow("gc [--yes|--dry-run]", "Collect leaked task worktrees/branches (done/absent tasks, integrate candidates)"),
|
|
104
|
+
cmdRow("serve [--port N]", "Start the local server (live API + SSE stream)"),
|
|
105
|
+
cmdRow("stop [--port N]", "Stop this repo's serve process (by its own lockfile)"),
|
|
106
|
+
cmdRow("service [sub]", `Manage background services ${c.dim("list|status|install|start|stop|restart|enable|disable|remove")}`),
|
|
107
|
+
cmdRow("tunnel <sub>", `Publish local apps via Cloudflare Tunnel + Zero Trust ${c.dim("(setup|create|allow|deny|rename|destroy|start|install|stop|list|status)")}`),
|
|
108
|
+
cmdRow("upgrade [--channel beta|canary|rc]", `Self-update a standalone (curl-installed) repoos to the latest release\n${CMD_INDENT}(stable by default; --channel tracks a prerelease line instead)`),
|
|
109
|
+
cmdRow("uninstall [--yes]", "Remove the standalone (curl-installed) repoos from this machine"),
|
|
110
|
+
].join("\n ");
|
|
111
|
+
const exampleLines = [
|
|
112
|
+
exRow("repoos init"),
|
|
113
|
+
exRow("repoos init myproject", "guided new-project flow outside a git repo"),
|
|
114
|
+
exRow('repoos new "Add company dashboard" --ai --type feature --area web --priority p1'),
|
|
115
|
+
exRow('repoos new-doc "API design doc for the payment system"'),
|
|
116
|
+
exRow("repoos mv 0012 active"),
|
|
117
|
+
exRow('repoos mv 0012 active --note "Fix the regression in checkout; see review"'),
|
|
118
|
+
exRow('repoos note 0012 "Handle the reviewer\'s suggestions before the next review"'),
|
|
119
|
+
exRow('repoos update 0012 --title "New title" --area web'),
|
|
120
|
+
exRow("repoos list ready"),
|
|
121
|
+
exRow("repoos status", "one-screen health snapshot"),
|
|
122
|
+
exRow("repoos status --json", "machine-readable, for agents/tools"),
|
|
123
|
+
exRow("repoos index --json", "machine-readable, for agents/tools"),
|
|
124
|
+
exRow("repoos serve", "live API + SSE at http://127.0.0.1:7171"),
|
|
125
|
+
].join("\n ");
|
|
53
126
|
console.log(`
|
|
54
127
|
${c.bold(c.cyan("RepoOS"))} ${c.dim("v" + VERSION)} — the repo is the operating system
|
|
55
128
|
|
|
@@ -57,40 +130,10 @@ function help() {
|
|
|
57
130
|
repoos <command> [args]
|
|
58
131
|
|
|
59
132
|
${c.bold("COMMANDS")}
|
|
60
|
-
${
|
|
61
|
-
${c.cyan("init")} [name] Scaffold work/, repoos.toml, AGENTS.md; outside a git repo runs a guided flow that can launch the web console
|
|
62
|
-
${c.cyan("list")} [status] Show the board (or one column: ${c.dim("inbox|ready|active|review|done")})
|
|
63
|
-
${c.cyan("status")} [--json] One-screen health snapshot: server, build freshness, board, worktrees, tunnel, git
|
|
64
|
-
${c.cyan("show")} <id> Show a task's full spec
|
|
65
|
-
${c.cyan("mv")} <id> <status> Move a task to a new status ${c.dim('flags: --note "..."')}
|
|
66
|
-
${c.cyan("note")} <id> "<text>" Append a free-form note to a task's activity log
|
|
67
|
-
${c.cyan("update")} <id> Edit a task's metadata/body ${c.dim("flags: --title --area --priority --type --body --branch --assigned-to")}
|
|
68
|
-
${c.cyan("new")} "<title>" Create a task ${c.dim("flags: --ai --type --area --priority --body")}
|
|
69
|
-
${c.cyan("new-doc")} "<desc>" Create a document from a description via PM agent
|
|
70
|
-
${c.cyan("index")} [--json] Rebuild the derived index cache
|
|
71
|
-
${c.cyan("gc")} [--yes|--dry-run] Collect leaked task worktrees/branches (done/absent tasks, integrate candidates)
|
|
72
|
-
${c.cyan("serve")} [--port N] Start the local server (live API + SSE stream)
|
|
73
|
-
${c.cyan("stop")} [--port N] Stop this repo's serve process (by its own lockfile)
|
|
74
|
-
${c.cyan("tunnel")} <sub> Publish local apps via Cloudflare Tunnel + Zero Trust ${c.dim("(setup|create|allow|deny|rename|destroy|start|install|stop|list|status)")}
|
|
75
|
-
${c.cyan("upgrade")} [--channel beta|canary|rc]
|
|
76
|
-
Self-update a standalone (curl-installed) repoos to the latest release
|
|
77
|
-
(stable by default; --channel tracks a prerelease line instead)
|
|
78
|
-
${c.cyan("uninstall")} [--yes] Remove the standalone (curl-installed) repoos from this machine
|
|
133
|
+
${commandLines}
|
|
79
134
|
|
|
80
135
|
${c.bold("EXAMPLES")}
|
|
81
|
-
${
|
|
82
|
-
${c.dim("$")} repoos init myproject # guided new-project flow outside a git repo
|
|
83
|
-
${c.dim("$")} repoos new "Add company dashboard" --ai --type feature --area web --priority p1
|
|
84
|
-
${c.dim("$")} repoos new-doc "API design doc for the payment system"
|
|
85
|
-
${c.dim("$")} repoos mv 0012 active
|
|
86
|
-
${c.dim("$")} repoos mv 0012 active --note "Fix the regression in checkout; see review"
|
|
87
|
-
${c.dim("$")} repoos note 0012 "Handle the reviewer's suggestions before the next review"
|
|
88
|
-
${c.dim("$")} repoos update 0012 --title "New title" --area web
|
|
89
|
-
${c.dim("$")} repoos list ready
|
|
90
|
-
${c.dim("$")} repoos status ${c.dim("# one-screen health snapshot")}
|
|
91
|
-
${c.dim("$")} repoos status --json ${c.dim("# machine-readable, for agents/tools")}
|
|
92
|
-
${c.dim("$")} repoos index --json ${c.dim("# machine-readable, for agents/tools")}
|
|
93
|
-
${c.dim("$")} repoos serve ${c.dim("# live API + SSE at http://127.0.0.1:7171")}
|
|
136
|
+
${exampleLines}
|
|
94
137
|
`);
|
|
95
138
|
}
|
|
96
139
|
function main() {
|
|
@@ -119,6 +162,8 @@ function main() {
|
|
|
119
162
|
undefined,
|
|
120
163
|
"check",
|
|
121
164
|
"status",
|
|
165
|
+
"doctor",
|
|
166
|
+
"support",
|
|
122
167
|
"help",
|
|
123
168
|
"--help",
|
|
124
169
|
"-h",
|
|
@@ -153,6 +198,12 @@ function main() {
|
|
|
153
198
|
case "status":
|
|
154
199
|
void cmdStatus(rest);
|
|
155
200
|
break;
|
|
201
|
+
case "doctor":
|
|
202
|
+
void cmdDoctor(rest);
|
|
203
|
+
break;
|
|
204
|
+
case "support":
|
|
205
|
+
void cmdSupport(rest);
|
|
206
|
+
break;
|
|
156
207
|
case "show":
|
|
157
208
|
case "cat":
|
|
158
209
|
cmdShow(rest[0]);
|
|
@@ -160,12 +211,15 @@ function main() {
|
|
|
160
211
|
case "mv":
|
|
161
212
|
case "move": {
|
|
162
213
|
let note;
|
|
214
|
+
let force = false;
|
|
163
215
|
const args = rest.slice();
|
|
164
216
|
for (let i = 0; i < args.length; i++) {
|
|
165
217
|
if (args[i] === "--note")
|
|
166
218
|
note = args[++i];
|
|
219
|
+
else if (args[i] === "--force-not-merged")
|
|
220
|
+
force = true;
|
|
167
221
|
}
|
|
168
|
-
cmdMv(args[0], args[1], note);
|
|
222
|
+
cmdMv(args[0], args[1], note, { force });
|
|
169
223
|
break;
|
|
170
224
|
}
|
|
171
225
|
case "note":
|
|
@@ -195,8 +249,11 @@ function main() {
|
|
|
195
249
|
case "stop":
|
|
196
250
|
cmdStop(rest);
|
|
197
251
|
break;
|
|
252
|
+
case "service":
|
|
253
|
+
void cmdService(rest);
|
|
254
|
+
break;
|
|
198
255
|
case "check":
|
|
199
|
-
void cmdCheck();
|
|
256
|
+
void cmdCheck(rest);
|
|
200
257
|
break;
|
|
201
258
|
case "tunnel":
|
|
202
259
|
void cmdTunnel(rest);
|
package/dist/commands/check.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { CheckContrastPair, CheckThemeScope } from "../core/types.js";
|
|
1
|
+
import type { CheckContrastPair, CheckThemeScope, RepoOSConfig } from "../core/types.js";
|
|
2
|
+
import { type CheckPlan, type CheckStep } from "../core/check-plan.js";
|
|
3
|
+
import { type StepRunResult } from "../core/check-runner.js";
|
|
2
4
|
/**
|
|
3
5
|
* Bare `require(...)` calls guard (#0271 follow-up): this package is
|
|
4
6
|
* `"type": "module"` (ESM) — a bare, un-shadowed `require` is undefined at
|
|
@@ -167,4 +169,49 @@ export declare function resolveSmokeCommand(configured: string | undefined, pkgS
|
|
|
167
169
|
* floor via `undefined`.
|
|
168
170
|
*/
|
|
169
171
|
export declare function testPoolSize(env: NodeJS.ProcessEnv): number | undefined;
|
|
170
|
-
|
|
172
|
+
/** `repoos check` CLI flags (#0446). */
|
|
173
|
+
export interface CheckOptions {
|
|
174
|
+
/** Profile to select. Defaults to `[check] defaultProfile`, else `default`. */
|
|
175
|
+
profile?: string;
|
|
176
|
+
/** Git ref for changed-path mode. Also read from `REPOOS_CHECK_CHANGED`. */
|
|
177
|
+
changed?: string;
|
|
178
|
+
/** Print the resolved plan as `[[check.steps]]` TOML and exit 0. */
|
|
179
|
+
printPlan?: boolean;
|
|
180
|
+
}
|
|
181
|
+
/** Parse `repoos check` flags. Unknown flags are ignored, never fatal. */
|
|
182
|
+
export declare function parseCheckArgs(argv?: string[]): CheckOptions;
|
|
183
|
+
/**
|
|
184
|
+
* Repo-relative paths that differ from `ref`, plus anything uncommitted or
|
|
185
|
+
* untracked — the working tree an agent actually hands over, not just what is
|
|
186
|
+
* committed on the branch.
|
|
187
|
+
*
|
|
188
|
+
* Returns `null` when `ref` itself can't be resolved. That has to be
|
|
189
|
+
* distinguishable from "nothing changed": a typo'd ref with an empty result
|
|
190
|
+
* would silently scope every `whenChanged` step away and let the gate go green
|
|
191
|
+
* having verified nothing at all.
|
|
192
|
+
*/
|
|
193
|
+
export declare function changedPathsSince(repoRoot: string, ref: string): string[] | null;
|
|
194
|
+
export interface RunPlanOptions {
|
|
195
|
+
repoRoot: string;
|
|
196
|
+
/** Config for the repo; loaded here when not supplied. */
|
|
197
|
+
cfg?: RepoOSConfig;
|
|
198
|
+
profile?: string;
|
|
199
|
+
/** Changed paths for changed-path mode; absent means a full run. */
|
|
200
|
+
changedPaths?: string[];
|
|
201
|
+
/** Git ref the changed paths came from — the Tests step scopes itself to it. */
|
|
202
|
+
changedRef?: string;
|
|
203
|
+
onStart?: (step: CheckStep) => void;
|
|
204
|
+
onResult?: (result: StepRunResult) => void;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Run a resolved plan, in declaration order, and return one structured result
|
|
208
|
+
* per step. Pure with respect to the caller's output: printing happens through
|
|
209
|
+
* the callbacks, so this is unit-testable end to end (see
|
|
210
|
+
* ui-app/tests/check-plan.test.ts).
|
|
211
|
+
*
|
|
212
|
+
* Every step ends in exactly one of: passed, failed, timeout, missing
|
|
213
|
+
* prerequisite, or an explicit skip that says why. Nothing here can "pass" by
|
|
214
|
+
* not running.
|
|
215
|
+
*/
|
|
216
|
+
export declare function runCheckPlan(plan: CheckPlan, opts: RunPlanOptions): Promise<StepRunResult[]>;
|
|
217
|
+
export declare function cmdCheck(argv?: string[]): Promise<void>;
|