@iowarp/clio-coder 0.3.3 → 0.3.4

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 (244) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/README.md +3 -3
  4. package/dist/{acp-P2AQILE2.js → acp-S5R4RR5B.js} +7 -6
  5. package/dist/{agents-72W3BI7I.js → agents-P6DMMVZY.js} +24 -21
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-5TWEIYDN.js → auth-2XCZLPKS.js} +12 -8
  8. package/dist/{chunk-GGXXDWE4.js → chunk-22NAGB7X.js} +2 -2
  9. package/dist/{chunk-2DJ2KNFG.js → chunk-2LZI5CAG.js} +133 -13
  10. package/dist/{chunk-OAO4GE4M.js → chunk-2TZWSW76.js} +2 -2
  11. package/dist/{chunk-OOJYHWRB.js → chunk-34475P3I.js} +2 -2
  12. package/dist/{chunk-4XUGQOHA.js → chunk-35MKKU5R.js} +4 -4
  13. package/dist/{chunk-LM5TQCJZ.js → chunk-3HZ5RWN2.js} +5 -5
  14. package/dist/{chunk-AGYYIBLL.js → chunk-3JLKSKD7.js} +2 -2
  15. package/dist/{chunk-KZWTDYJF.js → chunk-4JUF2NNX.js} +7 -7
  16. package/dist/{chunk-ZDOOVTXZ.js → chunk-4OC57DA6.js} +27 -4
  17. package/dist/chunk-5M54SPOL.js +926 -0
  18. package/dist/{chunk-STBPMHSX.js → chunk-7RXG6QRZ.js} +51 -11
  19. package/dist/{chunk-X6IAEBZR.js → chunk-A2GZF7DC.js} +5 -5
  20. package/dist/{chunk-A3CYT5EX.js → chunk-AD2SYQYC.js} +55 -2
  21. package/dist/chunk-AOCYTWAV.js +449 -0
  22. package/dist/chunk-BEY543CS.js +258 -0
  23. package/dist/{chunk-6N5PTWMY.js → chunk-BP4OYD6A.js} +32 -13
  24. package/dist/chunk-BPGS2WCQ.js +612 -0
  25. package/dist/{chunk-V6RTAOC2.js → chunk-BRXQQJFP.js} +8 -8
  26. package/dist/chunk-CFGTUFWB.js +67 -0
  27. package/dist/{chunk-CBCAPZAA.js → chunk-E25LMLRW.js} +2 -2
  28. package/dist/{chunk-DUYJ5IO6.js → chunk-EDRHSCIE.js} +4 -4
  29. package/dist/{chunk-XBXAASKX.js → chunk-EFADSJET.js} +2 -2
  30. package/dist/{chunk-M6SHUN7Q.js → chunk-FO5ZOVUY.js} +2 -2
  31. package/dist/chunk-FYYLNIL5.js +313 -0
  32. package/dist/{chunk-FNTMWMX5.js → chunk-HV5X7OR2.js} +14 -12
  33. package/dist/{chunk-TZTZS7QK.js → chunk-HXG4IURW.js} +5 -3
  34. package/dist/{chunk-5UFT4SUX.js → chunk-K6WL7QZT.js} +3 -3
  35. package/dist/chunk-K7VKOLQQ.js +15 -0
  36. package/dist/{chunk-BMEMKKIT.js → chunk-KOHPCX4K.js} +2 -2
  37. package/dist/{chunk-OC7FIQPC.js → chunk-KRPY7NTG.js} +10 -7
  38. package/dist/chunk-LL4KHSZI.js +22 -0
  39. package/dist/{chunk-DSELYM6W.js → chunk-MEQ45TQ4.js} +15 -9
  40. package/dist/{chunk-5UUP6MWO.js → chunk-MV3K5QF2.js} +5 -436
  41. package/dist/{chunk-6SGHMWE3.js → chunk-N4CZJQRK.js} +5 -5
  42. package/dist/{chunk-TZK7PACC.js → chunk-NILBFAPG.js} +14 -8
  43. package/dist/chunk-OZNBF4L3.js +23 -0
  44. package/dist/{verify-375KUB3Y.js → chunk-PCZJO5TI.js} +127 -42
  45. package/dist/chunk-QQK64KLB.js +1360 -0
  46. package/dist/{chunk-SRDMMSEP.js → chunk-QQL5RT5M.js} +979 -1619
  47. package/dist/{chunk-LZSJBIVT.js → chunk-QWU7ZBO7.js} +70 -720
  48. package/dist/{chunk-2TLUCQVG.js → chunk-RD5U66HV.js} +3 -3
  49. package/dist/{chunk-OKGUZO2U.js → chunk-SPULKLCF.js} +4 -3
  50. package/dist/{chunk-OQ33BKR3.js → chunk-TTNYS3EA.js} +3 -60
  51. package/dist/chunk-TW3WDMVS.js +677 -0
  52. package/dist/chunk-TZSKNMZG.js +434 -0
  53. package/dist/{chunk-7MNJORFF.js → chunk-UL3WSD3F.js} +6 -1
  54. package/dist/{chunk-PIWWS5BL.js → chunk-UZHIZC5S.js} +7 -7
  55. package/dist/{chunk-UFIIWP2H.js → chunk-VAWWTKDP.js} +8 -8
  56. package/dist/{chunk-COU2UHX6.js → chunk-VEZEGCGW.js} +170 -2
  57. package/dist/{chunk-LW6DSM3M.js → chunk-VMNQ6OZA.js} +98 -202
  58. package/dist/chunk-VSNATDE6.js +122 -0
  59. package/dist/chunk-W6GROXXM.js +69 -0
  60. package/dist/chunk-WPQLXFOZ.js +375 -0
  61. package/dist/{chunk-ORBHGJC5.js → chunk-WR67VIZY.js} +3 -3
  62. package/dist/{chunk-PAJK6MAQ.js → chunk-X6COSD2O.js} +5 -5
  63. package/dist/chunk-ZGVHUX3M.js +66 -0
  64. package/dist/{chunk-LWLEKMDQ.js → chunk-ZYKPLLNQ.js} +510 -547
  65. package/dist/cli/index.js +27 -23
  66. package/dist/{clio-JOU4FXVA.js → clio-J5JIOIDS.js} +7 -6
  67. package/dist/{code-nav-7AX6FYE6.js → code-nav-AXCXSBHX.js} +5 -3
  68. package/dist/{config-XCDVKR23.js → config-OEBMIN2U.js} +37 -27
  69. package/dist/{configure-4GAP54ZW.js → configure-PUQOSIXQ.js} +16 -13
  70. package/dist/{context-5VKGUVJJ.js → context-EKDCKUUZ.js} +82 -7
  71. package/dist/{context-4UOGGLQ5.js → context-MGSE4Z2T.js} +33 -23
  72. package/dist/{context-77FM5DV5.js → context-URSXPBCK.js} +17 -9
  73. package/dist/{context-clear-XXJRLCJJ.js → context-clear-KDAJRNUK.js} +33 -23
  74. package/dist/context-working-set-SBKMPPI2.js +1552 -0
  75. package/dist/{dispatch-runner-QPRDDBDX.js → dispatch-runner-MSWN72NK.js} +43 -29
  76. package/dist/{doctor-HR46URBJ.js → doctor-7BSE27PJ.js} +10 -10
  77. package/dist/{eval-XSSNATB4.js → eval-IZGDOO4H.js} +9 -8
  78. package/dist/{evidence-6HG2PY2B.js → evidence-SR7WXB5B.js} +51 -23
  79. package/dist/{evolve-K7YU3NCY.js → evolve-K7VE2CBX.js} +30 -20
  80. package/dist/{fleet-VY3HHKN6.js → fleet-7XMJNQNF.js} +48 -38
  81. package/dist/{fleet-preflight-DDN536IT.js → fleet-preflight-AQNAH644.js} +3 -3
  82. package/dist/{init-JYGXI3FK.js → init-JGNPAYXT.js} +41 -31
  83. package/dist/{memory-WFZMGYHX.js → memory-4ALKDJ4Q.js} +32 -22
  84. package/dist/{models-I5QWSEOM.js → models-ZMMLFJNN.js} +22 -19
  85. package/dist/{monitor-GE4ID3IA.js → monitor-2F3T5KHP.js} +55 -43
  86. package/dist/{orchestrator-EM5MC3HM.js → orchestrator-ORHT43JB.js} +572 -388
  87. package/dist/{reset-L2FQEE3E.js → reset-NXGTYNUO.js} +4 -3
  88. package/dist/{run-ZU3QMZPZ.js → run-RF4WJGMT.js} +51 -41
  89. package/dist/{share-S5BZQC5I.js → share-UT3W6E4M.js} +5 -4
  90. package/dist/{skills-X5VXCRNQ.js → skills-PSACKC5Q.js} +2 -2
  91. package/dist/{skills-eval-WKIHWTHR.js → skills-eval-WJSI55RZ.js} +34 -24
  92. package/dist/{targets-SNCPI2NR.js → targets-PIIRAOYS.js} +23 -20
  93. package/dist/{terminal-lease-BNAHVHBS.js → terminal-lease-ULWXWNVY.js} +4 -3
  94. package/dist/{upgrade-JQHHPQ4K.js → upgrade-346TZ6AV.js} +18 -17
  95. package/dist/{usage-OR4O5SMZ.js → usage-6KKXR32N.js} +34 -24
  96. package/dist/verifiers-4UUM6TEE.js +1214 -0
  97. package/dist/verify-X5HDROLA.js +25 -0
  98. package/dist/{wiki-generate-UEXP2ARI.js → wiki-generate-7STOCIFZ.js} +42 -31
  99. package/dist/worker/entry.js +33 -24
  100. package/docs/README.md +7 -6
  101. package/docs/acp.md +1 -1
  102. package/docs/alcf-provider.md +1 -1
  103. package/docs/architecture.md +2 -2
  104. package/docs/artifact-versions.md +1 -1
  105. package/docs/built-in-agents.md +1 -1
  106. package/docs/capacity-and-scheduling.md +1 -1
  107. package/docs/commands-and-modes.md +53 -21
  108. package/docs/config-knobs-audit.md +1 -2
  109. package/docs/configuration-and-targets.md +15 -1
  110. package/docs/context-engine.md +64 -12
  111. package/docs/context-working-set.md +194 -0
  112. package/docs/development-pipeline.md +1 -1
  113. package/docs/documentation-coverage.md +5 -5
  114. package/docs/documentation-guide.md +6 -5
  115. package/docs/environment-variables.md +2 -1
  116. package/docs/eval-runner.md +1 -1
  117. package/docs/evals-internal.md +14 -1
  118. package/docs/evidence-and-memory.md +74 -2
  119. package/docs/evolution.md +1 -1
  120. package/docs/exit-codes-and-output.md +1 -1
  121. package/docs/extensions-and-sharing.md +2 -2
  122. package/docs/fleet-dispatch.md +22 -7
  123. package/docs/glossary.md +21 -1
  124. package/docs/installation-and-lifecycle.md +2 -2
  125. package/docs/middleware-and-components.md +1 -1
  126. package/docs/model-catalog.md +7 -9
  127. package/docs/observability.md +4 -4
  128. package/docs/proactive-memory.md +1 -1
  129. package/docs/prompt-envelope-and-tools.md +4 -4
  130. package/docs/provider-adapter-cookbook.md +1 -1
  131. package/docs/release-cut-checklist.md +31 -31
  132. package/docs/safety-model.md +23 -4
  133. package/docs/scientific-validation.md +21 -3
  134. package/docs/session-lifecycle.md +3 -3
  135. package/docs/skills-marketplace.md +1 -1
  136. package/docs/tool-usage.md +79 -12
  137. package/docs/trace-store.md +1 -1
  138. package/docs/troubleshooting.md +1 -1
  139. package/docs/tui-design.md +1 -1
  140. package/docs/worker-dispatch-mechanics.md +11 -1
  141. package/package.json +8 -11
  142. package/skills/meta/clio-test/SKILL.md +20 -17
  143. package/skills/meta/clio-test/evals.md +3 -3
  144. package/skills/meta/clio-test/references/harness.md +35 -6
  145. package/skills/meta/clio-test/references/test-map.md +20 -10
  146. package/skills/registry.yaml +2 -2
  147. package/skills/skill-marketplace.json +1 -1
  148. package/src/cli/context-working-set.ts +513 -0
  149. package/src/cli/context.ts +8 -0
  150. package/src/cli/evidence.ts +20 -2
  151. package/src/cli/index.ts +4 -0
  152. package/src/cli/verifiers.ts +325 -0
  153. package/src/core/bash-exec.ts +39 -14
  154. package/src/core/bus-events.ts +19 -4
  155. package/src/core/config.ts +54 -0
  156. package/src/core/defaults.ts +50 -3
  157. package/src/core/verification-scripts.ts +6 -0
  158. package/src/domains/agents/builtins/verifier.md +3 -0
  159. package/src/domains/config/classify.ts +1 -0
  160. package/src/domains/context/working-set/contract.ts +161 -0
  161. package/src/domains/context/working-set/defaults.ts +28 -0
  162. package/src/domains/context/working-set/engine.ts +203 -0
  163. package/src/domains/context/working-set/fold.ts +62 -0
  164. package/src/domains/context/working-set/horizon.ts +38 -0
  165. package/src/domains/context/working-set/marker.ts +103 -0
  166. package/src/domains/context/working-set/path-index.ts +436 -0
  167. package/src/domains/context/working-set/payload.ts +152 -0
  168. package/src/domains/context/working-set/policies/age-horizon.ts +55 -0
  169. package/src/domains/context/working-set/policies/index.ts +21 -0
  170. package/src/domains/context/working-set/policies/structural.ts +160 -0
  171. package/src/domains/context/working-set/project.ts +132 -0
  172. package/src/domains/context/working-set/protect.ts +109 -0
  173. package/src/domains/context/working-set/recall.ts +177 -0
  174. package/src/domains/context/working-set/replay/controls.ts +112 -0
  175. package/src/domains/context/working-set/replay/load-clio.ts +199 -0
  176. package/src/domains/context/working-set/replay/metrics.ts +185 -0
  177. package/src/domains/context/working-set/replay/reference-graph.ts +79 -0
  178. package/src/domains/context/working-set/replay/report.ts +139 -0
  179. package/src/domains/context/working-set/replay/runner.ts +325 -0
  180. package/src/domains/context/working-set/replay/synthetic.ts +422 -0
  181. package/src/domains/context/working-set/replay/trace.ts +21 -0
  182. package/src/domains/context/working-set/visible.ts +54 -0
  183. package/src/domains/evidence/build.ts +112 -45
  184. package/src/domains/evidence/eval.ts +24 -7
  185. package/src/domains/evidence/index.ts +53 -0
  186. package/src/domains/evidence/ordering.ts +12 -0
  187. package/src/domains/evidence/run-trust.ts +221 -0
  188. package/src/domains/evidence/store.ts +46 -6
  189. package/src/domains/evidence/trust-status.ts +854 -0
  190. package/src/domains/evidence/types.ts +26 -0
  191. package/src/domains/middleware/memory-intervention.ts +3 -0
  192. package/src/domains/middleware/stalled-turn.ts +165 -4
  193. package/src/domains/safety/autonomy.ts +1 -1
  194. package/src/domains/safety/default-path-policy.ts +8 -0
  195. package/src/domains/safety/finish-contract.ts +4 -3
  196. package/src/domains/safety/policy-engine.ts +48 -6
  197. package/src/domains/session/compaction/compact.ts +23 -1
  198. package/src/domains/session/compaction/cut-point.ts +2 -0
  199. package/src/domains/session/compaction/tokens.ts +16 -1
  200. package/src/domains/session/context-ledger.ts +2 -0
  201. package/src/domains/session/entries.ts +107 -1
  202. package/src/domains/session/manager.ts +9 -2
  203. package/src/domains/session/migrations/index.ts +22 -3
  204. package/src/engine/acp/server.ts +3 -0
  205. package/src/engine/agent.ts +18 -1
  206. package/src/engine/session.ts +9 -3
  207. package/src/entry/orchestrator.ts +16 -4
  208. package/src/interactive/chat-loop-messages.ts +18 -6
  209. package/src/interactive/chat-panel.ts +17 -1
  210. package/src/interactive/chat-renderer.ts +30 -21
  211. package/src/interactive/context-meter.ts +10 -0
  212. package/src/interactive/context-overlay.ts +81 -6
  213. package/src/interactive/context-recall-command.ts +110 -0
  214. package/src/interactive/interactive-slash-runtime.ts +37 -1
  215. package/src/interactive/model-session-replay.ts +21 -0
  216. package/src/interactive/overlay-general-openers.ts +6 -0
  217. package/src/interactive/overlay-session-lifecycle.ts +8 -4
  218. package/src/interactive/renderers/tool-execution.ts +18 -2
  219. package/src/interactive/session-transcript.ts +2 -2
  220. package/src/interactive/slash-commands.ts +29 -2
  221. package/src/interactive/turn-context.ts +238 -88
  222. package/src/interactive/turn-middleware.ts +6 -6
  223. package/src/tools/agent-tools.ts +11 -4
  224. package/src/tools/bash.ts +144 -82
  225. package/src/tools/builtin-tool-catalog.ts +11 -5
  226. package/src/tools/context/index.ts +105 -3
  227. package/src/tools/context/surface.ts +3 -2
  228. package/src/tools/core-bootstrap.ts +21 -0
  229. package/src/tools/dispatch-runner.ts +9 -7
  230. package/src/tools/monitor.ts +28 -20
  231. package/src/tools/registry.ts +59 -7
  232. package/src/tools/result-disposition.ts +550 -0
  233. package/src/tools/result-shaping.ts +262 -19
  234. package/src/tools/safe-exec.ts +2 -0
  235. package/src/tools/verify/authoring.ts +1119 -0
  236. package/src/tools/verify/catalog.ts +346 -0
  237. package/src/tools/verify/index.ts +13 -3
  238. package/src/tools/verify/scripts.ts +135 -37
  239. package/src/tools/verify/surface.ts +9 -5
  240. package/src/tools/worker-evidence.ts +35 -12
  241. package/dist/chunk-J7CWMCQD.js +0 -255
  242. package/dist/chunk-T6YILFSB.js +0 -80
  243. package/dist/chunk-VAKQQHWR.js +0 -434
  244. package/dist/chunk-VPAYEGVX.js +0 -184
@@ -26,11 +26,13 @@ import {
26
26
  registerBuiltinRuntimes,
27
27
  resolveProviderReference,
28
28
  supportGroupLabel
29
- } from "./chunk-LZSJBIVT.js";
29
+ } from "./chunk-QWU7ZBO7.js";
30
+ import "./chunk-CFGTUFWB.js";
30
31
  import {
31
32
  readSettings
32
- } from "./chunk-A3CYT5EX.js";
33
- import "./chunk-ZDOOVTXZ.js";
33
+ } from "./chunk-AD2SYQYC.js";
34
+ import "./chunk-4OC57DA6.js";
35
+ import "./chunk-LL4KHSZI.js";
34
36
  import {
35
37
  authNotRequiredStatus,
36
38
  openAuthStorage,
@@ -38,19 +40,21 @@ import {
38
40
  resolveRuntimeAuthTarget,
39
41
  targetRequiresAuth
40
42
  } from "./chunk-4VP4KH3K.js";
41
- import "./chunk-M6SHUN7Q.js";
42
- import "./chunk-R346GLFC.js";
43
43
  import "./chunk-FQ4SKYE4.js";
44
44
  import "./chunk-IKCO5N3L.js";
45
45
  import "./chunk-3I7MS7N2.js";
46
+ import "./chunk-BPGS2WCQ.js";
46
47
  import "./chunk-SST6Z5JA.js";
48
+ import "./chunk-FO5ZOVUY.js";
49
+ import "./chunk-R346GLFC.js";
47
50
  import "./chunk-4ZG3XFUR.js";
48
- import "./chunk-APJ265NV.js";
49
51
  import "./chunk-FCSXB6T2.js";
52
+ import "./chunk-APJ265NV.js";
50
53
  import "./chunk-YXLYO42X.js";
51
54
  import "./chunk-BNAZZHFG.js";
52
55
  import "./chunk-WEPFGWHJ.js";
53
- import "./chunk-OQ33BKR3.js";
56
+ import "./chunk-ZGVHUX3M.js";
57
+ import "./chunk-TTNYS3EA.js";
54
58
  import "./chunk-IWHMRKLL.js";
55
59
  import {
56
60
  init_esm_shims
@@ -533,4 +537,4 @@ async function runAuthCommand(args) {
533
537
  export {
534
538
  runAuthCommand
535
539
  };
536
- //# sourceMappingURL=auth-5TWEIYDN.js.map
540
+ //# sourceMappingURL=auth-2XCZLPKS.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  isAgentCapabilityClass
4
- } from "./chunk-5UUP6MWO.js";
4
+ } from "./chunk-AOCYTWAV.js";
5
5
  import {
6
6
  init_esm_shims
7
7
  } from "./chunk-3R73A4XB.js";
@@ -1084,4 +1084,4 @@ export {
1084
1084
  routingIntentRejection,
1085
1085
  explainRouteDecision
1086
1086
  };
1087
- //# sourceMappingURL=chunk-GGXXDWE4.js.map
1087
+ //# sourceMappingURL=chunk-22NAGB7X.js.map
@@ -7,24 +7,26 @@ import {
7
7
  TASK_MEMORY_POLICY_DEFAULT_TIMEOUT_MS,
8
8
  runTaskMemoryPolicy,
9
9
  taskMemoryBankDelta
10
- } from "./chunk-OAO4GE4M.js";
10
+ } from "./chunk-2TZWSW76.js";
11
+ import {
12
+ isTerminalRunEnvelope
13
+ } from "./chunk-ZYKPLLNQ.js";
11
14
  import {
12
- isTerminalRunEnvelope,
13
15
  taskBoardCounts
14
- } from "./chunk-LWLEKMDQ.js";
16
+ } from "./chunk-WPQLXFOZ.js";
15
17
  import {
16
18
  SKILL_SUGGESTION_ANCHOR
17
- } from "./chunk-T6YILFSB.js";
19
+ } from "./chunk-BEY543CS.js";
18
20
  import {
19
21
  ToolNames
20
22
  } from "./chunk-CGKSTWHD.js";
21
- import {
22
- ceilChars
23
- } from "./chunk-LZSJBIVT.js";
24
23
  import {
25
24
  reportCommitAttributionDiagnostic,
26
25
  withManagedGitCommitAttributionEnvironment
27
- } from "./chunk-COU2UHX6.js";
26
+ } from "./chunk-VEZEGCGW.js";
27
+ import {
28
+ ceilChars
29
+ } from "./chunk-BPGS2WCQ.js";
28
30
  import {
29
31
  require_dist
30
32
  } from "./chunk-APJ265NV.js";
@@ -188,7 +190,91 @@ init_esm_shims();
188
190
  var STALLED_TURN_REGISTRATION_ID = "nudge.stalled-turn";
189
191
  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.";
190
192
  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
+ var CONCRETE_ACTION_STEMS = [
194
+ "add",
195
+ "analyse",
196
+ "analyze",
197
+ "apply",
198
+ "audit",
199
+ "build",
200
+ "change",
201
+ "check",
202
+ "compare",
203
+ "compile",
204
+ "create",
205
+ "debug",
206
+ "delete",
207
+ "edit",
208
+ "execute",
209
+ "explore",
210
+ "find",
211
+ "fix",
212
+ "format",
213
+ "grep",
214
+ "implement",
215
+ "inspect",
216
+ "install",
217
+ "investigate",
218
+ "list",
219
+ "load",
220
+ "look",
221
+ "modify",
222
+ "open",
223
+ "patch",
224
+ "query",
225
+ "read",
226
+ "refactor",
227
+ "remove",
228
+ "rename",
229
+ "replace",
230
+ "review",
231
+ "run",
232
+ "scan",
233
+ "search",
234
+ "test",
235
+ "trace",
236
+ "update",
237
+ "validate",
238
+ "verify",
239
+ "write"
240
+ ];
241
+ var DOUBLED_CONSONANT_STEMS = /* @__PURE__ */ new Set(["debug", "format", "run", "scan"]);
242
+ function concreteActionForms(stem) {
243
+ const forms = /* @__PURE__ */ new Set([stem, `${stem}s`, `${stem}ed`, `${stem}ing`]);
244
+ if (/(?:ch|sh|s|x|z)$/.test(stem)) forms.add(`${stem}es`);
245
+ if (stem.endsWith("e")) {
246
+ forms.add(`${stem}d`);
247
+ forms.add(`${stem.slice(0, -1)}ing`);
248
+ }
249
+ if (stem.endsWith("y")) {
250
+ forms.add(`${stem.slice(0, -1)}ies`);
251
+ forms.add(`${stem.slice(0, -1)}ied`);
252
+ }
253
+ if (DOUBLED_CONSONANT_STEMS.has(stem)) {
254
+ const doubled = `${stem}${stem.slice(-1)}`;
255
+ forms.add(`${doubled}ed`);
256
+ forms.add(`${doubled}ing`);
257
+ }
258
+ return [...forms];
259
+ }
260
+ var CONCRETE_ACTION_PATTERN = new RegExp(
261
+ `\\b(?:${CONCRETE_ACTION_STEMS.flatMap(concreteActionForms).join("|")})\\b`,
262
+ "giu"
263
+ );
264
+ var NAMED_PATH_EXTENSIONS = "c|cc|cfg|cjs|cmake|conf|cpp|cs|css|csv|env|go|h|hpp|html|ini|java|jl|js|json|jsx|lock|log|lua|md|mjs|nc|php|py|rb|rs|rst|sh|sql|toml|ts|tsx|txt|yaml|yml";
265
+ var NAMED_PATH_PATTERN = new RegExp(
266
+ `(?:^|[\\s\`"'(\\[])(?:[\\w@.\\-/]*[\\w@\\-]\\.(?:${NAMED_PATH_EXTENSIONS})\\b|(?:\\.{1,2}|~)\\/[\\w@.\\-/]+)`,
267
+ "iu"
268
+ );
269
+ var NAMED_COMMAND_PATTERN = /\b(?:npm|npx|pnpm|yarn|bun|git|cargo|rustc|cmake|ctest|ninja|meson|bazel|gradle|mvn|pytest|pip|python3?|node|deno|tsc|biome|eslint|prettier|jest|vitest|ruff|mypy|docker|kubectl|mpirun|srun|sbatch|gcc|clang)\s+[-\w./]/iu;
270
+ var ACTION_OBJECT_CONNECTOR_PATTERN = /^(?:at|for|in|into|on|through|to)\s+/i;
271
+ var ACTION_OBJECT_DETERMINER_PATTERN = /^(?:a|an|my|our|that|the|their|these|this|those|your)\s+/i;
272
+ var ACTION_OBJECT_PATTERN = /^(?!(?:again|everyone|later|next|now|soon|then|you)\b)[`"'./~]*[\p{L}\p{N}_-]/iu;
273
+ var CONDITIONAL_LEAD_IN_PATTERN = /\b(?:if|once|unless|until|when|whenever)\b/i;
274
+ var CONDITIONAL_INVITATION_PATTERN = /\b(?:ask|give|point|say|send|share|tell)\b[\s\S]*\b(?:and|then)\s*$/i;
275
+ var CONDITIONAL_OFFER_SUFFIX_PATTERN = /\b(?:if\s+(?:needed|necessary|requested)\b|if\b[^.!?]*\byou\b|when(?:ever)?\s+you\b)/i;
191
276
  var LET_ME_KNOW_PATTERN = /\blet me know\b/i;
277
+ var DEFERRAL_LEAD_PATTERN = /^\s*(?:just\s+|simply\s+|now\s+)?(?:wait|hold\s+off|hold|stand\s+by|pause|defer)\b/i;
192
278
  var COMPLETION_PATTERN = /^\s*(?:all\s+done|done|complete|completed|all\s+set)\b|^\s*(?:here(?:'s| is)\s+)?(?:a\s+)?summary\b|^\s*summary\s*:?$/i;
193
279
  var STALLED_TURN_RULE_DEFINITION = {
194
280
  rule: {
@@ -213,7 +299,34 @@ function shouldRequestStalledTurnContinuation(input) {
213
299
  if (isQuestion(finalSentence)) return false;
214
300
  if (LET_ME_KNOW_PATTERN.test(finalSentence)) return false;
215
301
  if (COMPLETION_PATTERN.test(lastLine) || COMPLETION_PATTERN.test(finalSentence)) return false;
216
- return finalSentence.endsWith(":") || INTENT_PATTERN.test(finalSentence);
302
+ return announcesConcreteAction(finalSentence);
303
+ }
304
+ function announcesConcreteAction(sentence) {
305
+ const intent = INTENT_PATTERN.exec(sentence);
306
+ if (intent) {
307
+ const leadIn = sentence.slice(0, intent.index);
308
+ if (CONDITIONAL_LEAD_IN_PATTERN.test(leadIn) || CONDITIONAL_INVITATION_PATTERN.test(leadIn) || CONDITIONAL_OFFER_SUFFIX_PATTERN.test(sentence)) {
309
+ return false;
310
+ }
311
+ const clause = sentence.slice(intent.index + intent[0].length);
312
+ if (DEFERRAL_LEAD_PATTERN.test(clause)) return false;
313
+ if (hasActionWithObject(clause)) return true;
314
+ if (CONDITIONAL_LEAD_IN_PATTERN.test(clause)) return false;
315
+ return namesToolTarget(clause);
316
+ }
317
+ return sentence.endsWith(":") && hasActionWithObject(sentence);
318
+ }
319
+ function namesToolTarget(clause) {
320
+ return NAMED_PATH_PATTERN.test(clause) || NAMED_COMMAND_PATTERN.test(clause);
321
+ }
322
+ function hasActionWithObject(clause) {
323
+ for (const action of clause.matchAll(CONCRETE_ACTION_PATTERN)) {
324
+ const remainder = clause.slice((action.index ?? 0) + action[0].length).trimStart();
325
+ const withoutConnector = remainder.replace(ACTION_OBJECT_CONNECTOR_PATTERN, "");
326
+ const object = withoutConnector.replace(ACTION_OBJECT_DETERMINER_PATTERN, "");
327
+ if (ACTION_OBJECT_PATTERN.test(object)) return true;
328
+ }
329
+ return false;
217
330
  }
218
331
  function isNormalStopReason(value) {
219
332
  if (value === void 0 || value === null) return true;
@@ -229,10 +342,16 @@ function lastNonEmptyLine(text) {
229
342
  }
230
343
  return null;
231
344
  }
345
+ var SENTENCE_TERMINATOR_PATTERN = /[.!?]+["'’)\]]*(?=\s|$)/gu;
232
346
  function lastSentence(line) {
233
- const matches = line.match(/[^.!?]+[.!?]+(?:["')\]]+)?|[^.!?]+$/g);
234
- const sentence = matches?.at(-1)?.trim() ?? line.trim();
235
- return sentence.replace(/^[\s"'([{-]+/, "").trim();
347
+ const trimmed = line.trimEnd();
348
+ let start = 0;
349
+ for (const terminator of trimmed.matchAll(SENTENCE_TERMINATOR_PATTERN)) {
350
+ const end = (terminator.index ?? 0) + terminator[0].length;
351
+ if (end >= trimmed.length) break;
352
+ start = end;
353
+ }
354
+ return trimmed.slice(start).replace(/^[\s"'([{-]+/, "").trim();
236
355
  }
237
356
  function isQuestion(sentence) {
238
357
  return /[?]["')\]]*$/.test(sentence.trim());
@@ -1291,6 +1410,7 @@ function createMemoryInterventionRegistration(deps) {
1291
1410
  return effects;
1292
1411
  }
1293
1412
  case "on_compaction":
1413
+ if (input.metadata?.stage === "working_set_recall") return NO_EFFECTS;
1294
1414
  reactivateAfterCompaction = true;
1295
1415
  return NO_EFFECTS;
1296
1416
  case "turn_start": {
@@ -2092,4 +2212,4 @@ export {
2092
2212
  createMiddlewareToolChoiceControl,
2093
2213
  MiddlewareDomainModule
2094
2214
  };
2095
- //# sourceMappingURL=chunk-2DJ2KNFG.js.map
2215
+ //# sourceMappingURL=chunk-2LZI5CAG.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  ceilChars
4
- } from "./chunk-LZSJBIVT.js";
4
+ } from "./chunk-BPGS2WCQ.js";
5
5
  import {
6
6
  clioStateDir
7
7
  } from "./chunk-BNAZZHFG.js";
@@ -616,4 +616,4 @@ export {
616
616
  createTaskMemoryTelemetrySink,
617
617
  taskMemoryBankDelta
618
618
  };
619
- //# sourceMappingURL=chunk-OAO4GE4M.js.map
619
+ //# sourceMappingURL=chunk-2TZWSW76.js.map
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-I4HZDVNP.js";
23
23
  import {
24
24
  atomicWrite
25
- } from "./chunk-M6SHUN7Q.js";
25
+ } from "./chunk-FO5ZOVUY.js";
26
26
  import {
27
27
  clioStateDir
28
28
  } from "./chunk-BNAZZHFG.js";
@@ -920,4 +920,4 @@ export {
920
920
  routeFactVerdict,
921
921
  runFleetNodePreflight
922
922
  };
923
- //# sourceMappingURL=chunk-OOJYHWRB.js.map
923
+ //# sourceMappingURL=chunk-34475P3I.js.map
@@ -10,17 +10,17 @@ import {
10
10
  import {
11
11
  FAILURE_CAUSE_TAGS,
12
12
  buildEvidence
13
- } from "./chunk-SRDMMSEP.js";
13
+ } from "./chunk-QQL5RT5M.js";
14
14
  import {
15
15
  normalizeCostProvenance
16
- } from "./chunk-LZSJBIVT.js";
16
+ } from "./chunk-QWU7ZBO7.js";
17
17
  import {
18
18
  clioDataDir,
19
19
  clioStateDir
20
20
  } from "./chunk-BNAZZHFG.js";
21
21
  import {
22
22
  BusChannels
23
- } from "./chunk-OQ33BKR3.js";
23
+ } from "./chunk-TTNYS3EA.js";
24
24
  import {
25
25
  init_esm_shims
26
26
  } from "./chunk-3R73A4XB.js";
@@ -794,4 +794,4 @@ export {
794
794
  ObservabilityDomainModule,
795
795
  createObservabilityDomainModule
796
796
  };
797
- //# sourceMappingURL=chunk-4XUGQOHA.js.map
797
+ //# sourceMappingURL=chunk-35MKKU5R.js.map
@@ -5,18 +5,18 @@ import {
5
5
  loadProjectRules,
6
6
  renderOperatorProfile,
7
7
  selectActiveRules
8
- } from "./chunk-PIWWS5BL.js";
8
+ } from "./chunk-UZHIZC5S.js";
9
9
  import {
10
10
  compile,
11
11
  compileWorker,
12
12
  sha256
13
- } from "./chunk-SRDMMSEP.js";
13
+ } from "./chunk-QQL5RT5M.js";
14
14
  import {
15
15
  isUserVisibleAgent
16
- } from "./chunk-5UUP6MWO.js";
16
+ } from "./chunk-AOCYTWAV.js";
17
17
  import {
18
18
  BusChannels
19
- } from "./chunk-OQ33BKR3.js";
19
+ } from "./chunk-TTNYS3EA.js";
20
20
  import {
21
21
  classifyProjectPreload
22
22
  } from "./chunk-JVCV3ICN.js";
@@ -653,4 +653,4 @@ export {
653
653
  createPromptsDomainModule,
654
654
  SchedulingDomainModule
655
655
  };
656
- //# sourceMappingURL=chunk-LM5TQCJZ.js.map
656
+ //# sourceMappingURL=chunk-3HZ5RWN2.js.map
@@ -4,7 +4,7 @@ import {
4
4
  isExecutionRole,
5
5
  isRouteDecisionAgentSelection,
6
6
  isRoutingIntent
7
- } from "./chunk-GGXXDWE4.js";
7
+ } from "./chunk-22NAGB7X.js";
8
8
  import {
9
9
  assertSafeId
10
10
  } from "./chunk-R346GLFC.js";
@@ -1066,4 +1066,4 @@ export {
1066
1066
  loadEvalTaskFile,
1067
1067
  EvalTaskFileError
1068
1068
  };
1069
- //# sourceMappingURL=chunk-AGYYIBLL.js.map
1069
+ //# sourceMappingURL=chunk-3JLKSKD7.js.map
@@ -2,16 +2,16 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  readLayeredSettings,
4
4
  readStrictLayeredSettings
5
- } from "./chunk-CBCAPZAA.js";
5
+ } from "./chunk-E25LMLRW.js";
6
6
  import {
7
7
  formatBootTrace
8
8
  } from "./chunk-HKIYEGME.js";
9
9
  import {
10
10
  initializeClioHome
11
- } from "./chunk-BMEMKKIT.js";
11
+ } from "./chunk-KOHPCX4K.js";
12
12
  import {
13
13
  readSettings
14
- } from "./chunk-A3CYT5EX.js";
14
+ } from "./chunk-AD2SYQYC.js";
15
15
  import {
16
16
  require_dist
17
17
  } from "./chunk-APJ265NV.js";
@@ -158,7 +158,7 @@ Run \`clio-coder auth login ${verdict.store}\` if the endpoint requires one; loc
158
158
  } else if (verdict.kind !== "usable") {
159
159
  process.stdout.write(`${describeVerdict(verdict)} Starting \`clio-coder configure\`.
160
160
  `);
161
- const { runConfigureCommand } = await import("./configure-4GAP54ZW.js");
161
+ const { runConfigureCommand } = await import("./configure-PUQOSIXQ.js");
162
162
  const configured = await runConfigureCommand([]);
163
163
  if (configured !== 0) return configured;
164
164
  startupSettings = readStrictLayeredSettings(process.cwd()).settings;
@@ -167,7 +167,7 @@ Run \`clio-coder auth login ${verdict.store}\` if the endpoint requires one; loc
167
167
  let terminalLease;
168
168
  try {
169
169
  if (terminalLeaseEligible(options)) {
170
- const { createProcessTerminalLease, instantShellEnabled } = await import("./terminal-lease-BNAHVHBS.js");
170
+ const { createProcessTerminalLease, instantShellEnabled } = await import("./terminal-lease-ULWXWNVY.js");
171
171
  if (instantShellEnabled()) {
172
172
  let stage0FrameId = null;
173
173
  terminalLease = createProcessTerminalLease({
@@ -190,7 +190,7 @@ Run \`clio-coder auth login ${verdict.store}\` if the endpoint requires one; loc
190
190
  throw new Error("injected Stage 1 hydration failure");
191
191
  }
192
192
  }
193
- const { bootOrchestrator } = await import("./orchestrator-EM5MC3HM.js");
193
+ const { bootOrchestrator } = await import("./orchestrator-ORHT43JB.js");
194
194
  const result = await bootOrchestrator({
195
195
  ...options,
196
196
  ...startupSettings ? { startupSettings } : {},
@@ -214,4 +214,4 @@ export {
214
214
  terminalLeaseEligible,
215
215
  runClioCommand
216
216
  };
217
- //# sourceMappingURL=chunk-KZWTDYJF.js.map
217
+ //# sourceMappingURL=chunk-4JUF2NNX.js.map
@@ -1,4 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ DEFAULT_WORKING_SET_SETTINGS
4
+ } from "./chunk-LL4KHSZI.js";
2
5
  import {
3
6
  GUARDRAIL_DEFAULTS
4
7
  } from "./chunk-4ZG3XFUR.js";
@@ -124,6 +127,9 @@ var DEFAULT_SETTINGS = {
124
127
  threshold: 0.8,
125
128
  excludeLastTurns: 6
126
129
  },
130
+ context: {
131
+ workingSet: DEFAULT_WORKING_SET_SETTINGS
132
+ },
127
133
  retry: {
128
134
  enabled: true,
129
135
  maxRetries: 3,
@@ -364,9 +370,9 @@ keybindings: {}
364
370
  # auto master switch for the pre-request compaction trigger.
365
371
  # Manual /context compact always runs the LLM summary.
366
372
  # threshold pressure = estimated_tokens / context_window. Crossing
367
- # it masks stale tool observations first, then runs a
368
- # full LLM summary if pressure stays above the threshold.
369
- # excludeLastTurns recent user turns protected from observation masking.
373
+ # it evicts from the working set first, then runs a full
374
+ # LLM summary if pressure stays above the threshold.
375
+ # excludeLastTurns recent turns protected only by the temporary legacy mask.
370
376
  # model optional pattern (e.g. provider/summary-model-id) for a
371
377
  # dedicated summarization model. Absent \u21D2 orchestrator target.
372
378
  # systemPrompt optional path to a prompt-override file.
@@ -377,6 +383,23 @@ compaction:
377
383
  # model: provider/summary-model-id
378
384
  # systemPrompt: ~/.config/clio-coder/prompts/compaction.md
379
385
 
386
+ # Non-destructive working-set eviction before summary compaction.
387
+ # enabled false skips eviction and goes directly to the summary stage.
388
+ # policy structural-v1 evicts by what the session did since
389
+ # (re-reads, edits, resolved failures, consumed listings)
390
+ # and falls back to age only under pressure;
391
+ # age-horizon is the previous age-based selection.
392
+ # target pressure ratio an applied eviction batches down to.
393
+ # protectLastTurns recent user turns whose observations remain in the working set.
394
+ # minEvictableTokens entries below this estimate remain in the working set.
395
+ context:
396
+ workingSet:
397
+ enabled: true
398
+ policy: structural-v1
399
+ target: 0.6
400
+ protectLastTurns: 6
401
+ minEvictableTokens: 200
402
+
380
403
  # Transient provider/stream retry controls for interactive chat.
381
404
  # Retryable errors include overloads, rate limits, 5xx responses, network
382
405
  # resets, and timeouts. Context overflow uses compaction recovery instead.
@@ -423,4 +446,4 @@ export {
423
446
  DEFAULT_SETTINGS,
424
447
  DEFAULT_SETTINGS_YAML
425
448
  };
426
- //# sourceMappingURL=chunk-ZDOOVTXZ.js.map
449
+ //# sourceMappingURL=chunk-4OC57DA6.js.map