@iowarp/clio-coder 0.3.4 → 0.3.6

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 (265) hide show
  1. package/CHANGELOG.md +37 -2
  2. package/CONTRIBUTING.md +6 -6
  3. package/README.md +2 -2
  4. package/dist/{acp-S5R4RR5B.js → acp-2BEHC4DL.js} +4 -4
  5. package/dist/{agents-P6DMMVZY.js → agents-LNNFTM53.js} +13 -11
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-2XCZLPKS.js → auth-KXXFI2VS.js} +6 -6
  8. package/dist/{chunk-YCWGATWI.js → chunk-24I7BN55.js} +2 -2
  9. package/dist/{chunk-EKMEHE4H.js → chunk-33YXPOE3.js} +2 -3
  10. package/dist/chunk-3BPUFZDL.js +37 -0
  11. package/dist/{chunk-WPQLXFOZ.js → chunk-43AOLP7E.js} +2 -2
  12. package/dist/{chunk-N4CZJQRK.js → chunk-5JGRAMKL.js} +4 -4
  13. package/dist/{chunk-BRXQQJFP.js → chunk-6US73PDB.js} +568 -47
  14. package/dist/{chunk-K6WL7QZT.js → chunk-6XXKFVSN.js} +2 -2
  15. package/dist/{chunk-QQK64KLB.js → chunk-CJUB2JJ2.js} +138 -20
  16. package/dist/{chunk-HV5X7OR2.js → chunk-CKXWIANG.js} +12 -12
  17. package/dist/{chunk-UZHIZC5S.js → chunk-CYQKWTG3.js} +61 -76
  18. package/dist/{chunk-QWU7ZBO7.js → chunk-DJVECN66.js} +204 -45
  19. package/dist/{chunk-ZWMF7253.js → chunk-E2ER4LJF.js} +304 -9
  20. package/dist/{chunk-7RXG6QRZ.js → chunk-EKY57CSP.js} +2 -75
  21. package/dist/{chunk-EDRHSCIE.js → chunk-EYPA3EGJ.js} +10 -2
  22. package/dist/{chunk-TTNYS3EA.js → chunk-G7MUEIGA.js} +1 -1
  23. package/dist/{chunk-BPGS2WCQ.js → chunk-GEYXPTRF.js} +2 -1
  24. package/dist/{chunk-BEY543CS.js → chunk-GOXNB3AO.js} +5 -2
  25. package/dist/{chunk-G4BMMOKF.js → chunk-HVDIIIQW.js} +2 -2
  26. package/dist/chunk-HWUFFB6L.js +83 -0
  27. package/dist/{chunk-35MKKU5R.js → chunk-K7T3E2SR.js} +15 -8
  28. package/dist/{chunk-VAWWTKDP.js → chunk-KHSFENX2.js} +2 -2
  29. package/dist/chunk-LCGCVYZ4.js +57 -0
  30. package/dist/{chunk-X6COSD2O.js → chunk-LYF7OHWH.js} +41 -14
  31. package/dist/{chunk-POHLU5DW.js → chunk-M6L6IDJG.js} +3 -3
  32. package/dist/{chunk-X4RCMKVQ.js → chunk-NDINPTJ4.js} +2 -2
  33. package/dist/{chunk-5M54SPOL.js → chunk-ODFEOB4F.js} +161 -5
  34. package/dist/{chunk-3JLKSKD7.js → chunk-OH3TOQTB.js} +5 -1
  35. package/dist/{chunk-MEQ45TQ4.js → chunk-PBTHKCPN.js} +18 -4
  36. package/dist/{chunk-ED4KHGC3.js → chunk-PPAMZ32Z.js} +9 -2
  37. package/dist/{chunk-QQL5RT5M.js → chunk-QM3F2GKX.js} +94 -36
  38. package/dist/{chunk-A2GZF7DC.js → chunk-QNQHSOLF.js} +4 -4
  39. package/dist/{chunk-KRPY7NTG.js → chunk-R46L2BIR.js} +3 -3
  40. package/dist/{chunk-BP4OYD6A.js → chunk-RY3LY4J5.js} +20 -2
  41. package/dist/{chunk-34475P3I.js → chunk-TSHXZTOQ.js} +5 -4
  42. package/dist/{chunk-VJWL6YS5.js → chunk-UUVG37B4.js} +2 -2
  43. package/dist/{chunk-2TZWSW76.js → chunk-WHGPSPT5.js} +2 -2
  44. package/dist/{chunk-TW3WDMVS.js → chunk-WHJYKASB.js} +2 -2
  45. package/dist/{chunk-YHZX5GEU.js → chunk-XAKHZX5N.js} +2 -2
  46. package/dist/{chunk-HXG4IURW.js → chunk-XE2VEJHX.js} +2 -2
  47. package/dist/{chunk-3HZ5RWN2.js → chunk-XF5N4U5A.js} +7 -6
  48. package/dist/{chunk-ZYKPLLNQ.js → chunk-XXQNGV4M.js} +590 -32
  49. package/dist/{chunk-4JUF2NNX.js → chunk-XYDYPRZI.js} +4 -4
  50. package/dist/{chunk-VMNQ6OZA.js → chunk-ZRGEBJ4T.js} +971 -794
  51. package/dist/{chunk-2LZI5CAG.js → chunk-ZXF4XRKW.js} +75 -33
  52. package/dist/{chunk-VSNATDE6.js → chunk-ZZMN5OM4.js} +2 -2
  53. package/dist/cli/index.js +31 -31
  54. package/dist/{clio-J5JIOIDS.js → clio-M2KGYUFZ.js} +2 -2
  55. package/dist/{code-nav-AXCXSBHX.js → code-nav-GQNL7XA6.js} +5 -5
  56. package/dist/codewiki/build-worker.js +4 -4
  57. package/dist/{components-KELWS457.js → components-5TTYYX6G.js} +3 -3
  58. package/dist/{config-OEBMIN2U.js → config-XUUYQIWO.js} +27 -25
  59. package/dist/{configure-PUQOSIXQ.js → configure-IHJ7YOMV.js} +7 -7
  60. package/dist/{context-URSXPBCK.js → context-74JLXAWD.js} +12 -12
  61. package/dist/{context-MGSE4Z2T.js → context-75MIWW3U.js} +24 -22
  62. package/dist/{context-EKDCKUUZ.js → context-ZQ7SIFJV.js} +8 -7
  63. package/dist/{context-clear-KDAJRNUK.js → context-clear-GYKWNUML.js} +24 -22
  64. package/dist/{context-index-BZ4UYMTC.js → context-index-SSR5ECNE.js} +3 -3
  65. package/dist/{context-working-set-SBKMPPI2.js → context-working-set-UX5KEP4J.js} +11 -10
  66. package/dist/{dispatch-runner-MSWN72NK.js → dispatch-runner-GIJBHNFL.js} +21 -20
  67. package/dist/{docs-2C2LTVT2.js → docs-6FZSCG5B.js} +3 -3
  68. package/dist/{doctor-7BSE27PJ.js → doctor-SVJ5BZCW.js} +4 -4
  69. package/dist/{eval-IZGDOO4H.js → eval-CG6LLBLD.js} +47 -232
  70. package/dist/{evidence-SR7WXB5B.js → evidence-ZYFIEN42.js} +19 -18
  71. package/dist/{evolve-K7VE2CBX.js → evolve-QGEXEMDW.js} +19 -18
  72. package/dist/{extensions-QVDOHDGJ.js → extensions-ADGNCJJD.js} +3 -3
  73. package/dist/{fleet-7XMJNQNF.js → fleet-S5R4ZOQY.js} +49 -30
  74. package/dist/{fleet-preflight-AQNAH644.js → fleet-preflight-BHSNPBMH.js} +2 -2
  75. package/dist/{init-JGNPAYXT.js → init-5DRU55YR.js} +31 -29
  76. package/dist/memory-7YKKR6UC.js +467 -0
  77. package/dist/{models-ZMMLFJNN.js → models-ZPOLRU2C.js} +10 -10
  78. package/dist/{monitor-2F3T5KHP.js → monitor-US5F5YGZ.js} +33 -18
  79. package/dist/{orchestrator-ORHT43JB.js → orchestrator-E2AL4T5N.js} +1092 -659
  80. package/dist/{paths-UXLN5YYZ.js → paths-E7KYAQWE.js} +3 -3
  81. package/dist/{reset-NXGTYNUO.js → reset-KZ652EK6.js} +3 -3
  82. package/dist/{run-RF4WJGMT.js → run-SRNBKDWD.js} +52 -40
  83. package/dist/{share-UT3W6E4M.js → share-CGZE33UP.js} +3 -3
  84. package/dist/{skills-PSACKC5Q.js → skills-S2X4DLY5.js} +4 -4
  85. package/dist/{skills-eval-WJSI55RZ.js → skills-eval-W2GGIC4R.js} +19 -18
  86. package/dist/{targets-PIIRAOYS.js → targets-54SWINWB.js} +14 -12
  87. package/dist/{terminal-lease-ULWXWNVY.js → terminal-lease-SAIF2OGY.js} +5 -4
  88. package/dist/{uninstall-FZCQCDKC.js → uninstall-BVLWXKBT.js} +3 -3
  89. package/dist/{upgrade-346TZ6AV.js → upgrade-JKAR27XC.js} +8 -8
  90. package/dist/{usage-6KKXR32N.js → usage-MSAWCLX4.js} +60 -27
  91. package/dist/{verifiers-4UUM6TEE.js → verifiers-NCBTHHN2.js} +60 -54
  92. package/dist/{wiki-generate-7STOCIFZ.js → wiki-generate-GUSOQ6ZP.js} +30 -28
  93. package/dist/worker/entry.js +69 -58
  94. package/dist/{workspace-G4ZWUIPR.js → workspace-ZJ6BFM3Q.js} +4 -4
  95. package/docs/README.md +3 -3
  96. package/docs/acp.md +1 -1
  97. package/docs/alcf-provider.md +1 -1
  98. package/docs/architecture.md +2 -2
  99. package/docs/artifact-placement.md +1 -2
  100. package/docs/artifact-versions.md +1 -1
  101. package/docs/built-in-agents.md +1 -1
  102. package/docs/capacity-and-scheduling.md +1 -1
  103. package/docs/commands-and-modes.md +9 -7
  104. package/docs/configuration-and-targets.md +12 -1
  105. package/docs/context-engine.md +4 -2
  106. package/docs/context-working-set.md +4 -4
  107. package/docs/development-pipeline.md +1 -1
  108. package/docs/documentation-coverage.md +3 -3
  109. package/docs/documentation-guide.md +2 -2
  110. package/docs/eval-runner.md +1 -1
  111. package/docs/evals-internal.md +4 -45
  112. package/docs/evidence-and-memory.md +67 -7
  113. package/docs/evolution.md +1 -1
  114. package/docs/exit-codes-and-output.md +1 -1
  115. package/docs/extensions-and-sharing.md +2 -2
  116. package/docs/fleet-dispatch.md +28 -2
  117. package/docs/installation-and-lifecycle.md +2 -2
  118. package/docs/middleware-and-components.md +19 -2
  119. package/docs/model-catalog.md +1 -1
  120. package/docs/observability.md +3 -3
  121. package/docs/proactive-memory.md +26 -16
  122. package/docs/prompt-envelope-and-tools.md +4 -2
  123. package/docs/provider-adapter-cookbook.md +1 -1
  124. package/docs/release-cut-checklist.md +38 -35
  125. package/docs/safety-model.md +29 -7
  126. package/docs/scientific-validation.md +3 -3
  127. package/docs/session-lifecycle.md +1 -1
  128. package/docs/skills-marketplace.md +1 -1
  129. package/docs/tool-usage.md +2 -2
  130. package/docs/trace-store.md +1 -1
  131. package/docs/troubleshooting.md +1 -1
  132. package/docs/tui-design.md +38 -4
  133. package/docs/worker-dispatch-mechanics.md +1 -1
  134. package/package.json +7 -4
  135. package/src/cli/agents.ts +2 -3
  136. package/src/cli/argv.ts +14 -1
  137. package/src/cli/fleet.ts +15 -0
  138. package/src/cli/index.ts +1 -1
  139. package/src/cli/memory.ts +272 -10
  140. package/src/cli/modes/json-stream.ts +2 -2
  141. package/src/cli/modes/print.ts +12 -1
  142. package/src/cli/run.ts +22 -2
  143. package/src/cli/targets.ts +12 -3
  144. package/src/cli/usage.ts +55 -7
  145. package/src/core/bus-events.ts +3 -0
  146. package/src/core/response-model-id.ts +134 -0
  147. package/src/core/toml.ts +62 -0
  148. package/src/core/workspace-files.ts +0 -1
  149. package/src/domains/agents/builtins/architect.md +1 -1
  150. package/src/domains/agents/catalog.ts +5 -4
  151. package/src/domains/agents/recipe.ts +54 -14
  152. package/src/domains/agents/result-contract.ts +7 -4
  153. package/src/domains/context/bootstrap.ts +36 -27
  154. package/src/domains/context/project-metadata.ts +19 -63
  155. package/src/domains/context/prompt-context.ts +8 -0
  156. package/src/domains/context/working-set/policies/index.ts +3 -4
  157. package/src/domains/dispatch/budget-envelope.ts +396 -0
  158. package/src/domains/dispatch/contract.ts +2 -0
  159. package/src/domains/dispatch/extension.ts +81 -27
  160. package/src/domains/dispatch/orphan-recovery.ts +1 -0
  161. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  162. package/src/domains/dispatch/state.ts +1 -0
  163. package/src/domains/dispatch/types.ts +10 -3
  164. package/src/domains/dispatch/validation.ts +14 -0
  165. package/src/domains/dispatch/worker-spawn.ts +14 -3
  166. package/src/domains/eval/metrics/evidence.ts +0 -116
  167. package/src/domains/eval/metrics/invariants.ts +1 -1
  168. package/src/domains/eval/runners/clio-run.ts +1 -10
  169. package/src/domains/eval/runners/external-command.ts +2 -29
  170. package/src/domains/eval/schema/suite.ts +0 -7
  171. package/src/domains/eval/suites/run.ts +1 -7
  172. package/src/domains/memory/index.ts +22 -0
  173. package/src/domains/memory/operations.ts +58 -1
  174. package/src/domains/memory/promotion.ts +281 -0
  175. package/src/domains/memory/prompt-section.ts +25 -5
  176. package/src/domains/memory/proposal.ts +51 -7
  177. package/src/domains/memory/task-bank.ts +3 -2
  178. package/src/domains/memory/task-memory-handoff.ts +181 -24
  179. package/src/domains/memory/task-memory-policy.ts +3 -1
  180. package/src/domains/memory/types.ts +37 -0
  181. package/src/domains/memory/validate.ts +178 -0
  182. package/src/domains/middleware/memory-intervention.ts +35 -25
  183. package/src/domains/middleware/runtime.ts +6 -0
  184. package/src/domains/middleware/skills-reminder.ts +19 -4
  185. package/src/domains/middleware/stalled-turn.ts +43 -1
  186. package/src/domains/middleware/types.ts +10 -0
  187. package/src/domains/observability/contract.ts +6 -1
  188. package/src/domains/observability/cost.ts +20 -4
  189. package/src/domains/observability/extension.ts +2 -2
  190. package/src/domains/providers/index.ts +3 -0
  191. package/src/domains/providers/model-discovery.ts +9 -0
  192. package/src/domains/providers/runtime-resolution.ts +38 -1
  193. package/src/domains/providers/runtimes/common/probe-helpers.ts +97 -16
  194. package/src/domains/providers/types/context-window-slots.ts +18 -0
  195. package/src/domains/providers/types/runtime-descriptor.ts +3 -1
  196. package/src/domains/safety/call-target.ts +211 -14
  197. package/src/domains/safety/decision-presentation.ts +268 -0
  198. package/src/domains/safety/redaction.ts +73 -0
  199. package/src/domains/session/context-ledger.ts +10 -1
  200. package/src/domains/session/decision-board.ts +4 -0
  201. package/src/domains/session/entries.ts +3 -0
  202. package/src/domains/session/history.ts +68 -19
  203. package/src/domains/session/usage.ts +24 -7
  204. package/src/engine/acp/event-mapper.ts +7 -0
  205. package/src/engine/acp/server.ts +29 -2
  206. package/src/engine/apis/lmstudio.ts +25 -4
  207. package/src/engine/apis/openai-completions.ts +147 -22
  208. package/src/engine/claude/sdk-runtime.ts +8 -2
  209. package/src/engine/claude/tool-safety.ts +13 -0
  210. package/src/engine/loop-guard.ts +27 -3
  211. package/src/engine/worker-events.ts +4 -3
  212. package/src/engine/worker-runtime.ts +59 -54
  213. package/src/entry/orchestrator.ts +18 -1
  214. package/src/interactive/chat-loop-messages.ts +22 -0
  215. package/src/interactive/chat-loop.ts +13 -0
  216. package/src/interactive/chat-renderer.ts +19 -3
  217. package/src/interactive/clio-editor.ts +44 -7
  218. package/src/interactive/context-overlay.ts +43 -5
  219. package/src/interactive/cost-overlay.ts +39 -8
  220. package/src/interactive/dispatch-board.ts +212 -35
  221. package/src/interactive/footer/widgets.ts +13 -0
  222. package/src/interactive/interactive-application.ts +6 -1
  223. package/src/interactive/interactive-input-runtime.ts +11 -1
  224. package/src/interactive/interactive-presentation.ts +11 -1
  225. package/src/interactive/memory-overlay.ts +89 -4
  226. package/src/interactive/overlay-ask-user-lifecycle.ts +1 -1
  227. package/src/interactive/overlay-frame.ts +5 -2
  228. package/src/interactive/overlay-general-openers.ts +40 -1
  229. package/src/interactive/overlay-key-routing.ts +41 -1
  230. package/src/interactive/overlay-lifecycle.ts +11 -4
  231. package/src/interactive/overlay-permission-lifecycle.ts +23 -8
  232. package/src/interactive/overlay-transitions.ts +11 -0
  233. package/src/interactive/overlays/ask-user.ts +74 -30
  234. package/src/interactive/overlays/decisions.ts +3 -1
  235. package/src/interactive/permission-hint.ts +35 -0
  236. package/src/interactive/permission-overlay.ts +95 -45
  237. package/src/interactive/renderers/tool-execution.ts +19 -49
  238. package/src/interactive/session-last-turn.ts +8 -1
  239. package/src/interactive/session-usage-reseed.ts +36 -10
  240. package/src/interactive/slash-commands.ts +2 -2
  241. package/src/interactive/status/summary.ts +5 -0
  242. package/src/interactive/status/types.ts +5 -0
  243. package/src/interactive/terminal-lease.ts +1 -0
  244. package/src/interactive/turn-context.ts +96 -23
  245. package/src/interactive/turn-middleware.ts +1 -0
  246. package/src/interactive/turn-runtime.ts +37 -8
  247. package/src/interactive/turn-state.ts +3 -0
  248. package/src/interactive/worker-progress.ts +440 -0
  249. package/src/interactive/worker-stream.ts +51 -110
  250. package/src/tools/agent-tools.ts +28 -3
  251. package/src/tools/ask-user.ts +21 -1
  252. package/src/tools/context/index.ts +2 -2
  253. package/src/tools/dispatch-arguments.ts +8 -0
  254. package/src/tools/dispatch-event-text.ts +19 -0
  255. package/src/tools/dispatch.ts +24 -1
  256. package/src/tools/monitor.ts +15 -0
  257. package/src/tools/registry.ts +15 -5
  258. package/src/tools/result-disposition.ts +156 -0
  259. package/src/tools/result-shaping.ts +59 -1
  260. package/src/tools/verify/authoring.ts +55 -54
  261. package/src/tools/worker-evidence.ts +19 -0
  262. package/src/worker/spec-contract.ts +43 -3
  263. package/dist/chunk-EFADSJET.js +0 -18
  264. package/dist/memory-4ALKDJ4Q.js +0 -246
  265. package/src/domains/eval/metrics/chaos-stream.ts +0 -93
@@ -7,16 +7,21 @@ import {
7
7
  TASK_MEMORY_POLICY_DEFAULT_TIMEOUT_MS,
8
8
  runTaskMemoryPolicy,
9
9
  taskMemoryBankDelta
10
- } from "./chunk-2TZWSW76.js";
10
+ } from "./chunk-WHGPSPT5.js";
11
11
  import {
12
12
  isTerminalRunEnvelope
13
- } from "./chunk-ZYKPLLNQ.js";
13
+ } from "./chunk-XXQNGV4M.js";
14
14
  import {
15
15
  taskBoardCounts
16
- } from "./chunk-WPQLXFOZ.js";
16
+ } from "./chunk-43AOLP7E.js";
17
17
  import {
18
- SKILL_SUGGESTION_ANCHOR
19
- } from "./chunk-BEY543CS.js";
18
+ SKILL_SUGGESTION_ANCHOR,
19
+ SKILL_SUGGESTION_PREFIX
20
+ } from "./chunk-GOXNB3AO.js";
21
+ import {
22
+ legacyToolResultDigest,
23
+ sanitizeToolResultDigest
24
+ } from "./chunk-ODFEOB4F.js";
20
25
  import {
21
26
  ToolNames
22
27
  } from "./chunk-CGKSTWHD.js";
@@ -26,7 +31,7 @@ import {
26
31
  } from "./chunk-VEZEGCGW.js";
27
32
  import {
28
33
  ceilChars
29
- } from "./chunk-BPGS2WCQ.js";
34
+ } from "./chunk-GEYXPTRF.js";
30
35
  import {
31
36
  require_dist
32
37
  } from "./chunk-APJ265NV.js";
@@ -63,6 +68,10 @@ function metadataNumber(input, key) {
63
68
  const value = input.metadata?.[key];
64
69
  return typeof value === "number" && Number.isFinite(value) ? value : null;
65
70
  }
71
+ function metadataString(input, key) {
72
+ const value = input.metadata?.[key];
73
+ return typeof value === "string" ? value : null;
74
+ }
66
75
  function isMiddlewareHook(value) {
67
76
  return MIDDLEWARE_HOOKS.includes(value);
68
77
  }
@@ -189,6 +198,7 @@ init_esm_shims();
189
198
  init_esm_shims();
190
199
  var STALLED_TURN_REGISTRATION_ID = "nudge.stalled-turn";
191
200
  var STALLED_TURN_REQUEST_CONTINUATION_MESSAGE = "You ended your turn after announcing an action without executing it: no tools were called. Continue now and perform the announced action, or state plainly that you are finished and waiting for the user.";
201
+ var SKILL_SUGGESTION_WAIT_CONTINUATION_MESSAGE = "You ended your turn on a skill suggestion without doing the task. The suggestion line has already made the offer and only the operator loads a skill, so nothing is needed from them before you proceed. Continue the task now without the skill.";
192
202
  var INTENT_PATTERN = /\b(let me|i['’]ll|i will|i am going to|i['’]m going to|now i|next i|let's|let us)\b/i;
193
203
  var CONCRETE_ACTION_STEMS = [
194
204
  "add",
@@ -288,6 +298,24 @@ var STALLED_TURN_RULE_DEFINITION = {
288
298
  effects: [{ kind: "request_continuation", message: STALLED_TURN_REQUEST_CONTINUATION_MESSAGE }],
289
299
  predicate: shouldRequestStalledTurnContinuation
290
300
  };
301
+ var SKILL_WAIT_PATTERN = /\/skill\b|\bskills?\b|\bskip\b/i;
302
+ function isSkillSuggestionWait(input) {
303
+ if (input.hook !== "turn_end") return false;
304
+ if (!isNormalStopReason(input.metadata?.stopReason)) return false;
305
+ const text = input.text ?? "";
306
+ if (!text.includes(SKILL_SUGGESTION_PREFIX)) return false;
307
+ const toolNames = metadataString(input, "turnToolNames");
308
+ if (toolNames === null) {
309
+ if ((metadataNumber(input, "turnToolCalls") ?? 0) !== 0) return false;
310
+ } else if (toolNames.split(",").filter((name) => name.length > 0).some((name) => name !== ToolNames.Context)) {
311
+ return false;
312
+ }
313
+ const lastLine = lastNonEmptyLine(text);
314
+ if (lastLine === null) return false;
315
+ const finalSentence = lastSentence(lastLine);
316
+ if (finalSentence.length === 0) return false;
317
+ return SKILL_WAIT_PATTERN.test(finalSentence) || isQuestion(finalSentence) || LET_ME_KNOW_PATTERN.test(finalSentence);
318
+ }
291
319
  function shouldRequestStalledTurnContinuation(input) {
292
320
  if (input.hook !== "turn_end") return false;
293
321
  if (input.metadata?.turnToolCalls !== 0) return false;
@@ -551,6 +579,12 @@ function cloneHookInput(input) {
551
579
  if (input.metadata !== void 0) cloned.metadata = { ...input.metadata };
552
580
  if (input.toolArgs !== void 0) cloned.toolArgs = { ...input.toolArgs };
553
581
  if (input.toolResultDetails !== void 0) cloned.toolResultDetails = { ...input.toolResultDetails };
582
+ if (input.toolResultDigest !== void 0) {
583
+ cloned.toolResultDigest = {
584
+ text: input.toolResultDigest.text,
585
+ provenance: { ...input.toolResultDigest.provenance }
586
+ };
587
+ }
554
588
  if (input.text !== void 0) cloned.text = input.text.slice(0, MIDDLEWARE_HOOK_TEXT_MAX_CHARS);
555
589
  return cloned;
556
590
  }
@@ -1351,7 +1385,6 @@ var MEMORY_INTERVENTION_DEFAULT_WINDOW_STEPS = 8;
1351
1385
  var MEMORY_INTERVENTION_DEFAULT_MAX_TOKENS = 400;
1352
1386
  var MEMORY_INTERVENTION_DEFAULT_EVERY_N_TOOLS = 10;
1353
1387
  var MEMORY_INTERVENTION_ACTIVITY_LIMIT = 20;
1354
- var RESULT_DIGEST_MAX_CHARS = 240;
1355
1388
  var CALL_DESCRIPTION_MAX_CHARS = 180;
1356
1389
  var NO_EFFECTS = [];
1357
1390
  function createMemoryInterventionRegistration(deps) {
@@ -1361,7 +1394,7 @@ function createMemoryInterventionRegistration(deps) {
1361
1394
  let toolStep = 0;
1362
1395
  let lastTurnEndStep = 0;
1363
1396
  let reactivateAfterCompaction = false;
1364
- let lastInjectedFingerprint = null;
1397
+ let lastInjectedOperationFingerprint = null;
1365
1398
  let currentTask = "(current task unavailable)";
1366
1399
  let toolsSinceMemoryStep = 0;
1367
1400
  let consecutiveErrors = 0;
@@ -1630,12 +1663,12 @@ function createMemoryInterventionRegistration(deps) {
1630
1663
  function observeBeforeTool(input) {
1631
1664
  const prepared = prepareToolStep(input);
1632
1665
  if (prepared === null) return;
1633
- setBounded(pending, pendingKey(input, prepared.fingerprint), prepared, settings().windowSteps);
1666
+ setBounded(pending, pendingKey(input, prepared.operationFingerprint), prepared, settings().windowSteps);
1634
1667
  }
1635
1668
  function observeAfterTool(input) {
1636
1669
  const fallback = prepareToolStep(input);
1637
1670
  if (fallback === null) return NO_EFFECTS;
1638
- const key = pendingKey(input, fallback.fingerprint);
1671
+ const key = pendingKey(input, fallback.operationFingerprint);
1639
1672
  const prepared = pending.get(key) ?? fallback;
1640
1673
  pending.delete(key);
1641
1674
  const outcome = input.metadata?.resultKind === "error" ? "error" : "ok";
@@ -1649,11 +1682,13 @@ function createMemoryInterventionRegistration(deps) {
1649
1682
  } else {
1650
1683
  consecutiveErrors = 0;
1651
1684
  }
1685
+ const digest = resultDigest(input, outcome);
1652
1686
  const step = {
1653
1687
  ...prepared,
1654
1688
  step: toolStep,
1655
1689
  outcome,
1656
- resultDigest: resultDigest(input, outcome)
1690
+ resultDigest: digest.text,
1691
+ resultDigestProvenance: digest.provenance
1657
1692
  };
1658
1693
  trajectory.push(step);
1659
1694
  if (trajectory.length > live.windowSteps) trajectory.splice(0, trajectory.length - live.windowSteps);
@@ -1662,19 +1697,19 @@ function createMemoryInterventionRegistration(deps) {
1662
1697
  return annotateRepeatedFailure(step);
1663
1698
  }
1664
1699
  function annotateRepeatedFailure(step) {
1665
- if (annotatedThisTurn.has(step.fingerprint)) return NO_EFFECTS;
1700
+ if (annotatedThisTurn.has(step.operationFingerprint)) return NO_EFFECTS;
1666
1701
  const occurrences = trajectory.filter(
1667
- (candidate) => candidate.outcome === "error" && candidate.fingerprint === step.fingerprint
1702
+ (candidate) => candidate.outcome === "error" && candidate.operationFingerprint === step.operationFingerprint
1668
1703
  ).length;
1669
- const failure = failures.get(step.fingerprint);
1704
+ const failure = failures.get(step.operationFingerprint);
1670
1705
  if (occurrences < 2 || failure === void 0) return NO_EFFECTS;
1671
1706
  const message = boundedReminder(
1672
1707
  `Memory: [${failure.entryId}] you already tried ${failure.callDescription} at step ${failure.firstStep} and it failed with ${failure.errorDigest}. Change the approach rather than repeating it.`,
1673
1708
  settings().maxTokens
1674
1709
  );
1675
1710
  if (message.length === 0) return NO_EFFECTS;
1676
- annotatedThisTurn.add(step.fingerprint);
1677
- lastInjectedFingerprint = step.fingerprint;
1711
+ annotatedThisTurn.add(step.operationFingerprint);
1712
+ lastInjectedOperationFingerprint = step.operationFingerprint;
1678
1713
  lastDecision = "injected";
1679
1714
  rulesInjectedSincePromptedStep = true;
1680
1715
  annotatedSinceTurnEnd = true;
@@ -1683,7 +1718,7 @@ function createMemoryInterventionRegistration(deps) {
1683
1718
  return [{ kind: "annotate_tool_result", message, severity: "warn" }];
1684
1719
  }
1685
1720
  function rememberFailure(step) {
1686
- const previous = failures.get(step.fingerprint);
1721
+ const previous = failures.get(step.operationFingerprint);
1687
1722
  const attempts = (previous?.attempts ?? 0) + 1;
1688
1723
  const firstStep = previous?.firstStep ?? step.step;
1689
1724
  const content = proceduralContent(step.callDescription, attempts, firstStep, step.resultDigest);
@@ -1699,7 +1734,7 @@ function createMemoryInterventionRegistration(deps) {
1699
1734
  }
1700
1735
  setBounded(
1701
1736
  failures,
1702
- step.fingerprint,
1737
+ step.operationFingerprint,
1703
1738
  {
1704
1739
  entryId,
1705
1740
  attempts,
@@ -1714,20 +1749,20 @@ function createMemoryInterventionRegistration(deps) {
1714
1749
  try {
1715
1750
  for (let index = trajectory.length - 1; index >= 0; index -= 1) {
1716
1751
  const step = trajectory[index];
1717
- if (step === void 0 || step.outcome !== "error" || step.step <= lastTurnEndStep || step.fingerprint === lastInjectedFingerprint) {
1752
+ if (step === void 0 || step.outcome !== "error" || step.step <= lastTurnEndStep || step.operationFingerprint === lastInjectedOperationFingerprint) {
1718
1753
  continue;
1719
1754
  }
1720
1755
  const occurrences = trajectory.filter(
1721
- (candidate) => candidate.outcome === "error" && candidate.fingerprint === step.fingerprint
1756
+ (candidate) => candidate.outcome === "error" && candidate.operationFingerprint === step.operationFingerprint
1722
1757
  ).length;
1723
- const failure = failures.get(step.fingerprint);
1758
+ const failure = failures.get(step.operationFingerprint);
1724
1759
  if (occurrences < 2 || failure === void 0) continue;
1725
1760
  const message = boundedReminder(
1726
1761
  `Memory: [${failure.entryId}] you already tried ${failure.callDescription} at step ${failure.firstStep} and it failed with ${failure.errorDigest}.`,
1727
1762
  settings().maxTokens
1728
1763
  );
1729
1764
  if (message.length === 0) return NO_EFFECTS;
1730
- lastInjectedFingerprint = step.fingerprint;
1765
+ lastInjectedOperationFingerprint = step.operationFingerprint;
1731
1766
  lastInjectedMessage = message;
1732
1767
  lastDecision = "injected";
1733
1768
  rulesInjectedSincePromptedStep = true;
@@ -1769,29 +1804,33 @@ function prepareToolStep(input) {
1769
1804
  const canonical = hashToolCall(toolName, input.toolArgs ?? {});
1770
1805
  return {
1771
1806
  toolName,
1772
- fingerprint: createHash2("sha256").update(canonical).digest("hex").slice(0, 16),
1807
+ operationFingerprint: createHash2("sha256").update(canonical).digest("hex").slice(0, 16),
1773
1808
  callDescription: shortText(canonical, CALL_DESCRIPTION_MAX_CHARS)
1774
1809
  };
1775
1810
  }
1776
- function pendingKey(input, fingerprint) {
1777
- return input.toolCallId ?? `anonymous:${fingerprint}`;
1811
+ function pendingKey(input, operationFingerprint) {
1812
+ return input.toolCallId ?? `anonymous:${operationFingerprint}`;
1778
1813
  }
1779
1814
  function resultDigest(input, outcome) {
1815
+ if (input.toolResultDigest !== void 0) return sanitizeToolResultDigest(input.toolResultDigest);
1780
1816
  if (outcome === "error") {
1781
1817
  const metadataMessage = input.metadata?.errorMessage;
1782
1818
  if (typeof metadataMessage === "string" && metadataMessage.trim().length > 0) {
1783
- return shortText(diagnosticLine(metadataMessage), RESULT_DIGEST_MAX_CHARS);
1819
+ return legacyToolResultDigest(diagnosticLine(metadataMessage), { outcome });
1784
1820
  }
1785
1821
  for (const key of ["error", "message"]) {
1786
1822
  const value = input.toolResultDetails?.[key];
1787
1823
  if (typeof value === "string" && value.trim().length > 0) {
1788
- return shortText(diagnosticLine(value), RESULT_DIGEST_MAX_CHARS);
1824
+ return legacyToolResultDigest(diagnosticLine(value), { outcome });
1789
1825
  }
1790
1826
  }
1791
- return "an unknown tool error";
1827
+ return legacyToolResultDigest("", { outcome });
1792
1828
  }
1793
1829
  const resultFingerprint = input.metadata?.resultFingerprint;
1794
- return typeof resultFingerprint === "string" ? `ok result ${resultFingerprint.slice(0, 16)}` : "ok";
1830
+ return legacyToolResultDigest(
1831
+ typeof resultFingerprint === "string" ? `ok result ${resultFingerprint.slice(0, 16)}` : "ok",
1832
+ { outcome }
1833
+ );
1795
1834
  }
1796
1835
  var DIAGNOSTIC_HINT = /\b(error|failed|failure|cannot|unable|expected|refused|denied|missing|not found|timed out|timeout|fatal)\b/iu;
1797
1836
  function diagnosticLine(value) {
@@ -1833,7 +1872,7 @@ init_esm_shims();
1833
1872
  var SKILLS_REMINDER_REGISTRATION_ID = "observer.skills-reminder";
1834
1873
  function skillsReminderMessage(installed, installable = 0) {
1835
1874
  const counts = installable > 0 ? `${installed} installed, ${installable} installable from the marketplace` : `${installed} installed`;
1836
- return `[Skills] ${counts}. Start this task by listing them with context(scope="skills") and checking for a match; if one matches, open your reply with the line \`${SKILL_SUGGESTION_ANCHOR}\` (a comma-separated sequence, in order, when several compose) and wait for the operator; load only on operator request, and a marketplace skill is offered for install when the operator runs it. If none match, do not mention skills and continue with the task.`;
1875
+ return `[Skills] ${counts}. Start this task by listing them with context(scope="skills") and checking for a match; if one matches, open your reply with the line \`${SKILL_SUGGESTION_ANCHOR}\` (a comma-separated sequence, in order, when several compose) and then continue the task in the same turn without the skill. Only the operator loads a skill, and a marketplace skill is offered for install when the operator runs it. If none match, do not mention skills and continue with the task.`;
1837
1876
  }
1838
1877
  var NO_EFFECTS2 = [];
1839
1878
  var GREETING_WORDS = /* @__PURE__ */ new Set([
@@ -1887,9 +1926,12 @@ function createSkillsReminderRegistration(deps) {
1887
1926
  let observedAnyTurn = false;
1888
1927
  return {
1889
1928
  id: SKILLS_REMINDER_REGISTRATION_ID,
1890
- description: "once per session, on the first substantive turn, teaches the skill-suggestion reply protocol",
1891
- hooks: ["turn_start"],
1929
+ description: "once per session, on the first substantive turn, teaches the skill-suggestion reply protocol; keeps a turn going that stopped on the suggestion",
1930
+ hooks: ["turn_start", "turn_end"],
1892
1931
  evaluate(input) {
1932
+ if (input.hook === "turn_end") {
1933
+ return isSkillSuggestionWait(input) ? [{ kind: "request_continuation", message: SKILL_SUGGESTION_WAIT_CONTINUATION_MESSAGE }] : NO_EFFECTS2;
1934
+ }
1893
1935
  const sessionId = input.sessionId ?? null;
1894
1936
  if (lastSeenSessionId === void 0) {
1895
1937
  lastSeenSessionId = sessionId;
@@ -2212,4 +2254,4 @@ export {
2212
2254
  createMiddlewareToolChoiceControl,
2213
2255
  MiddlewareDomainModule
2214
2256
  };
2215
- //# sourceMappingURL=chunk-2LZI5CAG.js.map
2257
+ //# sourceMappingURL=chunk-ZXF4XRKW.js.map
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-W6GROXXM.js";
15
15
  import {
16
16
  ceilChars
17
- } from "./chunk-BPGS2WCQ.js";
17
+ } from "./chunk-GEYXPTRF.js";
18
18
  import {
19
19
  init_esm_shims
20
20
  } from "./chunk-3R73A4XB.js";
@@ -119,4 +119,4 @@ export {
119
119
  recallableRefListing,
120
120
  recallErrorMessage
121
121
  };
122
- //# sourceMappingURL=chunk-VSNATDE6.js.map
122
+ //# sourceMappingURL=chunk-ZZMN5OM4.js.map
package/dist/cli/index.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  extractGlobalFlags,
11
11
  parseFlags,
12
12
  printError
13
- } from "../chunk-ED4KHGC3.js";
13
+ } from "../chunk-PPAMZ32Z.js";
14
14
  import "../chunk-5TSRNF4G.js";
15
15
  import {
16
16
  AI_AGENT_NAME
@@ -62,7 +62,7 @@ Usage:
62
62
  clio-coder fleet list|run|status|drain|resume fleet contracts, status, and admission control
63
63
  clio-coder evidence build, list, or inspect evidence artifacts
64
64
  clio-coder eval run, report, or compare local eval task files
65
- clio-coder memory list, propose, approve, reject, or prune memory
65
+ clio-coder memory list, propose, promote, approve, reject, or prune memory
66
66
  clio-coder usage report cross-session usage facts and opportunities (experimental)
67
67
  clio-coder trace query or view the durable dispatch trace mirror
68
68
  clio-coder extensions install, list, enable, disable, or remove extension packages
@@ -144,7 +144,7 @@ async function main(argv) {
144
144
  };
145
145
  if (!subcommand) {
146
146
  await enableBootCompileCache();
147
- const { runClioCommand } = await import("../clio-J5JIOIDS.js");
147
+ const { runClioCommand } = await import("../clio-M2KGYUFZ.js");
148
148
  return runClioCommand(bootOptions);
149
149
  }
150
150
  return dispatch(subcommand, subArgs, bootOptions);
@@ -154,28 +154,28 @@ async function enableBootCompileCache(subArgs = []) {
154
154
  const { enableClioCompileCache } = await import("../compile-cache-CVJMMODC.js");
155
155
  enableClioCompileCache();
156
156
  }
157
- var extensionsCommand = async (subArgs) => (await import("../extensions-QVDOHDGJ.js")).runExtensionsCommand(subArgs);
157
+ var extensionsCommand = async (subArgs) => (await import("../extensions-ADGNCJJD.js")).runExtensionsCommand(subArgs);
158
158
  var COMMAND_HANDLERS = /* @__PURE__ */ new Map([
159
159
  [
160
160
  "acp",
161
161
  async (subArgs, bootOptions) => {
162
162
  await enableBootCompileCache(subArgs);
163
- return (await import("../acp-S5R4RR5B.js")).runAcpCommand(subArgs, bootOptions);
163
+ return (await import("../acp-2BEHC4DL.js")).runAcpCommand(subArgs, bootOptions);
164
164
  }
165
165
  ],
166
- ["auth", async (subArgs) => (await import("../auth-2XCZLPKS.js")).runAuthCommand(subArgs)],
167
- ["config", async (subArgs) => (await import("../config-OEBMIN2U.js")).runConfigCommand(subArgs)],
168
- ["configure", async (subArgs) => (await import("../configure-PUQOSIXQ.js")).runConfigureCommand(subArgs)],
169
- ["targets", async (subArgs) => (await import("../targets-PIIRAOYS.js")).runTargetsCommand(subArgs)],
170
- ["models", async (subArgs) => (await import("../models-ZMMLFJNN.js")).runModelsCommand(subArgs)],
171
- ["agents", async (subArgs) => (await import("../agents-P6DMMVZY.js")).runAgentsCommand(subArgs)],
172
- ["components", async (subArgs) => (await import("../components-KELWS457.js")).runComponentsCommand(subArgs)],
173
- ["evidence", async (subArgs) => (await import("../evidence-SR7WXB5B.js")).runEvidenceCommand(subArgs)],
174
- ["eval", async (subArgs) => (await import("../eval-IZGDOO4H.js")).runEvalCommand(subArgs)],
175
- ["memory", async (subArgs) => (await import("../memory-4ALKDJ4Q.js")).runMemoryCommand(subArgs)],
176
- ["usage", async (subArgs) => (await import("../usage-6KKXR32N.js")).runUsageCommand(subArgs)],
166
+ ["auth", async (subArgs) => (await import("../auth-KXXFI2VS.js")).runAuthCommand(subArgs)],
167
+ ["config", async (subArgs) => (await import("../config-XUUYQIWO.js")).runConfigCommand(subArgs)],
168
+ ["configure", async (subArgs) => (await import("../configure-IHJ7YOMV.js")).runConfigureCommand(subArgs)],
169
+ ["targets", async (subArgs) => (await import("../targets-54SWINWB.js")).runTargetsCommand(subArgs)],
170
+ ["models", async (subArgs) => (await import("../models-ZPOLRU2C.js")).runModelsCommand(subArgs)],
171
+ ["agents", async (subArgs) => (await import("../agents-LNNFTM53.js")).runAgentsCommand(subArgs)],
172
+ ["components", async (subArgs) => (await import("../components-5TTYYX6G.js")).runComponentsCommand(subArgs)],
173
+ ["evidence", async (subArgs) => (await import("../evidence-ZYFIEN42.js")).runEvidenceCommand(subArgs)],
174
+ ["eval", async (subArgs) => (await import("../eval-CG6LLBLD.js")).runEvalCommand(subArgs)],
175
+ ["memory", async (subArgs) => (await import("../memory-7YKKR6UC.js")).runMemoryCommand(subArgs)],
176
+ ["usage", async (subArgs) => (await import("../usage-MSAWCLX4.js")).runUsageCommand(subArgs)],
177
177
  ["trace", async (subArgs) => (await import("../trace-PNCASAXC.js")).runTraceCommand(subArgs)],
178
- ["evolve", async (subArgs) => (await import("../evolve-K7VE2CBX.js")).runEvolveCommand(subArgs)],
178
+ ["evolve", async (subArgs) => (await import("../evolve-QGEXEMDW.js")).runEvolveCommand(subArgs)],
179
179
  [
180
180
  "dev",
181
181
  async (subArgs, bootOptions) => {
@@ -194,26 +194,26 @@ var COMMAND_HANDLERS = /* @__PURE__ */ new Map([
194
194
  ],
195
195
  ["extensions", extensionsCommand],
196
196
  ["ext", extensionsCommand],
197
- ["fleet", async (subArgs) => (await import("../fleet-7XMJNQNF.js")).runFleetCommand(subArgs)],
198
- ["skills", async (subArgs) => (await import("../skills-PSACKC5Q.js")).runSkillsCommand(subArgs)],
199
- ["verifiers", async (subArgs) => (await import("../verifiers-4UUM6TEE.js")).runVerifiersCommand(subArgs)],
200
- ["docs", async (subArgs) => (await import("../docs-2C2LTVT2.js")).runDocsCommand(subArgs)],
201
- ["share", async (subArgs) => (await import("../share-UT3W6E4M.js")).runShareCommand(subArgs)],
202
- ["export", async (subArgs) => (await import("../share-UT3W6E4M.js")).runExportCommand(subArgs)],
203
- ["import", async (subArgs) => (await import("../share-UT3W6E4M.js")).runImportCommand(subArgs)],
204
- ["context", async (subArgs) => (await import("../context-URSXPBCK.js")).runContextCommand(subArgs)],
197
+ ["fleet", async (subArgs) => (await import("../fleet-S5R4ZOQY.js")).runFleetCommand(subArgs)],
198
+ ["skills", async (subArgs) => (await import("../skills-S2X4DLY5.js")).runSkillsCommand(subArgs)],
199
+ ["verifiers", async (subArgs) => (await import("../verifiers-NCBTHHN2.js")).runVerifiersCommand(subArgs)],
200
+ ["docs", async (subArgs) => (await import("../docs-6FZSCG5B.js")).runDocsCommand(subArgs)],
201
+ ["share", async (subArgs) => (await import("../share-CGZE33UP.js")).runShareCommand(subArgs)],
202
+ ["export", async (subArgs) => (await import("../share-CGZE33UP.js")).runExportCommand(subArgs)],
203
+ ["import", async (subArgs) => (await import("../share-CGZE33UP.js")).runImportCommand(subArgs)],
204
+ ["context", async (subArgs) => (await import("../context-74JLXAWD.js")).runContextCommand(subArgs)],
205
205
  [
206
206
  "run",
207
207
  async (subArgs, bootOptions) => {
208
208
  await enableBootCompileCache(subArgs);
209
- return (await import("../run-RF4WJGMT.js")).runClioRun(subArgs, bootOptions);
209
+ return (await import("../run-SRNBKDWD.js")).runClioRun(subArgs, bootOptions);
210
210
  }
211
211
  ],
212
- ["doctor", async (subArgs) => (await import("../doctor-7BSE27PJ.js")).runDoctorCommand(subArgs)],
213
- ["paths", async (subArgs) => (await import("../paths-UXLN5YYZ.js")).runPathsCommand(subArgs)],
214
- ["reset", async (subArgs) => (await import("../reset-NXGTYNUO.js")).runResetCommand(subArgs)],
215
- ["uninstall", async (subArgs) => (await import("../uninstall-FZCQCDKC.js")).runUninstallCommand(subArgs)],
216
- ["upgrade", async (subArgs) => (await import("../upgrade-346TZ6AV.js")).runUpgradeCommand(subArgs)],
212
+ ["doctor", async (subArgs) => (await import("../doctor-SVJ5BZCW.js")).runDoctorCommand(subArgs)],
213
+ ["paths", async (subArgs) => (await import("../paths-E7KYAQWE.js")).runPathsCommand(subArgs)],
214
+ ["reset", async (subArgs) => (await import("../reset-KZ652EK6.js")).runResetCommand(subArgs)],
215
+ ["uninstall", async (subArgs) => (await import("../uninstall-BVLWXKBT.js")).runUninstallCommand(subArgs)],
216
+ ["upgrade", async (subArgs) => (await import("../upgrade-JKAR27XC.js")).runUpgradeCommand(subArgs)],
217
217
  ["version", async () => (await import("../version-KGEG7EPO.js")).runVersionCommand()],
218
218
  [
219
219
  "worker",
@@ -2,7 +2,7 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  runClioCommand,
4
4
  terminalLeaseEligible
5
- } from "./chunk-4JUF2NNX.js";
5
+ } from "./chunk-XYDYPRZI.js";
6
6
  import "./chunk-E25LMLRW.js";
7
7
  import "./chunk-HKIYEGME.js";
8
8
  import "./chunk-KOHPCX4K.js";
@@ -23,4 +23,4 @@ export {
23
23
  runClioCommand,
24
24
  terminalLeaseEligible
25
25
  };
26
- //# sourceMappingURL=clio-J5JIOIDS.js.map
26
+ //# sourceMappingURL=clio-M2KGYUFZ.js.map
@@ -4,7 +4,7 @@ import {
4
4
  readWikiMeta,
5
5
  wikiCompletenessFromMeta,
6
6
  wikiStaleness
7
- } from "./chunk-X4RCMKVQ.js";
7
+ } from "./chunk-NDINPTJ4.js";
8
8
  import {
9
9
  coordinateCodewikiWrite,
10
10
  readClioState,
@@ -26,7 +26,7 @@ import {
26
26
  finalizeObservation,
27
27
  observationBudgetExhausted,
28
28
  reserveObservation
29
- } from "./chunk-5M54SPOL.js";
29
+ } from "./chunk-ODFEOB4F.js";
30
30
  import "./chunk-OZNBF4L3.js";
31
31
  import "./chunk-4BJ5BYCE.js";
32
32
  import "./chunk-6XLNIQDB.js";
@@ -34,12 +34,12 @@ import "./chunk-5B2AEOW5.js";
34
34
  import {
35
35
  ToolNames
36
36
  } from "./chunk-CGKSTWHD.js";
37
- import "./chunk-VJWL6YS5.js";
37
+ import "./chunk-UUVG37B4.js";
38
38
  import {
39
39
  codewikiPath,
40
40
  readCodewiki
41
41
  } from "./chunk-LBMZMYH2.js";
42
- import "./chunk-EKMEHE4H.js";
42
+ import "./chunk-33YXPOE3.js";
43
43
  import "./chunk-IKCO5N3L.js";
44
44
  import "./chunk-3I7MS7N2.js";
45
45
  import "./chunk-4ZG3XFUR.js";
@@ -599,4 +599,4 @@ var codeNavTool = {
599
599
  export {
600
600
  codeNavTool
601
601
  };
602
- //# sourceMappingURL=code-nav-AXCXSBHX.js.map
602
+ //# sourceMappingURL=code-nav-GQNL7XA6.js.map
@@ -3,18 +3,18 @@ import {
3
3
  buildCodewiki,
4
4
  syncCodewiki,
5
5
  updateCodewikiPaths
6
- } from "../chunk-POHLU5DW.js";
6
+ } from "../chunk-M6L6IDJG.js";
7
7
  import {
8
8
  detectProjectType
9
- } from "../chunk-YHZX5GEU.js";
9
+ } from "../chunk-XAKHZX5N.js";
10
10
  import {
11
11
  computeFingerprint,
12
12
  isStale
13
- } from "../chunk-VJWL6YS5.js";
13
+ } from "../chunk-UUVG37B4.js";
14
14
  import {
15
15
  codewikiNeedsBackfill
16
16
  } from "../chunk-LBMZMYH2.js";
17
- import "../chunk-EKMEHE4H.js";
17
+ import "../chunk-33YXPOE3.js";
18
18
  import "../chunk-WEPFGWHJ.js";
19
19
  import "../chunk-7CR24IG7.js";
20
20
  import {
@@ -1,9 +1,9 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import "./chunk-YCWGATWI.js";
2
+ import "./chunk-24I7BN55.js";
3
3
  import {
4
4
  printError,
5
5
  printOk
6
- } from "./chunk-ED4KHGC3.js";
6
+ } from "./chunk-PPAMZ32Z.js";
7
7
  import "./chunk-5TSRNF4G.js";
8
8
  import "./chunk-4VP4KH3K.js";
9
9
  import "./chunk-IKCO5N3L.js";
@@ -672,4 +672,4 @@ function formatDiffLine(marker, component) {
672
672
  export {
673
673
  runComponentsCommand
674
674
  };
675
- //# sourceMappingURL=components-KELWS457.js.map
675
+ //# sourceMappingURL=components-5TTYYX6G.js.map
@@ -9,20 +9,21 @@ import {
9
9
  loadProjectRules,
10
10
  renderOperatorProfile,
11
11
  renderPromptContext
12
- } from "./chunk-UZHIZC5S.js";
12
+ } from "./chunk-CYQKWTG3.js";
13
+ import "./chunk-LCGCVYZ4.js";
13
14
  import "./chunk-5WIGXA4T.js";
14
15
  import {
15
16
  loadMemoryRecordsSync,
16
17
  memoryStorePath
17
- } from "./chunk-BRXQQJFP.js";
18
- import "./chunk-QQL5RT5M.js";
19
- import "./chunk-QQK64KLB.js";
18
+ } from "./chunk-6US73PDB.js";
19
+ import "./chunk-QM3F2GKX.js";
20
+ import "./chunk-CJUB2JJ2.js";
20
21
  import "./chunk-QKMUKYO7.js";
21
- import "./chunk-3JLKSKD7.js";
22
- import "./chunk-34475P3I.js";
22
+ import "./chunk-OH3TOQTB.js";
23
+ import "./chunk-TSHXZTOQ.js";
23
24
  import "./chunk-TXOTCRLG.js";
24
- import "./chunk-G4BMMOKF.js";
25
- import "./chunk-X4RCMKVQ.js";
25
+ import "./chunk-HVDIIIQW.js";
26
+ import "./chunk-NDINPTJ4.js";
26
27
  import "./chunk-MVVUPGPW.js";
27
28
  import {
28
29
  defaultScopedResourceRoots
@@ -34,12 +35,12 @@ import "./chunk-W6GROXXM.js";
34
35
  import {
35
36
  loadUserHooks,
36
37
  readHookSources
37
- } from "./chunk-2LZI5CAG.js";
38
+ } from "./chunk-ZXF4XRKW.js";
38
39
  import "./chunk-UOV2BYIW.js";
39
- import "./chunk-2TZWSW76.js";
40
- import "./chunk-ZYKPLLNQ.js";
41
- import "./chunk-WPQLXFOZ.js";
42
- import "./chunk-7RXG6QRZ.js";
40
+ import "./chunk-WHGPSPT5.js";
41
+ import "./chunk-XXQNGV4M.js";
42
+ import "./chunk-43AOLP7E.js";
43
+ import "./chunk-EKY57CSP.js";
43
44
  import "./chunk-22NAGB7X.js";
44
45
  import "./chunk-AOCYTWAV.js";
45
46
  import "./chunk-MV3K5QF2.js";
@@ -50,24 +51,25 @@ import "./chunk-UL3WSD3F.js";
50
51
  import "./chunk-VG7TBQIY.js";
51
52
  import "./chunk-OQE5J4C6.js";
52
53
  import "./chunk-ECH6PKUQ.js";
53
- import "./chunk-BEY543CS.js";
54
- import "./chunk-5M54SPOL.js";
54
+ import "./chunk-GOXNB3AO.js";
55
+ import "./chunk-HWUFFB6L.js";
56
+ import "./chunk-ODFEOB4F.js";
55
57
  import "./chunk-OZNBF4L3.js";
56
58
  import "./chunk-4BJ5BYCE.js";
57
59
  import "./chunk-6XLNIQDB.js";
58
60
  import "./chunk-5B2AEOW5.js";
59
61
  import "./chunk-CGKSTWHD.js";
60
- import "./chunk-POHLU5DW.js";
61
- import "./chunk-YHZX5GEU.js";
62
- import "./chunk-VJWL6YS5.js";
62
+ import "./chunk-M6L6IDJG.js";
63
+ import "./chunk-XAKHZX5N.js";
64
+ import "./chunk-UUVG37B4.js";
63
65
  import "./chunk-LBMZMYH2.js";
64
- import "./chunk-EKMEHE4H.js";
65
- import "./chunk-YCWGATWI.js";
66
+ import "./chunk-33YXPOE3.js";
67
+ import "./chunk-24I7BN55.js";
66
68
  import {
67
69
  printError
68
- } from "./chunk-ED4KHGC3.js";
70
+ } from "./chunk-PPAMZ32Z.js";
69
71
  import "./chunk-5TSRNF4G.js";
70
- import "./chunk-QWU7ZBO7.js";
72
+ import "./chunk-DJVECN66.js";
71
73
  import "./chunk-CFGTUFWB.js";
72
74
  import "./chunk-AD2SYQYC.js";
73
75
  import "./chunk-4OC57DA6.js";
@@ -80,7 +82,7 @@ import "./chunk-3I7MS7N2.js";
80
82
  import "./chunk-IHXBNWMM.js";
81
83
  import {
82
84
  ceilChars
83
- } from "./chunk-BPGS2WCQ.js";
85
+ } from "./chunk-GEYXPTRF.js";
84
86
  import "./chunk-SST6Z5JA.js";
85
87
  import "./chunk-FO5ZOVUY.js";
86
88
  import "./chunk-R346GLFC.js";
@@ -94,7 +96,7 @@ import {
94
96
  import "./chunk-6EJMN2Y3.js";
95
97
  import "./chunk-WEPFGWHJ.js";
96
98
  import "./chunk-ZGVHUX3M.js";
97
- import "./chunk-TTNYS3EA.js";
99
+ import "./chunk-G7MUEIGA.js";
98
100
  import {
99
101
  classifyProjectPreload
100
102
  } from "./chunk-JVCV3ICN.js";
@@ -427,4 +429,4 @@ function runConfigCommand(args = []) {
427
429
  export {
428
430
  runConfigCommand
429
431
  };
430
- //# sourceMappingURL=config-OEBMIN2U.js.map
432
+ //# sourceMappingURL=config-XUUYQIWO.js.map
@@ -3,15 +3,15 @@ import {
3
3
  runConfigureCommand,
4
4
  runTargetRemove,
5
5
  runTargetRename
6
- } from "./chunk-A2GZF7DC.js";
6
+ } from "./chunk-QNQHSOLF.js";
7
7
  import "./chunk-RD5U66HV.js";
8
8
  import "./chunk-KOHPCX4K.js";
9
9
  import "./chunk-2STGEDFV.js";
10
10
  import "./chunk-2IR2NMPA.js";
11
- import "./chunk-YCWGATWI.js";
12
- import "./chunk-ED4KHGC3.js";
11
+ import "./chunk-24I7BN55.js";
12
+ import "./chunk-PPAMZ32Z.js";
13
13
  import "./chunk-5TSRNF4G.js";
14
- import "./chunk-QWU7ZBO7.js";
14
+ import "./chunk-DJVECN66.js";
15
15
  import "./chunk-CFGTUFWB.js";
16
16
  import "./chunk-AD2SYQYC.js";
17
17
  import "./chunk-4OC57DA6.js";
@@ -22,7 +22,7 @@ import "./chunk-FQ4SKYE4.js";
22
22
  import "./chunk-IKCO5N3L.js";
23
23
  import "./chunk-3I7MS7N2.js";
24
24
  import "./chunk-IHXBNWMM.js";
25
- import "./chunk-BPGS2WCQ.js";
25
+ import "./chunk-GEYXPTRF.js";
26
26
  import "./chunk-SST6Z5JA.js";
27
27
  import "./chunk-FO5ZOVUY.js";
28
28
  import "./chunk-R346GLFC.js";
@@ -34,7 +34,7 @@ import "./chunk-BNAZZHFG.js";
34
34
  import "./chunk-6EJMN2Y3.js";
35
35
  import "./chunk-WEPFGWHJ.js";
36
36
  import "./chunk-ZGVHUX3M.js";
37
- import "./chunk-TTNYS3EA.js";
37
+ import "./chunk-G7MUEIGA.js";
38
38
  import "./chunk-IWHMRKLL.js";
39
39
  import "./chunk-3R73A4XB.js";
40
40
  export {
@@ -42,4 +42,4 @@ export {
42
42
  runTargetRemove,
43
43
  runTargetRename
44
44
  };
45
- //# sourceMappingURL=configure-PUQOSIXQ.js.map
45
+ //# sourceMappingURL=configure-IHJ7YOMV.js.map