@iowarp/clio-coder 0.3.8 → 0.3.9

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 (333) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +7 -3
  3. package/dist/{acp-U67UHUK2.js → acp-7LOELQFP.js} +6 -6
  4. package/dist/{agents-YU6SGALZ.js → agents-FIBG2SHA.js} +27 -25
  5. package/dist/assets/codewiki.json +1 -1
  6. package/dist/{auth-5ZPJOIVG.js → auth-OI4LIH2I.js} +11 -12
  7. package/dist/{builtins-C6JMZVV6.js → builtins-AD25UL3C.js} +5 -5
  8. package/dist/{chunk-5FR74PWO.js → chunk-2JDWVJND.js} +2 -2
  9. package/dist/chunk-3DPEIQKN.js +113 -0
  10. package/dist/{chunk-4SPRNWDE.js → chunk-3DUR4WUA.js} +15 -15
  11. package/dist/{chunk-VHN4MY6O.js → chunk-3MRC2YSQ.js} +2 -2
  12. package/dist/{chunk-5DHKRSMQ.js → chunk-3UUY7R3Z.js} +11 -7
  13. package/dist/{chunk-IGWKHNIQ.js → chunk-3V5AYSEQ.js} +8 -8
  14. package/dist/{chunk-FHJEP5SW.js → chunk-465CC7FK.js} +8 -5
  15. package/dist/{chunk-5WIGXA4T.js → chunk-47CMYGET.js} +111 -4
  16. package/dist/{chunk-A3WNZD3P.js → chunk-4H6ULJ3H.js} +67 -21
  17. package/dist/{chunk-TB5666IT.js → chunk-4LJX2PUC.js} +3 -3
  18. package/dist/{chunk-XWSF374K.js → chunk-56KB5IJP.js} +2 -2
  19. package/dist/{chunk-SPULKLCF.js → chunk-5DQRIYDZ.js} +2 -2
  20. package/dist/{chunk-2HEJ2F35.js → chunk-5HFBWUMU.js} +20 -8
  21. package/dist/{chunk-WNIJTQQK.js → chunk-5PVQ4SRS.js} +78 -6
  22. package/dist/{chunk-DYIM5TJT.js → chunk-5QKCQQ3E.js} +262 -6
  23. package/dist/{chunk-TYPGUK6W.js → chunk-5T7RBWN2.js} +111 -5
  24. package/dist/{chunk-IIZWH4XA.js → chunk-774ILSRL.js} +2 -2
  25. package/dist/chunk-7C6RYZGQ.js +391 -0
  26. package/dist/{chunk-TANS5ZJS.js → chunk-AD7Y7STJ.js} +3 -3
  27. package/dist/{chunk-RWSI4YD7.js → chunk-AEYBF3TB.js} +33 -12
  28. package/dist/{chunk-DGSYXYMX.js → chunk-AMKHQW3C.js} +2 -2
  29. package/dist/{chunk-VWZOAB7K.js → chunk-B5XRQOLB.js} +7 -7
  30. package/dist/{chunk-WXY7KU3G.js → chunk-BVDVID7E.js} +2 -2
  31. package/dist/{chunk-PMDBGQSJ.js → chunk-CA42X6KT.js} +2 -2
  32. package/dist/{chunk-HLE42MG7.js → chunk-D73KXYPF.js} +3 -3
  33. package/dist/{chunk-5Q2VVUKB.js → chunk-DG4M6ZUE.js} +3 -3
  34. package/dist/{chunk-ME6CCNFO.js → chunk-EBOC7MT3.js} +6 -6
  35. package/dist/{chunk-MXKJU4JB.js → chunk-ECUO3KDP.js} +48 -7
  36. package/dist/{chunk-26LEYJZH.js → chunk-FALJGAWU.js} +2 -2
  37. package/dist/{chunk-GWS3VEIW.js → chunk-FWDFM5ZU.js} +24 -3
  38. package/dist/{chunk-7RGZWPB6.js → chunk-GAYUJ7LE.js} +67 -13
  39. package/dist/{chunk-VCBR6CU7.js → chunk-HAY4ZE2P.js} +2 -2
  40. package/dist/{chunk-FBVTI2TJ.js → chunk-HCBCAYZU.js} +11 -130
  41. package/dist/{chunk-WSB3FPX7.js → chunk-HJB5IUKP.js} +32 -136
  42. package/dist/{chunk-J3YUBZWY.js → chunk-HKO36JWF.js} +33 -5
  43. package/dist/{chunk-E77JEWSD.js → chunk-HPCTNZM2.js} +6 -36
  44. package/dist/{chunk-FJ3H4MN5.js → chunk-IHKBWSXF.js} +2 -2
  45. package/dist/{chunk-NMPKI6XL.js → chunk-JEQQR47K.js} +37 -18
  46. package/dist/{chunk-3BINW3FP.js → chunk-KV2AOLDF.js} +24 -4
  47. package/dist/{chunk-YS5VLNH5.js → chunk-LXPJXFM5.js} +7 -7
  48. package/dist/{chunk-7RFXX52T.js → chunk-MIX5N5AC.js} +271 -41
  49. package/dist/{chunk-K4XHGFR5.js → chunk-MLOK6ZOS.js} +1297 -218
  50. package/dist/{chunk-ZNLWCMVZ.js → chunk-MV2VUEJC.js} +2 -2
  51. package/dist/{chunk-MVVUPGPW.js → chunk-MXHC5QYU.js} +6 -6
  52. package/dist/{chunk-5H3GB5BO.js → chunk-N3PBVRTZ.js} +4 -382
  53. package/dist/{chunk-2HFZQUHL.js → chunk-N5XKWMDW.js} +17 -7
  54. package/dist/{chunk-5C3AQNDW.js → chunk-NNNWO6F2.js} +124 -36
  55. package/dist/{chunk-GU2UIAFZ.js → chunk-NQ6UCCOD.js} +3 -3
  56. package/dist/{chunk-N22QMJKY.js → chunk-NZU6YDNV.js} +4 -4
  57. package/dist/{chunk-ZVJ5BLO2.js → chunk-O6I4CIEU.js} +151 -13
  58. package/dist/{chunk-XN3L4EYL.js → chunk-OEDBCISO.js} +2 -2
  59. package/dist/{chunk-VAWNZU7Z.js → chunk-P3JGPQFL.js} +2 -2
  60. package/dist/{chunk-IJ7RPIYJ.js → chunk-PNY46YEY.js} +20 -3
  61. package/dist/{chunk-U6MBIEMB.js → chunk-PZ4I4JE2.js} +56 -35
  62. package/dist/{chunk-GPIEI3LY.js → chunk-QQ7EKM72.js} +2 -2
  63. package/dist/{chunk-WLFILSD5.js → chunk-R7LNVMCS.js} +66 -28
  64. package/dist/{chunk-GOXNB3AO.js → chunk-RAPCMZL4.js} +75 -4
  65. package/dist/chunk-RKKLTLYB.js +45 -0
  66. package/dist/{chunk-TT36MB5S.js → chunk-RKRLDWD3.js} +3 -1
  67. package/dist/{chunk-TTHACPOM.js → chunk-S4COXYBG.js} +456 -18
  68. package/dist/{chunk-WWCZ5F23.js → chunk-T3Z6VAAF.js} +69 -10
  69. package/dist/{chunk-GN57SG4G.js → chunk-TD7UE2L5.js} +9 -7
  70. package/dist/{chunk-TLQJPP24.js → chunk-TEO2TLVN.js} +523 -322
  71. package/dist/{chunk-FCSXB6T2.js → chunk-UOSL25KY.js} +14 -2
  72. package/dist/{chunk-KTYTFRMB.js → chunk-VKBMFOYV.js} +17 -15
  73. package/dist/{chunk-PT7HYKEM.js → chunk-VO2LKSTM.js} +2 -2
  74. package/dist/{chunk-P43ETTHK.js → chunk-VPTUJU4P.js} +2 -2
  75. package/dist/{chunk-WEH5XRJQ.js → chunk-WIE7ZOSW.js} +2 -2
  76. package/dist/{chunk-EMYUUSFG.js → chunk-WXCJ7VME.js} +5 -5
  77. package/dist/{chunk-4DGYLA73.js → chunk-XDOQXGFO.js} +22 -7
  78. package/dist/{chunk-JOZYP4GM.js → chunk-YKOFT37S.js} +5 -5
  79. package/dist/chunk-YSEHGPCT.js +127 -0
  80. package/dist/{chunk-HFSBBKSQ.js → chunk-YW7UVM5V.js} +138 -3
  81. package/dist/cli/index.js +27 -27
  82. package/dist/{clio-QVTYJ57A.js → clio-LT5V7SSZ.js} +6 -6
  83. package/dist/{code-nav-FGGFIE7L.js → code-nav-LMW275PA.js} +4 -4
  84. package/dist/{config-LW5IJFQN.js → config-RXS5T3JT.js} +71 -43
  85. package/dist/{configure-7XIZCOU4.js → configure-2WYWSCSD.js} +14 -15
  86. package/dist/{context-Y6Y7QPR6.js → context-I3BTOTCS.js} +12 -12
  87. package/dist/{context-L3WL3X7K.js → context-MVOORGMF.js} +34 -33
  88. package/dist/{context-N52ZA626.js → context-PALKKQYL.js} +20 -20
  89. package/dist/{context-clear-MBQRLSDQ.js → context-clear-N2WOYZ2K.js} +34 -33
  90. package/dist/{context-index-HVMFQHK3.js → context-index-HNG3MOME.js} +2 -2
  91. package/dist/{context-working-set-GS6DSO7F.js → context-working-set-MIEVECVZ.js} +10 -11
  92. package/dist/{dispatch-runner-22ZCNOM3.js → dispatch-runner-VVA4SRRH.js} +34 -33
  93. package/dist/doctor-TWBWFK5V.js +165 -0
  94. package/dist/{eval-BEC2WHDA.js → eval-IJ5VEZDJ.js} +2016 -142
  95. package/dist/{evidence-REJUMSKM.js → evidence-L5APPXNV.js} +29 -28
  96. package/dist/{evolve-PY5ZBA5K.js → evolve-RGNKFJ52.js} +29 -28
  97. package/dist/{extensions-HVKU65YU.js → extensions-7WYWUX5A.js} +9 -3
  98. package/dist/{fleet-7WZEWRFA.js → fleet-6CNVBZZP.js} +87 -55
  99. package/dist/{fleet-commands-UVHWM76J.js → fleet-commands-L2SXSYEI.js} +6 -6
  100. package/dist/{fleet-graph-6ULH7PES.js → fleet-graph-2J3OOIPO.js} +14 -12
  101. package/dist/{fleet-preflight-J53T6CCE.js → fleet-preflight-CZRJ4JP5.js} +3 -4
  102. package/dist/{fleet-validate-72PC4SLA.js → fleet-validate-C5RI6DP7.js} +16 -15
  103. package/dist/{init-OG3TPGQG.js → init-VBN2ACVA.js} +50 -48
  104. package/dist/{library-CNTMPLRF.js → library-JHGUMLY2.js} +13 -11
  105. package/dist/{memory-6IS7F275.js → memory-K4OQIYWG.js} +31 -30
  106. package/dist/{models-ENRJDA5W.js → models-2NCZUWDD.js} +23 -22
  107. package/dist/{monitor-XLDVO7TN.js → monitor-MMVTJABD.js} +35 -34
  108. package/dist/{orchestrator-6KSPYRHA.js → orchestrator-ZKBPCHW6.js} +1627 -294
  109. package/dist/{reset-RZ4ER727.js → reset-DD5JGOY3.js} +3 -3
  110. package/dist/{run-Y2CNK5RU.js → run-QEGNX7FL.js} +56 -55
  111. package/dist/{share-A55GYP6Z.js → share-JKD3BQMW.js} +13 -11
  112. package/dist/{skills-ALC5J6AT.js → skills-LMQIKDOZ.js} +14 -12
  113. package/dist/{skills-eval-JPBEBYQU.js → skills-eval-I7X2774U.js} +34 -32
  114. package/dist/{steer-GGWFUJUD.js → steer-CF5TDANS.js} +3 -3
  115. package/dist/{support-MIETYA5E.js → support-I7LOJLIF.js} +4 -4
  116. package/dist/{targets-VGNXIR3S.js → targets-RUSR6B5Z.js} +58 -32
  117. package/dist/{terminal-lease-WOBR64YA.js → terminal-lease-QYVORFR4.js} +6 -4
  118. package/dist/{trace-PNCASAXC.js → trace-ODOQIVIW.js} +61 -6
  119. package/dist/{upgrade-FUSUAGHR.js → upgrade-XANW3FXB.js} +17 -16
  120. package/dist/{usage-N4MKVHKD.js → usage-4H7ZRXQT.js} +88 -44
  121. package/dist/{verifiers-YAWOJ3H2.js → verifiers-UZXNBZEB.js} +6 -6
  122. package/dist/{verify-LTDHYBGY.js → verify-BVKWTNDL.js} +5 -5
  123. package/dist/{wiki-generate-6M7GHTBJ.js → wiki-generate-MY7WV2QI.js} +49 -47
  124. package/dist/worker/entry.js +29 -33
  125. package/docs/alcf-provider.md +1 -1
  126. package/docs/architecture.md +1 -1
  127. package/docs/artifact-versions.md +6 -1
  128. package/docs/built-in-agents.md +1 -1
  129. package/docs/capacity-and-scheduling.md +23 -2
  130. package/docs/commands-and-modes.md +1 -1
  131. package/docs/configuration-and-targets.md +30 -3
  132. package/docs/context-engine.md +63 -4
  133. package/docs/documentation-coverage.md +3 -3
  134. package/docs/documentation-guide.md +1 -1
  135. package/docs/environment-variables.md +2 -0
  136. package/docs/eval-runner.md +262 -11
  137. package/docs/evals-internal.md +72 -2
  138. package/docs/evidence-and-memory.md +11 -10
  139. package/docs/evolution.md +1 -1
  140. package/docs/extensions-and-sharing.md +3 -1
  141. package/docs/fleet-dispatch.md +4 -4
  142. package/docs/installation-and-lifecycle.md +1 -1
  143. package/docs/middleware-and-components.md +1 -1
  144. package/docs/model-catalog.md +1 -1
  145. package/docs/observability.md +53 -2
  146. package/docs/proactive-memory.md +127 -14
  147. package/docs/prompt-envelope-and-tools.md +19 -1
  148. package/docs/provider-adapter-cookbook.md +1 -1
  149. package/docs/release-cut-checklist.md +19 -3
  150. package/docs/safety-model.md +1 -1
  151. package/docs/scientific-validation.md +1 -1
  152. package/docs/skills-marketplace.md +1 -1
  153. package/docs/tool-usage.md +1 -1
  154. package/docs/trace-store.md +1 -1
  155. package/docs/troubleshooting.md +87 -0
  156. package/docs/tui-design.md +1 -1
  157. package/docs/worker-dispatch-mechanics.md +1 -1
  158. package/package.json +2 -1
  159. package/src/cli/agents.ts +1 -1
  160. package/src/cli/config-inspect.ts +33 -6
  161. package/src/cli/config.ts +1 -1
  162. package/src/cli/doctor-state-size.ts +82 -0
  163. package/src/cli/doctor.ts +3 -1
  164. package/src/cli/eval.ts +80 -16
  165. package/src/cli/extensions.ts +5 -1
  166. package/src/cli/fleet.ts +32 -3
  167. package/src/cli/targets.ts +44 -13
  168. package/src/cli/trace.ts +63 -4
  169. package/src/cli/usage.ts +63 -14
  170. package/src/core/bus-events.ts +29 -1
  171. package/src/core/cache-telemetry.ts +42 -0
  172. package/src/core/config.ts +18 -0
  173. package/src/core/defaults.ts +36 -6
  174. package/src/core/endpoint-key.ts +27 -0
  175. package/src/core/residency-target-key.ts +25 -0
  176. package/src/core/response-schema.ts +36 -2
  177. package/src/domains/config/classify.ts +3 -0
  178. package/src/domains/context/codewiki/coordinator.ts +12 -4
  179. package/src/domains/dispatch/admission.ts +40 -3
  180. package/src/domains/dispatch/capacity-lease.ts +98 -9
  181. package/src/domains/dispatch/contract.ts +11 -0
  182. package/src/domains/dispatch/execution-plan.ts +44 -4
  183. package/src/domains/dispatch/extension.ts +166 -42
  184. package/src/domains/dispatch/fleet-run.ts +23 -3
  185. package/src/domains/dispatch/heartbeat.ts +32 -8
  186. package/src/domains/dispatch/index.ts +3 -0
  187. package/src/domains/dispatch/orphan-recovery.ts +5 -0
  188. package/src/domains/dispatch/reservation-store.ts +116 -8
  189. package/src/domains/dispatch/state.ts +4 -0
  190. package/src/domains/dispatch/worker-spawn.ts +25 -11
  191. package/src/domains/dispatch/write-boundary-enforcer.ts +20 -3
  192. package/src/domains/dispatch/write-boundary.ts +62 -1
  193. package/src/domains/eval/artifacts/store.ts +62 -0
  194. package/src/domains/eval/compare/behavioral.ts +224 -0
  195. package/src/domains/eval/compare/compare.ts +355 -2
  196. package/src/domains/eval/compare/envelope.ts +128 -0
  197. package/src/domains/eval/compare/gates.ts +24 -6
  198. package/src/domains/eval/compare/thresholds.ts +30 -3
  199. package/src/domains/eval/execution-provenance.ts +240 -0
  200. package/src/domains/eval/metrics/aggregate.ts +136 -0
  201. package/src/domains/eval/metrics/call-ledger-stream.ts +112 -0
  202. package/src/domains/eval/metrics/tracked.ts +413 -0
  203. package/src/domains/eval/provenance.ts +117 -0
  204. package/src/domains/eval/reports/comparison.ts +128 -0
  205. package/src/domains/eval/reports/junit.ts +17 -3
  206. package/src/domains/eval/reports/markdown.ts +3 -3
  207. package/src/domains/eval/reports/text.ts +14 -0
  208. package/src/domains/eval/run-compare.ts +20 -0
  209. package/src/domains/eval/runners/clio-run.ts +127 -0
  210. package/src/domains/eval/runners/external-command.ts +28 -3
  211. package/src/domains/eval/schema/adapter.ts +111 -0
  212. package/src/domains/eval/schema/artifact.ts +20 -0
  213. package/src/domains/eval/schema/behavioral-metrics.ts +204 -0
  214. package/src/domains/eval/schema/behavioral.ts +520 -0
  215. package/src/domains/eval/schema/execution-envelope.ts +194 -0
  216. package/src/domains/eval/schema/serving.ts +74 -0
  217. package/src/domains/eval/schema/suite.ts +38 -8
  218. package/src/domains/eval/schema/validate.ts +58 -3
  219. package/src/domains/eval/schema/verdict.ts +237 -0
  220. package/src/domains/eval/suites/resolve.ts +2 -0
  221. package/src/domains/eval/suites/run.ts +264 -33
  222. package/src/domains/eval/verifiers/command.ts +2 -1
  223. package/src/domains/eval/workspaces/temp-copy.ts +145 -13
  224. package/src/domains/evidence/build.ts +2 -13
  225. package/src/domains/evidence/eval.ts +2 -12
  226. package/src/domains/evidence/findings-markdown.ts +33 -0
  227. package/src/domains/evidence/run-trust.ts +7 -113
  228. package/src/domains/evidence/trust-projection.ts +2 -2
  229. package/src/domains/extensions/compatibility.ts +285 -0
  230. package/src/domains/extensions/discovery.ts +38 -3
  231. package/src/domains/extensions/resources.ts +1 -1
  232. package/src/domains/extensions/state.ts +12 -3
  233. package/src/domains/extensions/types.ts +2 -0
  234. package/src/domains/lifecycle/doctor.ts +69 -1
  235. package/src/domains/memory/index.ts +14 -0
  236. package/src/domains/memory/task-bank-promotion.ts +64 -0
  237. package/src/domains/memory/task-memory-policy.ts +77 -8
  238. package/src/domains/memory/task-memory-spend.ts +131 -0
  239. package/src/domains/memory/task-memory-status.ts +7 -0
  240. package/src/domains/memory/task-memory-telemetry.ts +2 -0
  241. package/src/domains/middleware/index.ts +1 -0
  242. package/src/domains/middleware/memory-intervention.ts +69 -5
  243. package/src/domains/middleware/memory-step-endpoint.ts +71 -0
  244. package/src/domains/observability/background-memory-usage.ts +140 -0
  245. package/src/domains/observability/cost.ts +1 -1
  246. package/src/domains/observability/index.ts +7 -0
  247. package/src/domains/observability/out-of-turn-usage.ts +51 -2
  248. package/src/domains/observability/trace-store.ts +192 -2
  249. package/src/domains/prompts/compiler.ts +100 -13
  250. package/src/domains/providers/endpoint-capacity.ts +96 -0
  251. package/src/domains/providers/index.ts +10 -0
  252. package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +243 -1
  253. package/src/domains/providers/runtime-resolution.ts +8 -1
  254. package/src/domains/providers/runtimes/common/probe-helpers.ts +31 -9
  255. package/src/domains/providers/runtimes/local-native/llamacpp-anthropic.ts +1 -1
  256. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
  257. package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +1 -1
  258. package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +1 -1
  259. package/src/domains/providers/runtimes/local-native/llamacpp.ts +4 -1
  260. package/src/domains/providers/runtimes/local-native/lmstudio.ts +4 -1
  261. package/src/domains/providers/runtimes/local-native/ollama-native.ts +6 -1
  262. package/src/domains/providers/types/capability-flags.ts +2 -0
  263. package/src/domains/providers/types/target-descriptor.ts +2 -0
  264. package/src/domains/resources/prompts/loader.ts +95 -33
  265. package/src/domains/safety/call-target.ts +52 -0
  266. package/src/domains/safety/run-effects.ts +35 -4
  267. package/src/domains/session/context-accounting.ts +52 -1
  268. package/src/domains/session/context-ledger.ts +37 -13
  269. package/src/domains/session/index.ts +6 -0
  270. package/src/domains/session/prompt-cache.ts +140 -0
  271. package/src/domains/session/prompt-manifest.ts +42 -0
  272. package/src/engine/acp/adapter.ts +18 -3
  273. package/src/engine/ai.ts +35 -0
  274. package/src/engine/apis/llamacpp-residency.ts +55 -3
  275. package/src/engine/apis/lmstudio.ts +25 -5
  276. package/src/engine/apis/ollama-native.ts +2 -1
  277. package/src/engine/apis/openai-completions.ts +80 -17
  278. package/src/engine/apis/residency-lock.ts +3 -1
  279. package/src/engine/apis/residency.ts +34 -1
  280. package/src/engine/provider-payload.ts +29 -1
  281. package/src/entry/orchestrator.ts +176 -30
  282. package/src/interactive/chat-loop-messages.ts +26 -7
  283. package/src/interactive/chat-loop.ts +318 -41
  284. package/src/interactive/chat-panel.ts +62 -8
  285. package/src/interactive/clio-editor.ts +45 -8
  286. package/src/interactive/context-activity.ts +5 -1
  287. package/src/interactive/context-meter.ts +1 -1
  288. package/src/interactive/context-overlay.ts +40 -10
  289. package/src/interactive/cost-overlay.ts +64 -6
  290. package/src/interactive/dispatch-board.ts +84 -12
  291. package/src/interactive/fleet-run-preview.ts +41 -15
  292. package/src/interactive/handoff-round.ts +41 -2
  293. package/src/interactive/interactive-application.ts +24 -1
  294. package/src/interactive/interactive-input-runtime.ts +8 -0
  295. package/src/interactive/interactive-presentation.ts +4 -0
  296. package/src/interactive/interactive-shell.ts +20 -17
  297. package/src/interactive/interactive-slash-runtime.ts +27 -4
  298. package/src/interactive/memory-overlay.ts +8 -0
  299. package/src/interactive/mutation-preview.ts +295 -0
  300. package/src/interactive/overlay-general-openers.ts +16 -0
  301. package/src/interactive/overlay-key-routing.ts +38 -0
  302. package/src/interactive/overlay-lifecycle.ts +38 -5
  303. package/src/interactive/overlay-permission-lifecycle.ts +22 -2
  304. package/src/interactive/overlay-session-lifecycle.ts +73 -9
  305. package/src/interactive/overlays/ask-user.ts +91 -19
  306. package/src/interactive/overlays/help-reference.ts +4 -0
  307. package/src/interactive/overlays/prompts.ts +11 -1
  308. package/src/interactive/overlays/settings.ts +35 -1
  309. package/src/interactive/permission-hint.ts +34 -2
  310. package/src/interactive/permission-overlay.ts +159 -9
  311. package/src/interactive/prewarm.ts +197 -0
  312. package/src/interactive/render-trace.ts +162 -15
  313. package/src/interactive/renderers/tool-execution.ts +4 -0
  314. package/src/interactive/side-question.ts +58 -1
  315. package/src/interactive/status/controller.ts +11 -0
  316. package/src/interactive/status/state-machine.ts +54 -2
  317. package/src/interactive/status/types.ts +7 -0
  318. package/src/interactive/terminal-lease.ts +2 -0
  319. package/src/interactive/turn-context.ts +299 -31
  320. package/src/interactive/turn-persistence.ts +14 -4
  321. package/src/interactive/turn-prewarm.ts +364 -0
  322. package/src/interactive/turn-queues.ts +7 -4
  323. package/src/interactive/turn-runtime.ts +8 -1
  324. package/src/interactive/turn-state.ts +23 -0
  325. package/src/interactive/view/view-overlay.ts +28 -3
  326. package/src/tools/ask-user.ts +43 -2
  327. package/src/tools/dispatch-plan.ts +17 -9
  328. package/src/tools/dispatch-scout.ts +1 -1
  329. package/src/tools/registry.ts +16 -0
  330. package/dist/chunk-AOCYTWAV.js +0 -449
  331. package/dist/chunk-HWUFFB6L.js +0 -83
  332. package/dist/chunk-R346GLFC.js +0 -31
  333. package/dist/doctor-M7YEDGAE.js +0 -91
@@ -5,40 +5,31 @@ import {
5
5
  isRoutingIntent,
6
6
  routePriorForLatencyClass,
7
7
  sameRouteIdentity
8
- } from "./chunk-P43ETTHK.js";
8
+ } from "./chunk-VPTUJU4P.js";
9
9
  import {
10
10
  deriveExecutionRole,
11
11
  isExecutionRole
12
12
  } from "./chunk-H7IXIC72.js";
13
13
  import {
14
14
  typedValidationSummary
15
- } from "./chunk-5H3GB5BO.js";
15
+ } from "./chunk-7C6RYZGQ.js";
16
16
  import {
17
17
  expandPath,
18
18
  resolveReadPath
19
19
  } from "./chunk-OQE5J4C6.js";
20
20
  import {
21
- DEFAULT_AUTONOMY_LEVEL,
22
- autonomyAskRejection,
23
- autonomyDenyRejection,
24
- isAutonomyLevel,
25
- mapAutonomy
26
- } from "./chunk-HWUFFB6L.js";
27
- import {
21
+ AGENT_AUTOMATION_AUTHORITIES,
28
22
  COUNCIL_BALLOT_SHAPE,
29
23
  COUNCIL_BALLOT_VERDICT_MAX_BYTES,
30
24
  PATH_BOUNDARY_MAX_ENTRIES,
31
25
  PathBoundaryError,
26
+ agentSpecFingerprint,
32
27
  asDirectoryPathBoundary,
28
+ classify,
33
29
  normalizePathBoundaryEntry,
34
30
  pathBoundaryCovers,
35
31
  resolvePathBoundary
36
- } from "./chunk-TTHACPOM.js";
37
- import {
38
- AGENT_AUTOMATION_AUTHORITIES,
39
- agentSpecFingerprint,
40
- classify
41
- } from "./chunk-AOCYTWAV.js";
32
+ } from "./chunk-S4COXYBG.js";
42
33
  import {
43
34
  detectValidationCommand,
44
35
  extractCommandDeleteTargets,
@@ -46,6 +37,13 @@ import {
46
37
  tokenizeShellLike,
47
38
  toolMutationPaths
48
39
  } from "./chunk-MV3K5QF2.js";
40
+ import {
41
+ DEFAULT_AUTONOMY_LEVEL,
42
+ autonomyAskRejection,
43
+ autonomyDenyRejection,
44
+ isAutonomyLevel,
45
+ mapAutonomy
46
+ } from "./chunk-RAPCMZL4.js";
49
47
  import {
50
48
  DEFAULT_MAX_LINES,
51
49
  OBSERVATION_POLICY_SLACK_BYTES,
@@ -87,7 +85,7 @@ import {
87
85
  } from "./chunk-6EJMN2Y3.js";
88
86
  import {
89
87
  THINKING_LEVELS
90
- } from "./chunk-4DGYLA73.js";
88
+ } from "./chunk-XDOQXGFO.js";
91
89
  import {
92
90
  GUARDRAIL_DEFAULTS,
93
91
  GUARDRAIL_ENV_VARS,
@@ -445,6 +443,12 @@ init_esm_shims();
445
443
  init_esm_shims();
446
444
  var RESPONSE_SCHEMA_MAX_SERIALIZED_BYTES = 64 * 1024;
447
445
  var RESPONSE_SCHEMA_RUNTIME_ID = "llamacpp";
446
+ var OPENAI_SCHEMA_RUNTIME_ID = "lmstudio";
447
+ function responseSchemaDialectFor(runtimeId) {
448
+ if (runtimeId === RESPONSE_SCHEMA_RUNTIME_ID) return "llamacpp-json-object";
449
+ if (runtimeId === OPENAI_SCHEMA_RUNTIME_ID) return "openai-json-schema";
450
+ return null;
451
+ }
448
452
  function runtimeSpeaksResponseSchemaDialect(runtime) {
449
453
  return runtime.id === RESPONSE_SCHEMA_RUNTIME_ID && runtime.kind === "http" && runtime.apiFamily === "openai-completions";
450
454
  }
@@ -1522,6 +1526,34 @@ function sanitizeForDisplay(value) {
1522
1526
  function oneLine(value) {
1523
1527
  return value.replace(/\s+/g, " ").trim();
1524
1528
  }
1529
+ var DISPLAY_TAB_WIDTH = 4;
1530
+ var CONTROL_BYTE_PLACEHOLDER = "\xB7";
1531
+ function sanitizeMultilineDisplayText(value) {
1532
+ const escapesStripped = value.replace(OSC_PATTERN, "").replace(CSI_PATTERN, "");
1533
+ let neutralized = escapesStripped.length !== value.length;
1534
+ const stripped = escapesStripped.replace(/\r\n/g, "\n");
1535
+ let tabsExpanded = false;
1536
+ let out = "";
1537
+ for (const ch of stripped) {
1538
+ if (ch === "\n") {
1539
+ out += ch;
1540
+ continue;
1541
+ }
1542
+ if (ch === " ") {
1543
+ out += " ".repeat(DISPLAY_TAB_WIDTH);
1544
+ tabsExpanded = true;
1545
+ continue;
1546
+ }
1547
+ const code = ch.codePointAt(0) ?? 0;
1548
+ if (code < 32 || code === 127) {
1549
+ out += CONTROL_BYTE_PLACEHOLDER;
1550
+ neutralized = true;
1551
+ continue;
1552
+ }
1553
+ out += ch;
1554
+ }
1555
+ return { text: out, neutralized, tabsExpanded };
1556
+ }
1525
1557
  function sanitizeCallTargetText(value) {
1526
1558
  return oneLine(sanitizeForDisplay(value));
1527
1559
  }
@@ -2787,13 +2819,13 @@ function validationCommandOf(toolName, args, scope) {
2787
2819
  }
2788
2820
  return typedValidationSummary(toolName, { args: args ?? {} });
2789
2821
  }
2790
- function createRunEffectsRecorder(cwd) {
2822
+ function createRunEffectsRecorder(cwd, options = {}) {
2791
2823
  const pending = /* @__PURE__ */ new Map();
2792
2824
  const mutatedPaths = /* @__PURE__ */ new Set();
2793
2825
  const failedMutationPaths = /* @__PURE__ */ new Set();
2794
2826
  const validationCommands = /* @__PURE__ */ new Set();
2795
2827
  const verificationCommands = /* @__PURE__ */ new Set();
2796
- let opaqueWriteObserved = false;
2828
+ const writeRecordDowngrades = /* @__PURE__ */ new Map();
2797
2829
  return {
2798
2830
  start(toolCallId, toolName, args) {
2799
2831
  const paths = mutationTargets(toolName, args);
@@ -2803,6 +2835,8 @@ function createRunEffectsRecorder(cwd) {
2803
2835
  if (!opaque && paths.length === 0 && validationCommand === null && verificationCommand === null) return;
2804
2836
  const base = typeof args?.cwd === "string" && args.cwd.length > 0 ? path.resolve(cwd, args.cwd) : cwd;
2805
2837
  pending.set(toolCallId, {
2838
+ tool: toolName,
2839
+ toolCallId,
2806
2840
  paths: paths.map((target) => path.resolve(base, target)),
2807
2841
  validationCommand,
2808
2842
  verificationCommand,
@@ -2817,7 +2851,16 @@ function createRunEffectsRecorder(cwd) {
2817
2851
  for (const target of effects.paths) failedMutationPaths.add(target);
2818
2852
  return;
2819
2853
  }
2820
- if (effects.opaque) opaqueWriteObserved = true;
2854
+ if (effects.opaque) {
2855
+ const downgrade = {
2856
+ reason: "opaque_tool_succeeded",
2857
+ tool: effects.tool,
2858
+ toolCallId: effects.toolCallId
2859
+ };
2860
+ const recordWasComplete = writeRecordDowngrades.size === 0;
2861
+ writeRecordDowngrades.set(effects.toolCallId, downgrade);
2862
+ if (recordWasComplete) options.onWriteRecordDowngraded?.({ ...downgrade });
2863
+ }
2821
2864
  for (const target of effects.paths) mutatedPaths.add(target);
2822
2865
  if (effects.validationCommand !== null) validationCommands.add(effects.validationCommand);
2823
2866
  if (effects.verificationCommand !== null) verificationCommands.add(effects.verificationCommand);
@@ -2828,7 +2871,8 @@ function createRunEffectsRecorder(cwd) {
2828
2871
  failedMutationPaths: new Set([...failedMutationPaths].filter((target) => !mutatedPaths.has(target))),
2829
2872
  validationCommands: new Set(validationCommands),
2830
2873
  verificationCommands: new Set(verificationCommands),
2831
- writeRecordComplete: !opaqueWriteObserved
2874
+ writeRecordComplete: writeRecordDowngrades.size === 0,
2875
+ writeRecordDowngrades: [...writeRecordDowngrades.values()].map((entry) => ({ ...entry }))
2832
2876
  };
2833
2877
  }
2834
2878
  };
@@ -4395,12 +4439,14 @@ function agentRoleReadinessReport(entries) {
4395
4439
 
4396
4440
  export {
4397
4441
  RESPONSE_SCHEMA_RUNTIME_ID,
4442
+ responseSchemaDialectFor,
4398
4443
  runtimeSpeaksResponseSchemaDialect,
4399
4444
  responseSchemaConflictsWithTools,
4400
4445
  UnsupportedResponseSchemaError,
4401
4446
  isResponseSchemaRejection,
4402
4447
  redactSecretString,
4403
4448
  redactToolArgs,
4449
+ sanitizeMultilineDisplayText,
4404
4450
  sanitizeCallTargetText,
4405
4451
  describeCallAction,
4406
4452
  describeCallTarget,
@@ -4476,4 +4522,4 @@ export {
4476
4522
  DISPATCH_BRIEFING_MAX_BYTES,
4477
4523
  validateJobSpec
4478
4524
  };
4479
- //# sourceMappingURL=chunk-A3WNZD3P.js.map
4525
+ //# sourceMappingURL=chunk-4H6ULJ3H.js.map
@@ -1,11 +1,11 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  verifyTool
4
- } from "./chunk-GU2UIAFZ.js";
4
+ } from "./chunk-NQ6UCCOD.js";
5
5
  import {
6
6
  discoverDeclaredChecksAtRoot,
7
7
  discoverDeclaredProjectEntriesAtRoot
8
- } from "./chunk-VAWNZU7Z.js";
8
+ } from "./chunk-P3JGPQFL.js";
9
9
  import {
10
10
  parseTomlDocument,
11
11
  tomlTableAt
@@ -960,4 +960,4 @@ export {
960
960
  previewVerifierDraft,
961
961
  runVerifierAuthoringWorkflow
962
962
  };
963
- //# sourceMappingURL=chunk-TB5666IT.js.map
963
+ //# sourceMappingURL=chunk-4LJX2PUC.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-IWHMRKLL.js";
5
5
  import {
6
6
  DEFAULT_SETTINGS_YAML
7
- } from "./chunk-4DGYLA73.js";
7
+ } from "./chunk-XDOQXGFO.js";
8
8
  import {
9
9
  clioCacheDir,
10
10
  clioConfigDir,
@@ -143,4 +143,4 @@ function enforceHomePrefixGuard() {
143
143
  export {
144
144
  initializeClioHome
145
145
  };
146
- //# sourceMappingURL=chunk-XWSF374K.js.map
146
+ //# sourceMappingURL=chunk-56KB5IJP.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-CGKSTWHD.js";
8
8
  import {
9
9
  StringEnum
10
- } from "./chunk-FCSXB6T2.js";
10
+ } from "./chunk-UOSL25KY.js";
11
11
  import {
12
12
  init_esm_shims
13
13
  } from "./chunk-3R73A4XB.js";
@@ -32,4 +32,4 @@ var contextToolSurface = {
32
32
  export {
33
33
  contextToolSurface
34
34
  };
35
- //# sourceMappingURL=chunk-SPULKLCF.js.map
35
+ //# sourceMappingURL=chunk-5DQRIYDZ.js.map
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-I4HZDVNP.js";
23
23
  import {
24
24
  atomicWrite
25
- } from "./chunk-3BINW3FP.js";
25
+ } from "./chunk-KV2AOLDF.js";
26
26
  import {
27
27
  AI_AGENT_NAME,
28
28
  withClioAgentEnvironment
@@ -43,7 +43,7 @@ init_esm_shims();
43
43
  import { execFile } from "node:child_process";
44
44
  import { existsSync, readFileSync } from "node:fs";
45
45
  import { join as join2 } from "node:path";
46
- import { performance } from "node:perf_hooks";
46
+ import { performance as performance2 } from "node:perf_hooks";
47
47
 
48
48
  // src/domains/dispatch/route-facts.ts
49
49
  init_esm_shims();
@@ -148,6 +148,7 @@ import { spawn as spawn2 } from "node:child_process";
148
148
  init_esm_shims();
149
149
  import { spawn } from "node:child_process";
150
150
  import { join } from "node:path";
151
+ import { performance } from "node:perf_hooks";
151
152
 
152
153
  // src/domains/dispatch/worker-protocol.ts
153
154
  init_esm_shims();
@@ -300,6 +301,7 @@ function spawnWorkerProcess(command, args, spec, opts) {
300
301
  const shutdownGraceMs = opts?.shutdownGraceMs ?? DEFAULT_SHUTDOWN_GRACE_MS;
301
302
  const attestationGraceMs = opts?.attestationGraceMs ?? DEFAULT_ATTESTATION_GRACE_MS;
302
303
  const now = opts?.now ?? Date.now;
304
+ const monotonicNow = opts?.monotonicNow ?? (() => performance.now());
303
305
  const approved = opts?.approvedIdentity ?? approvedIdentityForSpec(spec);
304
306
  const child = spawn(command, [...args], {
305
307
  stdio: ["pipe", "pipe", "pipe"],
@@ -310,7 +312,17 @@ function spawnWorkerProcess(command, args, spec, opts) {
310
312
  detached: true
311
313
  });
312
314
  const pid = child.pid ?? null;
313
- const heartbeatAt = { current: now() };
315
+ const heartbeatWallAnchor = now();
316
+ const heartbeatMonotonicAnchor = monotonicNow();
317
+ const heartbeatAt = {
318
+ current: heartbeatWallAnchor,
319
+ monotonic: heartbeatMonotonicAnchor
320
+ };
321
+ const stampHeartbeat = () => {
322
+ const stamp = monotonicNow();
323
+ heartbeatAt.monotonic = stamp;
324
+ heartbeatAt.current = heartbeatWallAnchor + (stamp - heartbeatMonotonicAnchor);
325
+ };
314
326
  const queue = createBoundedEventQueue();
315
327
  const waiters = [];
316
328
  let finished = false;
@@ -335,7 +347,7 @@ function spawnWorkerProcess(command, args, spec, opts) {
335
347
  };
336
348
  }
337
349
  function push(value) {
338
- heartbeatAt.current = now();
350
+ stampHeartbeat();
339
351
  const w = waiters.shift();
340
352
  if (w) {
341
353
  w({ value, done: false });
@@ -445,7 +457,7 @@ function spawnWorkerProcess(command, args, spec, opts) {
445
457
  if (!announceAccepted) failAttestation(`Invalid worker attestation: ${frame.reason}`);
446
458
  return;
447
459
  }
448
- heartbeatAt.current = now();
460
+ stampHeartbeat();
449
461
  if (frame.value.kind === "announce") {
450
462
  if (announceAccepted || announceFailed) return;
451
463
  const verdict = verifyWorkerAttestation(frame.value.attestation, approved);
@@ -856,9 +868,9 @@ async function runFleetNodePreflight(node, projectRoot, options) {
856
868
  resources: null
857
869
  };
858
870
  const script = buildPreflightScript(node, projectRoot, targets);
859
- const probeStartedAt = performance.now();
871
+ const probeStartedAt = performance2.now();
860
872
  const result = await runSsh(sshBinary, buildSshArgs(node, script), timeoutMs);
861
- const probeDurationMs = Math.round(performance.now() - probeStartedAt);
873
+ const probeDurationMs = Math.round(performance2.now() - probeStartedAt);
862
874
  if (!result.stdout.includes(PREFLIGHT_MARKER)) {
863
875
  const stderr = result.stderr.trim().split("\n").slice(-1)[0] ?? "";
864
876
  record.detail = `unreachable (ssh exit ${result.code}${stderr.length > 0 ? `: ${stderr}` : ""})`;
@@ -921,4 +933,4 @@ export {
921
933
  routeFactVerdict,
922
934
  runFleetNodePreflight
923
935
  };
924
- //# sourceMappingURL=chunk-2HEJ2F35.js.map
936
+ //# sourceMappingURL=chunk-5HFBWUMU.js.map
@@ -1,22 +1,26 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
+ appendOutOfTurnUsageRow,
3
4
  readEvidenceIndex,
4
5
  writeEvidenceIndexRowQueued
5
- } from "./chunk-GWS3VEIW.js";
6
+ } from "./chunk-FWDFM5ZU.js";
6
7
  import {
7
8
  createDispatchTraceMirror,
8
9
  traceDatabasePath
9
- } from "./chunk-HFSBBKSQ.js";
10
+ } from "./chunk-YW7UVM5V.js";
10
11
  import {
11
12
  FAILURE_CAUSE_TAGS,
12
13
  buildEvidence
13
- } from "./chunk-TLQJPP24.js";
14
+ } from "./chunk-TEO2TLVN.js";
15
+ import {
16
+ uncachedPrefillTokens
17
+ } from "./chunk-3DPEIQKN.js";
14
18
  import {
15
19
  normalizeCostProvenance
16
- } from "./chunk-7RFXX52T.js";
20
+ } from "./chunk-MIX5N5AC.js";
17
21
  import {
18
22
  BusChannels
19
- } from "./chunk-TT36MB5S.js";
23
+ } from "./chunk-RKRLDWD3.js";
20
24
  import {
21
25
  clioDataDir,
22
26
  clioStateDir
@@ -135,6 +139,73 @@ function createCostTracker() {
135
139
  };
136
140
  }
137
141
 
142
+ // src/domains/observability/background-memory-usage.ts
143
+ init_esm_shims();
144
+ function backgroundMemoryUsageRow(usage, options) {
145
+ return {
146
+ label: "background-memory",
147
+ sessionId: options.sessionId,
148
+ repoIdentity: options.repoIdentity,
149
+ timestamp: (options.now ?? /* @__PURE__ */ new Date()).toISOString(),
150
+ target: usage.targetId,
151
+ attributedModelId: usage.attributedModelId,
152
+ usage: {
153
+ input: usage.input,
154
+ output: usage.output,
155
+ cacheRead: usage.cacheRead,
156
+ cacheWrite: usage.cacheWrite,
157
+ reasoning: usage.reasoning,
158
+ totalTokens: usage.totalTokens,
159
+ costUsd: usage.costUsd,
160
+ costProvenance: usage.costProvenance
161
+ },
162
+ timing: { durationMs: usage.durationMs },
163
+ ...usage.backend === null ? {} : {
164
+ promptCache: {
165
+ promptTokens: usage.backend.promptTokens,
166
+ cachedTokens: usage.backend.cachedTokens,
167
+ uncachedPrefillTokens: uncachedPrefillTokens({
168
+ promptTokens: usage.backend.promptTokens,
169
+ cachedTokens: usage.backend.cachedTokens,
170
+ predictedTokens: 0,
171
+ promptMs: usage.backend.promptMs,
172
+ predictedMs: 0,
173
+ source: "llamacpp-timings"
174
+ }),
175
+ promptMs: usage.backend.promptMs,
176
+ source: usage.backend.source
177
+ }
178
+ }
179
+ };
180
+ }
181
+ function recordBackgroundMemoryStep(input) {
182
+ input.observability?.recordTokens(
183
+ input.usage.targetId,
184
+ input.usage.attributedModelId,
185
+ input.usage.totalTokens,
186
+ input.usage.costUsd,
187
+ {
188
+ input: input.usage.input,
189
+ output: input.usage.output,
190
+ cacheRead: input.usage.cacheRead,
191
+ cacheWrite: input.usage.cacheWrite,
192
+ reasoningTokens: input.usage.reasoning,
193
+ totalTokens: input.usage.totalTokens,
194
+ apiCalls: 1
195
+ },
196
+ input.usage.costProvenance,
197
+ void 0,
198
+ "background-memory"
199
+ );
200
+ const row = backgroundMemoryUsageRow(input.usage, {
201
+ sessionId: input.sessionId,
202
+ repoIdentity: input.repoIdentity,
203
+ ...input.now === void 0 ? {} : { now: input.now }
204
+ });
205
+ (input.appendRow ?? appendOutOfTurnUsageRow)(input.stateDir, row);
206
+ return row;
207
+ }
208
+
138
209
  // src/domains/observability/index.ts
139
210
  init_esm_shims();
140
211
 
@@ -799,7 +870,8 @@ export {
799
870
  formatCostAggregate,
800
871
  COST_NOT_MEASURED,
801
872
  costAggregateForAmount,
873
+ recordBackgroundMemoryStep,
802
874
  ObservabilityDomainModule,
803
875
  createObservabilityDomainModule
804
876
  };
805
- //# sourceMappingURL=chunk-WNIJTQQK.js.map
877
+ //# sourceMappingURL=chunk-5PVQ4SRS.js.map