@iowarp/clio-coder 0.3.0 → 0.3.2

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 (1187) hide show
  1. package/CHANGELOG.md +123 -2
  2. package/CONTRIBUTING.md +23 -23
  3. package/README.md +295 -627
  4. package/dist/acp-BIYHVZIM.js +128 -0
  5. package/dist/{agents-Q4MYPMUW.js → agents-YT6SSRIT.js} +52 -27
  6. package/dist/assets/codewiki.json +1 -0
  7. package/dist/assets/grammars/notices/@vscode__tree-sitter-wasm/LICENSE +21 -0
  8. package/dist/assets/grammars/notices/@vscode__tree-sitter-wasm/cgmanifest.json +16 -0
  9. package/dist/assets/grammars/notices/tree-sitter-wasms/LICENSE +24 -0
  10. package/dist/assets/grammars/tree-sitter-c-sharp.wasm +0 -0
  11. package/dist/assets/grammars/tree-sitter-c.wasm +0 -0
  12. package/dist/assets/grammars/tree-sitter-cpp.wasm +0 -0
  13. package/dist/assets/grammars/tree-sitter-go.wasm +0 -0
  14. package/dist/assets/grammars/tree-sitter-java.wasm +0 -0
  15. package/dist/assets/grammars/tree-sitter-javascript.wasm +0 -0
  16. package/dist/assets/grammars/tree-sitter-python.wasm +0 -0
  17. package/dist/assets/grammars/tree-sitter-ruby.wasm +0 -0
  18. package/dist/assets/grammars/tree-sitter-rust.wasm +0 -0
  19. package/dist/assets/grammars/tree-sitter-tsx.wasm +0 -0
  20. package/dist/assets/grammars/tree-sitter-typescript.wasm +0 -0
  21. package/dist/assets/grammars/tree-sitter.wasm +0 -0
  22. package/dist/{auth-O6HYIJ6J.js → auth-5TWEIYDN.js} +30 -15
  23. package/dist/chunk-2EHAIA3X.js +481 -0
  24. package/dist/{chunk-ME6DNWIU.js → chunk-2IR2NMPA.js} +12 -4
  25. package/dist/chunk-2SFS6XQE.js +122 -0
  26. package/dist/{chunk-KKKPTZLM.js → chunk-2STGEDFV.js} +8 -1
  27. package/dist/chunk-2VTFPG5O.js +48 -0
  28. package/dist/chunk-3I7MS7N2.js +40 -0
  29. package/dist/chunk-3R73A4XB.js +69 -0
  30. package/dist/{chunk-JPOWPFCU.js → chunk-3ZXDFGR5.js} +52 -23
  31. package/dist/chunk-4BJ5BYCE.js +61 -0
  32. package/dist/{chunk-26BZQOAD.js → chunk-4BPJXDWC.js} +161 -260
  33. package/dist/chunk-4KLWL3UC.js +18 -0
  34. package/dist/{chunk-5LDRNKX2.js → chunk-4VP4KH3K.js} +161 -262
  35. package/dist/chunk-4ZG3XFUR.js +77 -0
  36. package/dist/chunk-5B2AEOW5.js +5407 -0
  37. package/dist/chunk-5TSRNF4G.js +510 -0
  38. package/dist/{chunk-WD6AJM35.js → chunk-5UUP6MWO.js} +48 -69
  39. package/dist/{chunk-X3BR7HWV.js → chunk-5WIGXA4T.js} +7 -1
  40. package/dist/chunk-65DEGPJ6.js +52 -0
  41. package/dist/chunk-6EJMN2Y3.js +17 -0
  42. package/dist/chunk-6EJV5X2W.js +16405 -0
  43. package/dist/chunk-6N5PTWMY.js +136 -0
  44. package/dist/chunk-6XLNIQDB.js +27 -0
  45. package/dist/{chunk-XNISANGE.js → chunk-77VKQEHF.js} +171 -74
  46. package/dist/chunk-7CR24IG7.js +242 -0
  47. package/dist/{chunk-UWIJNAOB.js → chunk-7EYHLWU7.js} +907 -638
  48. package/dist/chunk-7MNJORFF.js +22 -0
  49. package/dist/{chunk-JWHCJDCI.js → chunk-A3CYT5EX.js} +257 -79
  50. package/dist/chunk-AGYYIBLL.js +1069 -0
  51. package/dist/chunk-AO4RKG4M.js +277 -0
  52. package/dist/chunk-APJ265NV.js +7410 -0
  53. package/dist/chunk-ARBGF5F7.js +174 -0
  54. package/dist/{chunk-TFSSEXL6.js → chunk-BMEMKKIT.js} +14 -4
  55. package/dist/{chunk-X3NE4WVW.js → chunk-BNAZZHFG.js} +7 -1
  56. package/dist/chunk-CBCAPZAA.js +229 -0
  57. package/dist/{chunk-QV47YRF4.js → chunk-CGKSTWHD.js} +7 -1
  58. package/dist/chunk-CMZWFGD2.js +352 -0
  59. package/dist/chunk-ECH6PKUQ.js +39 -0
  60. package/dist/{chunk-67MTHP2E.js → chunk-ED4KHGC3.js} +13 -5
  61. package/dist/chunk-EKMEHE4H.js +340 -0
  62. package/dist/{chunk-O4EJEDHO.js → chunk-EPVUXGXG.js} +50 -35
  63. package/dist/chunk-FCSXB6T2.js +338 -0
  64. package/dist/chunk-FJ3H4MN5.js +48 -0
  65. package/dist/chunk-FQ4SKYE4.js +29 -0
  66. package/dist/chunk-G2DE3C7R.js +644 -0
  67. package/dist/chunk-G4BMMOKF.js +182 -0
  68. package/dist/{chunk-7BHLZB3A.js → chunk-GGXXDWE4.js} +190 -1218
  69. package/dist/chunk-HC4CLZ2Y.js +68 -0
  70. package/dist/{chunk-E3NYWENM.js → chunk-HFSBBKSQ.js} +55 -61
  71. package/dist/chunk-HKIYEGME.js +30 -0
  72. package/dist/chunk-I4HZDVNP.js +73 -0
  73. package/dist/chunk-IGLFWIYI.js +161 -0
  74. package/dist/chunk-IHXBNWMM.js +137 -0
  75. package/dist/chunk-IKCO5N3L.js +162 -0
  76. package/dist/chunk-IR4CFBFN.js +56 -0
  77. package/dist/{chunk-DXQNI4PC.js → chunk-IWHMRKLL.js} +8 -1
  78. package/dist/{chunk-VOO7NYPP.js → chunk-J5HN4RYU.js} +27 -9
  79. package/dist/{chunk-4UQA7NCT.js → chunk-J5Q24KAG.js} +7 -2
  80. package/dist/{chunk-KBR4MZZR.js → chunk-JVCV3ICN.js} +7 -1
  81. package/dist/chunk-KJ5LWLOE.js +1077 -0
  82. package/dist/chunk-LBMZMYH2.js +285 -0
  83. package/dist/{chunk-3DANZDGR.js → chunk-LBNRH5WM.js} +100 -161
  84. package/dist/{chunk-TKHQ4DGZ.js → chunk-LZSJBIVT.js} +7358 -7414
  85. package/dist/{chunk-UGYAX5YI.js → chunk-M6SHUN7Q.js} +13 -8
  86. package/dist/chunk-MAW544W2.js +1882 -0
  87. package/dist/chunk-MBS4V7ZP.js +217 -0
  88. package/dist/{chunk-2J63S4SF.js → chunk-MFFY33HR.js} +167 -140
  89. package/dist/chunk-MNA4JGU4.js +255 -0
  90. package/dist/chunk-MQSRRFWA.js +3428 -0
  91. package/dist/{chunk-RQDWMVRB.js → chunk-MVVUPGPW.js} +138 -137
  92. package/dist/chunk-OAO4GE4M.js +619 -0
  93. package/dist/chunk-OHHN2SO4.js +5135 -0
  94. package/dist/chunk-OKGUZO2U.js +34 -0
  95. package/dist/{chunk-BBUH4VAA.js → chunk-OOJYHWRB.js} +60 -361
  96. package/dist/{chunk-D5YD55AR.js → chunk-OQ33BKR3.js} +12 -1
  97. package/dist/chunk-OQE5J4C6.js +73 -0
  98. package/dist/{chunk-AMFR5YA3.js → chunk-ORBHGJC5.js} +26 -12
  99. package/dist/chunk-POHLU5DW.js +1186 -0
  100. package/dist/chunk-QKMUKYO7.js +4961 -0
  101. package/dist/{chunk-7RBKDI66.js → chunk-QTYWRVRA.js} +104 -12
  102. package/dist/{chunk-5N2FG33Q.js → chunk-R346GLFC.js} +7 -1
  103. package/dist/chunk-SRF2PJNW.js +184 -0
  104. package/dist/chunk-SST6Z5JA.js +80 -0
  105. package/dist/{chunk-XV4ZJ6ZM.js → chunk-STBPMHSX.js} +473 -1194
  106. package/dist/{chunk-HBU5MTAM.js → chunk-SVNXH4L2.js} +7 -1
  107. package/dist/chunk-T6YILFSB.js +80 -0
  108. package/dist/chunk-TXOTCRLG.js +15 -0
  109. package/dist/chunk-TZTZS7QK.js +227 -0
  110. package/dist/chunk-UOV2BYIW.js +107 -0
  111. package/dist/{chunk-527KG6XR.js → chunk-V4RXGQ5Q.js} +72 -185
  112. package/dist/chunk-VAKQQHWR.js +434 -0
  113. package/dist/chunk-VG7TBQIY.js +128 -0
  114. package/dist/chunk-VJWL6YS5.js +244 -0
  115. package/dist/chunk-WEH5XRJQ.js +32 -0
  116. package/dist/{chunk-VPAWTYLY.js → chunk-WEPFGWHJ.js} +7 -1
  117. package/dist/chunk-WMSVI4G2.js +2095 -0
  118. package/dist/chunk-WVO7V2QY.js +797 -0
  119. package/dist/chunk-X4RCMKVQ.js +641 -0
  120. package/dist/chunk-X75S7HFS.js +374 -0
  121. package/dist/chunk-XN3L4EYL.js +46 -0
  122. package/dist/{chunk-HMYNFFY4.js → chunk-XPLRXC72.js} +7 -2
  123. package/dist/{chunk-PIDUD6M2.js → chunk-YCWGATWI.js} +12 -5
  124. package/dist/chunk-YHZX5GEU.js +193 -0
  125. package/dist/chunk-YXLYO42X.js +91 -0
  126. package/dist/{chunk-UHTSULZS.js → chunk-ZDOOVTXZ.js} +38 -73
  127. package/dist/chunk-ZI647VB5.js +37 -0
  128. package/dist/{chunk-CLJ5HLUD.js → chunk-ZWLZP4ZT.js} +25 -6
  129. package/dist/cli/index.js +70 -56
  130. package/dist/clio-4LY5K2AC.js +25 -0
  131. package/dist/code-nav-7AX6FYE6.js +600 -0
  132. package/dist/codewiki/build-worker.js +66 -0
  133. package/dist/compile-cache-CVJMMODC.js +18 -0
  134. package/dist/{components-JVHMUBEB.js → components-KELWS457.js} +31 -9
  135. package/dist/{config-ZFCDBMDC.js → config-GTLUW2PR.js} +104 -56
  136. package/dist/configure-R6A64DHX.js +42 -0
  137. package/dist/context-5VKGUVJJ.js +866 -0
  138. package/dist/{context-CDXTP2MP.js → context-JFZEJ7W5.js} +21 -13
  139. package/dist/{context-E3KIFVXI.js → context-RW5HC47S.js} +77 -36
  140. package/dist/{context-clear-3F4PLXOS.js → context-clear-6ZHBAZZT.js} +64 -30
  141. package/dist/{context-index-Q7YSYTR3.js → context-index-BZ4UYMTC.js} +36 -24
  142. package/dist/dispatch-runner-VKBRCWQC.js +1997 -0
  143. package/dist/{docs-YIETIWZI.js → docs-2C2LTVT2.js} +32 -13
  144. package/dist/doctor-KI767GSN.js +87 -0
  145. package/dist/{eval-B3KZZESM.js → eval-XSSNATB4.js} +93 -27
  146. package/dist/{evidence-V67CHM35.js → evidence-UA6AWDQQ.js} +55 -27
  147. package/dist/{evolve-YDZSUQYA.js → evolve-QNTFGV6Z.js} +59 -26
  148. package/dist/{extensions-SRG7XCAH.js → extensions-QVDOHDGJ.js} +23 -8
  149. package/dist/{fleet-CA2CRTVG.js → fleet-Q7UOMUSG.js} +173 -56
  150. package/dist/fleet-preflight-DDN536IT.js +26 -0
  151. package/dist/{init-2OZDJE2D.js → init-WBB65ZHQ.js} +79 -34
  152. package/dist/{memory-3PIQQAKX.js → memory-MD3O64RI.js} +57 -28
  153. package/dist/{models-DY35XI7Y.js → models-BZU34YWD.js} +49 -24
  154. package/dist/monitor-MEQA5C3I.js +661 -0
  155. package/dist/{chunk-PS4PFJQP.js → orchestrator-CGFKEP27.js} +22837 -18564
  156. package/dist/{paths-5OMXW7Z4.js → paths-UXLN5YYZ.js} +17 -6
  157. package/dist/preload-P6DGH2PZ.js +13 -0
  158. package/dist/{reset-PIFYNOS3.js → reset-L2FQEE3E.js} +25 -13
  159. package/dist/{run-3VSPP24F.js → run-IV4Q6RLN.js} +115 -63
  160. package/dist/{share-D36RQCXM.js → share-S5BZQC5I.js} +23 -10
  161. package/dist/{skills-F2MRLELY.js → skills-LQEKRDTN.js} +42 -15
  162. package/dist/{skills-eval-E2ZTW4PL.js → skills-eval-3DC4HEWS.js} +90 -45
  163. package/dist/steer-GGWFUJUD.js +77 -0
  164. package/dist/{targets-DZMEZAH4.js → targets-C4SSGQOB.js} +78 -60
  165. package/dist/terminal-lease-IT5JW2NR.js +395 -0
  166. package/dist/{trace-7NYCUI2J.js → trace-PNCASAXC.js} +48 -17
  167. package/dist/tree-sitter-HGKH6LG4.js +4673 -0
  168. package/dist/{uninstall-AD3JWHBB.js → uninstall-FZCQCDKC.js} +19 -8
  169. package/dist/{upgrade-WYYBKGDY.js → upgrade-7TT7SQ3G.js} +66 -24
  170. package/dist/{usage-ULIDAGFF.js → usage-GV4PKT3M.js} +71 -32
  171. package/dist/verify-G6V4D2G7.js +716 -0
  172. package/dist/version-KGEG7EPO.js +21 -0
  173. package/dist/web-fetch-2YHJ3KTG.js +638 -0
  174. package/dist/{wiki-generate-PKFIX6OB.js → wiki-generate-DQF6Z66B.js} +98 -48
  175. package/dist/worker/entry.js +297 -54
  176. package/dist/workspace-G4ZWUIPR.js +22 -0
  177. package/docs/README.md +29 -21
  178. package/docs/acp.md +191 -16
  179. package/docs/alcf-provider.md +1 -1
  180. package/docs/architecture.md +157 -7
  181. package/docs/artifact-placement.md +101 -0
  182. package/docs/artifact-versions.md +1 -1
  183. package/docs/built-in-agents.md +4 -2
  184. package/docs/capacity-and-scheduling.md +1 -1
  185. package/docs/commands-and-modes.md +224 -97
  186. package/docs/config-knobs-audit.md +1 -3
  187. package/docs/configuration-and-targets.md +236 -38
  188. package/docs/context-engine.md +34 -7
  189. package/docs/development-pipeline.md +102 -0
  190. package/docs/dispatch-architecture-rationale.md +1 -1
  191. package/docs/documentation-coverage.md +4 -4
  192. package/docs/documentation-guide.md +3 -3
  193. package/docs/environment-variables.md +15 -6
  194. package/docs/eval-runner.md +3 -3
  195. package/docs/evals-internal.md +2 -2
  196. package/docs/evidence-and-memory.md +10 -2
  197. package/docs/evolution.md +2 -2
  198. package/docs/exit-codes-and-output.md +15 -9
  199. package/docs/extensions-and-sharing.md +25 -18
  200. package/docs/fleet-demo-runbook.md +22 -23
  201. package/docs/fleet-dispatch.md +117 -16
  202. package/docs/git-commit-provenance.md +120 -0
  203. package/docs/glossary.md +107 -15
  204. package/docs/installation-and-lifecycle.md +75 -17
  205. package/docs/middleware-and-components.md +1 -1
  206. package/docs/model-catalog.md +46 -15
  207. package/docs/observability.md +8 -5
  208. package/docs/performance-methodology.md +491 -0
  209. package/docs/pi-boundary.md +72 -0
  210. package/docs/proactive-memory.md +14 -14
  211. package/docs/prompt-envelope-and-tools.md +25 -4
  212. package/docs/provider-adapter-cookbook.md +57 -4
  213. package/docs/release-cut-checklist.md +129 -111
  214. package/docs/safety-model.md +28 -8
  215. package/docs/scientific-validation.md +3 -3
  216. package/docs/session-lifecycle.md +55 -12
  217. package/docs/skills-marketplace.md +12 -8
  218. package/docs/time-conventions.md +101 -0
  219. package/docs/tool-usage.md +6 -5
  220. package/docs/trace-store.md +1 -1
  221. package/docs/troubleshooting.md +10 -7
  222. package/docs/tui-design.md +121 -28
  223. package/docs/worker-dispatch-mechanics.md +3 -3
  224. package/package.json +33 -36
  225. package/skills/README.md +5 -6
  226. package/skills/coding/ast-grep/SKILL.md +136 -0
  227. package/skills/coding/ast-grep/evals.md +56 -0
  228. package/skills/coding/ast-grep/references/rule_reference.md +297 -0
  229. package/skills/coding/coding-standards/SKILL.md +113 -0
  230. package/skills/coding/coding-standards/evals.md +34 -0
  231. package/skills/coding/prototype/SKILL.md +86 -0
  232. package/skills/coding/prototype/evals.md +42 -0
  233. package/skills/coding/prototype/references/LOGIC.md +67 -0
  234. package/skills/coding/prototype/references/UI.md +112 -0
  235. package/skills/coding/tdd/SKILL.md +101 -0
  236. package/skills/coding/tdd/evals.md +41 -0
  237. package/skills/coding/tdd/references/mocking.md +59 -0
  238. package/skills/coding/tdd/references/tests.md +77 -0
  239. package/skills/context/context-handoff/SKILL.md +126 -0
  240. package/skills/context/context-handoff/evals.md +57 -0
  241. package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
  242. package/skills/context/context-prime/SKILL.md +95 -0
  243. package/skills/context/context-prime/evals.md +54 -0
  244. package/skills/git/file-ticket/SKILL.md +107 -0
  245. package/skills/git/file-ticket/evals.md +54 -0
  246. package/skills/git/fix-issue/SKILL.md +106 -0
  247. package/skills/git/fix-issue/evals.md +71 -0
  248. package/skills/git/ship/SKILL.md +92 -0
  249. package/skills/git/ship/evals.md +72 -0
  250. package/skills/meta/clio-dev/SKILL.md +91 -0
  251. package/skills/meta/clio-dev/evals.md +45 -0
  252. package/skills/meta/clio-test/SKILL.md +130 -0
  253. package/skills/meta/clio-test/evals.md +43 -0
  254. package/skills/meta/clio-test/references/harness.md +97 -0
  255. package/skills/meta/clio-test/references/test-map.md +59 -0
  256. package/skills/meta/credentials/SKILL.md +125 -0
  257. package/skills/meta/credentials/evals.md +104 -0
  258. package/skills/meta/find-skills/SKILL.md +72 -0
  259. package/skills/meta/find-skills/evals.md +47 -0
  260. package/skills/meta/herdr/SKILL.md +127 -0
  261. package/skills/meta/herdr/evals.md +38 -0
  262. package/skills/meta/skill-craft/SKILL.md +102 -0
  263. package/skills/meta/skill-craft/evals.md +41 -0
  264. package/skills/planning/architecture/SKILL.md +129 -0
  265. package/skills/planning/architecture/evals.md +36 -0
  266. package/skills/planning/backlog/SKILL.md +90 -0
  267. package/skills/planning/backlog/evals.md +43 -0
  268. package/skills/planning/prd/SKILL.md +82 -0
  269. package/skills/planning/prd/evals.md +49 -0
  270. package/skills/planning/product-intent/SKILL.md +112 -0
  271. package/skills/planning/product-intent/evals.md +36 -0
  272. package/skills/planning/tech-spec/SKILL.md +115 -0
  273. package/skills/planning/tech-spec/evals.md +47 -0
  274. package/skills/registry.yaml +136 -0
  275. package/skills/research/arxiv-literature/SKILL.md +104 -0
  276. package/skills/research/arxiv-literature/evals.md +58 -0
  277. package/skills/research/experiment-protocol/SKILL.md +122 -0
  278. package/skills/research/experiment-protocol/evals.md +91 -0
  279. package/skills/research/scientific-debugging/SKILL.md +119 -0
  280. package/skills/research/scientific-debugging/evals.md +138 -0
  281. package/skills/research/scientific-modernization/SKILL.md +138 -0
  282. package/skills/research/scientific-modernization/evals.md +84 -0
  283. package/skills/skill-marketplace.json +12 -20
  284. package/skills/workflow/design-council/SKILL.md +139 -0
  285. package/skills/workflow/design-council/evals.md +97 -0
  286. package/skills/workflow/grill-me/SKILL.md +186 -0
  287. package/skills/workflow/grill-me/evals.md +78 -0
  288. package/skills/workflow/workflow-distiller/SKILL.md +136 -0
  289. package/skills/workflow/workflow-distiller/evals.md +107 -0
  290. package/src/cli/acp.ts +115 -0
  291. package/src/cli/agents.ts +60 -0
  292. package/src/cli/args.ts +280 -0
  293. package/src/cli/argv.ts +170 -0
  294. package/src/cli/ask.ts +34 -0
  295. package/src/cli/auth.ts +468 -0
  296. package/src/cli/bootstrap-generate.ts +498 -0
  297. package/src/cli/clio.ts +96 -0
  298. package/src/cli/components.ts +195 -0
  299. package/src/cli/config-inspect.ts +336 -0
  300. package/src/cli/config.ts +72 -0
  301. package/src/cli/configure-interop.ts +67 -0
  302. package/src/cli/configure-layout.ts +172 -0
  303. package/src/cli/configure.ts +1525 -0
  304. package/src/cli/context-clear.ts +76 -0
  305. package/src/cli/context-index.ts +100 -0
  306. package/src/cli/context.ts +321 -0
  307. package/src/cli/default-target.ts +55 -0
  308. package/src/cli/docs.ts +346 -0
  309. package/src/cli/doctor.ts +54 -0
  310. package/src/cli/eval.ts +315 -0
  311. package/src/cli/evidence.ts +225 -0
  312. package/src/cli/evolve.ts +219 -0
  313. package/src/cli/extensions.ts +214 -0
  314. package/src/cli/fleet.ts +868 -0
  315. package/src/cli/index.ts +338 -0
  316. package/src/cli/init.ts +219 -0
  317. package/src/cli/initial-message.ts +47 -0
  318. package/src/cli/internal-dispatch.ts +55 -0
  319. package/src/cli/memory.ts +182 -0
  320. package/src/cli/models.ts +257 -0
  321. package/src/cli/modes/json-stream.ts +121 -0
  322. package/src/cli/modes/jsonl.ts +9 -0
  323. package/src/cli/modes/print.ts +604 -0
  324. package/src/cli/oauth-manual-input.ts +72 -0
  325. package/src/cli/oauth-select.ts +36 -0
  326. package/src/cli/output-guard.ts +48 -0
  327. package/src/cli/paths.ts +44 -0
  328. package/src/cli/provider-target.ts +113 -0
  329. package/src/cli/removal.ts +72 -0
  330. package/src/cli/reset.ts +253 -0
  331. package/src/cli/run.ts +497 -0
  332. package/src/cli/share.ts +243 -0
  333. package/src/cli/shared.ts +60 -0
  334. package/src/cli/skills-eval.ts +1240 -0
  335. package/src/cli/skills.ts +485 -0
  336. package/src/cli/steer-channel.ts +86 -0
  337. package/src/cli/targets.ts +1154 -0
  338. package/src/cli/text-layout.ts +112 -0
  339. package/src/cli/trace.ts +322 -0
  340. package/src/cli/uninstall.ts +405 -0
  341. package/src/cli/upgrade.ts +286 -0
  342. package/src/cli/usage.ts +876 -0
  343. package/src/cli/validate-model.ts +28 -0
  344. package/src/cli/version.ts +7 -0
  345. package/src/cli/wiki-generate.ts +510 -0
  346. package/src/core/agent-environment.ts +7 -0
  347. package/src/core/artifact-paths.ts +43 -0
  348. package/src/core/bash-exec.ts +313 -0
  349. package/src/core/boot-trace.ts +42 -0
  350. package/src/core/bus-events.ts +744 -0
  351. package/src/core/bus-trace.ts +53 -0
  352. package/src/core/c-header-language.ts +265 -0
  353. package/src/core/clio-repo.ts +78 -0
  354. package/src/core/commit-attribution.ts +157 -0
  355. package/src/core/compile-cache.ts +159 -0
  356. package/src/core/config.ts +1722 -0
  357. package/src/core/context-floor.ts +33 -0
  358. package/src/core/defaults.ts +659 -0
  359. package/src/core/domain-loader.ts +177 -0
  360. package/src/core/event-bus.ts +94 -0
  361. package/src/core/file-references.ts +282 -0
  362. package/src/core/git-commit-attribution.ts +362 -0
  363. package/src/core/guardrails.ts +185 -0
  364. package/src/core/headless-permission.ts +21 -0
  365. package/src/core/incomplete-installation.ts +45 -0
  366. package/src/core/init.ts +223 -0
  367. package/src/core/json-payload.ts +58 -0
  368. package/src/core/package-root.ts +54 -0
  369. package/src/core/path-canonical.ts +37 -0
  370. package/src/core/process-identity.ts +41 -0
  371. package/src/core/recent-models.ts +91 -0
  372. package/src/core/residency-protection.ts +56 -0
  373. package/src/core/resolve-config-value.ts +88 -0
  374. package/src/core/response-schema.ts +279 -0
  375. package/src/core/run-overrides.ts +77 -0
  376. package/src/core/safe-exec.ts +205 -0
  377. package/src/core/safe-id.ts +37 -0
  378. package/src/core/safe-resource-write.ts +162 -0
  379. package/src/core/session-routing.ts +339 -0
  380. package/src/core/settings-layers.ts +354 -0
  381. package/src/core/shared-bus.ts +8 -0
  382. package/src/core/shell-quote.ts +26 -0
  383. package/src/core/skill-activation.ts +190 -0
  384. package/src/core/startup-timer.ts +37 -0
  385. package/src/core/state-file-lock.ts +219 -0
  386. package/src/core/termination.ts +275 -0
  387. package/src/core/timers.ts +38 -0
  388. package/src/core/tool-names.ts +65 -0
  389. package/src/core/verification-scripts.ts +13 -0
  390. package/src/core/workspace-files.ts +492 -0
  391. package/src/core/xdg.ts +177 -0
  392. package/src/domains/agents/builtins/architect.md +4 -4
  393. package/src/domains/agents/builtins/coder.md +3 -2
  394. package/src/domains/agents/builtins/debugger.md +1 -1
  395. package/src/domains/agents/builtins/documenter.md +1 -1
  396. package/src/domains/agents/builtins/git-master.md +3 -3
  397. package/src/domains/agents/builtins/provenance.md +1 -1
  398. package/src/domains/agents/builtins/researcher.md +1 -1
  399. package/src/domains/agents/builtins/scout.md +1 -1
  400. package/src/domains/agents/builtins/tester.md +1 -1
  401. package/src/domains/agents/builtins/verifier.md +1 -1
  402. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  403. package/src/domains/agents/catalog.ts +172 -0
  404. package/src/domains/agents/contract.ts +16 -0
  405. package/src/domains/agents/extension.ts +110 -0
  406. package/src/domains/agents/fleet-commands.ts +154 -0
  407. package/src/domains/agents/fleet-contract.ts +797 -0
  408. package/src/domains/agents/frontmatter.ts +40 -0
  409. package/src/domains/agents/index.ts +102 -0
  410. package/src/domains/agents/manifest.ts +6 -0
  411. package/src/domains/agents/recipe-schema.ts +202 -0
  412. package/src/domains/agents/recipe.ts +125 -0
  413. package/src/domains/agents/registry.ts +111 -0
  414. package/src/domains/agents/result-contract.ts +1265 -0
  415. package/src/domains/agents/spec.ts +371 -0
  416. package/src/domains/agents/write-boundary.ts +109 -0
  417. package/src/domains/components/diff.ts +99 -0
  418. package/src/domains/components/hash.ts +21 -0
  419. package/src/domains/components/index.ts +3 -0
  420. package/src/domains/components/scan.ts +304 -0
  421. package/src/domains/components/snapshot.ts +108 -0
  422. package/src/domains/components/types.ts +82 -0
  423. package/src/domains/config/agent-namespace.ts +13 -0
  424. package/src/domains/config/classify.ts +106 -0
  425. package/src/domains/config/contract.ts +22 -0
  426. package/src/domains/config/extension.ts +142 -0
  427. package/src/domains/config/index.ts +23 -0
  428. package/src/domains/config/keybindings.ts +200 -0
  429. package/src/domains/config/manifest.ts +6 -0
  430. package/src/domains/config/watcher.ts +41 -0
  431. package/src/domains/context/adoption.ts +880 -0
  432. package/src/domains/context/bootstrap-prompt.ts +273 -0
  433. package/src/domains/context/bootstrap.ts +1502 -0
  434. package/src/domains/context/clear.ts +91 -0
  435. package/src/domains/context/clio-md.ts +429 -0
  436. package/src/domains/context/codewiki/artifact.ts +400 -0
  437. package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
  438. package/src/domains/context/codewiki/build-worker.ts +54 -0
  439. package/src/domains/context/codewiki/cmake.ts +356 -0
  440. package/src/domains/context/codewiki/cooperative.ts +46 -0
  441. package/src/domains/context/codewiki/coordinator.ts +182 -0
  442. package/src/domains/context/codewiki/digest.ts +135 -0
  443. package/src/domains/context/codewiki/grammar-assets.ts +33 -0
  444. package/src/domains/context/codewiki/indexer.ts +1529 -0
  445. package/src/domains/context/codewiki/paths.ts +67 -0
  446. package/src/domains/context/codewiki/schema.ts +80 -0
  447. package/src/domains/context/codewiki/tree-sitter.ts +771 -0
  448. package/src/domains/context/contract.ts +68 -0
  449. package/src/domains/context/excluded-dirs.ts +1 -0
  450. package/src/domains/context/extension.ts +358 -0
  451. package/src/domains/context/fingerprint.ts +198 -0
  452. package/src/domains/context/index.ts +154 -0
  453. package/src/domains/context/init-options.ts +69 -0
  454. package/src/domains/context/manifest.ts +6 -0
  455. package/src/domains/context/operator-profile.ts +157 -0
  456. package/src/domains/context/project-metadata.ts +529 -0
  457. package/src/domains/context/project-rules.ts +227 -0
  458. package/src/domains/context/prompt-context.ts +61 -0
  459. package/src/domains/context/refresh.ts +178 -0
  460. package/src/domains/context/runtime.ts +17 -0
  461. package/src/domains/context/sibling-files.ts +10 -0
  462. package/src/domains/context/state.ts +237 -0
  463. package/src/domains/context/wiki/assemble.ts +303 -0
  464. package/src/domains/context/wiki/frontmatter.ts +210 -0
  465. package/src/domains/context/wiki/generate.ts +595 -0
  466. package/src/domains/context/wiki/layout.ts +111 -0
  467. package/src/domains/context/wiki/meta.ts +221 -0
  468. package/src/domains/context/wiki/plan-store.ts +217 -0
  469. package/src/domains/context/wiki/plan.ts +250 -0
  470. package/src/domains/context/wiki/prompts.ts +283 -0
  471. package/src/domains/context/wiki/staleness.ts +198 -0
  472. package/src/domains/dispatch/active-route-planner.ts +168 -0
  473. package/src/domains/dispatch/admission-queue.ts +150 -0
  474. package/src/domains/dispatch/admission.ts +334 -0
  475. package/src/domains/dispatch/agent-candidates.ts +307 -0
  476. package/src/domains/dispatch/agent-ledger-hub.ts +71 -0
  477. package/src/domains/dispatch/agent-ledger-store.ts +257 -0
  478. package/src/domains/dispatch/agent-ledger.ts +212 -0
  479. package/src/domains/dispatch/agent-plan-adapter.ts +85 -0
  480. package/src/domains/dispatch/assignment-events.ts +132 -0
  481. package/src/domains/dispatch/assignment-reconcile.ts +76 -0
  482. package/src/domains/dispatch/assignment-store.ts +162 -0
  483. package/src/domains/dispatch/assignment.ts +278 -0
  484. package/src/domains/dispatch/backoff.ts +59 -0
  485. package/src/domains/dispatch/batch-store.ts +134 -0
  486. package/src/domains/dispatch/batch-tracker.ts +66 -0
  487. package/src/domains/dispatch/capability-match.ts +155 -0
  488. package/src/domains/dispatch/capacity-lease.ts +413 -0
  489. package/src/domains/dispatch/code-step-store.ts +52 -0
  490. package/src/domains/dispatch/code-step.ts +387 -0
  491. package/src/domains/dispatch/contract.ts +278 -0
  492. package/src/domains/dispatch/dedup.ts +133 -0
  493. package/src/domains/dispatch/event-pump.ts +251 -0
  494. package/src/domains/dispatch/execution-handoff.ts +29 -0
  495. package/src/domains/dispatch/execution-plan.ts +328 -0
  496. package/src/domains/dispatch/execution-role.ts +277 -0
  497. package/src/domains/dispatch/execution-scheduler.ts +583 -0
  498. package/src/domains/dispatch/extension.ts +6006 -0
  499. package/src/domains/dispatch/failure-classification.ts +147 -0
  500. package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
  501. package/src/domains/dispatch/fleet-plan.ts +225 -0
  502. package/src/domains/dispatch/fleet-preflight.ts +394 -0
  503. package/src/domains/dispatch/gate-decisions.ts +1040 -0
  504. package/src/domains/dispatch/gate-role-prompts.ts +58 -0
  505. package/src/domains/dispatch/heartbeat.ts +27 -0
  506. package/src/domains/dispatch/index.ts +137 -0
  507. package/src/domains/dispatch/joint-route-adapter.ts +114 -0
  508. package/src/domains/dispatch/joint-route-resolver.ts +283 -0
  509. package/src/domains/dispatch/manifest.ts +6 -0
  510. package/src/domains/dispatch/orphan-recovery.ts +266 -0
  511. package/src/domains/dispatch/outcome.ts +109 -0
  512. package/src/domains/dispatch/phase-timing.ts +47 -0
  513. package/src/domains/dispatch/placement.ts +202 -0
  514. package/src/domains/dispatch/receipt-findings.ts +255 -0
  515. package/src/domains/dispatch/receipt-integrity.ts +383 -0
  516. package/src/domains/dispatch/recovery-candidates.ts +74 -0
  517. package/src/domains/dispatch/reproducibility.ts +48 -0
  518. package/src/domains/dispatch/reservation-store.ts +501 -0
  519. package/src/domains/dispatch/route-approval.ts +177 -0
  520. package/src/domains/dispatch/route-candidates.ts +57 -0
  521. package/src/domains/dispatch/route-decision.ts +1079 -0
  522. package/src/domains/dispatch/route-facts.ts +187 -0
  523. package/src/domains/dispatch/route-history.ts +238 -0
  524. package/src/domains/dispatch/route-observer.ts +488 -0
  525. package/src/domains/dispatch/route-policy.ts +327 -0
  526. package/src/domains/dispatch/route-quality.ts +256 -0
  527. package/src/domains/dispatch/route-readiness.ts +120 -0
  528. package/src/domains/dispatch/routing-intent.ts +287 -0
  529. package/src/domains/dispatch/run-identity.ts +56 -0
  530. package/src/domains/dispatch/scout-transition.ts +130 -0
  531. package/src/domains/dispatch/state.ts +302 -0
  532. package/src/domains/dispatch/tool-stats.ts +132 -0
  533. package/src/domains/dispatch/transport.ts +210 -0
  534. package/src/domains/dispatch/types.ts +799 -0
  535. package/src/domains/dispatch/validation-grounding.ts +154 -0
  536. package/src/domains/dispatch/validation.ts +721 -0
  537. package/src/domains/dispatch/worker-protocol.ts +275 -0
  538. package/src/domains/dispatch/worker-spawn.ts +585 -0
  539. package/src/domains/dispatch/write-boundary-enforcer.ts +97 -0
  540. package/src/domains/dispatch/write-boundary.ts +426 -0
  541. package/src/domains/eval/artifacts/redact.ts +42 -0
  542. package/src/domains/eval/artifacts/store.ts +173 -0
  543. package/src/domains/eval/compare/compare.ts +33 -0
  544. package/src/domains/eval/compare/gates.ts +66 -0
  545. package/src/domains/eval/compare/thresholds.ts +92 -0
  546. package/src/domains/eval/harness-metrics.ts +62 -0
  547. package/src/domains/eval/index.ts +66 -0
  548. package/src/domains/eval/metrics/chaos-stream.ts +93 -0
  549. package/src/domains/eval/metrics/context.ts +34 -0
  550. package/src/domains/eval/metrics/coverage.ts +21 -0
  551. package/src/domains/eval/metrics/evidence.ts +182 -0
  552. package/src/domains/eval/metrics/fleet-loop-stream.ts +196 -0
  553. package/src/domains/eval/metrics/invariants.ts +736 -0
  554. package/src/domains/eval/metrics/latency.ts +4 -0
  555. package/src/domains/eval/metrics/token-stream.ts +139 -0
  556. package/src/domains/eval/metrics/tokens.ts +51 -0
  557. package/src/domains/eval/metrics/tool-calls.ts +7 -0
  558. package/src/domains/eval/proactive-memory.ts +279 -0
  559. package/src/domains/eval/provenance.ts +35 -0
  560. package/src/domains/eval/report.ts +234 -0
  561. package/src/domains/eval/reports/json.ts +5 -0
  562. package/src/domains/eval/reports/junit.ts +23 -0
  563. package/src/domains/eval/reports/markdown.ts +20 -0
  564. package/src/domains/eval/reports/swe-jsonl.ts +16 -0
  565. package/src/domains/eval/reports/text.ts +25 -0
  566. package/src/domains/eval/run-compare.ts +274 -0
  567. package/src/domains/eval/runner.ts +244 -0
  568. package/src/domains/eval/runners/clio-run.ts +148 -0
  569. package/src/domains/eval/runners/context-index.ts +56 -0
  570. package/src/domains/eval/runners/context-init.ts +203 -0
  571. package/src/domains/eval/runners/external-command.ts +350 -0
  572. package/src/domains/eval/runtime-paths.ts +171 -0
  573. package/src/domains/eval/schema/artifact.ts +75 -0
  574. package/src/domains/eval/schema/suite.ts +235 -0
  575. package/src/domains/eval/schema/validate.ts +339 -0
  576. package/src/domains/eval/store.ts +392 -0
  577. package/src/domains/eval/suites/load.ts +74 -0
  578. package/src/domains/eval/suites/matrix.ts +19 -0
  579. package/src/domains/eval/suites/resolve.ts +44 -0
  580. package/src/domains/eval/suites/run.ts +325 -0
  581. package/src/domains/eval/task-file.ts +186 -0
  582. package/src/domains/eval/types.ts +140 -0
  583. package/src/domains/eval/verifiers/command.ts +27 -0
  584. package/src/domains/eval/verifiers/file-exists.ts +6 -0
  585. package/src/domains/eval/verifiers/patch.ts +22 -0
  586. package/src/domains/eval/workspaces/git.ts +41 -0
  587. package/src/domains/eval/workspaces/local.ts +17 -0
  588. package/src/domains/eval/workspaces/temp-copy.ts +29 -0
  589. package/src/domains/evidence/build.ts +1754 -0
  590. package/src/domains/evidence/eval.ts +605 -0
  591. package/src/domains/evidence/failure-attribution.ts +54 -0
  592. package/src/domains/evidence/finish-contract-map.ts +42 -0
  593. package/src/domains/evidence/index.ts +55 -0
  594. package/src/domains/evidence/provenance.ts +200 -0
  595. package/src/domains/evidence/redact.ts +81 -0
  596. package/src/domains/evidence/store.ts +291 -0
  597. package/src/domains/evidence/types.ts +325 -0
  598. package/src/domains/evolution/SELF_EDIT_GATE.md +91 -0
  599. package/src/domains/evolution/index.ts +26 -0
  600. package/src/domains/evolution/manifest.ts +154 -0
  601. package/src/domains/evolution/validate.ts +304 -0
  602. package/src/domains/extensions/contract.ts +22 -0
  603. package/src/domains/extensions/discovery.ts +193 -0
  604. package/src/domains/extensions/extension.ts +46 -0
  605. package/src/domains/extensions/index.ts +34 -0
  606. package/src/domains/extensions/manager.ts +30 -0
  607. package/src/domains/extensions/manifest.ts +6 -0
  608. package/src/domains/extensions/resources.ts +38 -0
  609. package/src/domains/extensions/state.ts +224 -0
  610. package/src/domains/extensions/types.ts +83 -0
  611. package/src/domains/interop/consent.ts +185 -0
  612. package/src/domains/interop/contract.ts +29 -0
  613. package/src/domains/interop/detect.ts +173 -0
  614. package/src/domains/interop/extension.ts +59 -0
  615. package/src/domains/interop/index.ts +34 -0
  616. package/src/domains/interop/manifest.ts +6 -0
  617. package/src/domains/interop/registry.ts +139 -0
  618. package/src/domains/interop/state.ts +92 -0
  619. package/src/domains/interop/types.ts +109 -0
  620. package/src/domains/lifecycle/contract.ts +11 -0
  621. package/src/domains/lifecycle/doctor.ts +536 -0
  622. package/src/domains/lifecycle/extension.ts +23 -0
  623. package/src/domains/lifecycle/index.ts +21 -0
  624. package/src/domains/lifecycle/install-method.ts +51 -0
  625. package/src/domains/lifecycle/manifest.ts +6 -0
  626. package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
  627. package/src/domains/lifecycle/migrations/index.ts +114 -0
  628. package/src/domains/lifecycle/state.ts +93 -0
  629. package/src/domains/lifecycle/upgrade-notice.ts +35 -0
  630. package/src/domains/lifecycle/version.ts +35 -0
  631. package/src/domains/memory/index.ts +128 -0
  632. package/src/domains/memory/operations.ts +143 -0
  633. package/src/domains/memory/prompt-section.ts +86 -0
  634. package/src/domains/memory/proposal.ts +180 -0
  635. package/src/domains/memory/store.ts +163 -0
  636. package/src/domains/memory/task-bank.ts +229 -0
  637. package/src/domains/memory/task-memory-handoff.ts +222 -0
  638. package/src/domains/memory/task-memory-policy.ts +602 -0
  639. package/src/domains/memory/task-memory-status.ts +58 -0
  640. package/src/domains/memory/task-memory-telemetry.ts +346 -0
  641. package/src/domains/memory/task-memory-trace.ts +89 -0
  642. package/src/domains/memory/types.ts +74 -0
  643. package/src/domains/memory/validate.ts +297 -0
  644. package/src/domains/middleware/budget.ts +216 -0
  645. package/src/domains/middleware/contract.ts +35 -0
  646. package/src/domains/middleware/dispatch-nudge.ts +469 -0
  647. package/src/domains/middleware/extension.ts +129 -0
  648. package/src/domains/middleware/hook-receipts.ts +70 -0
  649. package/src/domains/middleware/hooks-io.ts +186 -0
  650. package/src/domains/middleware/hooks.ts +432 -0
  651. package/src/domains/middleware/index.ts +154 -0
  652. package/src/domains/middleware/manifest.ts +6 -0
  653. package/src/domains/middleware/memory-intervention.ts +701 -0
  654. package/src/domains/middleware/rules.ts +42 -0
  655. package/src/domains/middleware/runtime.ts +333 -0
  656. package/src/domains/middleware/skills-reminder.ts +202 -0
  657. package/src/domains/middleware/snapshot.ts +71 -0
  658. package/src/domains/middleware/stalled-turn.ts +71 -0
  659. package/src/domains/middleware/task-board-reminder.ts +87 -0
  660. package/src/domains/middleware/task-nudge.ts +77 -0
  661. package/src/domains/middleware/tool-choice-control.ts +42 -0
  662. package/src/domains/middleware/types.ts +131 -0
  663. package/src/domains/middleware/validate.ts +329 -0
  664. package/src/domains/observability/accountability.ts +67 -0
  665. package/src/domains/observability/contract.ts +168 -0
  666. package/src/domains/observability/cost.ts +206 -0
  667. package/src/domains/observability/evidence-index.ts +123 -0
  668. package/src/domains/observability/extension.ts +281 -0
  669. package/src/domains/observability/index.ts +78 -0
  670. package/src/domains/observability/manifest.ts +10 -0
  671. package/src/domains/observability/metrics.ts +37 -0
  672. package/src/domains/observability/projection.ts +477 -0
  673. package/src/domains/observability/telemetry.ts +89 -0
  674. package/src/domains/observability/trace-store.ts +1454 -0
  675. package/src/domains/prompts/compiler.ts +614 -0
  676. package/src/domains/prompts/contract.ts +46 -0
  677. package/src/domains/prompts/extension.ts +336 -0
  678. package/src/domains/prompts/fragment-loader.ts +138 -0
  679. package/src/domains/prompts/fragments/identity/clio.md +5 -6
  680. package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
  681. package/src/domains/prompts/fragments/identity/self-awareness.md +19 -0
  682. package/src/domains/prompts/fragments/operating/contract.md +4 -41
  683. package/src/domains/prompts/fragments/operating/delegation.md +42 -0
  684. package/src/domains/prompts/fragments/operating/skills.md +26 -0
  685. package/src/domains/prompts/fragments/operating/worker.md +16 -0
  686. package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
  687. package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
  688. package/src/domains/prompts/fragments/safety/read-only.md +4 -4
  689. package/src/domains/prompts/fragments/safety/suggest.md +2 -2
  690. package/src/domains/prompts/fragments/wiki/page.md +10 -0
  691. package/src/domains/prompts/fragments/wiki/plan.md +10 -0
  692. package/src/domains/prompts/hash.ts +73 -0
  693. package/src/domains/prompts/index.ts +32 -0
  694. package/src/domains/prompts/manifest.ts +8 -0
  695. package/src/domains/prompts/memory-intervention.ts +57 -0
  696. package/src/domains/prompts/preload.ts +82 -0
  697. package/src/domains/providers/auth/api-key.ts +47 -0
  698. package/src/domains/providers/auth/backend-file.ts +79 -0
  699. package/src/domains/providers/auth/backend-memory.ts +72 -0
  700. package/src/domains/providers/auth/boot-status.ts +65 -0
  701. package/src/domains/providers/auth/index.ts +37 -0
  702. package/src/domains/providers/auth/oauth.ts +37 -0
  703. package/src/domains/providers/auth/storage.ts +726 -0
  704. package/src/domains/providers/capabilities.ts +58 -0
  705. package/src/domains/providers/catalog.ts +162 -0
  706. package/src/domains/providers/contract.ts +162 -0
  707. package/src/domains/providers/credentials.ts +20 -0
  708. package/src/domains/providers/eligibility.ts +24 -0
  709. package/src/domains/providers/errors.ts +64 -0
  710. package/src/domains/providers/extension.ts +548 -0
  711. package/src/domains/providers/index.ts +142 -0
  712. package/src/domains/providers/knowledge-base-path.ts +102 -0
  713. package/src/domains/providers/manifest.ts +6 -0
  714. package/src/domains/providers/model-capabilities.ts +136 -0
  715. package/src/domains/providers/model-discovery.ts +144 -0
  716. package/src/domains/providers/model-family.ts +32 -0
  717. package/src/domains/providers/model-runtime-capabilities.ts +723 -0
  718. package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +120 -37
  719. package/src/domains/providers/plugins.ts +61 -0
  720. package/src/domains/providers/probe/fingerprint.ts +64 -0
  721. package/src/domains/providers/probe/http.ts +114 -0
  722. package/src/domains/providers/probe/reasoning.ts +111 -0
  723. package/src/domains/providers/registry.ts +187 -0
  724. package/src/domains/providers/resolver.ts +156 -0
  725. package/src/domains/providers/runtime-resolution.ts +720 -0
  726. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +90 -0
  727. package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
  728. package/src/domains/providers/runtimes/builtins.ts +78 -0
  729. package/src/domains/providers/runtimes/claude/claude-code.ts +38 -0
  730. package/src/domains/providers/runtimes/claude/claude-sdk.ts +38 -0
  731. package/src/domains/providers/runtimes/claude/common.ts +55 -0
  732. package/src/domains/providers/runtimes/cloud/alcf.ts +171 -0
  733. package/src/domains/providers/runtimes/cloud/anthropic-max.ts +71 -0
  734. package/src/domains/providers/runtimes/cloud/anthropic.ts +43 -0
  735. package/src/domains/providers/runtimes/cloud/bedrock.ts +35 -0
  736. package/src/domains/providers/runtimes/cloud/deepseek.ts +50 -0
  737. package/src/domains/providers/runtimes/cloud/google.ts +41 -0
  738. package/src/domains/providers/runtimes/cloud/groq.ts +46 -0
  739. package/src/domains/providers/runtimes/cloud/mistral.ts +46 -0
  740. package/src/domains/providers/runtimes/cloud/openai-codex.ts +49 -0
  741. package/src/domains/providers/runtimes/cloud/openai.ts +46 -0
  742. package/src/domains/providers/runtimes/cloud/openrouter.ts +111 -0
  743. package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
  744. package/src/domains/providers/runtimes/common/local-synth.ts +164 -0
  745. package/src/domains/providers/runtimes/common/probe-helpers.ts +474 -0
  746. package/src/domains/providers/runtimes/local-native/lemonade-anthropic.ts +27 -0
  747. package/src/domains/providers/runtimes/local-native/lemonade-openai.ts +26 -0
  748. package/src/domains/providers/runtimes/local-native/llamacpp-anthropic.ts +88 -0
  749. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +207 -0
  750. package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +180 -0
  751. package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +126 -0
  752. package/src/domains/providers/runtimes/local-native/llamacpp.ts +98 -0
  753. package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
  754. package/src/domains/providers/runtimes/local-native/ollama-native.ts +117 -0
  755. package/src/domains/providers/runtimes/local-native/sglang.ts +26 -0
  756. package/src/domains/providers/runtimes/local-native/vllm.ts +27 -0
  757. package/src/domains/providers/runtimes/protocol/anthropic-compat.ts +104 -0
  758. package/src/domains/providers/runtimes/protocol/anthropic-messages.ts +28 -0
  759. package/src/domains/providers/runtimes/protocol/bedrock.ts +26 -0
  760. package/src/domains/providers/runtimes/protocol/google.ts +27 -0
  761. package/src/domains/providers/runtimes/protocol/openai-compat.ts +145 -0
  762. package/src/domains/providers/support.ts +241 -0
  763. package/src/domains/providers/thinking-control-policy.ts +85 -0
  764. package/src/domains/providers/types/capability-flags.ts +114 -0
  765. package/src/domains/providers/types/cost-provenance.ts +7 -0
  766. package/src/domains/providers/types/inference.ts +41 -0
  767. package/src/domains/providers/types/knowledge-base.ts +156 -0
  768. package/src/domains/providers/types/local-model-quirks.ts +216 -0
  769. package/src/domains/providers/types/runtime-descriptor.ts +181 -0
  770. package/src/domains/providers/types/target-descriptor.ts +60 -0
  771. package/src/domains/resources/collision.ts +92 -0
  772. package/src/domains/resources/common-loader.ts +140 -0
  773. package/src/domains/resources/contract.ts +24 -0
  774. package/src/domains/resources/extension.ts +59 -0
  775. package/src/domains/resources/index.ts +74 -0
  776. package/src/domains/resources/loader.ts +85 -0
  777. package/src/domains/resources/manifest.ts +6 -0
  778. package/src/domains/resources/prompts/loader.ts +246 -0
  779. package/src/domains/resources/prompts/substitute.ts +1 -0
  780. package/src/domains/resources/skills/content-hash.ts +107 -0
  781. package/src/domains/resources/skills/evals.ts +175 -0
  782. package/src/domains/resources/skills/install.ts +427 -0
  783. package/src/domains/resources/skills/loader.ts +985 -0
  784. package/src/domains/resources/skills/marketplace.ts +301 -0
  785. package/src/domains/resources/skills/provenance-pin.ts +115 -0
  786. package/src/domains/safety/action-classifier.ts +270 -0
  787. package/src/domains/safety/approval-axis.ts +23 -0
  788. package/src/domains/safety/audit.ts +493 -0
  789. package/src/domains/safety/autonomy.ts +174 -0
  790. package/src/domains/safety/call-target.ts +59 -0
  791. package/src/domains/safety/contract.ts +65 -0
  792. package/src/domains/safety/damage-control.ts +44 -0
  793. package/src/domains/safety/default-path-policy.ts +117 -0
  794. package/src/domains/safety/extension.ts +383 -0
  795. package/src/domains/safety/finish-contract-registration.ts +128 -0
  796. package/src/domains/safety/finish-contract.ts +554 -0
  797. package/src/domains/safety/index.ts +44 -0
  798. package/src/domains/safety/loop-detector.ts +143 -0
  799. package/src/domains/safety/manifest.ts +6 -0
  800. package/src/domains/safety/path-policy.ts +164 -0
  801. package/src/domains/safety/policy-engine.ts +994 -0
  802. package/src/domains/safety/project-policy.ts +391 -0
  803. package/src/domains/safety/protected-artifacts-registration.ts +189 -0
  804. package/src/domains/safety/protected-artifacts.ts +993 -0
  805. package/src/domains/safety/rejection-feedback.ts +102 -0
  806. package/src/domains/safety/rigor.ts +72 -0
  807. package/src/domains/safety/rule-compiler.ts +48 -0
  808. package/src/domains/safety/rule-pack-loader.ts +92 -0
  809. package/src/domains/safety/run-effects.ts +197 -0
  810. package/src/domains/safety/scope.ts +61 -0
  811. package/src/domains/scheduling/budget.ts +35 -0
  812. package/src/domains/scheduling/cluster.ts +175 -0
  813. package/src/domains/scheduling/contract.ts +30 -0
  814. package/src/domains/scheduling/extension.ts +91 -0
  815. package/src/domains/scheduling/index.ts +12 -0
  816. package/src/domains/scheduling/manifest.ts +6 -0
  817. package/src/domains/session/archive-readers.ts +208 -0
  818. package/src/domains/session/checkpoint.ts +38 -0
  819. package/src/domains/session/compaction/auto.ts +89 -0
  820. package/src/domains/session/compaction/branch-summary.ts +187 -0
  821. package/src/domains/session/compaction/compact.ts +493 -0
  822. package/src/domains/session/compaction/cut-point.ts +172 -0
  823. package/src/domains/session/compaction/defaults.ts +34 -0
  824. package/src/domains/session/compaction/mask-observations.ts +265 -0
  825. package/src/domains/session/compaction/session-entries.ts +18 -0
  826. package/src/domains/session/compaction/tokens.ts +148 -0
  827. package/src/domains/session/context-accounting.ts +583 -0
  828. package/src/domains/session/context-ledger.ts +362 -0
  829. package/src/domains/session/contract.ts +159 -0
  830. package/src/domains/session/cwd-fallback.ts +65 -0
  831. package/src/domains/session/decision-board.ts +190 -0
  832. package/src/domains/session/entries.ts +572 -0
  833. package/src/domains/session/extension.ts +403 -0
  834. package/src/domains/session/history.ts +172 -0
  835. package/src/domains/session/index.ts +84 -0
  836. package/src/domains/session/manager.ts +128 -0
  837. package/src/domains/session/manifest.ts +6 -0
  838. package/src/domains/session/migrations/index.ts +27 -0
  839. package/src/domains/session/prompt-manifest.ts +173 -0
  840. package/src/domains/session/protected-artifact-journal.ts +241 -0
  841. package/src/domains/session/protected-artifacts.ts +90 -0
  842. package/src/domains/session/retry.ts +230 -0
  843. package/src/domains/session/session-artifacts.ts +107 -0
  844. package/src/domains/session/task-board.ts +569 -0
  845. package/src/domains/session/tree/active-path.ts +137 -0
  846. package/src/domains/session/tree/fork.ts +159 -0
  847. package/src/domains/session/tree/manager.ts +128 -0
  848. package/src/domains/session/tree/navigator.ts +177 -0
  849. package/src/domains/session/tree/preview.ts +259 -0
  850. package/src/domains/session/usage.ts +148 -0
  851. package/src/domains/session/workspace/git-probe.ts +167 -0
  852. package/src/domains/session/workspace/index.ts +4 -0
  853. package/src/domains/session/workspace/project-type.ts +217 -0
  854. package/src/domains/session/workspace/snapshot.ts +74 -0
  855. package/src/domains/share/archive.ts +684 -0
  856. package/src/domains/share/contract.ts +9 -0
  857. package/src/domains/share/extension.ts +26 -0
  858. package/src/domains/share/index.ts +28 -0
  859. package/src/domains/share/manifest.ts +6 -0
  860. package/src/domains/user-tasks/store.ts +297 -0
  861. package/src/engine/acp/adapter.ts +397 -0
  862. package/src/engine/acp/errors.ts +128 -0
  863. package/src/engine/acp/event-mapper.ts +154 -0
  864. package/src/engine/acp/server.ts +2238 -0
  865. package/src/engine/acp/tool-mediator.ts +686 -0
  866. package/src/engine/acp/transport.ts +775 -0
  867. package/src/engine/acp/types.ts +196 -0
  868. package/src/engine/agent.ts +29 -0
  869. package/src/engine/ai.ts +207 -0
  870. package/src/engine/alcf-oauth.ts +205 -0
  871. package/src/engine/antigravity/subprocess-runtime.ts +205 -0
  872. package/src/engine/api-registry.ts +223 -0
  873. package/src/engine/apis/degraded-inference.ts +95 -0
  874. package/src/engine/apis/index.ts +16 -0
  875. package/src/engine/apis/llamacpp-residency.ts +292 -0
  876. package/src/engine/apis/lmstudio-residency.ts +76 -0
  877. package/src/engine/apis/lmstudio.ts +243 -0
  878. package/src/engine/apis/ollama-native.ts +528 -0
  879. package/src/engine/apis/openai-completions.ts +795 -0
  880. package/src/engine/apis/output-budget.ts +99 -0
  881. package/src/engine/apis/residency-lock.ts +29 -0
  882. package/src/engine/apis/residency.ts +776 -0
  883. package/src/engine/apis/resident-models.ts +42 -0
  884. package/src/engine/apis/sampling-overrides.ts +38 -0
  885. package/src/engine/apis/types.ts +16 -0
  886. package/src/engine/claude/sdk-runtime.ts +685 -0
  887. package/src/engine/claude/session-id.ts +5 -0
  888. package/src/engine/claude/subprocess-runtime.ts +316 -0
  889. package/src/engine/claude/tool-safety.ts +400 -0
  890. package/src/engine/env-api-keys.ts +98 -0
  891. package/src/engine/external-subprocess.ts +23 -0
  892. package/src/engine/gemma-channel-filter.ts +223 -0
  893. package/src/engine/harmony-response.ts +165 -0
  894. package/src/engine/instrumented-tui.ts +192 -0
  895. package/src/engine/loop-guard.ts +1127 -0
  896. package/src/engine/messages.ts +14 -0
  897. package/src/engine/models.ts +42 -0
  898. package/src/engine/oauth.ts +196 -0
  899. package/src/engine/pi-mono-names.ts +13 -0
  900. package/src/engine/prompt-templates.ts +1 -0
  901. package/src/engine/provider-payload.ts +272 -0
  902. package/src/engine/select-list.ts +53 -0
  903. package/src/engine/session.ts +834 -0
  904. package/src/engine/strip-tokenizer-sentinels.ts +125 -0
  905. package/src/engine/truncate.ts +9 -0
  906. package/src/engine/tui.ts +111 -0
  907. package/src/engine/types.ts +63 -0
  908. package/src/engine/worker-events.ts +100 -0
  909. package/src/engine/worker-runtime-capabilities.ts +5 -0
  910. package/src/engine/worker-runtime.ts +1022 -0
  911. package/src/engine/worker-tools.ts +208 -0
  912. package/src/entry/boot-options.ts +50 -0
  913. package/src/entry/orchestrator.ts +2011 -0
  914. package/src/interactive/application-controller.ts +433 -0
  915. package/src/interactive/bus-notices.ts +265 -0
  916. package/src/interactive/chat-loop-messages.ts +626 -0
  917. package/src/interactive/chat-loop-policy.ts +18 -0
  918. package/src/interactive/chat-loop.ts +1090 -0
  919. package/src/interactive/chat-panel.ts +1820 -0
  920. package/src/interactive/chat-renderer.ts +1228 -0
  921. package/src/interactive/clio-editor.ts +161 -0
  922. package/src/interactive/command-fallbacks.ts +23 -0
  923. package/src/interactive/command-output.ts +85 -0
  924. package/src/interactive/context-activity.ts +203 -0
  925. package/src/interactive/context-meter.ts +223 -0
  926. package/src/interactive/context-overlay.ts +246 -0
  927. package/src/interactive/cost-overlay.ts +279 -0
  928. package/src/interactive/dispatch-board.ts +1319 -0
  929. package/src/interactive/dispatch-steering.ts +86 -0
  930. package/src/interactive/editor-bash.ts +46 -0
  931. package/src/interactive/editor-steer.ts +51 -0
  932. package/src/interactive/editor-submit.ts +507 -0
  933. package/src/interactive/export-html/ansi-to-html.ts +161 -0
  934. package/src/interactive/export-html/index.ts +51 -0
  935. package/src/interactive/export-html/template.ts +45 -0
  936. package/src/interactive/export-html/tool-renderer.ts +54 -0
  937. package/src/interactive/external-editor.ts +67 -0
  938. package/src/interactive/follow-up-queue-panel.ts +75 -0
  939. package/src/interactive/footer/dashboard.ts +538 -0
  940. package/src/interactive/footer/notifications.ts +275 -0
  941. package/src/interactive/footer/widgets.ts +1264 -0
  942. package/src/interactive/footer-panel.ts +187 -0
  943. package/src/interactive/format-time.ts +97 -0
  944. package/src/interactive/index.ts +11 -0
  945. package/src/interactive/interactive-application.ts +939 -0
  946. package/src/interactive/interactive-event-projection.ts +385 -0
  947. package/src/interactive/interactive-input-runtime.ts +307 -0
  948. package/src/interactive/interactive-presentation.ts +584 -0
  949. package/src/interactive/interactive-shell.ts +388 -0
  950. package/src/interactive/interactive-slash-runtime.ts +554 -0
  951. package/src/interactive/interactive-subscriptions.ts +111 -0
  952. package/src/interactive/interactive-tickers.ts +183 -0
  953. package/src/interactive/keybinding-manager.ts +496 -0
  954. package/src/interactive/layout.ts +57 -0
  955. package/src/interactive/leader-key.ts +143 -0
  956. package/src/interactive/loop-guard-interrupt.ts +101 -0
  957. package/src/interactive/memory-overlay.ts +280 -0
  958. package/src/interactive/overlay-ask-user-lifecycle.ts +110 -0
  959. package/src/interactive/overlay-auth-lifecycle.ts +308 -0
  960. package/src/interactive/overlay-frame.ts +502 -0
  961. package/src/interactive/overlay-general-openers.ts +274 -0
  962. package/src/interactive/overlay-key-routing.ts +216 -0
  963. package/src/interactive/overlay-lifecycle.ts +426 -0
  964. package/src/interactive/overlay-model-selectors.ts +127 -0
  965. package/src/interactive/overlay-permission-lifecycle.ts +345 -0
  966. package/src/interactive/overlay-resource-openers.ts +112 -0
  967. package/src/interactive/overlay-session-lifecycle.ts +327 -0
  968. package/src/interactive/overlay-transitions.ts +57 -0
  969. package/src/interactive/overlays/agents.ts +69 -0
  970. package/src/interactive/overlays/ask-user.ts +921 -0
  971. package/src/interactive/overlays/auth-dialog.ts +221 -0
  972. package/src/interactive/overlays/context-reset.ts +108 -0
  973. package/src/interactive/overlays/cwd-fallback.ts +141 -0
  974. package/src/interactive/overlays/decisions.ts +300 -0
  975. package/src/interactive/overlays/extensions.ts +54 -0
  976. package/src/interactive/overlays/help-reference.ts +145 -0
  977. package/src/interactive/overlays/interop.ts +139 -0
  978. package/src/interactive/overlays/keybinding-detail.ts +90 -0
  979. package/src/interactive/overlays/list-overlay.ts +606 -0
  980. package/src/interactive/overlays/message-picker.ts +155 -0
  981. package/src/interactive/overlays/model-selector.ts +1109 -0
  982. package/src/interactive/overlays/prompts.ts +72 -0
  983. package/src/interactive/overlays/session-selector-search.ts +31 -0
  984. package/src/interactive/overlays/session-selector.ts +284 -0
  985. package/src/interactive/overlays/settings.ts +3451 -0
  986. package/src/interactive/overlays/skills-hub.ts +237 -0
  987. package/src/interactive/overlays/tree-selector.ts +422 -0
  988. package/src/interactive/permission-overlay.ts +170 -0
  989. package/src/interactive/render-trace.ts +534 -0
  990. package/src/interactive/renderers/branch-summary.ts +86 -0
  991. package/src/interactive/renderers/code-ink.ts +420 -0
  992. package/src/interactive/renderers/compaction-summary.ts +112 -0
  993. package/src/interactive/renderers/diff.ts +137 -0
  994. package/src/interactive/renderers/mermaid.ts +53 -0
  995. package/src/interactive/renderers/notice.ts +28 -0
  996. package/src/interactive/renderers/retry-status.ts +31 -0
  997. package/src/interactive/renderers/structured.ts +89 -0
  998. package/src/interactive/renderers/tool-execution.ts +1357 -0
  999. package/src/interactive/renderers/worker-entry.ts +280 -0
  1000. package/src/interactive/session-last-turn.ts +186 -0
  1001. package/src/interactive/session-switch-settlement.ts +10 -0
  1002. package/src/interactive/session-transcript.ts +105 -0
  1003. package/src/interactive/session-usage-reseed.ts +74 -0
  1004. package/src/interactive/slash-autocomplete.ts +256 -0
  1005. package/src/interactive/slash-commands.ts +1407 -0
  1006. package/src/interactive/slash-spec.ts +424 -0
  1007. package/src/interactive/status/controller.ts +260 -0
  1008. package/src/interactive/status/index.ts +23 -0
  1009. package/src/interactive/status/state-machine.ts +530 -0
  1010. package/src/interactive/status/summary.ts +170 -0
  1011. package/src/interactive/status/types.ts +121 -0
  1012. package/src/interactive/status/verbs.ts +163 -0
  1013. package/src/interactive/status/watchdog.ts +24 -0
  1014. package/src/interactive/stdout-backpressure.ts +99 -0
  1015. package/src/interactive/stream-pacer.ts +530 -0
  1016. package/src/interactive/stream-pacing-policy.ts +66 -0
  1017. package/src/interactive/tasks-overlay.ts +540 -0
  1018. package/src/interactive/terminal-lease.ts +485 -0
  1019. package/src/interactive/theme/components.ts +55 -0
  1020. package/src/interactive/theme/glyphs.ts +70 -0
  1021. package/src/interactive/theme/index.ts +15 -0
  1022. package/src/interactive/theme/labels.ts +88 -0
  1023. package/src/interactive/theme/rules.ts +138 -0
  1024. package/src/interactive/theme/segments.ts +88 -0
  1025. package/src/interactive/theme/tokens.ts +121 -0
  1026. package/src/interactive/thinking-level-policy.ts +6 -0
  1027. package/src/interactive/tool-prose-loop.ts +122 -0
  1028. package/src/interactive/tool-prose-registration.ts +48 -0
  1029. package/src/interactive/turn-context.ts +855 -0
  1030. package/src/interactive/turn-middleware.ts +283 -0
  1031. package/src/interactive/turn-persistence.ts +458 -0
  1032. package/src/interactive/turn-queues.ts +181 -0
  1033. package/src/interactive/turn-recovery.ts +323 -0
  1034. package/src/interactive/turn-runtime.ts +869 -0
  1035. package/src/interactive/turn-state.ts +133 -0
  1036. package/src/interactive/view/artifacts.ts +1452 -0
  1037. package/src/interactive/view/view-overlay.ts +735 -0
  1038. package/src/interactive/welcome-dashboard.ts +537 -0
  1039. package/src/interactive/worker-receipts.ts +143 -0
  1040. package/src/interactive/worker-replay.ts +111 -0
  1041. package/src/interactive/worker-share.ts +100 -0
  1042. package/src/interactive/worker-stream.ts +446 -0
  1043. package/src/interactive/workspace-facts.ts +141 -0
  1044. package/src/tools/agent-tools.ts +402 -0
  1045. package/src/tools/artifact.ts +103 -0
  1046. package/src/tools/ask-user.ts +666 -0
  1047. package/src/tools/bash.ts +204 -0
  1048. package/src/tools/bootstrap.ts +77 -0
  1049. package/src/tools/builtin-tool-catalog.ts +265 -0
  1050. package/src/tools/codewiki/code-nav-surface.ts +29 -0
  1051. package/src/tools/codewiki/code-nav.ts +549 -0
  1052. package/src/tools/codewiki/shared.ts +118 -0
  1053. package/src/tools/compete-worktrees.ts +898 -0
  1054. package/src/tools/context/docs-engine.ts +630 -0
  1055. package/src/tools/context/index.ts +514 -0
  1056. package/src/tools/context/surface.ts +19 -0
  1057. package/src/tools/core-bootstrap.ts +168 -0
  1058. package/src/tools/credential-present.ts +151 -0
  1059. package/src/tools/dispatch-admission.ts +533 -0
  1060. package/src/tools/dispatch-arguments.ts +228 -0
  1061. package/src/tools/dispatch-background.ts +54 -0
  1062. package/src/tools/dispatch-event-text.ts +6 -0
  1063. package/src/tools/dispatch-plan.ts +746 -0
  1064. package/src/tools/dispatch-run-events.ts +238 -0
  1065. package/src/tools/dispatch-runner.ts +2370 -0
  1066. package/src/tools/dispatch-scout-admission.ts +295 -0
  1067. package/src/tools/dispatch-scout.ts +461 -0
  1068. package/src/tools/dispatch-types.ts +77 -0
  1069. package/src/tools/dispatch.ts +244 -0
  1070. package/src/tools/edit-diff.ts +534 -0
  1071. package/src/tools/edit.ts +128 -0
  1072. package/src/tools/executables.ts +22 -0
  1073. package/src/tools/file-mutation-queue.ts +35 -0
  1074. package/src/tools/find.ts +294 -0
  1075. package/src/tools/grep.ts +495 -0
  1076. package/src/tools/ignore-policy.ts +169 -0
  1077. package/src/tools/lazy-tool.ts +60 -0
  1078. package/src/tools/ledger.ts +206 -0
  1079. package/src/tools/ls.ts +110 -0
  1080. package/src/tools/monitor-surface.ts +36 -0
  1081. package/src/tools/monitor.ts +767 -0
  1082. package/src/tools/network-policy.ts +29 -0
  1083. package/src/tools/observation.ts +421 -0
  1084. package/src/tools/observers.ts +99 -0
  1085. package/src/tools/path-utils.ts +79 -0
  1086. package/src/tools/policy.ts +154 -0
  1087. package/src/tools/profiles.ts +108 -0
  1088. package/src/tools/read.ts +173 -0
  1089. package/src/tools/registry.ts +1169 -0
  1090. package/src/tools/result-shaping.ts +204 -0
  1091. package/src/tools/safe-exec.ts +128 -0
  1092. package/src/tools/spawn-hygiene.ts +182 -0
  1093. package/src/tools/steer-surface.ts +17 -0
  1094. package/src/tools/steer.ts +77 -0
  1095. package/src/tools/tasks.ts +265 -0
  1096. package/src/tools/truncate-utf8.ts +17 -0
  1097. package/src/tools/truncate.ts +43 -0
  1098. package/src/tools/verify/frontend.ts +687 -0
  1099. package/src/tools/verify/index.ts +31 -0
  1100. package/src/tools/verify/scripts.ts +108 -0
  1101. package/src/tools/verify/surface.ts +46 -0
  1102. package/src/tools/web-fetch-surface.ts +23 -0
  1103. package/src/tools/web-fetch.ts +759 -0
  1104. package/src/tools/worker-evidence.ts +215 -0
  1105. package/src/tools/write.ts +57 -0
  1106. package/src/utils/exif-orientation.ts +192 -0
  1107. package/src/utils/git.ts +24 -0
  1108. package/src/utils/image-resize.ts +148 -0
  1109. package/src/utils/photon.ts +103 -0
  1110. package/src/worker/control-lane.ts +22 -0
  1111. package/src/worker/entry.ts +294 -0
  1112. package/src/worker/event-projection.ts +56 -0
  1113. package/src/worker/heartbeat.ts +24 -0
  1114. package/src/worker/ledger-mirror.ts +95 -0
  1115. package/src/worker/ndjson.ts +40 -0
  1116. package/src/worker/protocol.ts +529 -0
  1117. package/src/worker/resource-facts.ts +79 -0
  1118. package/src/worker/runtime-registry.ts +12 -0
  1119. package/src/worker/spec-contract.ts +675 -0
  1120. package/src/worker/stdin-demux.ts +316 -0
  1121. package/dist/acp-UMLFVA3F.js +0 -92
  1122. package/dist/chunk-262G75JS.js +0 -35
  1123. package/dist/chunk-6CWDTGUC.js +0 -20
  1124. package/dist/chunk-BYEU76JP.js +0 -899
  1125. package/dist/chunk-GNGDQYDU.js +0 -34688
  1126. package/dist/chunk-GOTUR54M.js +0 -9
  1127. package/dist/chunk-NI4DEJMC.js +0 -88
  1128. package/dist/chunk-TPOCL34A.js +0 -2876
  1129. package/dist/chunk-UU3R62TT.js +0 -128
  1130. package/dist/clio-KIQ5SNDS.js +0 -53
  1131. package/dist/configure-G4E3A2PG.js +0 -27
  1132. package/dist/doctor-M5HJJZOL.js +0 -61
  1133. package/dist/domains/agents/builtins/architect.md +0 -33
  1134. package/dist/domains/agents/builtins/coder.md +0 -31
  1135. package/dist/domains/agents/builtins/context-bootstrap.md +0 -38
  1136. package/dist/domains/agents/builtins/debugger.md +0 -30
  1137. package/dist/domains/agents/builtins/documenter.md +0 -31
  1138. package/dist/domains/agents/builtins/git-master.md +0 -30
  1139. package/dist/domains/agents/builtins/provenance.md +0 -30
  1140. package/dist/domains/agents/builtins/researcher.md +0 -71
  1141. package/dist/domains/agents/builtins/scout.md +0 -42
  1142. package/dist/domains/agents/builtins/tester.md +0 -31
  1143. package/dist/domains/agents/builtins/verifier.md +0 -30
  1144. package/dist/domains/agents/builtins/wiki-writer.md +0 -41
  1145. package/dist/fleet-preflight-CLIAX7YR.js +0 -21
  1146. package/dist/preload-KZVHET2B.js +0 -11
  1147. package/dist/version-ROZ6CZKH.js +0 -16
  1148. package/docs/html/agents_blueprint.html +0 -936
  1149. package/docs/html/alcf_blueprint.html +0 -324
  1150. package/docs/html/architecture_blueprint.html +0 -850
  1151. package/docs/html/commands_blueprint.html +0 -794
  1152. package/docs/html/config_knobs_audit_blueprint.html +0 -178
  1153. package/docs/html/configuration_blueprint.html +0 -1080
  1154. package/docs/html/context_blueprint.html +0 -603
  1155. package/docs/html/documentation_blueprint.html +0 -832
  1156. package/docs/html/environment_blueprint.html +0 -404
  1157. package/docs/html/eval_blueprint.html +0 -743
  1158. package/docs/html/evals_internal_blueprint.html +0 -190
  1159. package/docs/html/evolution_blueprint.html +0 -674
  1160. package/docs/html/extensions_blueprint.html +0 -2065
  1161. package/docs/html/fleet_dispatch_blueprint.html +0 -286
  1162. package/docs/html/index.html +0 -919
  1163. package/docs/html/lifecycle_blueprint.html +0 -723
  1164. package/docs/html/memory_blueprint.html +0 -699
  1165. package/docs/html/middleware_blueprint.html +0 -664
  1166. package/docs/html/models_blueprint.html +0 -2366
  1167. package/docs/html/observability_blueprint.html +0 -683
  1168. package/docs/html/provider_adapter_blueprint.html +0 -245
  1169. package/docs/html/safety_blueprint.html +0 -1386
  1170. package/docs/html/shared.css +0 -571
  1171. package/docs/html/shared.js +0 -143
  1172. package/docs/html/skills_blueprint.html +0 -671
  1173. package/docs/html/soak_blueprint.html +0 -182
  1174. package/docs/html/tool_usage_blueprint.html +0 -350
  1175. package/docs/html/tools_blueprint.html +0 -2249
  1176. package/docs/html/trace_blueprint.html +0 -235
  1177. package/docs/html/tui_design_blueprint.html +0 -314
  1178. package/docs/html/validation_blueprint.html +0 -961
  1179. package/docs/html/worker_dispatch_blueprint.html +0 -231
  1180. package/skills/git/commit-crafting/SKILL.md +0 -79
  1181. package/skills/git/commit-crafting/evals.md +0 -92
  1182. package/skills/git/create-pr/SKILL.md +0 -116
  1183. package/skills/git/create-pr/evals.md +0 -114
  1184. package/skills/git/investigate-issue/SKILL.md +0 -139
  1185. package/skills/git/investigate-issue/evals.md +0 -94
  1186. package/skills/git/review-changes/SKILL.md +0 -103
  1187. package/skills/git/review-changes/evals.md +0 -85
@@ -1,33 +1,51 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
1
2
  import {
2
- ToolNames
3
- } from "./chunk-QV47YRF4.js";
3
+ readRootEntries,
4
+ splitYamlFrontmatter,
5
+ stringField
6
+ } from "./chunk-2SFS6XQE.js";
4
7
  import {
5
8
  enabledExtensionResourceRoots
6
- } from "./chunk-CLJ5HLUD.js";
9
+ } from "./chunk-ZWLZP4ZT.js";
7
10
  import {
8
- fsyncDirectory
9
- } from "./chunk-VPAWTYLY.js";
11
+ ToolNames
12
+ } from "./chunk-CGKSTWHD.js";
13
+ import {
14
+ INTEROP_AGENT_KINDS,
15
+ interopSourceRank
16
+ } from "./chunk-IHXBNWMM.js";
10
17
  import {
11
18
  clioConfigDir
12
- } from "./chunk-X3NE4WVW.js";
19
+ } from "./chunk-BNAZZHFG.js";
20
+ import {
21
+ fsyncDirectory
22
+ } from "./chunk-WEPFGWHJ.js";
23
+ import {
24
+ resolvePackageRoot
25
+ } from "./chunk-IWHMRKLL.js";
26
+ import {
27
+ init_esm_shims
28
+ } from "./chunk-3R73A4XB.js";
13
29
 
14
30
  // src/domains/resources/skills/install.ts
31
+ init_esm_shims();
15
32
  import { execFileSync } from "node:child_process";
16
33
  import {
17
34
  cpSync,
18
- existsSync as existsSync4,
35
+ existsSync as existsSync3,
19
36
  mkdirSync,
20
37
  mkdtempSync,
21
38
  readFileSync as readFileSync3,
22
39
  renameSync,
23
40
  rmSync,
24
- statSync as statSync2,
41
+ statSync,
25
42
  writeFileSync
26
43
  } from "node:fs";
27
44
  import { homedir as homedir2, tmpdir } from "node:os";
28
- import path4 from "node:path";
45
+ import path3 from "node:path";
29
46
 
30
47
  // src/domains/resources/skills/content-hash.ts
48
+ init_esm_shims();
31
49
  import { createHash } from "node:crypto";
32
50
  var PROVENANCE_KEYS = /* @__PURE__ */ new Set([
33
51
  "source-url",
@@ -39,7 +57,9 @@ var PROVENANCE_KEYS = /* @__PURE__ */ new Set([
39
57
  "updatedAt",
40
58
  "installed-hash",
41
59
  "installedHash",
42
- "audit"
60
+ "audit",
61
+ "installed-by",
62
+ "installedBy"
43
63
  ]);
44
64
  function frontmatterRegion(rawText) {
45
65
  const opening = rawText.match(/^---\r?\n/);
@@ -94,99 +114,39 @@ function normalizedSkillHash(rawText) {
94
114
  }
95
115
 
96
116
  // src/domains/resources/skills/loader.ts
117
+ init_esm_shims();
97
118
  import { createHash as createHash2 } from "node:crypto";
98
- import { existsSync as existsSync3, readdirSync as readdirSync3, readFileSync as readFileSync2, realpathSync } from "node:fs";
119
+ import { existsSync as existsSync2, readdirSync as readdirSync2, readFileSync as readFileSync2, realpathSync } from "node:fs";
99
120
  import { homedir } from "node:os";
100
- import path3 from "node:path";
121
+ import path2 from "node:path";
101
122
 
102
- // src/domains/resources/common-loader.ts
103
- import { existsSync, readdirSync, statSync } from "node:fs";
123
+ // src/domains/resources/skills/marketplace.ts
124
+ init_esm_shims();
125
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
104
126
  import path from "node:path";
105
- import { parse as parseYaml } from "yaml";
106
- function defaultScopedResourceRoots(kind, cwd) {
107
- return [
108
- ...enabledExtensionResourceRoots(kind, cwd).map((root) => ({
109
- path: root.path,
110
- scope: "package",
111
- source: root.source
112
- })),
113
- { path: path.join(clioConfigDir(), kind), scope: "user", source: "config" },
114
- { path: path.join(cwd, ".clio-coder", kind), scope: "project", source: "project" }
115
- ];
116
- }
117
- function sourceInfoForRoot(root, filePath) {
118
- return {
119
- path: filePath,
120
- scope: root.scope,
121
- ...root.source ? { source: root.source } : {}
122
- };
123
- }
124
- function readRootEntries(root, label, diagnostics) {
125
- if (!existsSync(root.path)) return [];
126
- let stat;
127
- try {
128
- stat = statSync(root.path);
129
- } catch (err) {
130
- const reason = err instanceof Error ? err.message : String(err);
131
- diagnostics.push({
132
- type: "warning",
133
- message: `${label} root could not be stat'ed: ${reason}`,
134
- path: root.path
135
- });
136
- return [];
137
- }
138
- if (!stat.isDirectory()) {
139
- diagnostics.push({ type: "warning", message: `${label} root is not a directory`, path: root.path });
140
- return [];
141
- }
127
+ var MARKETPLACE_UNCONFIGURED = "no local skill marketplace catalog or index configured";
128
+ function packageCatalogDir() {
142
129
  try {
143
- return readdirSync(root.path, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name));
144
- } catch (err) {
145
- const reason = err instanceof Error ? err.message : String(err);
146
- diagnostics.push({ type: "warning", message: `${label} root could not be read: ${reason}`, path: root.path });
147
- return [];
130
+ return path.join(resolvePackageRoot(), "skills");
131
+ } catch {
132
+ return null;
148
133
  }
149
134
  }
150
- function splitYamlFrontmatter(raw) {
151
- const opening = raw.match(/^---\r?\n/);
152
- if (!opening) return { ok: false, reason: "missing", body: raw };
153
- const closeRegex = /\r?\n---(?:\r?\n|$)/g;
154
- closeRegex.lastIndex = opening[0].length;
155
- const closing = closeRegex.exec(raw);
156
- if (!closing) return { ok: false, reason: "missing closing delimiter", body: raw };
157
- const body = raw.slice(closing.index + closing[0].length);
158
- const frontmatterText = raw.slice(opening[0].length, closing.index);
159
- let parsed;
135
+ function packageIndexPath() {
160
136
  try {
161
- parsed = parseYaml(frontmatterText);
162
- } catch (err) {
163
- const reason = err instanceof Error ? err.message : String(err);
164
- return { ok: false, reason: `invalid YAML: ${reason}`, body };
165
- }
166
- if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
167
- return { ok: false, reason: "must be a YAML object", body };
137
+ return path.join(resolvePackageRoot(), "skills", "skill-marketplace.json");
138
+ } catch {
139
+ return null;
168
140
  }
169
- return {
170
- ok: true,
171
- frontmatter: parsed,
172
- body
173
- };
174
- }
175
- function stringField(frontmatter, key) {
176
- const value = frontmatter[key];
177
- return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
178
141
  }
179
-
180
- // src/domains/resources/skills/marketplace.ts
181
- import { existsSync as existsSync2, readdirSync as readdirSync2, readFileSync } from "node:fs";
182
- import path2 from "node:path";
183
- var MARKETPLACE_UNCONFIGURED = "no local skill marketplace catalog or index configured";
184
142
  function defaultIndexPath() {
185
143
  try {
186
- return path2.join(clioConfigDir(), "skill-marketplace.json");
144
+ const configured = path.join(clioConfigDir(), "skill-marketplace.json");
145
+ if (existsSync(configured)) return configured;
187
146
  } catch {
188
- return null;
189
147
  }
148
+ const bundled = packageIndexPath();
149
+ return bundled && existsSync(bundled) ? bundled : null;
190
150
  }
191
151
  function isIndexSkill(value) {
192
152
  if (!value || typeof value !== "object" || Array.isArray(value)) return false;
@@ -224,15 +184,15 @@ function indexSkills(indexPath, diagnostics) {
224
184
  }
225
185
  }
226
186
  function looksLikeSkillCatalog(dir) {
227
- if (!existsSync2(dir)) return false;
187
+ if (!existsSync(dir)) return false;
228
188
  try {
229
- return readdirSync2(dir, { withFileTypes: true }).some((entry) => {
189
+ return readdirSync(dir, { withFileTypes: true }).some((entry) => {
230
190
  if (!entry.isDirectory()) return false;
231
- const child = path2.join(dir, entry.name);
232
- if (existsSync2(path2.join(child, "SKILL.md"))) return true;
191
+ const child = path.join(dir, entry.name);
192
+ if (existsSync(path.join(child, "SKILL.md"))) return true;
233
193
  try {
234
- return readdirSync2(child, { withFileTypes: true }).some(
235
- (inner) => inner.isDirectory() && existsSync2(path2.join(child, inner.name, "SKILL.md"))
194
+ return readdirSync(child, { withFileTypes: true }).some(
195
+ (inner) => inner.isDirectory() && existsSync(path.join(child, inner.name, "SKILL.md"))
236
196
  );
237
197
  } catch {
238
198
  return false;
@@ -244,15 +204,17 @@ function looksLikeSkillCatalog(dir) {
244
204
  }
245
205
  function resolveCatalogDir(options) {
246
206
  if (options.catalogDir === null) return null;
247
- if (options.catalogDir) return path2.resolve(options.catalogDir);
207
+ if (options.catalogDir) return path.resolve(options.catalogDir);
248
208
  const fromEnv = process.env.CLIO_CODER_SKILL_CATALOG_DIR;
249
- if (fromEnv && fromEnv.trim().length > 0) return path2.resolve(fromEnv.trim());
250
- const repoCatalog = path2.join(options.cwd ?? process.cwd(), "skills");
251
- return looksLikeSkillCatalog(repoCatalog) ? repoCatalog : null;
209
+ if (fromEnv && fromEnv.trim().length > 0) return path.resolve(fromEnv.trim());
210
+ const repoCatalog = path.join(options.cwd ?? process.cwd(), "skills");
211
+ if (looksLikeSkillCatalog(repoCatalog)) return repoCatalog;
212
+ const bundled = packageCatalogDir();
213
+ return bundled && looksLikeSkillCatalog(bundled) ? bundled : null;
252
214
  }
253
215
  function catalogCategory(catalogDir, baseDir) {
254
- const rel = path2.relative(catalogDir, baseDir);
255
- const category = path2.dirname(rel);
216
+ const rel = path.relative(catalogDir, baseDir);
217
+ const category = path.dirname(rel);
256
218
  if (rel.length === 0 || rel.startsWith("..") || category === "." || category.startsWith("..")) return void 0;
257
219
  return category;
258
220
  }
@@ -290,7 +252,7 @@ function discoverMarketplaceSkills(options = {}) {
290
252
  }
291
253
  const indexPath = options.indexPath === null ? null : options.indexPath ?? process.env.CLIO_CODER_SKILL_MARKETPLACE_INDEX ?? null;
292
254
  const resolvedIndexPath = indexPath ?? defaultIndexPath();
293
- if (options.indexPath !== null && resolvedIndexPath && existsSync2(resolvedIndexPath)) {
255
+ if (options.indexPath !== null && resolvedIndexPath && existsSync(resolvedIndexPath)) {
294
256
  for (const skill of indexSkills(resolvedIndexPath, diagnostics)) {
295
257
  if (seen.has(skill.name)) continue;
296
258
  seen.add(skill.name);
@@ -308,7 +270,7 @@ function getMarketplaceSkills(options = {}) {
308
270
  function installSkill(input) {
309
271
  const source = input.source.trim();
310
272
  const spec = parseSkillSourceSpec(source);
311
- if (spec?.kind === "local" && isSkillName(source) && !existsSync2(spec.path)) {
273
+ if (spec?.kind === "local" && isSkillName(source) && !existsSync(spec.path)) {
312
274
  const skill = getMarketplaceSkills({ ...input.cwd ? { cwd: input.cwd } : {} }).find(
313
275
  (entry) => entry.name === source
314
276
  );
@@ -355,15 +317,15 @@ function defaultPrecedenceForScope(scope) {
355
317
  return SKILL_PRECEDENCE.cli;
356
318
  }
357
319
  }
358
- function projectCompatTrusted(input) {
359
- if (input.trustProjectCompatRoots === true) return true;
320
+ function projectCompatTrusted(explicit) {
321
+ if (explicit === true) return true;
360
322
  return process.env.CLIO_CODER_TRUST_PROJECT_SKILLS === "1";
361
323
  }
362
324
  function defaultSkillRoots(input = {}) {
363
325
  const cwd = input.cwd ?? process.cwd();
364
326
  const home = input.home ?? homedir();
365
327
  const configDir = input.configDir ?? clioConfigDirSafe();
366
- const trustProject = projectCompatTrusted(input);
328
+ const trustProject = projectCompatTrusted(input.trustProjectCompatRoots);
367
329
  const roots = [];
368
330
  for (const root of enabledExtensionResourceRoots("skills", cwd)) {
369
331
  roots.push({
@@ -375,54 +337,21 @@ function defaultSkillRoots(input = {}) {
375
337
  trusted: true
376
338
  });
377
339
  }
378
- roots.push({
379
- path: path3.join(home, ".agents", "skills"),
380
- scope: "user",
381
- source: "agents",
382
- origin: "agents-user",
383
- precedence: SKILL_PRECEDENCE.userCompat,
384
- trusted: true,
385
- containment: home
386
- });
387
- roots.push({
388
- path: path3.join(home, ".claude", "skills"),
389
- scope: "user",
390
- source: "claude",
391
- origin: "claude-user",
392
- precedence: SKILL_PRECEDENCE.userCompat,
393
- trusted: true,
394
- containment: home
395
- });
396
- roots.push({
397
- path: path3.join(home, ".codex", "skills"),
398
- scope: "user",
399
- source: "codex",
400
- origin: "codex-user",
401
- precedence: SKILL_PRECEDENCE.userCompat,
402
- trusted: true,
403
- containment: home
404
- });
405
- roots.push({
406
- path: path3.join(home, ".config", "opencode", "skills"),
407
- scope: "user",
408
- source: "opencode",
409
- origin: "opencode-user",
410
- precedence: SKILL_PRECEDENCE.userCompat,
411
- trusted: true,
412
- containment: home
413
- });
414
- roots.push({
415
- path: path3.join(home, ".copilot", "skills"),
416
- scope: "user",
417
- source: "copilot",
418
- origin: "copilot-user",
419
- precedence: SKILL_PRECEDENCE.userCompat,
420
- trusted: true,
421
- containment: home
422
- });
340
+ for (const kind of INTEROP_AGENT_KINDS) {
341
+ if (kind.userSkillRoot === void 0 || kind.skillSource === void 0) continue;
342
+ roots.push({
343
+ path: path2.join(home, kind.userSkillRoot),
344
+ scope: "user",
345
+ source: kind.skillSource,
346
+ origin: `${kind.skillSource}-user`,
347
+ precedence: SKILL_PRECEDENCE.userCompat,
348
+ trusted: true,
349
+ containment: home
350
+ });
351
+ }
423
352
  if (configDir) {
424
353
  roots.push({
425
- path: path3.join(configDir, "skills"),
354
+ path: path2.join(configDir, "skills"),
426
355
  scope: "user",
427
356
  source: "clio",
428
357
  origin: "config",
@@ -431,53 +360,20 @@ function defaultSkillRoots(input = {}) {
431
360
  containment: home
432
361
  });
433
362
  }
363
+ for (const kind of INTEROP_AGENT_KINDS) {
364
+ if (kind.projectSkillRoot === void 0 || kind.skillSource === void 0) continue;
365
+ roots.push({
366
+ path: path2.join(cwd, kind.projectSkillRoot),
367
+ scope: "project",
368
+ source: kind.skillSource,
369
+ origin: `${kind.skillSource}-project`,
370
+ precedence: SKILL_PRECEDENCE.projectCompat,
371
+ trusted: trustProject,
372
+ containment: cwd
373
+ });
374
+ }
434
375
  roots.push({
435
- path: path3.join(cwd, ".agents", "skills"),
436
- scope: "project",
437
- source: "agents",
438
- origin: "agents-project",
439
- precedence: SKILL_PRECEDENCE.projectCompat,
440
- trusted: trustProject,
441
- containment: cwd
442
- });
443
- roots.push({
444
- path: path3.join(cwd, ".claude", "skills"),
445
- scope: "project",
446
- source: "claude",
447
- origin: "claude-project",
448
- precedence: SKILL_PRECEDENCE.projectCompat,
449
- trusted: trustProject,
450
- containment: cwd
451
- });
452
- roots.push({
453
- path: path3.join(cwd, ".codex", "skills"),
454
- scope: "project",
455
- source: "codex",
456
- origin: "codex-project",
457
- precedence: SKILL_PRECEDENCE.projectCompat,
458
- trusted: trustProject,
459
- containment: cwd
460
- });
461
- roots.push({
462
- path: path3.join(cwd, ".opencode", "skills"),
463
- scope: "project",
464
- source: "opencode",
465
- origin: "opencode-project",
466
- precedence: SKILL_PRECEDENCE.projectCompat,
467
- trusted: trustProject,
468
- containment: cwd
469
- });
470
- roots.push({
471
- path: path3.join(cwd, ".github", "skills"),
472
- scope: "project",
473
- source: "copilot",
474
- origin: "copilot-project",
475
- precedence: SKILL_PRECEDENCE.projectCompat,
476
- trusted: trustProject,
477
- containment: cwd
478
- });
479
- roots.push({
480
- path: path3.join(cwd, ".clio-coder", "skills"),
376
+ path: path2.join(cwd, ".clio-coder", "skills"),
481
377
  scope: "project",
482
378
  source: "clio",
483
379
  origin: "project",
@@ -551,7 +447,7 @@ function declaredToolSurface(frontmatter, key, filePath, diagnostics) {
551
447
  return tools.length > 0 ? tools : void 0;
552
448
  }
553
449
  function validationSubject(filePath) {
554
- return path3.basename(filePath) === "SKILL.md" ? path3.basename(path3.dirname(filePath)) : path3.basename(filePath, ".md");
450
+ return path2.basename(filePath) === "SKILL.md" ? path2.basename(path2.dirname(filePath)) : path2.basename(filePath, ".md");
555
451
  }
556
452
  function validateNameFormat(name) {
557
453
  const errors = [];
@@ -602,7 +498,9 @@ function extractProvenance(frontmatter) {
602
498
  const installedHash = field("installed-hash", "installedHash");
603
499
  const auditRaw = field("audit");
604
500
  const audit = auditRaw === "pass" || auditRaw === "warn" || auditRaw === "fail" || auditRaw === "unknown" ? auditRaw : void 0;
605
- if (!installUrl && !registryId && !registryUrl && !installedAt && !updatedAt && !installedHash && !audit)
501
+ const installedByRaw = field("installed-by", "installedBy");
502
+ const installedBy = installedByRaw === "worker" ? installedByRaw : void 0;
503
+ if (!installUrl && !registryId && !registryUrl && !installedAt && !updatedAt && !installedHash && !audit && !installedBy)
606
504
  return void 0;
607
505
  return {
608
506
  ...installUrl ? { installUrl } : {},
@@ -611,18 +509,19 @@ function extractProvenance(frontmatter) {
611
509
  ...installedAt ? { installedAt } : {},
612
510
  ...updatedAt ? { updatedAt } : {},
613
511
  ...installedHash ? { installedHash } : {},
614
- ...audit ? { audit } : {}
512
+ ...audit ? { audit } : {},
513
+ ...installedBy ? { installedBy } : {}
615
514
  };
616
515
  }
617
516
  function canonicalizePath(filePath) {
618
517
  try {
619
518
  return realpathSync.native(filePath);
620
519
  } catch {
621
- return path3.resolve(filePath);
520
+ return path2.resolve(filePath);
622
521
  }
623
522
  }
624
523
  function pathIsInside(candidate, anchor) {
625
- return candidate === anchor || candidate.startsWith(anchor + path3.sep);
524
+ return candidate === anchor || candidate.startsWith(anchor + path2.sep);
626
525
  }
627
526
  function containmentAnchor(root) {
628
527
  if (root.containment === void 0) return null;
@@ -706,7 +605,7 @@ function loadSkillFile(filePath, root) {
706
605
  }
707
606
  for (const message of validateNameFormat(name)) diagnostics.push({ type: "warning", message, path: filePath });
708
607
  if (!description) return { candidate: null, diagnostics };
709
- const baseDir = path3.dirname(filePath);
608
+ const baseDir = path2.dirname(filePath);
710
609
  const scope = root.scope;
711
610
  const sourceInfo = {
712
611
  path: filePath,
@@ -743,11 +642,11 @@ function isSkillMarkdownFile(entryName) {
743
642
  return entryName === "SKILL.md" || entryName.endsWith(".md");
744
643
  }
745
644
  function collectSkills(root, dir, diagnostics, includeRootFiles, anchor = containmentAnchor(root)) {
746
- if (!existsSync3(dir)) return [];
645
+ if (!existsSync2(dir)) return [];
747
646
  if (escapesContainment(dir, anchor, diagnostics)) return [];
748
647
  let entries;
749
648
  try {
750
- entries = readdirSync3(dir, { withFileTypes: true });
649
+ entries = readdirSync2(dir, { withFileTypes: true });
751
650
  } catch (err) {
752
651
  const reason = err instanceof Error ? err.message : String(err);
753
652
  diagnostics.push({ type: "warning", message: `skill root could not be read: ${reason}`, path: dir });
@@ -755,7 +654,7 @@ function collectSkills(root, dir, diagnostics, includeRootFiles, anchor = contai
755
654
  }
756
655
  const skillEntry = entries.find((entry) => entry.name === "SKILL.md" && entry.isFile());
757
656
  if (skillEntry) {
758
- const skillPath = path3.join(dir, skillEntry.name);
657
+ const skillPath = path2.join(dir, skillEntry.name);
759
658
  if (escapesContainment(skillPath, anchor, diagnostics)) return [];
760
659
  const loaded = loadSkillFile(skillPath, root);
761
660
  diagnostics.push(...loaded.diagnostics);
@@ -764,8 +663,8 @@ function collectSkills(root, dir, diagnostics, includeRootFiles, anchor = contai
764
663
  const candidates = [];
765
664
  for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
766
665
  if (entry.name.startsWith(".") || entry.name === "node_modules") continue;
767
- const fullPath = path3.join(dir, entry.name);
768
- if (entry.isDirectory() || entry.isSymbolicLink() && existsSync3(path3.join(fullPath, "SKILL.md"))) {
666
+ const fullPath = path2.join(dir, entry.name);
667
+ if (entry.isDirectory() || entry.isSymbolicLink() && existsSync2(path2.join(fullPath, "SKILL.md"))) {
769
668
  candidates.push(...collectSkills(root, fullPath, diagnostics, false, anchor));
770
669
  continue;
771
670
  }
@@ -793,14 +692,14 @@ function explicitSkillRoot(filePath) {
793
692
  };
794
693
  }
795
694
  function loadExplicitSkillPath(inputPath, diagnostics) {
796
- const resolved = path3.resolve(inputPath);
695
+ const resolved = path2.resolve(inputPath);
797
696
  const root = explicitSkillRoot(resolved);
798
- if (!existsSync3(resolved)) {
697
+ if (!existsSync2(resolved)) {
799
698
  diagnostics.push({ type: "warning", message: `explicit skill path does not exist: ${resolved}`, path: resolved });
800
699
  return [];
801
700
  }
802
- const skillFile = path3.basename(resolved) === "SKILL.md" || resolved.endsWith(".md") ? resolved : path3.join(resolved, "SKILL.md");
803
- if (!existsSync3(skillFile)) {
701
+ const skillFile = path2.basename(resolved) === "SKILL.md" || resolved.endsWith(".md") ? resolved : path2.join(resolved, "SKILL.md");
702
+ if (!existsSync2(skillFile)) {
804
703
  const packages = collectSkills(root, resolved, diagnostics, false);
805
704
  if (packages.length > 0) return packages;
806
705
  diagnostics.push({
@@ -814,6 +713,13 @@ function loadExplicitSkillPath(inputPath, diagnostics) {
814
713
  diagnostics.push(...loaded.diagnostics);
815
714
  return loaded.candidate ? [loaded.candidate] : [];
816
715
  }
716
+ function compareSkillCandidates(a, b) {
717
+ const precedence = a.precedence - b.precedence;
718
+ if (precedence !== 0) return precedence;
719
+ const rank = interopSourceRank(b.source) - interopSourceRank(a.source);
720
+ if (rank !== 0) return rank;
721
+ return a.filePath.localeCompare(b.filePath);
722
+ }
817
723
  function dedupeCanonicalSkillPaths(candidates, diagnostics) {
818
724
  const byPath = /* @__PURE__ */ new Map();
819
725
  for (const candidate of candidates) {
@@ -828,18 +734,14 @@ function dedupeCanonicalSkillPaths(candidates, diagnostics) {
828
734
  if (only) winners.push(only);
829
735
  continue;
830
736
  }
831
- const sorted = [...entries].sort((a, b) => {
832
- const delta = a.skill.precedence - b.skill.precedence;
833
- if (delta !== 0) return delta;
834
- return a.skill.filePath.localeCompare(b.skill.filePath);
835
- });
737
+ const sorted = [...entries].sort((a, b) => compareSkillCandidates(a.skill, b.skill));
836
738
  const winner = sorted[sorted.length - 1];
837
739
  if (!winner) continue;
838
740
  winners.push(winner);
839
741
  for (const loser of sorted.slice(0, -1)) {
840
742
  diagnostics.push({
841
743
  type: "warning",
842
- message: `${loser.skill.name} at ${loser.skill.filePath} resolves to the same canonical skill file as ${winner.skill.filePath}; using the higher-precedence entry`,
744
+ message: `${loser.skill.name} at ${loser.skill.filePath} resolves to the same canonical skill file as ${winner.skill.filePath}, which is the entry in use`,
843
745
  path: loser.skill.filePath
844
746
  });
845
747
  }
@@ -858,11 +760,7 @@ function resolveSkillCollisions(candidates) {
858
760
  const winners = [];
859
761
  const diagnostics = [];
860
762
  for (const [name, entries] of byName.entries()) {
861
- const sorted = [...entries].sort((a, b) => {
862
- const delta = a.skill.precedence - b.skill.precedence;
863
- if (delta !== 0) return delta;
864
- return a.skill.filePath.localeCompare(b.skill.filePath);
865
- });
763
+ const sorted = [...entries].sort((a, b) => compareSkillCandidates(a.skill, b.skill));
866
764
  const winner = sorted[sorted.length - 1];
867
765
  if (!winner) continue;
868
766
  winners.push(winner.skill);
@@ -922,9 +820,8 @@ function modelVisibleSkills(skills) {
922
820
  }
923
821
  function parseSkillCommand(input) {
924
822
  const trimmed = input.trim();
925
- const prefix = trimmed.startsWith("/skill:") ? "/skill:" : trimmed.startsWith("/skills:") ? "/skills:" : trimmed.startsWith("/skill ") ? "/skill " : null;
926
- if (!prefix) return null;
927
- const rest = trimmed.slice(prefix.length).trim();
823
+ if (!trimmed.startsWith("/skill ")) return null;
824
+ const rest = trimmed.slice("/skill ".length).trim();
928
825
  const separator = rest.search(/\s/);
929
826
  const name = separator === -1 ? rest : rest.slice(0, separator);
930
827
  if (name.length === 0) return null;
@@ -1006,11 +903,11 @@ function isSkillName(value) {
1006
903
  return value.length > 0 && value.length <= 64 && SKILL_NAME_PATTERN.test(value);
1007
904
  }
1008
905
  function repoRelativePath(filePath) {
1009
- if (path4.isAbsolute(filePath) || filePath.includes("\0")) return null;
906
+ if (path3.isAbsolute(filePath) || filePath.includes("\0")) return null;
1010
907
  const segments = filePath.split("/");
1011
908
  if (segments.some((segment) => segment === "..")) return null;
1012
- const normalized = path4.posix.normalize(filePath);
1013
- if (normalized.startsWith("..") || path4.posix.isAbsolute(normalized)) return null;
909
+ const normalized = path3.posix.normalize(filePath);
910
+ if (normalized.startsWith("..") || path3.posix.isAbsolute(normalized)) return null;
1014
911
  return normalized;
1015
912
  }
1016
913
  function parseSkillSourceSpec(source) {
@@ -1041,8 +938,11 @@ function parseSkillSourceSpec(source) {
1041
938
  };
1042
939
  }
1043
940
  if (trimmed.startsWith("http://") || trimmed.startsWith("https://")) return null;
1044
- const expanded = trimmed.startsWith("~/") ? path4.join(homedir2(), trimmed.slice(2)) : trimmed;
1045
- return { kind: "local", path: path4.resolve(expanded), original: trimmed };
941
+ const expanded = trimmed.startsWith("~/") ? path3.join(homedir2(), trimmed.slice(2)) : trimmed;
942
+ return { kind: "local", path: path3.resolve(expanded), original: trimmed };
943
+ }
944
+ function installingAsWorker() {
945
+ return process.env.CLIO_CODER_WORKER_RUN === "1";
1046
946
  }
1047
947
  function yamlQuote(value) {
1048
948
  return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
@@ -1057,7 +957,8 @@ function injectProvenanceFrontmatter(rawText, fields) {
1057
957
  ...fields.updatedAt ? [`updated-at: ${yamlQuote(fields.updatedAt)}`] : [],
1058
958
  `installed-hash: ${yamlQuote(fields.installedHash)}`,
1059
959
  // Audit is a human decision; installs always land unreviewed.
1060
- "audit: unknown"
960
+ "audit: unknown",
961
+ ...fields.installedBy ? [`installed-by: ${yamlQuote(fields.installedBy)}`] : []
1061
962
  ];
1062
963
  const clioIndex = kept.findIndex((line) => /^clio:/.test(line));
1063
964
  if (clioIndex >= 0 && !/^clio:\s*$/.test(kept[clioIndex])) {
@@ -1076,13 +977,13 @@ function injectProvenanceFrontmatter(rawText, fields) {
1076
977
  return `${region.head}${[...kept.slice(0, blockEnd), ...nested, ...kept.slice(blockEnd)].join("\n")}${region.tail}`;
1077
978
  }
1078
979
  function resolveSkillDir(target) {
1079
- if (!existsSync4(target)) throw new Error(`skill source path does not exist: ${target}`);
1080
- const stat = statSync2(target);
980
+ if (!existsSync3(target)) throw new Error(`skill source path does not exist: ${target}`);
981
+ const stat = statSync(target);
1081
982
  if (stat.isFile()) {
1082
983
  if (!target.endsWith(".md")) throw new Error(`skill source must be a SKILL.md file or directory: ${target}`);
1083
- return path4.dirname(target);
984
+ return path3.dirname(target);
1084
985
  }
1085
- if (!existsSync4(path4.join(target, "SKILL.md"))) {
986
+ if (!existsSync3(path3.join(target, "SKILL.md"))) {
1086
987
  throw new Error(`skill source directory has no SKILL.md: ${target}`);
1087
988
  }
1088
989
  return target;
@@ -1092,15 +993,15 @@ function fetchSource(spec) {
1092
993
  return { skillDir: resolveSkillDir(spec.path), cleanup: () => {
1093
994
  } };
1094
995
  }
1095
- const tmp = mkdtempSync(path4.join(tmpdir(), "clio-skill-"));
996
+ const tmp = mkdtempSync(path3.join(tmpdir(), "clio-skill-"));
1096
997
  const cleanup = () => rmSync(tmp, { recursive: true, force: true });
1097
998
  try {
1098
999
  execFileSync("git", ["clone", "--depth", "1", "--branch", spec.branch, spec.cloneUrl, tmp], {
1099
1000
  stdio: "pipe",
1100
1001
  timeout: CLONE_TIMEOUT_MS
1101
1002
  });
1102
- const target = path4.join(tmp, spec.filePath);
1103
- if (!existsSync4(target)) {
1003
+ const target = path3.join(tmp, spec.filePath);
1004
+ if (!existsSync3(target)) {
1104
1005
  throw new Error(
1105
1006
  `${spec.cloneUrl} (branch ${spec.branch}) has no ${spec.filePath}; the source-url may name a path that branch does not carry`
1106
1007
  );
@@ -1112,11 +1013,11 @@ function fetchSource(spec) {
1112
1013
  }
1113
1014
  }
1114
1015
  function copySkillDir(from, to) {
1115
- mkdirSync(path4.dirname(to), { recursive: true });
1016
+ mkdirSync(path3.dirname(to), { recursive: true });
1116
1017
  cpSync(from, to, {
1117
1018
  recursive: true,
1118
1019
  filter: (source) => {
1119
- const base = path4.basename(source);
1020
+ const base = path3.basename(source);
1120
1021
  return base !== ".git" && base !== "node_modules";
1121
1022
  }
1122
1023
  });
@@ -1133,7 +1034,7 @@ function swapSkillDir(stage, dest) {
1133
1034
  rmSync(staging, { recursive: true, force: true });
1134
1035
  throw err;
1135
1036
  }
1136
- const hadPrevious = existsSync4(dest);
1037
+ const hadPrevious = existsSync3(dest);
1137
1038
  if (hadPrevious) renameSync(dest, backup);
1138
1039
  try {
1139
1040
  renameSync(staging, dest);
@@ -1143,10 +1044,10 @@ function swapSkillDir(stage, dest) {
1143
1044
  throw err;
1144
1045
  }
1145
1046
  if (hadPrevious) rmSync(backup, { recursive: true, force: true });
1146
- fsyncDirectory(path4.dirname(dest));
1047
+ fsyncDirectory(path3.dirname(dest));
1147
1048
  }
1148
1049
  function destinationRoot(scope, cwd, configDir) {
1149
- return scope === "user" ? path4.join(configDir ?? clioConfigDir(), "skills") : path4.join(cwd, ".clio-coder", "skills");
1050
+ return scope === "user" ? path3.join(configDir ?? clioConfigDir(), "skills") : path3.join(cwd, ".clio-coder", "skills");
1150
1051
  }
1151
1052
  function validateSourceSkill(skillDir) {
1152
1053
  const list = loadSkills({ disableDiscovery: true, explicitSkillPaths: [skillDir] });
@@ -1172,27 +1073,28 @@ function installSkillFromSource(input) {
1172
1073
  if (!isSkillName(name)) {
1173
1074
  throw new Error(`invalid skill name "${name}": use lowercase letters, numbers, and single hyphens`);
1174
1075
  }
1175
- const dest = path4.join(destinationRoot(scope, cwd, input.configDir), name);
1176
- if (existsSync4(dest) && input.force !== true) {
1076
+ const dest = path3.join(destinationRoot(scope, cwd, input.configDir), name);
1077
+ if (existsSync3(dest) && input.force !== true) {
1177
1078
  throw new Error(`skill already installed at ${dest} (use --force to overwrite)`);
1178
1079
  }
1179
1080
  const sourceRaw = readFileSync3(skill.filePath, "utf8");
1180
1081
  const installedHash = normalizedSkillHash(sourceRaw);
1181
- const destFile = path4.join(dest, "SKILL.md");
1082
+ const destFile = path3.join(dest, "SKILL.md");
1182
1083
  swapSkillDir((staging) => {
1183
1084
  copySkillDir(fetched.skillDir, staging);
1184
1085
  writeFileSync(
1185
- path4.join(staging, "SKILL.md"),
1086
+ path3.join(staging, "SKILL.md"),
1186
1087
  injectProvenanceFrontmatter(sourceRaw, {
1187
1088
  sourceUrl: spec.original,
1188
1089
  installedAt: (/* @__PURE__ */ new Date()).toISOString(),
1189
- installedHash
1090
+ installedHash,
1091
+ ...installingAsWorker() ? { installedBy: "worker" } : {}
1190
1092
  }),
1191
1093
  "utf8"
1192
1094
  );
1193
1095
  }, dest);
1194
1096
  const after = loadSkills({ cwd, ...scope === "user" && input.configDir ? { configDir: input.configDir } : {} });
1195
- const installWarnings = after.diagnostics.filter((diag) => diag.path && path4.resolve(diag.path).startsWith(dest)).map((diag) => diag.message);
1097
+ const installWarnings = after.diagnostics.filter((diag) => diag.path && path3.resolve(diag.path).startsWith(dest)).map((diag) => diag.message);
1196
1098
  return {
1197
1099
  name,
1198
1100
  scope,
@@ -1217,7 +1119,7 @@ function updateOne(skill, force) {
1217
1119
  const fetched = fetchSource(spec);
1218
1120
  try {
1219
1121
  validateSourceSkill(fetched.skillDir);
1220
- const remoteFile = path4.join(fetched.skillDir, "SKILL.md");
1122
+ const remoteFile = path3.join(fetched.skillDir, "SKILL.md");
1221
1123
  const remoteRaw = readFileSync3(remoteFile, "utf8");
1222
1124
  const remoteHash = normalizedSkillHash(remoteRaw);
1223
1125
  const localRaw = readFileSync3(skill.filePath, "utf8");
@@ -1231,12 +1133,15 @@ function updateOne(skill, force) {
1231
1133
  swapSkillDir((staging) => {
1232
1134
  copySkillDir(fetched.skillDir, staging);
1233
1135
  writeFileSync(
1234
- path4.join(staging, "SKILL.md"),
1136
+ path3.join(staging, "SKILL.md"),
1235
1137
  injectProvenanceFrontmatter(remoteRaw, {
1236
1138
  sourceUrl,
1237
1139
  installedAt: skill.provenance?.installedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
1238
1140
  updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
1239
- installedHash: remoteHash
1141
+ installedHash: remoteHash,
1142
+ // Who installed a skill is set once; an update, worker- or
1143
+ // operator-run, does not change who put it there originally.
1144
+ ...skill.provenance?.installedBy ? { installedBy: skill.provenance.installedBy } : {}
1240
1145
  }),
1241
1146
  "utf8"
1242
1147
  );
@@ -1262,20 +1167,16 @@ function updateSkills(input = {}) {
1262
1167
  }
1263
1168
 
1264
1169
  export {
1265
- defaultScopedResourceRoots,
1266
- sourceInfoForRoot,
1267
- readRootEntries,
1268
- splitYamlFrontmatter,
1269
- stringField,
1270
1170
  updateSkills,
1271
1171
  MARKETPLACE_UNCONFIGURED,
1272
1172
  discoverMarketplaceSkills,
1273
1173
  getMarketplaceSkills,
1274
1174
  installSkill,
1175
+ projectCompatTrusted,
1275
1176
  loadSkills,
1276
1177
  modelVisibleSkills,
1277
1178
  parseSkillCommand,
1278
1179
  expandSkillInvocationInput,
1279
1180
  parsePendingSkillRequests
1280
1181
  };
1281
- //# sourceMappingURL=chunk-26BZQOAD.js.map
1182
+ //# sourceMappingURL=chunk-4BPJXDWC.js.map