opencode-swarm 7.184.9 → 7.184.11

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 (92) hide show
  1. package/README.md +26 -24
  2. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  3. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  4. package/dist/cli/{coder-settlement-wv26kvbq.js → coder-settlement-6mhw6b36.js} +11 -11
  5. package/dist/cli/{config-doctor-0v3a8gwd.js → config-doctor-tbaswv40.js} +3 -3
  6. package/dist/cli/{core-sw3g54fw.js → core-4389fcpc.js} +4 -4
  7. package/dist/cli/{curation-policy-734npcqk.js → curation-policy-xe77n9zj.js} +4 -4
  8. package/dist/cli/{curator-1ffd62zb.js → curator-asqb0cm7.js} +38 -38
  9. package/dist/cli/{curator-drift-hbpphpph.js → curator-drift-nnge4dkk.js} +9 -9
  10. package/dist/cli/curator-llm-factory-1gjzcafw.js +75 -0
  11. package/dist/cli/{evidence-summary-service-yynh7bqj.js → evidence-summary-service-cdrwfdyp.js} +17 -17
  12. package/dist/cli/{gate-evidence-72cmq7sq.js → gate-evidence-xbn83jeh.js} +8 -6
  13. package/dist/cli/guardrail-explain-xtyxjmyz.js +76 -0
  14. package/dist/cli/{guardrail-log-7202nsc9.js → guardrail-log-b6ef00v7.js} +7 -7
  15. package/dist/cli/{guardrail-reset-nwyhnz98.js → guardrail-reset-77r7jfn2.js} +38 -38
  16. package/dist/cli/{hive-promoter-0b8ht2g0.js → hive-promoter-dsrj2ar2.js} +38 -38
  17. package/dist/cli/{index-d5vkn5eg.js → index-07fqfseh.js} +2 -2
  18. package/dist/cli/{index-955e0wpp.js → index-0ajyhjht.js} +1 -1
  19. package/dist/cli/{index-1r22v0js.js → index-0mj7hc2z.js} +1 -1
  20. package/dist/cli/{index-g2jbpm6g.js → index-35cdceqf.js} +1 -1
  21. package/dist/cli/{index-cbwmx38c.js → index-3w96sd7p.js} +76 -76
  22. package/dist/cli/{index-ezagem2g.js → index-48jvqqfa.js} +2 -2
  23. package/dist/cli/{index-z5nqpnem.js → index-5cawm255.js} +5 -5
  24. package/dist/cli/{index-s9pq2q6h.js → index-5m1b70z3.js} +1 -1
  25. package/dist/cli/{index-jnts5d04.js → index-5njp971j.js} +7 -7
  26. package/dist/cli/{index-tdtqm702.js → index-645ckyxy.js} +12 -12
  27. package/dist/cli/{index-fanhmwk3.js → index-6z53ry5f.js} +2 -2
  28. package/dist/cli/{index-hp5xyqxs.js → index-7k4ksbqd.js} +1 -1
  29. package/dist/cli/{index-gj0121y5.js → index-7kmxy1rb.js} +4 -4
  30. package/dist/cli/{index-cvrtpb52.js → index-89nqyqxs.js} +3 -3
  31. package/dist/cli/{index-qjs6cgb9.js → index-8gs8qkjs.js} +2 -2
  32. package/dist/cli/{index-f2xrc6r5.js → index-908zxswj.js} +6 -6
  33. package/dist/cli/{index-kf8gkdtq.js → index-9xfxsx8y.js} +1 -1
  34. package/dist/cli/{index-5egfk9c6.js → index-aae38s4x.js} +1 -1
  35. package/dist/cli/{index-zygpw9qb.js → index-be5h97z8.js} +1 -1
  36. package/dist/cli/{index-yn0nsxwv.js → index-c0dahh34.js} +1 -1
  37. package/dist/cli/{index-cq1gpknp.js → index-cn67bp4y.js} +40 -40
  38. package/dist/cli/{index-7wth46ez.js → index-dqpq8m9w.js} +2 -2
  39. package/dist/cli/{index-48ceyvpc.js → index-e0rrj9kk.js} +5 -5
  40. package/dist/cli/{index-0hzr6vdh.js → index-ejpxkrp6.js} +2 -2
  41. package/dist/cli/{index-fx0kf5jt.js → index-gnryhmak.js} +1 -1
  42. package/dist/cli/{index-zvz722td.js → index-gqj1k2y6.js} +3 -3
  43. package/dist/cli/{index-kjetx4xq.js → index-hk0eh9qb.js} +1 -1
  44. package/dist/cli/{index-et6gxgbn.js → index-hwjr3xyg.js} +37 -6
  45. package/dist/cli/{index-hq9fezjc.js → index-j4efx148.js} +2 -2
  46. package/dist/cli/{index-rgrae86w.js → index-jhk62dp4.js} +4 -4
  47. package/dist/cli/{index-tkk06smw.js → index-kaay5kmx.js} +2 -2
  48. package/dist/cli/{index-7e1ecg26.js → index-kg2mb1m5.js} +1 -1
  49. package/dist/cli/{index-g4ft1r0z.js → index-nh5fxxc9.js} +1 -1
  50. package/dist/cli/{index-vx1dt9x3.js → index-pbwfwc0v.js} +38 -38
  51. package/dist/cli/{index-2ebf550v.js → index-q7q00ppx.js} +6 -6
  52. package/dist/cli/{index-na3qxeha.js → index-tamg9rve.js} +2 -2
  53. package/dist/cli/{index-snzz0yvz.js → index-vx0wjfc1.js} +7 -7
  54. package/dist/cli/{index-zg40ap5c.js → index-w0jbrttk.js} +3 -3
  55. package/dist/cli/{index-22qpvevn.js → index-x119gdak.js} +1 -1
  56. package/dist/cli/{index-tps93cp3.js → index-xpcvwzdq.js} +4 -4
  57. package/dist/cli/{index-v5r7w16s.js → index-xw8xdcrf.js} +5 -5
  58. package/dist/cli/{index-mk9kd5wr.js → index-ygdj73xq.js} +4 -4
  59. package/dist/cli/{index-hkbs7pcd.js → index-zz5rryxj.js} +7 -7
  60. package/dist/cli/index.js +39 -39
  61. package/dist/cli/{knowledge-escalator-a9h29ayc.js → knowledge-escalator-8cc6jcw0.js} +12 -12
  62. package/dist/cli/{knowledge-events-sjdhtwm2.js → knowledge-events-b5g6ky4h.js} +10 -10
  63. package/dist/cli/{knowledge-link-6kxpc4x5.js → knowledge-link-8tetyje0.js} +3 -3
  64. package/dist/cli/{knowledge-store-g3h4gqe7.js → knowledge-store-1w60j5xm.js} +4 -4
  65. package/dist/cli/{knowledge-validator-br05bd3x.js → knowledge-validator-sd88rjcy.js} +6 -6
  66. package/dist/cli/{mcp-167c0dnd.js → mcp-3052r65q.js} +1 -1
  67. package/dist/cli/{model-preflight-dxm5dcej.js → model-preflight-m0nwfsx8.js} +38 -38
  68. package/dist/cli/{pending-delegations-q9n8bry1.js → pending-delegations-5nx22evh.js} +10 -10
  69. package/dist/cli/{pr-subscriptions-qs9fhjpk.js → pr-subscriptions-kas44ty9.js} +10 -10
  70. package/dist/cli/{pr-workflow-gate-nfbbc2c0.js → pr-workflow-gate-pmggnw1j.js} +38 -38
  71. package/dist/cli/{runner-wfd9dys9.js → runner-ff0bj9w0.js} +4 -4
  72. package/dist/cli/{scan-cursor-z59x53tn.js → scan-cursor-yw12hvtc.js} +5 -5
  73. package/dist/cli/{schema-y3rs9evj.js → schema-1g1y1d5q.js} +2 -2
  74. package/dist/cli/{scope-persistence-54g2j63h.js → scope-persistence-de472fxy.js} +14 -14
  75. package/dist/cli/{server-gwgsy9t3.js → server-1n00bga4.js} +40 -38
  76. package/dist/cli/{skill-generator-qc4bfp4z.js → skill-generator-c5wbbjqx.js} +14 -14
  77. package/dist/cli/{snapshot-coordination-init-0pytgxbn.js → snapshot-coordination-init-gwj594hc.js} +38 -38
  78. package/dist/cli/{speckit-checkoff-d14y1jnc.js → speckit-checkoff-hc479v4r.js} +5 -5
  79. package/dist/cli/{workspace-snapshot-bvnyzzr2.js → workspace-snapshot-nrbvjh1c.js} +3 -3
  80. package/dist/cli/{worktree-collision-ownership-9gmtsqmf.js → worktree-collision-ownership-jvgxxnf9.js} +11 -11
  81. package/dist/cli/{worktree-isolation-22dntk4t.js → worktree-isolation-r9hr23r8.js} +38 -38
  82. package/dist/gate-evidence.d.ts +34 -0
  83. package/dist/index.js +19 -13
  84. package/dist/todo/todo-gate.d.ts +37 -0
  85. package/dist/tools/build-check.d.ts +6 -2
  86. package/dist/tools/phase-complete/gates/index.d.ts +1 -0
  87. package/dist/tools/phase-complete/gates/todo-gate.d.ts +14 -0
  88. package/dist/tools/phase-complete.d.ts +2 -1
  89. package/dist/tools/tool-metadata.d.ts +1 -1
  90. package/package.json +1 -1
  91. package/dist/cli/curator-llm-factory-0n05cgjf.js +0 -75
  92. package/dist/cli/guardrail-explain-sadek1sk.js +0 -76
package/README.md CHANGED
@@ -505,7 +505,7 @@ Configure via:
505
505
  }
506
506
  ```
507
507
 
508
- > **Note:** Some configuration fields (`max_trajectory_lines`, `escalation_enabled`) are defined in schema but not yet enforced at runtime.
508
+ > **Note:** Both `max_trajectory_lines` and `escalation_enabled` are enforced at runtime. `max_trajectory_lines` is the one knob bounding the session trajectory store — the cold-session read, the append-path compaction, and denied-call recording all use it; `escalation_enabled` gates the escalation ladder (advisory → hard stop). Terminal/cooldown semantics live in `docs/configuration.md` (Hard-stop episode state machine).
509
509
 
510
510
  ### Persistent Memory
511
511
 
@@ -565,11 +565,12 @@ The Context Budget Guard monitors how full the model's context window is getting
565
565
  ### Default Behavior
566
566
 
567
567
  - **Enabled automatically** — No setup required. Swarm starts tracking context usage right away.
568
- - **What it measures** — The estimated total tokens across **all** messages in the conversation (every text part of every message — your prompts, the model's responses, and injected content alike), divided by the model's context window. It does **not** measure only swarm-injected content, and it does **not** read `max_injection_tokens`.
568
+ - **What it measures** — The total tokens across **all** messages in the conversation (every text part of every message — your prompts, the model's responses, and injected content alike), divided by the model's context window. It does **not** measure only swarm-injected content, and it does **not** read `max_injection_tokens`. Token counts come from one canonical estimator, `estimateTokens` in `src/hooks/utils.ts` (flat ~0.33 tokens/char), unless provider-reported usage is available for the turn, which stays authoritative.
569
569
  - **Where the window comes from** — Your **live model**, not a constant. Resolution order: an explicit `context_budget.model_limits` entry (`"<provider>/<model>"`, then `"<model>"`, then `"default"`) → the context window the OpenCode host reports for the model you are running (`model.limit.context`, already provider-specific, so a Copilot entry and a first-party entry for the same model resolve differently) → a static fallback table → `128000` as a last resort when nothing else is known. Set a `model_limits` entry only if you want a **smaller working budget** than your model's real window.
570
- - **Warning threshold (0.7 ratio)** — When total conversation tokens reach 70% of the model context window (e.g. ~89,600 on a 128k model, ~700,000 on a 1M model), the architect receives a one-time advisory warning. This is informational — execution continues normally.
571
- - **Critical threshold (0.9 ratio)** — When total conversation tokens reach 90% of the model context window (e.g. ~115,200 on a 128k model, ~900,000 on a 1M model), the architect receives a critical alert with a recommendation to run `/swarm handoff`. This is also one-time only.
572
- - **Non-nagging** — Alerts fire once per session, not repeatedly. You won't be pestered every turn.
570
+ - **Warning threshold (0.7 ratio)** — When total conversation tokens reach 70% of the model context window (e.g. ~89,600 on a 128k model, ~700,000 on a 1M model), the architect receives an advisory warning recommending a summary offload to `.swarm/context.md`. This is informational by itself — execution continues normally.
571
+ - **Critical threshold (0.9 ratio)** — When total conversation tokens reach 90% of the model context window (e.g. ~115,200 on a 128k model, ~900,000 on a 1M model), the architect receives a critical alert recommending `/swarm handoff` — and, when `enforce` is `true` (the default), the guard also prunes the outgoing request (see the next bullet).
572
+ - **Hard enforcement (default on)** — With `enforce: true` (default), crossing the critical threshold masks eligible completed tool outputs (those older than `recent_window` turns OR longer than `tool_output_mask_threshold` characters, in turns not protected by `preserve_last_n_turns`) and prunes lower-priority messages toward `prune_target` of the window (best-effort: pruning stops at the target or when no eligible removable message remains, whichever comes first). All of this happens **in the outgoing request only** — the current turn's message array as sent to the provider. Your **persisted history** is never rewritten: stored conversation, `.swarm/` artifacts, and tool results on disk are untouched. External data — provider-reported usage and the live model limit — is read, never written.
573
+ - **Warnings repeat while above threshold** — The warning text is prepended to the current user message on every turn above the threshold; there is no once-per-session suppression. Pruning and masking likewise re-apply each turn while usage stays above the critical threshold.
573
574
  - **Who sees warnings** — Only the architect receives these warnings. Other agents are unaware of the budget.
574
575
 
575
576
  To disable entirely, set `context_budget.enabled: false` in your swarm config.
@@ -737,15 +738,15 @@ Every candidate passes a 3-gate pipeline before entering quarantine:
737
738
  | `context_budget.max_injection_tokens` | number | `4000` | Separate per-turn cap on system-enhancer injection. It is NOT the guard's budget — the guard measures total conversation tokens against `model_limits`, not this value |
738
739
  | `context_budget.warn_threshold` | number | `0.7` | Ratio (0.0-1.0) of the model context window at which total conversation tokens trigger a warning advisory |
739
740
  | `context_budget.critical_threshold` | number | `0.9` | Ratio (0.0-1.0) of the model context window at which total conversation tokens trigger a critical alert with handoff recommendation |
740
- | `context_budget.enforce` | boolean | `true` | When true, enforces budget limits and may trigger handoffs |
741
- | `context_budget.prune_target` | number | `0.7` | Ratio (0.0-1.0) of context to preserve when pruning occurs |
742
- | `context_budget.preserve_last_n_turns` | number | `4` | Number of recent turns to preserve when pruning |
743
- | `context_budget.recent_window` | number | `10` | Number of turns to consider as "recent" for scoring |
741
+ | `context_budget.enforce` | boolean | `true` | When true (default), crossing the critical threshold masks large completed tool outputs and prunes lower-priority messages in the **outgoing request** toward `prune_target`. Execution is never blocked or aborted |
742
+ | `context_budget.prune_target` | number | `0.7` | Ratio (0.0-1.0) of the context window the outgoing request is pruned toward when enforcement runs |
743
+ | `context_budget.preserve_last_n_turns` | number | `4` | Number of recent turns protected from pruning |
744
+ | `context_budget.recent_window` | number | `10` | Age (in turns) beyond which a completed tool output becomes eligible for masking during enforcement; the latest `preserve_last_n_turns` turns are always protected |
744
745
  | `context_budget.tracked_agents` | string[] | `['architect']` | Agents to track for context budget warnings |
745
746
  | `context_budget.enforce_on_agent_switch` | boolean | `true` | Enforce budget limits when switching agents |
746
747
  | `context_budget.model_limits` | record | `{}` | Per-model token limit **overrides**, keyed by `"<provider>/<model>"`, `"<model>"`, or `"default"`. Empty by default so the live model's own context window is used; set an entry only to impose a smaller working budget |
747
748
  | `context_budget.unified_injection_tokens` | number | `undefined` | Opt-in unified ceiling (tokens) for combined system-enhancer + knowledge-injector injection per turn. When set, both hooks share this budget with proportional split |
748
- | `context_budget.tool_output_mask_threshold` | number | `2000` | Threshold for masking tool outputs (chars) |
749
+ | `context_budget.tool_output_mask_threshold` | number | `2000` | Character threshold (chars, not tokens): during enforcement, a completed tool output in a non-protected turn is masked when it is **older than `recent_window` turns OR longer than this many characters** (either condition) |
749
750
  | `skills.enabled` | boolean | `false` | Gates the 7 skill-management tools (`skill_generate`, `skill_list`, `skill_apply`, `skill_inspect`, `skill_regenerate`, `skill_retire`, `skill_improve`) behind an opt-in flag. When `false` (default), these tools are host-denied for every agent except `skill_improver` — genuinely unreachable at request time (issue #2528). |
750
751
  | `skill_opt.enabled` | boolean | `false` | Master opt-in for the governed skill optimizer (`/swarm skill-opt`). `run` also requires `--confirm`; `plan`/`status`/`diff`/`history` are always available. See `docs/skill-optimizer.md`. |
751
752
  | `skill_opt.deadband` | number | `0` | Promotion policy deadband forwarded to the evaluation substrate. |
@@ -753,9 +754,9 @@ Every candidate passes a 3-gate pipeline before entering quarantine:
753
754
  | `skill_opt.max_transient_retries` | number | `5` | Max transient-infra retries before an infra failure becomes inconclusive. |
754
755
  | `context_budget.scoring.enabled` | boolean | `false` | Enable context scoring/ranking |
755
756
  | `context_budget.scoring.max_candidates` | number | `100` | Maximum items to score (10-500) |
756
- | `context_budget.scoring.weights` | object | `{ recency: 0.3, ... }` | Scoring weights for priority |
757
- | `context_budget.scoring.decision_decay` | object | `{ mode: 'exponential', half_life_hours: 24 }` | Decision relevance decay |
758
- | `context_budget.scoring.token_ratios` | object | `{ prose: 0.25, code: 0.4, ... }` | Token cost multipliers |
757
+ | `context_budget.scoring.weights` | object | `{ phase: 1.0, current_task: 2.0, blocked_task: 1.5, recent_failure: 2.5, recent_success: 0.5, evidence_presence: 1.0, decision_recency: 1.5, dependency_proximity: 1.0 }` | Per-signal priority weights (each 0-5). Only these eight keys are read |
758
+ | `context_budget.scoring.decision_decay` | object | `{ mode: 'exponential', half_life_hours: 24 }` | Decision relevance decay (`mode`: linear or exponential; `half_life_hours` 1-168) |
759
+ | `context_budget.scoring.token_ratios` | object | `{ prose: 0.25, code: 0.4, markdown: 0.3, json: 0.35 }` | Accepted for backward compatibility only; deprecated and inert at runtime — never read. Token costs always use the canonical flat estimator (`estimateTokens`, ~0.33 tokens/char), never per-content ratios |
759
760
 
760
761
  ### Example Configurations
761
762
 
@@ -787,14 +788,14 @@ Every candidate passes a 3-gate pipeline before entering quarantine:
787
788
  "scoring": {
788
789
  "enabled": false,
789
790
  "max_candidates": 100,
790
- "weights": { "recency": 0.3, "relevance": 0.4, "importance": 0.3 },
791
- "decision_decay": { "mode": "exponential", "half_life_hours": 24 },
792
- "token_ratios": { "prose": 0.25, "code": 0.4, "json": 0.6, "logs": 0.1 }
791
+ "decision_decay": { "mode": "exponential", "half_life_hours": 24 }
793
792
  }
794
793
  }
795
794
  }
796
795
  ```
797
796
 
797
+ (Omitted keys — `weights` above — take the schema defaults listed in the table; only the eight documented weight keys are read.)
798
+
798
799
  **Aggressive (for long-running sessions):**
799
800
  ```json
800
801
  {
@@ -814,21 +815,22 @@ Every candidate passes a 3-gate pipeline before entering quarantine:
814
815
  "scoring": {
815
816
  "enabled": true,
816
817
  "max_candidates": 50,
817
- "weights": { "recency": 0.5, "relevance": 0.3, "importance": 0.2 },
818
- "decision_decay": { "mode": "linear", "half_life_hours": 12 },
819
- "token_ratios": { "prose": 0.2, "code": 0.35, "json": 0.5, "logs": 0.05 }
818
+ "weights": { "phase": 1.5, "current_task": 3.0, "recent_failure": 3.0, "recent_success": 0.3, "decision_recency": 2.0 },
819
+ "decision_decay": { "mode": "linear", "half_life_hours": 12 }
820
820
  }
821
821
  }
822
822
  }
823
823
  ```
824
824
 
825
+ > **Note on `scoring.token_ratios`:** the key is still accepted by the config schema for backward compatibility, but it is deprecated and inert — no runtime code reads it, and per-content token ratios are deliberately not used. Token costs for both normal and scoring accounting always come from the one canonical estimator (`estimateTokens` in `src/hooks/utils.ts`, flat ~0.33 tokens/char); when the provider reports token usage, that figure stays authoritative.
826
+
825
827
  ### What This Does NOT Do
826
828
 
827
- - **Does NOT prune chat history** — Your conversation with the model is untouched
828
- - **Does NOT modify tool outputs** — What tools return is unchanged
829
- - **Does NOT block execution** — The guard is advisory only; it warns but never stops the pipeline
830
- - **Does NOT interact with compaction.auto** — Separate feature with separate configuration
831
- - **Only measures swarm's injected context** — Not the full context window, just what Swarm adds
829
+ - **Does NOT block execution** — The guard never aborts or stops the pipeline. Enforcement trims the request, not the run.
830
+ - **Does NOT modify persisted history** — Masking and pruning mutate only the **outgoing request** for the current turn (the message array sent to the provider). Stored conversation, `.swarm/` artifacts, and tool results on disk are untouched.
831
+ - **Does NOT rewrite tool results** — A masked tool output is a placeholder in the current request; the tool's stored result is unchanged.
832
+ - **Does NOT interact with compaction.auto** — Separate feature with separate configuration.
833
+ - **Does NOT measure only swarm-injected context** — It measures the whole conversation against the model's context window, using provider-reported usage when available and the canonical flat estimator (`estimateTokens`, ~0.33 tokens/char) otherwise.
832
834
 
833
835
  </details>
834
836
 
@@ -14,25 +14,25 @@ import {
14
14
  releaseCoderDispatchOwnership,
15
15
  settleCoderDispatch,
16
16
  transferCoderSettlementToBackground
17
- } from "./index-snzz0yvz.js";
18
- import"./index-d5vkn5eg.js";
19
- import"./index-7wth46ez.js";
20
- import"./index-et6gxgbn.js";
21
- import"./index-tps93cp3.js";
22
- import"./index-fx0kf5jt.js";
17
+ } from "./index-vx0wjfc1.js";
18
+ import"./index-07fqfseh.js";
19
+ import"./index-dqpq8m9w.js";
20
+ import"./index-hwjr3xyg.js";
21
+ import"./index-xpcvwzdq.js";
22
+ import"./index-gnryhmak.js";
23
23
  import"./index-2s7dvzff.js";
24
- import"./index-7e1ecg26.js";
25
- import"./index-22qpvevn.js";
26
- import"./index-g2jbpm6g.js";
24
+ import"./index-kg2mb1m5.js";
25
+ import"./index-x119gdak.js";
26
+ import"./index-35cdceqf.js";
27
27
  import"./index-t7hmqgjy.js";
28
28
  import"./index-x1gyqgze.js";
29
29
  import"./index-mc72pk74.js";
30
30
  import"./index-c1ggtmpm.js";
31
31
  import"./index-ejhxgyvm.js";
32
32
  import"./index-7g4c7s5r.js";
33
- import"./index-1r22v0js.js";
33
+ import"./index-0mj7hc2z.js";
34
34
  import"./index-zxdawwc7.js";
35
- import"./index-ezagem2g.js";
35
+ import"./index-48jvqqfa.js";
36
36
  import"./index-gknz3bv1.js";
37
37
  import"./index-zpsr8rpc.js";
38
38
  import"./index-9rwhas09.js";
@@ -16,12 +16,12 @@ import {
16
16
  shouldRunOnStartup,
17
17
  writeBackupArtifact,
18
18
  writeDoctorArtifact
19
- } from "./index-qjs6cgb9.js";
19
+ } from "./index-8gs8qkjs.js";
20
20
  import"./index-6b295cas.js";
21
21
  import"./index-ry16d01s.js";
22
22
  import"./index-c1ggtmpm.js";
23
- import"./index-0hzr6vdh.js";
24
- import"./index-ezagem2g.js";
23
+ import"./index-ejpxkrp6.js";
24
+ import"./index-48jvqqfa.js";
25
25
  import"./index-bk5tah7q.js";
26
26
  import"./index-gknz3bv1.js";
27
27
  import"./index-zpsr8rpc.js";
@@ -14,14 +14,14 @@ import {
14
14
  resolveWorktreeBaseDir,
15
15
  shortenWorktreePath,
16
16
  writeLaneProfileToDiskReal
17
- } from "./index-tps93cp3.js";
18
- import"./index-fx0kf5jt.js";
17
+ } from "./index-xpcvwzdq.js";
18
+ import"./index-gnryhmak.js";
19
19
  import"./index-2s7dvzff.js";
20
20
  import"./index-mc72pk74.js";
21
21
  import"./index-c1ggtmpm.js";
22
- import"./index-1r22v0js.js";
22
+ import"./index-0mj7hc2z.js";
23
23
  import"./index-zxdawwc7.js";
24
- import"./index-ezagem2g.js";
24
+ import"./index-48jvqqfa.js";
25
25
  import"./index-zpsr8rpc.js";
26
26
  import"./index-zgwm4ryv.js";
27
27
  import"./index-a76rekgs.js";
@@ -5,18 +5,18 @@ import {
5
5
  authorizeCuration,
6
6
  buildConfigFingerprintInput,
7
7
  readCohortConfigFingerprint
8
- } from "./index-955e0wpp.js";
8
+ } from "./index-0ajyhjht.js";
9
9
  import"./index-rtry5xyf.js";
10
10
  import"./index-vzm6zre7.js";
11
- import"./index-kjetx4xq.js";
12
- import"./index-g2jbpm6g.js";
11
+ import"./index-hk0eh9qb.js";
12
+ import"./index-35cdceqf.js";
13
13
  import"./index-t7hmqgjy.js";
14
14
  import"./index-x1gyqgze.js";
15
15
  import"./index-mc72pk74.js";
16
16
  import"./index-c1ggtmpm.js";
17
17
  import"./index-ejhxgyvm.js";
18
18
  import"./index-7g4c7s5r.js";
19
- import"./index-1r22v0js.js";
19
+ import"./index-0mj7hc2z.js";
20
20
  import"./index-gknz3bv1.js";
21
21
  import"./index-zpsr8rpc.js";
22
22
  import"./index-zgwm4ryv.js";
@@ -14,68 +14,68 @@ import {
14
14
  runCuratorInit,
15
15
  runCuratorPhase,
16
16
  writeCuratorSummary
17
- } from "./index-cbwmx38c.js";
18
- import"./index-zg40ap5c.js";
17
+ } from "./index-3w96sd7p.js";
18
+ import"./index-w0jbrttk.js";
19
19
  import"./index-hamqvzqn.js";
20
- import"./index-zygpw9qb.js";
21
- import"./index-cvrtpb52.js";
22
- import"./index-qjs6cgb9.js";
23
- import"./index-tdtqm702.js";
24
- import"./index-g4ft1r0z.js";
20
+ import"./index-be5h97z8.js";
21
+ import"./index-89nqyqxs.js";
22
+ import"./index-8gs8qkjs.js";
23
+ import"./index-645ckyxy.js";
24
+ import"./index-nh5fxxc9.js";
25
25
  import"./index-txdagbh7.js";
26
- import"./index-yn0nsxwv.js";
26
+ import"./index-c0dahh34.js";
27
27
  import"./index-6b295cas.js";
28
- import"./index-rgrae86w.js";
29
- import"./index-v5r7w16s.js";
30
- import"./index-na3qxeha.js";
28
+ import"./index-jhk62dp4.js";
29
+ import"./index-xw8xdcrf.js";
30
+ import"./index-tamg9rve.js";
31
31
  import"./index-rdec0y3z.js";
32
- import"./index-2ebf550v.js";
32
+ import"./index-q7q00ppx.js";
33
33
  import"./index-cjapb4hy.js";
34
34
  import"./index-zsrtt42s.js";
35
- import"./index-snzz0yvz.js";
36
- import"./index-d5vkn5eg.js";
37
- import"./index-7wth46ez.js";
35
+ import"./index-vx0wjfc1.js";
36
+ import"./index-07fqfseh.js";
37
+ import"./index-dqpq8m9w.js";
38
38
  import"./index-pt7h91zc.js";
39
39
  import"./index-q7sjgr1y.js";
40
- import"./index-tkk06smw.js";
41
- import"./index-et6gxgbn.js";
42
- import"./index-tps93cp3.js";
43
- import"./index-f2xrc6r5.js";
44
- import"./index-jnts5d04.js";
45
- import"./index-fx0kf5jt.js";
40
+ import"./index-kaay5kmx.js";
41
+ import"./index-hwjr3xyg.js";
42
+ import"./index-xpcvwzdq.js";
43
+ import"./index-908zxswj.js";
44
+ import"./index-5njp971j.js";
45
+ import"./index-gnryhmak.js";
46
46
  import"./index-2s7dvzff.js";
47
- import"./index-gj0121y5.js";
48
- import"./index-955e0wpp.js";
47
+ import"./index-7kmxy1rb.js";
48
+ import"./index-0ajyhjht.js";
49
49
  import"./index-rtry5xyf.js";
50
- import"./index-zvz722td.js";
50
+ import"./index-gqj1k2y6.js";
51
51
  import"./index-frcemc0b.js";
52
52
  import"./index-0725jpp7.js";
53
- import"./index-z5nqpnem.js";
54
- import"./index-48ceyvpc.js";
55
- import"./index-7e1ecg26.js";
56
- import"./index-hq9fezjc.js";
57
- import"./index-5egfk9c6.js";
58
- import"./index-s9pq2q6h.js";
53
+ import"./index-5cawm255.js";
54
+ import"./index-e0rrj9kk.js";
55
+ import"./index-kg2mb1m5.js";
56
+ import"./index-j4efx148.js";
57
+ import"./index-aae38s4x.js";
58
+ import"./index-5m1b70z3.js";
59
59
  import"./index-rdm3px0g.js";
60
60
  import"./index-ry16d01s.js";
61
- import"./index-22qpvevn.js";
62
- import"./index-hkbs7pcd.js";
61
+ import"./index-x119gdak.js";
62
+ import"./index-zz5rryxj.js";
63
63
  import"./index-vzm6zre7.js";
64
64
  import"./index-ae75rja9.js";
65
- import"./index-kjetx4xq.js";
66
- import"./index-g2jbpm6g.js";
65
+ import"./index-hk0eh9qb.js";
66
+ import"./index-35cdceqf.js";
67
67
  import"./index-t7hmqgjy.js";
68
68
  import"./index-x1gyqgze.js";
69
69
  import"./index-mc72pk74.js";
70
70
  import"./index-c1ggtmpm.js";
71
71
  import"./index-ejhxgyvm.js";
72
72
  import"./index-7g4c7s5r.js";
73
- import"./index-1r22v0js.js";
73
+ import"./index-0mj7hc2z.js";
74
74
  import"./index-gx2vp8gx.js";
75
- import"./index-hp5xyqxs.js";
75
+ import"./index-7k4ksbqd.js";
76
76
  import"./index-zxdawwc7.js";
77
- import"./index-0hzr6vdh.js";
78
- import"./index-ezagem2g.js";
77
+ import"./index-ejpxkrp6.js";
78
+ import"./index-48jvqqfa.js";
79
79
  import"./index-bk5tah7q.js";
80
80
  import"./index-gknz3bv1.js";
81
81
  import"./index-zpsr8rpc.js";
@@ -5,24 +5,24 @@ import {
5
5
  readPriorDriftReports,
6
6
  runDeterministicDriftCheck,
7
7
  writeDriftReport
8
- } from "./index-cvrtpb52.js";
9
- import"./index-yn0nsxwv.js";
10
- import"./index-tkk06smw.js";
11
- import"./index-fx0kf5jt.js";
8
+ } from "./index-89nqyqxs.js";
9
+ import"./index-c0dahh34.js";
10
+ import"./index-kaay5kmx.js";
11
+ import"./index-gnryhmak.js";
12
12
  import"./index-2s7dvzff.js";
13
13
  import"./index-0725jpp7.js";
14
- import"./index-s9pq2q6h.js";
14
+ import"./index-5m1b70z3.js";
15
15
  import"./index-rdm3px0g.js";
16
16
  import"./index-ry16d01s.js";
17
17
  import"./index-mc72pk74.js";
18
18
  import"./index-c1ggtmpm.js";
19
19
  import"./index-ejhxgyvm.js";
20
20
  import"./index-7g4c7s5r.js";
21
- import"./index-1r22v0js.js";
22
- import"./index-hp5xyqxs.js";
21
+ import"./index-0mj7hc2z.js";
22
+ import"./index-7k4ksbqd.js";
23
23
  import"./index-zxdawwc7.js";
24
- import"./index-0hzr6vdh.js";
25
- import"./index-ezagem2g.js";
24
+ import"./index-ejpxkrp6.js";
25
+ import"./index-48jvqqfa.js";
26
26
  import"./index-bk5tah7q.js";
27
27
  import"./index-gknz3bv1.js";
28
28
  import"./index-zpsr8rpc.js";
@@ -0,0 +1,75 @@
1
+ // @bun
2
+ import {
3
+ createCuratorLLMDelegate
4
+ } from "./index-3w96sd7p.js";
5
+ import"./index-w0jbrttk.js";
6
+ import"./index-hamqvzqn.js";
7
+ import"./index-be5h97z8.js";
8
+ import"./index-89nqyqxs.js";
9
+ import"./index-8gs8qkjs.js";
10
+ import"./index-645ckyxy.js";
11
+ import"./index-nh5fxxc9.js";
12
+ import"./index-txdagbh7.js";
13
+ import"./index-c0dahh34.js";
14
+ import"./index-6b295cas.js";
15
+ import"./index-jhk62dp4.js";
16
+ import"./index-xw8xdcrf.js";
17
+ import"./index-tamg9rve.js";
18
+ import"./index-rdec0y3z.js";
19
+ import"./index-q7q00ppx.js";
20
+ import"./index-cjapb4hy.js";
21
+ import"./index-zsrtt42s.js";
22
+ import"./index-vx0wjfc1.js";
23
+ import"./index-07fqfseh.js";
24
+ import"./index-dqpq8m9w.js";
25
+ import"./index-pt7h91zc.js";
26
+ import"./index-q7sjgr1y.js";
27
+ import"./index-kaay5kmx.js";
28
+ import"./index-hwjr3xyg.js";
29
+ import"./index-xpcvwzdq.js";
30
+ import"./index-908zxswj.js";
31
+ import"./index-5njp971j.js";
32
+ import"./index-gnryhmak.js";
33
+ import"./index-2s7dvzff.js";
34
+ import"./index-7kmxy1rb.js";
35
+ import"./index-0ajyhjht.js";
36
+ import"./index-rtry5xyf.js";
37
+ import"./index-gqj1k2y6.js";
38
+ import"./index-frcemc0b.js";
39
+ import"./index-0725jpp7.js";
40
+ import"./index-5cawm255.js";
41
+ import"./index-e0rrj9kk.js";
42
+ import"./index-kg2mb1m5.js";
43
+ import"./index-j4efx148.js";
44
+ import"./index-aae38s4x.js";
45
+ import"./index-5m1b70z3.js";
46
+ import"./index-rdm3px0g.js";
47
+ import"./index-ry16d01s.js";
48
+ import"./index-x119gdak.js";
49
+ import"./index-zz5rryxj.js";
50
+ import"./index-vzm6zre7.js";
51
+ import"./index-ae75rja9.js";
52
+ import"./index-hk0eh9qb.js";
53
+ import"./index-35cdceqf.js";
54
+ import"./index-t7hmqgjy.js";
55
+ import"./index-x1gyqgze.js";
56
+ import"./index-mc72pk74.js";
57
+ import"./index-c1ggtmpm.js";
58
+ import"./index-ejhxgyvm.js";
59
+ import"./index-7g4c7s5r.js";
60
+ import"./index-0mj7hc2z.js";
61
+ import"./index-gx2vp8gx.js";
62
+ import"./index-7k4ksbqd.js";
63
+ import"./index-zxdawwc7.js";
64
+ import"./index-ejpxkrp6.js";
65
+ import"./index-48jvqqfa.js";
66
+ import"./index-bk5tah7q.js";
67
+ import"./index-gknz3bv1.js";
68
+ import"./index-zpsr8rpc.js";
69
+ import"./index-wvghb3x6.js";
70
+ import"./index-9rwhas09.js";
71
+ import"./index-zgwm4ryv.js";
72
+ import"./index-a76rekgs.js";
73
+ export {
74
+ createCuratorLLMDelegate
75
+ };
@@ -6,39 +6,39 @@ import {
6
6
  loadPlanJsonOnly,
7
7
  mergeDurableGateEntriesFromEvidence,
8
8
  readDurableGateEvidence
9
- } from "./index-tdtqm702.js";
10
- import"./index-g4ft1r0z.js";
9
+ } from "./index-645ckyxy.js";
10
+ import"./index-nh5fxxc9.js";
11
11
  import"./index-txdagbh7.js";
12
- import"./index-yn0nsxwv.js";
12
+ import"./index-c0dahh34.js";
13
13
  import"./index-6b295cas.js";
14
14
  import"./index-zsrtt42s.js";
15
- import"./index-tkk06smw.js";
16
- import"./index-et6gxgbn.js";
17
- import"./index-tps93cp3.js";
18
- import"./index-fx0kf5jt.js";
15
+ import"./index-kaay5kmx.js";
16
+ import"./index-hwjr3xyg.js";
17
+ import"./index-xpcvwzdq.js";
18
+ import"./index-gnryhmak.js";
19
19
  import"./index-2s7dvzff.js";
20
20
  import"./index-frcemc0b.js";
21
21
  import"./index-0725jpp7.js";
22
- import"./index-48ceyvpc.js";
23
- import"./index-7e1ecg26.js";
24
- import"./index-5egfk9c6.js";
25
- import"./index-s9pq2q6h.js";
22
+ import"./index-e0rrj9kk.js";
23
+ import"./index-kg2mb1m5.js";
24
+ import"./index-aae38s4x.js";
25
+ import"./index-5m1b70z3.js";
26
26
  import"./index-rdm3px0g.js";
27
27
  import"./index-ry16d01s.js";
28
- import"./index-22qpvevn.js";
29
- import"./index-g2jbpm6g.js";
28
+ import"./index-x119gdak.js";
29
+ import"./index-35cdceqf.js";
30
30
  import"./index-t7hmqgjy.js";
31
31
  import"./index-x1gyqgze.js";
32
32
  import"./index-mc72pk74.js";
33
33
  import"./index-c1ggtmpm.js";
34
34
  import"./index-ejhxgyvm.js";
35
35
  import"./index-7g4c7s5r.js";
36
- import"./index-1r22v0js.js";
36
+ import"./index-0mj7hc2z.js";
37
37
  import"./index-gx2vp8gx.js";
38
- import"./index-hp5xyqxs.js";
38
+ import"./index-7k4ksbqd.js";
39
39
  import"./index-zxdawwc7.js";
40
- import"./index-0hzr6vdh.js";
41
- import"./index-ezagem2g.js";
40
+ import"./index-ejpxkrp6.js";
41
+ import"./index-48jvqqfa.js";
42
42
  import"./index-bk5tah7q.js";
43
43
  import"./index-gknz3bv1.js";
44
44
  import"./index-zpsr8rpc.js";
@@ -21,24 +21,25 @@ import {
21
21
  readTaskEvidenceState,
22
22
  recordAgentDispatch,
23
23
  recordGateEvidence,
24
+ recordTodoScanEvidence,
24
25
  reduceTaskWorkflowSnapshot,
25
26
  transitionTaskWorkflowEvidence,
26
27
  transitionTaskWorkflowEvidenceWithStatus,
27
28
  withTaskEvidenceTransaction
28
- } from "./index-et6gxgbn.js";
29
- import"./index-tps93cp3.js";
30
- import"./index-fx0kf5jt.js";
29
+ } from "./index-hwjr3xyg.js";
30
+ import"./index-xpcvwzdq.js";
31
+ import"./index-gnryhmak.js";
31
32
  import"./index-2s7dvzff.js";
32
- import"./index-g2jbpm6g.js";
33
+ import"./index-35cdceqf.js";
33
34
  import"./index-t7hmqgjy.js";
34
35
  import"./index-x1gyqgze.js";
35
36
  import"./index-mc72pk74.js";
36
37
  import"./index-c1ggtmpm.js";
37
38
  import"./index-ejhxgyvm.js";
38
39
  import"./index-7g4c7s5r.js";
39
- import"./index-1r22v0js.js";
40
+ import"./index-0mj7hc2z.js";
40
41
  import"./index-zxdawwc7.js";
41
- import"./index-ezagem2g.js";
42
+ import"./index-48jvqqfa.js";
42
43
  import"./index-gknz3bv1.js";
43
44
  import"./index-zpsr8rpc.js";
44
45
  import"./index-9rwhas09.js";
@@ -49,6 +50,7 @@ export {
49
50
  transitionTaskWorkflowEvidenceWithStatus,
50
51
  transitionTaskWorkflowEvidence,
51
52
  reduceTaskWorkflowSnapshot,
53
+ recordTodoScanEvidence,
52
54
  recordGateEvidence,
53
55
  recordAgentDispatch,
54
56
  readTaskEvidenceState,
@@ -0,0 +1,76 @@
1
+ // @bun
2
+ import {
3
+ handleGuardrailExplain
4
+ } from "./index-6z53ry5f.js";
5
+ import"./index-3w96sd7p.js";
6
+ import"./index-w0jbrttk.js";
7
+ import"./index-hamqvzqn.js";
8
+ import"./index-be5h97z8.js";
9
+ import"./index-89nqyqxs.js";
10
+ import"./index-8gs8qkjs.js";
11
+ import"./index-645ckyxy.js";
12
+ import"./index-nh5fxxc9.js";
13
+ import"./index-txdagbh7.js";
14
+ import"./index-c0dahh34.js";
15
+ import"./index-6b295cas.js";
16
+ import"./index-jhk62dp4.js";
17
+ import"./index-xw8xdcrf.js";
18
+ import"./index-tamg9rve.js";
19
+ import"./index-rdec0y3z.js";
20
+ import"./index-q7q00ppx.js";
21
+ import"./index-cjapb4hy.js";
22
+ import"./index-zsrtt42s.js";
23
+ import"./index-vx0wjfc1.js";
24
+ import"./index-07fqfseh.js";
25
+ import"./index-dqpq8m9w.js";
26
+ import"./index-pt7h91zc.js";
27
+ import"./index-q7sjgr1y.js";
28
+ import"./index-kaay5kmx.js";
29
+ import"./index-hwjr3xyg.js";
30
+ import"./index-xpcvwzdq.js";
31
+ import"./index-908zxswj.js";
32
+ import"./index-5njp971j.js";
33
+ import"./index-gnryhmak.js";
34
+ import"./index-2s7dvzff.js";
35
+ import"./index-7kmxy1rb.js";
36
+ import"./index-0ajyhjht.js";
37
+ import"./index-rtry5xyf.js";
38
+ import"./index-gqj1k2y6.js";
39
+ import"./index-frcemc0b.js";
40
+ import"./index-0725jpp7.js";
41
+ import"./index-5cawm255.js";
42
+ import"./index-e0rrj9kk.js";
43
+ import"./index-kg2mb1m5.js";
44
+ import"./index-j4efx148.js";
45
+ import"./index-aae38s4x.js";
46
+ import"./index-5m1b70z3.js";
47
+ import"./index-rdm3px0g.js";
48
+ import"./index-ry16d01s.js";
49
+ import"./index-x119gdak.js";
50
+ import"./index-zz5rryxj.js";
51
+ import"./index-vzm6zre7.js";
52
+ import"./index-ae75rja9.js";
53
+ import"./index-hk0eh9qb.js";
54
+ import"./index-35cdceqf.js";
55
+ import"./index-t7hmqgjy.js";
56
+ import"./index-x1gyqgze.js";
57
+ import"./index-mc72pk74.js";
58
+ import"./index-c1ggtmpm.js";
59
+ import"./index-ejhxgyvm.js";
60
+ import"./index-7g4c7s5r.js";
61
+ import"./index-0mj7hc2z.js";
62
+ import"./index-gx2vp8gx.js";
63
+ import"./index-7k4ksbqd.js";
64
+ import"./index-zxdawwc7.js";
65
+ import"./index-ejpxkrp6.js";
66
+ import"./index-48jvqqfa.js";
67
+ import"./index-bk5tah7q.js";
68
+ import"./index-gknz3bv1.js";
69
+ import"./index-zpsr8rpc.js";
70
+ import"./index-wvghb3x6.js";
71
+ import"./index-9rwhas09.js";
72
+ import"./index-zgwm4ryv.js";
73
+ import"./index-a76rekgs.js";
74
+ export {
75
+ handleGuardrailExplain
76
+ };
@@ -1,17 +1,17 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailLog
4
- } from "./index-kf8gkdtq.js";
5
- import"./index-zg40ap5c.js";
4
+ } from "./index-9xfxsx8y.js";
5
+ import"./index-w0jbrttk.js";
6
6
  import"./index-2s7dvzff.js";
7
- import"./index-7e1ecg26.js";
8
- import"./index-22qpvevn.js";
7
+ import"./index-kg2mb1m5.js";
8
+ import"./index-x119gdak.js";
9
9
  import"./index-x1gyqgze.js";
10
10
  import"./index-mc72pk74.js";
11
11
  import"./index-c1ggtmpm.js";
12
- import"./index-1r22v0js.js";
13
- import"./index-0hzr6vdh.js";
14
- import"./index-ezagem2g.js";
12
+ import"./index-0mj7hc2z.js";
13
+ import"./index-ejpxkrp6.js";
14
+ import"./index-48jvqqfa.js";
15
15
  import"./index-bk5tah7q.js";
16
16
  import"./index-gknz3bv1.js";
17
17
  import"./index-zpsr8rpc.js";