@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
@@ -1,34 +1,41 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ createWorkerProgressFold
4
+ } from "./chunk-XXYSBZIQ.js";
2
5
  import {
3
6
  PANES_PRESETS,
4
7
  PANES_PRESET_IDS,
5
8
  resolvePanesPresetId
6
9
  } from "./chunk-35MSIRKH.js";
10
+ import {
11
+ acceptanceFromTaskFlags
12
+ } from "./chunk-EXLD33WO.js";
7
13
  import {
8
14
  AdmissionCanceledError,
9
15
  WORKER_OUTPUT_MAX_BYTES,
10
- durableAssistantTextFromEvent
11
- } from "./chunk-T56WDKA5.js";
16
+ decisionRationale
17
+ } from "./chunk-I2DWJ4GM.js";
12
18
  import {
19
+ SKILL_SURFACE_CLEAR_ARG,
13
20
  parseSkillCommand
14
- } from "./chunk-O3YUNJZ2.js";
21
+ } from "./chunk-2ZSONWVL.js";
15
22
  import {
16
23
  TOOL_PROFILE_NAMES,
17
24
  isToolProfileName
18
- } from "./chunk-42FMPA75.js";
25
+ } from "./chunk-QZWQA4DE.js";
19
26
  import {
20
27
  requestExecutionRole
21
28
  } from "./chunk-H7IXIC72.js";
22
- import {
23
- truncateUtf8
24
- } from "./chunk-6XLNIQDB.js";
25
29
  import {
26
30
  parseCouncilReport,
27
31
  parseOracleResult
28
- } from "./chunk-PGF63K6I.js";
32
+ } from "./chunk-KFV5L5SK.js";
33
+ import {
34
+ truncateUtf8
35
+ } from "./chunk-6XLNIQDB.js";
29
36
  import {
30
37
  resolveModelReference
31
- } from "./chunk-BYMNWQ7O.js";
38
+ } from "./chunk-JSD46VO2.js";
32
39
  import {
33
40
  BusChannels
34
41
  } from "./chunk-F4EKGO4N.js";
@@ -105,12 +112,15 @@ function clamp(text, maxBytes) {
105
112
  return { text: `${buffer.subarray(0, cut).toString("utf8")}${ORACLE_TRUNCATION_MARKER}`, truncated: true };
106
113
  }
107
114
  function decisionLine(decision) {
115
+ const argument = decisionRationale(decision);
116
+ const details = argument ? `
117
+ ${argument}` : "";
108
118
  const label = decision.label ? ` (${decision.label})` : "";
109
119
  if (decision.status === "superseded") {
110
120
  const correction = decision.correction ? `; corrected to ${decision.correction}` : "";
111
- return `- ${decision.key}${label}: ${decision.value} [superseded${correction}]`;
121
+ return `- ${decision.key}${label}: ${decision.value} [superseded${correction}]${details}`;
112
122
  }
113
- return `- ${decision.key}${label}: ${decision.value}`;
123
+ return `- ${decision.key}${label}: ${decision.value}${details}`;
114
124
  }
115
125
  function taskLine(task) {
116
126
  return `- ${task.id} [${task.status}] ${task.title}`;
@@ -367,6 +377,32 @@ function parseArgs(spec, argsLine) {
367
377
  while (index < argsLine.length) {
368
378
  const currentPositionalSpec = positionalSpecs[positionalIndex];
369
379
  if (currentPositionalSpec?.rest) {
380
+ if (currentSpec.parseFlagsInRest) {
381
+ const text = [];
382
+ while (index < argsLine.length) {
383
+ const start = index;
384
+ const read2 = readToken();
385
+ if (!read2) break;
386
+ if (read2.token === "--") {
387
+ text.push(argsLine.slice(index).trim());
388
+ index = argsLine.length;
389
+ break;
390
+ }
391
+ const flag = flagSpecs.find((item) => item.name === read2.token);
392
+ if (flag) {
393
+ const error = consumeFlag(flag, read2.token);
394
+ if (error) return errorResult(error);
395
+ } else if (read2.token.startsWith("--")) return errorResult(`Unknown flag: ${read2.token}`);
396
+ else text.push(argsLine.slice(start, index));
397
+ skipWhitespace();
398
+ }
399
+ const restVal2 = text.join(" ").trim();
400
+ if (!restVal2) return errorResult(`Missing required argument: ${currentPositionalSpec.name}`);
401
+ positionals.push(restVal2);
402
+ rest = restVal2;
403
+ positionalIndex++;
404
+ break;
405
+ }
370
406
  if (currentSpec.parseFlagsBeforeRest) {
371
407
  while (index < argsLine.length) {
372
408
  const tokenStart = index;
@@ -600,278 +636,10 @@ init_esm_shims();
600
636
 
601
637
  // src/interactive/worker-stream.ts
602
638
  init_esm_shims();
603
-
604
- // src/interactive/worker-progress.ts
605
- init_esm_shims();
606
- var WORKER_LIVE_TAIL_LINES = 40;
607
- var WORKER_LIVE_TAIL_MAX_BYTES = 4096;
608
- var WORKER_TOOL_NAME_LIMIT = 8;
609
- var WORKER_ACTION_TRAIL_LIMIT = 4;
610
- var WORKER_PROGRESS_WINDOW_MS = 250;
611
- var WORKER_PROGRESS_WINDOW_BYTES = 16384;
612
- var TAIL_TRUNCATION_MARKER = "";
613
- function isRecord(value) {
614
- return typeof value === "object" && value !== null && !Array.isArray(value);
615
- }
616
- function nonEmptyString(value) {
617
- return typeof value === "string" && value.trim().length > 0 ? value : void 0;
618
- }
619
- function workerTextDelta(event) {
620
- if (!isRecord(event)) return "";
621
- if (event.type === "message_update") {
622
- const assistantEvent = isRecord(event.assistantMessageEvent) ? event.assistantMessageEvent : null;
623
- if (assistantEvent?.type !== "text_delta") return "";
624
- return typeof assistantEvent.delta === "string" ? assistantEvent.delta : "";
625
- }
626
- if (event.type !== "text_delta") return "";
627
- if (typeof event.delta === "string") return event.delta;
628
- return typeof event.text === "string" ? event.text : "";
629
- }
630
- function isThinkingEvent(event) {
631
- if (event.type === "thinking_delta") return true;
632
- if (event.type !== "message_update") return false;
633
- const assistantEvent = isRecord(event.assistantMessageEvent) ? event.assistantMessageEvent : null;
634
- return assistantEvent?.type === "thinking_delta";
635
- }
636
- function toolEventAction(event) {
637
- if (event.type !== "clio_coder_tool_start" && event.type !== "clio_coder_tool_finish") return null;
638
- const payload = isRecord(event.payload) ? event.payload : null;
639
- const tool = nonEmptyString(payload?.tool);
640
- if (tool === void 0) return null;
641
- const toolCallId = nonEmptyString(payload?.toolCallId);
642
- const raw = isRecord(payload?.action) ? payload.action : void 0;
643
- const verb = nonEmptyString(raw?.verb);
644
- if (verb === void 0) return { tool, ...toolCallId !== void 0 ? { toolCallId } : {} };
645
- const object = nonEmptyString(raw?.object);
646
- return {
647
- tool,
648
- ...toolCallId !== void 0 ? { toolCallId } : {},
649
- descriptor: {
650
- verb,
651
- ...object !== void 0 ? { object } : {},
652
- ...raw?.truncated === true ? { truncated: true } : {}
653
- }
654
- };
655
- }
656
- function lineCount(text) {
657
- if (text.length === 0) return 0;
658
- let lines = 1;
659
- for (let index = 0; index < text.length; index += 1) {
660
- if (text[index] === "\n") lines += 1;
661
- }
662
- return lines;
663
- }
664
- function keepTailBytes(text, maxBytes) {
665
- const buffer = Buffer.from(text, "utf8");
666
- if (buffer.byteLength <= maxBytes) return text;
667
- let cut = buffer.byteLength - maxBytes;
668
- while (cut < buffer.byteLength) {
669
- const byte = buffer[cut];
670
- if (byte === void 0 || (byte & 192) !== 128) break;
671
- cut += 1;
672
- }
673
- return buffer.subarray(cut).toString("utf8");
674
- }
675
- function boundLiveTail(text) {
676
- const lines = text.split("\n");
677
- let droppedLines = 0;
678
- if (lines.length > WORKER_LIVE_TAIL_LINES) {
679
- droppedLines = lines.length - WORKER_LIVE_TAIL_LINES;
680
- lines.splice(0, droppedLines);
681
- }
682
- while (lines.length > 1 && Buffer.byteLength(lines.join("\n"), "utf8") > WORKER_LIVE_TAIL_MAX_BYTES) {
683
- lines.shift();
684
- droppedLines += 1;
685
- }
686
- const joined = lines.join("\n");
687
- const bytes = Buffer.byteLength(joined, "utf8");
688
- if (bytes <= WORKER_LIVE_TAIL_MAX_BYTES) return { text: joined, droppedLines, droppedBytes: 0 };
689
- const kept = keepTailBytes(joined, WORKER_LIVE_TAIL_MAX_BYTES);
690
- return { text: kept, droppedLines, droppedBytes: bytes - Buffer.byteLength(kept, "utf8") };
691
- }
692
- function boundSettledText(text) {
693
- const bounded = truncateUtf8(text, WORKER_OUTPUT_MAX_BYTES, TAIL_TRUNCATION_MARKER);
694
- if (bounded === text) return { text, dropped: 0 };
695
- return { text: bounded, dropped: Math.max(0, lineCount(text) - lineCount(bounded)) };
696
- }
697
- var EMPTY_SNAPSHOT = {
698
- revision: 0,
699
- phase: "starting",
700
- tailText: "",
701
- droppedLines: 0,
702
- droppedBytes: 0,
703
- currentAction: null,
704
- recentActions: [],
705
- toolNames: [],
706
- settled: false
707
- };
708
- function createWorkerProgressFold() {
709
- let revision = 0;
710
- let phase = "starting";
711
- let tailText = "";
712
- let droppedLines = 0;
713
- let droppedBytes = 0;
714
- let currentAction = null;
715
- const recentActions = [];
716
- const toolNames = [];
717
- let settled = false;
718
- let durable = "";
719
- let betweenAssistantMessages = false;
720
- const pendingActions = [];
721
- const pendingActionsById = /* @__PURE__ */ new Map();
722
- let windowStartMs = 0;
723
- let windowBytes = 0;
724
- let cached = EMPTY_SNAPSHOT;
725
- const touch = () => {
726
- revision += 1;
727
- cached = null;
728
- return true;
729
- };
730
- const setPhase = (next) => {
731
- if (phase === next) return false;
732
- phase = next;
733
- return touch();
734
- };
735
- const admitDelta = (delta, nowMs) => {
736
- if (nowMs - windowStartMs >= WORKER_PROGRESS_WINDOW_MS) {
737
- windowStartMs = nowMs;
738
- windowBytes = 0;
739
- }
740
- const bytes = Buffer.byteLength(delta, "utf8");
741
- if (windowBytes + bytes <= WORKER_PROGRESS_WINDOW_BYTES) {
742
- windowBytes += bytes;
743
- return delta;
744
- }
745
- windowBytes = WORKER_PROGRESS_WINDOW_BYTES;
746
- droppedBytes += bytes;
747
- return "";
748
- };
749
- const appendTail = (text) => {
750
- if (text.length === 0) return false;
751
- const bounded = boundLiveTail(tailText + text);
752
- tailText = bounded.text;
753
- droppedLines += bounded.droppedLines;
754
- droppedBytes += bounded.droppedBytes;
755
- return touch();
756
- };
757
- const noteToolName = (tool) => {
758
- if (toolNames.includes(tool) || toolNames.length >= WORKER_TOOL_NAME_LIMIT) return false;
759
- toolNames.push(tool);
760
- return touch();
761
- };
762
- const removePendingAction = (action) => {
763
- const index = pendingActions.lastIndexOf(action);
764
- if (index >= 0) pendingActions.splice(index, 1);
765
- if (action.toolCallId !== void 0 && pendingActionsById.get(action.toolCallId) === action) {
766
- pendingActionsById.delete(action.toolCallId);
767
- }
768
- };
769
- const lastPendingActionForTool = (tool) => {
770
- for (let index = pendingActions.length - 1; index >= 0; index -= 1) {
771
- const candidate = pendingActions[index];
772
- if (candidate?.tool === tool) return candidate;
773
- }
774
- return void 0;
775
- };
776
- return {
777
- observe(event, nowMs = Date.now()) {
778
- if (!isRecord(event) || settled) return false;
779
- let changed = false;
780
- const delta = workerTextDelta(event);
781
- if (delta.length > 0) {
782
- const separator = betweenAssistantMessages && tailText.length > 0 && !tailText.endsWith("\n") ? "\n\n" : "";
783
- betweenAssistantMessages = false;
784
- changed = appendTail(admitDelta(`${separator}${delta}`, nowMs)) || changed;
785
- changed = setPhase("writing") || changed;
786
- } else if (isThinkingEvent(event)) {
787
- changed = setPhase("thinking") || changed;
788
- }
789
- const durableText = durableAssistantTextFromEvent(event);
790
- if (durableText.trim().length > 0) {
791
- durable = durableText;
792
- if (delta.length === 0 && tailText.trim().length === 0) {
793
- changed = appendTail(durableText) || changed;
794
- }
795
- betweenAssistantMessages = true;
796
- }
797
- const action = toolEventAction(event);
798
- if (action !== null && event.type === "clio_coder_tool_start") {
799
- if (action.toolCallId !== void 0) {
800
- const duplicate = pendingActionsById.get(action.toolCallId);
801
- if (duplicate !== void 0) removePendingAction(duplicate);
802
- pendingActionsById.set(action.toolCallId, action);
803
- }
804
- pendingActions.push(action);
805
- currentAction = action;
806
- noteToolName(action.tool);
807
- touch();
808
- setPhase("tool");
809
- changed = true;
810
- } else if (action !== null && event.type === "clio_coder_tool_finish") {
811
- const finished = (action.toolCallId !== void 0 ? pendingActionsById.get(action.toolCallId) : void 0) ?? lastPendingActionForTool(action.tool) ?? action;
812
- removePendingAction(finished);
813
- currentAction = pendingActions[pendingActions.length - 1] ?? null;
814
- recentActions.unshift(finished);
815
- if (recentActions.length > WORKER_ACTION_TRAIL_LIMIT) recentActions.length = WORKER_ACTION_TRAIL_LIMIT;
816
- noteToolName(finished.tool);
817
- touch();
818
- setPhase(currentAction === null ? "waiting" : "tool");
819
- changed = true;
820
- }
821
- if (event.type === "agent_start") changed = setPhase("starting") || changed;
822
- return changed;
823
- },
824
- settle(text) {
825
- const sealed = nonEmptyString(text) ?? nonEmptyString(durable);
826
- if (sealed !== void 0) {
827
- const bounded = boundSettledText(sealed);
828
- tailText = bounded.text;
829
- droppedLines = bounded.dropped;
830
- }
831
- currentAction = null;
832
- pendingActions.length = 0;
833
- pendingActionsById.clear();
834
- settled = true;
835
- phase = "settled";
836
- touch();
837
- return true;
838
- },
839
- restart() {
840
- currentAction = null;
841
- pendingActions.length = 0;
842
- pendingActionsById.clear();
843
- durable = "";
844
- betweenAssistantMessages = false;
845
- settled = false;
846
- phase = "starting";
847
- touch();
848
- },
849
- snapshot() {
850
- if (cached !== null) return cached;
851
- cached = {
852
- revision,
853
- phase,
854
- tailText,
855
- droppedLines,
856
- droppedBytes,
857
- currentAction: currentAction === null ? null : { ...currentAction },
858
- recentActions: recentActions.map((entry) => ({ ...entry })),
859
- toolNames: [...toolNames],
860
- settled
861
- };
862
- return cached;
863
- },
864
- durableText() {
865
- return durable;
866
- }
867
- };
868
- }
869
-
870
- // src/interactive/worker-stream.ts
871
639
  function workerAskedByModel(state) {
872
640
  return state.parentToolCallId !== void 0 || state.origin === "agent";
873
641
  }
874
- function nonEmptyString2(value) {
642
+ function nonEmptyString(value) {
875
643
  return typeof value === "string" && value.trim().length > 0 ? value : void 0;
876
644
  }
877
645
  function finiteNumber(value) {
@@ -886,11 +654,11 @@ function workerRuntimeKind(runtimeKind, runtimeId) {
886
654
  function runtimeIdentity(payload) {
887
655
  const kind = workerRuntimeKind(payload.runtimeKind, payload.runtimeId);
888
656
  if (kind === "acp") {
889
- const peerId = nonEmptyString2(payload.agentId);
657
+ const peerId = nonEmptyString(payload.agentId);
890
658
  return { kind, ...peerId !== void 0 ? { peerId } : {} };
891
659
  }
892
- const targetId = nonEmptyString2(payload.targetId);
893
- const wireModelId = nonEmptyString2(payload.wireModelId);
660
+ const targetId = nonEmptyString(payload.targetId);
661
+ const wireModelId = nonEmptyString(payload.wireModelId);
894
662
  return {
895
663
  kind,
896
664
  ...targetId !== void 0 ? { targetId } : {},
@@ -905,7 +673,7 @@ function workerTargetLabel(runtime) {
905
673
  return runtime.targetId ?? runtime.wireModelId ?? "unknown";
906
674
  }
907
675
  function terminalFacts(payload) {
908
- const detail = nonEmptyString2(payload.outcomeDetail);
676
+ const detail = nonEmptyString(payload.outcomeDetail);
909
677
  const tokenCount = finiteNumber(payload.tokenCount);
910
678
  const durationMs = finiteNumber(payload.durationMs);
911
679
  const exitCode = finiteNumber(payload.exitCode);
@@ -937,7 +705,7 @@ function createWorkerStream(options = {}) {
937
705
  entry.progress = snapshot;
938
706
  };
939
707
  const currentEntryForRun = (runId) => {
940
- const id = nonEmptyString2(runId);
708
+ const id = nonEmptyString(runId);
941
709
  if (id === void 0) return void 0;
942
710
  const assignmentId = assignmentByRun.get(id);
943
711
  const entry = assignmentId === void 0 ? void 0 : byAssignment.get(assignmentId);
@@ -951,15 +719,15 @@ function createWorkerStream(options = {}) {
951
719
  if (attempt !== void 0) attempt.outcome = facts.outcome;
952
720
  const fold = progressByAssignment.get(entry.assignmentId);
953
721
  if (fold !== void 0) {
954
- fold.settle(nonEmptyString2(facts.text));
722
+ fold.settle(nonEmptyString(facts.text));
955
723
  applyProgress(entry, fold);
956
724
  }
957
725
  return { kind: "updated", entry };
958
726
  };
959
727
  return {
960
728
  started(payload) {
961
- const runId = nonEmptyString2(payload.runId);
962
- const assignmentId = nonEmptyString2(payload.assignmentId) ?? runId;
729
+ const runId = nonEmptyString(payload.runId);
730
+ const assignmentId = nonEmptyString(payload.assignmentId) ?? runId;
963
731
  if (runId === void 0 || assignmentId === void 0) return null;
964
732
  const runtime = runtimeIdentity(payload);
965
733
  const existing = byAssignment.get(assignmentId);
@@ -1024,7 +792,7 @@ function createWorkerStream(options = {}) {
1024
792
  const entry = currentEntryForRun(payload.runId);
1025
793
  if (entry === void 0 || !entry.pending) return null;
1026
794
  const durationMs = finiteNumber(payload.elapsedMs);
1027
- const failureMessage = nonEmptyString2(payload.reason);
795
+ const failureMessage = nonEmptyString(payload.reason);
1028
796
  entry.pending = false;
1029
797
  entry.receipt = {
1030
798
  outcome: "canceled",
@@ -1341,7 +1109,8 @@ function formatReceiptVerificationBlock(runId, result) {
1341
1109
  }
1342
1110
  function formatUserTaskHandoff(task) {
1343
1111
  const note = task.note ? ` ${task.note}.` : "";
1344
- return `Operator task ${task.id}: ${task.title}.${note} Pick it up with tasks action="pick" id="${task.id}" and work it when appropriate.`;
1112
+ const acceptance = task.acceptance ? ` Acceptance: ${JSON.stringify(task.acceptance)}.` : "";
1113
+ return `Operator task ${task.id}: ${task.title}.${note}${acceptance} Pick it up with tasks action="pick" id="${task.id}" and work it when appropriate.`;
1345
1114
  }
1346
1115
  var SLASH_COMMAND_GROUPS = ["Work", "Inspect", "Configure", "Session"];
1347
1116
  var RUN_THINKING_LEVELS = THINKING_LEVELS;
@@ -1418,9 +1187,9 @@ var BUILTIN_SLASH_COMMANDS = [
1418
1187
  },
1419
1188
  {
1420
1189
  name: "skill",
1421
- description: "Open the Skills Hub or invoke a skill",
1190
+ description: "Open the Skills Hub, invoke a skill, or `off` to drop an active skill's tool surface",
1422
1191
  group: "Work",
1423
- kinds: ["skill-selector", "skill-invocation"],
1192
+ kinds: ["skill-selector", "skill-invocation", "skill-surface-clear"],
1424
1193
  args: {
1425
1194
  positionals: [
1426
1195
  { name: "name", required: false },
@@ -1432,16 +1201,23 @@ var BUILTIN_SLASH_COMMANDS = [
1432
1201
  return { kind: "skill-selector" };
1433
1202
  }
1434
1203
  const command = parseSkillCommand(trimmed);
1435
- if (command) {
1436
- return { kind: "skill-invocation", text: trimmed };
1204
+ if (!command) return null;
1205
+ if (command.name === SKILL_SURFACE_CLEAR_ARG && command.args.length === 0) {
1206
+ return { kind: "skill-surface-clear" };
1437
1207
  }
1438
- return null;
1208
+ return { kind: "skill-invocation", text: trimmed };
1439
1209
  },
1440
1210
  handle(command, ctx) {
1441
1211
  if (command.kind === "skill-selector") {
1442
1212
  ctx.openSkillsHub?.();
1443
1213
  } else if (command.kind === "skill-invocation") {
1444
1214
  ctx.submitChat(command.text);
1215
+ } else if (command.kind === "skill-surface-clear") {
1216
+ const cleared = ctx.clearSkillSurface?.() ?? [];
1217
+ ctx.notice(
1218
+ "info",
1219
+ cleared.length > 0 ? `Skill tool surface cleared: ${cleared.join(", ")}.` : "No skill tool surface is active."
1220
+ );
1445
1221
  }
1446
1222
  }
1447
1223
  },
@@ -1997,7 +1773,14 @@ ${usage}` : usage);
1997
1773
  },
1998
1774
  args: {
1999
1775
  subcommands: {
2000
- add: { positionals: [{ name: "text", required: true, rest: true }] },
1776
+ add: {
1777
+ parseFlagsInRest: true,
1778
+ flags: [
1779
+ { name: "--expect", takesValue: true, repeatable: true, valueName: "path" },
1780
+ { name: "--verify", takesValue: true, repeatable: true, valueName: "checkId[:timeoutMs]" }
1781
+ ],
1782
+ positionals: [{ name: "text", required: true, rest: true }]
1783
+ },
2001
1784
  hand: { positionals: [{ name: "id", required: true }] },
2002
1785
  done: { positionals: [{ name: "id", required: true }] },
2003
1786
  drop: { positionals: [{ name: "id", required: true }] }
@@ -2007,7 +1790,12 @@ ${usage}` : usage);
2007
1790
  if (parsed.error) return { kind: "usage-error", command: "tasks", reason: parsed.error };
2008
1791
  switch (parsed.subcommand) {
2009
1792
  case "add":
2010
- return parsed.rest ? { kind: "tasks-add", text: parsed.rest } : { kind: "usage-error", command: "tasks", reason: "add requires task text" };
1793
+ return parsed.rest ? {
1794
+ kind: "tasks-add",
1795
+ text: parsed.rest,
1796
+ ...parsed.flagValues.has("--expect") ? { expectedOutputs: parsed.flagValues.get("--expect") ?? [] } : {},
1797
+ ...parsed.flagValues.has("--verify") ? { verification: parsed.flagValues.get("--verify") ?? [] } : {}
1798
+ } : { kind: "usage-error", command: "tasks", reason: "add requires task text" };
2011
1799
  case "hand":
2012
1800
  case "done":
2013
1801
  case "drop": {
@@ -2034,7 +1822,10 @@ ${usage}` : usage);
2034
1822
  }
2035
1823
  try {
2036
1824
  if (command.kind === "tasks-add") {
2037
- const task = ctx.userTasks.add(command.text);
1825
+ const task = ctx.userTasks.add(
1826
+ command.text,
1827
+ acceptanceFromTaskFlags(process.cwd(), command.expectedOutputs ?? [], command.verification ?? [])
1828
+ );
2038
1829
  ctx.notice("success", `logged operator task ${task.id}: ${task.title}`);
2039
1830
  return;
2040
1831
  }
@@ -2560,30 +2351,6 @@ for (const entry of BUILTIN_SLASH_COMMANDS) {
2560
2351
  }
2561
2352
  var COMMAND_SHAPED_TOKEN = /^[A-Za-z][A-Za-z0-9:-]*$/u;
2562
2353
  var COMMAND_ESCAPE = "\\/";
2563
- var RETIRED_COMMAND_HINTS = Object.freeze({
2564
- status: "Use the footer or Alt+U for status; /cost, /context, and /fleet inspect their own domains.",
2565
- receipts: "Use /view or /view verify <run-id>.",
2566
- "context-init": "Use /context init.",
2567
- "context-clear": "Use /context reset for project context or /new for a fresh session.",
2568
- "context-view": "Use /context.",
2569
- compact: "Use /context compact [instructions].",
2570
- skills: "Use /skill or /resources skills.",
2571
- exit: "Use /quit.",
2572
- config: "Use /settings.",
2573
- ctx: "Use /context.",
2574
- models: "Use /model.",
2575
- clear: "Use /new for a fresh session or /context reset for project context.",
2576
- library: "Use /resources library [kind].",
2577
- prompts: "Use /resources prompts.",
2578
- extensions: "Use /resources extensions.",
2579
- interop: "Use /agents connect.",
2580
- targets: "Use /settings targets.",
2581
- "scoped-models": "Use /settings chat model-picker."
2582
- });
2583
- function retiredCommandHint(token) {
2584
- if (/^skills?:[^\s]+$/u.test(token)) return "Use /skill <name> [task].";
2585
- return RETIRED_COMMAND_HINTS[token];
2586
- }
2587
2354
  function formatExtensionReloadNotice(outcome) {
2588
2355
  if (outcome.status !== "committed") {
2589
2356
  return ["error", `extensions: reload rejected (${outcome.reason}); generation ${outcome.generation} stays active`];
@@ -2629,12 +2396,6 @@ function dispatchSlashCommand(command, ctx) {
2629
2396
  return "accepted";
2630
2397
  }
2631
2398
  if (command.kind === "unknown-command") {
2632
- const retiredHint = retiredCommandHint(command.token);
2633
- if (retiredHint) {
2634
- ctx.notice("error", `/${command.token} is retired and did not run. ${retiredHint}`);
2635
- ctx.render();
2636
- return "rejected";
2637
- }
2638
2399
  const expansion = ctx.expandPromptTemplate?.(command.text);
2639
2400
  if (expansion?.expanded === true) {
2640
2401
  ctx.submitChat(command.text);
@@ -2706,8 +2467,6 @@ function commandReference() {
2706
2467
 
2707
2468
  export {
2708
2469
  COUNCIL_SYNTHESIS_LABEL,
2709
- boundSettledText,
2710
- createWorkerProgressFold,
2711
2470
  workerAskedByModel,
2712
2471
  workerTargetLabel,
2713
2472
  workerReceiptSummary,
@@ -2727,4 +2486,4 @@ export {
2727
2486
  dispatchSlashCommand,
2728
2487
  commandReference
2729
2488
  };
2730
- //# sourceMappingURL=chunk-RLYRBIYQ.js.map
2489
+ //# sourceMappingURL=chunk-FFUPXJC4.js.map
@@ -700,7 +700,7 @@ function parseTrackedMetrics(value, source) {
700
700
  reasoningTokens: readSourcedNullableNumber(record.reasoningTokens, `${source}.reasoningTokens`),
701
701
  toolCalls: readSourcedNumber(record.toolCalls, `${source}.toolCalls`),
702
702
  toolErrors: readSourcedNumber(record.toolErrors, `${source}.toolErrors`),
703
- ttftMsFirstCall: readSourcedNumber(record.ttftMsFirstCall, `${source}.ttftMsFirstCall`),
703
+ ttftMsFirstCall: readSourcedNullableNumber(record.ttftMsFirstCall, `${source}.ttftMsFirstCall`),
704
704
  wallClockMs: readSourcedNumber(record.wallClockMs, `${source}.wallClockMs`),
705
705
  contextTokensAtEnd: readSourcedNumber(record.contextTokensAtEnd, `${source}.contextTokensAtEnd`),
706
706
  compactions: readSourcedNumber(record.compactions, `${source}.compactions`),
@@ -1526,4 +1526,4 @@ export {
1526
1526
  loadEvalArtifactV4,
1527
1527
  parseEvalArtifactV4
1528
1528
  };
1529
- //# sourceMappingURL=chunk-5PFYMY2V.js.map
1529
+ //# sourceMappingURL=chunk-FTMGRKEF.js.map