@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
@@ -0,0 +1,338 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ getEngineEnvApiKey
4
+ } from "./chunk-YXLYO42X.js";
5
+ import {
6
+ init_esm_shims
7
+ } from "./chunk-3R73A4XB.js";
8
+
9
+ // src/engine/ai.ts
10
+ init_esm_shims();
11
+ import {
12
+ fauxAssistantMessage,
13
+ calculateCost as piCalculateCost,
14
+ cleanupSessionResources as piCleanupSessionResources,
15
+ getSupportedThinkingLevels as piGetSupportedThinkingLevels,
16
+ isContextOverflow as piIsContextOverflow,
17
+ isRetryableAssistantError as piIsRetryableAssistantError,
18
+ validateToolArguments as piValidateToolArguments,
19
+ StringEnum
20
+ } from "@earendil-works/pi-ai";
21
+
22
+ // src/engine/api-registry.ts
23
+ init_esm_shims();
24
+ import { anthropicMessagesApi } from "@earendil-works/pi-ai/api/anthropic-messages.lazy";
25
+ import { azureOpenAIResponsesApi } from "@earendil-works/pi-ai/api/azure-openai-responses.lazy";
26
+ import { bedrockConverseStreamApi } from "@earendil-works/pi-ai/api/bedrock-converse-stream.lazy";
27
+ import { googleGenerativeAIApi } from "@earendil-works/pi-ai/api/google-generative-ai.lazy";
28
+ import { googleVertexApi } from "@earendil-works/pi-ai/api/google-vertex.lazy";
29
+ import { mistralConversationsApi } from "@earendil-works/pi-ai/api/mistral-conversations.lazy";
30
+ import { openAICodexResponsesApi } from "@earendil-works/pi-ai/api/openai-codex-responses.lazy";
31
+ import { openAICompletionsApi } from "@earendil-works/pi-ai/api/openai-completions.lazy";
32
+ import { openAIResponsesApi } from "@earendil-works/pi-ai/api/openai-responses.lazy";
33
+ import { piMessagesApi } from "@earendil-works/pi-ai/api/pi-messages.lazy";
34
+ import {
35
+ createFauxCore
36
+ } from "@earendil-works/pi-ai/providers/faux";
37
+ import "@earendil-works/pi-ai/providers/images/register-builtins";
38
+
39
+ // src/engine/models.ts
40
+ init_esm_shims();
41
+ import { createModels } from "@earendil-works/pi-ai";
42
+ import { amazonBedrockProvider } from "@earendil-works/pi-ai/providers/amazon-bedrock";
43
+ import { anthropicProvider } from "@earendil-works/pi-ai/providers/anthropic";
44
+ import { deepseekProvider } from "@earendil-works/pi-ai/providers/deepseek";
45
+ import { googleProvider } from "@earendil-works/pi-ai/providers/google";
46
+ import { groqProvider } from "@earendil-works/pi-ai/providers/groq";
47
+ import { mistralProvider } from "@earendil-works/pi-ai/providers/mistral";
48
+ import { openaiProvider } from "@earendil-works/pi-ai/providers/openai";
49
+ import { openaiCodexProvider } from "@earendil-works/pi-ai/providers/openai-codex";
50
+ import { openrouterProvider } from "@earendil-works/pi-ai/providers/openrouter";
51
+ var CONFIGURED_PROVIDER_FACTORIES = [
52
+ amazonBedrockProvider,
53
+ anthropicProvider,
54
+ deepseekProvider,
55
+ googleProvider,
56
+ groqProvider,
57
+ mistralProvider,
58
+ openaiProvider,
59
+ openaiCodexProvider,
60
+ openrouterProvider
61
+ ];
62
+ var engineModels = createModels();
63
+ for (const factory of CONFIGURED_PROVIDER_FACTORIES) engineModels.setProvider(factory());
64
+ function engineModelProviders() {
65
+ return engineModels.getProviders().map((provider) => provider.id);
66
+ }
67
+ function engineModelsFor(provider) {
68
+ return [...engineModels.getModels(provider)];
69
+ }
70
+ function getEngineModel(provider, modelId) {
71
+ return engineModels.getModel(provider, modelId);
72
+ }
73
+
74
+ // src/engine/api-registry.ts
75
+ var registry = /* @__PURE__ */ new Map();
76
+ var builtinInstances = /* @__PURE__ */ new Map();
77
+ var compatUniverse;
78
+ var compatUniversePromise;
79
+ var builtinsRegistered = false;
80
+ function wrappedProvider(provider) {
81
+ const { api } = provider;
82
+ return {
83
+ api,
84
+ stream(model, context, options) {
85
+ if (model.api !== api) throw new Error(`Mismatched api: ${model.api} expected ${api}`);
86
+ return provider.stream(model, context, options);
87
+ },
88
+ streamSimple(model, context, options) {
89
+ if (model.api !== api) throw new Error(`Mismatched api: ${model.api} expected ${api}`);
90
+ return provider.streamSimple(model, context, options);
91
+ }
92
+ };
93
+ }
94
+ function registerEngineApiProvider(provider, sourceId) {
95
+ const wrapped = wrappedProvider(provider);
96
+ registry.set(provider.api, { provider: wrapped, ...sourceId === void 0 ? {} : { sourceId } });
97
+ compatUniverse?.registerApiProvider(provider, sourceId);
98
+ }
99
+ function unregisterEngineApiProviders(sourceId) {
100
+ for (const [api, entry] of registry) {
101
+ if (entry.sourceId === sourceId) registry.delete(api);
102
+ }
103
+ compatUniverse?.unregisterApiProviders(sourceId);
104
+ }
105
+ function getEngineApiProvider(api) {
106
+ return registry.get(api)?.provider;
107
+ }
108
+ var BUILTIN_APIS = [
109
+ ["anthropic-messages", anthropicMessagesApi()],
110
+ ["openai-completions", openAICompletionsApi()],
111
+ ["openai-responses", openAIResponsesApi()],
112
+ ["openai-codex-responses", openAICodexResponsesApi()],
113
+ ["azure-openai-responses", azureOpenAIResponsesApi()],
114
+ ["google-generative-ai", googleGenerativeAIApi()],
115
+ ["google-vertex", googleVertexApi()],
116
+ ["mistral-conversations", mistralConversationsApi()],
117
+ ["bedrock-converse-stream", bedrockConverseStreamApi()],
118
+ ["pi-messages", piMessagesApi()]
119
+ ];
120
+ function registerEngineBuiltins() {
121
+ if (builtinsRegistered) return;
122
+ builtinsRegistered = true;
123
+ for (const [api, streams] of BUILTIN_APIS) {
124
+ if (!getEngineApiProvider(api)) registerEngineApiProvider({ api, ...streams });
125
+ const registered2 = getEngineApiProvider(api);
126
+ if (registered2) builtinInstances.set(api, registered2);
127
+ }
128
+ }
129
+ function withEnvApiKey(model, options) {
130
+ if (typeof options?.apiKey === "string" && options.apiKey.trim().length > 0) return options;
131
+ const apiKey = getEngineEnvApiKey(model.provider, options?.env);
132
+ if (!apiKey || apiKey === "<authenticated>") return options;
133
+ return { ...options, apiKey };
134
+ }
135
+ function builtinProvider(model) {
136
+ if (getEngineApiProvider(model.api) !== builtinInstances.get(model.api)) return void 0;
137
+ const provider = engineModels.getProvider(model.provider);
138
+ return provider?.getModels().some((candidate) => candidate.api === model.api) ? provider : void 0;
139
+ }
140
+ function resolved(api) {
141
+ const provider = getEngineApiProvider(api);
142
+ if (!provider) throw new Error(`No API provider registered for api: ${api}`);
143
+ return provider;
144
+ }
145
+ function hasCloudflareAuth(options) {
146
+ return typeof options?.apiKey === "string" && options.apiKey.trim().length > 0 || typeof options?.headers?.["cf-aig-authorization"] === "string";
147
+ }
148
+ function engineStream(model, context, options) {
149
+ registerEngineBuiltins();
150
+ if (compatUniverse) return compatUniverse.stream(model, context, options);
151
+ const provider = builtinProvider(model);
152
+ if (provider) {
153
+ if (model.provider.startsWith("cloudflare-") && !hasCloudflareAuth(options)) {
154
+ return engineModels.stream(model, context, options);
155
+ }
156
+ return provider.stream(model, context, withEnvApiKey(model, options));
157
+ }
158
+ return resolved(model.api).stream(model, context, withEnvApiKey(model, options));
159
+ }
160
+ function engineStreamSimple(model, context, options) {
161
+ registerEngineBuiltins();
162
+ if (compatUniverse) return compatUniverse.streamSimple(model, context, options);
163
+ const provider = builtinProvider(model);
164
+ if (provider) {
165
+ if (model.provider.startsWith("cloudflare-") && !hasCloudflareAuth(options)) {
166
+ return engineModels.streamSimple(model, context, options);
167
+ }
168
+ return provider.streamSimple(model, context, withEnvApiKey(model, options));
169
+ }
170
+ return resolved(model.api).streamSimple(model, context, withEnvApiKey(model, options));
171
+ }
172
+ async function completeEngineSimple(model, context, options) {
173
+ return engineStreamSimple(model, context, options).result();
174
+ }
175
+ function registerEngineFauxProvider(options = {}) {
176
+ registerEngineBuiltins();
177
+ const core = createFauxCore(options);
178
+ const sourceId = `faux-provider-${Math.random().toString(36).slice(2, 10)}`;
179
+ registerEngineApiProvider({ api: core.api, stream: core.stream, streamSimple: core.streamSimple }, sourceId);
180
+ return {
181
+ api: core.api,
182
+ models: core.models,
183
+ getModel: core.getModel,
184
+ state: core.state,
185
+ setResponses: core.setResponses,
186
+ appendResponses: core.appendResponses,
187
+ getPendingResponseCount: core.getPendingResponseCount,
188
+ unregister() {
189
+ unregisterEngineApiProviders(sourceId);
190
+ }
191
+ };
192
+ }
193
+ async function activateExternalPluginApiBridge() {
194
+ if (compatUniverse) return;
195
+ compatUniversePromise ??= (async () => {
196
+ registerEngineBuiltins();
197
+ const compat = await import("@earendil-works/pi-ai/compat");
198
+ for (const [api, entry] of registry) {
199
+ if (entry.provider === builtinInstances.get(api)) continue;
200
+ compat.registerApiProvider(entry.provider, entry.sourceId);
201
+ }
202
+ compatUniverse = compat;
203
+ })().catch((error) => {
204
+ compatUniversePromise = void 0;
205
+ throw error;
206
+ });
207
+ await compatUniversePromise;
208
+ }
209
+ registerEngineBuiltins();
210
+
211
+ // src/engine/ai.ts
212
+ var stream = engineStream;
213
+ async function completeEngineText(input) {
214
+ const response = await completeEngineSimple(
215
+ input.model,
216
+ {
217
+ systemPrompt: input.systemPrompt,
218
+ messages: [{ role: "user", content: input.userPrompt, timestamp: Date.now() }]
219
+ },
220
+ {
221
+ maxTokens: input.maxTokens,
222
+ signal: input.signal,
223
+ timeoutMs: input.timeoutMs,
224
+ ...input.thinkingLevel === "off" ? {} : { reasoning: input.thinkingLevel },
225
+ ...input.apiKey === void 0 ? {} : { apiKey: input.apiKey }
226
+ }
227
+ );
228
+ if (response.stopReason === "error" || response.stopReason === "aborted") {
229
+ throw new Error(response.errorMessage ?? `model completion ${response.stopReason}`);
230
+ }
231
+ return {
232
+ text: response.content.filter((block) => block.type === "text").map((block) => block.text).join(""),
233
+ inputTokens: response.usage.input,
234
+ outputTokens: response.usage.output
235
+ };
236
+ }
237
+ var registered = false;
238
+ function ensurePiAiRegistered() {
239
+ if (registered) return;
240
+ registerEngineBuiltins();
241
+ registered = true;
242
+ }
243
+ function createEngineAi() {
244
+ ensurePiAiRegistered();
245
+ return {
246
+ listProviders: () => engineModelProviders(),
247
+ listModels: (provider) => engineModelsFor(provider),
248
+ getModel: (provider, modelId) => {
249
+ try {
250
+ return getEngineModel(provider, modelId);
251
+ } catch {
252
+ return void 0;
253
+ }
254
+ }
255
+ };
256
+ }
257
+ function emptyUsage() {
258
+ return {
259
+ input: 0,
260
+ output: 0,
261
+ cacheRead: 0,
262
+ cacheWrite: 0,
263
+ totalTokens: 0,
264
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 }
265
+ };
266
+ }
267
+ function getEngineSupportedThinkingLevels(model) {
268
+ return piGetSupportedThinkingLevels(model);
269
+ }
270
+ function cleanupEngineSessionResources(sessionId) {
271
+ piCleanupSessionResources(sessionId);
272
+ }
273
+ function isEngineContextOverflow(errorMessage, contextWindow) {
274
+ const message = {
275
+ role: "assistant",
276
+ content: [],
277
+ api: "clio",
278
+ provider: "clio",
279
+ model: "unknown",
280
+ usage: emptyUsage(),
281
+ stopReason: "error",
282
+ errorMessage,
283
+ timestamp: Date.now()
284
+ };
285
+ return piIsContextOverflow(message, contextWindow);
286
+ }
287
+ function isEngineRetryableAssistantError(errorMessage) {
288
+ const message = {
289
+ role: "assistant",
290
+ content: [],
291
+ api: "clio",
292
+ provider: "clio",
293
+ model: "unknown",
294
+ usage: emptyUsage(),
295
+ stopReason: "error",
296
+ errorMessage,
297
+ timestamp: Date.now()
298
+ };
299
+ return piIsRetryableAssistantError(message);
300
+ }
301
+ function calculateEngineCost(model, usage) {
302
+ return piCalculateCost(model, usage);
303
+ }
304
+ function registerFauxFromEnv() {
305
+ if (process.env.CLIO_CODER_WORKER_FAUX !== "1") return null;
306
+ const modelId = process.env.CLIO_CODER_WORKER_FAUX_MODEL ?? "faux-model";
307
+ const text = process.env.CLIO_CODER_WORKER_FAUX_TEXT ?? "ok";
308
+ const stopReason = process.env.CLIO_CODER_WORKER_FAUX_STOP_REASON ?? "stop";
309
+ const errorMessage = process.env.CLIO_CODER_WORKER_FAUX_ERROR_MESSAGE;
310
+ const reg = registerEngineFauxProvider({
311
+ provider: "faux",
312
+ models: [{ id: modelId }]
313
+ });
314
+ const response = { stopReason };
315
+ if (errorMessage && errorMessage.length > 0) {
316
+ response.errorMessage = errorMessage;
317
+ }
318
+ reg.setResponses([fauxAssistantMessage(text, response)]);
319
+ return reg.getModel(modelId);
320
+ }
321
+
322
+ export {
323
+ registerEngineApiProvider,
324
+ engineStreamSimple,
325
+ activateExternalPluginApiBridge,
326
+ StringEnum,
327
+ stream,
328
+ completeEngineText,
329
+ ensurePiAiRegistered,
330
+ createEngineAi,
331
+ getEngineSupportedThinkingLevels,
332
+ cleanupEngineSessionResources,
333
+ isEngineContextOverflow,
334
+ isEngineRetryableAssistantError,
335
+ calculateEngineCost,
336
+ registerFauxFromEnv
337
+ };
338
+ //# sourceMappingURL=chunk-FCSXB6T2.js.map
@@ -0,0 +1,48 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ typebox_exports
4
+ } from "./chunk-5B2AEOW5.js";
5
+ import {
6
+ ToolNames
7
+ } from "./chunk-CGKSTWHD.js";
8
+ import {
9
+ StringEnum
10
+ } from "./chunk-FCSXB6T2.js";
11
+ import {
12
+ init_esm_shims
13
+ } from "./chunk-3R73A4XB.js";
14
+
15
+ // src/tools/monitor-surface.ts
16
+ init_esm_shims();
17
+ var monitorToolSurface = {
18
+ name: ToolNames.Monitor,
19
+ description: "Inspect known dispatched runs. Parent-model mid-run observation requires detach:true because ordinary dispatch auto-waits. wait observes without collecting. collect is the authoritative terminal batch operation; collect detached runs before final synthesis. receipt exposes stored evidence. Receipt integrity, evidence verification, briefing provenance, and project-context provenance are separate fields.",
20
+ parameters: typebox_exports.Object({
21
+ run_id: typebox_exports.Optional(
22
+ typebox_exports.String({ description: "Run id from dispatch output or monitor list; omit with mode=list." })
23
+ ),
24
+ mode: typebox_exports.Optional(
25
+ StringEnum(["status", "peek", "receipt", "list", "wait", "collect", "tools"], {
26
+ description: "What to return. Defaults to status when run_id is present and list when it is absent. status, peek, receipt, tools, and wait each observe one run and require a run_id; list takes none. tools answers what a run executed: its tool calls with outcomes, plus per-tool totals from the receipt."
27
+ })
28
+ ),
29
+ batch_id: typebox_exports.Optional(typebox_exports.String({ description: "Detached batch id from dispatch detach:true (mode=collect)." })),
30
+ run_ids: typebox_exports.Optional(
31
+ typebox_exports.Array(typebox_exports.String(), {
32
+ description: "Explicit run ids for mode=collect; a one-element array is also accepted by single-run modes when run_id is absent."
33
+ })
34
+ ),
35
+ timeout_ms: typebox_exports.Optional(
36
+ typebox_exports.Number({
37
+ description: "mode=wait: max ms to block (default 60000, capped at 600000); mode=collect never blocks and ignores this value with a notice."
38
+ })
39
+ )
40
+ }),
41
+ baseActionClass: "read",
42
+ executionMode: "parallel"
43
+ };
44
+
45
+ export {
46
+ monitorToolSurface
47
+ };
48
+ //# sourceMappingURL=chunk-FJ3H4MN5.js.map
@@ -1,42 +1,48 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  armInternalDispatchDeadline
4
- } from "./chunk-R5KLMSBV.js";
4
+ } from "./chunk-J5Q24KAG.js";
5
5
  import {
6
6
  SchedulingDomainModule,
7
7
  createPromptsDomainModule
8
- } from "./chunk-G34LV2PF.js";
8
+ } from "./chunk-LM5TQCJZ.js";
9
9
  import {
10
10
  AgentsDomainModule,
11
11
  SafetyDomainModule
12
- } from "./chunk-MAR7Y6HW.js";
12
+ } from "./chunk-PAJK6MAQ.js";
13
13
  import {
14
14
  ConfigDomainModule,
15
15
  loadDomains
16
- } from "./chunk-Q3RUPKEJ.js";
16
+ } from "./chunk-OC7FIQPC.js";
17
+ import {
18
+ createObservabilityDomainModule
19
+ } from "./chunk-4XUGQOHA.js";
17
20
  import {
18
21
  fallbackBootstrapOutput
19
- } from "./chunk-M5T5VO65.js";
22
+ } from "./chunk-PIWWS5BL.js";
20
23
  import {
21
24
  renderCodewikiDigest
22
25
  } from "./chunk-5WIGXA4T.js";
23
26
  import {
24
27
  DispatchDomainModule,
25
- MiddlewareDomainModule,
26
- SessionDomainModule,
27
- UnsupportedResponseSchemaError,
28
- createObservabilityDomainModule,
29
- isResponseSchemaRejection
30
- } from "./chunk-7SS2CTV2.js";
28
+ SessionDomainModule
29
+ } from "./chunk-SRDMMSEP.js";
31
30
  import {
32
31
  ResourcesDomainModule
33
- } from "./chunk-FST4FYJB.js";
32
+ } from "./chunk-MFFY33HR.js";
33
+ import {
34
+ MiddlewareDomainModule
35
+ } from "./chunk-2DJ2KNFG.js";
36
+ import {
37
+ UnsupportedResponseSchemaError,
38
+ isResponseSchemaRejection
39
+ } from "./chunk-LWLEKMDQ.js";
34
40
  import {
35
41
  parseJsonObjectPayload
36
- } from "./chunk-GEP36Y4X.js";
42
+ } from "./chunk-STBPMHSX.js";
37
43
  import {
38
44
  ProvidersDomainModule
39
- } from "./chunk-H6F6BYOH.js";
45
+ } from "./chunk-LZSJBIVT.js";
40
46
  import {
41
47
  init_esm_shims
42
48
  } from "./chunk-3R73A4XB.js";
@@ -665,4 +671,4 @@ export {
665
671
  validateInitOptions,
666
672
  bootstrapInputFromInitOptions
667
673
  };
668
- //# sourceMappingURL=chunk-RPTR2H26.js.map
674
+ //# sourceMappingURL=chunk-FNTMWMX5.js.map
@@ -0,0 +1,29 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-3R73A4XB.js";
5
+
6
+ // src/core/timers.ts
7
+ init_esm_shims();
8
+ var MAX_TIMER_DELAY_MS = 2147483647;
9
+ function clampTimerDelayMs(value) {
10
+ if (Number.isNaN(value) || value <= 0) return 0;
11
+ return value >= MAX_TIMER_DELAY_MS ? MAX_TIMER_DELAY_MS : Math.floor(value);
12
+ }
13
+ function sleep(ms) {
14
+ return new Promise((resolve) => setTimeout(resolve, ms));
15
+ }
16
+ var negativeDurations = 0;
17
+ function rawDurationMs(start, end) {
18
+ const elapsed = end - start;
19
+ if (elapsed < 0) negativeDurations += 1;
20
+ return elapsed;
21
+ }
22
+
23
+ export {
24
+ MAX_TIMER_DELAY_MS,
25
+ clampTimerDelayMs,
26
+ sleep,
27
+ rawDurationMs
28
+ };
29
+ //# sourceMappingURL=chunk-FQ4SKYE4.js.map
@@ -0,0 +1,182 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ detectProjectType
4
+ } from "./chunk-YHZX5GEU.js";
5
+ import {
6
+ init_esm_shims
7
+ } from "./chunk-3R73A4XB.js";
8
+
9
+ // src/domains/session/workspace/index.ts
10
+ init_esm_shims();
11
+
12
+ // src/domains/session/workspace/git-probe.ts
13
+ init_esm_shims();
14
+ import { execFile, execFileSync } from "node:child_process";
15
+ import { promisify } from "node:util";
16
+ var execFileAsync = promisify(execFile);
17
+ var TIMEOUT_MS = 1e3;
18
+ var EMPTY_PROBE = {
19
+ isGit: false,
20
+ branch: null,
21
+ dirty: null,
22
+ ahead: null,
23
+ behind: null,
24
+ recentCommits: [],
25
+ remoteUrl: null
26
+ };
27
+ var EMPTY_STATUS_PROBE = { isGit: false, branch: null, dirty: null, remoteUrl: null };
28
+ function gitOk(cwd, args) {
29
+ try {
30
+ const out = execFileSync("git", args, { cwd, timeout: TIMEOUT_MS, stdio: ["ignore", "pipe", "ignore"] });
31
+ return out.toString().trim();
32
+ } catch {
33
+ return null;
34
+ }
35
+ }
36
+ async function gitOkAsync(cwd, args) {
37
+ try {
38
+ const { stdout } = await execFileAsync("git", args, { cwd, timeout: TIMEOUT_MS, encoding: "utf8" });
39
+ return stdout.trim();
40
+ } catch {
41
+ return null;
42
+ }
43
+ }
44
+ function normalizeRemote(url) {
45
+ let out = url.trim();
46
+ if (out.endsWith(".git")) out = out.slice(0, -4);
47
+ const sshMatch = /^git@([^:]+):(.+)$/.exec(out);
48
+ if (sshMatch) {
49
+ const [, host, path] = sshMatch;
50
+ return `https://${host}/${path}`;
51
+ }
52
+ return out;
53
+ }
54
+ function branchFrom(raw) {
55
+ return raw && raw !== "HEAD" ? raw : null;
56
+ }
57
+ function dirtyFrom(status) {
58
+ return status === null ? null : status.length > 0;
59
+ }
60
+ function aheadBehindFrom(raw) {
61
+ if (!raw) return { ahead: null, behind: null };
62
+ const parts = raw.split(/\s+/);
63
+ const a = Number.parseInt(parts[0] ?? "", 10);
64
+ const b = Number.parseInt(parts[1] ?? "", 10);
65
+ return { ahead: Number.isFinite(a) ? a : null, behind: Number.isFinite(b) ? b : null };
66
+ }
67
+ function recentCommitsFrom(log) {
68
+ if (!log) return [];
69
+ return log.split("\n").map((line) => {
70
+ const tab = line.indexOf(" ");
71
+ if (tab < 0) return null;
72
+ return { sha: line.slice(0, tab), subject: line.slice(tab + 1) };
73
+ }).filter((commit) => commit !== null);
74
+ }
75
+ function remoteFrom(raw) {
76
+ return raw ? normalizeRemote(raw) : null;
77
+ }
78
+ function probeGit(cwd) {
79
+ const inside = gitOk(cwd, ["rev-parse", "--is-inside-work-tree"]);
80
+ if (inside !== "true") return EMPTY_PROBE;
81
+ const ignored = gitOk(cwd, ["check-ignore", "--quiet", "--", "."]);
82
+ if (ignored !== null) return EMPTY_PROBE;
83
+ const branch = branchFrom(gitOk(cwd, ["rev-parse", "--abbrev-ref", "HEAD"]));
84
+ const dirty = dirtyFrom(gitOk(cwd, ["status", "--porcelain", "--", "."]));
85
+ const { ahead, behind } = aheadBehindFrom(gitOk(cwd, ["rev-list", "--left-right", "--count", "HEAD...@{u}"]));
86
+ const recentCommits = recentCommitsFrom(gitOk(cwd, ["log", "-5", "--format=%H%x09%s", "--", "."]));
87
+ const remoteUrl = remoteFrom(gitOk(cwd, ["remote", "get-url", "origin"]));
88
+ return { isGit: true, branch, dirty, ahead, behind, recentCommits, remoteUrl };
89
+ }
90
+ async function probeGitAsync(cwd) {
91
+ const inside = await gitOkAsync(cwd, ["rev-parse", "--is-inside-work-tree"]);
92
+ if (inside !== "true") return EMPTY_PROBE;
93
+ const ignored = await gitOkAsync(cwd, ["check-ignore", "--quiet", "--", "."]);
94
+ if (ignored !== null) return EMPTY_PROBE;
95
+ const [branchRaw, status, aheadBehindRaw, log, remoteRaw] = await Promise.all([
96
+ gitOkAsync(cwd, ["rev-parse", "--abbrev-ref", "HEAD"]),
97
+ gitOkAsync(cwd, ["status", "--porcelain", "--", "."]),
98
+ gitOkAsync(cwd, ["rev-list", "--left-right", "--count", "HEAD...@{u}"]),
99
+ gitOkAsync(cwd, ["log", "-5", "--format=%H%x09%s", "--", "."]),
100
+ gitOkAsync(cwd, ["remote", "get-url", "origin"])
101
+ ]);
102
+ const { ahead, behind } = aheadBehindFrom(aheadBehindRaw);
103
+ return {
104
+ isGit: true,
105
+ branch: branchFrom(branchRaw),
106
+ dirty: dirtyFrom(status),
107
+ ahead,
108
+ behind,
109
+ recentCommits: recentCommitsFrom(log),
110
+ remoteUrl: remoteFrom(remoteRaw)
111
+ };
112
+ }
113
+ async function probeGitStatusAsync(cwd) {
114
+ const inside = await gitOkAsync(cwd, ["rev-parse", "--is-inside-work-tree"]);
115
+ if (inside !== "true") return EMPTY_STATUS_PROBE;
116
+ const ignored = await gitOkAsync(cwd, ["check-ignore", "--quiet", "--", "."]);
117
+ if (ignored !== null) return EMPTY_STATUS_PROBE;
118
+ const [branchRaw, status, remoteRaw] = await Promise.all([
119
+ gitOkAsync(cwd, ["rev-parse", "--abbrev-ref", "HEAD"]),
120
+ gitOkAsync(cwd, ["status", "--porcelain", "--", "."]),
121
+ gitOkAsync(cwd, ["remote", "get-url", "origin"])
122
+ ]);
123
+ return {
124
+ isGit: true,
125
+ branch: branchFrom(branchRaw),
126
+ dirty: dirtyFrom(status),
127
+ remoteUrl: remoteFrom(remoteRaw)
128
+ };
129
+ }
130
+
131
+ // src/domains/session/workspace/snapshot.ts
132
+ init_esm_shims();
133
+ function emptyWorkspaceSnapshot(cwd) {
134
+ return {
135
+ cwd,
136
+ isGit: false,
137
+ branch: null,
138
+ dirty: null,
139
+ ahead: null,
140
+ behind: null,
141
+ recentCommits: [],
142
+ remoteUrl: null,
143
+ projectType: "unknown",
144
+ capturedAt: (/* @__PURE__ */ new Date()).toISOString()
145
+ };
146
+ }
147
+ function snapshotFrom(cwd, git) {
148
+ let projectType;
149
+ try {
150
+ projectType = detectProjectType(cwd);
151
+ } catch {
152
+ projectType = "unknown";
153
+ }
154
+ return {
155
+ cwd,
156
+ isGit: git.isGit,
157
+ branch: git.branch,
158
+ dirty: git.dirty,
159
+ ahead: git.ahead,
160
+ behind: git.behind,
161
+ recentCommits: git.recentCommits,
162
+ remoteUrl: git.remoteUrl,
163
+ projectType,
164
+ capturedAt: (/* @__PURE__ */ new Date()).toISOString()
165
+ };
166
+ }
167
+ function probeWorkspace(cwd) {
168
+ return snapshotFrom(cwd, probeGit(cwd));
169
+ }
170
+ async function probeWorkspaceAsync(cwd) {
171
+ return snapshotFrom(cwd, await probeGitAsync(cwd));
172
+ }
173
+
174
+ export {
175
+ probeGit,
176
+ probeGitAsync,
177
+ probeGitStatusAsync,
178
+ emptyWorkspaceSnapshot,
179
+ probeWorkspace,
180
+ probeWorkspaceAsync
181
+ };
182
+ //# sourceMappingURL=chunk-G4BMMOKF.js.map