@iowarp/clio-coder 0.4.2 → 0.4.4

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 (523) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/CONTRIBUTING.md +86 -19
  3. package/README.md +35 -6
  4. package/dist/{acp-TMDQZDIG.js → acp-WNAYYF4F.js} +12 -13
  5. package/dist/{agents-5N5NG3XG.js → agents-3OKXHLOI.js} +60 -57
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-Z5CCBXKQ.js → auth-VKNNMGPU.js} +21 -19
  8. package/dist/{builtins-K6TNDT24.js → builtins-WGALA46I.js} +9 -4
  9. package/dist/{chunk-XE3PCIXH.js → chunk-23L32XTI.js} +12 -9
  10. package/dist/{chunk-I64IFBLB.js → chunk-25QBEXRS.js} +18 -11
  11. package/dist/{chunk-CDNVLKUX.js → chunk-26QSH3EJ.js} +13 -7
  12. package/dist/{chunk-QQLGQY2A.js → chunk-2ASED4PZ.js} +22 -22
  13. package/dist/{chunk-MCEPRMZW.js → chunk-2CU2H6KE.js} +2 -2
  14. package/dist/chunk-2DSOYNFC.js +108 -0
  15. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  16. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  17. package/dist/{chunk-O3YUNJZ2.js → chunk-2ZSONWVL.js} +82 -25
  18. package/dist/{chunk-2NHR3NAY.js → chunk-36CT5VVL.js} +331 -42
  19. package/dist/{chunk-2X4RYJTJ.js → chunk-3GY4F45V.js} +3 -3
  20. package/dist/{chunk-ZW55JB7N.js → chunk-3ODX73FK.js} +4 -6
  21. package/dist/{chunk-PBP4B7XR.js → chunk-3UNOLWNZ.js} +3 -3
  22. package/dist/{chunk-4JDLP6ZS.js → chunk-3UUXNFEX.js} +14 -10
  23. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  24. package/dist/{chunk-ZW4HH5JJ.js → chunk-4M6Z5QVF.js} +6 -6
  25. package/dist/{chunk-K6BSR66V.js → chunk-4NSRCOYP.js} +4 -1
  26. package/dist/{chunk-M2DAX4F6.js → chunk-4WR7VSYB.js} +2 -2
  27. package/dist/{chunk-FSP7CMNU.js → chunk-54X7T7DK.js} +61 -6
  28. package/dist/{chunk-54ODD65L.js → chunk-5636DCO5.js} +4 -4
  29. package/dist/chunk-57XXR6DR.js +3763 -0
  30. package/dist/{chunk-3KIPBMUA.js → chunk-5ICU3EUH.js} +2 -2
  31. package/dist/{chunk-77QIVUZB.js → chunk-5MEZN6CB.js} +4 -4
  32. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  33. package/dist/{chunk-YJISEZKC.js → chunk-5TUB6SLS.js} +6 -6
  34. package/dist/{chunk-IMXMHHMQ.js → chunk-6OSVSQL5.js} +341 -57
  35. package/dist/{chunk-Q4XWMHX6.js → chunk-6PAZTBPA.js} +14 -2
  36. package/dist/{chunk-FVDGR2ZL.js → chunk-6Q3CYFD3.js} +112 -39
  37. package/dist/{chunk-IDNA72AH.js → chunk-6QOTUPRG.js} +155 -36
  38. package/dist/{chunk-X7IARSHT.js → chunk-6UINWWS6.js} +16 -10
  39. package/dist/{chunk-CYZW7JHJ.js → chunk-72YIHOZQ.js} +9 -9
  40. package/dist/{chunk-IKSLQ4XV.js → chunk-75W7L2E2.js} +752 -861
  41. package/dist/{chunk-CRFOIAX3.js → chunk-7UGL4MB5.js} +6 -6
  42. package/dist/{chunk-HIICAHCJ.js → chunk-AUPNRN7C.js} +2 -2
  43. package/dist/{chunk-7BHIY2MW.js → chunk-BJVFZO5U.js} +8 -50
  44. package/dist/{chunk-B74PXLU7.js → chunk-CUSRQKPU.js} +65 -3
  45. package/dist/chunk-DQOVN6KV.js +386 -0
  46. package/dist/{chunk-E7GT7O5N.js → chunk-DT3LWJOB.js} +7 -4
  47. package/dist/chunk-DXKJURES.js +671 -0
  48. package/dist/{chunk-JBCS7CRR.js → chunk-EL24TAU4.js} +10 -10
  49. package/dist/{chunk-TPEQIQIE.js → chunk-ELWDPP3Y.js} +8 -8
  50. package/dist/{chunk-NDINPTJ4.js → chunk-ELZVTCGV.js} +5 -4
  51. package/dist/chunk-EXLD33WO.js +381 -0
  52. package/dist/chunk-FEAXX7B6.js +101 -0
  53. package/dist/{chunk-RLYRBIYQ.js → chunk-FFUPXJC4.js} +90 -331
  54. package/dist/{chunk-5PFYMY2V.js → chunk-FTMGRKEF.js} +2 -2
  55. package/dist/{chunk-34BHNEE3.js → chunk-GHS5EBTQ.js} +58 -7
  56. package/dist/{chunk-DYHAXKHD.js → chunk-GWZNEVM2.js} +12 -8
  57. package/dist/chunk-GX5WYQO4.js +59 -0
  58. package/dist/chunk-GYV6VZOC.js +26 -0
  59. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  60. package/dist/chunk-I2DWJ4GM.js +390 -0
  61. package/dist/{chunk-TXOTCRLG.js → chunk-I5FWO7L5.js} +5 -5
  62. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  63. package/dist/{chunk-XQRY4DTA.js → chunk-IGLP3ODT.js} +10 -10
  64. package/dist/chunk-IRXAATOX.js +539 -0
  65. package/dist/chunk-IXIY2H4R.js +44 -0
  66. package/dist/{chunk-SSEYRH53.js → chunk-IZXGRF7P.js} +92 -147
  67. package/dist/{chunk-5TSRNF4G.js → chunk-JCI2ROMZ.js} +164 -6
  68. package/dist/{chunk-JWJGP5DQ.js → chunk-JEIYHLOR.js} +7 -7
  69. package/dist/{chunk-F2I26BDK.js → chunk-JQLNNIKT.js} +4 -4
  70. package/dist/{chunk-BYMNWQ7O.js → chunk-JSD46VO2.js} +315 -63
  71. package/dist/{chunk-AK5XEFVZ.js → chunk-JT2RFCC5.js} +64 -14
  72. package/dist/{chunk-MCMZMDAC.js → chunk-K6T2ZAMZ.js} +168 -6
  73. package/dist/{chunk-PGF63K6I.js → chunk-KFV5L5SK.js} +73 -4
  74. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  75. package/dist/{chunk-PJX3WQUQ.js → chunk-LLXSDWXS.js} +3 -3
  76. package/dist/{chunk-DZAW46HP.js → chunk-LTIKRKFL.js} +3 -3
  77. package/dist/{chunk-DZEK6CJN.js → chunk-N56KALIC.js} +21 -21
  78. package/dist/{chunk-B7HM5Z7T.js → chunk-NAI6ZFCY.js} +9 -5
  79. package/dist/{chunk-I66ZTYNP.js → chunk-NRO2BJRH.js} +2656 -2213
  80. package/dist/{chunk-ZGNYYXQ6.js → chunk-NXIMQY5W.js} +3 -3
  81. package/dist/{chunk-IKOZFYBN.js → chunk-NXYCB2VD.js} +149 -106
  82. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  83. package/dist/{chunk-462T4EGZ.js → chunk-O5CVSAG5.js} +2 -2
  84. package/dist/chunk-ODGTEFFI.js +50 -0
  85. package/dist/{chunk-3F7VUY77.js → chunk-OEJSLEPW.js} +2 -2
  86. package/dist/{chunk-KKOJXO6R.js → chunk-OMQNJVKW.js} +4 -2
  87. package/dist/{chunk-5KW52TEP.js → chunk-Q4WO54TA.js} +132 -77
  88. package/dist/{chunk-W6NIE6OW.js → chunk-QUFRYSWI.js} +13 -7
  89. package/dist/{chunk-42FMPA75.js → chunk-QZWQA4DE.js} +2 -2
  90. package/dist/chunk-R6Q67RJH.js +134 -0
  91. package/dist/{chunk-W4YEMFBX.js → chunk-RAY4OVGZ.js} +3 -3
  92. package/dist/{chunk-ZNT2M6TG.js → chunk-RQCKCSRL.js} +17 -17
  93. package/dist/{chunk-LJID3DYZ.js → chunk-RXTN6AKH.js} +3 -3
  94. package/dist/{chunk-P75RZCJW.js → chunk-RZDWV63N.js} +3 -3
  95. package/dist/{chunk-UH632ZYL.js → chunk-S6PYF2XF.js} +2 -2
  96. package/dist/{chunk-HJWWJ6IL.js → chunk-TOIVGRUX.js} +17 -5
  97. package/dist/{chunk-HLAFFSEK.js → chunk-TQAHXW6Y.js} +2 -2
  98. package/dist/{chunk-JIEGK6UF.js → chunk-U6TMQNSI.js} +48 -4
  99. package/dist/{chunk-2HFQNRV3.js → chunk-UEPWCCTY.js} +12 -12
  100. package/dist/chunk-UOIZ7DA4.js +41 -0
  101. package/dist/{chunk-UH347SHR.js → chunk-USR47QNF.js} +11 -11
  102. package/dist/{chunk-AZ4WMN4W.js → chunk-V6HJFQZE.js} +2 -2
  103. package/dist/chunk-V76WTFTW.js +318 -0
  104. package/dist/{chunk-NMJXSHBJ.js → chunk-W54I7H25.js} +2 -2
  105. package/dist/{chunk-KPXDY6QF.js → chunk-XRZT5WY5.js} +2 -2
  106. package/dist/{chunk-UBRFI4HS.js → chunk-XULDXHTN.js} +142 -50
  107. package/dist/chunk-XXYSBZIQ.js +283 -0
  108. package/dist/{chunk-HKMD33FO.js → chunk-Y55JBDO5.js} +405 -122
  109. package/dist/{chunk-XOXV5GKE.js → chunk-YD5GIKET.js} +17 -8
  110. package/dist/{chunk-XGDPUNND.js → chunk-YECAMM3D.js} +2 -2
  111. package/dist/{chunk-BO7Y52RY.js → chunk-YNFKXPEC.js} +7 -7
  112. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  113. package/dist/{chunk-M2WXEHER.js → chunk-ZA4VCIGV.js} +2 -2
  114. package/dist/cli/index.js +42 -40
  115. package/dist/{clio-7VB377CC.js → clio-QLICPCF5.js} +7 -7
  116. package/dist/{code-nav-YVLCYA7V.js → code-nav-IJR2DBPR.js} +9 -9
  117. package/dist/{components-UBWCQSRW.js → components-2TGAI2RC.js} +5 -6
  118. package/dist/{config-4HVOS65E.js → config-IUA6OYNS.js} +88 -81
  119. package/dist/{configure-PIWO7B24.js → configure-VEPX4NMX.js} +26 -25
  120. package/dist/{context-KQYIWPWT.js → context-2DKHWH2T.js} +60 -45
  121. package/dist/{context-IYEHL3WQ.js → context-4MPR7WKB.js} +78 -69
  122. package/dist/{context-N6ZE3LGJ.js → context-BOYF5EJM.js} +15 -11
  123. package/dist/{context-clear-G4OGZJDS.js → context-clear-S4ZJCQUX.js} +73 -65
  124. package/dist/context-map-COB37XXN.js +505 -0
  125. package/dist/{context-working-set-BWLF6LJP.js → context-working-set-3I3FYX6Y.js} +18 -17
  126. package/dist/detail-A7JAVSIG.js +98 -0
  127. package/dist/{dispatch-runner-2QQAITS3.js → dispatch-runner-RJ5I2F2O.js} +99 -75
  128. package/dist/{docs-PD3EXDKU.js → docs-SPOV3BAN.js} +3 -5
  129. package/dist/{doctor-LHBD36VU.js → doctor-DKICC2SN.js} +71 -48
  130. package/dist/{eval-C45FYRJ6.js → eval-OQOQUDHK.js} +308 -146
  131. package/dist/{eval-inventory-6DEJPLBF.js → eval-inventory-Y6QRFOH5.js} +4 -4
  132. package/dist/{evidence-6SHONYAF.js → evidence-4DQ25GUQ.js} +79 -175
  133. package/dist/evidence-4F5USFKH.js +208 -0
  134. package/dist/{evolve-KRKMV72X.js → evolve-GSS52E5J.js} +71 -67
  135. package/dist/{extensions-KPZ2UHBB.js → extensions-G7MFLYHT.js} +8 -9
  136. package/dist/{fleet-IVTCKDHT.js → fleet-Q37YHHAQ.js} +126 -118
  137. package/dist/{fleet-commands-EDWL3IT7.js → fleet-commands-G7E4N7SM.js} +16 -13
  138. package/dist/{fleet-decisions-YP3YEFGK.js → fleet-decisions-O7M6QBA2.js} +9 -8
  139. package/dist/{fleet-graph-ZFWKHY2M.js → fleet-graph-TOUBW6OW.js} +21 -20
  140. package/dist/{fleet-inspect-FVUNCBML.js → fleet-inspect-SW33JJNI.js} +65 -60
  141. package/dist/{fleet-preflight-UN5XED4R.js → fleet-preflight-CV2655TW.js} +4 -5
  142. package/dist/{fleet-validate-XOWC4HSX.js → fleet-validate-KESZX2YH.js} +25 -24
  143. package/dist/{fleet-verify-UN3SODEL.js → fleet-verify-UQPMTVE3.js} +66 -61
  144. package/dist/{fleet-view-TWHJKCN6.js → fleet-view-MN2VG4MR.js} +65 -60
  145. package/dist/{init-T2QORQ3Y.js → init-PXEXQSBF.js} +90 -82
  146. package/dist/{interop-IN5I2A66.js → interop-ZG5T62U3.js} +12 -13
  147. package/dist/inventory-C26CFDRR.js +101 -0
  148. package/dist/{library-LSCATDLZ.js → library-B2W4N74O.js} +29 -29
  149. package/dist/{memory-HYOKAGGJ.js → memory-YCANYS5A.js} +73 -69
  150. package/dist/{models-2GPMFYCM.js → models-GERTU3YI.js} +51 -47
  151. package/dist/{monitor-E4ASVUJH.js → monitor-CPNIUULB.js} +74 -67
  152. package/dist/{orchestrator-DDMPR3PY.js → orchestrator-J4BSH4WQ.js} +1288 -1606
  153. package/dist/{panes-E3RUXOW5.js → panes-BOHAEGYC.js} +4 -4
  154. package/dist/{panes-IXKLOKA2.js → panes-NXSLDQZ2.js} +10 -11
  155. package/dist/{paths-L7LGY6RN.js → paths-VSUWNC22.js} +6 -7
  156. package/dist/reset-TNWTB5LU.js +343 -0
  157. package/dist/{resources-OTRSN34L.js → resources-4PXNMD5G.js} +29 -22
  158. package/dist/{run-5DEYH5QK.js → run-D6XJ34CN.js} +132 -132
  159. package/dist/{share-IHWTLO3M.js → share-2NWMJJEE.js} +27 -27
  160. package/dist/{skills-IYMXMKW4.js → skills-KR7WON5G.js} +40 -33
  161. package/dist/{skills-eval-DROHSJAR.js → skills-eval-O2ZNOLDS.js} +81 -77
  162. package/dist/{skills-inventory-D7X4L4ZX.js → skills-inventory-ZZOUBK7O.js} +23 -22
  163. package/dist/{slash-commands-QBM7UZ3B.js → slash-commands-ZXPJD64J.js} +47 -37
  164. package/dist/{steer-Z5DO23FJ.js → steer-XA25PSCS.js} +4 -4
  165. package/dist/{support-U7QOWY26.js → support-7EMVWYG2.js} +6 -6
  166. package/dist/{targets-P2FUC4IL.js → targets-OMH2XCSN.js} +50 -49
  167. package/dist/tasks-IPAGMEIX.js +36 -0
  168. package/dist/{terminal-lease-YREJ3JX2.js → terminal-lease-C2J3JYRE.js} +4 -4
  169. package/dist/{tools-5B7RO6MV.js → tools-EFFEAIDP.js} +8 -9
  170. package/dist/{trace-YMGMUM6A.js → trace-FXMXUZUF.js} +7 -7
  171. package/dist/uninstall-HALS6BLF.js +407 -0
  172. package/dist/upgrade-MS72RJEP.js +306 -0
  173. package/dist/{usage-ME5MPXGX.js → usage-NHG6MCJM.js} +162 -108
  174. package/dist/{verifiers-BVZ7IWOO.js → verifiers-7AUNVXDY.js} +155 -22
  175. package/dist/{verify-5K7ZKQFC.js → verify-FWYGPKMR.js} +14 -12
  176. package/dist/{web-fetch-MPARV2K7.js → web-fetch-V4FKSDAV.js} +4 -4
  177. package/dist/{wiki-generate-F5W5QTYY.js → wiki-generate-743CIGJW.js} +99 -90
  178. package/dist/{with-panes-BYOJCLAM.js → with-panes-BDQEWBRT.js} +10 -10
  179. package/dist/worker/entry.js +72 -68
  180. package/docs/README.md +3 -2
  181. package/docs/architecture/acp.md +17 -0
  182. package/docs/architecture/artifact-placement.md +1 -0
  183. package/docs/architecture/artifact-versions.md +2 -2
  184. package/docs/architecture/context-engine.md +4 -0
  185. package/docs/architecture/dispatch-typed-intent.md +1 -1
  186. package/docs/architecture/evidence-and-memory.md +1 -1
  187. package/docs/architecture/middleware-and-components.md +1 -1
  188. package/docs/architecture/model-catalog.md +21 -10
  189. package/docs/architecture/observability.md +19 -2
  190. package/docs/architecture/prompt-envelope-and-tools.md +17 -5
  191. package/docs/architecture/provider-adapter-cookbook.md +63 -0
  192. package/docs/architecture/safety-model.md +25 -22
  193. package/docs/architecture/tui-design.md +1 -1
  194. package/docs/guide/built-in-agents.md +25 -11
  195. package/docs/guide/commands-and-modes.md +18 -3
  196. package/docs/guide/configuration-and-targets.md +100 -10
  197. package/docs/guide/configuration-reference.md +17 -7
  198. package/docs/guide/environment-variables.md +4 -2
  199. package/docs/guide/installation-and-lifecycle.md +37 -4
  200. package/docs/guide/proactive-memory.md +66 -55
  201. package/docs/guide/skills-marketplace.md +18 -0
  202. package/docs/guide/tool-usage.md +78 -3
  203. package/docs/history/config-knobs-audit.md +2 -2
  204. package/docs/process/development-pipeline.md +40 -2
  205. package/docs/process/eval-runner.md +67 -3
  206. package/docs/process/git-commit-provenance.md +15 -0
  207. package/docs/process/release-cut-checklist.md +207 -0
  208. package/docs/process/scientific-validation.md +18 -17
  209. package/evals/behavioral-machinery-support.ts +1 -0
  210. package/evals/behavioral-machinery.yaml +1 -1
  211. package/evals/behavioral-model.yaml +3 -2
  212. package/package.json +2 -2
  213. package/skills/README.md +7 -5
  214. package/skills/coding/ast-grep/SKILL.md +101 -30
  215. package/skills/coding/ast-grep/evals.md +26 -0
  216. package/skills/coding/coding-standards/SKILL.md +47 -2
  217. package/skills/coding/coding-standards/evals.md +23 -0
  218. package/skills/coding/prototype/SKILL.md +87 -28
  219. package/skills/coding/prototype/evals.md +19 -0
  220. package/skills/coding/tdd/SKILL.md +80 -53
  221. package/skills/coding/tdd/evals.md +20 -0
  222. package/skills/context/context-handoff/SKILL.md +43 -2
  223. package/skills/context/context-handoff/evals.md +44 -0
  224. package/skills/context/context-prime/SKILL.md +45 -15
  225. package/skills/context/context-prime/evals.md +45 -0
  226. package/skills/git/branch-closeout/SKILL.md +132 -0
  227. package/skills/git/branch-closeout/evals.md +133 -0
  228. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  229. package/skills/git/file-ticket/SKILL.md +77 -63
  230. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  231. package/skills/git/file-ticket/evals.md +31 -26
  232. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  233. package/skills/git/fix-issue/SKILL.md +87 -64
  234. package/skills/git/fix-issue/evals.md +35 -31
  235. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  236. package/skills/git/resolve-merge-conflicts/SKILL.md +100 -51
  237. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  238. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  239. package/skills/git/ship/SKILL.md +103 -67
  240. package/skills/git/ship/assets/pr-template.md +21 -0
  241. package/skills/git/ship/evals.md +44 -28
  242. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  243. package/skills/git/worktree-create/SKILL.md +80 -50
  244. package/skills/git/worktree-create/evals.md +40 -33
  245. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  246. package/skills/git/worktree-merge/SKILL.md +112 -65
  247. package/skills/git/worktree-merge/evals.md +42 -34
  248. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  249. package/skills/planning/archify/SKILL.md +196 -0
  250. package/skills/planning/archify/evals.md +65 -0
  251. package/skills/planning/architecture/SKILL.md +61 -12
  252. package/skills/planning/architecture/evals.md +65 -0
  253. package/skills/planning/backlog/SKILL.md +130 -14
  254. package/skills/planning/backlog/evals.md +142 -0
  255. package/skills/planning/prd/SKILL.md +47 -6
  256. package/skills/planning/prd/evals.md +54 -0
  257. package/skills/planning/product-intent/SKILL.md +57 -2
  258. package/skills/planning/product-intent/evals.md +70 -0
  259. package/skills/planning/tech-spec/SKILL.md +53 -2
  260. package/skills/planning/tech-spec/evals.md +73 -0
  261. package/skills/registry.yaml +58 -50
  262. package/skills/remote.yaml +13 -0
  263. package/skills/research/arxiv-literature/SKILL.md +76 -18
  264. package/skills/research/arxiv-literature/evals.md +50 -0
  265. package/skills/research/experiment-protocol/SKILL.md +20 -1
  266. package/skills/research/experiment-protocol/evals.md +23 -0
  267. package/skills/research/scientific-debugging/SKILL.md +24 -1
  268. package/skills/research/scientific-debugging/evals.md +18 -0
  269. package/skills/research/scientific-modernization/SKILL.md +26 -1
  270. package/skills/research/scientific-modernization/evals.md +27 -0
  271. package/skills/skill-marketplace.json +63 -28
  272. package/skills/workflow/cut-it/SKILL.md +64 -5
  273. package/skills/workflow/cut-it/evals.md +101 -0
  274. package/skills/workflow/design-council/SKILL.md +112 -27
  275. package/skills/workflow/design-council/evals.md +161 -0
  276. package/skills/workflow/grill-me/SKILL.md +85 -10
  277. package/skills/workflow/grill-me/evals.md +153 -0
  278. package/skills/workflow/workflow-distiller/SKILL.md +76 -17
  279. package/skills/workflow/workflow-distiller/evals.md +118 -0
  280. package/src/cli/args.ts +0 -8
  281. package/src/cli/configure-interop.ts +105 -13
  282. package/src/cli/configure-oauth.ts +57 -0
  283. package/src/cli/configure-onboarding.ts +980 -0
  284. package/src/cli/configure-target.ts +594 -0
  285. package/src/cli/configure.ts +1084 -529
  286. package/src/cli/context-map.ts +114 -0
  287. package/src/cli/context.ts +4 -0
  288. package/src/cli/doctor-state-size.ts +1 -12
  289. package/src/cli/doctor-validation-contract.ts +28 -0
  290. package/src/cli/doctor.ts +5 -0
  291. package/src/cli/evidence-detail.ts +1 -75
  292. package/src/cli/evidence-inventory.ts +1 -167
  293. package/src/cli/index.ts +3 -0
  294. package/src/cli/lifecycle-presenter.ts +436 -0
  295. package/src/cli/models.ts +10 -2
  296. package/src/cli/modes/print.ts +5 -1
  297. package/src/cli/reset.ts +228 -106
  298. package/src/cli/run.ts +7 -4
  299. package/src/cli/select.ts +664 -0
  300. package/src/cli/skills.ts +9 -2
  301. package/src/cli/targets.ts +3 -0
  302. package/src/cli/tasks.ts +84 -0
  303. package/src/cli/uninstall.ts +233 -165
  304. package/src/cli/upgrade.ts +210 -150
  305. package/src/cli/usage.ts +92 -27
  306. package/src/cli/validate-model.ts +3 -3
  307. package/src/cli/verifiers.ts +147 -1
  308. package/src/cli/wiki-generate.ts +1 -0
  309. package/src/core/commit-attribution.ts +41 -1
  310. package/src/core/config.ts +56 -0
  311. package/src/core/external-diagnostic.ts +44 -0
  312. package/src/core/gateway-routing.ts +157 -0
  313. package/src/core/git-commit-attribution.ts +46 -3
  314. package/src/core/run-overrides.ts +0 -5
  315. package/src/core/safe-exec.ts +17 -2
  316. package/src/core/skill-activation.ts +92 -2
  317. package/src/core/tool-names.ts +5 -2
  318. package/src/domains/agents/builtins/architect.md +1 -1
  319. package/src/domains/agents/builtins/coder.md +1 -1
  320. package/src/domains/agents/builtins/documenter.md +1 -1
  321. package/src/domains/agents/builtins/git-master.md +1 -1
  322. package/src/domains/agents/builtins/provenance.md +7 -7
  323. package/src/domains/agents/builtins/tester.md +1 -1
  324. package/src/domains/agents/builtins/verifier.md +2 -2
  325. package/src/domains/agents/builtins/wiki-writer.md +4 -3
  326. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  327. package/src/domains/agents/catalog.ts +1 -1
  328. package/src/domains/agents/result-contract.ts +70 -0
  329. package/src/domains/context/extension.ts +31 -7
  330. package/src/domains/context/refresh.ts +3 -0
  331. package/src/domains/context/wiki/frontmatter.ts +5 -2
  332. package/src/domains/context/wiki/generate.ts +6 -0
  333. package/src/domains/context/wiki/map-seed.ts +589 -0
  334. package/src/domains/context/wiki/plan.ts +2 -2
  335. package/src/domains/context/wiki/prompts.ts +43 -0
  336. package/src/domains/dispatch/active-route-planner.ts +4 -0
  337. package/src/domains/dispatch/admission.ts +29 -0
  338. package/src/domains/dispatch/agent-candidates.ts +10 -0
  339. package/src/domains/dispatch/budget-envelope.ts +86 -1
  340. package/src/domains/dispatch/capability-match.ts +1 -0
  341. package/src/domains/dispatch/capacity-lease.ts +17 -0
  342. package/src/domains/dispatch/code-step.ts +11 -4
  343. package/src/domains/dispatch/contract.ts +42 -8
  344. package/src/domains/dispatch/execution-scheduler.ts +2 -0
  345. package/src/domains/dispatch/extension.ts +184 -56
  346. package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
  347. package/src/domains/dispatch/fleet-run.ts +1 -0
  348. package/src/domains/dispatch/host-verification.ts +114 -13
  349. package/src/domains/dispatch/intent.ts +28 -18
  350. package/src/domains/dispatch/orphan-recovery.ts +2 -0
  351. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  352. package/src/domains/dispatch/reservation-store.ts +5 -3
  353. package/src/domains/dispatch/state.ts +15 -2
  354. package/src/domains/dispatch/types.ts +20 -2
  355. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  356. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  357. package/src/domains/eval/metrics/token-stream.ts +201 -31
  358. package/src/domains/eval/metrics/tracked.ts +40 -4
  359. package/src/domains/eval/runners/clio-run.ts +17 -11
  360. package/src/domains/eval/runners/context-index.ts +2 -7
  361. package/src/domains/eval/runners/context-init.ts +3 -6
  362. package/src/domains/eval/runners/external-command.ts +29 -11
  363. package/src/domains/eval/schema/suite.ts +28 -0
  364. package/src/domains/eval/schema/verdict.ts +2 -2
  365. package/src/domains/eval/suites/resolve.ts +13 -1
  366. package/src/domains/eval/suites/run.ts +24 -3
  367. package/src/domains/evidence/build.ts +102 -15
  368. package/src/domains/evidence/detail.ts +69 -0
  369. package/src/domains/evidence/eval.ts +13 -1
  370. package/src/domains/evidence/finish-contract-map.ts +5 -1
  371. package/src/domains/evidence/inventory.ts +167 -0
  372. package/src/domains/evidence/store.ts +16 -0
  373. package/src/domains/evidence/types.ts +12 -0
  374. package/src/domains/extensions/resources.ts +7 -0
  375. package/src/domains/interop/registry.ts +6 -2
  376. package/src/domains/interop/types.ts +4 -0
  377. package/src/domains/lifecycle/migrations/index.ts +4 -0
  378. package/src/domains/memory/task-memory-policy.ts +70 -26
  379. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  380. package/src/domains/middleware/index.ts +0 -1
  381. package/src/domains/middleware/marketplace-offer.ts +22 -35
  382. package/src/domains/middleware/memory-intervention.ts +127 -32
  383. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  384. package/src/domains/middleware/runtime.ts +7 -3
  385. package/src/domains/middleware/skills-reminder.ts +31 -2
  386. package/src/domains/mux/detect.ts +3 -6
  387. package/src/domains/observability/accountability.ts +15 -1
  388. package/src/domains/observability/compaction-usage.ts +118 -0
  389. package/src/domains/observability/contract.ts +52 -7
  390. package/src/domains/observability/cost.ts +1 -1
  391. package/src/domains/observability/evidence-index.ts +10 -0
  392. package/src/domains/observability/extension.ts +15 -6
  393. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  394. package/src/domains/observability/projection.ts +394 -45
  395. package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
  396. package/src/domains/prompts/fragments/operating/contract.md +2 -0
  397. package/src/domains/prompts/fragments/wiki/page.md +8 -0
  398. package/src/domains/providers/contract.ts +4 -1
  399. package/src/domains/providers/extension.ts +40 -9
  400. package/src/domains/providers/model-capabilities.ts +9 -0
  401. package/src/domains/providers/model-discovery.ts +3 -4
  402. package/src/domains/providers/model-runtime-capabilities.ts +15 -5
  403. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +48 -26
  404. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  405. package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
  406. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  407. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  408. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  409. package/src/domains/providers/support.ts +11 -5
  410. package/src/domains/providers/target-model-cache.ts +25 -2
  411. package/src/domains/providers/types/capability-flags.ts +2 -0
  412. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  413. package/src/domains/providers/types/target-descriptor.ts +19 -0
  414. package/src/domains/resources/index.ts +3 -0
  415. package/src/domains/resources/skills/install.ts +72 -7
  416. package/src/domains/resources/skills/loader.ts +7 -0
  417. package/src/domains/resources/skills/marketplace.ts +63 -11
  418. package/src/domains/safety/action-classifier.ts +7 -0
  419. package/src/domains/safety/autonomy.ts +15 -0
  420. package/src/domains/safety/default-path-policy.ts +2 -0
  421. package/src/domains/safety/finish-contract-registration.ts +29 -14
  422. package/src/domains/safety/finish-contract.ts +252 -40
  423. package/src/domains/safety/index.ts +21 -1
  424. package/src/domains/safety/path-policy.ts +1 -1
  425. package/src/domains/safety/policy-engine.ts +60 -17
  426. package/src/domains/safety/protected-artifacts.ts +191 -88
  427. package/src/domains/safety/rigor.ts +53 -39
  428. package/src/domains/safety/run-effects.ts +2 -22
  429. package/src/domains/safety/skill-authority.ts +55 -0
  430. package/src/domains/safety/validation-contract.ts +388 -0
  431. package/src/domains/session/archive-readers.ts +10 -1
  432. package/src/domains/session/compaction/compact.ts +72 -22
  433. package/src/domains/session/decision-board.ts +101 -2
  434. package/src/domains/session/entries.ts +50 -7
  435. package/src/domains/session/extension.ts +4 -4
  436. package/src/domains/session/handoff.ts +2 -1
  437. package/src/domains/session/manager.ts +2 -3
  438. package/src/domains/session/task-board.ts +14 -1
  439. package/src/domains/session/tree/fork.ts +1 -2
  440. package/src/domains/session/tree/navigator.ts +1 -1
  441. package/src/domains/session/usage.ts +3 -3
  442. package/src/domains/user-tasks/acceptance.ts +56 -0
  443. package/src/domains/user-tasks/active-acceptance.ts +40 -0
  444. package/src/domains/user-tasks/store.ts +34 -3
  445. package/src/engine/acp/adapter.ts +24 -6
  446. package/src/engine/acp/server.ts +21 -4
  447. package/src/engine/acp/transport.ts +53 -8
  448. package/src/engine/acp/types.ts +4 -0
  449. package/src/engine/agent.ts +13 -3
  450. package/src/engine/ai.ts +26 -8
  451. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  452. package/src/engine/api-registry.ts +3 -0
  453. package/src/engine/apis/ollama-native.ts +15 -0
  454. package/src/engine/apis/openai-completions.ts +117 -14
  455. package/src/engine/claude/subprocess-runtime.ts +107 -60
  456. package/src/engine/external-subprocess.ts +122 -6
  457. package/src/entry/background-model-metadata.ts +18 -0
  458. package/src/entry/compaction-prompt.ts +57 -0
  459. package/src/entry/orchestrator.ts +416 -218
  460. package/src/entry/task-memory-lifecycle.ts +35 -0
  461. package/src/interactive/chat-loop-messages.ts +13 -4
  462. package/src/interactive/chat-loop.ts +65 -2
  463. package/src/interactive/chat-renderer.ts +1 -0
  464. package/src/interactive/cost-overlay.ts +26 -2
  465. package/src/interactive/dispatch-board.ts +46 -717
  466. package/src/interactive/fleet-run-preview.ts +2 -1
  467. package/src/interactive/interactive-application.ts +3 -2
  468. package/src/interactive/interactive-presentation.ts +55 -12
  469. package/src/interactive/interactive-slash-runtime.ts +4 -2
  470. package/src/interactive/oracle.ts +5 -2
  471. package/src/interactive/overlays/fleet-run-approval.ts +3 -2
  472. package/src/interactive/overlays/message-picker.ts +2 -2
  473. package/src/interactive/overlays/settings.ts +2 -2
  474. package/src/interactive/overlays/tree-selector.ts +2 -2
  475. package/src/interactive/renderers/branch-summary.ts +1 -1
  476. package/src/interactive/renderers/worker-entry.ts +32 -0
  477. package/src/interactive/slash-autocomplete.ts +4 -6
  478. package/src/interactive/slash-commands.ts +49 -45
  479. package/src/interactive/slash-spec.ts +28 -0
  480. package/src/interactive/theme/labels.ts +19 -13
  481. package/src/interactive/turn-context.ts +9 -5
  482. package/src/interactive/turn-recovery.ts +8 -0
  483. package/src/interactive/turn-runtime.ts +27 -11
  484. package/src/interactive/turn-state.ts +7 -0
  485. package/src/interactive/view/artifacts.ts +2 -0
  486. package/src/interactive/worker-receipts.ts +1 -0
  487. package/src/interactive/worker-stream.ts +13 -4
  488. package/src/tools/bootstrap.ts +4 -0
  489. package/src/tools/builtin-tool-catalog.ts +31 -0
  490. package/src/tools/compete-worktrees.ts +7 -1
  491. package/src/tools/context/index.ts +30 -9
  492. package/src/tools/core-bootstrap.ts +16 -0
  493. package/src/tools/decide.ts +136 -0
  494. package/src/tools/dispatch-admission.ts +21 -0
  495. package/src/tools/dispatch-arguments.ts +1 -0
  496. package/src/tools/dispatch-event-text.ts +10 -0
  497. package/src/tools/dispatch-plan.ts +6 -2
  498. package/src/tools/dispatch-runner.ts +27 -1
  499. package/src/tools/dispatch-types.ts +6 -0
  500. package/src/tools/evidence.ts +96 -0
  501. package/src/tools/limitation.ts +76 -0
  502. package/src/tools/policy.ts +9 -0
  503. package/src/tools/presentation.ts +3 -0
  504. package/src/tools/registry.ts +11 -5
  505. package/src/tools/result-shaping.ts +17 -5
  506. package/src/tools/task-worktree.ts +13 -3
  507. package/src/tools/tasks.ts +10 -1
  508. package/src/tools/verify/authoring.ts +170 -83
  509. package/src/tools/verify/catalog.ts +122 -5
  510. package/src/tools/verify/index.ts +2 -1
  511. package/src/tools/verify/numeric.ts +298 -0
  512. package/src/tools/verify/perf.ts +143 -0
  513. package/src/tools/verify/scripts.ts +229 -2
  514. package/src/tools/worker-evidence.ts +3 -1
  515. package/src/worker/spec-contract.ts +4 -0
  516. package/dist/chunk-2Z2IKEXI.js +0 -1554
  517. package/dist/chunk-RVG5JXAL.js +0 -41
  518. package/dist/chunk-T56WDKA5.js +0 -183
  519. package/dist/chunk-VN3SHNBN.js +0 -313
  520. package/dist/chunk-VPKWYKEY.js +0 -169
  521. package/dist/reset-OAQP3W4O.js +0 -230
  522. package/dist/uninstall-N34PCTGJ.js +0 -331
  523. package/dist/upgrade-PXK3S2YM.js +0 -325
@@ -0,0 +1,505 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ WIKI_DEPTH_STRATEGY,
4
+ areaForPath,
5
+ classifyDepth
6
+ } from "./chunk-R6Q67RJH.js";
7
+ import {
8
+ CLIO_ARTIFACT_DIR
9
+ } from "./chunk-GYV6VZOC.js";
10
+ import {
11
+ readCodewiki
12
+ } from "./chunk-LBMZMYH2.js";
13
+ import "./chunk-WEPFGWHJ.js";
14
+ import {
15
+ init_esm_shims
16
+ } from "./chunk-3R73A4XB.js";
17
+
18
+ // src/cli/context-map.ts
19
+ init_esm_shims();
20
+ import { execFileSync } from "node:child_process";
21
+ import { mkdirSync, writeFileSync } from "node:fs";
22
+ import path from "node:path";
23
+
24
+ // src/domains/context/wiki/map-seed.ts
25
+ init_esm_shims();
26
+ var MAX_SEED_COMPONENTS = 12;
27
+ var MAX_SEED_EXTERNALS = 3;
28
+ var MAX_SEED_CONNECTIONS = 16;
29
+ var MAX_SEED_SOURCES = 3;
30
+ var GRID_COLS = 4;
31
+ var CELL_W = 220;
32
+ var CELL_H = 72;
33
+ var GAP_X = 70;
34
+ var LANE_STEP = 16;
35
+ var LANE_MARGIN = 24;
36
+ var LABEL_BESIDE_OFFSET = 48;
37
+ var GITHUB_REPOSITORY_URL = /^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+(?:\.git)?\/?$/;
38
+ var FULL_REVISION = /^[a-fA-F0-9]{40}$/;
39
+ var DATABASE_DIR = /^(?:store|stores|storage|persistence|persist|db|database|databases|repository|repositories|dao)$/i;
40
+ function areaId(key) {
41
+ const slug = key.replace(/[^A-Za-z0-9]+/g, "-").replace(/^-+|-+$/g, "").toLowerCase();
42
+ const body = slug.length > 0 ? slug : "root";
43
+ return /^[a-z]/.test(body) ? body : `a-${body}`;
44
+ }
45
+ function uniqueIds(preferred) {
46
+ const reserved = new Set(preferred);
47
+ const used = /* @__PURE__ */ new Set();
48
+ return preferred.map((base) => {
49
+ let id = base;
50
+ if (used.has(id)) {
51
+ let suffix = 2;
52
+ do {
53
+ id = `${base}-${suffix++}`;
54
+ } while (reserved.has(id) || used.has(id));
55
+ }
56
+ used.add(id);
57
+ return id;
58
+ });
59
+ }
60
+ function componentTypeFor(area) {
61
+ const last = area.key.split("/").filter(Boolean).at(-1) ?? "";
62
+ if (DATABASE_DIR.test(last)) return "database";
63
+ if (area.files.some((file) => file.role === "entry")) return "frontend";
64
+ return "backend";
65
+ }
66
+ function collectAreas(files, areaDepth) {
67
+ const byKey = /* @__PURE__ */ new Map();
68
+ for (const file of files) {
69
+ const key = areaForPath(file.path, areaDepth);
70
+ const area = byKey.get(key) ?? { key, files: [], loc: 0 };
71
+ area.files.push(file);
72
+ area.loc += Math.max(0, file.loc);
73
+ byKey.set(key, area);
74
+ }
75
+ return [...byKey.values()].sort(
76
+ (a, b) => b.files.length - a.files.length || b.loc - a.loc || a.key.localeCompare(b.key)
77
+ );
78
+ }
79
+ function firstSymbolLines(symbols) {
80
+ const lines = /* @__PURE__ */ new Map();
81
+ for (const symbol of symbols) {
82
+ if (!Number.isInteger(symbol.line) || symbol.line < 1) continue;
83
+ const current = lines.get(symbol.fileId);
84
+ if (current === void 0 || symbol.line < current) lines.set(symbol.fileId, symbol.line);
85
+ }
86
+ return lines;
87
+ }
88
+ function sourcesFor(area, lines) {
89
+ return [...area.files].sort((a, b) => b.loc - a.loc || a.path.localeCompare(b.path)).slice(0, MAX_SEED_SOURCES).map((file) => {
90
+ const line = lines.get(file.id);
91
+ return line === void 0 ? { path: file.path } : { line, path: file.path };
92
+ });
93
+ }
94
+ function isInternalEdge(edge) {
95
+ return "toFileId" in edge;
96
+ }
97
+ function externalPackage(specifier) {
98
+ if (specifier.startsWith("node:") || NODE_BUILTINS.has(specifier)) return null;
99
+ const segments = specifier.split("/");
100
+ if (specifier.startsWith("@")) return segments.length >= 2 ? `${segments[0]}/${segments[1]}` : null;
101
+ return segments[0] && segments[0].length > 0 ? segments[0] : null;
102
+ }
103
+ var NODE_BUILTINS = /* @__PURE__ */ new Set([
104
+ "assert",
105
+ "buffer",
106
+ "child_process",
107
+ "crypto",
108
+ "events",
109
+ "fs",
110
+ "http",
111
+ "https",
112
+ "module",
113
+ "net",
114
+ "os",
115
+ "path",
116
+ "process",
117
+ "readline",
118
+ "stream",
119
+ "url",
120
+ "util",
121
+ "zlib"
122
+ ]);
123
+ function serializeArchitectureSeed(seed) {
124
+ const sortKeys = (value) => {
125
+ if (Array.isArray(value)) return value.map(sortKeys);
126
+ if (value && typeof value === "object") {
127
+ return Object.fromEntries(
128
+ Object.keys(value).sort().map((key) => [key, sortKeys(value[key])])
129
+ );
130
+ }
131
+ return value;
132
+ };
133
+ return `${JSON.stringify(sortKeys(seed), null, 2)}
134
+ `;
135
+ }
136
+ function assignRows(nodes, edges) {
137
+ const ids = nodes.filter((node) => node.type !== "external").map((node) => node.id);
138
+ const successors = new Map(ids.map((id) => [id, /* @__PURE__ */ new Set()]));
139
+ const reaches = (from, to) => {
140
+ const stack = [from];
141
+ const seen = /* @__PURE__ */ new Set();
142
+ while (stack.length > 0) {
143
+ const current = stack.pop();
144
+ if (current === to) return true;
145
+ if (seen.has(current)) continue;
146
+ seen.add(current);
147
+ for (const next of successors.get(current) ?? []) stack.push(next);
148
+ }
149
+ return false;
150
+ };
151
+ for (const edge of edges) {
152
+ if (!successors.has(edge.from) || !successors.has(edge.to)) continue;
153
+ if (reaches(edge.to, edge.from)) continue;
154
+ successors.get(edge.from)?.add(edge.to);
155
+ }
156
+ const layer = /* @__PURE__ */ new Map();
157
+ const depth = (id) => {
158
+ const known = layer.get(id);
159
+ if (known !== void 0) return known;
160
+ let best = 0;
161
+ for (const node of ids) {
162
+ if (successors.get(node)?.has(id)) best = Math.max(best, depth(node) + 1);
163
+ }
164
+ layer.set(id, best);
165
+ return best;
166
+ };
167
+ for (const id of ids) depth(id);
168
+ const rows = /* @__PURE__ */ new Map();
169
+ let row = 0;
170
+ const layers = [...new Set(ids.map((id) => layer.get(id)))].sort((a, b) => a - b);
171
+ for (const current of layers) {
172
+ const members = ids.filter((id) => layer.get(id) === current);
173
+ members.forEach((id, index) => {
174
+ rows.set(id, row + Math.floor(index / GRID_COLS));
175
+ });
176
+ row += Math.ceil(members.length / GRID_COLS);
177
+ }
178
+ const externals = nodes.filter((node) => node.type === "external");
179
+ externals.forEach((node, index) => {
180
+ rows.set(node.id, row + Math.floor(index / GRID_COLS));
181
+ });
182
+ return rows;
183
+ }
184
+ function placeAndRoute(nodes, edges) {
185
+ const rowOf = assignRows(nodes, edges);
186
+ const colOf = /* @__PURE__ */ new Map();
187
+ const used = /* @__PURE__ */ new Map();
188
+ for (const node of nodes) {
189
+ const row = rowOf.get(node.id);
190
+ const col = used.get(row) ?? 0;
191
+ colOf.set(node.id, col);
192
+ used.set(row, col + 1);
193
+ }
194
+ const gapLanes = /* @__PURE__ */ new Map();
195
+ const leftLanes = { count: 0 };
196
+ const rightLanes = { count: 0 };
197
+ const takeGap = (row) => {
198
+ const lane = gapLanes.get(row) ?? 0;
199
+ gapLanes.set(row, lane + 1);
200
+ return lane;
201
+ };
202
+ const plans = edges.map((edge) => {
203
+ const fromRow = rowOf.get(edge.from);
204
+ const toRow = rowOf.get(edge.to);
205
+ const sameCol = colOf.get(edge.from) === colOf.get(edge.to);
206
+ if (fromRow === toRow) {
207
+ return { edge, fromSide: "bottom", toSide: "bottom", straight: false, gaps: [[fromRow, takeGap(fromRow)]] };
208
+ }
209
+ if (fromRow < toRow) {
210
+ if (toRow === fromRow + 1) {
211
+ return {
212
+ edge,
213
+ fromSide: "bottom",
214
+ toSide: "top",
215
+ straight: sameCol,
216
+ gaps: sameCol ? [] : [[fromRow, takeGap(fromRow)]]
217
+ };
218
+ }
219
+ return {
220
+ edge,
221
+ fromSide: "bottom",
222
+ toSide: "top",
223
+ straight: false,
224
+ gaps: [
225
+ [fromRow, takeGap(fromRow)],
226
+ [toRow - 1, takeGap(toRow - 1)]
227
+ ],
228
+ margin: { side: "left", lane: leftLanes.count++ }
229
+ };
230
+ }
231
+ if (fromRow === toRow + 1) {
232
+ return {
233
+ edge,
234
+ fromSide: "top",
235
+ toSide: "bottom",
236
+ straight: sameCol,
237
+ gaps: sameCol ? [] : [[toRow, takeGap(toRow)]]
238
+ };
239
+ }
240
+ return {
241
+ edge,
242
+ fromSide: "top",
243
+ toSide: "bottom",
244
+ straight: false,
245
+ gaps: [
246
+ [fromRow - 1, takeGap(fromRow - 1)],
247
+ [toRow, takeGap(toRow)]
248
+ ],
249
+ margin: { side: "right", lane: rightLanes.count++ }
250
+ };
251
+ });
252
+ const maxGapLanes = Math.max(0, ...gapLanes.values());
253
+ const gapY = Math.max(90, 2 * LANE_MARGIN + Math.max(1, maxGapLanes) * LANE_STEP);
254
+ const originX = LANE_MARGIN + Math.max(1, leftLanes.count) * LANE_STEP + LANE_MARGIN;
255
+ const layout = {
256
+ mode: "grid",
257
+ origin: [originX, 80],
258
+ cols: GRID_COLS,
259
+ cellW: CELL_W,
260
+ cellH: CELL_H,
261
+ gapX: GAP_X,
262
+ gapY
263
+ };
264
+ const centerX = (id) => originX + colOf.get(id) * (CELL_W + GAP_X) + CELL_W / 2;
265
+ const topY = (row) => layout.origin[1] + row * (CELL_H + gapY);
266
+ const laneY = (row, lane) => topY(row) + CELL_H + LANE_MARGIN + lane * LANE_STEP;
267
+ const gridRight = originX + GRID_COLS * (CELL_W + GAP_X) - GAP_X;
268
+ const marginX = (margin) => margin.side === "left" ? originX - LANE_MARGIN - margin.lane * LANE_STEP : gridRight + LANE_MARGIN + margin.lane * LANE_STEP;
269
+ const components = nodes.map((node) => ({
270
+ id: node.id,
271
+ type: node.type,
272
+ label: node.label,
273
+ sublabel: node.sublabel,
274
+ row: rowOf.get(node.id),
275
+ col: colOf.get(node.id),
276
+ size: [CELL_W, CELL_H],
277
+ ...node.sources ? { sources: node.sources } : {}
278
+ }));
279
+ const connectionIds = uniqueIds(plans.map(({ edge }) => `${edge.from}-to-${edge.to}`));
280
+ const connections = plans.map((plan, index) => {
281
+ const { edge } = plan;
282
+ const base = {
283
+ id: connectionIds[index],
284
+ from: edge.from,
285
+ to: edge.to,
286
+ label: `${edge.weight} import${edge.weight === 1 ? "" : "s"}`,
287
+ fromSide: plan.fromSide,
288
+ toSide: plan.toSide
289
+ };
290
+ const xa = centerX(edge.from);
291
+ const xb = centerX(edge.to);
292
+ if (plan.straight) {
293
+ const upperRow = Math.min(rowOf.get(edge.from), rowOf.get(edge.to));
294
+ const gapMid = topY(upperRow) + CELL_H + gapY / 2;
295
+ return { ...base, route: "straight", labelAt: [xa + LABEL_BESIDE_OFFSET, gapMid] };
296
+ }
297
+ const [first, second] = plan.gaps;
298
+ if (!first) return { ...base, route: "straight" };
299
+ const y1 = laneY(first[0], first[1]);
300
+ if (!plan.margin || !second)
301
+ return {
302
+ ...base,
303
+ via: [
304
+ [xa, y1],
305
+ [xb, y1]
306
+ ]
307
+ };
308
+ const y2 = laneY(second[0], second[1]);
309
+ const mx = marginX(plan.margin);
310
+ return {
311
+ ...base,
312
+ via: [
313
+ [xa, y1],
314
+ [mx, y1],
315
+ [mx, y2],
316
+ [xb, y2]
317
+ ]
318
+ };
319
+ });
320
+ return { layout, components, connections };
321
+ }
322
+ function buildArchitectureSeed(codewiki, options) {
323
+ const source = codewiki.files.filter((file) => file.lang !== "config");
324
+ const sourceLines = source.reduce((total, file) => total + Math.max(0, file.loc), 0);
325
+ const { areaDepth } = WIKI_DEPTH_STRATEGY[classifyDepth(source.length, sourceLines)];
326
+ const areas = collectAreas(source, areaDepth).slice(0, MAX_SEED_COMPONENTS);
327
+ const lines = firstSymbolLines(codewiki.symbols);
328
+ const areaByFile = /* @__PURE__ */ new Map();
329
+ for (const area of areas) for (const file of area.files) areaByFile.set(file.id, area.key);
330
+ const repository = options.repository;
331
+ const pinned = repository && GITHUB_REPOSITORY_URL.test(repository.url) && FULL_REVISION.test(repository.revision) ? { url: repository.url, revision: repository.revision.toLowerCase() } : void 0;
332
+ const externalCounts = /* @__PURE__ */ new Map();
333
+ const externalWeights = /* @__PURE__ */ new Map();
334
+ for (const edge of codewiki.edges) {
335
+ if (isInternalEdge(edge)) continue;
336
+ const fromArea = areaByFile.get(edge.fileId);
337
+ const pkg = externalPackage(edge.externalModule);
338
+ if (fromArea === void 0 || pkg === null) continue;
339
+ externalCounts.set(pkg, (externalCounts.get(pkg) ?? 0) + 1);
340
+ const key = `${fromArea}\0${pkg}`;
341
+ externalWeights.set(key, (externalWeights.get(key) ?? 0) + 1);
342
+ }
343
+ const externals = [...externalCounts.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])).slice(0, MAX_SEED_EXTERNALS).map(([module]) => module);
344
+ const componentIds = uniqueIds([
345
+ ...areas.map((area) => areaId(area.key)),
346
+ ...externals.map((module) => `ext-${areaId(module)}`)
347
+ ]);
348
+ const idByArea = new Map(areas.map((area, index) => [area.key, componentIds[index]]));
349
+ const idByExternal = new Map(externals.map((module, index) => [module, componentIds[areas.length + index]]));
350
+ const nodes = areas.map((area) => {
351
+ const sources = pinned ? sourcesFor(area, lines) : [];
352
+ return {
353
+ id: idByArea.get(area.key),
354
+ type: componentTypeFor(area),
355
+ label: area.key,
356
+ sublabel: `${area.files.length} file${area.files.length === 1 ? "" : "s"}, ${area.loc} LOC`,
357
+ ...sources.length > 0 ? { sources } : {}
358
+ };
359
+ });
360
+ for (const module of externals) {
361
+ const count = externalCounts.get(module) ?? 0;
362
+ nodes.push({
363
+ id: idByExternal.get(module),
364
+ type: "external",
365
+ label: module,
366
+ sublabel: `${count} import${count === 1 ? "" : "s"}`
367
+ });
368
+ }
369
+ const weights = /* @__PURE__ */ new Map();
370
+ for (const edge of codewiki.edges) {
371
+ if (!isInternalEdge(edge)) continue;
372
+ const from = areaByFile.get(edge.fileId);
373
+ const to = areaByFile.get(edge.toFileId);
374
+ if (from === void 0 || to === void 0 || from === to) continue;
375
+ const key = `${from}\0${to}\0internal`;
376
+ weights.set(key, (weights.get(key) ?? 0) + 1);
377
+ }
378
+ for (const module of externals) {
379
+ for (const area of areas) {
380
+ const weight = externalWeights.get(`${area.key}\0${module}`);
381
+ if (weight) weights.set(`${area.key}\0${module}\0external`, weight);
382
+ }
383
+ }
384
+ const edges = [...weights.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])).slice(0, MAX_SEED_CONNECTIONS).map(([key, weight]) => {
385
+ const [fromKey, toKey, kind] = key.split("\0");
386
+ const from = idByArea.get(fromKey);
387
+ const to = (kind === "internal" ? idByArea : idByExternal).get(toKey);
388
+ return { from, to, weight };
389
+ });
390
+ const { layout, components, connections } = placeAndRoute(nodes, edges);
391
+ const meta = {
392
+ title: options.title,
393
+ quality_profile: "standard",
394
+ ...pinned ? { repository: pinned } : {}
395
+ };
396
+ return {
397
+ schema_version: 1,
398
+ diagram_type: "architecture",
399
+ meta,
400
+ layout,
401
+ components,
402
+ connections
403
+ };
404
+ }
405
+
406
+ // src/cli/context-map.ts
407
+ var HELP = `Usage:
408
+ clio-coder context map [--out <path>] [--json]
409
+
410
+ Write an archify architecture seed for the current repository from the codewiki
411
+ index, without model calls. The seed is the starting spec for the archify skill:
412
+ components are the largest directory areas, connections are collapsed import
413
+ edges, and sources point at indexed files and lines.
414
+
415
+ Options:
416
+ --out <path> where to write the seed (default: ${CLIO_ARTIFACT_DIR}/maps/<repo>.architecture.json)
417
+ --json print machine-readable details about the written seed
418
+ `;
419
+ function defaultMapSeedPath(cwd) {
420
+ return path.join(cwd, CLIO_ARTIFACT_DIR, "maps", `${path.basename(cwd)}.architecture.json`);
421
+ }
422
+ function gitValue(cwd, args) {
423
+ try {
424
+ const out = execFileSync("git", args, { cwd, timeout: 5e3, stdio: ["ignore", "pipe", "ignore"] }).toString("utf8").trim();
425
+ return out.length > 0 ? out : null;
426
+ } catch {
427
+ return null;
428
+ }
429
+ }
430
+ function repositoryFacts(cwd) {
431
+ const remote = gitValue(cwd, ["remote", "get-url", "origin"]);
432
+ const revision = gitValue(cwd, ["rev-parse", "--verify", "HEAD"]);
433
+ if (!remote || !revision) return void 0;
434
+ let url = remote.endsWith(".git") ? remote.slice(0, -4) : remote;
435
+ const ssh = /^git@([^:]+):(.+)$/.exec(url);
436
+ if (ssh) url = `https://${ssh[1]}/${ssh[2]}`;
437
+ return { url, revision };
438
+ }
439
+ async function runContextMapCommand(args) {
440
+ if (args.includes("--help") || args.includes("-h")) {
441
+ process.stdout.write(HELP);
442
+ return 0;
443
+ }
444
+ let out = null;
445
+ let json = false;
446
+ for (let index = 0; index < args.length; index += 1) {
447
+ const arg = args[index];
448
+ if (arg === "--json") {
449
+ json = true;
450
+ continue;
451
+ }
452
+ if (arg === "--out") {
453
+ const value = args[index + 1];
454
+ if (!value || value.startsWith("--")) {
455
+ process.stderr.write("clio-coder context map: --out requires a path\n");
456
+ return 2;
457
+ }
458
+ out = value;
459
+ index += 1;
460
+ continue;
461
+ }
462
+ process.stderr.write(`clio-coder context map: unknown flag ${arg}
463
+ `);
464
+ return 2;
465
+ }
466
+ const cwd = process.cwd();
467
+ const codewiki = readCodewiki(cwd);
468
+ if (!codewiki) {
469
+ process.stderr.write(
470
+ "clio-coder context map: no codewiki index in .clio-coder/codewiki.json; run `clio-coder context index` first\n"
471
+ );
472
+ return 1;
473
+ }
474
+ const seed = buildArchitectureSeed(codewiki, {
475
+ title: path.basename(cwd),
476
+ repository: repositoryFacts(cwd)
477
+ });
478
+ const target = out ? path.resolve(cwd, out) : defaultMapSeedPath(cwd);
479
+ mkdirSync(path.dirname(target), { recursive: true });
480
+ writeFileSync(target, serializeArchitectureSeed(seed), "utf8");
481
+ const payload = {
482
+ path: target,
483
+ components: seed.components.length,
484
+ connections: seed.connections.length,
485
+ repository: seed.meta.repository ?? null
486
+ };
487
+ if (json) {
488
+ process.stdout.write(`${JSON.stringify(payload, null, 2)}
489
+ `);
490
+ return 0;
491
+ }
492
+ process.stdout.write(
493
+ [
494
+ `clio-coder context map wrote ${target}`,
495
+ ` ${payload.components} components, ${payload.connections} connections${payload.repository ? `, sources pinned at ${payload.repository.revision.slice(0, 12)}` : "; no GitHub origin at a full revision, so no source citations"}`,
496
+ payload.repository ? " next: validate and deliver it with the archify skill, passing --repo-root ." : " next: validate and deliver it with the archify skill (without --repo-root)",
497
+ ""
498
+ ].join("\n")
499
+ );
500
+ return 0;
501
+ }
502
+ export {
503
+ runContextMapCommand
504
+ };
505
+ //# sourceMappingURL=context-map-COB37XXN.js.map
@@ -10,7 +10,7 @@ import {
10
10
  resolveWorkingSetPolicy,
11
11
  selectVisibleEntries,
12
12
  tokensFreedByEviction
13
- } from "./chunk-M2WXEHER.js";
13
+ } from "./chunk-ZA4VCIGV.js";
14
14
  import {
15
15
  EMPTY_WORKING_SET_VIEW,
16
16
  buildPathIndex,
@@ -22,40 +22,41 @@ import {
22
22
  } from "./chunk-GTUD2WMY.js";
23
23
  import {
24
24
  parseSessionEntries
25
- } from "./chunk-X7IARSHT.js";
26
- import "./chunk-3DPEIQKN.js";
25
+ } from "./chunk-6UINWWS6.js";
27
26
  import {
28
27
  filterEntriesToActivePath
29
28
  } from "./chunk-W6GROXXM.js";
29
+ import "./chunk-3DPEIQKN.js";
30
30
  import "./chunk-HVDIIIQW.js";
31
- import "./chunk-Q4XWMHX6.js";
32
- import {
33
- isSessionHeader
34
- } from "./chunk-FSP7CMNU.js";
31
+ import "./chunk-6PAZTBPA.js";
35
32
  import "./chunk-OZNBF4L3.js";
36
- import "./chunk-IKOZFYBN.js";
37
- import "./chunk-UL3WSD3F.js";
33
+ import "./chunk-NXYCB2VD.js";
38
34
  import "./chunk-ECH6PKUQ.js";
39
- import "./chunk-K6BSR66V.js";
40
- import "./chunk-XAKHZX5N.js";
41
- import "./chunk-33YXPOE3.js";
42
- import "./chunk-7CR24IG7.js";
35
+ import "./chunk-GYV6VZOC.js";
36
+ import "./chunk-UL3WSD3F.js";
37
+ import {
38
+ isSessionHeader
39
+ } from "./chunk-54X7T7DK.js";
40
+ import "./chunk-4NSRCOYP.js";
43
41
  import "./chunk-CFGTUFWB.js";
44
- import "./chunk-CWVRRIEI.js";
45
- import "./chunk-MQXIVJ35.js";
42
+ import "./chunk-NZMNUPZZ.js";
43
+ import "./chunk-HAXOFFRH.js";
46
44
  import {
47
45
  assertSafeId
48
46
  } from "./chunk-R346GLFC.js";
49
47
  import "./chunk-BTK3SSSK.js";
50
48
  import "./chunk-F4EKGO4N.js";
49
+ import "./chunk-XAKHZX5N.js";
50
+ import "./chunk-33YXPOE3.js";
51
+ import "./chunk-7CR24IG7.js";
51
52
  import "./chunk-IWHMRKLL.js";
52
53
  import {
53
54
  DEFAULT_WORKING_SET_SETTINGS
54
55
  } from "./chunk-LL4KHSZI.js";
56
+ import "./chunk-WEPFGWHJ.js";
55
57
  import {
56
58
  clioStatePath
57
59
  } from "./chunk-BYP5D4HI.js";
58
- import "./chunk-WEPFGWHJ.js";
59
60
  import {
60
61
  init_esm_shims
61
62
  } from "./chunk-3R73A4XB.js";
@@ -1551,4 +1552,4 @@ export {
1551
1552
  runContextReplayCommand,
1552
1553
  runContextWorkingSetCommand
1553
1554
  };
1554
- //# sourceMappingURL=context-working-set-BWLF6LJP.js.map
1555
+ //# sourceMappingURL=context-working-set-3I3FYX6Y.js.map
@@ -0,0 +1,98 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ EVIDENCE_DETAIL_MAX_RUNS,
4
+ evidenceDetailSnapshot
5
+ } from "./chunk-IXIY2H4R.js";
6
+ import "./chunk-NRO2BJRH.js";
7
+ import "./chunk-NXIMQY5W.js";
8
+ import "./chunk-XRZT5WY5.js";
9
+ import "./chunk-QUFRYSWI.js";
10
+ import "./chunk-LTIKRKFL.js";
11
+ import "./chunk-ODGTEFFI.js";
12
+ import "./chunk-CUSRQKPU.js";
13
+ import "./chunk-6UINWWS6.js";
14
+ import "./chunk-FTMGRKEF.js";
15
+ import "./chunk-VIA6RFQZ.js";
16
+ import "./chunk-W6GROXXM.js";
17
+ import "./chunk-I2DWJ4GM.js";
18
+ import "./chunk-OEJSLEPW.js";
19
+ import "./chunk-RKKLTLYB.js";
20
+ import "./chunk-K6T2ZAMZ.js";
21
+ import "./chunk-3UUXNFEX.js";
22
+ import "./chunk-V76WTFTW.js";
23
+ import "./chunk-3DPEIQKN.js";
24
+ import "./chunk-TQAHXW6Y.js";
25
+ import "./chunk-5MEZN6CB.js";
26
+ import "./chunk-HVDIIIQW.js";
27
+ import "./chunk-75W7L2E2.js";
28
+ import "./chunk-6QOTUPRG.js";
29
+ import "./chunk-AUPNRN7C.js";
30
+ import "./chunk-6PAZTBPA.js";
31
+ import "./chunk-6Q3CYFD3.js";
32
+ import "./chunk-NEDJ26B5.js";
33
+ import "./chunk-OQE5J4C6.js";
34
+ import "./chunk-NAI6ZFCY.js";
35
+ import "./chunk-OZNBF4L3.js";
36
+ import "./chunk-QZWQA4DE.js";
37
+ import "./chunk-H7IXIC72.js";
38
+ import "./chunk-KFV5L5SK.js";
39
+ import "./chunk-NXYCB2VD.js";
40
+ import "./chunk-ECH6PKUQ.js";
41
+ import "./chunk-IRXAATOX.js";
42
+ import "./chunk-BJVFZO5U.js";
43
+ import "./chunk-DXKJURES.js";
44
+ import "./chunk-HHV2GANA.js";
45
+ import "./chunk-GYV6VZOC.js";
46
+ import "./chunk-UL3WSD3F.js";
47
+ import "./chunk-5B2AEOW5.js";
48
+ import "./chunk-VAVR4IJY.js";
49
+ import "./chunk-4BJ5BYCE.js";
50
+ import "./chunk-54X7T7DK.js";
51
+ import "./chunk-I5FWO7L5.js";
52
+ import "./chunk-6XLNIQDB.js";
53
+ import "./chunk-4NSRCOYP.js";
54
+ import "./chunk-JSD46VO2.js";
55
+ import "./chunk-CFGTUFWB.js";
56
+ import "./chunk-NZMNUPZZ.js";
57
+ import "./chunk-2JH2WHGE.js";
58
+ import "./chunk-KXDSS5WJ.js";
59
+ import "./chunk-GHS5EBTQ.js";
60
+ import "./chunk-D7E7WCDF.js";
61
+ import "./chunk-HAXOFFRH.js";
62
+ import "./chunk-R346GLFC.js";
63
+ import "./chunk-BTK3SSSK.js";
64
+ import "./chunk-W54I7H25.js";
65
+ import "./chunk-PMZVFWSR.js";
66
+ import "./chunk-F4EKGO4N.js";
67
+ import "./chunk-XAKHZX5N.js";
68
+ import "./chunk-33YXPOE3.js";
69
+ import "./chunk-7CR24IG7.js";
70
+ import "./chunk-XPLRXC72.js";
71
+ import "./chunk-IWHMRKLL.js";
72
+ import "./chunk-6OSVSQL5.js";
73
+ import "./chunk-UXCU4E3T.js";
74
+ import "./chunk-LL4KHSZI.js";
75
+ import "./chunk-S66XZJOF.js";
76
+ import "./chunk-TOIVGRUX.js";
77
+ import "./chunk-U6TMQNSI.js";
78
+ import "./chunk-EBY63B7G.js";
79
+ import "./chunk-6EJMN2Y3.js";
80
+ import "./chunk-26QSH3EJ.js";
81
+ import "./chunk-ID64D7PE.js";
82
+ import "./chunk-336NSSKI.js";
83
+ import "./chunk-IKCO5N3L.js";
84
+ import "./chunk-3I7MS7N2.js";
85
+ import "./chunk-APJ265NV.js";
86
+ import "./chunk-WEPFGWHJ.js";
87
+ import "./chunk-NUGM5KR6.js";
88
+ import "./chunk-5OIVVPHF.js";
89
+ import "./chunk-YPC6ZR5L.js";
90
+ import "./chunk-YXLYO42X.js";
91
+ import "./chunk-2LEAKD4C.js";
92
+ import "./chunk-BYP5D4HI.js";
93
+ import "./chunk-3R73A4XB.js";
94
+ export {
95
+ EVIDENCE_DETAIL_MAX_RUNS,
96
+ evidenceDetailSnapshot
97
+ };
98
+ //# sourceMappingURL=detail-A7JAVSIG.js.map