opencode-swarm 7.147.0 → 7.148.0

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 (99) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +26 -11
  2. package/.opencode/skills/swarm-pr-review/references/findings-persistence-contract.md +39 -13
  3. package/dist/cli/{ast-diff-665tewz6.js → ast-diff-ekd9v10f.js} +2 -2
  4. package/dist/cli/{config-doctor-7a2z00qt.js → config-doctor-z2wam5wn.js} +2 -2
  5. package/dist/cli/{core-50jqqm4g.js → core-k7m76ce0.js} +2 -2
  6. package/dist/cli/{curation-policy-g353f457.js → curation-policy-kd8j8cne.js} +4 -4
  7. package/dist/cli/{curator-drift-r50x1rac.js → curator-drift-fv4rttf4.js} +2 -2
  8. package/dist/cli/{curator-3t7e3hf9.js → curator-jwpm52kg.js} +31 -31
  9. package/dist/cli/curator-llm-factory-4qt8b15s.js +64 -0
  10. package/dist/cli/{dispatch-ndxbsk98.js → dispatch-w0rzasz3.js} +2 -2
  11. package/dist/cli/{evidence-summary-service-8n16gxgm.js → evidence-summary-service-90z295j3.js} +11 -11
  12. package/dist/cli/{gate-evidence-496qt72z.js → gate-evidence-3q6q71fw.js} +6 -6
  13. package/dist/cli/guardrail-explain-44xt373y.js +65 -0
  14. package/dist/cli/{guardrail-log-dy9b5qtt.js → guardrail-log-kbp5jztb.js} +4 -4
  15. package/dist/cli/guardrail-reset-vpazhh8k.js +90 -0
  16. package/dist/cli/{hive-promoter-mspppqbp.js → hive-promoter-tdrkz9nh.js} +31 -31
  17. package/dist/cli/{index-tya6ytex.js → index-016708th.js} +2 -2
  18. package/dist/cli/{index-er61pycf.js → index-07zgs6y0.js} +6 -6
  19. package/dist/cli/{index-hw1yghpg.js → index-2y14mjfn.js} +3 -3
  20. package/dist/cli/{index-w8pgjr75.js → index-4cgee5vh.js} +1 -1
  21. package/dist/cli/{index-ms46zgwb.js → index-52gnz782.js} +4 -4
  22. package/dist/cli/{index-sh8xbyca.js → index-702zx3rk.js} +10 -4
  23. package/dist/cli/{index-k5ng170v.js → index-7ac5z627.js} +2 -2
  24. package/dist/cli/{index-8py21zn6.js → index-7hctrdk8.js} +1 -1
  25. package/dist/cli/{index-yq1fxahj.js → index-9pmmexsd.js} +1 -1
  26. package/dist/cli/{index-92r9z3yk.js → index-crpb0qke.js} +32583 -31080
  27. package/dist/cli/{index-rpy0bent.js → index-d3bdr78h.js} +2 -2
  28. package/dist/cli/{index-15twmgzf.js → index-dfvh1r8g.js} +33 -33
  29. package/dist/cli/{index-20ndbsmh.js → index-dmbaaz6d.js} +8 -5
  30. package/dist/cli/{index-mfmegbz2.js → index-ffevkn7k.js} +1 -1
  31. package/dist/cli/{index-e1pxav9g.js → index-fxvgaeq4.js} +1 -1
  32. package/dist/cli/{index-z9yhhk6q.js → index-g8wwj0sz.js} +1 -1
  33. package/dist/cli/{index-w4ybhzyg.js → index-gwrv6c56.js} +6 -6
  34. package/dist/cli/{index-hmssmyvh.js → index-h879g4r4.js} +1 -1
  35. package/dist/cli/{index-b67y7an8.js → index-jpa03jcc.js} +10 -2
  36. package/dist/cli/{index-6c17bqbj.js → index-k6h5yc1j.js} +5 -5
  37. package/dist/cli/{index-argd4rp4.js → index-n0fpefqx.js} +4 -4
  38. package/dist/cli/{index-bgefx261.js → index-n96wwf56.js} +4 -4
  39. package/dist/cli/{index-abtrcs16.js → index-nj6rmyeh.js} +1 -1
  40. package/dist/cli/{index-hcb25p12.js → index-p62we2ar.js} +2 -2
  41. package/dist/cli/{index-3p4wgm0d.js → index-pgvx3rkq.js} +1 -1
  42. package/dist/cli/index-q7sjgr1y.js +52 -0
  43. package/dist/cli/{index-f75qjtn5.js → index-qcm97jfh.js} +1 -1
  44. package/dist/cli/{index-mdwvn7qe.js → index-qwj7qjjp.js} +2 -2
  45. package/dist/cli/{index-zj6t9zgx.js → index-r3mvsbtq.js} +8 -1
  46. package/dist/cli/{index-ddpkwdcb.js → index-r9wnyq0v.js} +1 -1
  47. package/dist/cli/{index-yjvtk1w2.js → index-rcjq8dm4.js} +2 -2
  48. package/dist/cli/{index-a3fky5pd.js → index-sycndcwd.js} +1 -1
  49. package/dist/cli/{index-pna97bbk.js → index-x4rxh8j9.js} +3 -3
  50. package/dist/cli/{index-p3k155dv.js → index-y586zet4.js} +1 -1
  51. package/dist/cli/{index-at1m1k5k.js → index-ykjjqg79.js} +6 -6
  52. package/dist/cli/{index-tp5ytzzg.js → index-zwpttdgn.js} +1 -1
  53. package/dist/cli/index.js +31 -31
  54. package/dist/cli/{knowledge-escalator-7gw36zj8.js → knowledge-escalator-0qnm48g8.js} +11 -11
  55. package/dist/cli/{knowledge-events-r1xak0yw.js → knowledge-events-3zv81nzp.js} +9 -9
  56. package/dist/cli/{knowledge-link-jkx8xjxp.js → knowledge-link-w91bcyx2.js} +3 -3
  57. package/dist/cli/{knowledge-store-wzzke013.js → knowledge-store-njtx6wj1.js} +4 -4
  58. package/dist/cli/{knowledge-validator-mma2bbgp.js → knowledge-validator-7eqj5afv.js} +6 -6
  59. package/dist/cli/{pending-delegations-k2yqg1sj.js → pending-delegations-k4x00mqc.js} +3 -3
  60. package/dist/cli/{pr-subscriptions-js5v2xr6.js → pr-subscriptions-x2mqc3f1.js} +3 -3
  61. package/dist/cli/{runner-q7d22d1w.js → runner-gfzkp9nv.js} +5 -5
  62. package/dist/cli/{runtime-x10qb3z1.js → runtime-wjwbpp9j.js} +2 -2
  63. package/dist/cli/{scan-cursor-0vcx58aa.js → scan-cursor-a6dhyf55.js} +5 -5
  64. package/dist/cli/{schema-qr135rxc.js → schema-p0vn1zgh.js} +1 -1
  65. package/dist/cli/{scope-persistence-x7v9mb9k.js → scope-persistence-zs97zkt7.js} +7 -7
  66. package/dist/cli/{skill-generator-aee04dwa.js → skill-generator-5qg15q1j.js} +14 -13
  67. package/dist/cli/{workspace-snapshot-kznz5e13.js → workspace-snapshot-nq25j94x.js} +2 -2
  68. package/dist/cli/{worktree-collision-ownership-xj0bsg92.js → worktree-collision-ownership-q2gswg16.js} +4 -4
  69. package/dist/cli/{worktree-isolation-ar52a7xr.js → worktree-isolation-ndb5fwys.js} +31 -31
  70. package/dist/cli/{worktree-provisioning-owner-72cyddz5.js → worktree-provisioning-owner-cve95q4f.js} +3 -3
  71. package/dist/commands/guardrail-reset.d.ts +2 -0
  72. package/dist/commands/registry.d.ts +16 -3
  73. package/dist/config/schema.d.ts +2 -0
  74. package/dist/failures/action-circuit.d.ts +69 -0
  75. package/dist/failures/action-identity.d.ts +33 -0
  76. package/dist/failures/invocation-failure.d.ts +77 -0
  77. package/dist/full-auto/oversight.d.ts +21 -0
  78. package/dist/full-auto/policy.d.ts +22 -0
  79. package/dist/full-auto/recovery.d.ts +43 -0
  80. package/dist/full-auto/severe-result.d.ts +86 -0
  81. package/dist/full-auto/state.d.ts +18 -0
  82. package/dist/hooks/full-auto-intercept.d.ts +1 -1
  83. package/dist/hooks/gate-denial-tracker.d.ts +1 -1
  84. package/dist/hooks/guardrails/nontransient-circuit.d.ts +19 -5
  85. package/dist/hooks/pr-workflow-gate.d.ts +64 -3
  86. package/dist/index.js +2866 -2816
  87. package/dist/lang/symbol-visibility.d.ts +10 -7
  88. package/dist/learning/admission.d.ts +1 -1
  89. package/dist/models/model-override-state.d.ts +47 -0
  90. package/dist/models/task-model-routing.d.ts +71 -0
  91. package/dist/services/diagnose-service.d.ts +2 -2
  92. package/dist/tools/dispatch-lanes.d.ts +16 -1
  93. package/dist/tools/repo-graph/types.d.ts +6 -4
  94. package/dist/utils/model-dispatch-fallback.d.ts +31 -10
  95. package/dist/utils/timeout.d.ts +18 -4
  96. package/package.json +1 -1
  97. package/dist/cli/curator-llm-factory-7cm4494k.js +0 -64
  98. package/dist/cli/guardrail-explain-my9zj5pj.js +0 -65
  99. package/dist/cli/index-wx8zdh4a.js +0 -24
@@ -705,9 +705,15 @@ Persist after every major validation boundary (Profile A via the controller
705
705
  calls below; Profiles B/C by appending the same boundary-tagged records to the
706
706
  ledger file):
707
707
 
708
- 1. **Post-explorer:** after Phase 3/4 candidate parsing and before reviewer
709
- dispatch, call `write_pr_review_artifact` with `boundary: "post_explorer"`
710
- and all candidates as `PENDING` with their lane provenance.
708
+ 1. **Post-explorer:** persist as soon as the base wave settles and its
709
+ candidates parse BEFORE micro dispatch — by calling
710
+ `write_pr_review_artifact` with `boundary: "post_explorer"` and the
711
+ base-derived candidates as `PENDING` with their lane provenance. This
712
+ base-only write is the compaction recovery point for everything before
713
+ trigger evaluation; it must cover exactly the base-derived inventory
714
+ (micro ids are refused as `extra:` at this point). After trigger
715
+ evaluation a full-inventory `post_explorer` write (base+micro) is also
716
+ admissible and supersedes the early checkpoint as the recovery point.
711
717
  2. **Post-reviewer:** after Phase 6 reviewer validation, call the controller
712
718
  with `boundary: "post_reviewer"` and update each reviewed
713
719
  record to `CONFIRMED`, `DISPROVED`, `PRE_EXISTING`, or keep `PENDING` with a
@@ -716,18 +722,25 @@ ledger file):
716
722
  `boundary: "post_critic"` and update final status, the authoritative
717
723
  `severity`, and final reporting or handoff action.
718
724
 
719
- **Enforced order, dispositions, and error reporting (Profile A).** Checkpoints
720
- are admitted only after the trigger evaluation completes, then strictly
725
+ **Enforced order, dispositions, and error reporting (Profile A).** The
726
+ trigger evaluation must complete before every findings boundary EXCEPT the
727
+ base-only `post_explorer` write above, which is admissible right after base
728
+ settlement (issue #2280); beyond that exception checkpoints run strictly
721
729
  `post_explorer` → `post_reviewer` → `post_critic`, each requiring the prior
722
- checkpoint persisted; records must match the authoritative reviewer/critic
730
+ checkpoint persisted, and `post_reviewer`/`post_critic` must exactly cover
731
+ the FULL (base+micro) candidate inventory against the persisted trigger-eval
732
+ artifact; records must match the authoritative reviewer/critic
723
733
  verdict rows, and an invalid payload is rejected in ONE call listing every
724
734
  violation as `finding_id: field expected <value>, got <value>`. Full contract
725
735
  (write order, dispositions, severity authority table, handoff schema):
726
736
  references/findings-persistence-contract.md.
727
737
 
728
738
  Resume/reload procedure: read the latest `findings.jsonl` and reconstruct the
729
- ledger from disk before dispatching more lanes; surface a missing artifact as a
730
- coverage gap, never reclassify from memory; append (latest record wins).
739
+ ledger from disk before dispatching more lanes; the base-only `post_explorer`
740
+ checkpoint alone is enough to resume after a compaction between base
741
+ settlement and the micro wave (re-dispatch micro, re-run trigger evaluation,
742
+ then continue with full-inventory boundaries); surface a missing artifact as
743
+ a coverage gap, never reclassify from memory; append (latest record wins).
731
744
 
732
745
  ---
733
746
 
@@ -944,7 +957,7 @@ sequential candidate-generation passes with the same per-lane ledger records.
944
957
  The join barrier is universal: all base lanes settle before Phase 4 completes
945
958
  or synthesis begins, whichever layer enforces it.
946
959
 
947
- **Incremental collection (Profile A):** While base lanes are running, poll with `collect_lane_results` (without `wait` (or `wait: false`)) to check progress and process settled lanes as they complete — call `retrieve_lane_output` for full text when `output_ref` is present, then extract candidates via `parse_lane_candidates`, update the candidate ledger, validate output quality — while continuing independent architect work (obligation refinement, micro-lane trigger checks, local reads) between polls. Only use `wait: true` if lanes are still pending and no more independent work remains. Under Profile B, harvest each subagent report as it completes and update the ledger between arrivals; block on stragglers only when no independent work remains.
960
+ **Incremental collection (Profile A):** While base lanes are running, poll with `collect_lane_results` (without `wait` (or `wait: false`)) to check progress and process settled lanes as they complete — call `retrieve_lane_output` for full text when `output_ref` is present, then extract candidates via `parse_lane_candidates`, update the candidate ledger, validate output quality — while continuing independent architect work (obligation refinement, micro-lane trigger checks, local reads) between polls. Only use `wait: true` if lanes are still pending and no more independent work remains. While polling, a `pending_liveness` entry on a still-pending lane is a DIAGNOSTIC only (issue #2280): `stalledSuspect: true` means the lane has been pending for minutes and the host does not report its session live — note the lane id, `pendingMs`, and `hostStatus` and investigate, but never auto-cancel, retry, or replace the lane on this signal; the ~30-minute presumed-stale sweep remains the only terminal backstop. Under Profile B, harvest each subagent report as it completes and update the ledger between arrivals; block on stragglers only when no independent work remains.
948
961
 
949
962
  Inline `output` is delivered on the first poll that observes a lane settled; subsequent polls carry `output_omitted_repeat: true` with metadata and `output_ref`, and full text is retrieved via `retrieve_lane_output`.
950
963
 
@@ -1029,8 +1042,10 @@ candidate parser rather than preview-text extraction:
1029
1042
  If a lane has `output_degraded: true`, no usable `output_ref`, or `transcript_incomplete: true` without typed positive-candidate recovery, apply the COVERAGE GATE (Phase 3). An incomplete base or micro discovery lane may proceed only when it is explicitly named by a `salvaged_workflow_lane_recoveries` entry whose `kind` is `transcript-incomplete-terminal-candidate`; that recovery validates the retained positive `[CANDIDATE]` row only. Council, reviewer, and critic lanes never qualify for this incomplete-transcript recovery and must retry. Recovery never validates `[CLEAN]`, candidate absence, an unowned sibling lane, or an incomplete lane with no matching entry. Do not use blocking or direct-Task fallbacks while the controller is active, mark affected candidates UNVERIFIED to proceed, or infer candidate absence from a preview. Under Profiles B/C, which have no typed recovery validation, a truncated, incomplete, empty, or attestation-free subagent report is the same lane-output failure and takes the same COVERAGE GATE.
1030
1043
 
1031
1044
  After candidate parsing and before reviewer dispatch, persist the post-explorer
1032
- candidate ledger; it is admitted only once trigger-eval completes from then it
1033
- is the durable recovery point for context compaction ahead of Phase 6.
1045
+ candidate ledger. The base-only write is admissible immediately after base
1046
+ settlement — it is the durable recovery point for context compaction from base
1047
+ settlement onward; once trigger evaluation completes, a full-inventory
1048
+ (base+micro) `post_explorer` write may refresh it ahead of Phase 6.
1034
1049
 
1035
1050
  **Profiles B/C row convention:** without the parser, the `[CANDIDATE]` row
1036
1051
  format is the extraction contract itself. Explorers emit the rows directly in
@@ -7,27 +7,43 @@ full contract.
7
7
 
8
8
  ## Enforced write order and prerequisites
9
9
 
10
- The controller admits findings checkpoints only in this exact sequence, each
10
+ The controller admits findings checkpoints in this exact sequence, each
11
11
  step a hard prerequisite for the next:
12
12
 
13
- 1. Base lanes settle and micro lanes settle.
14
- 2. `write_pr_review_trigger_eval` completes every findings boundary is
15
- refused until this artifact exists (the refusal names the producing call).
16
- 3. `boundary: "post_explorer"` checkpoint: records must exactly cover the
17
- discovered candidate inventory, every record `PENDING` with
18
- `next_action: "route_to_reviewer"`. The coverage refusal lists the
19
- `missing:`, `extra:`, and `duplicates:` ids.
13
+ 1. Base lanes settle (all six dimensions successful and parsed).
14
+ 2. Optional base-only `boundary: "post_explorer"` checkpoint (issue #2280):
15
+ admissible immediately after base settlement, BEFORE the micro wave. It
16
+ is the one exception to trigger-eval-before-findings. Records must
17
+ exactly cover the BASE-DERIVED candidate inventory micro candidates are
18
+ not yet discoverable, so a micro id is refused as `extra:` here — and
19
+ every record is `PENDING` with `next_action: "route_to_reviewer"`. The
20
+ coverage refusal lists the `missing:`, `extra:`, and `duplicates:` ids.
21
+ The early write BINDS the run: use the same `run_id` for it and for the
22
+ later `write_pr_review_trigger_eval` — a receipt under a different run is
23
+ refused against the bound one.
24
+ 3. Micro lanes settle and `write_pr_review_trigger_eval` completes — every
25
+ OTHER findings boundary is refused until this artifact exists (the
26
+ refusal names the producing call). A `post_explorer` write after this
27
+ point is validated against the FULL base+micro inventory.
20
28
  4. `boundary: "post_reviewer"` checkpoint: requires the persisted
21
- `post_explorer` checkpoint and a settled reviewer phase.
29
+ `post_explorer` checkpoint (either variant), a settled reviewer phase, and
30
+ exact coverage of the FULL base+micro candidate inventory.
22
31
  5. `boundary: "post_critic"` checkpoint: requires the persisted
23
32
  `post_reviewer` checkpoint and a settled critic phase whenever any
24
33
  CONFIRMED CRITICAL/HIGH/MEDIUM verdict exists.
25
34
 
26
35
  Writing a boundary after a later checkpoint already exists is also refused.
27
- Every ordering refusal names the missing prerequisite boundary. There is no
28
- durable findings checkpoint between explorer settlement and trigger-eval
29
- completion; from trigger-eval completion onward, the persisted ledger is the
30
- durable recovery point for context compaction.
36
+ Every ordering refusal names the missing prerequisite boundary. The base-only
37
+ `post_explorer` checkpoint is the durable recovery point for context
38
+ compaction immediately after base settlement. From trigger-eval completion
39
+ onward the durable state is the trigger-eval receipt plus the retained lane
40
+ artifacts — the full candidate inventory stays re-derivable from them — so a
41
+ full-inventory `post_explorer` rewrite is OPTIONAL hardening rather than a
42
+ guaranteed artifact: `post_reviewer` accepts the early checkpoint as its
43
+ prerequisite and must itself carry the full (base+micro) inventory.
44
+ (Before issue #2280 there was no durable findings checkpoint between
45
+ explorer settlement and trigger-eval completion — the base-only write closes
46
+ that gap.)
31
47
 
32
48
  ## Disposition matrix
33
49
 
@@ -148,3 +164,13 @@ review context says prior lanes ran, stop and surface the missing artifact as
148
164
  a coverage gap instead of reclassifying from memory. Append new records rather
149
165
  than overwriting history unless the artifact format explicitly tracks
150
166
  revisions; the latest record for a `finding_id` wins during reload.
167
+
168
+ There are two durable recovery points (issue #2280). The base-only
169
+ `post_explorer` checkpoint — written right after base settlement — is
170
+ sufficient to reconstruct the base candidate ledger and resume a compacted
171
+ session ahead of the micro wave: re-dispatch micro lanes, re-run trigger
172
+ evaluation, then continue. From trigger-eval completion onward the
173
+ full-inventory ledger is the recovery point: `post_reviewer` and
174
+ `post_critic` must cover the FULL (base+micro) inventory, and later boundary
175
+ writes upsert any base-only records the micro wave extended (latest record
176
+ wins).
@@ -4,11 +4,11 @@ import {
4
4
  } from "./index-b43rt5ph.js";
5
5
  import {
6
6
  loadGrammar
7
- } from "./index-ddpkwdcb.js";
7
+ } from "./index-r9wnyq0v.js";
8
8
  import {
9
9
  Query
10
10
  } from "./index-7ryh498h.js";
11
- import"./index-wx8zdh4a.js";
11
+ import"./index-q7sjgr1y.js";
12
12
  import {
13
13
  init_logger,
14
14
  log
@@ -12,8 +12,8 @@ import {
12
12
  shouldRunOnStartup,
13
13
  writeBackupArtifact,
14
14
  writeDoctorArtifact
15
- } from "./index-yq1fxahj.js";
16
- import"./index-sh8xbyca.js";
15
+ } from "./index-9pmmexsd.js";
16
+ import"./index-702zx3rk.js";
17
17
  import"./index-cpg98bh1.js";
18
18
  import"./index-z6xqpmqg.js";
19
19
  import"./index-zjygnfay.js";
@@ -14,12 +14,12 @@ import {
14
14
  resolveWorktreeBaseDir,
15
15
  shortenWorktreePath,
16
16
  writeLaneProfileToDiskReal
17
- } from "./index-k5ng170v.js";
17
+ } from "./index-7ac5z627.js";
18
18
  import"./index-cpg98bh1.js";
19
19
  import"./index-9e6fdz2h.js";
20
20
  import"./index-4rhhvd1a.js";
21
21
  import"./index-z6xqpmqg.js";
22
- import"./index-zj6t9zgx.js";
22
+ import"./index-r3mvsbtq.js";
23
23
  import"./index-zjygnfay.js";
24
24
  import"./index-zgwm4ryv.js";
25
25
  import"./index-a76rekgs.js";
@@ -4,11 +4,11 @@ import {
4
4
  authorizeCuration,
5
5
  buildConfigFingerprintInput,
6
6
  readCohortConfigFingerprint
7
- } from "./index-tp5ytzzg.js";
7
+ } from "./index-zwpttdgn.js";
8
8
  import"./index-rtry5xyf.js";
9
- import"./index-f75qjtn5.js";
10
- import"./index-8py21zn6.js";
11
- import"./index-hw1yghpg.js";
9
+ import"./index-qcm97jfh.js";
10
+ import"./index-7hctrdk8.js";
11
+ import"./index-2y14mjfn.js";
12
12
  import"./index-6q35swn2.js";
13
13
  import"./index-q81s0m8k.js";
14
14
  import"./index-7g4c7s5r.js";
@@ -10,9 +10,9 @@ import"./index-4rhhvd1a.js";
10
10
  import {
11
11
  readSwarmFileAsync,
12
12
  validateSwarmPath
13
- } from "./index-w8pgjr75.js";
13
+ } from "./index-4cgee5vh.js";
14
14
  import"./index-z6xqpmqg.js";
15
- import"./index-zj6t9zgx.js";
15
+ import"./index-r3mvsbtq.js";
16
16
  import"./index-zjygnfay.js";
17
17
  import"./index-bpmtbmy9.js";
18
18
  import {
@@ -14,57 +14,57 @@ import {
14
14
  runCuratorInit,
15
15
  runCuratorPhase,
16
16
  writeCuratorSummary
17
- } from "./index-92r9z3yk.js";
18
- import"./index-hcb25p12.js";
19
- import"./index-b67y7an8.js";
20
- import"./index-yq1fxahj.js";
21
- import"./index-at1m1k5k.js";
22
- import"./index-p3k155dv.js";
17
+ } from "./index-crpb0qke.js";
18
+ import"./index-p62we2ar.js";
19
+ import"./index-jpa03jcc.js";
20
+ import"./index-9pmmexsd.js";
21
+ import"./index-ykjjqg79.js";
22
+ import"./index-y586zet4.js";
23
23
  import"./index-134d35c1.js";
24
- import"./index-abtrcs16.js";
24
+ import"./index-nj6rmyeh.js";
25
25
  import"./index-y8552snf.js";
26
- import"./index-6c17bqbj.js";
27
- import"./index-tya6ytex.js";
26
+ import"./index-k6h5yc1j.js";
27
+ import"./index-016708th.js";
28
28
  import"./index-70ha9e09.js";
29
29
  import"./index-c8s9a3zh.js";
30
30
  import"./index-9ss2m4rs.js";
31
- import"./index-z9yhhk6q.js";
32
- import"./index-3p4wgm0d.js";
33
- import"./index-20ndbsmh.js";
34
- import"./index-bgefx261.js";
35
- import"./index-tp5ytzzg.js";
31
+ import"./index-g8wwj0sz.js";
32
+ import"./index-pgvx3rkq.js";
33
+ import"./index-dmbaaz6d.js";
34
+ import"./index-n96wwf56.js";
35
+ import"./index-zwpttdgn.js";
36
36
  import"./index-rtry5xyf.js";
37
37
  import"./index-zsrtt42s.js";
38
- import"./index-rpy0bent.js";
39
- import"./index-e1pxav9g.js";
40
- import"./index-argd4rp4.js";
41
- import"./index-k5ng170v.js";
42
- import"./index-ms46zgwb.js";
43
- import"./index-hmssmyvh.js";
38
+ import"./index-d3bdr78h.js";
39
+ import"./index-fxvgaeq4.js";
40
+ import"./index-n0fpefqx.js";
41
+ import"./index-7ac5z627.js";
42
+ import"./index-52gnz782.js";
43
+ import"./index-h879g4r4.js";
44
44
  import"./index-556ja8an.js";
45
45
  import"./index-b43rt5ph.js";
46
- import"./index-wx8zdh4a.js";
46
+ import"./index-q7sjgr1y.js";
47
47
  import"./index-3g0xk6tk.js";
48
48
  import"./index-85gkedsf.js";
49
- import"./index-er61pycf.js";
50
- import"./index-w4ybhzyg.js";
51
- import"./index-yjvtk1w2.js";
49
+ import"./index-07zgs6y0.js";
50
+ import"./index-gwrv6c56.js";
51
+ import"./index-rcjq8dm4.js";
52
52
  import"./index-gprxjmm7.js";
53
53
  import"./index-n832052r.js";
54
- import"./index-mfmegbz2.js";
55
- import"./index-sh8xbyca.js";
54
+ import"./index-ffevkn7k.js";
55
+ import"./index-702zx3rk.js";
56
56
  import"./index-cpg98bh1.js";
57
57
  import"./index-9e6fdz2h.js";
58
58
  import"./index-4rhhvd1a.js";
59
- import"./index-w8pgjr75.js";
59
+ import"./index-4cgee5vh.js";
60
60
  import"./index-z6xqpmqg.js";
61
- import"./index-zj6t9zgx.js";
61
+ import"./index-r3mvsbtq.js";
62
62
  import"./index-zjygnfay.js";
63
63
  import"./index-ae75rja9.js";
64
- import"./index-f75qjtn5.js";
65
- import"./index-8py21zn6.js";
64
+ import"./index-qcm97jfh.js";
65
+ import"./index-7hctrdk8.js";
66
66
  import"./index-bk5tah7q.js";
67
- import"./index-hw1yghpg.js";
67
+ import"./index-2y14mjfn.js";
68
68
  import"./index-6q35swn2.js";
69
69
  import"./index-q81s0m8k.js";
70
70
  import"./index-7g4c7s5r.js";
@@ -0,0 +1,64 @@
1
+ // @bun
2
+ import {
3
+ createCuratorLLMDelegate
4
+ } from "./index-crpb0qke.js";
5
+ import"./index-p62we2ar.js";
6
+ import"./index-jpa03jcc.js";
7
+ import"./index-9pmmexsd.js";
8
+ import"./index-ykjjqg79.js";
9
+ import"./index-y586zet4.js";
10
+ import"./index-134d35c1.js";
11
+ import"./index-nj6rmyeh.js";
12
+ import"./index-y8552snf.js";
13
+ import"./index-k6h5yc1j.js";
14
+ import"./index-016708th.js";
15
+ import"./index-70ha9e09.js";
16
+ import"./index-c8s9a3zh.js";
17
+ import"./index-9ss2m4rs.js";
18
+ import"./index-g8wwj0sz.js";
19
+ import"./index-pgvx3rkq.js";
20
+ import"./index-dmbaaz6d.js";
21
+ import"./index-n96wwf56.js";
22
+ import"./index-zwpttdgn.js";
23
+ import"./index-rtry5xyf.js";
24
+ import"./index-zsrtt42s.js";
25
+ import"./index-d3bdr78h.js";
26
+ import"./index-fxvgaeq4.js";
27
+ import"./index-n0fpefqx.js";
28
+ import"./index-7ac5z627.js";
29
+ import"./index-52gnz782.js";
30
+ import"./index-h879g4r4.js";
31
+ import"./index-556ja8an.js";
32
+ import"./index-b43rt5ph.js";
33
+ import"./index-q7sjgr1y.js";
34
+ import"./index-3g0xk6tk.js";
35
+ import"./index-85gkedsf.js";
36
+ import"./index-07zgs6y0.js";
37
+ import"./index-gwrv6c56.js";
38
+ import"./index-rcjq8dm4.js";
39
+ import"./index-gprxjmm7.js";
40
+ import"./index-n832052r.js";
41
+ import"./index-ffevkn7k.js";
42
+ import"./index-702zx3rk.js";
43
+ import"./index-cpg98bh1.js";
44
+ import"./index-9e6fdz2h.js";
45
+ import"./index-4rhhvd1a.js";
46
+ import"./index-4cgee5vh.js";
47
+ import"./index-z6xqpmqg.js";
48
+ import"./index-r3mvsbtq.js";
49
+ import"./index-zjygnfay.js";
50
+ import"./index-ae75rja9.js";
51
+ import"./index-qcm97jfh.js";
52
+ import"./index-7hctrdk8.js";
53
+ import"./index-bk5tah7q.js";
54
+ import"./index-2y14mjfn.js";
55
+ import"./index-6q35swn2.js";
56
+ import"./index-q81s0m8k.js";
57
+ import"./index-7g4c7s5r.js";
58
+ import"./index-bpmtbmy9.js";
59
+ import"./index-ed5ykebp.js";
60
+ import"./index-zgwm4ryv.js";
61
+ import"./index-a76rekgs.js";
62
+ export {
63
+ createCuratorLLMDelegate
64
+ };
@@ -11,9 +11,9 @@ import {
11
11
  defaultTestFilesFor,
12
12
  detectProjectLanguages,
13
13
  tokenizeCommand
14
- } from "./index-abtrcs16.js";
14
+ } from "./index-nj6rmyeh.js";
15
15
  import"./index-z6xqpmqg.js";
16
- import"./index-zj6t9zgx.js";
16
+ import"./index-r3mvsbtq.js";
17
17
  import"./index-zjygnfay.js";
18
18
  import"./index-zgwm4ryv.js";
19
19
  import"./index-a76rekgs.js";
@@ -6,31 +6,31 @@ import {
6
6
  loadPlanJsonOnly,
7
7
  mergeDurableGateEntriesFromEvidence,
8
8
  readDurableGateEvidence
9
- } from "./index-at1m1k5k.js";
10
- import"./index-p3k155dv.js";
9
+ } from "./index-ykjjqg79.js";
10
+ import"./index-y586zet4.js";
11
11
  import"./index-134d35c1.js";
12
12
  import"./index-y8552snf.js";
13
13
  import"./index-9ss2m4rs.js";
14
14
  import"./index-zsrtt42s.js";
15
- import"./index-argd4rp4.js";
16
- import"./index-k5ng170v.js";
17
- import"./index-hmssmyvh.js";
15
+ import"./index-n0fpefqx.js";
16
+ import"./index-7ac5z627.js";
17
+ import"./index-h879g4r4.js";
18
18
  import"./index-556ja8an.js";
19
19
  import"./index-85gkedsf.js";
20
20
  import"./index-gprxjmm7.js";
21
21
  import"./index-n832052r.js";
22
- import"./index-mfmegbz2.js";
23
- import"./index-sh8xbyca.js";
22
+ import"./index-ffevkn7k.js";
23
+ import"./index-702zx3rk.js";
24
24
  import"./index-cpg98bh1.js";
25
25
  import"./index-9e6fdz2h.js";
26
26
  import"./index-4rhhvd1a.js";
27
- import"./index-w8pgjr75.js";
27
+ import"./index-4cgee5vh.js";
28
28
  import"./index-z6xqpmqg.js";
29
- import"./index-zj6t9zgx.js";
29
+ import"./index-r3mvsbtq.js";
30
30
  import"./index-zjygnfay.js";
31
- import"./index-8py21zn6.js";
31
+ import"./index-7hctrdk8.js";
32
32
  import"./index-bk5tah7q.js";
33
- import"./index-hw1yghpg.js";
33
+ import"./index-2y14mjfn.js";
34
34
  import"./index-6q35swn2.js";
35
35
  import"./index-q81s0m8k.js";
36
36
  import"./index-7g4c7s5r.js";
@@ -17,18 +17,18 @@ import {
17
17
  reduceTaskWorkflowSnapshot,
18
18
  transitionTaskWorkflowEvidence,
19
19
  withTaskEvidenceTransaction
20
- } from "./index-argd4rp4.js";
21
- import"./index-k5ng170v.js";
20
+ } from "./index-n0fpefqx.js";
21
+ import"./index-7ac5z627.js";
22
22
  import"./index-556ja8an.js";
23
23
  import"./index-cpg98bh1.js";
24
24
  import"./index-9e6fdz2h.js";
25
25
  import"./index-4rhhvd1a.js";
26
- import"./index-w8pgjr75.js";
26
+ import"./index-4cgee5vh.js";
27
27
  import"./index-z6xqpmqg.js";
28
- import"./index-zj6t9zgx.js";
28
+ import"./index-r3mvsbtq.js";
29
29
  import"./index-zjygnfay.js";
30
- import"./index-8py21zn6.js";
31
- import"./index-hw1yghpg.js";
30
+ import"./index-7hctrdk8.js";
31
+ import"./index-2y14mjfn.js";
32
32
  import"./index-6q35swn2.js";
33
33
  import"./index-q81s0m8k.js";
34
34
  import"./index-7g4c7s5r.js";
@@ -0,0 +1,65 @@
1
+ // @bun
2
+ import {
3
+ handleGuardrailExplain
4
+ } from "./index-qwj7qjjp.js";
5
+ import"./index-crpb0qke.js";
6
+ import"./index-p62we2ar.js";
7
+ import"./index-jpa03jcc.js";
8
+ import"./index-9pmmexsd.js";
9
+ import"./index-ykjjqg79.js";
10
+ import"./index-y586zet4.js";
11
+ import"./index-134d35c1.js";
12
+ import"./index-nj6rmyeh.js";
13
+ import"./index-y8552snf.js";
14
+ import"./index-k6h5yc1j.js";
15
+ import"./index-016708th.js";
16
+ import"./index-70ha9e09.js";
17
+ import"./index-c8s9a3zh.js";
18
+ import"./index-9ss2m4rs.js";
19
+ import"./index-g8wwj0sz.js";
20
+ import"./index-pgvx3rkq.js";
21
+ import"./index-dmbaaz6d.js";
22
+ import"./index-n96wwf56.js";
23
+ import"./index-zwpttdgn.js";
24
+ import"./index-rtry5xyf.js";
25
+ import"./index-zsrtt42s.js";
26
+ import"./index-d3bdr78h.js";
27
+ import"./index-fxvgaeq4.js";
28
+ import"./index-n0fpefqx.js";
29
+ import"./index-7ac5z627.js";
30
+ import"./index-52gnz782.js";
31
+ import"./index-h879g4r4.js";
32
+ import"./index-556ja8an.js";
33
+ import"./index-b43rt5ph.js";
34
+ import"./index-q7sjgr1y.js";
35
+ import"./index-3g0xk6tk.js";
36
+ import"./index-85gkedsf.js";
37
+ import"./index-07zgs6y0.js";
38
+ import"./index-gwrv6c56.js";
39
+ import"./index-rcjq8dm4.js";
40
+ import"./index-gprxjmm7.js";
41
+ import"./index-n832052r.js";
42
+ import"./index-ffevkn7k.js";
43
+ import"./index-702zx3rk.js";
44
+ import"./index-cpg98bh1.js";
45
+ import"./index-9e6fdz2h.js";
46
+ import"./index-4rhhvd1a.js";
47
+ import"./index-4cgee5vh.js";
48
+ import"./index-z6xqpmqg.js";
49
+ import"./index-r3mvsbtq.js";
50
+ import"./index-zjygnfay.js";
51
+ import"./index-ae75rja9.js";
52
+ import"./index-qcm97jfh.js";
53
+ import"./index-7hctrdk8.js";
54
+ import"./index-bk5tah7q.js";
55
+ import"./index-2y14mjfn.js";
56
+ import"./index-6q35swn2.js";
57
+ import"./index-q81s0m8k.js";
58
+ import"./index-7g4c7s5r.js";
59
+ import"./index-bpmtbmy9.js";
60
+ import"./index-ed5ykebp.js";
61
+ import"./index-zgwm4ryv.js";
62
+ import"./index-a76rekgs.js";
63
+ export {
64
+ handleGuardrailExplain
65
+ };
@@ -1,13 +1,13 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailLog
4
- } from "./index-a3fky5pd.js";
5
- import"./index-b67y7an8.js";
4
+ } from "./index-sycndcwd.js";
5
+ import"./index-jpa03jcc.js";
6
6
  import"./index-556ja8an.js";
7
- import"./index-sh8xbyca.js";
7
+ import"./index-702zx3rk.js";
8
8
  import"./index-cpg98bh1.js";
9
9
  import"./index-z6xqpmqg.js";
10
- import"./index-zj6t9zgx.js";
10
+ import"./index-r3mvsbtq.js";
11
11
  import"./index-zjygnfay.js";
12
12
  import"./index-bk5tah7q.js";
13
13
  import"./index-bpmtbmy9.js";
@@ -0,0 +1,90 @@
1
+ // @bun
2
+ import {
3
+ getAgentSession,
4
+ getBlockingActionCircuit,
5
+ resetActionCircuitExternally
6
+ } from "./index-crpb0qke.js";
7
+ import"./index-p62we2ar.js";
8
+ import"./index-jpa03jcc.js";
9
+ import"./index-9pmmexsd.js";
10
+ import"./index-ykjjqg79.js";
11
+ import"./index-y586zet4.js";
12
+ import"./index-134d35c1.js";
13
+ import"./index-nj6rmyeh.js";
14
+ import"./index-y8552snf.js";
15
+ import"./index-k6h5yc1j.js";
16
+ import"./index-016708th.js";
17
+ import"./index-70ha9e09.js";
18
+ import"./index-c8s9a3zh.js";
19
+ import"./index-9ss2m4rs.js";
20
+ import"./index-g8wwj0sz.js";
21
+ import"./index-pgvx3rkq.js";
22
+ import"./index-dmbaaz6d.js";
23
+ import"./index-n96wwf56.js";
24
+ import"./index-zwpttdgn.js";
25
+ import"./index-rtry5xyf.js";
26
+ import"./index-zsrtt42s.js";
27
+ import"./index-d3bdr78h.js";
28
+ import"./index-fxvgaeq4.js";
29
+ import"./index-n0fpefqx.js";
30
+ import"./index-7ac5z627.js";
31
+ import"./index-52gnz782.js";
32
+ import"./index-h879g4r4.js";
33
+ import"./index-556ja8an.js";
34
+ import"./index-b43rt5ph.js";
35
+ import"./index-q7sjgr1y.js";
36
+ import"./index-3g0xk6tk.js";
37
+ import"./index-85gkedsf.js";
38
+ import"./index-07zgs6y0.js";
39
+ import"./index-gwrv6c56.js";
40
+ import"./index-rcjq8dm4.js";
41
+ import"./index-gprxjmm7.js";
42
+ import"./index-n832052r.js";
43
+ import"./index-ffevkn7k.js";
44
+ import"./index-702zx3rk.js";
45
+ import"./index-cpg98bh1.js";
46
+ import"./index-9e6fdz2h.js";
47
+ import"./index-4rhhvd1a.js";
48
+ import"./index-4cgee5vh.js";
49
+ import"./index-z6xqpmqg.js";
50
+ import"./index-r3mvsbtq.js";
51
+ import"./index-zjygnfay.js";
52
+ import"./index-ae75rja9.js";
53
+ import"./index-qcm97jfh.js";
54
+ import"./index-7hctrdk8.js";
55
+ import"./index-bk5tah7q.js";
56
+ import"./index-2y14mjfn.js";
57
+ import"./index-6q35swn2.js";
58
+ import"./index-q81s0m8k.js";
59
+ import"./index-7g4c7s5r.js";
60
+ import"./index-bpmtbmy9.js";
61
+ import"./index-ed5ykebp.js";
62
+ import"./index-zgwm4ryv.js";
63
+ import"./index-a76rekgs.js";
64
+
65
+ // src/commands/guardrail-reset.ts
66
+ var ACTION_DIGEST = /^[a-f0-9]{64}$/;
67
+ function handleGuardrailReset(args, sessionID) {
68
+ if (args.length !== 3 || !ACTION_DIGEST.test(args[0] ?? "") || args[1] !== "--invocation" || !/^[1-9]\d*$/.test(args[2] ?? "")) {
69
+ return "Error: usage `/swarm guardrail reset <64-char-action-digest> --invocation <active-id>`.";
70
+ }
71
+ const invocationID = Number(args[2]);
72
+ const activeInvocationID = getAgentSession(sessionID)?.activeInvocationId ?? 0;
73
+ if (activeInvocationID !== invocationID) {
74
+ return "Error: guardrail reset refused because the requested invocation is not the active invocation for this session.";
75
+ }
76
+ const actionDigest = args[0];
77
+ if (!getBlockingActionCircuit(sessionID, invocationID, actionDigest)) {
78
+ return "Error: no open exact-action circuit matches this session, invocation, and digest.";
79
+ }
80
+ resetActionCircuitExternally({
81
+ sessionID,
82
+ invocationID,
83
+ actionDigest,
84
+ actor: "swarm-command"
85
+ });
86
+ return `Guardrail circuit reset for action ${actionDigest.slice(0, 12)}\u2026 in invocation ${invocationID}. The original action was not replayed; reissue it for fresh validation.`;
87
+ }
88
+ export {
89
+ handleGuardrailReset
90
+ };