@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
@@ -2,12 +2,34 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  shellQuote
4
4
  } from "./chunk-TXOTCRLG.js";
5
+ import {
6
+ WORKER_BULK_FRAME_MAX_BYTES,
7
+ WORKER_EVENT_QUEUE_MAX_FRAMES,
8
+ WORKER_PROTOCOL_VERSION,
9
+ WORKER_STDIN_FRAME_MAX_BYTES,
10
+ WORKER_STDIN_QUEUE_MAX_BYTES,
11
+ canonicalJson,
12
+ endpointIdentityHash,
13
+ isControlLine,
14
+ isReceiptBearingFrame,
15
+ parseBulkFrame,
16
+ parseControlFrame,
17
+ toolSignatureOf
18
+ } from "./chunk-CMZWFGD2.js";
19
+ import {
20
+ enableClioCompileCache,
21
+ workerCompileCacheEnvironment
22
+ } from "./chunk-I4HZDVNP.js";
5
23
  import {
6
24
  atomicWrite
7
- } from "./chunk-HQQID6OA.js";
25
+ } from "./chunk-M6SHUN7Q.js";
8
26
  import {
9
27
  clioStateDir
10
28
  } from "./chunk-BNAZZHFG.js";
29
+ import {
30
+ AI_AGENT_NAME,
31
+ withClioAgentEnvironment
32
+ } from "./chunk-6EJMN2Y3.js";
11
33
  import {
12
34
  readClioVersion,
13
35
  resolvePackageRoot
@@ -129,335 +151,9 @@ import { join } from "node:path";
129
151
 
130
152
  // src/domains/dispatch/worker-protocol.ts
131
153
  init_esm_shims();
132
- import { createHash as createHash2 } from "node:crypto";
133
-
134
- // src/worker/protocol.ts
135
- init_esm_shims();
136
154
  import { createHash } from "node:crypto";
137
- var WORKER_PROTOCOL_VERSION = 1;
138
- var CONTROL_FRAME_PREFIX = "@clio-control/1 ";
139
- var WORKER_CONTROL_FRAME_MAX_BYTES = 16 * 1024;
140
- var WORKER_BULK_FRAME_MAX_BYTES = 4 * 1024 * 1024;
141
- var WORKER_STDIN_FRAME_MAX_BYTES = 1024 * 1024;
142
- var WORKER_STDIN_QUEUE_MAX_BYTES = 4 * 1024 * 1024;
143
- var WORKER_EVENT_QUEUE_MAX_FRAMES = 4096;
144
- function knownResource(value) {
145
- return { known: true, value };
146
- }
147
- var UNKNOWN_RESOURCE = { known: false };
148
- var WORKER_RESOURCE_LABEL_MAX = 32;
149
- var WORKER_RESIDENT_MODEL_MAX = 64;
150
- var AGENT_LEDGER_SCOPE_MAX_ENTRIES = 8;
151
- var AGENT_LEDGER_SCOPE_ENTRY_MAX_CHARS = 200;
152
- var AGENT_LEDGER_INTENT_MAX_CHARS = 200;
153
- var AGENT_LEDGER_CLAIM_MAX_CHARS = 400;
154
- var AGENT_LEDGER_EVIDENCE_MAX_CHARS = 400;
155
- var AGENT_LEDGER_PATH_MAX_CHARS = 400;
156
- var AGENT_LEDGER_ENTRY_ID = /^e[1-9][0-9]*$/;
157
- function isAgentLedgerEntryId(value) {
158
- return typeof value === "string" && AGENT_LEDGER_ENTRY_ID.test(value);
159
- }
160
- function boundedString(value, max) {
161
- return typeof value === "string" && value.length > 0 && value.length <= max;
162
- }
163
- function parseAgentLedgerBody(value) {
164
- if (typeof value !== "object" || value === null || Array.isArray(value)) {
165
- return { ok: false, reason: "ledger body is not an object" };
166
- }
167
- const record = value;
168
- switch (record.kind) {
169
- case "claim": {
170
- const scope = record.scope;
171
- if (!Array.isArray(scope) || scope.length === 0) {
172
- return { ok: false, reason: "claim scope must be a non-empty array of path prefixes" };
173
- }
174
- if (scope.length > AGENT_LEDGER_SCOPE_MAX_ENTRIES) {
175
- return { ok: false, reason: `claim scope exceeds ${AGENT_LEDGER_SCOPE_MAX_ENTRIES} entries` };
176
- }
177
- for (const entry of scope) {
178
- if (!boundedString(entry, AGENT_LEDGER_SCOPE_ENTRY_MAX_CHARS)) {
179
- return {
180
- ok: false,
181
- reason: `claim scope entries must be 1..${AGENT_LEDGER_SCOPE_ENTRY_MAX_CHARS} characters`
182
- };
183
- }
184
- }
185
- if (!boundedString(record.intent, AGENT_LEDGER_INTENT_MAX_CHARS)) {
186
- return { ok: false, reason: `claim intent must be 1..${AGENT_LEDGER_INTENT_MAX_CHARS} characters` };
187
- }
188
- return { ok: true, body: { kind: "claim", scope: scope.map(String), intent: record.intent } };
189
- }
190
- case "finding": {
191
- if (!boundedString(record.claim, AGENT_LEDGER_CLAIM_MAX_CHARS)) {
192
- return { ok: false, reason: `finding claim must be 1..${AGENT_LEDGER_CLAIM_MAX_CHARS} characters` };
193
- }
194
- const body = {
195
- kind: "finding",
196
- claim: record.claim
197
- };
198
- if (record.path !== void 0) {
199
- if (!boundedString(record.path, AGENT_LEDGER_PATH_MAX_CHARS)) {
200
- return { ok: false, reason: `finding path must be 1..${AGENT_LEDGER_PATH_MAX_CHARS} characters` };
201
- }
202
- body.path = record.path;
203
- }
204
- if (record.line !== void 0) {
205
- const line = record.line;
206
- if (typeof line !== "number" || !Number.isSafeInteger(line) || line <= 0) {
207
- return { ok: false, reason: "finding line must be a positive safe integer" };
208
- }
209
- body.line = line;
210
- }
211
- return { ok: true, body };
212
- }
213
- case "review": {
214
- if (!isAgentLedgerEntryId(record.target)) {
215
- return { ok: false, reason: "review target must be a ledger entry id such as e3" };
216
- }
217
- if (typeof record.passed !== "boolean") {
218
- return { ok: false, reason: "review passed must be a boolean" };
219
- }
220
- if (!boundedString(record.evidence, AGENT_LEDGER_EVIDENCE_MAX_CHARS)) {
221
- return { ok: false, reason: `review evidence must be 1..${AGENT_LEDGER_EVIDENCE_MAX_CHARS} characters` };
222
- }
223
- return {
224
- ok: true,
225
- body: { kind: "review", target: record.target, passed: record.passed, evidence: record.evidence }
226
- };
227
- }
228
- default:
229
- return { ok: false, reason: `unknown ledger entry kind ${String(record.kind)}` };
230
- }
231
- }
232
- function parseAgentLedgerEntry(value) {
233
- if (typeof value !== "object" || value === null || Array.isArray(value)) return null;
234
- const record = value;
235
- const sequence = record.sequence;
236
- if (typeof sequence !== "number" || !Number.isSafeInteger(sequence) || sequence <= 0) return null;
237
- if (!isAgentLedgerEntryId(record.id)) return null;
238
- for (const key of ["at", "runId", "assignmentId", "agentId", "nodeId"]) {
239
- if (typeof record[key] !== "string" || record[key].length === 0) return null;
240
- }
241
- const body = parseAgentLedgerBody(record.body);
242
- if (!body.ok) return null;
243
- const conflicts = record.conflictsWith;
244
- if (conflicts !== void 0 && !(Array.isArray(conflicts) && conflicts.every(isAgentLedgerEntryId))) return null;
245
- return {
246
- id: record.id,
247
- sequence,
248
- at: record.at,
249
- runId: record.runId,
250
- assignmentId: record.assignmentId,
251
- agentId: record.agentId,
252
- nodeId: record.nodeId,
253
- body: body.body,
254
- ...conflicts === void 0 ? {} : { conflictsWith: [...conflicts] }
255
- };
256
- }
257
- function sha256Hex(input) {
258
- return createHash("sha256").update(input, "utf8").digest("hex");
259
- }
260
- var HEX_64 = /^[0-9a-f]{64}$/;
261
- function endpointIdentityHash(url) {
262
- if (url === void 0 || url.trim().length === 0) return sha256Hex("clio.endpoint:none");
263
- const raw = url.trim();
264
- let canonical;
265
- try {
266
- const parsed = new URL(raw);
267
- const path = parsed.pathname.replace(/\/+$/u, "");
268
- canonical = `${parsed.protocol}//${parsed.hostname}:${parsed.port}${path}`;
269
- } catch {
270
- canonical = raw.replace(/\/+$/u, "");
271
- }
272
- return sha256Hex(`clio.endpoint:${canonical}`);
273
- }
274
- function workerSpecDigest(spec) {
275
- return sha256Hex(`clio.workerSpec:${canonicalJson(spec)}`);
276
- }
277
- function toolSignatureOf(names) {
278
- return sha256Hex(`clio.tools:${[...names].sort().join(",")}`);
279
- }
280
- function canonicalJson(value) {
281
- if (value === null) return "null";
282
- if (typeof value === "number") return Number.isFinite(value) ? JSON.stringify(value) : "null";
283
- if (typeof value === "string" || typeof value === "boolean") return JSON.stringify(value);
284
- if (Array.isArray(value))
285
- return `[${value.map((entry) => entry === void 0 ? "null" : canonicalJson(entry)).join(",")}]`;
286
- if (typeof value === "object") {
287
- const record = value;
288
- const parts = [];
289
- for (const key of Object.keys(record).sort()) {
290
- const child = record[key];
291
- if (child === void 0) continue;
292
- parts.push(`${JSON.stringify(key)}:${canonicalJson(child)}`);
293
- }
294
- return `{${parts.join(",")}}`;
295
- }
296
- return "null";
297
- }
298
- function withinFrameBudget(line, maxBytes) {
299
- return Buffer.byteLength(line, "utf8") <= maxBytes;
300
- }
301
- function parseJsonObject(line, maxBytes, lane) {
302
- if (!withinFrameBudget(line, maxBytes)) {
303
- return { ok: false, reason: `${lane} frame exceeds ${maxBytes} bytes` };
304
- }
305
- let value;
306
- try {
307
- value = JSON.parse(line);
308
- } catch {
309
- return { ok: false, reason: `${lane} frame is not JSON` };
310
- }
311
- if (typeof value !== "object" || value === null || Array.isArray(value)) {
312
- return { ok: false, reason: `${lane} frame is not a JSON object` };
313
- }
314
- return { ok: true, value };
315
- }
316
- function parseBulkFrame(line) {
317
- return parseJsonObject(line, WORKER_BULK_FRAME_MAX_BYTES, "bulk");
318
- }
319
- function isControlLine(line) {
320
- return line.startsWith(CONTROL_FRAME_PREFIX);
321
- }
322
- function encodeControlFrame(frame) {
323
- return `${CONTROL_FRAME_PREFIX}${JSON.stringify(frame)}
324
- `;
325
- }
326
- function readFiniteNumber(record, key) {
327
- const value = record[key];
328
- return typeof value === "number" && Number.isFinite(value) ? value : null;
329
- }
330
- function readResourceValue(value, validate) {
331
- if (typeof value !== "object" || value === null || Array.isArray(value)) return null;
332
- const record = value;
333
- if (record.known === false) return { known: false };
334
- if (record.known !== true || !validate(record.value)) return null;
335
- return { known: true, value: record.value };
336
- }
337
- function isFiniteNumber(value) {
338
- return typeof value === "number" && Number.isFinite(value) && value >= 0;
339
- }
340
- function isBoundedStringArray(value, max) {
341
- return Array.isArray(value) && value.length <= max && value.every((entry) => typeof entry === "string");
342
- }
343
- function parseResourceFacts(value) {
344
- if (typeof value !== "object" || value === null || Array.isArray(value)) return null;
345
- const record = value;
346
- if (!isBoundedStringArray(record.labels, WORKER_RESOURCE_LABEL_MAX)) return null;
347
- const numeric = ["cpuCount", "totalMemoryBytes", "freeMemoryBytes", "gpuCount", "vramBytes"];
348
- const parsed = { labels: [...record.labels] };
349
- for (const key of numeric) {
350
- const fact = readResourceValue(record[key], isFiniteNumber);
351
- if (fact === null) return null;
352
- parsed[key] = fact;
353
- }
354
- const residentModels = readResourceValue(
355
- record.residentModels,
356
- (raw) => isBoundedStringArray(raw, WORKER_RESIDENT_MODEL_MAX)
357
- );
358
- if (residentModels === null) return null;
359
- parsed.residentModels = residentModels;
360
- return parsed;
361
- }
362
- function parseAttestation(value) {
363
- if (typeof value !== "object" || value === null || Array.isArray(value)) {
364
- return { ok: false, reason: "announce attestation is not an object" };
365
- }
366
- const record = value;
367
- if (record.protocolVersion !== WORKER_PROTOCOL_VERSION) {
368
- return { ok: false, reason: `announce protocol version ${String(record.protocolVersion)} is unsupported` };
369
- }
370
- const specVersion = readFiniteNumber(record, "specVersion");
371
- if (specVersion === null) return { ok: false, reason: "announce specVersion must be a finite number" };
372
- const pid = readFiniteNumber(record, "pid");
373
- if (pid === null) return { ok: false, reason: "announce pid must be a finite number" };
374
- const rawPgid = record.processGroupId;
375
- if (rawPgid !== null && !(typeof rawPgid === "number" && Number.isFinite(rawPgid))) {
376
- return { ok: false, reason: "announce processGroupId must be a finite number or null" };
377
- }
378
- for (const key of ["host", "runtimeId", "targetId", "wireModelId"]) {
379
- if (typeof record[key] !== "string" || record[key].length === 0) {
380
- return { ok: false, reason: `announce ${key} must be a non-empty string` };
381
- }
382
- }
383
- for (const key of ["settingsFingerprint", "specDigest", "endpointIdentityHash", "toolSignature"]) {
384
- if (typeof record[key] !== "string" || !HEX_64.test(record[key])) {
385
- return { ok: false, reason: `announce ${key} must be a sha256 hex digest` };
386
- }
387
- }
388
- const resources = parseResourceFacts(record.resources);
389
- if (resources === null) return { ok: false, reason: "announce resources are missing or malformed" };
390
- return {
391
- ok: true,
392
- value: {
393
- protocolVersion: WORKER_PROTOCOL_VERSION,
394
- specVersion,
395
- pid,
396
- processGroupId: typeof rawPgid === "number" ? rawPgid : null,
397
- host: record.host,
398
- settingsFingerprint: record.settingsFingerprint,
399
- specDigest: record.specDigest,
400
- runtimeId: record.runtimeId,
401
- targetId: record.targetId,
402
- endpointIdentityHash: record.endpointIdentityHash,
403
- wireModelId: record.wireModelId,
404
- toolSignature: record.toolSignature,
405
- resources
406
- }
407
- };
408
- }
409
- function parseControlFrame(line) {
410
- if (!isControlLine(line)) return { ok: false, reason: "control frame is missing its lane marker" };
411
- const body = line.slice(CONTROL_FRAME_PREFIX.length);
412
- const parsed = parseJsonObject(body, WORKER_CONTROL_FRAME_MAX_BYTES, "control");
413
- if (!parsed.ok) return parsed;
414
- const record = parsed.value;
415
- switch (record.kind) {
416
- case "announce": {
417
- const attestation = parseAttestation(record.attestation);
418
- if (!attestation.ok) return attestation;
419
- return { ok: true, value: { kind: "announce", attestation: attestation.value } };
420
- }
421
- case "heartbeat":
422
- return { ok: true, value: { kind: "heartbeat" } };
423
- case "cancel_ack": {
424
- const at = readFiniteNumber(record, "at");
425
- if (at === null) return { ok: false, reason: "cancel_ack frame requires a finite at" };
426
- return { ok: true, value: { kind: "cancel_ack", at } };
427
- }
428
- case "ledger_post": {
429
- const body2 = parseAgentLedgerBody(record.body);
430
- if (!body2.ok) return { ok: false, reason: `ledger_post frame rejected: ${body2.reason}` };
431
- return { ok: true, value: { kind: "ledger_post", body: body2.body } };
432
- }
433
- default:
434
- return { ok: false, reason: `unknown control frame kind ${String(record.kind)}` };
435
- }
436
- }
437
- var RECEIPT_BEARING_BULK_TYPES = /* @__PURE__ */ new Set([
438
- "message_end",
439
- "clio_run_outcome",
440
- "clio_permission_escalated",
441
- "clio_permission_resolved",
442
- "clio_steer_received",
443
- "clio_tool_activity",
444
- "clio_skill_activation",
445
- "clio_safety_decision",
446
- "clio_verification",
447
- "clio_usage",
448
- "tool_execution_end",
449
- "spawn_error"
450
- ]);
451
- function isReceiptBearingFrame(value) {
452
- if (typeof value !== "object" || value === null || Array.isArray(value)) return true;
453
- const type = value.type;
454
- if (typeof type !== "string") return true;
455
- return RECEIPT_BEARING_BULK_TYPES.has(type);
456
- }
457
-
458
- // src/domains/dispatch/worker-protocol.ts
459
155
  function computeSettingsFingerprint(settings) {
460
- return createHash2("sha256").update(`clio.settings:${canonicalJson(settings)}`, "utf8").digest("hex");
156
+ return createHash("sha256").update(`clio.settings:${canonicalJson(settings)}`, "utf8").digest("hex");
461
157
  }
462
158
  function verifyWorkerAttestation(attestation, approved) {
463
159
  if (attestation.protocolVersion !== WORKER_PROTOCOL_VERSION) {
@@ -502,7 +198,7 @@ function approvedIdentityForSpec(spec) {
502
198
  };
503
199
  }
504
200
  function workerSpecDigestOf(spec) {
505
- return createHash2("sha256").update(`clio.workerSpec:${canonicalJson(spec)}`, "utf8").digest("hex");
201
+ return createHash("sha256").update(`clio.workerSpec:${canonicalJson(spec)}`, "utf8").digest("hex");
506
202
  }
507
203
  function resourceOrNull(value) {
508
204
  return value.known ? value.value : null;
@@ -607,7 +303,7 @@ function spawnWorkerProcess(command, args, spec, opts) {
607
303
  const child = spawn(command, [...args], {
608
304
  stdio: ["pipe", "pipe", "pipe"],
609
305
  cwd: opts?.cwd,
610
- env: opts?.env ?? process.env,
306
+ env: withClioAgentEnvironment(opts?.env ?? process.env),
611
307
  // The worker leads its own process group so abort escalation covers the
612
308
  // descendants a runtime spawned, not only the immediate child.
613
309
  detached: true
@@ -914,9 +610,12 @@ function spawnNativeWorker(spec, opts) {
914
610
  const { workerEntryPath: _entryPath, ...processOptions } = opts ?? {};
915
611
  return spawnWorkerProcess(process.execPath, ["--disable-warning=ExperimentalWarning", workerEntry], spec, {
916
612
  ...processOptions,
917
- env: opts?.env ?? process.env
613
+ env: withCompileCacheEnvironment(opts?.env ?? process.env)
918
614
  });
919
615
  }
616
+ function withCompileCacheEnvironment(env) {
617
+ return workerCompileCacheEnvironment(env, enableClioCompileCache());
618
+ }
920
619
 
921
620
  // src/domains/dispatch/transport.ts
922
621
  var LOCAL_NODE_ID = "local";
@@ -929,7 +628,7 @@ function remoteEnvAssignments(node) {
929
628
  const residency = node.residency ?? "observe";
930
629
  const labels = (node.labels ?? []).map((label) => label.trim()).filter((label) => label.length > 0);
931
630
  const labelAssignment = labels.length > 0 ? ` CLIO_CODER_WORKER_LABELS=${shellQuote(labels.join(","))}` : "";
932
- return `CLIO_CODER_RESIDENCY=${residency} CLIO_CODER_WORKER_PGID=$$${labelAssignment}`;
631
+ return `AI_AGENT=${AI_AGENT_NAME} CLIO_CODER_RESIDENCY=${residency} CLIO_CODER_WORKER_PGID=$$${labelAssignment}`;
933
632
  }
934
633
  function buildRemoteWorkerCommand(node, cwd) {
935
634
  const entry = node.clioCoderEntry !== void 0 && node.clioCoderEntry.trim().length > 0 ? node.clioCoderEntry.trim() : DEFAULT_REMOTE_CLIO_ENTRY;
@@ -1209,19 +908,6 @@ async function runFleetNodePreflight(node, projectRoot, options) {
1209
908
  }
1210
909
 
1211
910
  export {
1212
- WORKER_PROTOCOL_VERSION,
1213
- WORKER_STDIN_FRAME_MAX_BYTES,
1214
- knownResource,
1215
- UNKNOWN_RESOURCE,
1216
- WORKER_RESOURCE_LABEL_MAX,
1217
- parseAgentLedgerBody,
1218
- parseAgentLedgerEntry,
1219
- endpointIdentityHash,
1220
- workerSpecDigest,
1221
- toolSignatureOf,
1222
- canonicalJson,
1223
- withinFrameBudget,
1224
- encodeControlFrame,
1225
911
  computeSettingsFingerprint,
1226
912
  receiptAttestationFields,
1227
913
  spawnNativeWorker,
@@ -1234,4 +920,4 @@ export {
1234
920
  routeFactVerdict,
1235
921
  runFleetNodePreflight
1236
922
  };
1237
- //# sourceMappingURL=chunk-GAEBEQVI.js.map
923
+ //# sourceMappingURL=chunk-OOJYHWRB.js.map
@@ -10,6 +10,7 @@ var BusChannels = {
10
10
  SessionEnd: "session.end",
11
11
  SessionParked: "session.parked",
12
12
  SessionResumed: "session.resumed",
13
+ SessionTurnSwitched: "session.turn_switched",
13
14
  DomainLoaded: "domain.loaded",
14
15
  DomainFailed: "domain.failed",
15
16
  ConfigHotReload: "config.hotReload",
@@ -123,4 +124,4 @@ export {
123
124
  isRunAbortedPayload,
124
125
  getSharedBus
125
126
  };
126
- //# sourceMappingURL=chunk-Q5WJOSJ7.js.map
127
+ //# sourceMappingURL=chunk-OQ33BKR3.js.map
@@ -0,0 +1,73 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ canonicalizeExistingPath
4
+ } from "./chunk-ECH6PKUQ.js";
5
+ import {
6
+ init_esm_shims
7
+ } from "./chunk-3R73A4XB.js";
8
+
9
+ // src/tools/path-utils.ts
10
+ init_esm_shims();
11
+ import { accessSync, constants } from "node:fs";
12
+ import { homedir } from "node:os";
13
+ import { isAbsolute, resolve as resolvePath, sep } from "node:path";
14
+ function toPosixPath(value) {
15
+ return value.split(sep).join("/");
16
+ }
17
+ var UNICODE_SPACES = /[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g;
18
+ var NARROW_NO_BREAK_SPACE = "\u202F";
19
+ function normalizeUnicodeSpaces(value) {
20
+ return value.replace(UNICODE_SPACES, " ");
21
+ }
22
+ function fileExists(filePath) {
23
+ try {
24
+ accessSync(filePath, constants.F_OK);
25
+ return true;
26
+ } catch {
27
+ return false;
28
+ }
29
+ }
30
+ function normalizeAtPrefix(filePath) {
31
+ return filePath.startsWith("@") ? filePath.slice(1) : filePath;
32
+ }
33
+ function tryMacOSScreenshotPath(filePath) {
34
+ return filePath.replace(/ (AM|PM)\./gi, `${NARROW_NO_BREAK_SPACE}$1.`);
35
+ }
36
+ function tryNfdVariant(filePath) {
37
+ return filePath.normalize("NFD");
38
+ }
39
+ function tryCurlyQuoteVariant(filePath) {
40
+ return filePath.replace(/'/g, "\u2019");
41
+ }
42
+ function expandPath(filePath) {
43
+ const normalized = normalizeUnicodeSpaces(normalizeAtPrefix(filePath));
44
+ if (normalized === "~") return homedir();
45
+ if (normalized.startsWith("~/")) return homedir() + normalized.slice(1);
46
+ return normalized;
47
+ }
48
+ function resolveToCwd(filePath, cwd = process.cwd()) {
49
+ const expanded = expandPath(filePath);
50
+ const resolved = isAbsolute(expanded) ? resolvePath(expanded) : resolvePath(cwd, expanded);
51
+ return canonicalizeExistingPath(resolved);
52
+ }
53
+ function resolveReadPath(filePath, cwd = process.cwd()) {
54
+ const resolved = resolveToCwd(filePath, cwd);
55
+ if (fileExists(resolved)) return resolved;
56
+ const amPmVariant = tryMacOSScreenshotPath(resolved);
57
+ if (amPmVariant !== resolved && fileExists(amPmVariant)) return amPmVariant;
58
+ const nfdVariant = tryNfdVariant(resolved);
59
+ if (nfdVariant !== resolved && fileExists(nfdVariant)) return nfdVariant;
60
+ const curlyVariant = tryCurlyQuoteVariant(resolved);
61
+ if (curlyVariant !== resolved && fileExists(curlyVariant)) return curlyVariant;
62
+ const nfdCurlyVariant = tryCurlyQuoteVariant(nfdVariant);
63
+ if (nfdCurlyVariant !== resolved && fileExists(nfdCurlyVariant)) return nfdCurlyVariant;
64
+ return resolved;
65
+ }
66
+
67
+ export {
68
+ toPosixPath,
69
+ expandPath,
70
+ resolveToCwd,
71
+ resolveReadPath
72
+ };
73
+ //# sourceMappingURL=chunk-OQE5J4C6.js.map
@@ -3,21 +3,21 @@ import {
3
3
  readSettings,
4
4
  settingsPath,
5
5
  updateSettings
6
- } from "./chunk-KY56HMHH.js";
6
+ } from "./chunk-A3CYT5EX.js";
7
7
  import {
8
8
  DEFAULT_SETTINGS
9
- } from "./chunk-NMOX6HFD.js";
9
+ } from "./chunk-ZDOOVTXZ.js";
10
10
  import {
11
11
  require_dist
12
- } from "./chunk-GB6QRBXN.js";
13
- import {
14
- safeResourceBackupPath,
15
- safeResourceWrite
16
- } from "./chunk-WEPFGWHJ.js";
12
+ } from "./chunk-APJ265NV.js";
17
13
  import {
18
14
  clioConfigDir,
19
15
  resolveClioDirs
20
16
  } from "./chunk-BNAZZHFG.js";
17
+ import {
18
+ safeResourceBackupPath,
19
+ safeResourceWrite
20
+ } from "./chunk-WEPFGWHJ.js";
21
21
  import {
22
22
  readClioVersion
23
23
  } from "./chunk-IWHMRKLL.js";
@@ -552,4 +552,4 @@ export {
552
552
  importShareArchive,
553
553
  ShareDomainModule
554
554
  };
555
- //# sourceMappingURL=chunk-KKNLWXI6.js.map
555
+ //# sourceMappingURL=chunk-ORBHGJC5.js.map
@@ -1,18 +1,27 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  assertAgentIdNamespace
4
- } from "./chunk-Q3RUPKEJ.js";
4
+ } from "./chunk-OC7FIQPC.js";
5
+ import {
6
+ parseFrontmatter
7
+ } from "./chunk-QKMUKYO7.js";
8
+ import {
9
+ loadSkills
10
+ } from "./chunk-4BPJXDWC.js";
5
11
  import {
6
12
  CONFIRMED_SCOPE,
7
13
  READONLY_SCOPE,
8
14
  WORKSPACE_SCOPE,
15
+ isSubset
16
+ } from "./chunk-IR4CFBFN.js";
17
+ import {
9
18
  createLoopState,
19
+ observe
20
+ } from "./chunk-UOV2BYIW.js";
21
+ import {
10
22
  createSafetyPolicyEngine,
11
- isSubset,
12
- observe,
13
- parseFrontmatter,
14
23
  parseResultContract
15
- } from "./chunk-GEP36Y4X.js";
24
+ } from "./chunk-STBPMHSX.js";
16
25
  import {
17
26
  assertAgentSpecPolicy,
18
27
  classify,
@@ -24,19 +33,16 @@ import {
24
33
  isAgentProjectContextTier,
25
34
  isShadowAgent,
26
35
  normalizeAgentSpec
27
- } from "./chunk-OLBBMFRD.js";
28
- import {
29
- loadSkills
30
- } from "./chunk-474KN5II.js";
31
- import {
32
- BusChannels,
33
- isRunAbortedPayload
34
- } from "./chunk-Q5WJOSJ7.js";
36
+ } from "./chunk-5UUP6MWO.js";
35
37
  import {
36
38
  clioConfigDir,
37
39
  clioStateDir,
38
40
  stateRootRemoved
39
41
  } from "./chunk-BNAZZHFG.js";
42
+ import {
43
+ BusChannels,
44
+ isRunAbortedPayload
45
+ } from "./chunk-OQ33BKR3.js";
40
46
  import {
41
47
  resolvePackageRoot
42
48
  } from "./chunk-IWHMRKLL.js";
@@ -467,7 +473,8 @@ var dateFormatter = new Intl.DateTimeFormat("en-CA", DATE_OPTIONS);
467
473
  function localDateString(d) {
468
474
  if (process.env.TZ !== dateFormatterZone) {
469
475
  dateFormatterZone = process.env.TZ;
470
- dateFormatter = new Intl.DateTimeFormat("en-CA", DATE_OPTIONS);
476
+ const zone = dateFormatterZone === void 0 ? void 0 : { timeZone: dateFormatterZone };
477
+ dateFormatter = new Intl.DateTimeFormat("en-CA", { ...DATE_OPTIONS, ...zone });
471
478
  }
472
479
  return dateFormatter.format(d);
473
480
  }
@@ -688,7 +695,7 @@ function openAuditWriter(opts) {
688
695
  function isPermissionResolvedPayload(value) {
689
696
  if (!value || typeof value !== "object") return false;
690
697
  const p = value;
691
- if (p.status !== "granted" && p.status !== "denied") return false;
698
+ if (p.status !== "granted" && p.status !== "denied" && p.status !== "expired") return false;
692
699
  if (p.tool !== void 0 && typeof p.tool !== "string") return false;
693
700
  if (p.actionClass !== void 0 && typeof p.actionClass !== "string") return false;
694
701
  if (p.reason !== void 0 && typeof p.reason !== "string") return false;
@@ -1029,4 +1036,4 @@ export {
1029
1036
  AgentsDomainModule,
1030
1037
  SafetyDomainModule
1031
1038
  };
1032
- //# sourceMappingURL=chunk-MAR7Y6HW.js.map
1039
+ //# sourceMappingURL=chunk-PAJK6MAQ.js.map