@iowarp/clio-coder 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/CHANGELOG.md +90 -2
  2. package/CONTRIBUTING.md +23 -23
  3. package/README.md +284 -613
  4. package/dist/{acp-FPR54DGL.js → acp-BIYHVZIM.js} +43 -53
  5. package/dist/{agents-OGPIHPJH.js → agents-YT6SSRIT.js} +43 -26
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-IC3K6NIZ.js → auth-5TWEIYDN.js} +20 -12
  8. package/dist/{chunk-PV4JUBVJ.js → chunk-2EHAIA3X.js} +40 -21
  9. package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
  10. package/dist/chunk-2SFS6XQE.js +122 -0
  11. package/dist/chunk-2VTFPG5O.js +48 -0
  12. package/dist/{chunk-MAR7Y6HW.js → chunk-3ZXDFGR5.js} +23 -16
  13. package/dist/chunk-4BJ5BYCE.js +61 -0
  14. package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
  15. package/dist/chunk-4KLWL3UC.js +18 -0
  16. package/dist/chunk-4VP4KH3K.js +962 -0
  17. package/dist/chunk-4ZG3XFUR.js +77 -0
  18. package/dist/chunk-5B2AEOW5.js +5407 -0
  19. package/dist/{chunk-K2ITRMHZ.js → chunk-5TSRNF4G.js} +6 -138
  20. package/dist/{chunk-OLBBMFRD.js → chunk-5UUP6MWO.js} +24 -62
  21. package/dist/chunk-65DEGPJ6.js +52 -0
  22. package/dist/chunk-6EJMN2Y3.js +17 -0
  23. package/dist/chunk-6EJV5X2W.js +16405 -0
  24. package/dist/chunk-6N5PTWMY.js +136 -0
  25. package/dist/chunk-6XLNIQDB.js +27 -0
  26. package/dist/{chunk-TEKV33Q5.js → chunk-77VKQEHF.js} +65 -33
  27. package/dist/chunk-7CR24IG7.js +242 -0
  28. package/dist/{chunk-M5T5VO65.js → chunk-7EYHLWU7.js} +837 -635
  29. package/dist/chunk-7MNJORFF.js +22 -0
  30. package/dist/{chunk-KY56HMHH.js → chunk-A3CYT5EX.js} +125 -31
  31. package/dist/chunk-AGYYIBLL.js +1069 -0
  32. package/dist/chunk-AO4RKG4M.js +277 -0
  33. package/dist/{chunk-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
  34. package/dist/chunk-ARBGF5F7.js +174 -0
  35. package/dist/{chunk-673JJUWJ.js → chunk-BMEMKKIT.js} +2 -2
  36. package/dist/chunk-CBCAPZAA.js +229 -0
  37. package/dist/chunk-CMZWFGD2.js +352 -0
  38. package/dist/chunk-ECH6PKUQ.js +39 -0
  39. package/dist/chunk-ED4KHGC3.js +143 -0
  40. package/dist/chunk-EKMEHE4H.js +340 -0
  41. package/dist/{chunk-RPTR2H26.js → chunk-EPVUXGXG.js} +21 -15
  42. package/dist/chunk-FCSXB6T2.js +338 -0
  43. package/dist/chunk-FJ3H4MN5.js +48 -0
  44. package/dist/chunk-FQ4SKYE4.js +29 -0
  45. package/dist/chunk-G2DE3C7R.js +644 -0
  46. package/dist/chunk-G4BMMOKF.js +182 -0
  47. package/dist/{chunk-ZPY3JZ5E.js → chunk-GGXXDWE4.js} +183 -1233
  48. package/dist/chunk-HC4CLZ2Y.js +68 -0
  49. package/dist/{chunk-LU4TK2PR.js → chunk-HFSBBKSQ.js} +5 -56
  50. package/dist/{chunk-PIUMUEMV.js → chunk-HKIYEGME.js} +10 -6
  51. package/dist/chunk-I4HZDVNP.js +73 -0
  52. package/dist/{chunk-4QKXUHSR.js → chunk-IGLFWIYI.js} +70 -20
  53. package/dist/chunk-IKCO5N3L.js +162 -0
  54. package/dist/chunk-IR4CFBFN.js +56 -0
  55. package/dist/{chunk-PFEFKVGL.js → chunk-J5HN4RYU.js} +13 -11
  56. package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
  57. package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
  58. package/dist/chunk-KJ5LWLOE.js +1077 -0
  59. package/dist/chunk-LBMZMYH2.js +285 -0
  60. package/dist/{chunk-G34LV2PF.js → chunk-LBNRH5WM.js} +84 -170
  61. package/dist/{chunk-H6F6BYOH.js → chunk-LZSJBIVT.js} +7003 -7434
  62. package/dist/{chunk-HQQID6OA.js → chunk-M6SHUN7Q.js} +5 -5
  63. package/dist/chunk-MAW544W2.js +1882 -0
  64. package/dist/chunk-MBS4V7ZP.js +217 -0
  65. package/dist/{chunk-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
  66. package/dist/chunk-MNA4JGU4.js +255 -0
  67. package/dist/chunk-MQSRRFWA.js +3428 -0
  68. package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
  69. package/dist/chunk-OAO4GE4M.js +619 -0
  70. package/dist/chunk-OHHN2SO4.js +5135 -0
  71. package/dist/chunk-OKGUZO2U.js +34 -0
  72. package/dist/{chunk-GAEBEQVI.js → chunk-OOJYHWRB.js} +32 -346
  73. package/dist/{chunk-Q5WJOSJ7.js → chunk-OQ33BKR3.js} +2 -1
  74. package/dist/chunk-OQE5J4C6.js +73 -0
  75. package/dist/{chunk-KKNLWXI6.js → chunk-ORBHGJC5.js} +8 -8
  76. package/dist/chunk-POHLU5DW.js +1186 -0
  77. package/dist/chunk-QKMUKYO7.js +4961 -0
  78. package/dist/{chunk-ASND7OZK.js → chunk-QTYWRVRA.js} +13 -13
  79. package/dist/{chunk-EYOKLTMF.js → chunk-SRF2PJNW.js} +17 -3
  80. package/dist/chunk-SST6Z5JA.js +80 -0
  81. package/dist/chunk-STBPMHSX.js +2456 -0
  82. package/dist/chunk-T6YILFSB.js +80 -0
  83. package/dist/chunk-TZTZS7QK.js +227 -0
  84. package/dist/chunk-UOV2BYIW.js +107 -0
  85. package/dist/{chunk-Q3RUPKEJ.js → chunk-V4RXGQ5Q.js} +58 -189
  86. package/dist/chunk-VAKQQHWR.js +434 -0
  87. package/dist/chunk-VG7TBQIY.js +128 -0
  88. package/dist/chunk-VJWL6YS5.js +244 -0
  89. package/dist/chunk-WEH5XRJQ.js +32 -0
  90. package/dist/chunk-WMSVI4G2.js +2095 -0
  91. package/dist/chunk-WVO7V2QY.js +797 -0
  92. package/dist/chunk-X4RCMKVQ.js +641 -0
  93. package/dist/chunk-X75S7HFS.js +374 -0
  94. package/dist/chunk-XN3L4EYL.js +46 -0
  95. package/dist/{chunk-RDLVBZEO.js → chunk-YCWGATWI.js} +6 -4
  96. package/dist/chunk-YHZX5GEU.js +193 -0
  97. package/dist/chunk-YXLYO42X.js +91 -0
  98. package/dist/{chunk-NMOX6HFD.js → chunk-ZDOOVTXZ.js} +29 -77
  99. package/dist/chunk-ZI647VB5.js +37 -0
  100. package/dist/{chunk-C4PTHK7P.js → chunk-ZWLZP4ZT.js} +5 -5
  101. package/dist/cli/index.js +62 -54
  102. package/dist/clio-4LY5K2AC.js +25 -0
  103. package/dist/code-nav-7AX6FYE6.js +600 -0
  104. package/dist/codewiki/build-worker.js +66 -0
  105. package/dist/compile-cache-CVJMMODC.js +18 -0
  106. package/dist/{components-DMAOEKFB.js → components-KELWS457.js} +11 -6
  107. package/dist/{config-IRUQ7SE4.js → config-GTLUW2PR.js} +92 -55
  108. package/dist/configure-R6A64DHX.js +42 -0
  109. package/dist/context-5VKGUVJJ.js +866 -0
  110. package/dist/{context-3KWFLHJG.js → context-JFZEJ7W5.js} +15 -13
  111. package/dist/{context-5RADCKTR.js → context-RW5HC47S.js} +71 -35
  112. package/dist/{context-clear-7TSNPAAI.js → context-clear-6ZHBAZZT.js} +54 -28
  113. package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
  114. package/dist/dispatch-runner-VKBRCWQC.js +1997 -0
  115. package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
  116. package/dist/{doctor-UC5NAJYQ.js → doctor-KI767GSN.js} +27 -17
  117. package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
  118. package/dist/{evidence-YEGUW4L3.js → evidence-UA6AWDQQ.js} +46 -26
  119. package/dist/{evolve-TXARCTPG.js → evolve-QNTFGV6Z.js} +45 -25
  120. package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
  121. package/dist/{fleet-6G3DHNYE.js → fleet-Q7UOMUSG.js} +163 -54
  122. package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
  123. package/dist/{init-KZ5QTF6M.js → init-WBB65ZHQ.js} +69 -32
  124. package/dist/{memory-73ESV5YC.js → memory-MD3O64RI.js} +48 -27
  125. package/dist/{models-A4PVNWJK.js → models-BZU34YWD.js} +39 -25
  126. package/dist/monitor-MEQA5C3I.js +661 -0
  127. package/dist/{chunk-FCIH3BIZ.js → orchestrator-CGFKEP27.js} +11832 -8687
  128. package/dist/{paths-C4H6IV77.js → paths-UXLN5YYZ.js} +10 -5
  129. package/dist/{preload-6WVMHX3A.js → preload-P6DGH2PZ.js} +2 -2
  130. package/dist/{reset-BGW6OGMV.js → reset-L2FQEE3E.js} +16 -10
  131. package/dist/{run-YTPEYQOH.js → run-IV4Q6RLN.js} +101 -61
  132. package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
  133. package/dist/{skills-2V6RA3OQ.js → skills-LQEKRDTN.js} +34 -14
  134. package/dist/{skills-eval-S2TVJO4F.js → skills-eval-3DC4HEWS.js} +70 -34
  135. package/dist/steer-GGWFUJUD.js +77 -0
  136. package/dist/{targets-TYXLPB23.js → targets-C4SSGQOB.js} +43 -27
  137. package/dist/terminal-lease-IT5JW2NR.js +395 -0
  138. package/dist/{trace-GGOJ6Q6Z.js → trace-PNCASAXC.js} +41 -16
  139. package/dist/{chunk-N6F52NLF.js → tree-sitter-HGKH6LG4.js} +28 -2306
  140. package/dist/{uninstall-LLLT4F4W.js → uninstall-FZCQCDKC.js} +10 -5
  141. package/dist/{upgrade-33G2LMM5.js → upgrade-7TT7SQ3G.js} +45 -25
  142. package/dist/{usage-ZAFSXKKG.js → usage-GV4PKT3M.js} +62 -31
  143. package/dist/verify-G6V4D2G7.js +716 -0
  144. package/dist/web-fetch-2YHJ3KTG.js +638 -0
  145. package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-DQF6Z66B.js} +74 -34
  146. package/dist/worker/entry.js +221 -36
  147. package/dist/workspace-G4ZWUIPR.js +22 -0
  148. package/docs/README.md +22 -17
  149. package/docs/acp.md +168 -16
  150. package/docs/alcf-provider.md +1 -1
  151. package/docs/architecture.md +136 -7
  152. package/docs/artifact-versions.md +1 -1
  153. package/docs/built-in-agents.md +1 -1
  154. package/docs/capacity-and-scheduling.md +1 -1
  155. package/docs/commands-and-modes.md +114 -71
  156. package/docs/config-knobs-audit.md +1 -3
  157. package/docs/configuration-and-targets.md +174 -46
  158. package/docs/context-engine.md +29 -6
  159. package/docs/development-pipeline.md +26 -1
  160. package/docs/dispatch-architecture-rationale.md +1 -1
  161. package/docs/documentation-coverage.md +2 -2
  162. package/docs/documentation-guide.md +1 -1
  163. package/docs/environment-variables.md +13 -5
  164. package/docs/eval-runner.md +1 -1
  165. package/docs/evals-internal.md +1 -1
  166. package/docs/evidence-and-memory.md +6 -2
  167. package/docs/evolution.md +2 -2
  168. package/docs/exit-codes-and-output.md +15 -9
  169. package/docs/extensions-and-sharing.md +9 -9
  170. package/docs/fleet-dispatch.md +7 -5
  171. package/docs/git-commit-provenance.md +120 -0
  172. package/docs/glossary.md +1 -1
  173. package/docs/installation-and-lifecycle.md +34 -27
  174. package/docs/middleware-and-components.md +1 -1
  175. package/docs/model-catalog.md +45 -14
  176. package/docs/observability.md +8 -5
  177. package/docs/performance-methodology.md +491 -0
  178. package/docs/pi-boundary.md +72 -0
  179. package/docs/proactive-memory.md +3 -3
  180. package/docs/prompt-envelope-and-tools.md +24 -3
  181. package/docs/provider-adapter-cookbook.md +57 -4
  182. package/docs/release-cut-checklist.md +129 -115
  183. package/docs/safety-model.md +9 -5
  184. package/docs/scientific-validation.md +3 -3
  185. package/docs/session-lifecycle.md +55 -12
  186. package/docs/skills-marketplace.md +12 -8
  187. package/docs/time-conventions.md +1 -1
  188. package/docs/tool-usage.md +3 -3
  189. package/docs/trace-store.md +1 -1
  190. package/docs/troubleshooting.md +10 -7
  191. package/docs/tui-design.md +47 -10
  192. package/docs/worker-dispatch-mechanics.md +1 -1
  193. package/package.json +19 -22
  194. package/skills/coding/ast-grep/SKILL.md +136 -0
  195. package/skills/coding/ast-grep/evals.md +56 -0
  196. package/skills/coding/ast-grep/references/rule_reference.md +297 -0
  197. package/skills/coding/coding-standards/SKILL.md +113 -0
  198. package/skills/coding/coding-standards/evals.md +34 -0
  199. package/skills/coding/prototype/SKILL.md +86 -0
  200. package/skills/coding/prototype/evals.md +42 -0
  201. package/skills/coding/prototype/references/LOGIC.md +67 -0
  202. package/skills/coding/prototype/references/UI.md +112 -0
  203. package/skills/coding/tdd/SKILL.md +101 -0
  204. package/skills/coding/tdd/evals.md +41 -0
  205. package/skills/coding/tdd/references/mocking.md +59 -0
  206. package/skills/coding/tdd/references/tests.md +77 -0
  207. package/skills/context/context-handoff/SKILL.md +126 -0
  208. package/skills/context/context-handoff/evals.md +57 -0
  209. package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
  210. package/skills/context/context-prime/SKILL.md +95 -0
  211. package/skills/context/context-prime/evals.md +54 -0
  212. package/skills/meta/clio-dev/SKILL.md +91 -0
  213. package/skills/meta/clio-dev/evals.md +45 -0
  214. package/skills/meta/clio-test/SKILL.md +130 -0
  215. package/skills/meta/clio-test/evals.md +43 -0
  216. package/skills/meta/clio-test/references/harness.md +97 -0
  217. package/skills/meta/clio-test/references/test-map.md +59 -0
  218. package/skills/meta/credentials/SKILL.md +125 -0
  219. package/skills/meta/credentials/evals.md +104 -0
  220. package/skills/meta/find-skills/SKILL.md +72 -0
  221. package/skills/meta/find-skills/evals.md +47 -0
  222. package/skills/meta/herdr/SKILL.md +127 -0
  223. package/skills/meta/herdr/evals.md +38 -0
  224. package/skills/meta/skill-craft/SKILL.md +102 -0
  225. package/skills/meta/skill-craft/evals.md +41 -0
  226. package/skills/planning/architecture/SKILL.md +129 -0
  227. package/skills/planning/architecture/evals.md +36 -0
  228. package/skills/planning/backlog/SKILL.md +90 -0
  229. package/skills/planning/backlog/evals.md +43 -0
  230. package/skills/planning/prd/SKILL.md +82 -0
  231. package/skills/planning/prd/evals.md +49 -0
  232. package/skills/planning/product-intent/SKILL.md +112 -0
  233. package/skills/planning/product-intent/evals.md +36 -0
  234. package/skills/planning/tech-spec/SKILL.md +115 -0
  235. package/skills/planning/tech-spec/evals.md +47 -0
  236. package/skills/registry.yaml +136 -0
  237. package/skills/research/arxiv-literature/SKILL.md +104 -0
  238. package/skills/research/arxiv-literature/evals.md +58 -0
  239. package/skills/research/experiment-protocol/SKILL.md +122 -0
  240. package/skills/research/experiment-protocol/evals.md +91 -0
  241. package/skills/research/scientific-debugging/SKILL.md +119 -0
  242. package/skills/research/scientific-debugging/evals.md +138 -0
  243. package/skills/research/scientific-modernization/SKILL.md +138 -0
  244. package/skills/research/scientific-modernization/evals.md +84 -0
  245. package/skills/workflow/design-council/SKILL.md +139 -0
  246. package/skills/workflow/design-council/evals.md +97 -0
  247. package/skills/workflow/grill-me/SKILL.md +186 -0
  248. package/skills/workflow/grill-me/evals.md +78 -0
  249. package/skills/workflow/workflow-distiller/SKILL.md +136 -0
  250. package/skills/workflow/workflow-distiller/evals.md +107 -0
  251. package/src/cli/acp.ts +31 -4
  252. package/src/cli/clio.ts +68 -6
  253. package/src/cli/config-inspect.ts +28 -22
  254. package/src/cli/configure.ts +47 -9
  255. package/src/cli/context-clear.ts +2 -2
  256. package/src/cli/context-index.ts +21 -23
  257. package/src/cli/context.ts +13 -8
  258. package/src/cli/default-target.ts +9 -17
  259. package/src/cli/docs.ts +11 -5
  260. package/src/cli/evidence.ts +4 -1
  261. package/src/cli/extensions.ts +10 -1
  262. package/src/cli/fleet.ts +47 -6
  263. package/src/cli/index.ts +55 -26
  264. package/src/cli/memory.ts +3 -1
  265. package/src/cli/models.ts +1 -1
  266. package/src/cli/modes/json-stream.ts +37 -1
  267. package/src/cli/modes/print.ts +24 -9
  268. package/src/cli/run.ts +2 -2
  269. package/src/cli/skills-eval.ts +23 -8
  270. package/src/cli/skills.ts +19 -4
  271. package/src/cli/targets.ts +4 -0
  272. package/src/cli/text-layout.ts +15 -5
  273. package/src/cli/trace.ts +62 -14
  274. package/src/cli/upgrade.ts +18 -2
  275. package/src/cli/usage.ts +10 -3
  276. package/src/cli/wiki-generate.ts +2 -1
  277. package/src/core/agent-environment.ts +7 -0
  278. package/src/core/bash-exec.ts +72 -1
  279. package/src/core/boot-trace.ts +9 -4
  280. package/src/core/bus-events.ts +20 -4
  281. package/src/core/commit-attribution.ts +157 -0
  282. package/src/core/compile-cache.ts +159 -0
  283. package/src/core/config.ts +131 -2
  284. package/src/core/defaults.ts +39 -5
  285. package/src/core/domain-loader.ts +12 -5
  286. package/src/core/git-commit-attribution.ts +362 -0
  287. package/src/core/incomplete-installation.ts +45 -0
  288. package/src/core/response-schema.ts +1 -1
  289. package/src/core/safe-exec.ts +13 -1
  290. package/src/core/settings-layers.ts +155 -21
  291. package/src/core/skill-activation.ts +1 -1
  292. package/src/core/startup-timer.ts +3 -3
  293. package/src/core/state-file-lock.ts +13 -1
  294. package/src/core/termination.ts +78 -5
  295. package/src/domains/config/classify.ts +15 -3
  296. package/src/domains/config/extension.ts +19 -13
  297. package/src/domains/config/index.ts +10 -0
  298. package/src/domains/config/keybindings.ts +42 -6
  299. package/src/domains/context/bootstrap-prompt.ts +1 -1
  300. package/src/domains/context/bootstrap.ts +111 -18
  301. package/src/domains/context/clear.ts +16 -11
  302. package/src/domains/context/clio-md.ts +111 -9
  303. package/src/domains/context/codewiki/artifact.ts +400 -0
  304. package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
  305. package/src/domains/context/codewiki/build-worker.ts +54 -0
  306. package/src/domains/context/codewiki/coordinator.ts +182 -0
  307. package/src/domains/context/codewiki/indexer.ts +59 -144
  308. package/src/domains/context/codewiki/paths.ts +67 -0
  309. package/src/domains/context/codewiki/schema.ts +80 -0
  310. package/src/domains/context/codewiki/tree-sitter.ts +1 -1
  311. package/src/domains/context/contract.ts +11 -5
  312. package/src/domains/context/extension.ts +94 -143
  313. package/src/domains/context/fingerprint.ts +3 -1
  314. package/src/domains/context/index.ts +12 -22
  315. package/src/domains/context/project-metadata.ts +19 -0
  316. package/src/domains/context/prompt-context.ts +9 -10
  317. package/src/domains/context/refresh.ts +29 -21
  318. package/src/domains/context/runtime.ts +17 -0
  319. package/src/domains/context/wiki/generate.ts +39 -34
  320. package/src/domains/context/wiki/plan.ts +1 -1
  321. package/src/domains/context/wiki/prompts.ts +21 -8
  322. package/src/domains/dispatch/code-step.ts +20 -1
  323. package/src/domains/dispatch/extension.ts +158 -21
  324. package/src/domains/dispatch/failure-classification.ts +6 -0
  325. package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
  326. package/src/domains/dispatch/orphan-recovery.ts +50 -8
  327. package/src/domains/dispatch/receipt-integrity.ts +5 -0
  328. package/src/domains/dispatch/state.ts +31 -6
  329. package/src/domains/dispatch/transport.ts +2 -1
  330. package/src/domains/dispatch/types.ts +14 -0
  331. package/src/domains/dispatch/worker-spawn.ts +21 -2
  332. package/src/domains/eval/metrics/context.ts +1 -1
  333. package/src/domains/eval/types.ts +0 -1
  334. package/src/domains/evidence/build.ts +41 -1
  335. package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
  336. package/src/domains/lifecycle/migrations/index.ts +24 -4
  337. package/src/domains/middleware/hooks-io.ts +12 -0
  338. package/src/domains/middleware/skills-reminder.ts +30 -15
  339. package/src/domains/prompts/compiler.ts +142 -84
  340. package/src/domains/prompts/contract.ts +18 -2
  341. package/src/domains/prompts/extension.ts +39 -7
  342. package/src/domains/prompts/fragment-loader.ts +0 -1
  343. package/src/domains/prompts/fragments/identity/clio.md +2 -4
  344. package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
  345. package/src/domains/prompts/fragments/identity/self-awareness.md +1 -45
  346. package/src/domains/prompts/fragments/operating/contract.md +4 -50
  347. package/src/domains/prompts/fragments/operating/delegation.md +42 -0
  348. package/src/domains/prompts/fragments/operating/skills.md +26 -0
  349. package/src/domains/prompts/fragments/operating/worker.md +16 -0
  350. package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
  351. package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
  352. package/src/domains/prompts/fragments/safety/read-only.md +4 -4
  353. package/src/domains/prompts/fragments/safety/suggest.md +2 -2
  354. package/src/domains/prompts/fragments/wiki/page.md +10 -0
  355. package/src/domains/prompts/fragments/wiki/plan.md +10 -0
  356. package/src/domains/prompts/preload.ts +3 -3
  357. package/src/domains/providers/auth/api-key.ts +1 -1
  358. package/src/domains/providers/auth/backend-file.ts +20 -10
  359. package/src/domains/providers/auth/backend-memory.ts +59 -4
  360. package/src/domains/providers/auth/boot-status.ts +65 -0
  361. package/src/domains/providers/auth/oauth.ts +2 -1
  362. package/src/domains/providers/auth/storage.ts +97 -38
  363. package/src/domains/providers/capabilities.ts +12 -4
  364. package/src/domains/providers/contract.ts +15 -4
  365. package/src/domains/providers/extension.ts +18 -6
  366. package/src/domains/providers/model-runtime-capabilities.ts +15 -4
  367. package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +118 -35
  368. package/src/domains/providers/plugins.ts +5 -3
  369. package/src/domains/providers/probe/fingerprint.ts +25 -5
  370. package/src/domains/providers/registry.ts +31 -10
  371. package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
  372. package/src/domains/providers/runtimes/builtins.ts +2 -2
  373. package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
  374. package/src/domains/providers/runtimes/common/local-synth.ts +6 -7
  375. package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
  376. package/src/domains/providers/support.ts +6 -3
  377. package/src/domains/providers/types/local-model-quirks.ts +7 -9
  378. package/src/domains/providers/types/runtime-descriptor.ts +12 -1
  379. package/src/domains/providers/types/target-descriptor.ts +22 -0
  380. package/src/domains/resources/contract.ts +0 -1
  381. package/src/domains/resources/extension.ts +1 -3
  382. package/src/domains/resources/loader.ts +3 -4
  383. package/src/domains/resources/prompts/loader.ts +16 -2
  384. package/src/domains/resources/prompts/substitute.ts +1 -65
  385. package/src/domains/resources/skills/content-hash.ts +2 -0
  386. package/src/domains/resources/skills/install.ts +17 -0
  387. package/src/domains/resources/skills/loader.ts +17 -10
  388. package/src/domains/resources/skills/marketplace.ts +55 -9
  389. package/src/domains/safety/action-classifier.ts +4 -2
  390. package/src/domains/safety/audit.ts +8 -2
  391. package/src/domains/safety/extension.ts +1 -1
  392. package/src/domains/session/compaction/branch-summary.ts +3 -2
  393. package/src/domains/session/compaction/cut-point.ts +2 -1
  394. package/src/domains/session/compaction/tokens.ts +2 -1
  395. package/src/domains/session/context-ledger.ts +14 -0
  396. package/src/domains/session/contract.ts +15 -0
  397. package/src/domains/session/decision-board.ts +190 -0
  398. package/src/domains/session/entries.ts +66 -3
  399. package/src/domains/session/extension.ts +93 -12
  400. package/src/domains/session/retry.ts +10 -18
  401. package/src/domains/session/session-artifacts.ts +107 -0
  402. package/src/domains/session/task-board.ts +207 -13
  403. package/src/domains/session/tree/active-path.ts +44 -5
  404. package/src/domains/session/tree/fork.ts +26 -27
  405. package/src/domains/session/tree/preview.ts +2 -2
  406. package/src/domains/session/workspace/git-probe.ts +17 -11
  407. package/src/domains/user-tasks/store.ts +297 -0
  408. package/src/engine/acp/errors.ts +96 -0
  409. package/src/engine/acp/server.ts +1728 -146
  410. package/src/engine/acp/transport.ts +135 -14
  411. package/src/engine/acp/types.ts +26 -0
  412. package/src/engine/agent.ts +3 -3
  413. package/src/engine/ai.ts +32 -27
  414. package/src/engine/alcf-oauth.ts +26 -19
  415. package/src/engine/api-registry.ts +223 -0
  416. package/src/engine/apis/index.ts +3 -7
  417. package/src/engine/apis/llamacpp-residency.ts +49 -9
  418. package/src/engine/apis/lmstudio-residency.ts +5 -21
  419. package/src/engine/apis/lmstudio.ts +243 -0
  420. package/src/engine/apis/ollama-native.ts +24 -3
  421. package/src/engine/apis/openai-completions.ts +170 -91
  422. package/src/engine/apis/residency.ts +139 -3
  423. package/src/engine/apis/types.ts +16 -0
  424. package/src/engine/env-api-keys.ts +98 -0
  425. package/src/engine/gemma-channel-filter.ts +223 -0
  426. package/src/engine/instrumented-tui.ts +192 -0
  427. package/src/engine/messages.ts +14 -0
  428. package/src/engine/models.ts +42 -0
  429. package/src/engine/oauth.ts +16 -12
  430. package/src/engine/prompt-templates.ts +1 -0
  431. package/src/engine/provider-payload.ts +16 -59
  432. package/src/engine/strip-tokenizer-sentinels.ts +1 -1
  433. package/src/engine/truncate.ts +9 -0
  434. package/src/engine/tui.ts +17 -9
  435. package/src/engine/types.ts +3 -6
  436. package/src/engine/worker-runtime-capabilities.ts +5 -0
  437. package/src/engine/worker-runtime.ts +1 -1
  438. package/src/engine/worker-tools.ts +9 -4
  439. package/src/entry/boot-options.ts +50 -0
  440. package/src/entry/orchestrator.ts +288 -150
  441. package/src/interactive/application-controller.ts +89 -2
  442. package/src/interactive/chat-loop.ts +266 -41
  443. package/src/interactive/chat-panel.ts +173 -47
  444. package/src/interactive/chat-renderer.ts +262 -72
  445. package/src/interactive/clio-editor.ts +3 -8
  446. package/src/interactive/command-fallbacks.ts +2 -2
  447. package/src/interactive/context-overlay.ts +27 -1
  448. package/src/interactive/editor-submit.ts +228 -24
  449. package/src/interactive/export-html/ansi-to-html.ts +161 -0
  450. package/src/interactive/export-html/index.ts +51 -0
  451. package/src/interactive/export-html/template.ts +45 -0
  452. package/src/interactive/export-html/tool-renderer.ts +54 -0
  453. package/src/interactive/footer/dashboard.ts +4 -0
  454. package/src/interactive/footer/notifications.ts +1 -1
  455. package/src/interactive/footer/widgets.ts +20 -2
  456. package/src/interactive/footer-panel.ts +2 -2
  457. package/src/interactive/format-time.ts +14 -2
  458. package/src/interactive/interactive-application.ts +201 -17
  459. package/src/interactive/interactive-event-projection.ts +6 -1
  460. package/src/interactive/interactive-input-runtime.ts +50 -4
  461. package/src/interactive/interactive-presentation.ts +151 -19
  462. package/src/interactive/interactive-shell.ts +268 -14
  463. package/src/interactive/interactive-slash-runtime.ts +176 -114
  464. package/src/interactive/interactive-tickers.ts +38 -7
  465. package/src/interactive/keybinding-manager.ts +1 -1
  466. package/src/interactive/layout.ts +40 -3
  467. package/src/interactive/overlay-frame.ts +1 -1
  468. package/src/interactive/overlay-general-openers.ts +58 -1
  469. package/src/interactive/overlay-key-routing.ts +3 -0
  470. package/src/interactive/overlay-lifecycle.ts +13 -0
  471. package/src/interactive/overlay-permission-lifecycle.ts +2 -1
  472. package/src/interactive/overlay-session-lifecycle.ts +69 -12
  473. package/src/interactive/overlays/decisions.ts +300 -0
  474. package/src/interactive/overlays/help-reference.ts +15 -10
  475. package/src/interactive/overlays/model-selector.ts +34 -16
  476. package/src/interactive/overlays/session-selector.ts +18 -0
  477. package/src/interactive/overlays/settings.ts +105 -17
  478. package/src/interactive/overlays/skills-hub.ts +4 -4
  479. package/src/interactive/overlays/tree-selector.ts +41 -6
  480. package/src/interactive/render-trace.ts +499 -90
  481. package/src/interactive/renderers/compaction-summary.ts +2 -2
  482. package/src/interactive/renderers/diff.ts +115 -104
  483. package/src/interactive/renderers/mermaid.ts +53 -0
  484. package/src/interactive/renderers/tool-execution.ts +386 -133
  485. package/src/interactive/renderers/worker-entry.ts +20 -4
  486. package/src/interactive/session-switch-settlement.ts +10 -0
  487. package/src/interactive/slash-autocomplete.ts +6 -114
  488. package/src/interactive/slash-commands.ts +135 -47
  489. package/src/interactive/slash-spec.ts +9 -38
  490. package/src/interactive/status/controller.ts +5 -1
  491. package/src/interactive/stdout-backpressure.ts +99 -0
  492. package/src/interactive/stream-pacer.ts +530 -0
  493. package/src/interactive/stream-pacing-policy.ts +66 -0
  494. package/src/interactive/tasks-overlay.ts +368 -14
  495. package/src/interactive/terminal-lease.ts +485 -0
  496. package/src/interactive/theme/tokens.ts +1 -1
  497. package/src/interactive/turn-context.ts +4 -3
  498. package/src/interactive/turn-persistence.ts +30 -13
  499. package/src/interactive/turn-queues.ts +12 -0
  500. package/src/interactive/turn-recovery.ts +25 -8
  501. package/src/interactive/turn-runtime.ts +79 -12
  502. package/src/interactive/turn-state.ts +10 -0
  503. package/src/interactive/view/artifacts.ts +114 -4
  504. package/src/interactive/view/view-overlay.ts +3 -0
  505. package/src/interactive/welcome-dashboard.ts +17 -16
  506. package/src/interactive/worker-receipts.ts +52 -3
  507. package/src/interactive/worker-stream.ts +5 -1
  508. package/src/tools/agent-tools.ts +23 -3
  509. package/src/tools/artifact.ts +2 -2
  510. package/src/tools/ask-user.ts +23 -13
  511. package/src/tools/bash.ts +30 -2
  512. package/src/tools/bootstrap.ts +34 -431
  513. package/src/tools/builtin-tool-catalog.ts +265 -0
  514. package/src/tools/codewiki/code-nav-surface.ts +29 -0
  515. package/src/tools/codewiki/code-nav.ts +8 -22
  516. package/src/tools/codewiki/shared.ts +41 -38
  517. package/src/tools/context/docs-engine.ts +14 -3
  518. package/src/tools/context/index.ts +107 -28
  519. package/src/tools/context/surface.ts +19 -0
  520. package/src/tools/core-bootstrap.ts +168 -0
  521. package/src/tools/credential-present.ts +5 -5
  522. package/src/tools/dispatch-admission.ts +533 -0
  523. package/src/tools/dispatch-background.ts +54 -0
  524. package/src/tools/dispatch-event-text.ts +6 -0
  525. package/src/tools/dispatch-plan.ts +9 -4
  526. package/src/tools/dispatch-run-events.ts +238 -0
  527. package/src/tools/dispatch-runner.ts +2370 -0
  528. package/src/tools/dispatch-scout-admission.ts +295 -0
  529. package/src/tools/dispatch-types.ts +77 -0
  530. package/src/tools/dispatch.ts +67 -3161
  531. package/src/tools/find.ts +4 -2
  532. package/src/tools/grep.ts +2 -2
  533. package/src/tools/lazy-tool.ts +60 -0
  534. package/src/tools/ledger.ts +3 -3
  535. package/src/tools/monitor-surface.ts +36 -0
  536. package/src/tools/monitor.ts +2 -32
  537. package/src/tools/observers.ts +2 -2
  538. package/src/tools/registry.ts +39 -27
  539. package/src/tools/safe-exec.ts +2 -2
  540. package/src/tools/steer-surface.ts +17 -0
  541. package/src/tools/steer.ts +2 -13
  542. package/src/tools/tasks.ts +108 -11
  543. package/src/tools/truncate.ts +25 -184
  544. package/src/tools/verify/frontend.ts +3 -1
  545. package/src/tools/verify/index.ts +3 -38
  546. package/src/tools/verify/surface.ts +46 -0
  547. package/src/tools/web-fetch-surface.ts +23 -0
  548. package/src/tools/web-fetch.ts +2 -20
  549. package/src/tools/write.ts +7 -2
  550. package/src/worker/entry.ts +39 -2
  551. package/src/worker/spec-contract.ts +26 -5
  552. package/dist/chunk-7SS2CTV2.js +0 -61361
  553. package/dist/chunk-DKGKUHFA.js +0 -924
  554. package/dist/chunk-GEP36Y4X.js +0 -12796
  555. package/dist/chunk-XYWBQRDM.js +0 -137
  556. package/dist/clio-BZVGEUFJ.js +0 -58
  557. package/dist/configure-S7S6F6CL.js +0 -32
  558. package/docs/html/agents_blueprint.html +0 -936
  559. package/docs/html/alcf_blueprint.html +0 -324
  560. package/docs/html/architecture_blueprint.html +0 -850
  561. package/docs/html/commands_blueprint.html +0 -939
  562. package/docs/html/config_knobs_audit_blueprint.html +0 -178
  563. package/docs/html/configuration_blueprint.html +0 -1080
  564. package/docs/html/context_blueprint.html +0 -603
  565. package/docs/html/documentation_blueprint.html +0 -832
  566. package/docs/html/environment_blueprint.html +0 -404
  567. package/docs/html/eval_blueprint.html +0 -743
  568. package/docs/html/evals_internal_blueprint.html +0 -190
  569. package/docs/html/evolution_blueprint.html +0 -674
  570. package/docs/html/extensions_blueprint.html +0 -2065
  571. package/docs/html/fleet_dispatch_blueprint.html +0 -286
  572. package/docs/html/index.html +0 -919
  573. package/docs/html/lifecycle_blueprint.html +0 -723
  574. package/docs/html/memory_blueprint.html +0 -699
  575. package/docs/html/middleware_blueprint.html +0 -664
  576. package/docs/html/models_blueprint.html +0 -2366
  577. package/docs/html/observability_blueprint.html +0 -683
  578. package/docs/html/provider_adapter_blueprint.html +0 -245
  579. package/docs/html/safety_blueprint.html +0 -1386
  580. package/docs/html/shared.css +0 -571
  581. package/docs/html/shared.js +0 -143
  582. package/docs/html/skills_blueprint.html +0 -671
  583. package/docs/html/soak_blueprint.html +0 -182
  584. package/docs/html/tool_usage_blueprint.html +0 -350
  585. package/docs/html/tools_blueprint.html +0 -2249
  586. package/docs/html/trace_blueprint.html +0 -235
  587. package/docs/html/tui_design_blueprint.html +0 -374
  588. package/docs/html/validation_blueprint.html +0 -961
  589. package/docs/html/worker_dispatch_blueprint.html +0 -231
  590. package/src/core/release.ts +0 -2
  591. package/src/domains/providers/runtimes/common/lmstudio-logger.ts +0 -32
  592. package/src/domains/providers/runtimes/local-native/lmstudio-native.ts +0 -491
  593. package/src/engine/apis/lmstudio-native.ts +0 -1438
  594. package/src/engine/apis/thinking-replay.ts +0 -11
  595. package/src/tools/string-enum.ts +0 -15
@@ -0,0 +1,136 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ mentionsWorkerToolCallCap
4
+ } from "./chunk-4ZG3XFUR.js";
5
+ import {
6
+ init_esm_shims
7
+ } from "./chunk-3R73A4XB.js";
8
+
9
+ // src/tools/worker-evidence.ts
10
+ init_esm_shims();
11
+ var SOURCE_CITATION_PATTERN = /([\w./~-]+):(\d+)/g;
12
+ function sourceCitations(text) {
13
+ const citations = [];
14
+ for (const match of text.matchAll(SOURCE_CITATION_PATTERN)) {
15
+ const path = match[1];
16
+ const line = Number(match[2]);
17
+ if (path && Number.isSafeInteger(line) && line > 0) citations.push({ path, line });
18
+ }
19
+ return citations;
20
+ }
21
+ function hasSourceCitation(text) {
22
+ return sourceCitations(text).length > 0;
23
+ }
24
+ var SPOT_CHECK_GUIDANCE = 'Spot-check delegated claims before repeating them: re-read any cited file:line location, and re-run or inspect the named validation before repeating a "tests pass" claim.';
25
+ function isMutationClassRun(receipt, verification) {
26
+ if (verification.state === "not_applicable") return false;
27
+ if (receipt.executionRole === "builder" || receipt.executionRole === "recovery") return true;
28
+ return receipt.quality?.resultContract?.sourceId?.startsWith("agent-result-contract:mutation-report") === true;
29
+ }
30
+ function receiptAdmissionLabels(receipt) {
31
+ const labels = [];
32
+ const mismatch = receipt.capabilityMismatch;
33
+ if (mismatch !== void 0) {
34
+ labels.push(
35
+ `capability_mismatch=${mismatch.capabilityClass}/${mismatch.taskType}${mismatch.suggestedAgentId === null ? "" : ` suggested:${mismatch.suggestedAgentId}`}`
36
+ );
37
+ }
38
+ const grounding = receipt.validationGrounding;
39
+ if (grounding !== void 0) {
40
+ labels.push(
41
+ `validations=claimed:${grounding.claimed} grounded:${grounding.grounded}${grounding.ungrounded.length > 0 ? ` ${grounding.basis === "no-command-executed" ? "unverifiable" : "unmatched"}:${grounding.ungrounded.map((name) => JSON.stringify(name)).join(",")}` : ""}`
42
+ );
43
+ }
44
+ return labels;
45
+ }
46
+ function receiptActivityLabels(receipt, verification) {
47
+ const labels = [];
48
+ const activity = receipt.toolActivity;
49
+ if (activity !== void 0) {
50
+ labels.push(
51
+ `work=calls:${activity.calls} ok:${activity.succeeded} failed:${activity.failed} blocked:${activity.blocked} mutations:${activity.mutatingSucceeded ? "yes" : "no"}`
52
+ );
53
+ if (!activity.mutatingSucceeded && isMutationClassRun(receipt, verification)) labels.push("mutation_effect=none");
54
+ }
55
+ const findings = receipt.findingsSummary;
56
+ if (findings !== void 0) {
57
+ if (!findings.firstPassSuccess) labels.push("first_pass=false");
58
+ if (findings.tags.length > 0) labels.push(`findings=${[...findings.tags].sort().join(",")}`);
59
+ }
60
+ return labels;
61
+ }
62
+ function receiptEvidenceLabels(receipt, verification, integrity) {
63
+ if (!integrity.ok) return [`receipt_integrity=FAILED reason=${JSON.stringify(integrity.reason)}`];
64
+ const briefing = receipt.briefing === void 0 ? "briefing=none" : `briefing=bytes:${receipt.briefing.bytes} sha256:${receipt.briefing.contentHash}`;
65
+ let projectContext = "project_context=absent";
66
+ if (receipt.projectContext !== void 0) {
67
+ const sections = receipt.projectContext.sections ?? [];
68
+ projectContext = `project_context=${receipt.projectContext.tier} chars:${receipt.projectContext.chars ?? 0}${sections.length > 0 ? ` sections:${[...sections].sort().join(",")}` : ""}${receipt.projectContext.contentHash !== void 0 ? ` sha256:${receipt.projectContext.contentHash}` : ""}`;
69
+ }
70
+ return [
71
+ `receipt_integrity=verified/v${receipt.integrity.version}/${receipt.integrity.algorithm}`,
72
+ `evidence_verification=${verification.state}/${verification.basis}`,
73
+ ...receiptAdmissionLabels(receipt),
74
+ ...receiptActivityLabels(receipt, verification),
75
+ briefing,
76
+ projectContext
77
+ ];
78
+ }
79
+ function workerTextLabel(verification) {
80
+ switch (verification.state) {
81
+ case "verified":
82
+ return "worker output (tool-verified):";
83
+ case "not_applicable":
84
+ return "reconnaissance output (advisory leads, not validation evidence):";
85
+ case "unknown":
86
+ return "worker claims (validation not observable at this layer):";
87
+ default:
88
+ return "worker claims (unverified prose):";
89
+ }
90
+ }
91
+ function workerTextNonEvidenceNotices(receipt, verification, answerText) {
92
+ const notices = [];
93
+ const failedRun = receipt.exitCode !== 0 || receipt.outcome !== void 0 && receipt.outcome !== "succeeded";
94
+ if (mentionsWorkerToolCallCap(receipt.failureMessage) || mentionsWorkerToolCallCap(receipt.outcomeDetail)) {
95
+ notices.push(
96
+ answerText.length > 0 ? "non-evidence: the worker exhausted its tool-call cap; the text above is a partial synthesis, not verified results." : "non-evidence: the worker exhausted its tool-call cap before a final synthesis was captured."
97
+ );
98
+ } else if (failedRun) {
99
+ notices.push(
100
+ "non-evidence: this run did not succeed; treat the text above as an unsubstantiated report, not results."
101
+ );
102
+ }
103
+ if (receipt.toolActivity !== void 0 && receipt.toolActivity.succeeded === 0) {
104
+ notices.push("non-evidence: no tool call succeeded in this run; the text above was written without observed work.");
105
+ } else if (receipt.toolActivity?.mutatingSucceeded === false && isMutationClassRun(receipt, verification)) {
106
+ notices.push(
107
+ "non-evidence: this run was dispatched as work that changes the tree, but no mutating tool call succeeded. Nothing was written. Confirm with a diff before repeating any claim that something was fixed."
108
+ );
109
+ }
110
+ const grounding = receipt.validationGrounding;
111
+ if (grounding !== void 0 && grounding.ungrounded.length > 0) {
112
+ const named = grounding.ungrounded.map((name) => JSON.stringify(name)).join(", ");
113
+ notices.push(
114
+ grounding.basis === "no-command-executed" ? `non-evidence: this run reported ${named} as passing and executed no command at all. Re-run the check yourself before repeating the claim.` : `non-evidence: this run reported ${named} as passing through a command the harness cannot identify as that check. Re-run it before repeating the claim.`
115
+ );
116
+ }
117
+ if (receipt.capabilityMismatch !== void 0) {
118
+ notices.push(
119
+ `non-evidence: '${receipt.capabilityMismatch.agentId}' is a ${receipt.capabilityMismatch.capabilityClass} recipe and cannot write to the workspace, but this task classified as ${receipt.capabilityMismatch.taskType}. Nothing it reports as changed can have been changed by it.`
120
+ );
121
+ }
122
+ if (!failedRun && verification.state === "not_applicable" && answerText.length > 0 && !hasSourceCitation(answerText)) {
123
+ notices.push(
124
+ "non-evidence: this reconnaissance answer cites no file:line locations; treat its leads as unconfirmed."
125
+ );
126
+ }
127
+ return notices;
128
+ }
129
+
130
+ export {
131
+ SPOT_CHECK_GUIDANCE,
132
+ receiptEvidenceLabels,
133
+ workerTextLabel,
134
+ workerTextNonEvidenceNotices
135
+ };
136
+ //# sourceMappingURL=chunk-6N5PTWMY.js.map
@@ -0,0 +1,27 @@
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/tools/truncate-utf8.ts
7
+ init_esm_shims();
8
+ function truncateUtf8(text, maxBytes, marker) {
9
+ const buf = Buffer.from(text, "utf8");
10
+ if (buf.byteLength <= maxBytes) return text;
11
+ let cut = maxBytes;
12
+ while (cut > 0) {
13
+ const nextByte = buf[cut];
14
+ if (nextByte === void 0 || (nextByte & 192) !== 128) break;
15
+ cut -= 1;
16
+ }
17
+ return `${buf.subarray(0, cut).toString("utf8")}${marker}`;
18
+ }
19
+ function byteLength(text) {
20
+ return Buffer.byteLength(text, "utf8");
21
+ }
22
+
23
+ export {
24
+ truncateUtf8,
25
+ byteLength
26
+ };
27
+ //# sourceMappingURL=chunk-6XLNIQDB.js.map
@@ -1,15 +1,4 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import {
3
- createDelayedManualCodeInput,
4
- promptOAuthSelection
5
- } from "./chunk-2STGEDFV.js";
6
- import {
7
- column,
8
- terminalColumns,
9
- truncate,
10
- twoColumnRow,
11
- wrapPlain
12
- } from "./chunk-IS3ONKU3.js";
13
2
  import {
14
3
  INHERITED_PROJECT_CONTEXT,
15
4
  acceptInteropAgents,
@@ -18,18 +7,29 @@ import {
18
7
  fingerprintNativeRuntime,
19
8
  interopProposals,
20
9
  renderProposalEntry
21
- } from "./chunk-PV4JUBVJ.js";
10
+ } from "./chunk-2EHAIA3X.js";
22
11
  import {
23
12
  initializeClioHome
24
- } from "./chunk-673JJUWJ.js";
13
+ } from "./chunk-BMEMKKIT.js";
14
+ import {
15
+ createDelayedManualCodeInput,
16
+ promptOAuthSelection
17
+ } from "./chunk-2STGEDFV.js";
18
+ import {
19
+ column,
20
+ terminalColumns,
21
+ truncate,
22
+ twoColumnRow,
23
+ wrapPlain
24
+ } from "./chunk-2IR2NMPA.js";
25
25
  import {
26
26
  credentialWriteFailed,
27
27
  printPlaintextCredentialWarning
28
- } from "./chunk-RDLVBZEO.js";
28
+ } from "./chunk-YCWGATWI.js";
29
29
  import {
30
30
  printError,
31
31
  printOk
32
- } from "./chunk-K2ITRMHZ.js";
32
+ } from "./chunk-ED4KHGC3.js";
33
33
  import {
34
34
  buildProviderSupportEntry,
35
35
  configuredTargetsForRuntime,
@@ -37,26 +37,27 @@ import {
37
37
  describeRuntimeModels,
38
38
  getCatalogModelForRuntime,
39
39
  getRuntimeRegistry,
40
+ greetLmStudio,
40
41
  isOrchestratorEligibleRuntime,
41
42
  listKnownModelsForRuntime,
42
43
  listProviderSupportEntries,
43
44
  probeCapabilitiesForModel,
44
45
  registerBuiltinRuntimes,
45
46
  supportGroupLabel
46
- } from "./chunk-H6F6BYOH.js";
47
+ } from "./chunk-LZSJBIVT.js";
47
48
  import {
48
49
  readSettings,
49
50
  removeTargetFromSettings,
50
51
  settingsPath,
51
52
  updateSettings
52
- } from "./chunk-KY56HMHH.js";
53
+ } from "./chunk-A3CYT5EX.js";
53
54
  import {
54
55
  openAuthStorage,
55
56
  registerClioOAuthProviders,
56
57
  resolveAuthTarget,
57
58
  resolveRuntimeAuthTarget,
58
59
  targetRequiresAuth
59
- } from "./chunk-GB6QRBXN.js";
60
+ } from "./chunk-4VP4KH3K.js";
60
61
  import {
61
62
  init_esm_shims
62
63
  } from "./chunk-3R73A4XB.js";
@@ -321,6 +322,7 @@ var DEFAULT_PORTS = {
321
322
  "llamacpp-embed": 8080,
322
323
  "llamacpp-rerank": 8080,
323
324
  "lmstudio-native": 1234,
325
+ lmstudio: 1234,
324
326
  "ollama-native": 11434,
325
327
  vllm: 8e3,
326
328
  sglang: 3e4,
@@ -468,7 +470,8 @@ function normalizeUrl(input2, runtimeId) {
468
470
  const trimmed = input2.trim();
469
471
  if (trimmed.length === 0) return defaultUrlFor(runtimeId);
470
472
  const hasScheme = /^[a-z][a-z0-9+.-]*:\/\//i.test(trimmed);
471
- const withScheme = hasScheme ? trimmed : `http://${trimmed}`;
473
+ let withScheme = hasScheme ? trimmed : `http://${trimmed}`;
474
+ if (runtimeId === "lmstudio") withScheme = withScheme.replace(/^ws:/u, "http:").replace(/^wss:/u, "https:");
472
475
  try {
473
476
  const parsed = new URL(withScheme);
474
477
  if (!hasScheme && !parsed.port && DEFAULT_PORTS[runtimeId]) {
@@ -588,10 +591,11 @@ async function runtimeProbe(runtime, target) {
588
591
  return { ok: false, error: err instanceof Error ? err.message : String(err) };
589
592
  }
590
593
  }
591
- async function runtimeProbeModels(runtime, target) {
594
+ async function runtimeProbeModels(runtime, target, authToken) {
592
595
  if (typeof runtime.probeModels !== "function") return [];
593
596
  try {
594
- return await runtime.probeModels(target, await buildProbeContext(runtime, target));
597
+ const context = await buildProbeContext(runtime, target);
598
+ return await runtime.probeModels(target, authToken === void 0 ? context : { ...context, authToken });
595
599
  } catch {
596
600
  return [];
597
601
  }
@@ -746,6 +750,7 @@ function buildDescriptor(runtime, id, parts) {
746
750
  if (parts.maxTokens !== void 0) caps.maxTokens = parts.maxTokens;
747
751
  if (parts.reasoning !== void 0) caps.reasoning = parts.reasoning;
748
752
  if (Object.keys(caps).length > 0) descriptor.capabilities = caps;
753
+ if (parts.lmstudio) descriptor.lmstudio = parts.lmstudio;
749
754
  return descriptor;
750
755
  }
751
756
  function describeAuthStatus(runtime) {
@@ -802,10 +807,10 @@ Open: ${verificationUri}
802
807
  manualCodeInput.cancel();
803
808
  }
804
809
  }
805
- async function resolveSupportedWireModels(runtime, target, existing) {
810
+ async function resolveSupportedWireModels(runtime, target, existing, authToken) {
806
811
  const known = listKnownModelsForRuntime(runtime.id);
807
812
  if (known.length > 0) return known;
808
- const discovered = runtime.kind === "http" ? await runtimeProbeModels(runtime, target) : [];
813
+ const discovered = runtime.kind === "http" ? await runtimeProbeModels(runtime, target, authToken) : [];
809
814
  if (discovered.length > 0) return discovered;
810
815
  return existing?.wireModels ? [...existing.wireModels] : [];
811
816
  }
@@ -824,7 +829,7 @@ async function askModelChoice(rl, label, wireModels, defaultValue) {
824
829
  }
825
830
  function refuseCatalogSeededModel(runtime, support) {
826
831
  printError(
827
- `--model is required for ${runtime.id}: its ${support.modelHints.length} model ids come from the pi-ai catalog in name order, which recommends none of them`
832
+ `--model is required for ${runtime.id}: its ${support.modelHints.length} model ids come from the provider catalog in name order, which recommends none of them`
828
833
  );
829
834
  process.stderr.write(
830
835
  ` run \`clio-coder configure --runtime ${runtime.id}\` with no other flags to choose from the full list
@@ -854,7 +859,7 @@ async function runNonInteractive(runtime, args) {
854
859
  const auth = openAuthStorage();
855
860
  const support = buildProviderSupportEntry(runtime);
856
861
  const existing = settings.targets.find((e) => e.id === args.id);
857
- if (existing && existing.runtime !== runtime.id) {
862
+ if (existing && (getRuntimeRegistry().get(existing.runtime)?.id ?? existing.runtime) !== runtime.id) {
858
863
  printError(`target ${args.id} already exists with runtime ${existing.runtime}`);
859
864
  return 2;
860
865
  }
@@ -862,6 +867,16 @@ async function runNonInteractive(runtime, args) {
862
867
  if (!url && support.supportsCustomUrl) {
863
868
  url = defaultUrlFor(runtime.id);
864
869
  }
870
+ if (url && runtime.id === "lmstudio") {
871
+ const greeting = await greetLmStudio(
872
+ { id: args.id, runtime: runtime.id, url },
873
+ { credentialsPresent: /* @__PURE__ */ new Set(), httpTimeoutMs: 750 }
874
+ );
875
+ if (!greeting.ok) {
876
+ printError(`refusing to save LM Studio target '${args.id}': ${url} did not return the LM Studio greeting`);
877
+ return 2;
878
+ }
879
+ }
865
880
  if (url && (runtime.id === "openai-compat" || runtime.id === "anthropic-compat")) {
866
881
  const fingerprint = await fingerprintNativeRuntime(url);
867
882
  if (fingerprint) {
@@ -885,9 +900,10 @@ async function runNonInteractive(runtime, args) {
885
900
  ...args.lifecycle !== void 0 ? { lifecycle: args.lifecycle } : existing?.lifecycle !== void 0 ? { lifecycle: existing.lifecycle } : {},
886
901
  ...args.contextWindow !== void 0 ? { contextWindow: args.contextWindow } : {},
887
902
  ...args.maxTokens !== void 0 ? { maxTokens: args.maxTokens } : {},
888
- ...args.reasoning !== void 0 ? { reasoning: args.reasoning } : {}
903
+ ...args.reasoning !== void 0 ? { reasoning: args.reasoning } : {},
904
+ ...existing?.lmstudio ? { lmstudio: existing.lmstudio } : {}
889
905
  });
890
- const wireModels = await resolveSupportedWireModels(runtime, seed, existing);
906
+ const wireModels = await resolveSupportedWireModels(runtime, seed, existing, args.apiKey);
891
907
  const model = args.model ?? existing?.defaultModel ?? support.defaultModel ?? (support.modelSource === "catalog" ? void 0 : wireModels[0]);
892
908
  if (model === void 0 && support.modelSource === "catalog") {
893
909
  refuseCatalogSeededModel(runtime, support);
@@ -906,7 +922,8 @@ async function runNonInteractive(runtime, args) {
906
922
  ...args.lifecycle !== void 0 ? { lifecycle: args.lifecycle } : existing?.lifecycle !== void 0 ? { lifecycle: existing.lifecycle } : {},
907
923
  ...args.contextWindow !== void 0 ? { contextWindow: args.contextWindow } : {},
908
924
  ...args.maxTokens !== void 0 ? { maxTokens: args.maxTokens } : {},
909
- ...args.reasoning !== void 0 ? { reasoning: args.reasoning } : {}
925
+ ...args.reasoning !== void 0 ? { reasoning: args.reasoning } : {},
926
+ ...existing?.lmstudio ? { lmstudio: existing.lmstudio } : {}
910
927
  });
911
928
  const setOrchestrator = args.setOrchestrator || args.orchestratorModel !== void 0;
912
929
  const setBackground = args.setBackground || args.backgroundModel !== void 0;
@@ -1007,7 +1024,7 @@ async function pickRuntimeFromEntries(rl, entries, heading) {
1007
1024
  `);
1008
1025
  }
1009
1026
  }
1010
- var LOCAL_APP_RUNTIME_IDS = /* @__PURE__ */ new Set(["ollama-native", "lmstudio-native"]);
1027
+ var LOCAL_APP_RUNTIME_IDS = /* @__PURE__ */ new Set(["ollama-native", "lmstudio"]);
1011
1028
  var PROTOCOL_COMPAT_RUNTIME_IDS = /* @__PURE__ */ new Set(["openai-compat", "anthropic-compat"]);
1012
1029
  function runtimesForCategory(entries, category) {
1013
1030
  switch (category) {
@@ -1151,6 +1168,16 @@ Selected runtime: ${runtime.id} (${support.summary})
1151
1168
  runtime = steered;
1152
1169
  support = buildProviderSupportEntry(runtime);
1153
1170
  }
1171
+ if (runtime.id === "lmstudio") {
1172
+ const greeting = await greetLmStudio(
1173
+ { id: targetId, runtime: runtime.id, url },
1174
+ { credentialsPresent: /* @__PURE__ */ new Set(), httpTimeoutMs: 750 }
1175
+ );
1176
+ if (!greeting.ok) {
1177
+ printError(`refusing to save LM Studio target '${targetId}': ${url} did not return the LM Studio greeting`);
1178
+ return 2;
1179
+ }
1180
+ }
1154
1181
  }
1155
1182
  let apiKeyEnv;
1156
1183
  let apiKeyLiteral;
@@ -1205,7 +1232,8 @@ Selected runtime: ${runtime.id} (${support.summary})
1205
1232
  ...defaults.lifecycle !== void 0 ? { lifecycle: defaults.lifecycle } : existing?.lifecycle !== void 0 ? { lifecycle: existing.lifecycle } : {},
1206
1233
  ...defaults.contextWindow !== void 0 ? { contextWindow: defaults.contextWindow } : {},
1207
1234
  ...defaults.maxTokens !== void 0 ? { maxTokens: defaults.maxTokens } : {},
1208
- ...defaults.reasoning !== void 0 ? { reasoning: defaults.reasoning } : {}
1235
+ ...defaults.reasoning !== void 0 ? { reasoning: defaults.reasoning } : {},
1236
+ ...existing?.lmstudio ? { lmstudio: existing.lmstudio } : {}
1209
1237
  });
1210
1238
  if (runtime.kind === "http") {
1211
1239
  wireModels = await resolveSupportedWireModels(runtime, tentative, existing ?? void 0);
@@ -1219,7 +1247,7 @@ Selected runtime: ${runtime.id} (${support.summary})
1219
1247
  `);
1220
1248
  }
1221
1249
  if (!model && catalogOrdered) {
1222
- process.stdout.write(` listed in pi-ai catalog order, which recommends none of them; pick one.
1250
+ process.stdout.write(` listed in provider catalog order, which recommends none of them; pick one.
1223
1251
  `);
1224
1252
  }
1225
1253
  for (; ; ) {
@@ -1278,7 +1306,8 @@ Selected runtime: ${runtime.id} (${support.summary})
1278
1306
  ...defaults.lifecycle !== void 0 ? { lifecycle: defaults.lifecycle } : existing?.lifecycle !== void 0 ? { lifecycle: existing.lifecycle } : {},
1279
1307
  ...contextWindowChoice !== void 0 ? { contextWindow: contextWindowChoice } : {},
1280
1308
  ...defaults.maxTokens !== void 0 ? { maxTokens: defaults.maxTokens } : {},
1281
- ...reasoningChoice !== void 0 ? { reasoning: reasoningChoice } : {}
1309
+ ...reasoningChoice !== void 0 ? { reasoning: reasoningChoice } : {},
1310
+ ...existing?.lmstudio ? { lmstudio: existing.lmstudio } : {}
1282
1311
  });
1283
1312
  try {
1284
1313
  assertOrchestratorReplacementEligible(settings, descriptor);
@@ -1431,6 +1460,9 @@ async function runConfigureCommand(argv) {
1431
1460
  process.stdout.write("run `clio-coder configure --list` to see registered runtimes\n");
1432
1461
  return 2;
1433
1462
  }
1463
+ if (runtimeId === "lmstudio-native" && runtime.id === "lmstudio") {
1464
+ process.stderr.write("warning: runtime 'lmstudio-native' is deprecated; using 'lmstudio'\n");
1465
+ }
1434
1466
  }
1435
1467
  const hasTargetSetupFlag = args.id !== void 0 || args.url !== void 0 || args.model !== void 0 || args.workerProfile !== void 0 || args.workerProfileModel !== void 0 || args.apiKey !== void 0 || args.apiKeyEnv !== void 0 || args.gateway || args.lifecycle !== void 0 || args.setOrchestrator || args.setWorkerDefault || args.contextWindow !== void 0 || args.maxTokens !== void 0 || args.reasoning !== void 0;
1436
1468
  const nonInteractive = runtime !== null && hasTargetSetupFlag;
@@ -1457,4 +1489,4 @@ export {
1457
1489
  runTargetRename,
1458
1490
  runConfigureCommand
1459
1491
  };
1460
- //# sourceMappingURL=chunk-TEKV33Q5.js.map
1492
+ //# sourceMappingURL=chunk-77VKQEHF.js.map
@@ -0,0 +1,242 @@
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/c-header-language.ts
7
+ init_esm_shims();
8
+ function isAmbiguousHeaderPath(path) {
9
+ return path.endsWith(".h");
10
+ }
11
+ var CPP_ONLY_STD_INCLUDES = /* @__PURE__ */ new Set([
12
+ "algorithm",
13
+ "any",
14
+ "array",
15
+ "atomic",
16
+ "barrier",
17
+ "bit",
18
+ "bitset",
19
+ "cassert",
20
+ "cctype",
21
+ "cerrno",
22
+ "cfenv",
23
+ "cfloat",
24
+ "charconv",
25
+ "chrono",
26
+ "cinttypes",
27
+ "climits",
28
+ "clocale",
29
+ "cmath",
30
+ "codecvt",
31
+ "compare",
32
+ "complex",
33
+ "concepts",
34
+ "condition_variable",
35
+ "coroutine",
36
+ "csetjmp",
37
+ "csignal",
38
+ "cstdarg",
39
+ "cstddef",
40
+ "cstdint",
41
+ "cstdio",
42
+ "cstdlib",
43
+ "cstring",
44
+ "ctime",
45
+ "cuchar",
46
+ "cwchar",
47
+ "cwctype",
48
+ "deque",
49
+ "exception",
50
+ "execution",
51
+ "expected",
52
+ "filesystem",
53
+ "flat_map",
54
+ "flat_set",
55
+ "format",
56
+ "forward_list",
57
+ "fstream",
58
+ "functional",
59
+ "future",
60
+ "generator",
61
+ "initializer_list",
62
+ "iomanip",
63
+ "ios",
64
+ "iosfwd",
65
+ "iostream",
66
+ "istream",
67
+ "iterator",
68
+ "latch",
69
+ "limits",
70
+ "list",
71
+ "locale",
72
+ "map",
73
+ "mdspan",
74
+ "memory",
75
+ "memory_resource",
76
+ "mutex",
77
+ "new",
78
+ "numbers",
79
+ "numeric",
80
+ "optional",
81
+ "ostream",
82
+ "print",
83
+ "queue",
84
+ "random",
85
+ "ranges",
86
+ "ratio",
87
+ "regex",
88
+ "scoped_allocator",
89
+ "semaphore",
90
+ "set",
91
+ "shared_mutex",
92
+ "source_location",
93
+ "span",
94
+ "spanstream",
95
+ "sstream",
96
+ "stack",
97
+ "stacktrace",
98
+ "stdexcept",
99
+ "stop_token",
100
+ "streambuf",
101
+ "string",
102
+ "string_view",
103
+ "syncstream",
104
+ "system_error",
105
+ "thread",
106
+ "tuple",
107
+ "type_traits",
108
+ "typeindex",
109
+ "typeinfo",
110
+ "unordered_map",
111
+ "unordered_set",
112
+ "utility",
113
+ "valarray",
114
+ "variant",
115
+ "vector",
116
+ "version"
117
+ ]);
118
+ var CPP_SYNTAX_PATTERNS = [
119
+ /\bnamespace\s+[A-Za-z_{:]/,
120
+ /\btemplate\s*</,
121
+ /\btypename\b/,
122
+ /\bclass\s+[A-Za-z_]/,
123
+ /\benum\s+(?:class|struct)\b/,
124
+ /\w::~?[A-Za-z_~]/,
125
+ /::/,
126
+ /^\s*(?:public|private|protected)\s*:(?!:)/m,
127
+ /\b(?:static_cast|dynamic_cast|reinterpret_cast|const_cast)\s*</,
128
+ /\busing\s+[A-Za-z_]\w*\s*=/,
129
+ /\busing\s+namespace\b/,
130
+ /\boperator\s*(?:[+\-*/%^&|~!=<>]|\(\)|\[\])/,
131
+ /\b(?:constexpr|consteval|constinit|noexcept|nullptr|decltype|thread_local)\b/,
132
+ /\b(?:virtual|override|friend|mutable)\b/,
133
+ /\)\s*(?:const|noexcept|override|final)\b/,
134
+ /^[ \t]*[A-Za-z_]\w*(?:::\w+)*(?:\s*<[^;{}()]+>)?\s*&&?\s*[A-Za-z_]\w*\s*\([^;{}]*\)\s*;/m,
135
+ /\bauto\s+[A-Za-z_]\w*\s*\([^;{}]*\)\s*->/
136
+ ];
137
+ function blank(ch) {
138
+ return ch === "\n" ? "\n" : " ";
139
+ }
140
+ function stripForScan(text) {
141
+ let withStrings = "";
142
+ let code = "";
143
+ let state = "code";
144
+ for (let index = 0; index < text.length; index += 1) {
145
+ const ch = text[index];
146
+ const next = text[index + 1];
147
+ if (state === "code") {
148
+ if (ch === "/" && next === "/") {
149
+ state = "line-comment";
150
+ withStrings += " ";
151
+ code += " ";
152
+ continue;
153
+ }
154
+ if (ch === "/" && next === "*") {
155
+ state = "block-comment";
156
+ withStrings += " ";
157
+ code += " ";
158
+ continue;
159
+ }
160
+ if (ch === '"') state = "string";
161
+ else if (ch === "'") state = "char";
162
+ withStrings += ch;
163
+ code += state === "code" ? ch : " ";
164
+ continue;
165
+ }
166
+ if (state === "line-comment") {
167
+ if (ch === "\n") state = "code";
168
+ withStrings += blank(ch);
169
+ code += blank(ch);
170
+ continue;
171
+ }
172
+ if (state === "block-comment") {
173
+ if (ch === "*" && next === "/") {
174
+ state = "code";
175
+ index += 1;
176
+ withStrings += " ";
177
+ code += " ";
178
+ continue;
179
+ }
180
+ withStrings += blank(ch);
181
+ code += blank(ch);
182
+ continue;
183
+ }
184
+ if (ch === "\\" && next !== void 0) {
185
+ withStrings += ch + next;
186
+ code += blank(ch) + blank(next);
187
+ index += 1;
188
+ continue;
189
+ }
190
+ if (state === "string" && ch === '"' || state === "char" && ch === "'" || ch === "\n") {
191
+ state = "code";
192
+ withStrings += ch;
193
+ code += blank(ch);
194
+ continue;
195
+ }
196
+ withStrings += ch;
197
+ code += blank(ch);
198
+ }
199
+ return { withStrings, code };
200
+ }
201
+ function hasCppInclude(withStrings) {
202
+ for (const match of withStrings.matchAll(/^[ \t]*#[ \t]*include[ \t]*([<"])([^>"\n]+)[>"]/gm)) {
203
+ const delimiter = match[1];
204
+ const target = match[2]?.trim() ?? "";
205
+ if (/\.(?:hpp|hh|hxx|cuh)$/.test(target)) return true;
206
+ if (delimiter === "<" && CPP_ONLY_STD_INCLUDES.has(target)) return true;
207
+ }
208
+ return false;
209
+ }
210
+ function hasCppMemberDeclaration(code) {
211
+ for (const match of code.matchAll(/\b(?:class|struct)\s+[A-Za-z_]\w*[^;{]*\{([\s\S]*?)\}/g)) {
212
+ const body = match[1] ?? "";
213
+ for (const rawStatement of body.split(";")) {
214
+ const statement = rawStatement.trim();
215
+ if (statement.length === 0 || /\(\s*[*&]/.test(statement)) continue;
216
+ const member = /(?:^|\s)(operator\s*[^\s(]+|~?[A-Za-z_]\w*)\s*\([^{};]*\)\s*(?:const\b|noexcept\b|override\b|final\b|=\s*0\s*)*$/.exec(
217
+ statement
218
+ );
219
+ if (!member) continue;
220
+ const name = member[1] ?? "";
221
+ const prefix = statement.slice(0, member.index);
222
+ if (prefix.includes("[") || /^[_A-Z][_A-Z0-9]*$/.test(name)) continue;
223
+ return true;
224
+ }
225
+ }
226
+ return false;
227
+ }
228
+ function classifyCHeaderLanguage(text) {
229
+ const { withStrings, code } = stripForScan(text);
230
+ if (hasCppInclude(withStrings)) return "c++";
231
+ if (hasCppMemberDeclaration(code)) return "c++";
232
+ for (const pattern of CPP_SYNTAX_PATTERNS) {
233
+ if (pattern.test(code)) return "c++";
234
+ }
235
+ return "c";
236
+ }
237
+
238
+ export {
239
+ isAmbiguousHeaderPath,
240
+ classifyCHeaderLanguage
241
+ };
242
+ //# sourceMappingURL=chunk-7CR24IG7.js.map