@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
@@ -1,603 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Clio Coder Context Engine Blueprint (v0.3.1)</title>
7
-
8
- <style>
9
- :root {
10
- --bg-dark: #090d16;
11
- --bg-grid: rgba(255, 255, 255, 0.02);
12
- --bg-card: rgba(13, 20, 38, 0.45);
13
- --bg-card-hover: rgba(20, 30, 58, 0.6);
14
- --border-card: rgba(255, 255, 255, 0.08);
15
- --border-card-hover: rgba(0, 240, 255, 0.3);
16
- --text-main: #f3f4f6;
17
- --text-muted: #9ca3af;
18
- --text-dim: #6b7280;
19
-
20
- --color-cyan: #00f0ff;
21
- --color-cyan-rgb: 0, 240, 255;
22
- --color-purple: #bd00ff;
23
- --color-purple-rgb: 189, 0, 255;
24
- --color-emerald: #10b981;
25
- --color-emerald-rgb: 16, 185, 129;
26
- --color-amber: #f59e0b;
27
- --color-amber-rgb: 245, 158, 11;
28
- --color-rose: #ef4444;
29
- --color-rose-rgb: 239, 68, 68;
30
-
31
- --gradient-main: linear-gradient(135deg, var(--color-cyan), var(--color-purple));
32
- --shadow-glow: 0 0 25px rgba(0, 240, 255, 0.15);
33
- --font-sans: "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif;
34
- --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
35
-
36
- --glass-blur: blur(12px);
37
- }
38
-
39
- * {
40
- box-sizing: border-box;
41
- margin: 0;
42
- padding: 0;
43
- }
44
-
45
- body {
46
- background-color: var(--bg-dark);
47
- background-image:
48
- radial-gradient(circle at 10% 20%, rgba(var(--color-cyan-rgb), 0.05) 0%, transparent 40%),
49
- radial-gradient(circle at 90% 80%, rgba(var(--color-purple-rgb), 0.05) 0%, transparent 40%),
50
- radial-gradient(circle at 50% 50%, #0d1527 0%, var(--bg-dark) 100%);
51
- color: var(--text-main);
52
- font-family: var(--font-sans);
53
- min-height: 100vh;
54
- line-height: 1.6;
55
- overflow-x: hidden;
56
- position: relative;
57
- }
58
-
59
- body::before {
60
- content: '';
61
- position: absolute;
62
- inset: 0;
63
- background-image: linear-gradient(var(--bg-grid) 1px, transparent 1px),
64
- linear-gradient(90deg, var(--bg-grid) 1px, transparent 1px);
65
- background-size: 40px 40px;
66
- background-position: center top;
67
- pointer-events: none;
68
- z-index: 0;
69
- opacity: 0.8;
70
- }
71
-
72
- .container {
73
- max-width: 1400px;
74
- margin: 0 auto;
75
- padding: 2rem;
76
- position: relative;
77
- z-index: 1;
78
- }
79
-
80
- /* Header Styling */
81
- header {
82
- display: flex;
83
- justify-content: space-between;
84
- align-items: center;
85
- margin-bottom: 2.5rem;
86
- padding-bottom: 1.5rem;
87
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
88
- }
89
-
90
- .header-left {
91
- display: flex;
92
- align-items: center;
93
- gap: 1rem;
94
- }
95
-
96
- .header-logo {
97
- display: inline-flex;
98
- align-items: center;
99
- justify-content: center;
100
- width: 48px;
101
- height: 48px;
102
- background: rgba(255, 255, 255, 0.02);
103
- border: 1px solid var(--border-card);
104
- border-radius: 12px;
105
- }
106
-
107
- .header-logo svg {
108
- width: 28px;
109
- height: 28px;
110
- }
111
-
112
- .header-title-wrapper h1 {
113
- font-size: 1.5rem;
114
- font-weight: 800;
115
- letter-spacing: -0.03em;
116
- background: linear-gradient(to right, #ffffff, #c7d2fe, var(--color-cyan));
117
- -webkit-background-clip: text;
118
- -webkit-text-fill-color: transparent;
119
- }
120
-
121
- .header-title-wrapper p {
122
- font-size: 0.825rem;
123
- color: var(--text-muted);
124
- }
125
-
126
- .header-right {
127
- display: flex;
128
- align-items: center;
129
- gap: 1rem;
130
- }
131
-
132
- .back-btn {
133
- background: rgba(255, 255, 255, 0.03);
134
- border: 1px solid var(--border-card);
135
- color: var(--text-muted);
136
- padding: 0.5rem 1rem;
137
- border-radius: 8px;
138
- font-size: 0.875rem;
139
- font-weight: 600;
140
- text-decoration: none;
141
- display: inline-flex;
142
- align-items: center;
143
- gap: 0.5rem;
144
- transition: all 0.2s;
145
- }
146
-
147
- .back-btn:hover {
148
- background: rgba(255, 255, 255, 0.08);
149
- color: var(--text-main);
150
- border-color: rgba(var(--color-cyan-rgb), 0.3);
151
- }
152
-
153
- .version-badge {
154
- background: rgba(0, 240, 255, 0.08);
155
- border: 1px solid rgba(0, 240, 255, 0.25);
156
- color: var(--color-cyan);
157
- padding: 0.35rem 0.75rem;
158
- border-radius: 50px;
159
- font-size: 0.75rem;
160
- font-weight: 600;
161
- font-family: var(--font-mono);
162
- }
163
-
164
- /* Tabs Navigation */
165
- .tabs-nav {
166
- display: flex;
167
- gap: 0.75rem;
168
- margin-bottom: 2rem;
169
- }
170
-
171
- .tab-btn {
172
- background: rgba(255, 255, 255, 0.03);
173
- border: 1px solid var(--border-card);
174
- color: var(--text-muted);
175
- padding: 0.6rem 1.25rem;
176
- border-radius: 8px;
177
- font-size: 0.875rem;
178
- font-weight: 600;
179
- cursor: pointer;
180
- display: flex;
181
- align-items: center;
182
- gap: 0.5rem;
183
- transition: all 0.2s;
184
- }
185
-
186
- .tab-btn:hover {
187
- background: rgba(255, 255, 255, 0.06);
188
- color: var(--text-main);
189
- }
190
-
191
- .tab-btn.active {
192
- background: var(--gradient-main);
193
- color: #090d16;
194
- border-color: transparent;
195
- box-shadow: 0 4px 15px rgba(var(--color-cyan-rgb), 0.25);
196
- }
197
-
198
- /* Content Layout */
199
- .tab-pane {
200
- display: none;
201
- animation: fadeIn 0.3s ease-out forwards;
202
- }
203
-
204
- .tab-pane.active {
205
- display: block;
206
- }
207
-
208
- @keyframes fadeIn {
209
- from { opacity: 0; transform: translateY(8px); }
210
- to { opacity: 1; transform: translateY(0); }
211
- }
212
-
213
- /* Split layout */
214
- .blueprint-layout {
215
- display: grid;
216
- grid-template-columns: 1fr 1fr;
217
- gap: 2rem;
218
- align-items: start;
219
- }
220
-
221
- @media (max-width: 1100px) {
222
- .blueprint-layout {
223
- grid-template-columns: 1fr;
224
- }
225
- }
226
-
227
- .glass-card {
228
- background: var(--bg-card);
229
- border: 1px solid var(--border-card);
230
- border-radius: 16px;
231
- padding: 1.75rem;
232
- margin-bottom: 2rem;
233
- backdrop-filter: var(--glass-blur);
234
- box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3);
235
- }
236
-
237
- .glass-card h2 {
238
- font-size: 1.25rem;
239
- font-weight: 700;
240
- color: #ffffff;
241
- margin-bottom: 1.25rem;
242
- display: flex;
243
- align-items: center;
244
- gap: 0.5rem;
245
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
246
- padding-bottom: 0.75rem;
247
- }
248
-
249
- .glass-card h2 svg {
250
- width: 18px;
251
- height: 18px;
252
- color: var(--color-cyan);
253
- }
254
-
255
- .glass-card p {
256
- font-size: 0.925rem;
257
- color: var(--text-muted);
258
- margin-bottom: 1rem;
259
- }
260
-
261
- /* Form Elements */
262
- .form-group {
263
- margin-bottom: 1.25rem;
264
- }
265
-
266
- .form-group label {
267
- display: block;
268
- font-size: 0.8rem;
269
- font-weight: 600;
270
- color: var(--text-muted);
271
- margin-bottom: 0.5rem;
272
- text-transform: uppercase;
273
- letter-spacing: 0.05em;
274
- }
275
-
276
- select, input {
277
- width: 100%;
278
- background: rgba(9, 13, 22, 0.7);
279
- border: 1px solid var(--border-card);
280
- border-radius: 8px;
281
- padding: 0.65rem 0.85rem;
282
- color: #fff;
283
- font-family: var(--font-sans);
284
- font-size: 0.9rem;
285
- outline: none;
286
- }
287
-
288
- /* Stacked Token Visualizer */
289
- .stack-meter {
290
- height: 32px;
291
- border-radius: 8px;
292
- background: rgba(255,255,255,0.02);
293
- border: 1px solid var(--border-card);
294
- overflow: hidden;
295
- display: flex;
296
- margin: 1.5rem 0 0.75rem 0;
297
- }
298
-
299
- .stack-seg {
300
- height: 100%;
301
- transition: width 0.3s ease;
302
- }
303
-
304
- .seg-sys { background: var(--color-cyan); }
305
- .seg-msg { background: var(--color-purple); }
306
- .seg-tools { background: var(--color-amber); }
307
- .seg-free { background: rgba(255, 255, 255, 0.08); }
308
-
309
- .legend-row {
310
- display: flex;
311
- flex-wrap: wrap;
312
- gap: 1rem;
313
- font-size: 0.75rem;
314
- color: var(--text-muted);
315
- margin-bottom: 1.5rem;
316
- }
317
-
318
- .legend-item {
319
- display: flex;
320
- align-items: center;
321
- gap: 0.4rem;
322
- }
323
-
324
- .legend-dot {
325
- width: 8px;
326
- height: 8px;
327
- border-radius: 50%;
328
- }
329
-
330
- /* Pressure gauge card */
331
- .verdict-box {
332
- border-radius: 12px;
333
- padding: 1.25rem;
334
- border: 1px solid transparent;
335
- margin-top: 1.5rem;
336
- }
337
-
338
- .verdict-box.normal { background: rgba(16, 185, 129, 0.08); border-color: rgba(16, 185, 129, 0.3); color: var(--color-emerald); }
339
- .verdict-box.warn { background: rgba(245, 158, 11, 0.08); border-color: rgba(245, 158, 11, 0.3); color: var(--color-amber); }
340
- .verdict-box.error { background: rgba(239, 68, 68, 0.08); border-color: rgba(239, 68, 68, 0.3); color: var(--color-rose); }
341
-
342
- pre {
343
- background: rgba(0,0,0,0.3);
344
- border: 1px solid var(--border-card);
345
- border-radius: 8px;
346
- padding: 1rem;
347
- overflow-x: auto;
348
- margin: 1rem 0;
349
- }
350
-
351
- code {
352
- font-family: var(--font-mono);
353
- font-size: 0.85rem;
354
- }
355
-
356
- /* Footer */
357
- footer {
358
- text-align: center;
359
- margin-top: 4rem;
360
- padding-top: 2rem;
361
- border-top: 1px solid rgba(255, 255, 255, 0.05);
362
- color: var(--text-dim);
363
- font-size: 0.875rem;
364
- }
365
- </style>
366
- </head>
367
- <body>
368
- <div class="container">
369
- <header>
370
- <div class="header-left">
371
- <div class="header-logo">
372
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color: var(--color-cyan);"><title>Icon</title>
373
- <line x1="18" y1="20" x2="18" y2="10"></line>
374
- <line x1="12" y1="20" x2="12" y2="4"></line>
375
- <line x1="6" y1="20" x2="6" y2="14"></line>
376
- </svg>
377
- </div>
378
- <div class="header-title-wrapper">
379
- <h1>Clio Coder Context Engine</h1>
380
- <p>Sliding context windows, token accounting estimators, and single-threshold compaction</p>
381
- </div>
382
- </div>
383
- <div class="header-right">
384
- <span class="version-badge">Clio Coder v0.3.1</span>
385
- <a href="index.html" class="back-btn">
386
- <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Icon</title><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>
387
- Dashboard Hub
388
- </a>
389
- </div>
390
- </header>
391
-
392
- <div class="tabs-nav">
393
- <button type="button" class="tab-btn active" onclick="switchTab('interactive')">
394
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><title>Icon</title><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
395
- Pressure &amp; Compaction Calculator
396
- </button>
397
- <button type="button" class="tab-btn" onclick="switchTab('reference')">
398
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><title>Icon</title><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
399
- Full Technical Reference
400
- </button>
401
- </div>
402
-
403
- <!-- TAB 1: INTERACTIVE -->
404
- <main class="tab-pane active" id="pane-interactive">
405
- <div class="blueprint-layout">
406
-
407
- <!-- Left: Sliders inputs -->
408
- <div class="specs-col">
409
- <div class="glass-card">
410
- <h2>
411
- <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><title>Icon</title><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
412
- Context Parameters
413
- </h2>
414
- <p>Set token counts to estimate context window pressure and determine compaction behavior.</p>
415
-
416
- <div class="form-group">
417
- <label for="windowSize">Context Window Limit</label>
418
- <select id="windowSize" onchange="recalculate()">
419
- <option value="128000">128,000 tokens (Standard Local/Cloud)</option>
420
- <option value="32768">32,768 tokens (Compact Local)</option>
421
- <option value="8192">8,192 tokens (Legacy Model)</option>
422
- </select>
423
- </div>
424
-
425
- <div class="form-group">
426
- <label>System Prompt + Tools (tokens)</label>
427
- <input type="range" id="sizeSys" min="2000" max="40000" step="1000" value="12000" oninput="recalculate()">
428
- <span id="txtSys" style="font-family:var(--font-mono); font-size:0.8rem;">12,000</span>
429
- </div>
430
-
431
- <div class="form-group">
432
- <label>Messages History (tokens)</label>
433
- <input type="range" id="sizeMsg" min="4000" max="120000" step="2000" value="48000" oninput="recalculate()">
434
- <span id="txtMsg" style="font-family:var(--font-mono); font-size:0.8rem;">48,000</span>
435
- </div>
436
-
437
- <div class="form-group">
438
- <label>Tool Observations (tokens)</label>
439
- <input type="range" id="sizeTools" min="0" max="50000" step="1000" value="15000" oninput="recalculate()">
440
- <span id="txtTools" style="font-family:var(--font-mono); font-size:0.8rem;">15,000</span>
441
- </div>
442
-
443
- <div class="form-group">
444
- <label>Compaction Threshold</label>
445
- <input type="range" id="threshold" min="0.5" max="0.95" step="0.05" value="0.80" oninput="recalculate()">
446
- <span id="txtThreshold" style="font-family:var(--font-mono); font-size:0.8rem;">0.80</span>
447
- </div>
448
- </div>
449
- </div>
450
-
451
- <!-- Right: Gauges and results -->
452
- <div class="specs-col">
453
- <div class="glass-card">
454
- <h2>
455
- <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><title>Icon</title><line x1="18" y1="20" x2="18" y2="10"></line><line x1="12" y1="20" x2="12" y2="4"></line><line x1="6" y1="20" x2="6" y2="14"></line></svg>
456
- Context Pressure Gauge
457
- </h2>
458
- <p>Visual representation of model context window space.</p>
459
-
460
- <div class="stack-meter">
461
- <div class="stack-seg seg-sys" id="segSys" style="width: 10%"></div>
462
- <div class="stack-seg seg-msg" id="segMsg" style="width: 40%"></div>
463
- <div class="stack-seg seg-tools" id="segTools" style="width: 15%"></div>
464
- <div class="stack-seg seg-free" id="segFree" style="width: 35%"></div>
465
- </div>
466
-
467
- <div class="legend-row">
468
- <div class="legend-item"><span class="legend-dot seg-sys"></span>System Prompt (<span id="pctSys">10%</span>)</div>
469
- <div class="legend-item"><span class="legend-dot seg-msg"></span>Messages (<span id="pctMsg">40%</span>)</div>
470
- <div class="legend-item"><span class="legend-dot seg-tools"></span>Tool Obs (<span id="pctTools">15%</span>)</div>
471
- <div class="legend-item"><span class="legend-dot seg-free"></span>Free Space (<span id="pctFree">35%</span>)</div>
472
- </div>
473
-
474
- <div class="verdict-header">Compaction Verdict</div>
475
- <div id="verdictBox" class="verdict-box normal">
476
- <strong id="verdictTitle" style="display:block; font-size:1.1rem">NO COMPACTION REQUIRED</strong>
477
- <span id="verdictDesc">Pressure is below threshold. Full context fits cleanly.</span>
478
- </div>
479
-
480
- <div id="maskedPreviewBox" style="margin-top:1.5rem; display:none">
481
- <div class="verdict-header">Simulated Observation Mask Marker</div>
482
- <pre><code id="maskedPreviewText">[Observation masked: read output was 240 lines...]</code></pre>
483
- </div>
484
- </div>
485
- </div>
486
-
487
- </div>
488
- </main>
489
-
490
- <!-- TAB 2: TECHNICAL REFERENCE -->
491
- <main class="tab-pane" id="pane-reference">
492
- <div class="glass-card">
493
- <h2>Clio Coder Context Engine Specification</h2>
494
- <p>Clio Coder tracks context pressure, records per-turn snapshots, and protects the provider context with bounded tool results plus single-threshold compaction.</p>
495
-
496
- <h3 style="margin: 1.5rem 0 0.5rem 0; color:#fff;">Token Estimator</h3>
497
- <p>Accounting is hot-path optimized. Instead of querying a remote model tokenizer on every keypress or display refresh, the engine uses a 4 characters-per-token heuristic. This allows instant calculations of messages size, tools payloads, and system scopes.</p>
498
-
499
- <h3 style="margin: 1.5rem 0 0.5rem 0; color:#fff;">Single-Threshold Compaction</h3>
500
- <p>Auto-compaction resolves in two tiers to avoid calling the model when cheap edits work:</p>
501
- <ol style="margin-left: 2rem; margin-bottom: 1.5rem; color:var(--text-muted)">
502
- <li style="margin-bottom:0.5rem;"><strong>Tier 1: Observation and thinking masking (local)</strong>: Clio first scans stale tool results and stale assistant thinking older than <code>excludeLastTurns</code> (default: 6), replaces observation bodies with compact markers, and drops stale thinking while preserving replay structures.</li>
503
- <li style="margin-bottom:0.5rem;"><strong>Tier 2: LLM Summary (Model)</strong>: If pressure remains above the threshold after local masking, the engine executes a summary compaction call, folding older chat segments into a single compact ledger summary turn.</li>
504
- </ol>
505
-
506
- <h3 style="margin: 1.5rem 0 0.5rem 0; color:#fff;">Cache-Divergence Honesty</h3>
507
- <p>Because compaction rewrites the replayed history buffer, local backend models running prefix-caches will experience cold boots on the next turn. Clio monitors and captures this cache-divergence behaviour inside timing structures to inform the operator.</p>
508
- </div>
509
- </main>
510
-
511
- <footer>
512
- <p>Clio Coder Context Engine spec &bull; Version 0.3.1</p>
513
- </footer>
514
- </div>
515
-
516
- <script>
517
- // Tab switching
518
- function switchTab(tabId) {
519
- document.querySelectorAll('.tab-btn').forEach(btn => { btn.classList.remove('active'); });
520
- document.querySelectorAll('.tab-pane').forEach(pane => { pane.classList.remove('active'); });
521
-
522
- if (tabId === 'interactive') {
523
- document.querySelector('.tab-btn:nth-child(1)').classList.add('active');
524
- document.getElementById('pane-interactive').classList.add('active');
525
- } else {
526
- document.querySelector('.tab-btn:nth-child(2)').classList.add('active');
527
- document.getElementById('pane-reference').classList.add('active');
528
- }
529
- }
530
-
531
- function recalculate() {
532
- const windowSize = parseInt(document.getElementById('windowSize').value);
533
- const sys = parseInt(document.getElementById('sizeSys').value);
534
- const msg = parseInt(document.getElementById('sizeMsg').value);
535
- const tools = parseInt(document.getElementById('sizeTools').value);
536
- const threshold = parseFloat(document.getElementById('threshold').value);
537
-
538
- // update text labels
539
- document.getElementById('txtSys').innerText = sys.toLocaleString();
540
- document.getElementById('txtMsg').innerText = msg.toLocaleString();
541
- document.getElementById('txtTools').innerText = tools.toLocaleString();
542
- document.getElementById('txtThreshold').innerText = threshold.toFixed(2);
543
-
544
- // clamp sum to windowSize
545
- const total = sys + msg + tools;
546
-
547
- const pctSys = (sys / windowSize) * 100;
548
- const pctMsg = (msg / windowSize) * 100;
549
- const pctTools = (tools / windowSize) * 100;
550
- const pctFree = Math.max(0, 100 - (pctSys + pctMsg + pctTools));
551
-
552
- // update meter widths
553
- document.getElementById('segSys').style.width = pctSys + '%';
554
- document.getElementById('segMsg').style.width = pctMsg + '%';
555
- document.getElementById('segTools').style.width = pctTools + '%';
556
- document.getElementById('segFree').style.width = pctFree + '%';
557
-
558
- // update legend labels
559
- document.getElementById('pctSys').innerText = Math.round(pctSys) + '%';
560
- document.getElementById('pctMsg').innerText = Math.round(pctMsg) + '%';
561
- document.getElementById('pctTools').innerText = Math.round(pctTools) + '%';
562
- document.getElementById('pctFree').innerText = Math.round(pctFree) + '%';
563
-
564
- // evaluate compaction
565
- const pressure = total / windowSize;
566
- const vBox = document.getElementById('verdictBox');
567
- const vTitle = document.getElementById('verdictTitle');
568
- const vDesc = document.getElementById('verdictDesc');
569
- const previewBox = document.getElementById('maskedPreviewBox');
570
-
571
- if (pressure < threshold) {
572
- vBox.className = "verdict-box normal";
573
- vTitle.innerText = "NO COMPACTION REQUIRED";
574
- vDesc.innerText = `Pressure (${pressure.toFixed(2)}) is below threshold (${threshold.toFixed(2)}). History fits in window.`;
575
- previewBox.style.display = 'none';
576
- } else {
577
- // threshold crossed: simulate local masking first
578
- const savedByMasking = tools * 0.85; // approximate savings from observation and thinking masking
579
- const pressureAfterMasking = (total - savedByMasking) / windowSize;
580
-
581
- if (pressureAfterMasking < threshold) {
582
- vBox.className = "verdict-box warn";
583
- vTitle.innerText = "LOCAL MASKING TRIGGERED";
584
- vDesc.innerText = `Pressure (${pressure.toFixed(2)}) crossed threshold. Masking stale observations and dropping stale thinking recovered ${Math.round(savedByMasking).toLocaleString()} tokens, dropping pressure to ${pressureAfterMasking.toFixed(2)} and avoiding LLM compaction.`;
585
-
586
- previewBox.style.display = 'block';
587
- document.getElementById('maskedPreviewText').innerText = `[Observation masked: read output was 320 lines, 12800 chars - contents masked to save context. Re-run tool for current contents.] Preview: export default class ConfigResolver { ... }\n[Stale thinking dropped from assistant replay]`;
588
- } else {
589
- vBox.className = "verdict-box error";
590
- vTitle.innerText = "LLM SUMMARY COMPACTION TRIGGERED";
591
- vDesc.innerText = `Pressure is too high (${pressure.toFixed(2)}). Masking alone is insufficient (${pressureAfterMasking.toFixed(2)}). Clio will trigger LLM compaction summarization to clear context space.`;
592
- previewBox.style.display = 'none';
593
- }
594
- }
595
- }
596
-
597
- // Init
598
- window.onload = () => {
599
- recalculate();
600
- };
601
- </script>
602
- </body>
603
- </html>