@iowarp/clio-coder 0.5.0 → 0.5.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 (312) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/CHANGELOG.md +35 -0
  3. package/CONTRIBUTING.md +9 -0
  4. package/README.md +12 -9
  5. package/ROADMAP.md +30 -5
  6. package/dist/{acp-KS7ARGV6.js → acp-F6PGOFZ4.js} +2 -2
  7. package/dist/{agents-YOGJ2YEJ.js → agents-ZHP4R6EX.js} +22 -21
  8. package/dist/assets/codewiki.json +1 -1
  9. package/dist/{auth-CEDCO6O6.js → auth-N75U2H3Z.js} +4 -4
  10. package/dist/{chunk-D3KWFOUT.js → chunk-23UIXH6Z.js} +3 -3
  11. package/dist/{chunk-ZR5YA6ZF.js → chunk-36XVK5P5.js} +5 -5
  12. package/dist/{chunk-AVSR2HKI.js → chunk-3DZ4LPLS.js} +6 -6
  13. package/dist/{chunk-LYJJ6546.js → chunk-3GSPCWFX.js} +12 -12
  14. package/dist/{chunk-CRHPCPZP.js → chunk-4KC4CHKJ.js} +2 -2
  15. package/dist/{chunk-4VDHLCF5.js → chunk-4WJBWKMI.js} +2 -2
  16. package/dist/{chunk-KBUTSJSR.js → chunk-4XBYHXGK.js} +2 -2
  17. package/dist/{chunk-6W75D37F.js → chunk-53P775GE.js} +6 -3
  18. package/dist/{chunk-XZWSP67B.js → chunk-5APYAXCB.js} +2 -2
  19. package/dist/{chunk-D65E25JG.js → chunk-67HPYNTJ.js} +2 -2
  20. package/dist/{chunk-5JQR5B4D.js → chunk-6KV4KCQZ.js} +4 -4
  21. package/dist/{chunk-V4XJWDHR.js → chunk-6UKFRTXI.js} +2 -1
  22. package/dist/{chunk-NDPF2N2L.js → chunk-7DW7CJW2.js} +2 -2
  23. package/dist/{chunk-5KQEUIWM.js → chunk-7LUEQODV.js} +4 -4
  24. package/dist/{chunk-LNOXCGN2.js → chunk-7UFDIOBT.js} +3 -3
  25. package/dist/{chunk-DXSETN72.js → chunk-7WUGNN43.js} +2 -2
  26. package/dist/{chunk-V35KZDUZ.js → chunk-AA3GRZWS.js} +2 -2
  27. package/dist/{chunk-X4CEFOSG.js → chunk-ADO3OQIC.js} +4 -4
  28. package/dist/{chunk-UX2L5CUD.js → chunk-AI36V3ON.js} +3 -3
  29. package/dist/{chunk-B7GY6QER.js → chunk-B26OUMJW.js} +2 -2
  30. package/dist/{chunk-LAR7DX5E.js → chunk-B5TASTCK.js} +153 -62
  31. package/dist/{chunk-TGWZXJ7L.js → chunk-BEMQK5Q7.js} +92 -84
  32. package/dist/{chunk-RNDCROSG.js → chunk-CNXU7TR2.js} +3 -3
  33. package/dist/{chunk-3JLTRPN7.js → chunk-CVMUXT64.js} +35 -66
  34. package/dist/{chunk-733ZBT5P.js → chunk-E74MJF6G.js} +4 -4
  35. package/dist/{chunk-T2MDZES3.js → chunk-EBMTBE76.js} +3 -3
  36. package/dist/{chunk-OZ76TLGU.js → chunk-EEITU7S6.js} +2 -2
  37. package/dist/{chunk-GRHOXDKB.js → chunk-ELDJWJKM.js} +97 -14
  38. package/dist/{chunk-GCQFN7YI.js → chunk-EMYEQLWO.js} +2 -2
  39. package/dist/{chunk-LTWH2ACR.js → chunk-EQPFEDFV.js} +222 -127
  40. package/dist/{chunk-TDGYTWM6.js → chunk-F4I3H56H.js} +2 -2
  41. package/dist/chunk-F6KCJO3U.js +523 -0
  42. package/dist/{chunk-FGSQHUCK.js → chunk-F6VKWTTY.js} +5 -5
  43. package/dist/{chunk-UJD5MPP6.js → chunk-FLNXQQ5B.js} +2 -2
  44. package/dist/{chunk-EX57VVWW.js → chunk-FOSRJ2VZ.js} +4 -4
  45. package/dist/{chunk-ZARZ4POR.js → chunk-G5ZDQQE3.js} +3 -3
  46. package/dist/{chunk-HQVN7G4F.js → chunk-G62JBPXN.js} +7 -7
  47. package/dist/{chunk-ZJPORZTC.js → chunk-GIAI7A2K.js} +2 -2
  48. package/dist/chunk-GPTR6OTU.js +2551 -0
  49. package/dist/{chunk-EZD2BXGP.js → chunk-GUFQPTQK.js} +2 -2
  50. package/dist/{chunk-OPD7GL6F.js → chunk-H6FQVNZC.js} +8 -7
  51. package/dist/chunk-H7REJ7L5.js +80 -0
  52. package/dist/{chunk-EYTLV3W3.js → chunk-HTWTORF7.js} +2 -2
  53. package/dist/{chunk-DF6PI6GN.js → chunk-I6UKQPGS.js} +3 -3
  54. package/dist/{chunk-ISHUS7HC.js → chunk-JRW236JT.js} +3 -3
  55. package/dist/{chunk-DE2LU267.js → chunk-KKAJGT3B.js} +3 -2
  56. package/dist/{chunk-OV62D6KO.js → chunk-KQMYL5GR.js} +3 -3
  57. package/dist/{chunk-QDUUOZ3S.js → chunk-KWMFC7FN.js} +3 -3
  58. package/dist/{chunk-R7FGRZNF.js → chunk-LXYHCCIZ.js} +9 -9
  59. package/dist/{chunk-NFSK2VNU.js → chunk-LZMTVVN4.js} +2 -2
  60. package/dist/{chunk-62UK7AGW.js → chunk-M5PMRZSR.js} +397 -44
  61. package/dist/chunk-MMZMM6SW.js +131 -0
  62. package/dist/{chunk-FFYTC2KQ.js → chunk-MNABNEBX.js} +2 -2
  63. package/dist/{chunk-XMDBTYCH.js → chunk-N3CWOGVF.js} +3 -3
  64. package/dist/{chunk-VYRQHORQ.js → chunk-NMQSO6Z6.js} +4 -3
  65. package/dist/{chunk-R2UUNSNQ.js → chunk-O3ZAF7UY.js} +18 -5
  66. package/dist/{chunk-4SYHGVDE.js → chunk-OQNCLZI4.js} +4 -4
  67. package/dist/{chunk-EG4ARXPC.js → chunk-OX6QTA4N.js} +3 -3
  68. package/dist/{chunk-P4GNZPXO.js → chunk-OYUS3UZP.js} +2 -2
  69. package/dist/{chunk-OQ2EOAHA.js → chunk-PF36KOGI.js} +291 -112
  70. package/dist/{chunk-55RMDDFM.js → chunk-PGQG7ZMW.js} +2 -2
  71. package/dist/{chunk-CBAQPTDU.js → chunk-PIU6BXXW.js} +2 -2
  72. package/dist/{chunk-EKV4UBCM.js → chunk-PZBQUJ2F.js} +2 -2
  73. package/dist/{chunk-7RET77VB.js → chunk-Q2HKY32Y.js} +2 -2
  74. package/dist/{chunk-U6YTUVOX.js → chunk-Q4RMNWMZ.js} +4 -4
  75. package/dist/chunk-Q6FRR3AQ.js +48 -0
  76. package/dist/{chunk-6RJMYYIE.js → chunk-QJSIAJBY.js} +3 -3
  77. package/dist/{chunk-DOUISWEE.js → chunk-QOJ4ERMU.js} +5 -5
  78. package/dist/{chunk-IFPDAD7R.js → chunk-RWSRKXLT.js} +3 -3
  79. package/dist/{chunk-T33IYTZM.js → chunk-SAASVMIY.js} +3 -3
  80. package/dist/{chunk-2DTIWSAW.js → chunk-SEQDH6JC.js} +3 -3
  81. package/dist/{chunk-BRCOSE7O.js → chunk-SZUO5BSE.js} +2 -2
  82. package/dist/{chunk-HOEDA42N.js → chunk-T7HZ7KJF.js} +2 -2
  83. package/dist/{chunk-OJXOA6YU.js → chunk-TL6LNERH.js} +2 -2
  84. package/dist/{chunk-UCINIRHW.js → chunk-TPCZXWLT.js} +3 -3
  85. package/dist/{chunk-ZUKUCZYZ.js → chunk-TQ2KTH4A.js} +2 -2
  86. package/dist/{chunk-4WOOTKFD.js → chunk-U3FETNQB.js} +341 -20
  87. package/dist/{chunk-5B3RTYAK.js → chunk-UGDSB4AN.js} +2 -2
  88. package/dist/{chunk-VKHLUZNO.js → chunk-UZ7YBL43.js} +3 -3
  89. package/dist/{chunk-QNUQ7K7D.js → chunk-VKMSEO7Y.js} +4 -4
  90. package/dist/{chunk-IN7DGBVS.js → chunk-VLX5VZ35.js} +5 -5
  91. package/dist/{chunk-SJGS3GDI.js → chunk-WAGBMMNX.js} +5 -5
  92. package/dist/{chunk-BFOSV5EZ.js → chunk-WX2YCH7F.js} +2 -2
  93. package/dist/{chunk-3LT34CAM.js → chunk-XBIGUILU.js} +32 -17
  94. package/dist/{chunk-XDHUDE5K.js → chunk-XKYBFRWR.js} +5 -5
  95. package/dist/{chunk-U5QU5ZOD.js → chunk-XYPWFSU5.js} +3 -3
  96. package/dist/{chunk-YBUECLAF.js → chunk-YEJQDODA.js} +2 -2
  97. package/dist/{chunk-YQ6XEFVK.js → chunk-Z74OGONW.js} +39 -7
  98. package/dist/{chunk-I4ELN5BX.js → chunk-ZTNOEJRI.js} +2 -2
  99. package/dist/cli/index.js +26 -26
  100. package/dist/{clio-K2PBVCEM.js → clio-4IKFE25F.js} +2 -2
  101. package/dist/{clio-context-tools-GR4OHFSO.js → clio-context-tools-OHJXYX4R.js} +25 -23
  102. package/dist/{code-nav-4X3OI6DK.js → code-nav-XPM3MY5I.js} +7 -7
  103. package/dist/{config-Q5J7UBAB.js → config-343YS25T.js} +43 -41
  104. package/dist/{config-graph-P3555574.js → config-graph-WI263KDX.js} +43 -41
  105. package/dist/{configure-KIJ32ZO6.js → configure-GZDG4HER.js} +21 -21
  106. package/dist/{context-LFBQOSXT.js → context-4OFO7N7Y.js} +12 -12
  107. package/dist/{context-WBH3KSVR.js → context-JLK2RLOG.js} +42 -40
  108. package/dist/{context-NNLBES2Y.js → context-O6DIWCF6.js} +23 -21
  109. package/dist/{context-clear-YOHMQ6SQ.js → context-clear-MR7KOGQI.js} +42 -40
  110. package/dist/{context-working-set-MRAEVDNV.js → context-working-set-YZAD3KWO.js} +14 -13
  111. package/dist/{data-tool-JJPBGMQJ.js → data-tool-EKD7DFHG.js} +7 -7
  112. package/dist/{detail-RHJOTGN4.js → detail-YZPHFEVJ.js} +43 -41
  113. package/dist/{dispatch-runner-NC7PYNIO.js → dispatch-runner-VKVXVTWJ.js} +44 -42
  114. package/dist/{doctor-S5KZ2GTN.js → doctor-53AVQXAO.js} +17 -16
  115. package/dist/{doctor-deep-2EJQSHIZ.js → doctor-deep-BLRB2NCG.js} +5 -5
  116. package/dist/{eval-3D6M36N7.js → eval-P3BQSLQE.js} +21 -20
  117. package/dist/{evidence-XNVPPLVK.js → evidence-6LLI6SZH.js} +44 -42
  118. package/dist/{evidence-6IYN52ET.js → evidence-HTN3JLUO.js} +42 -40
  119. package/dist/{evidence-JVECPI3F.js → evidence-NJRE3R5H.js} +42 -40
  120. package/dist/{evolve-TLPUDJDM.js → evolve-WWZHJVJP.js} +42 -40
  121. package/dist/{fleet-WKVBF5SZ.js → fleet-GGZ4BVJE.js} +64 -62
  122. package/dist/{fleet-6RJWIOEO.js → fleet-QG3IIWWM.js} +44 -42
  123. package/dist/{fleet-commands-L6WFT7KZ.js → fleet-commands-J2ZIKISQ.js} +7 -7
  124. package/dist/{fleet-decisions-BTQMWU5A.js → fleet-decisions-Y2Q7375Q.js} +8 -8
  125. package/dist/{fleet-graph-553DZ67Q.js → fleet-graph-TCBCCCBP.js} +11 -11
  126. package/dist/{fleet-inspect-236FZPRB.js → fleet-inspect-KOLKBC56.js} +44 -42
  127. package/dist/{fleet-preflight-NZQHABWO.js → fleet-preflight-44UNCC4Y.js} +27 -25
  128. package/dist/{fleet-validate-7NLAE26R.js → fleet-validate-K2FXRZVA.js} +13 -13
  129. package/dist/{fleet-verify-E3RO6A5W.js → fleet-verify-AS444WDW.js} +42 -40
  130. package/dist/{fleet-view-KMZQY7YJ.js → fleet-view-X4JU4J6O.js} +43 -41
  131. package/dist/gui/ops-worker.js +9 -9
  132. package/dist/gui/reads-worker.js +9 -8
  133. package/dist/{init-DV5B6HQG.js → init-VSOWFHVL.js} +54 -52
  134. package/dist/{interactive-OXGYZYAS.js → interactive-JRCBENLZ.js} +1733 -577
  135. package/dist/{interop-J7UOBOSF.js → interop-JR6BCY7R.js} +10 -10
  136. package/dist/{inventory-OEGIL6PY.js → inventory-3JUGLVJI.js} +43 -41
  137. package/dist/{library-ROZAMUIL.js → library-7BOH3Y7N.js} +15 -15
  138. package/dist/{library-B3UPGY4V.js → library-7PFONXUI.js} +9 -9
  139. package/dist/{library-MXQA5DLT.js → library-TUYZMFIA.js} +7 -7
  140. package/dist/{library-import-2LTWOVBD.js → library-import-TJVXKLDK.js} +10 -10
  141. package/dist/{library-inventory-LJ3XHLWO.js → library-inventory-MD3AYTP4.js} +9 -9
  142. package/dist/{library-validation-DARHHUNW.js → library-validation-ZDLITEA3.js} +7 -7
  143. package/dist/{mcp-2GSPYQ54.js → mcp-EFCWUPUR.js} +3 -3
  144. package/dist/{memory-J3STUUIK.js → memory-Q2YVOKK5.js} +42 -40
  145. package/dist/{models-Y3GMFJ2V.js → models-M7BOCW7F.js} +17 -16
  146. package/dist/{monitor-LHNH577J.js → monitor-2HD3MC67.js} +47 -45
  147. package/dist/{orchestrator-DTAPXULA.js → orchestrator-OUW3ZN6Y.js} +1894 -226
  148. package/dist/{panes-A743ONZ5.js → panes-TTPPSYCL.js} +3 -3
  149. package/dist/{preload-OJBMAIXF.js → preload-A47C2NUF.js} +42 -40
  150. package/dist/{providers-CMETPZNS.js → providers-T43W7EL4.js} +4 -4
  151. package/dist/{resources-FY6XYFN2.js → resources-TP6X2V6W.js} +20 -11
  152. package/dist/{run-H64MEVTA.js → run-LDSBPMCS.js} +61 -59
  153. package/dist/{share-CAFMMQLM.js → share-URHKKMHR.js} +9 -9
  154. package/dist/{skills-ERKQUC7L.js → skills-E477MOOO.js} +13 -11
  155. package/dist/{skills-eval-CQ23MYQK.js → skills-eval-AIBR2L7H.js} +583 -93
  156. package/dist/{skills-inventory-TVUYJDVN.js → skills-inventory-HLMKY3R5.js} +13 -11
  157. package/dist/{slash-commands-ROG3KIFJ.js → slash-commands-LIIZKA5Y.js} +28 -26
  158. package/dist/{startup-background-KDWCQMWT.js → startup-background-JR2KDK6R.js} +43 -41
  159. package/dist/{steer-KKYXJSH4.js → steer-D7RTAPCM.js} +3 -3
  160. package/dist/{system-ZDW44ZGX.js → system-X2P5N4IY.js} +14 -13
  161. package/dist/{targets-AJWA6E7Z.js → targets-VFFAKUFM.js} +25 -24
  162. package/dist/{tasks-6L2JJRC5.js → tasks-ERAWZA22.js} +6 -6
  163. package/dist/{terminal-lease-YFUSDPAD.js → terminal-lease-V2N2BIKQ.js} +2 -2
  164. package/dist/{trace-LA5MVR4Y.js → trace-MA5BT7XY.js} +3 -3
  165. package/dist/{usage-XSILDHKF.js → usage-WYFY2L6M.js} +50 -48
  166. package/dist/{verifiers-ECA5GIHL.js → verifiers-TYIW2XKF.js} +7 -7
  167. package/dist/{verify-R6QQCCEB.js → verify-242UFYTP.js} +6 -6
  168. package/dist/{web-fetch-PVZNMBOB.js → web-fetch-LRAGYU6Y.js} +3 -3
  169. package/dist/{wiki-generate-RP22WP5K.js → wiki-generate-OFKOX2T6.js} +53 -51
  170. package/dist/worker/entry.js +31 -29
  171. package/docs/architecture/architecture.md +1 -0
  172. package/docs/architecture/context-engine.md +4 -2
  173. package/docs/architecture/observability.md +6 -4
  174. package/docs/architecture/prompt-envelope-and-tools.md +1 -1
  175. package/docs/architecture/session-lifecycle.md +1 -1
  176. package/docs/architecture/tui-design.md +12 -9
  177. package/docs/gui/parity/02-slash-and-surfaces.md +1 -1
  178. package/docs/guide/commands-and-modes.md +91 -5
  179. package/docs/guide/configuration-and-targets.md +2 -2
  180. package/docs/guide/context-continuity.md +49 -0
  181. package/docs/guide/proactive-memory.md +6 -3
  182. package/library/registry.yaml +292 -32
  183. package/library/skills/README.md +27 -2
  184. package/library/skills/context/context-handoff/SKILL.md +10 -4
  185. package/library/skills/meta/clio-coder-dev/SKILL.md +92 -88
  186. package/library/skills/meta/clio-coder-dev/evals.md +51 -46
  187. package/library/skills/meta/clio-coder-dev/plugin.json +2 -2
  188. package/library/skills/meta/clio-coder-dev/references/change-map.md +49 -0
  189. package/library/skills/meta/clio-coder-test/SKILL.md +89 -142
  190. package/library/skills/meta/clio-coder-test/evals.md +58 -62
  191. package/library/skills/meta/clio-coder-test/plugin.json +2 -2
  192. package/library/skills/meta/clio-coder-test/references/harness.md +3 -3
  193. package/library/skills/meta/clio-coder-test/references/lifecycle-validation.md +30 -0
  194. package/library/skills/meta/clio-coder-test/references/test-map.md +60 -89
  195. package/library/skills/registry.yaml +5 -5
  196. package/library/skills/skill-marketplace.json +12 -14
  197. package/package.json +1 -1
  198. package/src/cli/skills-eval.ts +1064 -54
  199. package/src/cli/usage.ts +2 -2
  200. package/src/core/clio-repo.ts +3 -0
  201. package/src/core/tool-names.ts +1 -0
  202. package/src/domains/context/budget/inspection.ts +9 -0
  203. package/src/domains/context/budget/live-view.ts +418 -0
  204. package/src/domains/context/budget/pressure.ts +393 -0
  205. package/src/domains/context/budget/request-fit.ts +15 -0
  206. package/src/domains/evidence/build.ts +24 -0
  207. package/src/domains/gateway/mcp/client.ts +1 -1
  208. package/src/domains/memory/commit-state.ts +160 -0
  209. package/src/domains/memory/operations.ts +18 -10
  210. package/src/domains/memory/prompt-cache.ts +95 -0
  211. package/src/domains/memory/prompt-section.ts +50 -7
  212. package/src/domains/memory/relevance.ts +93 -0
  213. package/src/domains/memory/restoration.ts +78 -0
  214. package/src/domains/memory/store.ts +39 -1
  215. package/src/domains/middleware/memory-intervention.ts +116 -24
  216. package/src/domains/observability/background-memory-usage.ts +1 -1
  217. package/src/domains/observability/cost.ts +3 -3
  218. package/src/domains/observability/extension.ts +1 -1
  219. package/src/domains/observability/metrics.ts +1 -1
  220. package/src/domains/prompts/compiler.ts +1 -1
  221. package/src/domains/prompts/extension.ts +38 -1
  222. package/src/domains/quota/anthropic-max-provider.ts +134 -0
  223. package/src/domains/quota/anthropic-usage.ts +220 -0
  224. package/src/domains/quota/antigravity-provider.ts +339 -0
  225. package/src/domains/quota/cache.ts +87 -0
  226. package/src/domains/quota/claude-code-provider.ts +169 -0
  227. package/src/domains/quota/codex-provider.ts +237 -0
  228. package/src/domains/quota/presentation.ts +240 -0
  229. package/src/domains/quota/registry.ts +23 -0
  230. package/src/domains/quota/service.ts +93 -0
  231. package/src/domains/quota/summary-feed.ts +86 -0
  232. package/src/domains/quota/types.ts +84 -0
  233. package/src/domains/resources/index.ts +11 -0
  234. package/src/domains/resources/skills/catalog-view.ts +571 -0
  235. package/src/domains/resources/skills/lexical-match.ts +136 -0
  236. package/src/domains/resources/skills/loader.ts +38 -0
  237. package/src/domains/resources/skills/promotion.ts +1 -55
  238. package/src/domains/resources/skills/provenance-pin.ts +50 -20
  239. package/src/domains/safety/action-classifier.ts +1 -0
  240. package/src/domains/session/compaction/branch-summary.ts +4 -1
  241. package/src/domains/session/compaction/compact.ts +18 -2
  242. package/src/domains/session/compaction/cut-point.ts +20 -1
  243. package/src/domains/session/compaction/tokens.ts +48 -3
  244. package/src/domains/session/context-accounting.ts +8 -1
  245. package/src/domains/session/continuity/carry.ts +59 -0
  246. package/src/domains/session/continuity/contract.ts +592 -0
  247. package/src/domains/session/continuity/evidence.ts +290 -0
  248. package/src/domains/session/continuity/fold.ts +1075 -0
  249. package/src/domains/session/continuity/note.ts +79 -0
  250. package/src/domains/session/continuity/operator-request.ts +104 -0
  251. package/src/domains/session/continuity/persistence.ts +408 -0
  252. package/src/domains/session/continuity/ports.ts +231 -0
  253. package/src/domains/session/continuity/projection.ts +538 -0
  254. package/src/domains/session/continuity/validate.ts +352 -0
  255. package/src/domains/session/entries.ts +50 -3
  256. package/src/domains/session/index.ts +48 -0
  257. package/src/domains/session/migrations/index.ts +7 -3
  258. package/src/domains/session/tree/fork.ts +15 -1
  259. package/src/domains/session/usage.ts +2 -2
  260. package/src/engine/acp/commands.ts +1 -1
  261. package/src/engine/agent.ts +133 -9
  262. package/src/engine/session.ts +13 -6
  263. package/src/entry/orchestrator.ts +116 -33
  264. package/src/interactive/chat-loop-messages.ts +2 -2
  265. package/src/interactive/chat-loop.ts +219 -63
  266. package/src/interactive/chat-renderer.ts +99 -8
  267. package/src/interactive/context-overlay.ts +24 -3
  268. package/src/interactive/continuity-controller.ts +526 -0
  269. package/src/interactive/dispatch-board.ts +21 -3
  270. package/src/interactive/footer/dashboard.ts +25 -1
  271. package/src/interactive/footer/key-hints.ts +2 -2
  272. package/src/interactive/footer/pages.ts +70 -27
  273. package/src/interactive/footer/widgets.ts +32 -7
  274. package/src/interactive/footer-panel.ts +1 -1
  275. package/src/interactive/interactive-application.ts +7 -2
  276. package/src/interactive/interactive-input-runtime.ts +2 -2
  277. package/src/interactive/interactive-presentation.ts +15 -0
  278. package/src/interactive/interactive-slash-runtime.ts +45 -8
  279. package/src/interactive/interactive-tickers.ts +7 -1
  280. package/src/interactive/model-session-replay.ts +130 -3
  281. package/src/interactive/output-reserve.ts +35 -0
  282. package/src/interactive/overlay-general-openers.ts +12 -8
  283. package/src/interactive/overlay-key-routing.ts +6 -9
  284. package/src/interactive/overlay-lifecycle.ts +10 -6
  285. package/src/interactive/overlay-session-lifecycle.ts +21 -14
  286. package/src/interactive/quota-view.ts +229 -0
  287. package/src/interactive/session-last-turn.ts +1 -1
  288. package/src/interactive/session-transcript.ts +2 -1
  289. package/src/interactive/session-usage-reseed.ts +2 -2
  290. package/src/interactive/side-question.ts +2 -2
  291. package/src/interactive/slash-commands.ts +28 -9
  292. package/src/interactive/turn-context.ts +686 -63
  293. package/src/interactive/turn-middleware.ts +39 -6
  294. package/src/interactive/turn-persistence.ts +15 -2
  295. package/src/interactive/turn-prewarm.ts +1 -1
  296. package/src/interactive/turn-runtime.ts +48 -5
  297. package/src/interactive/{cost-overlay.ts → usage-overlay.ts} +121 -33
  298. package/src/interactive/welcome-dashboard.ts +26 -3
  299. package/src/tools/agent-tools.ts +3 -1
  300. package/src/tools/bootstrap.ts +6 -0
  301. package/src/tools/builtin-tool-catalog.ts +9 -0
  302. package/src/tools/context/index.ts +148 -113
  303. package/src/tools/context/surface.ts +11 -7
  304. package/src/tools/core-bootstrap.ts +4 -0
  305. package/src/tools/observation.ts +8 -2
  306. package/src/tools/policy.ts +3 -0
  307. package/src/tools/self-compact.ts +31 -0
  308. package/src/tools/surface.ts +1 -0
  309. package/src/tools/tasks.ts +1 -1
  310. package/dist/chunk-CTFPFW3H.js +0 -44
  311. package/dist/chunk-EOJPDNUP.js +0 -1325
  312. package/dist/chunk-I4Y4WKZR.js +0 -386
@@ -0,0 +1,131 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-ECBHH7LU.js";
5
+
6
+ // src/core/skill-activation.ts
7
+ init_esm_shims();
8
+ var SKILL_SUGGESTION_ANCHOR = "Suggested skill: /skill <name>";
9
+ var SKILL_SUGGESTION_PREFIX = SKILL_SUGGESTION_ANCHOR.slice(0, SKILL_SUGGESTION_ANCHOR.indexOf("<name>"));
10
+ var SKILL_INSTALL_OFFER_OPTION_PROJECT = "Install for this project";
11
+ var SKILL_INSTALL_OFFER_OPTION_USER = "Install globally";
12
+ var SKILL_INSTALL_OFFER_OPTION_NOT_NOW = "Not now";
13
+ var SKILL_INSTALL_OFFER_OPTION_NEVER = "Never offer this skill";
14
+ function armedSkillSurface(policy) {
15
+ if (!policy) return void 0;
16
+ const declared = [...policy.loadedSkillPolicies.entries()].filter(
17
+ ([, declaration]) => (declaration.allowedTools?.length ?? 0) > 0 || (declaration.disallowedTools?.length ?? 0) > 0
18
+ );
19
+ if (declared.length === 0) return void 0;
20
+ return {
21
+ allowedSkillNames: [...policy.allowedSkillNames],
22
+ requests: [...policy.requests],
23
+ loadedSkillNames: new Set(policy.loadedSkillNames),
24
+ loadedSkillPolicies: new Map(declared),
25
+ carriedSurface: true
26
+ };
27
+ }
28
+ function skillSurfaceNames(policy) {
29
+ return policy ? [...policy.loadedSkillPolicies.keys()] : [];
30
+ }
31
+ function skillSurfaceLabels(policy) {
32
+ if (!policy) return [];
33
+ return [...policy.loadedSkillPolicies.keys()].map(
34
+ (name) => policy.requests.some((request) => request.name === name) ? `${name} (operator)` : `${name} (model)`
35
+ );
36
+ }
37
+ function withModelSkillActivation(policy, enabled) {
38
+ if (policy) {
39
+ policy.modelActivation = enabled;
40
+ return policy;
41
+ }
42
+ if (!enabled) return void 0;
43
+ return {
44
+ allowedSkillNames: [],
45
+ requests: [],
46
+ loadedSkillNames: /* @__PURE__ */ new Set(),
47
+ loadedSkillPolicies: /* @__PURE__ */ new Map(),
48
+ modelActivation: true
49
+ };
50
+ }
51
+ var SKILL_SURFACE_EXEMPT_TOOLS = /* @__PURE__ */ new Set(["context", "ask_user", "gateway"]);
52
+ function evaluateSkillToolSurface(policy, tool) {
53
+ if (!policy || policy.loadedSkillPolicies.size === 0) return null;
54
+ if (SKILL_SURFACE_EXEMPT_TOOLS.has(tool)) return null;
55
+ const entries = [...policy.loadedSkillPolicies.entries()];
56
+ const skills = entries.map(([name]) => name);
57
+ const carriedSurface = policy.carriedSurface === true;
58
+ const disallowedBy = entries.filter(([, declared]) => declared.disallowedTools?.includes(tool) === true).map(([name]) => name);
59
+ if (disallowedBy.length > 0) return { skills, mergedAllowedTools: null, disallowedBy, carriedSurface };
60
+ if (tool === "limitation") return null;
61
+ const allowLists = entries.map(([, declared]) => declared.allowedTools);
62
+ if (allowLists.some((list) => list === void 0 || list.length === 0)) return null;
63
+ const merged = [...new Set(allowLists.flatMap((list) => [...list ?? []]))];
64
+ if (merged.includes(tool)) return null;
65
+ return { skills, mergedAllowedTools: merged, disallowedBy: [], carriedSurface };
66
+ }
67
+ function agentSkillToolPolicy(skillNames) {
68
+ const allowedSkillNames = [...new Set(skillNames.map((name) => name.trim()).filter((name) => name.length > 0))];
69
+ if (allowedSkillNames.length === 0) return void 0;
70
+ return {
71
+ allowedSkillNames,
72
+ requests: allowedSkillNames.map((name) => ({ name, args: "", source: "recipe", installed: true })),
73
+ loadedSkillNames: /* @__PURE__ */ new Set(),
74
+ loadedSkillPolicies: /* @__PURE__ */ new Map()
75
+ };
76
+ }
77
+ function trimmedString(value) {
78
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
79
+ }
80
+ function skillActivationFromSource(source, triggeredBy, turnId) {
81
+ const sourceOrigin = trimmedString(source.sourceOrigin) ?? trimmedString(source.sourceInfo?.source);
82
+ return {
83
+ name: source.name,
84
+ filePath: source.filePath,
85
+ hash: source.hash,
86
+ source: source.source,
87
+ ...sourceOrigin ? { sourceOrigin } : {},
88
+ triggeredBy,
89
+ ...turnId ? { turnId } : {}
90
+ };
91
+ }
92
+ function skillActivationFromToolDetails(details, turnId) {
93
+ if (!details || typeof details !== "object" || Array.isArray(details)) return null;
94
+ const record = details;
95
+ const name = trimmedString(record.name);
96
+ const filePath = trimmedString(record.filePath) ?? trimmedString(record.path);
97
+ const hash = trimmedString(record.hash);
98
+ const source = trimmedString(record.source);
99
+ const sourceOrigin = trimmedString(record.sourceOrigin) ?? trimmedString(record.origin);
100
+ if (!name || !filePath || !hash || !source) return null;
101
+ const activation = skillActivationFromSource(
102
+ { name, filePath, hash, source, ...sourceOrigin ? { sourceOrigin } : {} },
103
+ "tool",
104
+ turnId
105
+ );
106
+ if (record.drift === "match" || record.drift === "mismatch") activation.drift = record.drift;
107
+ return activation;
108
+ }
109
+ function isSkillActivation(value) {
110
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
111
+ const record = value;
112
+ return typeof record.name === "string" && typeof record.filePath === "string" && typeof record.hash === "string" && typeof record.source === "string" && (record.sourceOrigin === void 0 || typeof record.sourceOrigin === "string") && (record.triggeredBy === "slash-command" || record.triggeredBy === "tool") && (record.turnId === void 0 || typeof record.turnId === "string") && (record.runId === void 0 || typeof record.runId === "string");
113
+ }
114
+
115
+ export {
116
+ SKILL_SUGGESTION_ANCHOR,
117
+ SKILL_SUGGESTION_PREFIX,
118
+ SKILL_INSTALL_OFFER_OPTION_PROJECT,
119
+ SKILL_INSTALL_OFFER_OPTION_USER,
120
+ SKILL_INSTALL_OFFER_OPTION_NOT_NOW,
121
+ SKILL_INSTALL_OFFER_OPTION_NEVER,
122
+ armedSkillSurface,
123
+ skillSurfaceNames,
124
+ skillSurfaceLabels,
125
+ withModelSkillActivation,
126
+ evaluateSkillToolSurface,
127
+ agentSkillToolPolicy,
128
+ skillActivationFromToolDetails,
129
+ isSkillActivation
130
+ };
131
+ //# sourceMappingURL=chunk-MMZMM6SW.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-C2CPOIH2.js";
8
8
  import {
9
9
  ToolNames
10
- } from "./chunk-V4XJWDHR.js";
10
+ } from "./chunk-6UKFRTXI.js";
11
11
  import {
12
12
  typebox_exports
13
13
  } from "./chunk-GH5ZR6JP.js";
@@ -413,4 +413,4 @@ export {
413
413
  prepareDataAdmissionArguments,
414
414
  dataToolSurface
415
415
  };
416
- //# sourceMappingURL=chunk-FFYTC2KQ.js.map
416
+ //# sourceMappingURL=chunk-MNABNEBX.js.map
@@ -13,10 +13,10 @@ import {
13
13
  } from "./chunk-7QXCO3AF.js";
14
14
  import {
15
15
  createSafetyPolicyEngine
16
- } from "./chunk-733ZBT5P.js";
16
+ } from "./chunk-E74MJF6G.js";
17
17
  import {
18
18
  classify
19
- } from "./chunk-VYRQHORQ.js";
19
+ } from "./chunk-NMQSO6Z6.js";
20
20
  import {
21
21
  clioStateDir,
22
22
  stateRootRemoved
@@ -658,4 +658,4 @@ export {
658
658
  parseRigorOverride,
659
659
  SafetyDomainModule
660
660
  };
661
- //# sourceMappingURL=chunk-XMDBTYCH.js.map
661
+ //# sourceMappingURL=chunk-N3CWOGVF.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  extractCommandPathWalks
4
- } from "./chunk-P4GNZPXO.js";
4
+ } from "./chunk-OYUS3UZP.js";
5
5
  import {
6
6
  artifactDefaultPath
7
7
  } from "./chunk-NTTS3O53.js";
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  ToolNames,
18
18
  isHarnessExtensionToolName
19
- } from "./chunk-V4XJWDHR.js";
19
+ } from "./chunk-6UKFRTXI.js";
20
20
  import {
21
21
  init_esm_shims
22
22
  } from "./chunk-ECBHH7LU.js";
@@ -65,6 +65,7 @@ function baseClassify(tool) {
65
65
  case ToolNames.WebFetch:
66
66
  case ToolNames.Git:
67
67
  case ToolNames.CodeNav:
68
+ case ToolNames.SelfCompact:
68
69
  case ToolNames.Context:
69
70
  // clio_docs and clio_library read Clio's bundled documentation and the
70
71
  // recipe catalog; data streams structured files. None writes.
@@ -411,4 +412,4 @@ export {
411
412
  normalizeCallPaths,
412
413
  classify
413
414
  };
414
- //# sourceMappingURL=chunk-VYRQHORQ.js.map
415
+ //# sourceMappingURL=chunk-NMQSO6Z6.js.map
@@ -19,7 +19,8 @@ import {
19
19
  getKeybindings,
20
20
  stripTerminalSequences,
21
21
  truncateToWidth,
22
- visibleWidth
22
+ visibleWidth,
23
+ wrapTextWithAnsi
23
24
  } from "./chunk-6OWUM2NC.js";
24
25
  import {
25
26
  sanitizeCallTargetText
@@ -1376,13 +1377,21 @@ function buildWelcomeDashboardLines(stats, version, width, mode, hintPage = 0, g
1376
1377
  theme.fg("dim", "Ask Clio how to use or extend her."),
1377
1378
  theme.fg("dim", "Targets"),
1378
1379
  theme.fg("muted", stats.targets),
1380
+ // Keep the subscription field beside the wordmark, between Targets and
1381
+ // Fleet. Wrap at the actual detail-column width instead of clipping the
1382
+ // last accounts (especially Local) off a single concatenated line.
1383
+ ...stats.quota === null ? [] : wrapTextWithAnsi(
1384
+ field("Subscriptions", theme.fg("muted", sanitizeCallTargetText(stats.quota))),
1385
+ Math.max(1, detailWidth)
1386
+ ),
1379
1387
  theme.fg("dim", "Fleet"),
1380
1388
  theme.fg("muted", stats.fleet)
1381
1389
  ];
1382
1390
  return [
1383
1391
  heading,
1384
- ...details.map((detail, index) => {
1385
- const art = sideBySide ? `${theme.fg("accent", wordmark[index] ?? "")} ` : "";
1392
+ ...Array.from({ length: Math.max(details.length, hints.length, sideBySide ? wordmark.length : 0) }, (_, index) => {
1393
+ const detail = details[index] ?? "";
1394
+ const art = sideBySide ? `${padAnsi(theme.fg("accent", wordmark[index] ?? ""), artWidth)} ` : "";
1386
1395
  const content = `${art}${truncateToWidth(detail, detailWidth, GLYPH.ellipsis, false)}`;
1387
1396
  return row(
1388
1397
  showHints ? `${padAnsi(content, contentWidth)} ${frame("\u2502")} ${truncateToWidth(hints[index] ?? "", hintWidth, GLYPH.ellipsis, false)}` : content
@@ -1406,7 +1415,8 @@ function statsSignature(stats) {
1406
1415
  stats.submitKeyLabel,
1407
1416
  stats.autonomy,
1408
1417
  stats.targets,
1409
- stats.fleet
1418
+ stats.fleet,
1419
+ stats.quota
1410
1420
  ].join("\0");
1411
1421
  }
1412
1422
  var WelcomeDashboard = class {
@@ -1507,6 +1517,7 @@ var WelcomeDashboard = class {
1507
1517
  projectContext: launchpad ? this.projectContext(cwd) : "checking",
1508
1518
  submitKeyLabel: launchpad ? this.deps.getSubmitKeyLabel?.() ?? null : null,
1509
1519
  autonomy: settings?.safety?.autonomy ?? "auto-edit",
1520
+ quota: launchpad ? this.deps.getQuotaSummary?.() ?? null : null,
1510
1521
  ...inventory(settings, statuses, this.deps.getAgentCount?.())
1511
1522
  };
1512
1523
  }
@@ -1582,6 +1593,8 @@ function createBootWelcome(settings, submitKeyLabel, getKeyLabel) {
1582
1593
  routeReason: null,
1583
1594
  projectContext: "checking",
1584
1595
  submitKeyLabel,
1596
+ // Boot paints before any provider has been read, so the row stays hidden.
1597
+ quota: null,
1585
1598
  autonomy: settings.safety.autonomy,
1586
1599
  ...inventory(settings)
1587
1600
  };
@@ -1602,4 +1615,4 @@ export {
1602
1615
  createWelcomeDashboard,
1603
1616
  createBootWelcome
1604
1617
  };
1605
- //# sourceMappingURL=chunk-R2UUNSNQ.js.map
1618
+ //# sourceMappingURL=chunk-O3ZAF7UY.js.map
@@ -4,17 +4,17 @@ import {
4
4
  listChecks,
5
5
  runProjectCheck,
6
6
  runScriptCheck
7
- } from "./chunk-7RET77VB.js";
7
+ } from "./chunk-Q2HKY32Y.js";
8
8
  import {
9
9
  BROWSER_MODES,
10
10
  prepareBoundedImage,
11
11
  prepareVerifyArguments,
12
12
  verifyToolSurface
13
- } from "./chunk-YBUECLAF.js";
13
+ } from "./chunk-YEJQDODA.js";
14
14
  import {
15
15
  maxOutputArg,
16
16
  timeoutArg
17
- } from "./chunk-CRHPCPZP.js";
17
+ } from "./chunk-4KC4CHKJ.js";
18
18
  import {
19
19
  escapeRegExp
20
20
  } from "./chunk-DZLR4UEH.js";
@@ -665,4 +665,4 @@ var verifyTool = {
665
665
  export {
666
666
  verifyTool
667
667
  };
668
- //# sourceMappingURL=chunk-4SYHGVDE.js.map
668
+ //# sourceMappingURL=chunk-OQNCLZI4.js.map
@@ -10,13 +10,13 @@ import {
10
10
  refKey,
11
11
  toolResultPayload,
12
12
  toolResultText
13
- } from "./chunk-EZD2BXGP.js";
13
+ } from "./chunk-GUFQPTQK.js";
14
14
  import {
15
15
  filterEntriesToActivePath
16
16
  } from "./chunk-O5F25NIE.js";
17
17
  import {
18
18
  ceilChars
19
- } from "./chunk-6W75D37F.js";
19
+ } from "./chunk-53P775GE.js";
20
20
  import {
21
21
  init_esm_shims
22
22
  } from "./chunk-ECBHH7LU.js";
@@ -136,4 +136,4 @@ export {
136
136
  recallableRefListing,
137
137
  recallErrorMessage
138
138
  };
139
- //# sourceMappingURL=chunk-EG4ARXPC.js.map
139
+ //# sourceMappingURL=chunk-OX6QTA4N.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-M4KFUXS7.js";
12
12
  import {
13
13
  ToolNames
14
- } from "./chunk-V4XJWDHR.js";
14
+ } from "./chunk-6UKFRTXI.js";
15
15
  import {
16
16
  init_esm_shims
17
17
  } from "./chunk-ECBHH7LU.js";
@@ -1153,4 +1153,4 @@ export {
1153
1153
  scanShellLike,
1154
1154
  scanShellLikeDeep
1155
1155
  };
1156
- //# sourceMappingURL=chunk-P4GNZPXO.js.map
1156
+ //# sourceMappingURL=chunk-OYUS3UZP.js.map