@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
@@ -8,10 +8,10 @@ import {
8
8
  recallParentTurnId,
9
9
  recallableRefListing,
10
10
  resolveRecall
11
- } from "./chunk-EG4ARXPC.js";
11
+ } from "./chunk-OX6QTA4N.js";
12
12
  import {
13
13
  foldWorkingSet
14
- } from "./chunk-EZD2BXGP.js";
14
+ } from "./chunk-GUFQPTQK.js";
15
15
  import {
16
16
  getAtPath
17
17
  } from "./chunk-GGWI3OVM.js";
@@ -20,37 +20,35 @@ import {
20
20
  settingsSectionForPath
21
21
  } from "./chunk-LJRBX7QR.js";
22
22
  import {
23
- checkSkillDrift
24
- } from "./chunk-4WOOTKFD.js";
23
+ buildSkillCatalogView,
24
+ checkSkillDrift,
25
+ checkSkillDriftBatch
26
+ } from "./chunk-U3FETNQB.js";
25
27
  import {
26
28
  discoverMarketplaceSkills,
27
29
  installedSkillNames,
28
30
  installedSkillPackages,
29
31
  loadSkills,
30
32
  modelVisibleSkills
31
- } from "./chunk-LAR7DX5E.js";
33
+ } from "./chunk-B5TASTCK.js";
32
34
  import {
33
35
  contextToolSurface
34
- } from "./chunk-CTFPFW3H.js";
36
+ } from "./chunk-Q6FRR3AQ.js";
35
37
  import {
36
38
  OBSERVE_SELF_CAPS,
37
39
  finalizeObservation,
38
40
  observationBudgetExhausted,
39
41
  reserveObservation
40
- } from "./chunk-OPD7GL6F.js";
42
+ } from "./chunk-H6FQVNZC.js";
41
43
  import {
42
44
  truncateHead
43
45
  } from "./chunk-GHXGMFQ5.js";
44
46
  import {
45
- SKILL_INSTALL_OFFER_OPTION_NEVER,
46
- SKILL_INSTALL_OFFER_OPTION_NOT_NOW,
47
- SKILL_INSTALL_OFFER_OPTION_PROJECT,
48
- SKILL_INSTALL_OFFER_OPTION_USER,
49
47
  SKILL_SUGGESTION_ANCHOR
50
- } from "./chunk-I4Y4WKZR.js";
48
+ } from "./chunk-MMZMM6SW.js";
51
49
  import {
52
50
  ToolNames
53
- } from "./chunk-V4XJWDHR.js";
51
+ } from "./chunk-6UKFRTXI.js";
54
52
  import {
55
53
  resolvePackageRoot
56
54
  } from "./chunk-ZPST2KQO.js";
@@ -771,57 +769,13 @@ function marketplaceRowsFor(deps, installed, options) {
771
769
  return [];
772
770
  }
773
771
  }
774
- function renderSkillsList(skills, marketplace, marketplaceOffered, modelActivation, packages = []) {
775
- if (skills.length === 0 && marketplace.length === 0 && packages.length === 0) {
776
- return marketplaceOffered ? "No skills are available in Clio and no additional marketplace skills were found." : "No skills are available in Clio.";
777
- }
778
- const lines = ["Available skills.", ""];
779
- const native = skills.filter((skill) => skill.source === "clio-coder" || skill.source === "plugin");
780
- const discovered = skills.filter((skill) => skill.source !== "clio-coder" && skill.source !== "plugin");
781
- lines.push(`Ready skills in Clio (${native.length}):`);
782
- if (native.length === 0) lines.push("- none");
783
- for (const skill of native) {
784
- lines.push(`- ${skill.name} (source: ${skill.source}; scope: ${skill.scope}): ${skill.description}`);
785
- }
786
- if (discovered.length > 0) {
787
- lines.push("", "Explicitly supplied session skills (not installed packages):");
788
- for (const skill of discovered) {
789
- lines.push(
790
- `- ${skill.name} (source: ${skill.source}; scope: ${skill.scope}; file: ${skill.filePath}): ${skill.description}`
791
- );
792
- }
793
- lines.push(
794
- "These skills were explicitly supplied for this session. Preserve their source; session availability does not mean Clio installed or copied them."
795
- );
796
- }
797
- if (packages.length > 0) {
798
- lines.push("", `Installed packages providing skills (${packages.length}):`);
799
- for (const pkg of packages)
800
- lines.push(
801
- `- ${pkg.name} (scope: ${pkg.scope}; origin: ${pkg.origin === "catalog" ? "marketplace catalog" : pkg.origin}; state: ${pkg.state}; path: ${pkg.path})`
802
- );
803
- }
804
- lines.push(
805
- "",
806
- "Other-agent skill folders are discovery-only. Explicitly import into Clio before use; the trust-imports setting does not install or activate loose files."
807
- );
808
- if (marketplace.length > 0) {
809
- lines.push("", "Marketplace (additional skills available to install; /skill <name> offers to install):");
810
- for (const entry of marketplace) {
811
- const category = entry.category ? ` [${entry.category}]` : "";
812
- lines.push(`- ${entry.name}${category}: ${entry.description}`);
813
- }
814
- }
815
- lines.push(
816
- "",
817
- modelActivation ? `If one skill above matches the current task, load it now with context(scope="skills", name="<name>") and continue in the same turn; at this autonomy level you activate installed skills yourself and do not wait for the operator. Marketplace additions still require operator approval. If none match, do not mention skills.` : `If one skill above matches the current task, begin your reply with the line \`${SKILL_SUGGESTION_ANCHOR}\` (a comma-separated sequence, in order, when several compose), then continue the task in the same turn without it; only the operator can run it. If none match, do not mention skills.`
818
- );
819
- if (marketplace.length > 0) {
820
- lines.push(
821
- `When no installed skill serves the task but a marketplace skill above genuinely does, you may instead ask the operator with ask_user (mode=single_question, header "Install skill") whether to install it, offering exactly: "${SKILL_INSTALL_OFFER_OPTION_PROJECT}", "${SKILL_INSTALL_OFFER_OPTION_USER}", "${SKILL_INSTALL_OFFER_OPTION_NOT_NOW}", "${SKILL_INSTALL_OFFER_OPTION_NEVER}". The harness handles those exact offer options. An explicit operator request or approval also authorizes the documented library install CLI. After installation, refresh the inventory; distinguish installed from ready and report /library reload when required.`
822
- );
772
+ function driftedSkillNames(skills, cwd) {
773
+ try {
774
+ const reports = checkSkillDriftBatch(skills, cwd);
775
+ return new Set([...reports].filter(([, report]) => report.verdict === "mismatch").map(([name]) => name));
776
+ } catch {
777
+ return /* @__PURE__ */ new Set();
823
778
  }
824
- return lines.join("\n");
825
779
  }
826
780
  function runWorkspaceScope(deps, reservation, options) {
827
781
  const workspace = deps.workspace;
@@ -909,35 +863,54 @@ function runSkillsScope(deps, args, reservation, options) {
909
863
  cwdFromDeps(deps),
910
864
  deps.getSkillLoaderOptions?.().trustProjectCompatRoots === true
911
865
  );
912
- const rendered = renderSkillsList(
913
- visible2,
866
+ const view = buildSkillCatalogView({
867
+ skills: visible2,
868
+ packages,
914
869
  marketplace,
915
- deps.skillMarketplace !== false,
916
- options?.pendingSkillPolicy?.modelActivation === true,
917
- packages
918
- );
919
- const truncation2 = truncateHead(rendered, { maxBytes: reservation.callCapBytes, maxLines: Number.MAX_SAFE_INTEGER });
920
- const total = visible2.length + marketplace.length + packages.length;
870
+ drifted: driftedSkillNames(visible2, cwdFromDeps(deps)),
871
+ marketplaceOffered: deps.skillMarketplace !== false,
872
+ modelActivation: options?.pendingSkillPolicy?.modelActivation === true,
873
+ query: typeof args.query === "string" ? args.query : "",
874
+ limit: typeof args.limit === "number" ? args.limit : void 0,
875
+ offset: typeof args.offset === "number" ? args.offset : 0,
876
+ capBytes: reservation.callCapBytes
877
+ });
878
+ const shownKeys = new Set(view.rows.map((row) => row.key));
879
+ const shown = (kind, identity) => shownKeys.has(`${kind}:${identity}`);
921
880
  return finalizeObservation({
922
881
  tool: ToolNames.Context,
923
882
  unit: "entries",
924
- output: truncation2.content,
925
- ...truncation2.truncated ? { fullOutput: rendered } : {},
926
- shownCount: total,
927
- totalCount: total,
928
- truncated: truncation2.truncated,
883
+ output: view.text,
884
+ shownCount: view.shown,
885
+ totalCount: view.total,
886
+ truncated: view.nextOffset !== void 0 || view.shown < view.total,
887
+ // Offsets index the filtered result set. A continuation carrying only
888
+ // the offset would be applied to the unfiltered catalog, which repeats
889
+ // rows and skips matches, so the envelope says the query is part of it.
890
+ ...view.nextOffset !== void 0 ? {
891
+ next: view.filtered ? `offset=${view.nextOffset} with the same query` : `offset=${view.nextOffset}`
892
+ } : {},
929
893
  details: {
930
- skills: visible2.map((skill2) => ({
894
+ // Rows on this page, so a caller reading `details` sees the same
895
+ // listing the text carries. The totals beside them are how a
896
+ // filtered or paged view is told apart from a complete one.
897
+ skills: visible2.filter((skill2) => shown("ready", skill2.filePath) || shown("session", skill2.filePath)).map((skill2) => ({
931
898
  name: skill2.name,
932
899
  scope: skill2.scope,
933
900
  source: skill2.source,
934
- path: skill2.filePath
901
+ path: skill2.filePath,
902
+ ...view.driftedNames.includes(skill2.name) ? { drift: "mismatch" } : {}
935
903
  })),
936
- installedPackages: packages,
937
- marketplace: marketplace.map((entry) => ({
904
+ installedPackages: packages.filter((pkg) => shown("package", `${pkg.scope}:${pkg.path}`)),
905
+ marketplace: marketplace.filter((entry) => shown("marketplace", entry.sourceUrl)).map((entry) => ({
938
906
  name: entry.name,
939
907
  ...entry.category ? { category: entry.category } : {}
940
- }))
908
+ })),
909
+ totalSkills: visible2.length,
910
+ totalPackages: packages.length,
911
+ totalMarketplace: marketplace.length,
912
+ ...view.filtered ? { query: args.query.trim(), matchMode: view.matchMode } : {},
913
+ ...view.driftedNames.length > 0 ? { drifted: view.driftedNames } : {}
941
914
  },
942
915
  reservation,
943
916
  ...options ? { options } : {}
@@ -1134,6 +1107,36 @@ function runRecallScope(deps, args, reservation, options) {
1134
1107
  ...options ? { options } : {}
1135
1108
  });
1136
1109
  }
1110
+ function runBudgetScope(deps, reservation, options) {
1111
+ const inspection = deps.getContextBudget?.() ?? {
1112
+ status: "unavailable",
1113
+ reason: "This run has no native session budget port. Worker and external-agent budgets are not the parent session's budget."
1114
+ };
1115
+ const payload = inspection.status === "available" ? {
1116
+ ...inspection,
1117
+ mode: "enforced",
1118
+ admissionNote: "Submission and continuation enforce input plus reserved output against the effective window. Counts are estimates unless provider-attested; pressure advice remains advisory."
1119
+ } : inspection;
1120
+ const full = JSON.stringify(payload);
1121
+ const fits = Buffer.byteLength(full, "utf8") <= reservation.callCapBytes;
1122
+ const output = fits ? full : JSON.stringify({
1123
+ status: "unavailable",
1124
+ reason: "observation-limit",
1125
+ message: "The budget view exceeds the available observation bytes. Continue in a follow-up turn; do not retry this turn."
1126
+ });
1127
+ return finalizeObservation({
1128
+ tool: ToolNames.Context,
1129
+ unit: "results",
1130
+ format: "json",
1131
+ output,
1132
+ shownCount: fits ? 1 : 0,
1133
+ totalCount: 1,
1134
+ totalBytes: Buffer.byteLength(full, "utf8"),
1135
+ truncated: !fits,
1136
+ reservation,
1137
+ ...options ? { options } : {}
1138
+ });
1139
+ }
1137
1140
  function createContextTool(deps = {}) {
1138
1141
  return {
1139
1142
  ...contextToolSurface,
@@ -1146,18 +1149,22 @@ function createContextTool(deps = {}) {
1146
1149
  message: `context: scope "${scope}" is a gateway capability now: call gateway(op="call", capability="${capability}", args={...}) or gateway(op="describe", capability="${capability}") for its arguments.`
1147
1150
  };
1148
1151
  }
1149
- if (scope !== "workspace" && scope !== "settings" && scope !== "skills" && scope !== "recall") {
1152
+ if (scope !== "workspace" && scope !== "settings" && scope !== "skills" && scope !== "recall" && scope !== "budget") {
1150
1153
  return {
1151
1154
  kind: "error",
1152
- message: `context: scope must be workspace, settings, skills, or recall; got '${scope}'`
1155
+ message: `context: scope must be workspace, settings, skills, recall, or budget; got '${scope}'`
1153
1156
  };
1154
1157
  }
1158
+ if (scope === "budget" && Object.keys(args).some((key) => key !== "scope")) {
1159
+ return { kind: "error", message: 'context: scope="budget" accepts only scope; it inspects the current request.' };
1160
+ }
1155
1161
  const selfCap = scope === "skills" ? OBSERVE_SELF_CAPS.contextSkills : OBSERVE_SELF_CAPS.contextWorkspace;
1156
1162
  const reservation = reserveObservation(selfCap, options);
1157
1163
  if (reservation.exhausted) {
1158
1164
  return observationBudgetExhausted({
1159
1165
  tool: ToolNames.Context,
1160
1166
  unit: scope === "skills" ? "entries" : "results",
1167
+ ...scope === "budget" ? { format: "json" } : {},
1161
1168
  reservation,
1162
1169
  subject: `scope=${scope}`,
1163
1170
  hint: "Continue in a follow-up turn."
@@ -1191,6 +1198,7 @@ function createContextTool(deps = {}) {
1191
1198
  ...options ? { options } : {}
1192
1199
  });
1193
1200
  }
1201
+ if (scope === "budget") return runBudgetScope(deps, reservation, options);
1194
1202
  if (scope === "workspace") return runWorkspaceScope(deps, reservation, options);
1195
1203
  if (scope === "recall") return runRecallScope(deps, args, reservation, options);
1196
1204
  return runSkillsScope(deps, args, reservation, options);
@@ -1202,4 +1210,4 @@ export {
1202
1210
  runDocsScope,
1203
1211
  createContextTool
1204
1212
  };
1205
- //# sourceMappingURL=chunk-TGWZXJ7L.js.map
1213
+ //# sourceMappingURL=chunk-BEMQK5Q7.js.map
@@ -2,13 +2,13 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  isSessionEntry,
4
4
  isSessionHeader
5
- } from "./chunk-I4Y4WKZR.js";
5
+ } from "./chunk-F6KCJO3U.js";
6
6
  import {
7
7
  atomicWrite,
8
8
  cwdHash,
9
9
  readSessionFileEntries,
10
10
  sessionPaths
11
- } from "./chunk-EKV4UBCM.js";
11
+ } from "./chunk-PZBQUJ2F.js";
12
12
  import {
13
13
  clioStateDir
14
14
  } from "./chunk-CTTI7G3T.js";
@@ -196,4 +196,4 @@ export {
196
196
  operatorTextOfUserPayload,
197
197
  enrichForkMeta
198
198
  };
199
- //# sourceMappingURL=chunk-RNDCROSG.js.map
199
+ //# sourceMappingURL=chunk-CNXU7TR2.js.map
@@ -7,19 +7,27 @@ import {
7
7
  loadProjectRules,
8
8
  renderOperatorProfile,
9
9
  selectActiveRules,
10
- selectProjectPreload
11
- } from "./chunk-LTWH2ACR.js";
10
+ selectProjectPreload,
11
+ sessionCanUseSkills
12
+ } from "./chunk-EQPFEDFV.js";
12
13
  import {
13
14
  loadFragments,
14
15
  sha256
15
- } from "./chunk-OZ76TLGU.js";
16
+ } from "./chunk-EEITU7S6.js";
16
17
  import {
17
18
  createLocalCapacitySampler,
18
19
  resolveGlobalConcurrency
19
20
  } from "./chunk-E6IPKW2E.js";
21
+ import {
22
+ detectClioCoderRepo
23
+ } from "./chunk-B5TASTCK.js";
24
+ import {
25
+ isAutonomyLevel,
26
+ modelMayActivateSkills
27
+ } from "./chunk-UZVYEF57.js";
20
28
  import {
21
29
  isUserVisibleAgent
22
- } from "./chunk-LNOXCGN2.js";
30
+ } from "./chunk-7UFDIOBT.js";
23
31
  import {
24
32
  BusChannels
25
33
  } from "./chunk-PS6JAWJZ.js";
@@ -134,67 +142,6 @@ init_esm_shims();
134
142
  // src/domains/prompts/extension.ts
135
143
  init_esm_shims();
136
144
  import { isAbsolute, relative, resolve, sep } from "node:path";
137
-
138
- // src/core/clio-repo.ts
139
- init_esm_shims();
140
- import { existsSync, readFileSync, statSync } from "node:fs";
141
- import path from "node:path";
142
- var CLIO_PACKAGE_NAME = "@iowarp/clio-coder";
143
- var SOURCE_MARKERS = [
144
- "src/entry/orchestrator.ts",
145
- "src/worker/entry.ts",
146
- "src/domains/prompts/fragments/identity/clio.md"
147
- ];
148
- function isFile(filePath) {
149
- try {
150
- return statSync(filePath).isFile();
151
- } catch {
152
- return false;
153
- }
154
- }
155
- function readPackageJson(root) {
156
- try {
157
- const raw = readFileSync(path.join(root, "package.json"), "utf8");
158
- const parsed = JSON.parse(raw);
159
- return parsed && typeof parsed === "object" ? parsed : null;
160
- } catch {
161
- return null;
162
- }
163
- }
164
- function repositoryMatches(value) {
165
- if (typeof value === "string") return value.includes("iowarp/clio-coder");
166
- if (!value || typeof value !== "object") return false;
167
- const url = value.url;
168
- return typeof url === "string" && url.includes("iowarp/clio-coder");
169
- }
170
- function hasGitMarker(root) {
171
- return existsSync(path.join(root, ".git"));
172
- }
173
- function hasSourceMarkers(root) {
174
- return SOURCE_MARKERS.every((marker) => isFile(path.join(root, marker)));
175
- }
176
- function isClioCoderRepoRoot(root) {
177
- const pkg = readPackageJson(root);
178
- if (pkg?.name !== CLIO_PACKAGE_NAME) return false;
179
- if (!repositoryMatches(pkg.repository)) return false;
180
- if (!hasGitMarker(root)) return false;
181
- return hasSourceMarkers(root);
182
- }
183
- function detectClioCoderRepo(cwd = process.cwd()) {
184
- let current = path.resolve(cwd);
185
- for (; ; ) {
186
- if (isClioCoderRepoRoot(current)) {
187
- return { isClioCoderRepo: true, repoRoot: current };
188
- }
189
- if (hasGitMarker(current)) break;
190
- const parent = path.dirname(current);
191
- if (parent === current) break;
192
- current = parent;
193
- }
194
- return { isClioCoderRepo: false, repoRoot: null };
195
- }
196
-
197
- // src/domains/prompts/extension.ts
198
145
  var CLIO_REPO_AWARENESS_ID = "context.clio-repo-awareness";
199
146
  var WORKSPACE_ROOT_ID = "context.workspace-root";
200
147
  function createPromptsBundle(context, options = {}) {
@@ -313,6 +260,7 @@ function createPromptsBundle(context, options = {}) {
313
260
  additionalFragments: [
314
261
  ...sources.workspaceRoot,
315
262
  ...sources.clioRepoAwareness,
263
+ ...selfDevelopmentSkillFragments(sources.clioRepoAwareness.length > 0, sessionInputs, safety),
316
264
  ...renderCustomizationFragments(sources.customization, cwd, input.workingContextPaths ?? []).fragments
317
265
  ]
318
266
  });
@@ -461,6 +409,7 @@ function clioRepoAwarenessFragments(cwd) {
461
409
  const body = [
462
410
  "# Clio Source Tree",
463
411
  "This workspace is Clio Coder's own source tree.",
412
+ `Source repository root: ${JSON.stringify(awareness.repoRoot)}.`,
464
413
  "When running inside this repo, Clio can modify her own TUI, skills, agents, tools, prompts, context/bootstrap, and harness as ordinary local source work when the user asks.",
465
414
  "Shared contribution/publishing/push/PR/release requires explicit user intent and normal Git/GitHub etiquette. Do not imply autonomous publishing."
466
415
  ].join("\n");
@@ -474,6 +423,26 @@ function clioRepoAwarenessFragments(cwd) {
474
423
  }
475
424
  ];
476
425
  }
426
+ function selfDevelopmentSkillFragments(selfRepo, inputs, autonomy) {
427
+ if (!selfRepo || !sessionCanUseSkills(inputs) || inputs.turnConstraints?.mode === "proposal") return [];
428
+ const activation = isAutonomyLevel(autonomy) && modelMayActivateSkills(autonomy);
429
+ const body = [
430
+ "# Self-development skills",
431
+ "For a task that changes Clio's source, harness, prompts, or library, use clio-coder-dev before editing and clio-coder-test when choosing validation. Skip this workflow for unrelated or self-contained questions.",
432
+ `These two skills are discoverable from this checkout's library/skills/meta when no installed package owns their names. Check context(scope="skills") for current readiness; disabled, damaged, or hidden skills stay unavailable.`,
433
+ activation ? 'Load each relevant ready skill with context(scope="skills", name="clio-coder-dev") or context(scope="skills", name="clio-coder-test") as needed, without waiting for a separate skill request. Reuse already loaded guidance; do not load every reference or the whole catalog.' : "Only the operator activates skills at this autonomy level. Suggest /skill clio-coder-dev or /skill clio-coder-test when relevant, then continue permitted work without waiting or bypassing the activation gate.",
434
+ "Read CONTRIBUTING.md and the assigned sprint packet from the detected repository root. A plan or skill does not launch an unapproved implementation sprint or authorize publication."
435
+ ].join("\n");
436
+ return [
437
+ {
438
+ id: "context.self-development-skills",
439
+ relPath: "inline/self-development-skills",
440
+ body,
441
+ contentHash: sha256(body),
442
+ dynamic: true
443
+ }
444
+ ];
445
+ }
477
446
 
478
447
  // src/domains/prompts/manifest.ts
479
448
  init_esm_shims();
@@ -708,4 +677,4 @@ export {
708
677
  createPromptsDomainModule,
709
678
  SchedulingDomainModule
710
679
  };
711
- //# sourceMappingURL=chunk-3JLTRPN7.js.map
680
+ //# sourceMappingURL=chunk-CVMUXT64.js.map
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  classify,
16
16
  normalizeCallPaths
17
- } from "./chunk-VYRQHORQ.js";
17
+ } from "./chunk-NMQSO6Z6.js";
18
18
  import {
19
19
  commandArgumentSegments,
20
20
  extractCommandCdTargets,
@@ -24,7 +24,7 @@ import {
24
24
  invokesClioSkillMutation,
25
25
  scanShellLike,
26
26
  scanShellLikeDeep
27
- } from "./chunk-P4GNZPXO.js";
27
+ } from "./chunk-OYUS3UZP.js";
28
28
  import {
29
29
  pathBoundaryCovers,
30
30
  resolvePathBoundary
@@ -44,7 +44,7 @@ import {
44
44
  } from "./chunk-MGLRTOCK.js";
45
45
  import {
46
46
  ToolNames
47
- } from "./chunk-V4XJWDHR.js";
47
+ } from "./chunk-6UKFRTXI.js";
48
48
  import {
49
49
  require_dist
50
50
  } from "./chunk-B5GGDIHT.js";
@@ -1718,4 +1718,4 @@ export {
1718
1718
  WRITE_ROOT_REFUSED_TOOLS,
1719
1719
  createSafetyPolicyEngine
1720
1720
  };
1721
- //# sourceMappingURL=chunk-733ZBT5P.js.map
1721
+ //# sourceMappingURL=chunk-E74MJF6G.js.map
@@ -9,14 +9,14 @@ import {
9
9
  import {
10
10
  loadPromptTemplates,
11
11
  validateLibraryPackage
12
- } from "./chunk-UX2L5CUD.js";
12
+ } from "./chunk-AI36V3ON.js";
13
13
  import {
14
14
  fetchPluginSource,
15
15
  loadSkills,
16
16
  parseAgentRecipeSchema,
17
17
  parsePluginGithubSource,
18
18
  pluginLocalPath
19
- } from "./chunk-LAR7DX5E.js";
19
+ } from "./chunk-B5TASTCK.js";
20
20
  import {
21
21
  normalizedSkillHash
22
22
  } from "./chunk-DNCE23JJ.js";
@@ -1574,4 +1574,4 @@ export {
1574
1574
  renderLibraryImportPlan,
1575
1575
  InteropDomainModule
1576
1576
  };
1577
- //# sourceMappingURL=chunk-T2MDZES3.js.map
1577
+ //# sourceMappingURL=chunk-EBMTBE76.js.map
@@ -3,7 +3,7 @@ import {
3
3
  RUN_RECEIPT_INTEGRITY_VERSION,
4
4
  TRUST_STATUS_AXES,
5
5
  retiredIntegrityVersionOf
6
- } from "./chunk-VKHLUZNO.js";
6
+ } from "./chunk-UZ7YBL43.js";
7
7
  import {
8
8
  readSettings
9
9
  } from "./chunk-56XP4FJU.js";
@@ -737,4 +737,4 @@ export {
737
737
  EvalTaskFileError,
738
738
  loadFragments
739
739
  };
740
- //# sourceMappingURL=chunk-OZ76TLGU.js.map
740
+ //# sourceMappingURL=chunk-EEITU7S6.js.map