@iowarp/clio-coder 0.3.1 → 0.3.3

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 (601) hide show
  1. package/CHANGELOG.md +233 -373
  2. package/CONTRIBUTING.md +23 -23
  3. package/README.md +284 -613
  4. package/dist/{acp-FPR54DGL.js → acp-P2AQILE2.js} +43 -53
  5. package/dist/{agents-OGPIHPJH.js → agents-72W3BI7I.js} +43 -26
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-IC3K6NIZ.js → auth-5TWEIYDN.js} +20 -12
  8. package/dist/chunk-2DJ2KNFG.js +2095 -0
  9. package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
  10. package/dist/chunk-2SFS6XQE.js +122 -0
  11. package/dist/{chunk-PV4JUBVJ.js → chunk-2TLUCQVG.js} +40 -21
  12. package/dist/chunk-2VTFPG5O.js +48 -0
  13. package/dist/chunk-4BJ5BYCE.js +61 -0
  14. package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
  15. package/dist/chunk-4VP4KH3K.js +962 -0
  16. package/dist/chunk-4XUGQOHA.js +797 -0
  17. package/dist/chunk-4ZG3XFUR.js +77 -0
  18. package/dist/chunk-5B2AEOW5.js +5407 -0
  19. package/dist/{chunk-K2ITRMHZ.js → chunk-5TSRNF4G.js} +6 -138
  20. package/dist/{chunk-4QKXUHSR.js → chunk-5UFT4SUX.js} +70 -20
  21. package/dist/{chunk-OLBBMFRD.js → chunk-5UUP6MWO.js} +24 -62
  22. package/dist/chunk-65DEGPJ6.js +52 -0
  23. package/dist/chunk-6EJMN2Y3.js +17 -0
  24. package/dist/chunk-6N5PTWMY.js +136 -0
  25. package/dist/chunk-6SGHMWE3.js +277 -0
  26. package/dist/chunk-6XLNIQDB.js +27 -0
  27. package/dist/chunk-7CR24IG7.js +242 -0
  28. package/dist/chunk-7MNJORFF.js +22 -0
  29. package/dist/{chunk-KY56HMHH.js → chunk-A3CYT5EX.js} +125 -31
  30. package/dist/chunk-AGYYIBLL.js +1069 -0
  31. package/dist/{chunk-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
  32. package/dist/{chunk-673JJUWJ.js → chunk-BMEMKKIT.js} +2 -2
  33. package/dist/chunk-CBCAPZAA.js +229 -0
  34. package/dist/chunk-CMZWFGD2.js +352 -0
  35. package/dist/chunk-COU2UHX6.js +400 -0
  36. package/dist/chunk-DSELYM6W.js +1077 -0
  37. package/dist/chunk-DUYJ5IO6.js +644 -0
  38. package/dist/chunk-ECH6PKUQ.js +39 -0
  39. package/dist/chunk-ED4KHGC3.js +143 -0
  40. package/dist/chunk-EKMEHE4H.js +340 -0
  41. package/dist/chunk-FCSXB6T2.js +338 -0
  42. package/dist/chunk-FJ3H4MN5.js +48 -0
  43. package/dist/{chunk-RPTR2H26.js → chunk-FNTMWMX5.js} +21 -15
  44. package/dist/chunk-FQ4SKYE4.js +29 -0
  45. package/dist/chunk-G4BMMOKF.js +182 -0
  46. package/dist/{chunk-ZPY3JZ5E.js → chunk-GGXXDWE4.js} +183 -1233
  47. package/dist/chunk-HC4CLZ2Y.js +68 -0
  48. package/dist/{chunk-LU4TK2PR.js → chunk-HFSBBKSQ.js} +5 -56
  49. package/dist/{chunk-PIUMUEMV.js → chunk-HKIYEGME.js} +10 -6
  50. package/dist/chunk-I4HZDVNP.js +73 -0
  51. package/dist/chunk-IKCO5N3L.js +162 -0
  52. package/dist/chunk-IR4CFBFN.js +56 -0
  53. package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
  54. package/dist/chunk-J7CWMCQD.js +255 -0
  55. package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
  56. package/dist/chunk-KZWTDYJF.js +217 -0
  57. package/dist/chunk-LBMZMYH2.js +285 -0
  58. package/dist/{chunk-G34LV2PF.js → chunk-LM5TQCJZ.js} +84 -170
  59. package/dist/chunk-LW6DSM3M.js +5135 -0
  60. package/dist/chunk-LWLEKMDQ.js +3482 -0
  61. package/dist/{chunk-H6F6BYOH.js → chunk-LZSJBIVT.js} +7003 -7434
  62. package/dist/{chunk-HQQID6OA.js → chunk-M6SHUN7Q.js} +5 -5
  63. package/dist/{chunk-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
  64. package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
  65. package/dist/chunk-OAO4GE4M.js +619 -0
  66. package/dist/{chunk-Q3RUPKEJ.js → chunk-OC7FIQPC.js} +58 -189
  67. package/dist/chunk-OKGUZO2U.js +34 -0
  68. package/dist/{chunk-GAEBEQVI.js → chunk-OOJYHWRB.js} +32 -346
  69. package/dist/{chunk-Q5WJOSJ7.js → chunk-OQ33BKR3.js} +2 -1
  70. package/dist/chunk-OQE5J4C6.js +73 -0
  71. package/dist/{chunk-KKNLWXI6.js → chunk-ORBHGJC5.js} +8 -8
  72. package/dist/{chunk-MAR7Y6HW.js → chunk-PAJK6MAQ.js} +23 -16
  73. package/dist/{chunk-M5T5VO65.js → chunk-PIWWS5BL.js} +837 -635
  74. package/dist/chunk-POHLU5DW.js +1186 -0
  75. package/dist/chunk-QKMUKYO7.js +4961 -0
  76. package/dist/chunk-SRDMMSEP.js +16405 -0
  77. package/dist/chunk-SST6Z5JA.js +80 -0
  78. package/dist/chunk-STBPMHSX.js +2456 -0
  79. package/dist/chunk-T6YILFSB.js +80 -0
  80. package/dist/chunk-TZK7PACC.js +174 -0
  81. package/dist/chunk-TZTZS7QK.js +227 -0
  82. package/dist/{chunk-ASND7OZK.js → chunk-UFIIWP2H.js} +13 -13
  83. package/dist/chunk-UOV2BYIW.js +107 -0
  84. package/dist/{chunk-PFEFKVGL.js → chunk-V6RTAOC2.js} +13 -11
  85. package/dist/chunk-VAKQQHWR.js +434 -0
  86. package/dist/chunk-VG7TBQIY.js +128 -0
  87. package/dist/chunk-VJWL6YS5.js +244 -0
  88. package/dist/{chunk-EYOKLTMF.js → chunk-VPAYEGVX.js} +17 -3
  89. package/dist/chunk-WEH5XRJQ.js +32 -0
  90. package/dist/chunk-X4RCMKVQ.js +641 -0
  91. package/dist/{chunk-TEKV33Q5.js → chunk-X6IAEBZR.js} +65 -33
  92. package/dist/chunk-XBXAASKX.js +18 -0
  93. package/dist/chunk-XN3L4EYL.js +46 -0
  94. package/dist/{chunk-RDLVBZEO.js → chunk-YCWGATWI.js} +6 -4
  95. package/dist/chunk-YHZX5GEU.js +193 -0
  96. package/dist/chunk-YXLYO42X.js +91 -0
  97. package/dist/{chunk-NMOX6HFD.js → chunk-ZDOOVTXZ.js} +29 -77
  98. package/dist/chunk-ZI647VB5.js +37 -0
  99. package/dist/{chunk-C4PTHK7P.js → chunk-ZWLZP4ZT.js} +5 -5
  100. package/dist/chunk-ZWMF7253.js +1882 -0
  101. package/dist/cli/index.js +62 -54
  102. package/dist/clio-JOU4FXVA.js +25 -0
  103. package/dist/code-nav-7AX6FYE6.js +600 -0
  104. package/dist/codewiki/build-worker.js +66 -0
  105. package/dist/compile-cache-CVJMMODC.js +18 -0
  106. package/dist/{components-DMAOEKFB.js → components-KELWS457.js} +11 -6
  107. package/dist/{config-IRUQ7SE4.js → config-XCDVKR23.js} +92 -55
  108. package/dist/configure-4GAP54ZW.js +42 -0
  109. package/dist/{context-5RADCKTR.js → context-4UOGGLQ5.js} +71 -35
  110. package/dist/context-5VKGUVJJ.js +866 -0
  111. package/dist/{context-3KWFLHJG.js → context-77FM5DV5.js} +15 -13
  112. package/dist/{context-clear-7TSNPAAI.js → context-clear-XXJRLCJJ.js} +54 -28
  113. package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
  114. package/dist/dispatch-runner-QPRDDBDX.js +1997 -0
  115. package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
  116. package/dist/{doctor-UC5NAJYQ.js → doctor-HR46URBJ.js} +27 -17
  117. package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
  118. package/dist/{evidence-YEGUW4L3.js → evidence-6HG2PY2B.js} +46 -26
  119. package/dist/{evolve-TXARCTPG.js → evolve-K7YU3NCY.js} +45 -25
  120. package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
  121. package/dist/{fleet-6G3DHNYE.js → fleet-VY3HHKN6.js} +163 -54
  122. package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
  123. package/dist/{init-KZ5QTF6M.js → init-JYGXI3FK.js} +69 -32
  124. package/dist/{memory-73ESV5YC.js → memory-WFZMGYHX.js} +48 -27
  125. package/dist/{models-A4PVNWJK.js → models-I5QWSEOM.js} +39 -25
  126. package/dist/monitor-GE4ID3IA.js +661 -0
  127. package/dist/{chunk-FCIH3BIZ.js → orchestrator-EM5MC3HM.js} +15979 -12407
  128. package/dist/{paths-C4H6IV77.js → paths-UXLN5YYZ.js} +10 -5
  129. package/dist/{preload-6WVMHX3A.js → preload-P6DGH2PZ.js} +2 -2
  130. package/dist/{reset-BGW6OGMV.js → reset-L2FQEE3E.js} +16 -10
  131. package/dist/{run-YTPEYQOH.js → run-ZU3QMZPZ.js} +101 -61
  132. package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
  133. package/dist/{skills-2V6RA3OQ.js → skills-X5VXCRNQ.js} +34 -14
  134. package/dist/{skills-eval-S2TVJO4F.js → skills-eval-WKIHWTHR.js} +70 -34
  135. package/dist/steer-GGWFUJUD.js +77 -0
  136. package/dist/{targets-TYXLPB23.js → targets-SNCPI2NR.js} +43 -27
  137. package/dist/terminal-lease-BNAHVHBS.js +395 -0
  138. package/dist/{trace-GGOJ6Q6Z.js → trace-PNCASAXC.js} +41 -16
  139. package/dist/{chunk-N6F52NLF.js → tree-sitter-HGKH6LG4.js} +28 -2306
  140. package/dist/{uninstall-LLLT4F4W.js → uninstall-FZCQCDKC.js} +10 -5
  141. package/dist/{upgrade-33G2LMM5.js → upgrade-JQHHPQ4K.js} +45 -25
  142. package/dist/{usage-ZAFSXKKG.js → usage-OR4O5SMZ.js} +62 -31
  143. package/dist/verify-375KUB3Y.js +716 -0
  144. package/dist/web-fetch-2YHJ3KTG.js +638 -0
  145. package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-UEXP2ARI.js} +74 -34
  146. package/dist/worker/entry.js +221 -36
  147. package/dist/workspace-G4ZWUIPR.js +22 -0
  148. package/docs/README.md +22 -17
  149. package/docs/acp.md +168 -16
  150. package/docs/alcf-provider.md +1 -1
  151. package/docs/architecture.md +136 -7
  152. package/docs/artifact-versions.md +1 -1
  153. package/docs/built-in-agents.md +1 -1
  154. package/docs/capacity-and-scheduling.md +1 -1
  155. package/docs/commands-and-modes.md +114 -71
  156. package/docs/config-knobs-audit.md +1 -3
  157. package/docs/configuration-and-targets.md +174 -46
  158. package/docs/context-engine.md +29 -6
  159. package/docs/development-pipeline.md +26 -1
  160. package/docs/dispatch-architecture-rationale.md +1 -1
  161. package/docs/documentation-coverage.md +2 -2
  162. package/docs/documentation-guide.md +1 -1
  163. package/docs/environment-variables.md +13 -5
  164. package/docs/eval-runner.md +1 -1
  165. package/docs/evals-internal.md +1 -1
  166. package/docs/evidence-and-memory.md +6 -2
  167. package/docs/evolution.md +2 -2
  168. package/docs/exit-codes-and-output.md +15 -9
  169. package/docs/extensions-and-sharing.md +9 -9
  170. package/docs/fleet-dispatch.md +7 -5
  171. package/docs/git-commit-provenance.md +120 -0
  172. package/docs/glossary.md +1 -1
  173. package/docs/installation-and-lifecycle.md +34 -27
  174. package/docs/middleware-and-components.md +1 -1
  175. package/docs/model-catalog.md +45 -14
  176. package/docs/observability.md +8 -5
  177. package/docs/performance-methodology.md +491 -0
  178. package/docs/pi-boundary.md +72 -0
  179. package/docs/proactive-memory.md +3 -3
  180. package/docs/prompt-envelope-and-tools.md +24 -3
  181. package/docs/provider-adapter-cookbook.md +57 -4
  182. package/docs/release-cut-checklist.md +129 -115
  183. package/docs/safety-model.md +9 -5
  184. package/docs/scientific-validation.md +3 -3
  185. package/docs/session-lifecycle.md +55 -12
  186. package/docs/skills-marketplace.md +12 -8
  187. package/docs/time-conventions.md +1 -1
  188. package/docs/tool-usage.md +3 -3
  189. package/docs/trace-store.md +1 -1
  190. package/docs/troubleshooting.md +10 -7
  191. package/docs/tui-design.md +47 -10
  192. package/docs/worker-dispatch-mechanics.md +1 -1
  193. package/package.json +19 -22
  194. package/skills/coding/ast-grep/SKILL.md +136 -0
  195. package/skills/coding/ast-grep/evals.md +56 -0
  196. package/skills/coding/ast-grep/references/rule_reference.md +297 -0
  197. package/skills/coding/coding-standards/SKILL.md +113 -0
  198. package/skills/coding/coding-standards/evals.md +34 -0
  199. package/skills/coding/prototype/SKILL.md +86 -0
  200. package/skills/coding/prototype/evals.md +42 -0
  201. package/skills/coding/prototype/references/LOGIC.md +67 -0
  202. package/skills/coding/prototype/references/UI.md +112 -0
  203. package/skills/coding/tdd/SKILL.md +101 -0
  204. package/skills/coding/tdd/evals.md +41 -0
  205. package/skills/coding/tdd/references/mocking.md +59 -0
  206. package/skills/coding/tdd/references/tests.md +77 -0
  207. package/skills/context/context-handoff/SKILL.md +126 -0
  208. package/skills/context/context-handoff/evals.md +57 -0
  209. package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
  210. package/skills/context/context-prime/SKILL.md +95 -0
  211. package/skills/context/context-prime/evals.md +54 -0
  212. package/skills/meta/clio-dev/SKILL.md +91 -0
  213. package/skills/meta/clio-dev/evals.md +45 -0
  214. package/skills/meta/clio-test/SKILL.md +130 -0
  215. package/skills/meta/clio-test/evals.md +43 -0
  216. package/skills/meta/clio-test/references/harness.md +97 -0
  217. package/skills/meta/clio-test/references/test-map.md +59 -0
  218. package/skills/meta/credentials/SKILL.md +125 -0
  219. package/skills/meta/credentials/evals.md +104 -0
  220. package/skills/meta/find-skills/SKILL.md +72 -0
  221. package/skills/meta/find-skills/evals.md +47 -0
  222. package/skills/meta/herdr/SKILL.md +127 -0
  223. package/skills/meta/herdr/evals.md +38 -0
  224. package/skills/meta/skill-craft/SKILL.md +102 -0
  225. package/skills/meta/skill-craft/evals.md +41 -0
  226. package/skills/planning/architecture/SKILL.md +129 -0
  227. package/skills/planning/architecture/evals.md +36 -0
  228. package/skills/planning/backlog/SKILL.md +90 -0
  229. package/skills/planning/backlog/evals.md +43 -0
  230. package/skills/planning/prd/SKILL.md +82 -0
  231. package/skills/planning/prd/evals.md +49 -0
  232. package/skills/planning/product-intent/SKILL.md +112 -0
  233. package/skills/planning/product-intent/evals.md +36 -0
  234. package/skills/planning/tech-spec/SKILL.md +115 -0
  235. package/skills/planning/tech-spec/evals.md +47 -0
  236. package/skills/registry.yaml +136 -0
  237. package/skills/research/arxiv-literature/SKILL.md +104 -0
  238. package/skills/research/arxiv-literature/evals.md +58 -0
  239. package/skills/research/experiment-protocol/SKILL.md +122 -0
  240. package/skills/research/experiment-protocol/evals.md +91 -0
  241. package/skills/research/scientific-debugging/SKILL.md +119 -0
  242. package/skills/research/scientific-debugging/evals.md +138 -0
  243. package/skills/research/scientific-modernization/SKILL.md +138 -0
  244. package/skills/research/scientific-modernization/evals.md +84 -0
  245. package/skills/workflow/design-council/SKILL.md +139 -0
  246. package/skills/workflow/design-council/evals.md +97 -0
  247. package/skills/workflow/grill-me/SKILL.md +186 -0
  248. package/skills/workflow/grill-me/evals.md +78 -0
  249. package/skills/workflow/workflow-distiller/SKILL.md +136 -0
  250. package/skills/workflow/workflow-distiller/evals.md +107 -0
  251. package/src/cli/acp.ts +31 -4
  252. package/src/cli/clio.ts +68 -6
  253. package/src/cli/config-inspect.ts +28 -22
  254. package/src/cli/configure.ts +47 -9
  255. package/src/cli/context-clear.ts +2 -2
  256. package/src/cli/context-index.ts +21 -23
  257. package/src/cli/context.ts +13 -8
  258. package/src/cli/default-target.ts +9 -17
  259. package/src/cli/docs.ts +11 -5
  260. package/src/cli/evidence.ts +4 -1
  261. package/src/cli/extensions.ts +10 -1
  262. package/src/cli/fleet.ts +47 -6
  263. package/src/cli/index.ts +55 -26
  264. package/src/cli/memory.ts +3 -1
  265. package/src/cli/models.ts +1 -1
  266. package/src/cli/modes/json-stream.ts +37 -1
  267. package/src/cli/modes/print.ts +24 -9
  268. package/src/cli/run.ts +2 -2
  269. package/src/cli/skills-eval.ts +23 -8
  270. package/src/cli/skills.ts +19 -4
  271. package/src/cli/targets.ts +4 -0
  272. package/src/cli/text-layout.ts +15 -5
  273. package/src/cli/trace.ts +62 -14
  274. package/src/cli/upgrade.ts +18 -2
  275. package/src/cli/usage.ts +10 -3
  276. package/src/cli/wiki-generate.ts +2 -1
  277. package/src/core/agent-environment.ts +7 -0
  278. package/src/core/bash-exec.ts +72 -1
  279. package/src/core/boot-trace.ts +9 -4
  280. package/src/core/bus-events.ts +20 -4
  281. package/src/core/commit-attribution.ts +157 -0
  282. package/src/core/compile-cache.ts +159 -0
  283. package/src/core/config.ts +131 -2
  284. package/src/core/defaults.ts +39 -5
  285. package/src/core/domain-loader.ts +12 -5
  286. package/src/core/git-commit-attribution.ts +387 -0
  287. package/src/core/incomplete-installation.ts +45 -0
  288. package/src/core/response-schema.ts +1 -1
  289. package/src/core/safe-exec.ts +13 -1
  290. package/src/core/settings-layers.ts +155 -21
  291. package/src/core/skill-activation.ts +1 -1
  292. package/src/core/startup-timer.ts +3 -3
  293. package/src/core/state-file-lock.ts +13 -1
  294. package/src/core/termination.ts +78 -5
  295. package/src/domains/config/classify.ts +15 -3
  296. package/src/domains/config/extension.ts +19 -13
  297. package/src/domains/config/index.ts +10 -0
  298. package/src/domains/config/keybindings.ts +45 -9
  299. package/src/domains/context/bootstrap-prompt.ts +1 -1
  300. package/src/domains/context/bootstrap.ts +111 -18
  301. package/src/domains/context/clear.ts +16 -11
  302. package/src/domains/context/clio-md.ts +111 -9
  303. package/src/domains/context/codewiki/artifact.ts +400 -0
  304. package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
  305. package/src/domains/context/codewiki/build-worker.ts +54 -0
  306. package/src/domains/context/codewiki/coordinator.ts +182 -0
  307. package/src/domains/context/codewiki/indexer.ts +59 -144
  308. package/src/domains/context/codewiki/paths.ts +67 -0
  309. package/src/domains/context/codewiki/schema.ts +80 -0
  310. package/src/domains/context/codewiki/tree-sitter.ts +1 -1
  311. package/src/domains/context/contract.ts +11 -5
  312. package/src/domains/context/extension.ts +94 -143
  313. package/src/domains/context/fingerprint.ts +3 -1
  314. package/src/domains/context/index.ts +12 -22
  315. package/src/domains/context/project-metadata.ts +19 -0
  316. package/src/domains/context/prompt-context.ts +9 -10
  317. package/src/domains/context/refresh.ts +29 -21
  318. package/src/domains/context/runtime.ts +17 -0
  319. package/src/domains/context/wiki/generate.ts +39 -34
  320. package/src/domains/context/wiki/plan.ts +1 -1
  321. package/src/domains/context/wiki/prompts.ts +21 -8
  322. package/src/domains/dispatch/code-step.ts +20 -1
  323. package/src/domains/dispatch/extension.ts +158 -21
  324. package/src/domains/dispatch/failure-classification.ts +6 -0
  325. package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
  326. package/src/domains/dispatch/orphan-recovery.ts +50 -8
  327. package/src/domains/dispatch/receipt-integrity.ts +5 -0
  328. package/src/domains/dispatch/state.ts +31 -6
  329. package/src/domains/dispatch/transport.ts +2 -1
  330. package/src/domains/dispatch/types.ts +14 -0
  331. package/src/domains/dispatch/worker-spawn.ts +21 -2
  332. package/src/domains/eval/metrics/context.ts +1 -1
  333. package/src/domains/eval/types.ts +0 -1
  334. package/src/domains/evidence/build.ts +41 -1
  335. package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
  336. package/src/domains/lifecycle/migrations/index.ts +24 -4
  337. package/src/domains/middleware/hooks-io.ts +12 -0
  338. package/src/domains/middleware/skills-reminder.ts +30 -15
  339. package/src/domains/prompts/compiler.ts +142 -84
  340. package/src/domains/prompts/contract.ts +18 -2
  341. package/src/domains/prompts/extension.ts +39 -7
  342. package/src/domains/prompts/fragment-loader.ts +0 -1
  343. package/src/domains/prompts/fragments/identity/clio.md +2 -4
  344. package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
  345. package/src/domains/prompts/fragments/identity/self-awareness.md +1 -45
  346. package/src/domains/prompts/fragments/operating/contract.md +4 -50
  347. package/src/domains/prompts/fragments/operating/delegation.md +42 -0
  348. package/src/domains/prompts/fragments/operating/skills.md +26 -0
  349. package/src/domains/prompts/fragments/operating/worker.md +16 -0
  350. package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
  351. package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
  352. package/src/domains/prompts/fragments/safety/read-only.md +4 -4
  353. package/src/domains/prompts/fragments/safety/suggest.md +2 -2
  354. package/src/domains/prompts/fragments/wiki/page.md +10 -0
  355. package/src/domains/prompts/fragments/wiki/plan.md +10 -0
  356. package/src/domains/prompts/preload.ts +3 -3
  357. package/src/domains/providers/auth/api-key.ts +1 -1
  358. package/src/domains/providers/auth/backend-file.ts +20 -10
  359. package/src/domains/providers/auth/backend-memory.ts +59 -4
  360. package/src/domains/providers/auth/boot-status.ts +65 -0
  361. package/src/domains/providers/auth/oauth.ts +2 -1
  362. package/src/domains/providers/auth/storage.ts +97 -38
  363. package/src/domains/providers/capabilities.ts +12 -4
  364. package/src/domains/providers/contract.ts +15 -4
  365. package/src/domains/providers/extension.ts +18 -6
  366. package/src/domains/providers/model-runtime-capabilities.ts +15 -4
  367. package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +118 -35
  368. package/src/domains/providers/plugins.ts +5 -3
  369. package/src/domains/providers/probe/fingerprint.ts +25 -5
  370. package/src/domains/providers/registry.ts +31 -10
  371. package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
  372. package/src/domains/providers/runtimes/builtins.ts +2 -2
  373. package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
  374. package/src/domains/providers/runtimes/common/local-synth.ts +6 -7
  375. package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
  376. package/src/domains/providers/support.ts +6 -3
  377. package/src/domains/providers/types/local-model-quirks.ts +7 -9
  378. package/src/domains/providers/types/runtime-descriptor.ts +12 -1
  379. package/src/domains/providers/types/target-descriptor.ts +22 -0
  380. package/src/domains/resources/contract.ts +0 -1
  381. package/src/domains/resources/extension.ts +1 -3
  382. package/src/domains/resources/loader.ts +3 -4
  383. package/src/domains/resources/prompts/loader.ts +16 -2
  384. package/src/domains/resources/prompts/substitute.ts +1 -65
  385. package/src/domains/resources/skills/content-hash.ts +2 -0
  386. package/src/domains/resources/skills/install.ts +17 -0
  387. package/src/domains/resources/skills/loader.ts +17 -10
  388. package/src/domains/resources/skills/marketplace.ts +55 -9
  389. package/src/domains/safety/action-classifier.ts +4 -2
  390. package/src/domains/safety/audit.ts +8 -2
  391. package/src/domains/safety/extension.ts +1 -1
  392. package/src/domains/session/compaction/branch-summary.ts +3 -2
  393. package/src/domains/session/compaction/cut-point.ts +2 -1
  394. package/src/domains/session/compaction/tokens.ts +2 -1
  395. package/src/domains/session/context-ledger.ts +14 -0
  396. package/src/domains/session/contract.ts +15 -0
  397. package/src/domains/session/decision-board.ts +190 -0
  398. package/src/domains/session/entries.ts +66 -3
  399. package/src/domains/session/extension.ts +93 -12
  400. package/src/domains/session/retry.ts +10 -18
  401. package/src/domains/session/session-artifacts.ts +107 -0
  402. package/src/domains/session/task-board.ts +207 -13
  403. package/src/domains/session/tree/active-path.ts +44 -5
  404. package/src/domains/session/tree/fork.ts +26 -27
  405. package/src/domains/session/tree/preview.ts +2 -2
  406. package/src/domains/session/workspace/git-probe.ts +17 -11
  407. package/src/domains/user-tasks/store.ts +297 -0
  408. package/src/engine/acp/errors.ts +96 -0
  409. package/src/engine/acp/server.ts +1728 -146
  410. package/src/engine/acp/transport.ts +135 -14
  411. package/src/engine/acp/types.ts +26 -0
  412. package/src/engine/agent.ts +3 -3
  413. package/src/engine/ai.ts +32 -27
  414. package/src/engine/alcf-oauth.ts +26 -19
  415. package/src/engine/api-registry.ts +223 -0
  416. package/src/engine/apis/index.ts +3 -7
  417. package/src/engine/apis/llamacpp-residency.ts +49 -9
  418. package/src/engine/apis/lmstudio-residency.ts +5 -21
  419. package/src/engine/apis/lmstudio.ts +243 -0
  420. package/src/engine/apis/ollama-native.ts +24 -3
  421. package/src/engine/apis/openai-completions.ts +170 -91
  422. package/src/engine/apis/residency.ts +139 -3
  423. package/src/engine/apis/types.ts +16 -0
  424. package/src/engine/env-api-keys.ts +98 -0
  425. package/src/engine/gemma-channel-filter.ts +223 -0
  426. package/src/engine/instrumented-tui.ts +192 -0
  427. package/src/engine/messages.ts +14 -0
  428. package/src/engine/models.ts +42 -0
  429. package/src/engine/oauth.ts +16 -12
  430. package/src/engine/prompt-templates.ts +1 -0
  431. package/src/engine/provider-payload.ts +16 -59
  432. package/src/engine/strip-tokenizer-sentinels.ts +1 -1
  433. package/src/engine/truncate.ts +9 -0
  434. package/src/engine/tui.ts +17 -9
  435. package/src/engine/types.ts +3 -6
  436. package/src/engine/worker-runtime-capabilities.ts +5 -0
  437. package/src/engine/worker-runtime.ts +1 -1
  438. package/src/engine/worker-tools.ts +9 -4
  439. package/src/entry/boot-options.ts +50 -0
  440. package/src/entry/orchestrator.ts +288 -150
  441. package/src/interactive/application-controller.ts +89 -2
  442. package/src/interactive/chat-loop.ts +266 -41
  443. package/src/interactive/chat-panel.ts +715 -278
  444. package/src/interactive/chat-renderer.ts +306 -85
  445. package/src/interactive/clio-editor.ts +3 -8
  446. package/src/interactive/command-fallbacks.ts +2 -2
  447. package/src/interactive/context-overlay.ts +27 -1
  448. package/src/interactive/editor-submit.ts +253 -24
  449. package/src/interactive/export-html/ansi-to-html.ts +161 -0
  450. package/src/interactive/export-html/index.ts +51 -0
  451. package/src/interactive/export-html/template.ts +45 -0
  452. package/src/interactive/export-html/tool-renderer.ts +54 -0
  453. package/src/interactive/footer/dashboard.ts +4 -0
  454. package/src/interactive/footer/notifications.ts +1 -1
  455. package/src/interactive/footer/widgets.ts +42 -22
  456. package/src/interactive/footer-panel.ts +8 -3
  457. package/src/interactive/format-time.ts +14 -2
  458. package/src/interactive/interactive-application.ts +203 -17
  459. package/src/interactive/interactive-event-projection.ts +18 -1
  460. package/src/interactive/interactive-input-runtime.ts +50 -4
  461. package/src/interactive/interactive-presentation.ts +151 -19
  462. package/src/interactive/interactive-shell.ts +268 -14
  463. package/src/interactive/interactive-slash-runtime.ts +184 -117
  464. package/src/interactive/interactive-tickers.ts +38 -7
  465. package/src/interactive/keybinding-manager.ts +1 -1
  466. package/src/interactive/layout.ts +40 -3
  467. package/src/interactive/overlay-frame.ts +1 -1
  468. package/src/interactive/overlay-general-openers.ts +58 -1
  469. package/src/interactive/overlay-key-routing.ts +3 -0
  470. package/src/interactive/overlay-lifecycle.ts +13 -0
  471. package/src/interactive/overlay-permission-lifecycle.ts +2 -1
  472. package/src/interactive/overlay-session-lifecycle.ts +69 -12
  473. package/src/interactive/overlays/ask-user.ts +146 -24
  474. package/src/interactive/overlays/decisions.ts +300 -0
  475. package/src/interactive/overlays/help-reference.ts +15 -10
  476. package/src/interactive/overlays/model-selector.ts +34 -16
  477. package/src/interactive/overlays/session-selector.ts +18 -0
  478. package/src/interactive/overlays/settings.ts +105 -17
  479. package/src/interactive/overlays/skills-hub.ts +4 -4
  480. package/src/interactive/overlays/tree-selector.ts +41 -6
  481. package/src/interactive/render-trace.ts +499 -90
  482. package/src/interactive/renderers/compaction-summary.ts +2 -2
  483. package/src/interactive/renderers/diff.ts +115 -104
  484. package/src/interactive/renderers/mermaid.ts +53 -0
  485. package/src/interactive/renderers/tool-execution.ts +516 -168
  486. package/src/interactive/renderers/worker-entry.ts +20 -4
  487. package/src/interactive/session-switch-settlement.ts +10 -0
  488. package/src/interactive/slash-autocomplete.ts +6 -114
  489. package/src/interactive/slash-commands.ts +135 -47
  490. package/src/interactive/slash-spec.ts +9 -38
  491. package/src/interactive/status/controller.ts +5 -1
  492. package/src/interactive/status/index.ts +12 -1
  493. package/src/interactive/status/reasoning.ts +87 -0
  494. package/src/interactive/status/summary.ts +13 -2
  495. package/src/interactive/stdout-backpressure.ts +99 -0
  496. package/src/interactive/stream-pacer.ts +530 -0
  497. package/src/interactive/stream-pacing-policy.ts +66 -0
  498. package/src/interactive/tasks-overlay.ts +368 -14
  499. package/src/interactive/terminal-lease.ts +485 -0
  500. package/src/interactive/theme/tokens.ts +1 -1
  501. package/src/interactive/transcript-detail.ts +120 -0
  502. package/src/interactive/turn-context.ts +4 -3
  503. package/src/interactive/turn-persistence.ts +30 -13
  504. package/src/interactive/turn-queues.ts +12 -0
  505. package/src/interactive/turn-recovery.ts +25 -8
  506. package/src/interactive/turn-runtime.ts +79 -12
  507. package/src/interactive/turn-state.ts +10 -0
  508. package/src/interactive/view/artifacts.ts +114 -4
  509. package/src/interactive/view/view-overlay.ts +3 -0
  510. package/src/interactive/welcome-dashboard.ts +17 -16
  511. package/src/interactive/worker-receipts.ts +52 -3
  512. package/src/interactive/worker-stream.ts +5 -1
  513. package/src/tools/agent-tools.ts +23 -3
  514. package/src/tools/artifact.ts +2 -2
  515. package/src/tools/ask-user.ts +23 -13
  516. package/src/tools/bash.ts +30 -2
  517. package/src/tools/bootstrap.ts +34 -431
  518. package/src/tools/builtin-tool-catalog.ts +271 -0
  519. package/src/tools/codewiki/code-nav-surface.ts +29 -0
  520. package/src/tools/codewiki/code-nav.ts +8 -22
  521. package/src/tools/codewiki/shared.ts +41 -38
  522. package/src/tools/context/docs-engine.ts +14 -3
  523. package/src/tools/context/index.ts +107 -28
  524. package/src/tools/context/surface.ts +19 -0
  525. package/src/tools/core-bootstrap.ts +168 -0
  526. package/src/tools/credential-present.ts +5 -5
  527. package/src/tools/dispatch-admission.ts +533 -0
  528. package/src/tools/dispatch-background.ts +54 -0
  529. package/src/tools/dispatch-event-text.ts +6 -0
  530. package/src/tools/dispatch-plan.ts +9 -4
  531. package/src/tools/dispatch-run-events.ts +238 -0
  532. package/src/tools/dispatch-runner.ts +2370 -0
  533. package/src/tools/dispatch-scout-admission.ts +295 -0
  534. package/src/tools/dispatch-types.ts +77 -0
  535. package/src/tools/dispatch.ts +67 -3161
  536. package/src/tools/find.ts +4 -2
  537. package/src/tools/grep.ts +2 -2
  538. package/src/tools/lazy-tool.ts +60 -0
  539. package/src/tools/ledger.ts +3 -3
  540. package/src/tools/monitor-surface.ts +36 -0
  541. package/src/tools/monitor.ts +2 -32
  542. package/src/tools/observers.ts +2 -2
  543. package/src/tools/presentation.ts +107 -0
  544. package/src/tools/registry.ts +45 -27
  545. package/src/tools/safe-exec.ts +2 -2
  546. package/src/tools/steer-surface.ts +17 -0
  547. package/src/tools/steer.ts +2 -13
  548. package/src/tools/tasks.ts +108 -11
  549. package/src/tools/truncate.ts +25 -184
  550. package/src/tools/verify/frontend.ts +3 -1
  551. package/src/tools/verify/index.ts +3 -38
  552. package/src/tools/verify/surface.ts +46 -0
  553. package/src/tools/web-fetch-surface.ts +23 -0
  554. package/src/tools/web-fetch.ts +2 -20
  555. package/src/tools/write.ts +7 -2
  556. package/src/worker/entry.ts +39 -2
  557. package/src/worker/spec-contract.ts +26 -5
  558. package/dist/chunk-7SS2CTV2.js +0 -61361
  559. package/dist/chunk-DKGKUHFA.js +0 -924
  560. package/dist/chunk-GEP36Y4X.js +0 -12796
  561. package/dist/chunk-XYWBQRDM.js +0 -137
  562. package/dist/clio-BZVGEUFJ.js +0 -58
  563. package/dist/configure-S7S6F6CL.js +0 -32
  564. package/docs/html/agents_blueprint.html +0 -936
  565. package/docs/html/alcf_blueprint.html +0 -324
  566. package/docs/html/architecture_blueprint.html +0 -850
  567. package/docs/html/commands_blueprint.html +0 -939
  568. package/docs/html/config_knobs_audit_blueprint.html +0 -178
  569. package/docs/html/configuration_blueprint.html +0 -1080
  570. package/docs/html/context_blueprint.html +0 -603
  571. package/docs/html/documentation_blueprint.html +0 -832
  572. package/docs/html/environment_blueprint.html +0 -404
  573. package/docs/html/eval_blueprint.html +0 -743
  574. package/docs/html/evals_internal_blueprint.html +0 -190
  575. package/docs/html/evolution_blueprint.html +0 -674
  576. package/docs/html/extensions_blueprint.html +0 -2065
  577. package/docs/html/fleet_dispatch_blueprint.html +0 -286
  578. package/docs/html/index.html +0 -919
  579. package/docs/html/lifecycle_blueprint.html +0 -723
  580. package/docs/html/memory_blueprint.html +0 -699
  581. package/docs/html/middleware_blueprint.html +0 -664
  582. package/docs/html/models_blueprint.html +0 -2366
  583. package/docs/html/observability_blueprint.html +0 -683
  584. package/docs/html/provider_adapter_blueprint.html +0 -245
  585. package/docs/html/safety_blueprint.html +0 -1386
  586. package/docs/html/shared.css +0 -571
  587. package/docs/html/shared.js +0 -143
  588. package/docs/html/skills_blueprint.html +0 -671
  589. package/docs/html/soak_blueprint.html +0 -182
  590. package/docs/html/tool_usage_blueprint.html +0 -350
  591. package/docs/html/tools_blueprint.html +0 -2249
  592. package/docs/html/trace_blueprint.html +0 -235
  593. package/docs/html/tui_design_blueprint.html +0 -374
  594. package/docs/html/validation_blueprint.html +0 -961
  595. package/docs/html/worker_dispatch_blueprint.html +0 -231
  596. package/src/core/release.ts +0 -2
  597. package/src/domains/providers/runtimes/common/lmstudio-logger.ts +0 -32
  598. package/src/domains/providers/runtimes/local-native/lmstudio-native.ts +0 -491
  599. package/src/engine/apis/lmstudio-native.ts +0 -1438
  600. package/src/engine/apis/thinking-replay.ts +0 -11
  601. package/src/tools/string-enum.ts +0 -15
@@ -195,16 +195,16 @@ var ansi_styles_default = ansiStyles;
195
195
 
196
196
  // node_modules/chalk/source/vendor/supports-color/index.js
197
197
  init_esm_shims();
198
- import process2 from "node:process";
198
+ import process from "node:process";
199
199
  import os from "node:os";
200
200
  import tty from "node:tty";
201
- function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
201
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {
202
202
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
203
203
  const position = argv.indexOf(prefix + flag);
204
204
  const terminatorPosition = argv.indexOf("--");
205
205
  return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
206
206
  }
207
- var { env } = process2;
207
+ var { env } = process;
208
208
  var flagForceColor;
209
209
  if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
210
210
  flagForceColor = 0;
@@ -260,7 +260,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
260
260
  if (env.TERM === "dumb") {
261
261
  return min;
262
262
  }
263
- if (process2.platform === "win32") {
263
+ if (process.platform === "win32") {
264
264
  const osRelease = os.release().split(".");
265
265
  if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
266
266
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
@@ -504,139 +504,7 @@ var chalk = createChalk();
504
504
  var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
505
505
  var source_default = chalk;
506
506
 
507
- // src/cli/argv.ts
508
- init_esm_shims();
509
- function printError(message, detail) {
510
- const head = source_default.red("error:");
511
- process.stderr.write(`${head} ${message}
512
- `);
513
- if (detail) process.stderr.write(` ${detail}
514
- `);
515
- }
516
- function printOk(message) {
517
- process.stdout.write(`${source_default.green("ok:")} ${message}
518
- `);
519
- }
520
- function printHeader(message) {
521
- process.stdout.write(`${source_default.cyan(message)}
522
- `);
523
- }
524
- function columnWidths(rows) {
525
- const widths = [];
526
- for (const row of rows) {
527
- for (let i = 0; i < row.length; i += 1) {
528
- widths[i] = Math.max(widths[i] ?? 0, row[i]?.length ?? 0);
529
- }
530
- }
531
- return widths;
532
- }
533
- function formatColumnRow(row, widths, gap = 2) {
534
- return row.map((cell, index) => {
535
- if (index === row.length - 1) return cell;
536
- return cell.padEnd((widths[index] ?? cell.length) + gap);
537
- }).join("").trimEnd();
538
- }
539
- function formatColumns(rows, gap = 2) {
540
- if (rows.length === 0) return "";
541
- const widths = columnWidths(rows);
542
- return `${rows.map((row) => formatColumnRow(row, widths, gap)).join("\n")}
543
- `;
544
- }
545
- function parseFlags(argv) {
546
- const flags = /* @__PURE__ */ new Set();
547
- const positional = [];
548
- for (const arg of argv) {
549
- if (arg.startsWith("--")) flags.add(arg.slice(2));
550
- else if (arg.startsWith("-") && arg.length > 1) flags.add(arg.slice(1));
551
- else positional.push(arg);
552
- }
553
- return { flags, positional };
554
- }
555
- var ROOT_FLAG_TOKENS = /* @__PURE__ */ new Set(["--help", "-h", "--all", "--version", "-v"]);
556
- var GLOBAL_ONLY_FLAGS = /* @__PURE__ */ new Map([
557
- ["--api-key", "--api-key <key>"],
558
- ["--no-context-files", "--no-context-files"],
559
- ["-nc", "-nc"]
560
- ]);
561
- function globalFlagPositionHint(arg, command) {
562
- const usage = GLOBAL_ONLY_FLAGS.get(arg);
563
- if (usage === void 0) return null;
564
- return `${arg} is a global option and must come before the subcommand: clio-coder ${usage} ${command} ...`;
565
- }
566
- function extractGlobalFlags(argv, isSubcommand = () => false) {
567
- const rest = [];
568
- let apiKey;
569
- let noContextFiles = false;
570
- let noSkills = false;
571
- const skillPaths = [];
572
- for (let i = 0; i < argv.length; i++) {
573
- const arg = argv[i];
574
- if (arg === void 0) continue;
575
- if (arg === "--") {
576
- rest.push(...argv.slice(i + 1));
577
- break;
578
- }
579
- if (!arg.startsWith("-")) {
580
- rest.push(...argv.slice(i));
581
- break;
582
- }
583
- if (ROOT_FLAG_TOKENS.has(arg)) {
584
- rest.push(arg);
585
- continue;
586
- }
587
- if (arg === "--no-context-files" || arg === "-nc") {
588
- noContextFiles = true;
589
- continue;
590
- }
591
- if (arg === "--no-skills") {
592
- noSkills = true;
593
- continue;
594
- }
595
- if (arg === "--api-key" || arg === "--skill") {
596
- const value = argv[i + 1];
597
- if (value === void 0 || value.startsWith("-") || isSubcommand(value)) {
598
- return {
599
- noContextFiles,
600
- noSkills,
601
- skillPaths,
602
- rest,
603
- error: `${arg} requires a value`,
604
- ...apiKey === void 0 ? {} : { apiKey }
605
- };
606
- }
607
- if (arg === "--api-key") apiKey = value;
608
- else skillPaths.push(value);
609
- i += 1;
610
- continue;
611
- }
612
- return {
613
- noContextFiles,
614
- noSkills,
615
- skillPaths,
616
- rest,
617
- error: `unknown global option: ${arg}`,
618
- ...apiKey === void 0 ? {} : { apiKey }
619
- };
620
- }
621
- return {
622
- noContextFiles,
623
- noSkills,
624
- skillPaths,
625
- rest,
626
- ...apiKey === void 0 ? {} : { apiKey }
627
- };
628
- }
629
-
630
507
  export {
631
- source_default,
632
- printError,
633
- printOk,
634
- printHeader,
635
- columnWidths,
636
- formatColumnRow,
637
- formatColumns,
638
- parseFlags,
639
- globalFlagPositionHint,
640
- extractGlobalFlags
508
+ source_default
641
509
  };
642
- //# sourceMappingURL=chunk-K2ITRMHZ.js.map
510
+ //# sourceMappingURL=chunk-5TSRNF4G.js.map
@@ -2,19 +2,68 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  readStateInfo,
4
4
  runDoctor
5
- } from "./chunk-ASND7OZK.js";
5
+ } from "./chunk-UFIIWP2H.js";
6
6
  import {
7
7
  getVersionInfo
8
8
  } from "./chunk-XPLRXC72.js";
9
+ import {
10
+ readSettings,
11
+ settingsPath,
12
+ updateSettings
13
+ } from "./chunk-A3CYT5EX.js";
14
+ import {
15
+ authStoragePath,
16
+ openAuthStorage
17
+ } from "./chunk-4VP4KH3K.js";
9
18
  import {
10
19
  init_esm_shims
11
20
  } from "./chunk-3R73A4XB.js";
12
21
 
13
22
  // src/domains/lifecycle/migrations/index.ts
14
23
  init_esm_shims();
15
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
24
+ import { existsSync as existsSync2, mkdirSync, readFileSync, writeFileSync } from "node:fs";
16
25
  import { join } from "node:path";
17
- var REGISTRY = Object.freeze([]);
26
+
27
+ // src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts
28
+ init_esm_shims();
29
+ import { existsSync } from "node:fs";
30
+ function normalizeLmStudioUrl(url) {
31
+ if (!url) return url;
32
+ if (url.startsWith("ws://")) return `http://${url.slice("ws://".length)}`;
33
+ if (url.startsWith("wss://")) return `https://${url.slice("wss://".length)}`;
34
+ return url;
35
+ }
36
+ var migration = {
37
+ id: "2026-08-18-lmstudio-runtime-id",
38
+ async up() {
39
+ let keepLegacyCredential = false;
40
+ if (existsSync(settingsPath())) {
41
+ const current = readSettings();
42
+ keepLegacyCredential = current.targets.some((target) => target.auth?.apiKeyRef === "lmstudio-native");
43
+ const needsSettingsRewrite = current.targets.some(
44
+ (target) => target.runtime === "lmstudio-native" || (target.runtime === "lmstudio" || target.runtime === "lmstudio-native") && normalizeLmStudioUrl(target.url) !== target.url
45
+ );
46
+ if (needsSettingsRewrite) {
47
+ updateSettings((settings) => {
48
+ for (const target of settings.targets) {
49
+ if (target.runtime !== "lmstudio-native" && target.runtime !== "lmstudio") continue;
50
+ target.runtime = "lmstudio";
51
+ const url = normalizeLmStudioUrl(target.url);
52
+ if (url !== void 0) target.url = url;
53
+ }
54
+ });
55
+ }
56
+ }
57
+ if (!existsSync(authStoragePath())) return;
58
+ const storage = openAuthStorage();
59
+ if (!storage.hasStored("lmstudio-native")) return;
60
+ storage.renameProvider("lmstudio-native", "lmstudio", { keepSource: keepLegacyCredential });
61
+ }
62
+ };
63
+ var lmstudio_runtime_id_default = migration;
64
+
65
+ // src/domains/lifecycle/migrations/index.ts
66
+ var REGISTRY = Object.freeze([lmstudio_runtime_id_default]);
18
67
  function listMigrations() {
19
68
  return REGISTRY;
20
69
  }
@@ -22,7 +71,7 @@ function manifestPath(stateDir) {
22
71
  return join(stateDir, "migrations.json");
23
72
  }
24
73
  function readManifest(path) {
25
- if (!existsSync(path)) return { applied: [] };
74
+ if (!existsSync2(path)) return { applied: [] };
26
75
  try {
27
76
  const raw = readFileSync(path, "utf8");
28
77
  const parsed = JSON.parse(raw);
@@ -38,27 +87,40 @@ function writeManifest(path, manifest) {
38
87
  writeFileSync(path, `${JSON.stringify(manifest, null, 2)}
39
88
  `, { encoding: "utf8", mode: 420 });
40
89
  }
41
- async function runPending(stateDir) {
90
+ async function runPending(stateDir, migrations = REGISTRY) {
42
91
  mkdirSync(stateDir, { recursive: true });
43
92
  const path = manifestPath(stateDir);
44
93
  const manifest = readManifest(path);
45
94
  const applied = new Set(manifest.applied);
46
95
  const newlyApplied = [];
47
- for (const m of REGISTRY) {
96
+ for (const m of migrations) {
48
97
  if (applied.has(m.id)) continue;
49
98
  await m.up(stateDir);
50
99
  applied.add(m.id);
51
100
  newlyApplied.push(m.id);
101
+ writeManifest(path, { applied: [...applied] });
52
102
  }
53
103
  const allApplied = [...applied];
54
104
  writeManifest(path, { applied: allApplied });
55
105
  return {
56
106
  applied: newlyApplied,
57
107
  allApplied,
58
- available: REGISTRY.map((m) => m.id)
108
+ available: migrations.map((m) => m.id)
59
109
  };
60
110
  }
61
111
 
112
+ // src/domains/lifecycle/upgrade-notice.ts
113
+ init_esm_shims();
114
+ var KEYBOARD_FACING_CHANGES = Object.freeze({
115
+ "0.3.1": "/targets, /fleet, and /scoped-models now open inside /settings; the commit-crafting, create-pr, investigate-issue, and review-changes skills are retired in favour of file-ticket, fix-issue, and ship; artifact defaults write under .clio-coder/artifacts/."
116
+ });
117
+ function describeUpgradeNotice(transition) {
118
+ const changes = KEYBOARD_FACING_CHANGES[transition.to];
119
+ const head = `clio: upgraded ${transition.from} \u2192 ${transition.to}.`;
120
+ const tail = `Full notes: CHANGELOG.md, section ${transition.to}.`;
121
+ return changes === void 0 ? `${head} What changed is in CHANGELOG.md, section ${transition.to}.` : `${head} What changed at the keyboard: ${changes} ${tail}`;
122
+ }
123
+
62
124
  // src/domains/lifecycle/index.ts
63
125
  init_esm_shims();
64
126
 
@@ -85,18 +147,6 @@ var LifecycleManifest = {
85
147
  dependsOn: ["config"]
86
148
  };
87
149
 
88
- // src/domains/lifecycle/upgrade-notice.ts
89
- init_esm_shims();
90
- var KEYBOARD_FACING_CHANGES = Object.freeze({
91
- "0.3.1": "/targets, /fleet, and /scoped-models now open inside /settings; the commit-crafting, create-pr, investigate-issue, and review-changes skills are retired in favour of file-ticket, fix-issue, and ship; artifact defaults write under .clio-coder/artifacts/."
92
- });
93
- function describeUpgradeNotice(transition) {
94
- const changes = KEYBOARD_FACING_CHANGES[transition.to];
95
- const head = `clio: upgraded ${transition.from} \u2192 ${transition.to}.`;
96
- const tail = `Full notes: CHANGELOG.md, section ${transition.to}.`;
97
- return changes === void 0 ? `${head} What changed is in CHANGELOG.md, section ${transition.to}.` : `${head} What changed at the keyboard: ${changes} ${tail}`;
98
- }
99
-
100
150
  // src/domains/lifecycle/index.ts
101
151
  var LifecycleDomainModule = {
102
152
  manifest: LifecycleManifest,
@@ -108,4 +158,4 @@ export {
108
158
  describeUpgradeNotice,
109
159
  LifecycleDomainModule
110
160
  };
111
- //# sourceMappingURL=chunk-4QKXUHSR.js.map
161
+ //# sourceMappingURL=chunk-5UFT4SUX.js.map
@@ -1,4 +1,10 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ isVerificationScriptName
4
+ } from "./chunk-7MNJORFF.js";
5
+ import {
6
+ canonicalizeExistingPath
7
+ } from "./chunk-ECH6PKUQ.js";
2
8
  import {
3
9
  ToolNames,
4
10
  isBuiltinToolName
@@ -13,7 +19,7 @@ import { createHash } from "node:crypto";
13
19
 
14
20
  // src/domains/safety/action-classifier.ts
15
21
  init_esm_shims();
16
- import path3 from "node:path";
22
+ import path2 from "node:path";
17
23
 
18
24
  // src/core/artifact-paths.ts
19
25
  init_esm_shims();
@@ -30,52 +36,9 @@ function artifactDefaultPath(kind) {
30
36
  return `${CLIO_ARTIFACT_DIR}/${filename}`;
31
37
  }
32
38
 
33
- // src/core/path-canonical.ts
34
- init_esm_shims();
35
- import { realpathSync } from "node:fs";
36
- import path from "node:path";
37
- function canonicalizeExistingPath(absPath) {
38
- const resolved = path.resolve(absPath);
39
- try {
40
- return path.resolve(realpathSync(resolved));
41
- } catch {
42
- }
43
- const tail = [];
44
- let cursor = resolved;
45
- while (true) {
46
- const parent = path.dirname(cursor);
47
- if (parent === cursor) {
48
- try {
49
- return path.resolve(realpathSync(cursor), ...tail);
50
- } catch {
51
- return resolved;
52
- }
53
- }
54
- tail.unshift(path.basename(cursor));
55
- cursor = parent;
56
- try {
57
- return path.resolve(realpathSync(cursor), ...tail);
58
- } catch {
59
- }
60
- }
61
- }
62
-
63
39
  // src/domains/safety/protected-artifacts.ts
64
40
  init_esm_shims();
65
- import path2 from "node:path";
66
-
67
- // src/core/verification-scripts.ts
68
- init_esm_shims();
69
- var VERIFICATION_SCRIPT_FAMILY_HINT = "test*/lint*/build*/typecheck*/check*/format*/ci*";
70
- var VERIFICATION_SCRIPT_PATTERN = /^(?:test|lint|build|typecheck|check|format|ci)(?:[:.-].*)?$/;
71
- function isVerificationScriptName(name) {
72
- return VERIFICATION_SCRIPT_PATTERN.test(name);
73
- }
74
- function declaredVerificationScripts(scripts) {
75
- return Object.keys(scripts).filter((name) => isVerificationScriptName(name)).sort((a, b) => a.localeCompare(b));
76
- }
77
-
78
- // src/domains/safety/protected-artifacts.ts
41
+ import path from "node:path";
79
42
  var COMMAND_SEPARATORS = /* @__PURE__ */ new Set([";", "&&", "||", "|"]);
80
43
  var SHELL_WRAPPERS = /* @__PURE__ */ new Set(["command", "builtin", "sudo", "doas"]);
81
44
  function toolMutationPaths(toolName, args) {
@@ -753,10 +716,10 @@ function cloneArtifact(artifact) {
753
716
  function normalizePathKey(input) {
754
717
  const trimmed = input.trim();
755
718
  if (trimmed.length === 0) return null;
756
- if (isWindowsAbsolutePath(trimmed) && path2.sep !== "\\") {
757
- return toSlashKey(path2.win32.normalize(trimmed));
719
+ if (isWindowsAbsolutePath(trimmed) && path.sep !== "\\") {
720
+ return toSlashKey(path.win32.normalize(trimmed));
758
721
  }
759
- const resolved = path2.isAbsolute(trimmed) ? trimmed : path2.resolve(trimmed);
722
+ const resolved = path.isAbsolute(trimmed) ? trimmed : path.resolve(trimmed);
760
723
  return toSlashKey(canonicalizeExistingPath(resolved));
761
724
  }
762
725
  function wildcardRootKey(input) {
@@ -781,8 +744,8 @@ function toSlashKey(input) {
781
744
  }
782
745
  function isSameOrDescendant(candidate, parent) {
783
746
  if (candidate === parent) return true;
784
- const relative = path2.posix.relative(parent, candidate);
785
- return relative !== "" && !relative.startsWith("..") && !path2.posix.isAbsolute(relative);
747
+ const relative = path.posix.relative(parent, candidate);
748
+ return relative !== "" && !relative.startsWith("..") && !path.posix.isAbsolute(relative);
786
749
  }
787
750
  function compareMatches(left, right) {
788
751
  return compareStrings(left.artifactPath, right.artifactPath) || compareStrings(left.commandPath, right.commandPath) || compareStrings(left.reason, right.reason);
@@ -833,8 +796,10 @@ function baseClassify(tool) {
833
796
  case ToolNames.Monitor:
834
797
  case ToolNames.AskUser:
835
798
  case ToolNames.CredentialPresent:
836
- // tasks mutates only the session's task ledger, never the workspace,
837
- // so it stays read class and is never gated behind a confirmation.
799
+ // tasks pick mutates only Clio-owned session-ledger and project-local
800
+ // .clio-coder runtime state, never source-workspace files. By intentional
801
+ // policy it stays read class and ungated; the tool itself still requires
802
+ // a durable operator task id before it can mutate either store.
838
803
  case ToolNames.Tasks:
839
804
  // ledger posts a typed contribution to a coordination board and reads a
840
805
  // local mirror. Neither touches the workspace, so it is never gated
@@ -879,15 +844,15 @@ function matchFirst(patterns, haystack) {
879
844
  }
880
845
  function resolveCandidate(p, baseCwd) {
881
846
  if (p.startsWith("~")) return p;
882
- const base = canonicalizeExistingPath(path3.resolve(baseCwd ?? process.cwd()));
883
- const resolved = path3.isAbsolute(p) ? path3.resolve(p) : path3.resolve(base, p);
847
+ const base = canonicalizeExistingPath(path2.resolve(baseCwd ?? process.cwd()));
848
+ const resolved = path2.isAbsolute(p) ? path2.resolve(p) : path2.resolve(base, p);
884
849
  return canonicalizeExistingPath(resolved);
885
850
  }
886
851
  function isInsideCwd(abs) {
887
- const cwd = canonicalizeExistingPath(path3.resolve(process.cwd()));
852
+ const cwd = canonicalizeExistingPath(path2.resolve(process.cwd()));
888
853
  const candidate = canonicalizeExistingPath(abs);
889
- const rel = path3.relative(cwd, candidate);
890
- return rel === "" || !rel.startsWith("..") && !path3.isAbsolute(rel);
854
+ const rel = path2.relative(cwd, candidate);
855
+ return rel === "" || !rel.startsWith("..") && !path2.isAbsolute(rel);
891
856
  }
892
857
  function writePathClass(pathArg, baseCwd) {
893
858
  if (pathArg.startsWith("~")) {
@@ -1201,12 +1166,9 @@ ${errors.map((error) => `- ${error}`).join("\n")}`);
1201
1166
  }
1202
1167
 
1203
1168
  export {
1169
+ CLIO_PROJECT_DIR,
1204
1170
  CLIO_ARTIFACT_DIR,
1205
1171
  artifactDefaultPath,
1206
- canonicalizeExistingPath,
1207
- VERIFICATION_SCRIPT_FAMILY_HINT,
1208
- isVerificationScriptName,
1209
- declaredVerificationScripts,
1210
1172
  toolMutationPaths,
1211
1173
  protectedArtifactMutationBlockReason,
1212
1174
  protectArtifact,
@@ -1230,4 +1192,4 @@ export {
1230
1192
  isShadowAgent,
1231
1193
  assertAgentSpecPolicy
1232
1194
  };
1233
- //# sourceMappingURL=chunk-OLBBMFRD.js.map
1195
+ //# sourceMappingURL=chunk-5UUP6MWO.js.map
@@ -0,0 +1,52 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ resolvePackageRoot
4
+ } from "./chunk-IWHMRKLL.js";
5
+ import {
6
+ init_esm_shims
7
+ } from "./chunk-3R73A4XB.js";
8
+
9
+ // src/core/incomplete-installation.ts
10
+ init_esm_shims();
11
+ import { isAbsolute, join, relative } from "node:path";
12
+ import { fileURLToPath } from "node:url";
13
+ function missingModulePath(message) {
14
+ const specifier = /Cannot find (?:module|package) ['"]([^'"]+)['"]/.exec(message)?.[1];
15
+ if (!specifier) return null;
16
+ if (specifier.startsWith("file:")) {
17
+ try {
18
+ return fileURLToPath(specifier);
19
+ } catch {
20
+ return null;
21
+ }
22
+ }
23
+ return isAbsolute(specifier) ? specifier : null;
24
+ }
25
+ function incompleteInstallationAdvice(err) {
26
+ if (err?.code !== "ERR_MODULE_NOT_FOUND") return null;
27
+ const message = err instanceof Error ? err.message : String(err);
28
+ let outputDir;
29
+ try {
30
+ outputDir = join(resolvePackageRoot(), "dist");
31
+ } catch {
32
+ return null;
33
+ }
34
+ const missing = missingModulePath(message);
35
+ if (!missing) return null;
36
+ const fromOutput = relative(outputDir, missing);
37
+ if (fromOutput === "" || fromOutput.startsWith("..") || isAbsolute(fromOutput)) return null;
38
+ return [
39
+ `${message}`,
40
+ "",
41
+ "This Clio Coder installation is incomplete: the command's own module is missing from",
42
+ `${outputDir}`,
43
+ "Reinstall to restore it, using the line that matches how you installed:",
44
+ " npm install -g @iowarp/clio-coder # npm install",
45
+ " npm run install:local # source checkout"
46
+ ].join("\n");
47
+ }
48
+
49
+ export {
50
+ incompleteInstallationAdvice
51
+ };
52
+ //# sourceMappingURL=chunk-65DEGPJ6.js.map
@@ -0,0 +1,17 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-3R73A4XB.js";
5
+
6
+ // src/core/agent-environment.ts
7
+ init_esm_shims();
8
+ var AI_AGENT_NAME = "clio-coder";
9
+ function withClioAgentEnvironment(source) {
10
+ return { ...source, AI_AGENT: AI_AGENT_NAME };
11
+ }
12
+
13
+ export {
14
+ AI_AGENT_NAME,
15
+ withClioAgentEnvironment
16
+ };
17
+ //# sourceMappingURL=chunk-6EJMN2Y3.js.map
@@ -0,0 +1,136 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ mentionsWorkerToolCallCap
4
+ } from "./chunk-4ZG3XFUR.js";
5
+ import {
6
+ init_esm_shims
7
+ } from "./chunk-3R73A4XB.js";
8
+
9
+ // src/tools/worker-evidence.ts
10
+ init_esm_shims();
11
+ var SOURCE_CITATION_PATTERN = /([\w./~-]+):(\d+)/g;
12
+ function sourceCitations(text) {
13
+ const citations = [];
14
+ for (const match of text.matchAll(SOURCE_CITATION_PATTERN)) {
15
+ const path = match[1];
16
+ const line = Number(match[2]);
17
+ if (path && Number.isSafeInteger(line) && line > 0) citations.push({ path, line });
18
+ }
19
+ return citations;
20
+ }
21
+ function hasSourceCitation(text) {
22
+ return sourceCitations(text).length > 0;
23
+ }
24
+ var SPOT_CHECK_GUIDANCE = 'Spot-check delegated claims before repeating them: re-read any cited file:line location, and re-run or inspect the named validation before repeating a "tests pass" claim.';
25
+ function isMutationClassRun(receipt, verification) {
26
+ if (verification.state === "not_applicable") return false;
27
+ if (receipt.executionRole === "builder" || receipt.executionRole === "recovery") return true;
28
+ return receipt.quality?.resultContract?.sourceId?.startsWith("agent-result-contract:mutation-report") === true;
29
+ }
30
+ function receiptAdmissionLabels(receipt) {
31
+ const labels = [];
32
+ const mismatch = receipt.capabilityMismatch;
33
+ if (mismatch !== void 0) {
34
+ labels.push(
35
+ `capability_mismatch=${mismatch.capabilityClass}/${mismatch.taskType}${mismatch.suggestedAgentId === null ? "" : ` suggested:${mismatch.suggestedAgentId}`}`
36
+ );
37
+ }
38
+ const grounding = receipt.validationGrounding;
39
+ if (grounding !== void 0) {
40
+ labels.push(
41
+ `validations=claimed:${grounding.claimed} grounded:${grounding.grounded}${grounding.ungrounded.length > 0 ? ` ${grounding.basis === "no-command-executed" ? "unverifiable" : "unmatched"}:${grounding.ungrounded.map((name) => JSON.stringify(name)).join(",")}` : ""}`
42
+ );
43
+ }
44
+ return labels;
45
+ }
46
+ function receiptActivityLabels(receipt, verification) {
47
+ const labels = [];
48
+ const activity = receipt.toolActivity;
49
+ if (activity !== void 0) {
50
+ labels.push(
51
+ `work=calls:${activity.calls} ok:${activity.succeeded} failed:${activity.failed} blocked:${activity.blocked} mutations:${activity.mutatingSucceeded ? "yes" : "no"}`
52
+ );
53
+ if (!activity.mutatingSucceeded && isMutationClassRun(receipt, verification)) labels.push("mutation_effect=none");
54
+ }
55
+ const findings = receipt.findingsSummary;
56
+ if (findings !== void 0) {
57
+ if (!findings.firstPassSuccess) labels.push("first_pass=false");
58
+ if (findings.tags.length > 0) labels.push(`findings=${[...findings.tags].sort().join(",")}`);
59
+ }
60
+ return labels;
61
+ }
62
+ function receiptEvidenceLabels(receipt, verification, integrity) {
63
+ if (!integrity.ok) return [`receipt_integrity=FAILED reason=${JSON.stringify(integrity.reason)}`];
64
+ const briefing = receipt.briefing === void 0 ? "briefing=none" : `briefing=bytes:${receipt.briefing.bytes} sha256:${receipt.briefing.contentHash}`;
65
+ let projectContext = "project_context=absent";
66
+ if (receipt.projectContext !== void 0) {
67
+ const sections = receipt.projectContext.sections ?? [];
68
+ projectContext = `project_context=${receipt.projectContext.tier} chars:${receipt.projectContext.chars ?? 0}${sections.length > 0 ? ` sections:${[...sections].sort().join(",")}` : ""}${receipt.projectContext.contentHash !== void 0 ? ` sha256:${receipt.projectContext.contentHash}` : ""}`;
69
+ }
70
+ return [
71
+ `receipt_integrity=verified/v${receipt.integrity.version}/${receipt.integrity.algorithm}`,
72
+ `evidence_verification=${verification.state}/${verification.basis}`,
73
+ ...receiptAdmissionLabels(receipt),
74
+ ...receiptActivityLabels(receipt, verification),
75
+ briefing,
76
+ projectContext
77
+ ];
78
+ }
79
+ function workerTextLabel(verification) {
80
+ switch (verification.state) {
81
+ case "verified":
82
+ return "worker output (tool-verified):";
83
+ case "not_applicable":
84
+ return "reconnaissance output (advisory leads, not validation evidence):";
85
+ case "unknown":
86
+ return "worker claims (validation not observable at this layer):";
87
+ default:
88
+ return "worker claims (unverified prose):";
89
+ }
90
+ }
91
+ function workerTextNonEvidenceNotices(receipt, verification, answerText) {
92
+ const notices = [];
93
+ const failedRun = receipt.exitCode !== 0 || receipt.outcome !== void 0 && receipt.outcome !== "succeeded";
94
+ if (mentionsWorkerToolCallCap(receipt.failureMessage) || mentionsWorkerToolCallCap(receipt.outcomeDetail)) {
95
+ notices.push(
96
+ answerText.length > 0 ? "non-evidence: the worker exhausted its tool-call cap; the text above is a partial synthesis, not verified results." : "non-evidence: the worker exhausted its tool-call cap before a final synthesis was captured."
97
+ );
98
+ } else if (failedRun) {
99
+ notices.push(
100
+ "non-evidence: this run did not succeed; treat the text above as an unsubstantiated report, not results."
101
+ );
102
+ }
103
+ if (receipt.toolActivity !== void 0 && receipt.toolActivity.succeeded === 0) {
104
+ notices.push("non-evidence: no tool call succeeded in this run; the text above was written without observed work.");
105
+ } else if (receipt.toolActivity?.mutatingSucceeded === false && isMutationClassRun(receipt, verification)) {
106
+ notices.push(
107
+ "non-evidence: this run was dispatched as work that changes the tree, but no mutating tool call succeeded. Nothing was written. Confirm with a diff before repeating any claim that something was fixed."
108
+ );
109
+ }
110
+ const grounding = receipt.validationGrounding;
111
+ if (grounding !== void 0 && grounding.ungrounded.length > 0) {
112
+ const named = grounding.ungrounded.map((name) => JSON.stringify(name)).join(", ");
113
+ notices.push(
114
+ grounding.basis === "no-command-executed" ? `non-evidence: this run reported ${named} as passing and executed no command at all. Re-run the check yourself before repeating the claim.` : `non-evidence: this run reported ${named} as passing through a command the harness cannot identify as that check. Re-run it before repeating the claim.`
115
+ );
116
+ }
117
+ if (receipt.capabilityMismatch !== void 0) {
118
+ notices.push(
119
+ `non-evidence: '${receipt.capabilityMismatch.agentId}' is a ${receipt.capabilityMismatch.capabilityClass} recipe and cannot write to the workspace, but this task classified as ${receipt.capabilityMismatch.taskType}. Nothing it reports as changed can have been changed by it.`
120
+ );
121
+ }
122
+ if (!failedRun && verification.state === "not_applicable" && answerText.length > 0 && !hasSourceCitation(answerText)) {
123
+ notices.push(
124
+ "non-evidence: this reconnaissance answer cites no file:line locations; treat its leads as unconfirmed."
125
+ );
126
+ }
127
+ return notices;
128
+ }
129
+
130
+ export {
131
+ SPOT_CHECK_GUIDANCE,
132
+ receiptEvidenceLabels,
133
+ workerTextLabel,
134
+ workerTextNonEvidenceNotices
135
+ };
136
+ //# sourceMappingURL=chunk-6N5PTWMY.js.map