@iowarp/clio-coder 0.3.1 → 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 (595) hide show
  1. package/CHANGELOG.md +90 -2
  2. package/CONTRIBUTING.md +23 -23
  3. package/README.md +284 -613
  4. package/dist/{acp-FPR54DGL.js → acp-BIYHVZIM.js} +43 -53
  5. package/dist/{agents-OGPIHPJH.js → agents-YT6SSRIT.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-PV4JUBVJ.js → chunk-2EHAIA3X.js} +40 -21
  9. package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
  10. package/dist/chunk-2SFS6XQE.js +122 -0
  11. package/dist/chunk-2VTFPG5O.js +48 -0
  12. package/dist/{chunk-MAR7Y6HW.js → chunk-3ZXDFGR5.js} +23 -16
  13. package/dist/chunk-4BJ5BYCE.js +61 -0
  14. package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
  15. package/dist/chunk-4KLWL3UC.js +18 -0
  16. package/dist/chunk-4VP4KH3K.js +962 -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-OLBBMFRD.js → chunk-5UUP6MWO.js} +24 -62
  21. package/dist/chunk-65DEGPJ6.js +52 -0
  22. package/dist/chunk-6EJMN2Y3.js +17 -0
  23. package/dist/chunk-6EJV5X2W.js +16405 -0
  24. package/dist/chunk-6N5PTWMY.js +136 -0
  25. package/dist/chunk-6XLNIQDB.js +27 -0
  26. package/dist/{chunk-TEKV33Q5.js → chunk-77VKQEHF.js} +65 -33
  27. package/dist/chunk-7CR24IG7.js +242 -0
  28. package/dist/{chunk-M5T5VO65.js → chunk-7EYHLWU7.js} +837 -635
  29. package/dist/chunk-7MNJORFF.js +22 -0
  30. package/dist/{chunk-KY56HMHH.js → chunk-A3CYT5EX.js} +125 -31
  31. package/dist/chunk-AGYYIBLL.js +1069 -0
  32. package/dist/chunk-AO4RKG4M.js +277 -0
  33. package/dist/{chunk-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
  34. package/dist/chunk-ARBGF5F7.js +174 -0
  35. package/dist/{chunk-673JJUWJ.js → chunk-BMEMKKIT.js} +2 -2
  36. package/dist/chunk-CBCAPZAA.js +229 -0
  37. package/dist/chunk-CMZWFGD2.js +352 -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-RPTR2H26.js → chunk-EPVUXGXG.js} +21 -15
  42. package/dist/chunk-FCSXB6T2.js +338 -0
  43. package/dist/chunk-FJ3H4MN5.js +48 -0
  44. package/dist/chunk-FQ4SKYE4.js +29 -0
  45. package/dist/chunk-G2DE3C7R.js +644 -0
  46. package/dist/chunk-G4BMMOKF.js +182 -0
  47. package/dist/{chunk-ZPY3JZ5E.js → chunk-GGXXDWE4.js} +183 -1233
  48. package/dist/chunk-HC4CLZ2Y.js +68 -0
  49. package/dist/{chunk-LU4TK2PR.js → chunk-HFSBBKSQ.js} +5 -56
  50. package/dist/{chunk-PIUMUEMV.js → chunk-HKIYEGME.js} +10 -6
  51. package/dist/chunk-I4HZDVNP.js +73 -0
  52. package/dist/{chunk-4QKXUHSR.js → chunk-IGLFWIYI.js} +70 -20
  53. package/dist/chunk-IKCO5N3L.js +162 -0
  54. package/dist/chunk-IR4CFBFN.js +56 -0
  55. package/dist/{chunk-PFEFKVGL.js → chunk-J5HN4RYU.js} +13 -11
  56. package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
  57. package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
  58. package/dist/chunk-KJ5LWLOE.js +1077 -0
  59. package/dist/chunk-LBMZMYH2.js +285 -0
  60. package/dist/{chunk-G34LV2PF.js → chunk-LBNRH5WM.js} +84 -170
  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-MAW544W2.js +1882 -0
  64. package/dist/chunk-MBS4V7ZP.js +217 -0
  65. package/dist/{chunk-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
  66. package/dist/chunk-MNA4JGU4.js +255 -0
  67. package/dist/chunk-MQSRRFWA.js +3428 -0
  68. package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
  69. package/dist/chunk-OAO4GE4M.js +619 -0
  70. package/dist/chunk-OHHN2SO4.js +5135 -0
  71. package/dist/chunk-OKGUZO2U.js +34 -0
  72. package/dist/{chunk-GAEBEQVI.js → chunk-OOJYHWRB.js} +32 -346
  73. package/dist/{chunk-Q5WJOSJ7.js → chunk-OQ33BKR3.js} +2 -1
  74. package/dist/chunk-OQE5J4C6.js +73 -0
  75. package/dist/{chunk-KKNLWXI6.js → chunk-ORBHGJC5.js} +8 -8
  76. package/dist/chunk-POHLU5DW.js +1186 -0
  77. package/dist/chunk-QKMUKYO7.js +4961 -0
  78. package/dist/{chunk-ASND7OZK.js → chunk-QTYWRVRA.js} +13 -13
  79. package/dist/{chunk-EYOKLTMF.js → chunk-SRF2PJNW.js} +17 -3
  80. package/dist/chunk-SST6Z5JA.js +80 -0
  81. package/dist/chunk-STBPMHSX.js +2456 -0
  82. package/dist/chunk-T6YILFSB.js +80 -0
  83. package/dist/chunk-TZTZS7QK.js +227 -0
  84. package/dist/chunk-UOV2BYIW.js +107 -0
  85. package/dist/{chunk-Q3RUPKEJ.js → chunk-V4RXGQ5Q.js} +58 -189
  86. package/dist/chunk-VAKQQHWR.js +434 -0
  87. package/dist/chunk-VG7TBQIY.js +128 -0
  88. package/dist/chunk-VJWL6YS5.js +244 -0
  89. package/dist/chunk-WEH5XRJQ.js +32 -0
  90. package/dist/chunk-WMSVI4G2.js +2095 -0
  91. package/dist/chunk-WVO7V2QY.js +797 -0
  92. package/dist/chunk-X4RCMKVQ.js +641 -0
  93. package/dist/chunk-X75S7HFS.js +374 -0
  94. package/dist/chunk-XN3L4EYL.js +46 -0
  95. package/dist/{chunk-RDLVBZEO.js → chunk-YCWGATWI.js} +6 -4
  96. package/dist/chunk-YHZX5GEU.js +193 -0
  97. package/dist/chunk-YXLYO42X.js +91 -0
  98. package/dist/{chunk-NMOX6HFD.js → chunk-ZDOOVTXZ.js} +29 -77
  99. package/dist/chunk-ZI647VB5.js +37 -0
  100. package/dist/{chunk-C4PTHK7P.js → chunk-ZWLZP4ZT.js} +5 -5
  101. package/dist/cli/index.js +62 -54
  102. package/dist/clio-4LY5K2AC.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-GTLUW2PR.js} +92 -55
  108. package/dist/configure-R6A64DHX.js +42 -0
  109. package/dist/context-5VKGUVJJ.js +866 -0
  110. package/dist/{context-3KWFLHJG.js → context-JFZEJ7W5.js} +15 -13
  111. package/dist/{context-5RADCKTR.js → context-RW5HC47S.js} +71 -35
  112. package/dist/{context-clear-7TSNPAAI.js → context-clear-6ZHBAZZT.js} +54 -28
  113. package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
  114. package/dist/dispatch-runner-VKBRCWQC.js +1997 -0
  115. package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
  116. package/dist/{doctor-UC5NAJYQ.js → doctor-KI767GSN.js} +27 -17
  117. package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
  118. package/dist/{evidence-YEGUW4L3.js → evidence-UA6AWDQQ.js} +46 -26
  119. package/dist/{evolve-TXARCTPG.js → evolve-QNTFGV6Z.js} +45 -25
  120. package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
  121. package/dist/{fleet-6G3DHNYE.js → fleet-Q7UOMUSG.js} +163 -54
  122. package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
  123. package/dist/{init-KZ5QTF6M.js → init-WBB65ZHQ.js} +69 -32
  124. package/dist/{memory-73ESV5YC.js → memory-MD3O64RI.js} +48 -27
  125. package/dist/{models-A4PVNWJK.js → models-BZU34YWD.js} +39 -25
  126. package/dist/monitor-MEQA5C3I.js +661 -0
  127. package/dist/{chunk-FCIH3BIZ.js → orchestrator-CGFKEP27.js} +11832 -8687
  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-IV4Q6RLN.js} +101 -61
  132. package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
  133. package/dist/{skills-2V6RA3OQ.js → skills-LQEKRDTN.js} +34 -14
  134. package/dist/{skills-eval-S2TVJO4F.js → skills-eval-3DC4HEWS.js} +70 -34
  135. package/dist/steer-GGWFUJUD.js +77 -0
  136. package/dist/{targets-TYXLPB23.js → targets-C4SSGQOB.js} +43 -27
  137. package/dist/terminal-lease-IT5JW2NR.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-7TT7SQ3G.js} +45 -25
  142. package/dist/{usage-ZAFSXKKG.js → usage-GV4PKT3M.js} +62 -31
  143. package/dist/verify-G6V4D2G7.js +716 -0
  144. package/dist/web-fetch-2YHJ3KTG.js +638 -0
  145. package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-DQF6Z66B.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 +362 -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 +42 -6
  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 +173 -47
  444. package/src/interactive/chat-renderer.ts +262 -72
  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 +228 -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 +20 -2
  456. package/src/interactive/footer-panel.ts +2 -2
  457. package/src/interactive/format-time.ts +14 -2
  458. package/src/interactive/interactive-application.ts +201 -17
  459. package/src/interactive/interactive-event-projection.ts +6 -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 +176 -114
  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/decisions.ts +300 -0
  474. package/src/interactive/overlays/help-reference.ts +15 -10
  475. package/src/interactive/overlays/model-selector.ts +34 -16
  476. package/src/interactive/overlays/session-selector.ts +18 -0
  477. package/src/interactive/overlays/settings.ts +105 -17
  478. package/src/interactive/overlays/skills-hub.ts +4 -4
  479. package/src/interactive/overlays/tree-selector.ts +41 -6
  480. package/src/interactive/render-trace.ts +499 -90
  481. package/src/interactive/renderers/compaction-summary.ts +2 -2
  482. package/src/interactive/renderers/diff.ts +115 -104
  483. package/src/interactive/renderers/mermaid.ts +53 -0
  484. package/src/interactive/renderers/tool-execution.ts +386 -133
  485. package/src/interactive/renderers/worker-entry.ts +20 -4
  486. package/src/interactive/session-switch-settlement.ts +10 -0
  487. package/src/interactive/slash-autocomplete.ts +6 -114
  488. package/src/interactive/slash-commands.ts +135 -47
  489. package/src/interactive/slash-spec.ts +9 -38
  490. package/src/interactive/status/controller.ts +5 -1
  491. package/src/interactive/stdout-backpressure.ts +99 -0
  492. package/src/interactive/stream-pacer.ts +530 -0
  493. package/src/interactive/stream-pacing-policy.ts +66 -0
  494. package/src/interactive/tasks-overlay.ts +368 -14
  495. package/src/interactive/terminal-lease.ts +485 -0
  496. package/src/interactive/theme/tokens.ts +1 -1
  497. package/src/interactive/turn-context.ts +4 -3
  498. package/src/interactive/turn-persistence.ts +30 -13
  499. package/src/interactive/turn-queues.ts +12 -0
  500. package/src/interactive/turn-recovery.ts +25 -8
  501. package/src/interactive/turn-runtime.ts +79 -12
  502. package/src/interactive/turn-state.ts +10 -0
  503. package/src/interactive/view/artifacts.ts +114 -4
  504. package/src/interactive/view/view-overlay.ts +3 -0
  505. package/src/interactive/welcome-dashboard.ts +17 -16
  506. package/src/interactive/worker-receipts.ts +52 -3
  507. package/src/interactive/worker-stream.ts +5 -1
  508. package/src/tools/agent-tools.ts +23 -3
  509. package/src/tools/artifact.ts +2 -2
  510. package/src/tools/ask-user.ts +23 -13
  511. package/src/tools/bash.ts +30 -2
  512. package/src/tools/bootstrap.ts +34 -431
  513. package/src/tools/builtin-tool-catalog.ts +265 -0
  514. package/src/tools/codewiki/code-nav-surface.ts +29 -0
  515. package/src/tools/codewiki/code-nav.ts +8 -22
  516. package/src/tools/codewiki/shared.ts +41 -38
  517. package/src/tools/context/docs-engine.ts +14 -3
  518. package/src/tools/context/index.ts +107 -28
  519. package/src/tools/context/surface.ts +19 -0
  520. package/src/tools/core-bootstrap.ts +168 -0
  521. package/src/tools/credential-present.ts +5 -5
  522. package/src/tools/dispatch-admission.ts +533 -0
  523. package/src/tools/dispatch-background.ts +54 -0
  524. package/src/tools/dispatch-event-text.ts +6 -0
  525. package/src/tools/dispatch-plan.ts +9 -4
  526. package/src/tools/dispatch-run-events.ts +238 -0
  527. package/src/tools/dispatch-runner.ts +2370 -0
  528. package/src/tools/dispatch-scout-admission.ts +295 -0
  529. package/src/tools/dispatch-types.ts +77 -0
  530. package/src/tools/dispatch.ts +67 -3161
  531. package/src/tools/find.ts +4 -2
  532. package/src/tools/grep.ts +2 -2
  533. package/src/tools/lazy-tool.ts +60 -0
  534. package/src/tools/ledger.ts +3 -3
  535. package/src/tools/monitor-surface.ts +36 -0
  536. package/src/tools/monitor.ts +2 -32
  537. package/src/tools/observers.ts +2 -2
  538. package/src/tools/registry.ts +39 -27
  539. package/src/tools/safe-exec.ts +2 -2
  540. package/src/tools/steer-surface.ts +17 -0
  541. package/src/tools/steer.ts +2 -13
  542. package/src/tools/tasks.ts +108 -11
  543. package/src/tools/truncate.ts +25 -184
  544. package/src/tools/verify/frontend.ts +3 -1
  545. package/src/tools/verify/index.ts +3 -38
  546. package/src/tools/verify/surface.ts +46 -0
  547. package/src/tools/web-fetch-surface.ts +23 -0
  548. package/src/tools/web-fetch.ts +2 -20
  549. package/src/tools/write.ts +7 -2
  550. package/src/worker/entry.ts +39 -2
  551. package/src/worker/spec-contract.ts +26 -5
  552. package/dist/chunk-7SS2CTV2.js +0 -61361
  553. package/dist/chunk-DKGKUHFA.js +0 -924
  554. package/dist/chunk-GEP36Y4X.js +0 -12796
  555. package/dist/chunk-XYWBQRDM.js +0 -137
  556. package/dist/clio-BZVGEUFJ.js +0 -58
  557. package/dist/configure-S7S6F6CL.js +0 -32
  558. package/docs/html/agents_blueprint.html +0 -936
  559. package/docs/html/alcf_blueprint.html +0 -324
  560. package/docs/html/architecture_blueprint.html +0 -850
  561. package/docs/html/commands_blueprint.html +0 -939
  562. package/docs/html/config_knobs_audit_blueprint.html +0 -178
  563. package/docs/html/configuration_blueprint.html +0 -1080
  564. package/docs/html/context_blueprint.html +0 -603
  565. package/docs/html/documentation_blueprint.html +0 -832
  566. package/docs/html/environment_blueprint.html +0 -404
  567. package/docs/html/eval_blueprint.html +0 -743
  568. package/docs/html/evals_internal_blueprint.html +0 -190
  569. package/docs/html/evolution_blueprint.html +0 -674
  570. package/docs/html/extensions_blueprint.html +0 -2065
  571. package/docs/html/fleet_dispatch_blueprint.html +0 -286
  572. package/docs/html/index.html +0 -919
  573. package/docs/html/lifecycle_blueprint.html +0 -723
  574. package/docs/html/memory_blueprint.html +0 -699
  575. package/docs/html/middleware_blueprint.html +0 -664
  576. package/docs/html/models_blueprint.html +0 -2366
  577. package/docs/html/observability_blueprint.html +0 -683
  578. package/docs/html/provider_adapter_blueprint.html +0 -245
  579. package/docs/html/safety_blueprint.html +0 -1386
  580. package/docs/html/shared.css +0 -571
  581. package/docs/html/shared.js +0 -143
  582. package/docs/html/skills_blueprint.html +0 -671
  583. package/docs/html/soak_blueprint.html +0 -182
  584. package/docs/html/tool_usage_blueprint.html +0 -350
  585. package/docs/html/tools_blueprint.html +0 -2249
  586. package/docs/html/trace_blueprint.html +0 -235
  587. package/docs/html/tui_design_blueprint.html +0 -374
  588. package/docs/html/validation_blueprint.html +0 -961
  589. package/docs/html/worker_dispatch_blueprint.html +0 -231
  590. package/src/core/release.ts +0 -2
  591. package/src/domains/providers/runtimes/common/lmstudio-logger.ts +0 -32
  592. package/src/domains/providers/runtimes/local-native/lmstudio-native.ts +0 -491
  593. package/src/engine/apis/lmstudio-native.ts +0 -1438
  594. package/src/engine/apis/thinking-replay.ts +0 -11
  595. package/src/tools/string-enum.ts +0 -15
@@ -0,0 +1,68 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ withStateFileLock
4
+ } from "./chunk-IKCO5N3L.js";
5
+ import {
6
+ safeResourceWrite
7
+ } from "./chunk-WEPFGWHJ.js";
8
+ import {
9
+ init_esm_shims
10
+ } from "./chunk-3R73A4XB.js";
11
+
12
+ // src/domains/observability/evidence-index.ts
13
+ init_esm_shims();
14
+ import { readFileSync } from "node:fs";
15
+ import { join } from "node:path";
16
+ var MAX_EVIDENCE_INDEX_ROWS = 1e3;
17
+ var EVIDENCE_INDEX_FILE = "evidence-index.json";
18
+ var evidenceIndexWriteQueue = Promise.resolve();
19
+ function indexPath(stateDir) {
20
+ return join(stateDir, EVIDENCE_INDEX_FILE);
21
+ }
22
+ function isEvidenceIndexRow(value) {
23
+ if (typeof value !== "object" || value === null) return false;
24
+ const row = value;
25
+ return typeof row.runId === "string" && typeof row.evidenceId === "string" && Array.isArray(row.tags) && row.tags.every((tag) => typeof tag === "string") && typeof row.firstPassSuccess === "boolean" && typeof row.findingCount === "number" && typeof row.generatedAt === "string";
26
+ }
27
+ function readEvidenceIndex(stateDir) {
28
+ let raw;
29
+ try {
30
+ raw = readFileSync(indexPath(stateDir), "utf8");
31
+ } catch {
32
+ return [];
33
+ }
34
+ let parsed;
35
+ try {
36
+ parsed = JSON.parse(raw);
37
+ } catch {
38
+ return [];
39
+ }
40
+ if (!Array.isArray(parsed)) return [];
41
+ return parsed.filter(isEvidenceIndexRow);
42
+ }
43
+ async function writeEvidenceIndexRow(stateDir, row) {
44
+ let bounded = [];
45
+ await withStateFileLock(indexPath(stateDir), () => {
46
+ const existing = readEvidenceIndex(stateDir).filter((entry) => entry.runId !== row.runId);
47
+ existing.push(row);
48
+ bounded = existing.length > MAX_EVIDENCE_INDEX_ROWS ? existing.slice(-MAX_EVIDENCE_INDEX_ROWS) : existing;
49
+ safeResourceWrite(indexPath(stateDir), `${JSON.stringify(bounded, null, 2)}
50
+ `, { encoding: "utf8" });
51
+ });
52
+ return bounded;
53
+ }
54
+ async function writeEvidenceIndexRowQueued(stateDir, row) {
55
+ let written = [];
56
+ const write = evidenceIndexWriteQueue.then(async () => {
57
+ written = await writeEvidenceIndexRow(stateDir, row);
58
+ });
59
+ evidenceIndexWriteQueue = write.catch(() => void 0);
60
+ await write;
61
+ return written;
62
+ }
63
+
64
+ export {
65
+ readEvidenceIndex,
66
+ writeEvidenceIndexRowQueued
67
+ };
68
+ //# sourceMappingURL=chunk-HC4CLZ2Y.js.map
@@ -1,4 +1,8 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ createRedactionTally,
4
+ redactSecretsText
5
+ } from "./chunk-4BJ5BYCE.js";
2
6
  import {
3
7
  processAlive,
4
8
  processBirthToken
@@ -14,58 +18,6 @@ import { mkdirSync } from "node:fs";
14
18
  import { createRequire } from "node:module";
15
19
  import { hostname } from "node:os";
16
20
  import { dirname, join } from "node:path";
17
-
18
- // src/domains/evidence/redact.ts
19
- init_esm_shims();
20
- function createRedactionTally() {
21
- return { count: 0 };
22
- }
23
- var SECRET_PATTERNS = [
24
- {
25
- kind: "pem",
26
- re: /-----BEGIN [A-Z0-9 ]*(?:PRIVATE KEY|PRIVATE KEY BLOCK)-----[\s\S]*?(?:-----END [A-Z0-9 ]*(?:PRIVATE KEY|PRIVATE KEY BLOCK)-----|$)/g
27
- },
28
- { kind: "aws-access-key", re: /\bAKIA[0-9A-Z]{16}\b/g },
29
- { kind: "github-token", re: /\b(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{20,}\b/g },
30
- { kind: "github-token", re: /\bgithub_pat_[A-Za-z0-9_]{20,}\b/g },
31
- { kind: "sk-key", re: /\bsk-(?:[A-Za-z0-9_-]{2,20}-)?[A-Za-z0-9_-]{16,}\b/g },
32
- { kind: "slack-token", re: /\bxox[bpars]-[A-Za-z0-9-]{8,}\b/g },
33
- { kind: "google-api-key", re: /\bAIza[0-9A-Za-z_-]{30,}\b/g },
34
- { kind: "jwt", re: /\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{4,}\b/g },
35
- {
36
- kind: "assignment",
37
- // KEY=value / key: value / "api_key": "value" shapes where the key name
38
- // is secret-flavored and the value is long enough to be a credential.
39
- re: /\b((?:[A-Za-z0-9_-]*(?:api[_-]?key|apikey|secret|token|passwd|password|credential)[A-Za-z0-9_-]*)\s*["']?\s*[:=]\s*["']?)([^\s"'`;,&|<>]{8,})/gi
40
- }
41
- ];
42
- function redactSecretsText(text, tally) {
43
- let out = text;
44
- for (const pattern of SECRET_PATTERNS) {
45
- out = out.replace(pattern.re, (...match) => {
46
- tally.count += 1;
47
- if (pattern.kind === "assignment") {
48
- return `${String(match[1])}[redacted:${pattern.kind}]`;
49
- }
50
- return `[redacted:${pattern.kind}]`;
51
- });
52
- }
53
- return out;
54
- }
55
- function redactSecretsDeep(value, tally) {
56
- if (typeof value === "string") return redactSecretsText(value, tally);
57
- if (Array.isArray(value)) return value.map((item) => redactSecretsDeep(item, tally));
58
- if (value !== null && typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype) {
59
- const out = {};
60
- for (const [key, item] of Object.entries(value)) {
61
- out[key] = redactSecretsDeep(item, tally);
62
- }
63
- return out;
64
- }
65
- return value;
66
- }
67
-
68
- // src/domains/observability/trace-store.ts
69
21
  var TRACE_SCHEMA_VERSION = 1;
70
22
  var TRACE_DATABASE_FILE = "trace.sqlite";
71
23
  var TRACE_EVENT_POLL_LIMIT = 500;
@@ -1038,12 +990,9 @@ function finiteNonNegative(value) {
1038
990
  }
1039
991
 
1040
992
  export {
1041
- createRedactionTally,
1042
- redactSecretsText,
1043
- redactSecretsDeep,
1044
993
  TRACE_EVENT_POLL_LIMIT,
1045
994
  traceDatabasePath,
1046
995
  TraceReader,
1047
996
  createDispatchTraceMirror
1048
997
  };
1049
- //# sourceMappingURL=chunk-LU4TK2PR.js.map
998
+ //# sourceMappingURL=chunk-HFSBBKSQ.js.map
@@ -9,18 +9,22 @@ var BOOT_TRACE_ENV = "CLIO_CODER_TRACE_BOOT";
9
9
  function isBootTraceEnabled() {
10
10
  return process.env[BOOT_TRACE_ENV] === "1";
11
11
  }
12
+ function formatBootTrace(phase, detail) {
13
+ if (!isBootTraceEnabled()) return null;
14
+ const suffix = detail !== void 0 && detail.length > 0 ? ` (${detail})` : "";
15
+ return `[clio:boot] +${performance.now().toFixed(1)}ms ${phase}${suffix}
16
+ `;
17
+ }
12
18
  function traceBoot(phase, detail) {
13
- if (!isBootTraceEnabled()) return;
14
19
  try {
15
- const elapsedMs = performance.now();
16
- const suffix = detail !== void 0 && detail.length > 0 ? ` (${detail})` : "";
17
- process.stderr.write(`[clio:boot] +${elapsedMs.toFixed(1)}ms ${phase}${suffix}
18
- `);
20
+ const line = formatBootTrace(phase, detail);
21
+ if (line) process.stderr.write(line);
19
22
  } catch {
20
23
  }
21
24
  }
22
25
 
23
26
  export {
27
+ formatBootTrace,
24
28
  traceBoot
25
29
  };
26
- //# sourceMappingURL=chunk-PIUMUEMV.js.map
30
+ //# sourceMappingURL=chunk-HKIYEGME.js.map
@@ -0,0 +1,73 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ resolveClioDirs
4
+ } from "./chunk-BNAZZHFG.js";
5
+ import {
6
+ init_esm_shims
7
+ } from "./chunk-3R73A4XB.js";
8
+
9
+ // src/core/compile-cache.ts
10
+ init_esm_shims();
11
+ import { existsSync } from "node:fs";
12
+ import { enableCompileCache } from "node:module";
13
+ import { join } from "node:path";
14
+ var INJECTED_COMPILE_CACHE_ENV = "CLIO_CODER_INJECTED_COMPILE_CACHE";
15
+ function createCompileCache(enableFn = enableCompileCache, rootExists = existsSync) {
16
+ let settled;
17
+ return {
18
+ enable(env = process.env) {
19
+ if (settled !== void 0) return settled;
20
+ if (env.NODE_DISABLE_COMPILE_CACHE !== void 0) {
21
+ settled = null;
22
+ return settled;
23
+ }
24
+ try {
25
+ if (env.NODE_COMPILE_CACHE !== void 0) {
26
+ settled = enableFn().directory ?? null;
27
+ return settled;
28
+ }
29
+ const root = resolveClioDirs().cache;
30
+ if (!rootExists(root)) {
31
+ settled = null;
32
+ return settled;
33
+ }
34
+ settled = enableFn(join(root, "v8-compile-cache")).directory ?? null;
35
+ } catch {
36
+ settled = null;
37
+ }
38
+ return settled;
39
+ },
40
+ directory: () => settled ?? null
41
+ };
42
+ }
43
+ var processCompileCache = createCompileCache();
44
+ function enableClioCompileCache(env) {
45
+ return processCompileCache.enable(env);
46
+ }
47
+ function workerCompileCacheEnvironment(env, directory) {
48
+ const operatorControlled = env.NODE_COMPILE_CACHE !== void 0 || env.NODE_DISABLE_COMPILE_CACHE !== void 0;
49
+ if (operatorControlled || directory === null) {
50
+ if (env[INJECTED_COMPILE_CACHE_ENV] === void 0) return env;
51
+ const cleaned = { ...env };
52
+ Reflect.deleteProperty(cleaned, INJECTED_COMPILE_CACHE_ENV);
53
+ return cleaned;
54
+ }
55
+ return { ...env, NODE_COMPILE_CACHE: directory, [INJECTED_COMPILE_CACHE_ENV]: directory };
56
+ }
57
+ function deleteInjectedCompileCacheFrom(env) {
58
+ const injected = env[INJECTED_COMPILE_CACHE_ENV];
59
+ if (injected === void 0) return;
60
+ if (env.NODE_COMPILE_CACHE === injected) {
61
+ Reflect.deleteProperty(env, "NODE_COMPILE_CACHE");
62
+ }
63
+ Reflect.deleteProperty(env, INJECTED_COMPILE_CACHE_ENV);
64
+ }
65
+
66
+ export {
67
+ INJECTED_COMPILE_CACHE_ENV,
68
+ createCompileCache,
69
+ enableClioCompileCache,
70
+ workerCompileCacheEnvironment,
71
+ deleteInjectedCompileCacheFrom
72
+ };
73
+ //# sourceMappingURL=chunk-I4HZDVNP.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-QTYWRVRA.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-IGLFWIYI.js.map
@@ -0,0 +1,162 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ processAlive,
4
+ processBirthToken
5
+ } from "./chunk-3I7MS7N2.js";
6
+ import {
7
+ init_esm_shims
8
+ } from "./chunk-3R73A4XB.js";
9
+
10
+ // src/core/state-file-lock.ts
11
+ init_esm_shims();
12
+ import { closeSync, mkdirSync, openSync, readFileSync, statSync, unlinkSync, utimesSync, writeSync } from "node:fs";
13
+ import { hostname } from "node:os";
14
+ import { dirname } from "node:path";
15
+ import { setTimeout as sleep } from "node:timers/promises";
16
+ var STALE_LOCK_MS = 3e4;
17
+ var REFRESH_LOCK_MS = 5e3;
18
+ var FILE_LOCK_ACQUIRE_TIMEOUT_MS = 2e4;
19
+ function readLockOwner(lockPath) {
20
+ try {
21
+ const raw = readFileSync(lockPath, "utf8").trim();
22
+ const record = raw.startsWith("{") ? JSON.parse(raw) : { pid: Number.parseInt(raw, 10) };
23
+ const { host, pid, birthToken } = record;
24
+ if (typeof pid !== "number" || !Number.isInteger(pid) || pid <= 0) return null;
25
+ return {
26
+ host: typeof host === "string" ? host : null,
27
+ pid,
28
+ birthToken: typeof birthToken === "string" ? birthToken : null
29
+ };
30
+ } catch {
31
+ return null;
32
+ }
33
+ }
34
+ function ownerIsAlive(owner) {
35
+ if (owner.host !== null && owner.host !== hostname()) return true;
36
+ if (!processAlive(owner.pid)) return false;
37
+ if (owner.birthToken === null) return true;
38
+ const current = processBirthToken(owner.pid);
39
+ return current === null || current === owner.birthToken;
40
+ }
41
+ function lockfileAgeMs(lockPath) {
42
+ try {
43
+ return Date.now() - statSync(lockPath).mtimeMs;
44
+ } catch {
45
+ return null;
46
+ }
47
+ }
48
+ function tryAcquire(lockPath) {
49
+ try {
50
+ const fd = openSync(lockPath, "wx", 384);
51
+ try {
52
+ writeSync(
53
+ fd,
54
+ `${JSON.stringify({ host: hostname(), pid: process.pid, birthToken: processBirthToken(), at: (/* @__PURE__ */ new Date()).toISOString() })}
55
+ `
56
+ );
57
+ } finally {
58
+ closeSync(fd);
59
+ }
60
+ return true;
61
+ } catch (err) {
62
+ if (err.code !== "EEXIST") throw err;
63
+ }
64
+ const owner = readLockOwner(lockPath);
65
+ const ageMs = lockfileAgeMs(lockPath);
66
+ const abandoned = owner !== null ? !ownerIsAlive(owner) : ageMs !== null && ageMs > STALE_LOCK_MS;
67
+ if (abandoned) {
68
+ try {
69
+ unlinkSync(lockPath);
70
+ } catch {
71
+ }
72
+ }
73
+ return false;
74
+ }
75
+ function timeoutError(lockPath, timeoutMs) {
76
+ return new Error(
77
+ `timed out after ${timeoutMs}ms waiting for ${lockPath} (owner pid=${readLockOwner(lockPath)?.pid ?? "?"}); delete it if no other clio process is running`
78
+ );
79
+ }
80
+ function backoffMs(attempt) {
81
+ return Math.min(100, 5 * 2 ** Math.min(attempt, 5));
82
+ }
83
+ function release(lockPath) {
84
+ const owner = readLockOwner(lockPath);
85
+ if (owner?.pid !== process.pid || owner.host !== null && owner.host !== hostname()) return;
86
+ try {
87
+ unlinkSync(lockPath);
88
+ } catch {
89
+ }
90
+ }
91
+ function startRefresh(lockPath) {
92
+ const timer = setInterval(() => {
93
+ const at = /* @__PURE__ */ new Date();
94
+ try {
95
+ utimesSync(lockPath, at, at);
96
+ } catch {
97
+ }
98
+ }, REFRESH_LOCK_MS);
99
+ timer.unref();
100
+ return () => clearInterval(timer);
101
+ }
102
+ function withStateFileLockSync(targetPath, fn, options = {}) {
103
+ const lockPath = `${targetPath}.lock`;
104
+ const timeoutMs = options.timeoutMs ?? FILE_LOCK_ACQUIRE_TIMEOUT_MS;
105
+ let held = false;
106
+ try {
107
+ options.signal?.throwIfAborted();
108
+ mkdirSync(dirname(lockPath), { recursive: true });
109
+ const deadlineMs = Date.now() + timeoutMs;
110
+ for (let attempt = 1; !tryAcquire(lockPath); attempt += 1) {
111
+ options.signal?.throwIfAborted();
112
+ if (Date.now() > deadlineMs) throw timeoutError(lockPath, timeoutMs);
113
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, backoffMs(attempt));
114
+ }
115
+ held = true;
116
+ } catch (err) {
117
+ options.signal?.throwIfAborted();
118
+ if (options.onAcquireFailure !== "run-unlocked") throw err;
119
+ }
120
+ try {
121
+ return fn();
122
+ } finally {
123
+ if (held) release(lockPath);
124
+ }
125
+ }
126
+ async function withStateFileLock(targetPath, fn, options = {}) {
127
+ const lockPath = `${targetPath}.lock`;
128
+ const timeoutMs = options.timeoutMs ?? FILE_LOCK_ACQUIRE_TIMEOUT_MS;
129
+ let held = false;
130
+ try {
131
+ options.signal?.throwIfAborted();
132
+ mkdirSync(dirname(lockPath), { recursive: true });
133
+ const deadlineMs = Date.now() + timeoutMs;
134
+ for (let attempt = 1; !tryAcquire(lockPath); attempt += 1) {
135
+ options.signal?.throwIfAborted();
136
+ if (Date.now() > deadlineMs) throw timeoutError(lockPath, timeoutMs);
137
+ const base = backoffMs(attempt);
138
+ const delayMs = base + Math.floor(Math.random() * base);
139
+ if (options.signal) await sleep(delayMs, void 0, { signal: options.signal });
140
+ else await sleep(delayMs);
141
+ }
142
+ held = true;
143
+ options.signal?.throwIfAborted();
144
+ } catch (err) {
145
+ options.signal?.throwIfAborted();
146
+ if (options.onAcquireFailure !== "run-unlocked") throw err;
147
+ }
148
+ const stopRefresh = held ? startRefresh(lockPath) : null;
149
+ try {
150
+ return await fn();
151
+ } finally {
152
+ stopRefresh?.();
153
+ if (held) release(lockPath);
154
+ }
155
+ }
156
+
157
+ export {
158
+ FILE_LOCK_ACQUIRE_TIMEOUT_MS,
159
+ withStateFileLockSync,
160
+ withStateFileLock
161
+ };
162
+ //# sourceMappingURL=chunk-IKCO5N3L.js.map
@@ -0,0 +1,56 @@
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/domains/safety/scope.ts
7
+ init_esm_shims();
8
+ import path from "node:path";
9
+ function normalizeRoot(root) {
10
+ return path.resolve(root);
11
+ }
12
+ function isUnder(child, parent) {
13
+ const c = normalizeRoot(child);
14
+ const p = normalizeRoot(parent);
15
+ if (c === p) return true;
16
+ const rel = path.relative(p, c);
17
+ return rel !== "" && !rel.startsWith("..") && !path.isAbsolute(rel);
18
+ }
19
+ function isSubset(worker, orchestrator) {
20
+ for (const action of worker.allowedActions) {
21
+ if (!orchestrator.allowedActions.has(action)) return false;
22
+ }
23
+ for (const root of worker.allowedWriteRoots) {
24
+ const covered = orchestrator.allowedWriteRoots.some((outer) => isUnder(root, outer));
25
+ if (!covered) return false;
26
+ }
27
+ if (worker.allowNetwork && !orchestrator.allowNetwork) return false;
28
+ if (worker.allowDispatch && !orchestrator.allowDispatch) return false;
29
+ return true;
30
+ }
31
+ var READONLY_SCOPE = {
32
+ allowedActions: /* @__PURE__ */ new Set(["read"]),
33
+ allowedWriteRoots: [],
34
+ allowNetwork: true,
35
+ allowDispatch: false
36
+ };
37
+ var WORKSPACE_SCOPE = {
38
+ allowedActions: /* @__PURE__ */ new Set(["read", "write", "execute", "dispatch"]),
39
+ allowedWriteRoots: [process.cwd()],
40
+ allowNetwork: true,
41
+ allowDispatch: true
42
+ };
43
+ var CONFIRMED_SCOPE = {
44
+ allowedActions: /* @__PURE__ */ new Set(["read", "write", "execute", "dispatch", "system_modify"]),
45
+ allowedWriteRoots: [process.cwd()],
46
+ allowNetwork: true,
47
+ allowDispatch: true
48
+ };
49
+
50
+ export {
51
+ isSubset,
52
+ READONLY_SCOPE,
53
+ WORKSPACE_SCOPE,
54
+ CONFIRMED_SCOPE
55
+ };
56
+ //# sourceMappingURL=chunk-IR4CFBFN.js.map
@@ -1,20 +1,22 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
- TASK_MEMORY_CONTENT_MAX_CHARS,
4
- TASK_MEMORY_DEFAULT_KNOWLEDGE_CAP,
5
- TASK_MEMORY_DEFAULT_PROCEDURAL_CAP,
6
3
  inspectEvidence
7
- } from "./chunk-7SS2CTV2.js";
4
+ } from "./chunk-6EJV5X2W.js";
8
5
  import {
9
6
  createRedactionTally,
10
7
  redactSecretsText
11
- } from "./chunk-LU4TK2PR.js";
8
+ } from "./chunk-4BJ5BYCE.js";
9
+ import {
10
+ TASK_MEMORY_CONTENT_MAX_CHARS,
11
+ TASK_MEMORY_DEFAULT_KNOWLEDGE_CAP,
12
+ TASK_MEMORY_DEFAULT_PROCEDURAL_CAP
13
+ } from "./chunk-OAO4GE4M.js";
12
14
  import {
13
15
  canonicalizeExistingPath
14
- } from "./chunk-OLBBMFRD.js";
16
+ } from "./chunk-ECH6PKUQ.js";
15
17
  import {
16
18
  ceilChars
17
- } from "./chunk-H6F6BYOH.js";
19
+ } from "./chunk-LZSJBIVT.js";
18
20
  import {
19
21
  safeResourceWrite
20
22
  } from "./chunk-WEPFGWHJ.js";
@@ -693,9 +695,6 @@ function compareStrings2(a, b) {
693
695
  return a.localeCompare(b);
694
696
  }
695
697
 
696
- // src/domains/memory/index.ts
697
- init_esm_shims();
698
-
699
698
  // src/domains/memory/task-memory-handoff.ts
700
699
  init_esm_shims();
701
700
  import { existsSync, readdirSync, readFileSync as readFileSync2, statSync } from "node:fs";
@@ -908,6 +907,9 @@ function truncate(value) {
908
907
  return value.length <= TRACE_TEXT_MAX_CHARS ? value : `${value.slice(0, TRACE_TEXT_MAX_CHARS)}\u2026[truncated]`;
909
908
  }
910
909
 
910
+ // src/domains/memory/index.ts
911
+ init_esm_shims();
912
+
911
913
  export {
912
914
  memoryStorePath,
913
915
  loadMemoryRecords,
@@ -927,4 +929,4 @@ export {
927
929
  taskMemoryTracePath,
928
930
  createTaskMemoryTrace
929
931
  };
930
- //# sourceMappingURL=chunk-PFEFKVGL.js.map
932
+ //# sourceMappingURL=chunk-J5HN4RYU.js.map
@@ -2,7 +2,7 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  GUARDRAIL_ENV_VARS,
4
4
  resolveGuardrail
5
- } from "./chunk-NMOX6HFD.js";
5
+ } from "./chunk-4ZG3XFUR.js";
6
6
  import {
7
7
  init_esm_shims
8
8
  } from "./chunk-3R73A4XB.js";
@@ -31,4 +31,4 @@ function armInternalDispatchDeadline(dispatch, runId, label, env = process.env,
31
31
  export {
32
32
  armInternalDispatchDeadline
33
33
  };
34
- //# sourceMappingURL=chunk-R5KLMSBV.js.map
34
+ //# sourceMappingURL=chunk-J5Q24KAG.js.map