opencode-swarm 7.140.1 → 7.140.2

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 (45) hide show
  1. package/.opencode/skills/swarm-pr-feedback/SKILL.md +19 -3
  2. package/.opencode/skills/swarm-pr-review/SKILL.md +61 -14
  3. package/dist/background/candidate-contract.d.ts +3 -0
  4. package/dist/cli/{config-doctor-0b5z13vq.js → config-doctor-shc0n4q1.js} +3 -3
  5. package/dist/cli/{core-m5y25n0j.js → core-p5cyej3r.js} +2 -2
  6. package/dist/cli/{curation-policy-bn7g8n40.js → curation-policy-7n6t8he4.js} +2 -2
  7. package/dist/cli/{curator-llm-factory-0mkbw2hg.js → curator-llm-factory-pr4bdfqw.js} +14 -14
  8. package/dist/cli/{curator-b7f6nt8h.js → curator-zp5qq24c.js} +14 -14
  9. package/dist/cli/{guardrail-explain-p2htdqkz.js → guardrail-explain-thddj6jv.js} +15 -15
  10. package/dist/cli/{guardrail-log-rqt9wrzw.js → guardrail-log-w8fmxe1x.js} +4 -4
  11. package/dist/cli/{hive-promoter-61sjdrgt.js → hive-promoter-0yg3gxg6.js} +14 -14
  12. package/dist/cli/{index-0an7an2s.js → index-0tevsq1a.js} +2 -2
  13. package/dist/cli/{index-hnprx6qv.js → index-1j5my2qy.js} +2 -2
  14. package/dist/cli/{index-dbg3agxz.js → index-325zmfyj.js} +4 -4
  15. package/dist/cli/{index-ff7b0cr5.js → index-4rje8dc0.js} +16 -16
  16. package/dist/cli/{index-dn3nkwbc.js → index-7ax0bkqh.js} +1 -1
  17. package/dist/cli/{index-vw75bhf3.js → index-898f16j9.js} +1 -1
  18. package/dist/cli/{index-yf6p4wc5.js → index-9txca231.js} +3 -3
  19. package/dist/cli/{index-jq7n7w9y.js → index-bmmzfrc7.js} +2 -2
  20. package/dist/cli/{index-acc18zrj.js → index-chx92bes.js} +2 -2
  21. package/dist/cli/{index-wysn7pcz.js → index-jfp1bgt1.js} +1 -1
  22. package/dist/cli/{index-v1d4qz8y.js → index-n408rw7n.js} +1 -1
  23. package/dist/cli/{index-7f72x6nv.js → index-n831qq2v.js} +435 -172
  24. package/dist/cli/{index-a98msw3z.js → index-t59cdg48.js} +1 -1
  25. package/dist/cli/{index-hgrzjhsf.js → index-vjqe1z2w.js} +3 -3
  26. package/dist/cli/{index-m9csth1h.js → index-x6mtyj6q.js} +2 -2
  27. package/dist/cli/{index-6fwr2w8v.js → index-y98ngs4g.js} +2 -2
  28. package/dist/cli/{index-7nhrn9sy.js → index-yt3vz0e1.js} +1 -1
  29. package/dist/cli/{index-r7tg8kjh.js → index-z6md3t8m.js} +5 -5
  30. package/dist/cli/index.js +14 -14
  31. package/dist/cli/{knowledge-escalator-twwz5a0d.js → knowledge-escalator-58tw74js.js} +3 -3
  32. package/dist/cli/{knowledge-events-hgaz06m8.js → knowledge-events-knr0pfq4.js} +1 -1
  33. package/dist/cli/{knowledge-store-46jrzgvm.js → knowledge-store-e2srcd89.js} +1 -1
  34. package/dist/cli/{knowledge-validator-7vnqwjtv.js → knowledge-validator-1dtj02q8.js} +4 -4
  35. package/dist/cli/{scan-cursor-acsjpv2n.js → scan-cursor-7tqsvbp8.js} +2 -2
  36. package/dist/cli/{schema-4dy7emnw.js → schema-b046zss2.js} +2 -2
  37. package/dist/cli/{skill-generator-a48t83hf.js → skill-generator-bvph9d98.js} +5 -5
  38. package/dist/commands/registry.d.ts +1 -1
  39. package/dist/git/pr-workflow-state.d.ts +3 -1
  40. package/dist/hooks/pr-workflow-gate.d.ts +19 -13
  41. package/dist/index.js +104 -99
  42. package/dist/tools/complete-pr-workflow.d.ts +6 -0
  43. package/dist/tools/gh-evidence.d.ts +6 -0
  44. package/dist/tools/prepare-pr-workflow-checkout.d.ts +11 -0
  45. package/package.json +1 -1
@@ -176,7 +176,9 @@ tree:
176
176
  before binding (Profile A). Omit `paths` to auto-discover and atomically
177
177
  preserve every dirty path, including untracked files; pass explicit `paths`
178
178
  only for an exact bounded tracked-file set. It creates an auditable stash
179
- receipt and recovery command. Do not issue `git stash` through shell.
179
+ receipt containing the original branch/HEAD and a structured
180
+ `operation: "restore"` recovery instruction. Do not issue `git stash`
181
+ through shell.
180
182
  Without the controller, surface dirty state to the user or abort the checkout
181
183
  — do not blind-stash.
182
184
  - Treat `recovery-required` and `indeterminate` controller results as terminal
@@ -872,7 +874,18 @@ open. While the gate remains active, the runtime prepends a workflow-active
872
874
  banner to architect text (the model's text is preserved below it) and normally re-wakes an
873
875
  idle parent session. A user interruption pauses automatic wakes until a later
874
876
  explicit user turn settles; the durable gate remains available to continue or
875
- abort.
877
+ abort. When the terminal response reports `checkout_restore_required`, call
878
+ `prepare_pr_workflow_checkout` with `operation: "restore"` before returning to
879
+ the user. When `checkout_restore_receipts` lists multiple entries, one restore
880
+ call reapplies all receipts that share the recorded destination; an optional
881
+ listed `stash_oid` is an exact inventory assertion, not a selector that leaves
882
+ the other receipts pending. Successfully applied stashes remain in Git as
883
+ explicit safety backups and are listed in `retained_stash_oids`; the controller
884
+ never drops a mutable `stash@{n}` selector. The restore refuses
885
+ dirty, mixed-destination, missing-stash, invalid-receipt, cross-session, or
886
+ divergent state without reset/clean and preserves recovery evidence on failure.
887
+ Legacy receipts derive their original commit from the preserved stash and
888
+ select a uniquely matching local branch when available.
876
889
 
877
890
  Under Profiles B/C, no mechanical gate exists: emit the final response only
878
891
  after the closure ledger accounts for every original item and the pushed
@@ -903,5 +916,8 @@ arming you MUST complete via `complete_pr_workflow` (or push the bound
903
916
  commit first), because aborting an armed gate would drop the immutable-
904
917
  commit binding and leave a half-published commit. The user can also run
905
918
  `/swarm abort-pr-workflow` once the wake budget suspends. Abort is a
906
- recovery tool, not a gate-skip shortcut. On Profiles B/C there is no durable
919
+ recovery tool for unbound or bound pre-publication workflows after bounded
920
+ recovery is exhausted, not a gate-skip shortcut. When abort reports
921
+ `checkout_restore_required`, call `prepare_pr_workflow_checkout` with
922
+ `operation: "restore"` before returning. On Profiles B/C there is no durable
907
923
  gate to abort: report the blocker to the user and stop.
@@ -278,8 +278,11 @@ Before launching explorers (Phase 3), perform this exact standalone sequence:
278
278
  rejected dispatch: the merge base is recomputed against `base_ref`, and a
279
279
  local `main`/`refs/heads/main` that was never refreshed resolves to a
280
280
  different commit than `origin/main` for the same `base_sha`.
281
- 4. Prove the full commit exists locally with
282
- `git cat-file -e <full_pr_head_sha>^{commit}`.
281
+ 4. Prove the full commit exists locally with two portable standalone commands:
282
+ `git rev-parse --verify <full_pr_head_sha>^0`, then
283
+ `git cat-file -t <full_pr_head_sha>`. The second command must print
284
+ `commit`. This avoids shell/wrapper parsing differences around the
285
+ `^{commit}` suffix on Windows.
283
286
  5. Check out the exact PR filesystem with
284
287
  `git switch --detach <full_pr_head_sha>`. Do not use `--track FETCH_HEAD`:
285
288
  `FETCH_HEAD` is not a remote-tracking branch.
@@ -298,7 +301,11 @@ If refs cannot be fetched or checked out, state the limitation in the context pa
298
301
  ### Shell rules under the PR_REVIEW gate
299
302
 
300
303
  The gate accepts one command per tool call — never compose commands with
301
- `&&`, `;`, `|`, redirects (`>`, `>>`, `<`), or `$(...)`/`` ` `` substitution.
304
+ `&&`, `;`, shell pipelines, redirects (`>`, `>>`, `<`), or `$(...)`/`` ` ``
305
+ substitution. The only literal-pipe exception is inside one closed
306
+ double-quoted `gh api --jq` argument with no backslash-escaped nested double
307
+ quotes; that escape is ambiguous under `cmd.exe`. The exception does not
308
+ permit an outer pipeline or any other control syntax.
302
309
  A single leading `cd <dir> &&` prefix and a trailing `2>&1` suffix are
303
310
  tolerated, but only on read-only commands. State-transition verbs — `git
304
311
  fetch`, `git checkout`, `git switch`, `git branch`, and `gh pr checkout` —
@@ -366,6 +373,12 @@ This intake includes:
366
373
  - PR body claims, linked issues, acceptance criteria, and test-plan claims,
367
374
  - commit messages and app/bot commits on the PR branch.
368
375
 
376
+ When multiple CI/check runs have the same name, reconcile them by head SHA and
377
+ time: the latest run for the exact bound head SHA supersedes an older same-check
378
+ run on that same head. Keep an older failure only as historical diagnostic
379
+ evidence; do not report it as the current PR state after a newer same-head run
380
+ has completed successfully.
381
+
369
382
  When thread resolution state matters, prefer GraphQL review-thread inspection.
370
383
  If GraphQL is unavailable, keep the signal and mark
371
384
  `resolution_state: UNKNOWN`; do not drop it from scope.
@@ -389,8 +402,10 @@ gh api --paginate repos/{owner}/{repo}/pulls/{PR_NUMBER}/reviews
389
402
  ```
390
403
 
391
404
  `--paginate` requests every REST page. These three calls are gate-allowed as
392
- written; do not pipe any of them through `--jq`, `jq`, or another filter under
393
- the PR_REVIEW gate piped commands are blocked (fail-closed on `|`). To
405
+ written. A literal jq filter passed as one closed double-quoted `gh api --jq`
406
+ argument is also allowed when it needs no backslash-escaped nested double
407
+ quotes; use `gh_evidence` when a portable filter cannot meet that shape. A real
408
+ shell pipeline to `jq` or another command remains blocked. To
394
409
  separate bot/automated reviews (Copilot, Codex, CodeRabbit, etc.) from human
395
410
  ones, apply the same predicate in context to the JSON already returned above
396
411
  — `user.type == "Bot"` or a `user.login` match against
@@ -590,7 +605,13 @@ PARALLEL WORK CHECK (pre-fix):
590
605
 
591
606
  ## Phase 0: Context Pack and Review Signal Collection
592
607
 
593
- Before launching explorers, build a compact `swarm-pr-review-context` in scratch or as a local artifact if file writes are allowed.
608
+ Before launching explorers, build a compact `swarm-pr-review-context`. Under
609
+ Profile A, do not create a scratch context-pack file after the controller gate
610
+ activates: PR_REVIEW intentionally blocks arbitrary writes. Put the bounded
611
+ shared scope, obligations, deterministic signals, and impact hints in
612
+ `common_prompt`, and require every lane to inspect the exact bound diff itself.
613
+ Under Profiles B/C, keep the context in working notes or a local artifact only
614
+ when that runtime permits the write.
594
615
 
595
616
  The context pack must include, when available:
596
617
 
@@ -904,6 +925,13 @@ For ANY lane that failed (either mode):
904
925
  1. **Retry** (max 2 attempts) with materially different parameters — different session or prompt decomposition, while preserving the required structured async mode and exact head provenance.
905
926
  2. If a base lane fails under Profile A, retry only the failed `workflow_lane` identifiers with `dispatch_lanes_async`, `mode: "swarm-pr-review:base"`, the same exact `pr_head_sha`, and explorer agents. The durable gate joins successful provenance across the initial wave and retry batches. While that controller is active, blocking `dispatch_lanes` and direct Task dispatch are not equivalent because they cannot satisfy the structured provenance gate. Under Profiles B/C, retry only the failed `workflow_lane` identifiers with a fresh subagent or pass, the same exact `pr_head_sha`, and a materially different prompt decomposition.
906
927
  3. If no equivalent alternative can be verified, **STOP and surface the lane failure to the user as BLOCKED** with the lane id, scope, failure mode, retry attempts, and why equivalence could not be proven. Do not present partial findings, do not issue a review verdict, and do not synthesize from successful lanes. A low-quality partial review is worse than no review.
928
+ 4. Under Profile A: After the second failed retry, collect every lane to a
929
+ terminal state, do not probe downstream writers or micro lanes, call
930
+ `abort_pr_workflow` with `mode: "PR_REVIEW"`, `kind: "recovery"`, and a
931
+ non-empty one-line `reason` naming the failed lane and exhausted retries.
932
+ Then call `prepare_pr_workflow_checkout` with `operation: "restore"`.
933
+ Report the preserved failure only after the gate is cleared and the checkout
934
+ restoration either succeeds or returns a concrete manual-recovery diagnostic.
907
935
 
908
936
  ### Contract-failure diagnosis and recovery
909
937
 
@@ -1870,6 +1898,19 @@ parts, are left untouched) and re-wakes an idle parent session. A
1870
1898
  user interruption pauses every automatic wake path until a later explicit user
1871
1899
  turn settles; the durable gate remains available to continue or abort. Only
1872
1900
  emit the final report after the completion tool confirms that the gate cleared.
1901
+ If it reports `checkout_restore_required`, call
1902
+ `prepare_pr_workflow_checkout` with `operation: "restore"` before returning to
1903
+ the user. When `checkout_restore_receipts` lists multiple entries, one restore
1904
+ call reapplies all receipts that share the recorded destination; an optional
1905
+ listed `stash_oid` is an exact inventory assertion, not a selector that leaves
1906
+ the other receipts pending. Successfully applied stashes remain in Git as
1907
+ explicit safety backups and are listed in `retained_stash_oids`; the controller
1908
+ never drops a mutable `stash@{n}` selector. Restoration is
1909
+ conservative: a dirty/conflicted checkout, mixed destinations, another active
1910
+ PR session, a missing stash, or an invalid recovery receipt returns a
1911
+ manual-recovery diagnostic without resetting or dropping preserved state.
1912
+ Legacy receipts derive the exact original commit from the stash and restore a
1913
+ uniquely matching local branch when one exists (otherwise detached).
1873
1914
 
1874
1915
  Under Profiles B/C, no mechanical response gate exists: the Pre-Synthesis Gate
1875
1916
  checklist is the completion gate. Emit the final report only after every
@@ -1897,8 +1938,9 @@ when diagnosing why a review stopped resuming. Either way, the only exits
1897
1938
  are:
1898
1939
 
1899
1940
  1. **Diagnose and retry the canonical standalone sequence.** Run
1900
- `git fetch origin refs/pull/<N>/head`, verify
1901
- `git cat-file -e <full_pr_head_sha>^{commit}`, then run
1941
+ `git fetch origin refs/pull/<N>/head`, verify with
1942
+ `git rev-parse --verify <full_pr_head_sha>^0` and
1943
+ `git cat-file -t <full_pr_head_sha>` (which must print `commit`), then run
1902
1944
  `git switch --detach <full_pr_head_sha>`. Do not use `--track FETCH_HEAD`.
1903
1945
  Confirm `git rev-parse HEAD` equals the authoritative PR head, then recompute the exact
1904
1946
  merge base with `git merge-base -- <base_ref> <pr_head_sha>` (single
@@ -1908,9 +1950,12 @@ are:
1908
1950
  and a one-line `reason` describing the blocker. The tool clears the durable gate state
1909
1951
  and stops the auto-resume loop. It refuses while PR workflow lanes are
1910
1952
  still in flight (collect their results with `collect_lane_results`
1911
- first) and refuses once a PR_FEEDBACK workflow is armed for publication
1912
- in PR_REVIEW those refusals do not apply because there is no armed
1913
- publication state. An audit event is appended to `.swarm/events.jsonl`.
1953
+ first). It accepts both unbound and bound PR_REVIEW workflows so exhausted
1954
+ post-bind discovery or validation cannot strand the gate. An audit event is
1955
+ appended to `.swarm/events.jsonl`.
1956
+ When the tool reports `checkout_restore_required`, immediately call
1957
+ `prepare_pr_workflow_checkout` with `operation: "restore"`; do not leave the
1958
+ user detached from their original checkout with a hidden preserved stash.
1914
1959
  3. **Ask the user to run `/swarm abort-pr-workflow`** (a human-only
1915
1960
  restricted command; the agent cannot invoke it via `swarm_command`).
1916
1961
  This is the recovery path when the wake budget has suspended and the
@@ -1934,8 +1979,10 @@ or re-dispatching the disagreeing lane so its trigger_evaluation converges with
1934
1979
  the frozen ledger before re-binding.
1935
1980
 
1936
1981
  Abort is a recovery tool, not a coverage shortcut. Use it only when the
1937
- bind/checkout path is genuinely unreachable; never use it to skip a
1938
- coverage obligation that is merely expensive or inconvenient.
1982
+ bind/checkout path is genuinely unreachable or bounded structural recovery or
1983
+ retries are genuinely exhausted; never use it to skip a coverage obligation
1984
+ that is still recoverable, merely expensive, or inconvenient.
1939
1985
 
1940
1986
  On Profiles B/C there is no durable gate or auto-resume loop to clear: if the
1941
- head bind is genuinely unreachable, report the blocker to the user and stop.
1987
+ head bind is genuinely unreachable or bounded lane recovery is exhausted,
1988
+ report the blocker to the user and stop.
@@ -48,7 +48,10 @@ export interface NormalizedCandidateArtifact {
48
48
  text: string;
49
49
  /** True when a canonical header was supplied by this normalizer. */
50
50
  synthesizedHeader: boolean;
51
+ /** Narrow, auditable repairs applied before the unchanged strict parser runs. */
52
+ repairKinds: CandidateArtifactRepairKind[];
51
53
  }
54
+ export type CandidateArtifactRepairKind = 'synthesized-header' | 'terminal-protocol-fence' | 'redundant-clean-confidence';
52
55
  /**
53
56
  * Normalize a lane artifact ONCE so every consumer parses byte-identical text.
54
57
  *
@@ -12,11 +12,11 @@ import {
12
12
  shouldRunOnStartup,
13
13
  writeBackupArtifact,
14
14
  writeDoctorArtifact
15
- } from "./index-acc18zrj.js";
15
+ } from "./index-chx92bes.js";
16
16
  import"./index-ee3x66a5.js";
17
17
  import"./index-zgwm4ryv.js";
18
- import"./index-jq7n7w9y.js";
19
- import"./index-v1d4qz8y.js";
18
+ import"./index-bmmzfrc7.js";
19
+ import"./index-n408rw7n.js";
20
20
  import"./index-zjygnfay.js";
21
21
  import"./index-bk5tah7q.js";
22
22
  import"./index-bpmtbmy9.js";
@@ -14,12 +14,12 @@ import {
14
14
  resolveWorktreeBaseDir,
15
15
  shortenWorktreePath,
16
16
  writeLaneProfileToDiskReal
17
- } from "./index-vw75bhf3.js";
17
+ } from "./index-898f16j9.js";
18
18
  import"./index-ee3x66a5.js";
19
19
  import"./index-4nt52yr9.js";
20
20
  import"./index-4rhhvd1a.js";
21
21
  import"./index-zgwm4ryv.js";
22
- import"./index-v1d4qz8y.js";
22
+ import"./index-n408rw7n.js";
23
23
  import"./index-zjygnfay.js";
24
24
  import"./index-a76rekgs.js";
25
25
  export {
@@ -4,9 +4,9 @@ import {
4
4
  authorizeCuration,
5
5
  buildConfigFingerprintInput,
6
6
  readCohortConfigFingerprint
7
- } from "./index-a98msw3z.js";
7
+ } from "./index-t59cdg48.js";
8
8
  import"./index-rtry5xyf.js";
9
- import"./index-wysn7pcz.js";
9
+ import"./index-jfp1bgt1.js";
10
10
  import"./index-ae75rja9.js";
11
11
  import"./index-rs1f1bh0.js";
12
12
  import"./index-h2waehqq.js";
@@ -1,19 +1,19 @@
1
1
  // @bun
2
2
  import {
3
3
  createCuratorLLMDelegate
4
- } from "./index-7f72x6nv.js";
4
+ } from "./index-n831qq2v.js";
5
5
  import"./index-41hkt36g.js";
6
6
  import"./index-1m1ksyqt.js";
7
- import"./index-m9csth1h.js";
8
- import"./index-acc18zrj.js";
7
+ import"./index-x6mtyj6q.js";
8
+ import"./index-chx92bes.js";
9
9
  import"./index-brh827g0.js";
10
10
  import"./index-yyyk63kk.js";
11
11
  import"./index-y8552snf.js";
12
12
  import"./index-4905hd2m.js";
13
13
  import"./index-134d35c1.js";
14
- import"./index-yf6p4wc5.js";
15
- import"./index-r7tg8kjh.js";
16
- import"./index-7nhrn9sy.js";
14
+ import"./index-9txca231.js";
15
+ import"./index-z6md3t8m.js";
16
+ import"./index-yt3vz0e1.js";
17
17
  import"./index-v2xrer41.js";
18
18
  import"./index-c8s9a3zh.js";
19
19
  import"./index-9ss2m4rs.js";
@@ -23,7 +23,7 @@ import"./index-556ja8an.js";
23
23
  import"./index-kbfsp07d.js";
24
24
  import"./index-1kyex7z2.js";
25
25
  import"./index-b8zgtz81.js";
26
- import"./index-vw75bhf3.js";
26
+ import"./index-898f16j9.js";
27
27
  import"./index-b9rd29ge.js";
28
28
  import"./index-k46me75h.js";
29
29
  import"./index-ee3x66a5.js";
@@ -31,11 +31,11 @@ import"./index-74hpm6sh.js";
31
31
  import"./index-n0pja0qs.js";
32
32
  import"./index-8fwhhayc.js";
33
33
  import"./index-q1exe2b3.js";
34
- import"./index-hnprx6qv.js";
35
- import"./index-a98msw3z.js";
34
+ import"./index-1j5my2qy.js";
35
+ import"./index-t59cdg48.js";
36
36
  import"./index-rtry5xyf.js";
37
- import"./index-dbg3agxz.js";
38
- import"./index-wysn7pcz.js";
37
+ import"./index-325zmfyj.js";
38
+ import"./index-jfp1bgt1.js";
39
39
  import"./index-ae75rja9.js";
40
40
  import"./index-rs1f1bh0.js";
41
41
  import"./index-h2waehqq.js";
@@ -43,14 +43,14 @@ import"./index-ed5ykebp.js";
43
43
  import"./index-hfvxhk4z.js";
44
44
  import"./index-7g4c7s5r.js";
45
45
  import"./index-4nt52yr9.js";
46
- import"./index-0an7an2s.js";
46
+ import"./index-0tevsq1a.js";
47
47
  import"./index-gprxjmm7.js";
48
48
  import"./index-n832052r.js";
49
49
  import"./index-d181x9zr.js";
50
50
  import"./index-4rhhvd1a.js";
51
51
  import"./index-zgwm4ryv.js";
52
- import"./index-jq7n7w9y.js";
53
- import"./index-v1d4qz8y.js";
52
+ import"./index-bmmzfrc7.js";
53
+ import"./index-n408rw7n.js";
54
54
  import"./index-zjygnfay.js";
55
55
  import"./index-bk5tah7q.js";
56
56
  import"./index-ry0hgg3m.js";
@@ -14,19 +14,19 @@ import {
14
14
  runCuratorInit,
15
15
  runCuratorPhase,
16
16
  writeCuratorSummary
17
- } from "./index-7f72x6nv.js";
17
+ } from "./index-n831qq2v.js";
18
18
  import"./index-41hkt36g.js";
19
19
  import"./index-1m1ksyqt.js";
20
- import"./index-m9csth1h.js";
21
- import"./index-acc18zrj.js";
20
+ import"./index-x6mtyj6q.js";
21
+ import"./index-chx92bes.js";
22
22
  import"./index-brh827g0.js";
23
23
  import"./index-yyyk63kk.js";
24
24
  import"./index-y8552snf.js";
25
25
  import"./index-4905hd2m.js";
26
26
  import"./index-134d35c1.js";
27
- import"./index-yf6p4wc5.js";
28
- import"./index-r7tg8kjh.js";
29
- import"./index-7nhrn9sy.js";
27
+ import"./index-9txca231.js";
28
+ import"./index-z6md3t8m.js";
29
+ import"./index-yt3vz0e1.js";
30
30
  import"./index-v2xrer41.js";
31
31
  import"./index-c8s9a3zh.js";
32
32
  import"./index-9ss2m4rs.js";
@@ -36,7 +36,7 @@ import"./index-556ja8an.js";
36
36
  import"./index-kbfsp07d.js";
37
37
  import"./index-1kyex7z2.js";
38
38
  import"./index-b8zgtz81.js";
39
- import"./index-vw75bhf3.js";
39
+ import"./index-898f16j9.js";
40
40
  import"./index-b9rd29ge.js";
41
41
  import"./index-k46me75h.js";
42
42
  import"./index-ee3x66a5.js";
@@ -44,11 +44,11 @@ import"./index-74hpm6sh.js";
44
44
  import"./index-n0pja0qs.js";
45
45
  import"./index-8fwhhayc.js";
46
46
  import"./index-q1exe2b3.js";
47
- import"./index-hnprx6qv.js";
48
- import"./index-a98msw3z.js";
47
+ import"./index-1j5my2qy.js";
48
+ import"./index-t59cdg48.js";
49
49
  import"./index-rtry5xyf.js";
50
- import"./index-dbg3agxz.js";
51
- import"./index-wysn7pcz.js";
50
+ import"./index-325zmfyj.js";
51
+ import"./index-jfp1bgt1.js";
52
52
  import"./index-ae75rja9.js";
53
53
  import"./index-rs1f1bh0.js";
54
54
  import"./index-h2waehqq.js";
@@ -56,14 +56,14 @@ import"./index-ed5ykebp.js";
56
56
  import"./index-hfvxhk4z.js";
57
57
  import"./index-7g4c7s5r.js";
58
58
  import"./index-4nt52yr9.js";
59
- import"./index-0an7an2s.js";
59
+ import"./index-0tevsq1a.js";
60
60
  import"./index-gprxjmm7.js";
61
61
  import"./index-n832052r.js";
62
62
  import"./index-d181x9zr.js";
63
63
  import"./index-4rhhvd1a.js";
64
64
  import"./index-zgwm4ryv.js";
65
- import"./index-jq7n7w9y.js";
66
- import"./index-v1d4qz8y.js";
65
+ import"./index-bmmzfrc7.js";
66
+ import"./index-n408rw7n.js";
67
67
  import"./index-zjygnfay.js";
68
68
  import"./index-bk5tah7q.js";
69
69
  import"./index-ry0hgg3m.js";
@@ -1,20 +1,20 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-6fwr2w8v.js";
5
- import"./index-7f72x6nv.js";
4
+ } from "./index-y98ngs4g.js";
5
+ import"./index-n831qq2v.js";
6
6
  import"./index-41hkt36g.js";
7
7
  import"./index-1m1ksyqt.js";
8
- import"./index-m9csth1h.js";
9
- import"./index-acc18zrj.js";
8
+ import"./index-x6mtyj6q.js";
9
+ import"./index-chx92bes.js";
10
10
  import"./index-brh827g0.js";
11
11
  import"./index-yyyk63kk.js";
12
12
  import"./index-y8552snf.js";
13
13
  import"./index-4905hd2m.js";
14
14
  import"./index-134d35c1.js";
15
- import"./index-yf6p4wc5.js";
16
- import"./index-r7tg8kjh.js";
17
- import"./index-7nhrn9sy.js";
15
+ import"./index-9txca231.js";
16
+ import"./index-z6md3t8m.js";
17
+ import"./index-yt3vz0e1.js";
18
18
  import"./index-v2xrer41.js";
19
19
  import"./index-c8s9a3zh.js";
20
20
  import"./index-9ss2m4rs.js";
@@ -24,7 +24,7 @@ import"./index-556ja8an.js";
24
24
  import"./index-kbfsp07d.js";
25
25
  import"./index-1kyex7z2.js";
26
26
  import"./index-b8zgtz81.js";
27
- import"./index-vw75bhf3.js";
27
+ import"./index-898f16j9.js";
28
28
  import"./index-b9rd29ge.js";
29
29
  import"./index-k46me75h.js";
30
30
  import"./index-ee3x66a5.js";
@@ -32,11 +32,11 @@ import"./index-74hpm6sh.js";
32
32
  import"./index-n0pja0qs.js";
33
33
  import"./index-8fwhhayc.js";
34
34
  import"./index-q1exe2b3.js";
35
- import"./index-hnprx6qv.js";
36
- import"./index-a98msw3z.js";
35
+ import"./index-1j5my2qy.js";
36
+ import"./index-t59cdg48.js";
37
37
  import"./index-rtry5xyf.js";
38
- import"./index-dbg3agxz.js";
39
- import"./index-wysn7pcz.js";
38
+ import"./index-325zmfyj.js";
39
+ import"./index-jfp1bgt1.js";
40
40
  import"./index-ae75rja9.js";
41
41
  import"./index-rs1f1bh0.js";
42
42
  import"./index-h2waehqq.js";
@@ -44,14 +44,14 @@ import"./index-ed5ykebp.js";
44
44
  import"./index-hfvxhk4z.js";
45
45
  import"./index-7g4c7s5r.js";
46
46
  import"./index-4nt52yr9.js";
47
- import"./index-0an7an2s.js";
47
+ import"./index-0tevsq1a.js";
48
48
  import"./index-gprxjmm7.js";
49
49
  import"./index-n832052r.js";
50
50
  import"./index-d181x9zr.js";
51
51
  import"./index-4rhhvd1a.js";
52
52
  import"./index-zgwm4ryv.js";
53
- import"./index-jq7n7w9y.js";
54
- import"./index-v1d4qz8y.js";
53
+ import"./index-bmmzfrc7.js";
54
+ import"./index-n408rw7n.js";
55
55
  import"./index-zjygnfay.js";
56
56
  import"./index-bk5tah7q.js";
57
57
  import"./index-ry0hgg3m.js";
@@ -1,14 +1,14 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailLog
4
- } from "./index-dn3nkwbc.js";
5
- import"./index-m9csth1h.js";
4
+ } from "./index-7ax0bkqh.js";
5
+ import"./index-x6mtyj6q.js";
6
6
  import"./index-556ja8an.js";
7
7
  import"./index-ee3x66a5.js";
8
8
  import"./index-4nt52yr9.js";
9
9
  import"./index-zgwm4ryv.js";
10
- import"./index-jq7n7w9y.js";
11
- import"./index-v1d4qz8y.js";
10
+ import"./index-bmmzfrc7.js";
11
+ import"./index-n408rw7n.js";
12
12
  import"./index-zjygnfay.js";
13
13
  import"./index-bk5tah7q.js";
14
14
  import"./index-bpmtbmy9.js";
@@ -7,19 +7,19 @@ import {
7
7
  isHiveEligible,
8
8
  promoteFromSwarm,
9
9
  promoteToHive
10
- } from "./index-7f72x6nv.js";
10
+ } from "./index-n831qq2v.js";
11
11
  import"./index-41hkt36g.js";
12
12
  import"./index-1m1ksyqt.js";
13
- import"./index-m9csth1h.js";
14
- import"./index-acc18zrj.js";
13
+ import"./index-x6mtyj6q.js";
14
+ import"./index-chx92bes.js";
15
15
  import"./index-brh827g0.js";
16
16
  import"./index-yyyk63kk.js";
17
17
  import"./index-y8552snf.js";
18
18
  import"./index-4905hd2m.js";
19
19
  import"./index-134d35c1.js";
20
- import"./index-yf6p4wc5.js";
21
- import"./index-r7tg8kjh.js";
22
- import"./index-7nhrn9sy.js";
20
+ import"./index-9txca231.js";
21
+ import"./index-z6md3t8m.js";
22
+ import"./index-yt3vz0e1.js";
23
23
  import"./index-v2xrer41.js";
24
24
  import"./index-c8s9a3zh.js";
25
25
  import"./index-9ss2m4rs.js";
@@ -29,7 +29,7 @@ import"./index-556ja8an.js";
29
29
  import"./index-kbfsp07d.js";
30
30
  import"./index-1kyex7z2.js";
31
31
  import"./index-b8zgtz81.js";
32
- import"./index-vw75bhf3.js";
32
+ import"./index-898f16j9.js";
33
33
  import"./index-b9rd29ge.js";
34
34
  import"./index-k46me75h.js";
35
35
  import"./index-ee3x66a5.js";
@@ -37,13 +37,13 @@ import"./index-74hpm6sh.js";
37
37
  import"./index-n0pja0qs.js";
38
38
  import"./index-8fwhhayc.js";
39
39
  import"./index-q1exe2b3.js";
40
- import"./index-hnprx6qv.js";
41
- import"./index-a98msw3z.js";
40
+ import"./index-1j5my2qy.js";
41
+ import"./index-t59cdg48.js";
42
42
  import"./index-rtry5xyf.js";
43
43
  import {
44
44
  resolveHiveKnowledgePath
45
- } from "./index-dbg3agxz.js";
46
- import"./index-wysn7pcz.js";
45
+ } from "./index-325zmfyj.js";
46
+ import"./index-jfp1bgt1.js";
47
47
  import"./index-ae75rja9.js";
48
48
  import"./index-rs1f1bh0.js";
49
49
  import"./index-h2waehqq.js";
@@ -51,14 +51,14 @@ import"./index-ed5ykebp.js";
51
51
  import"./index-hfvxhk4z.js";
52
52
  import"./index-7g4c7s5r.js";
53
53
  import"./index-4nt52yr9.js";
54
- import"./index-0an7an2s.js";
54
+ import"./index-0tevsq1a.js";
55
55
  import"./index-gprxjmm7.js";
56
56
  import"./index-n832052r.js";
57
57
  import"./index-d181x9zr.js";
58
58
  import"./index-4rhhvd1a.js";
59
59
  import"./index-zgwm4ryv.js";
60
- import"./index-jq7n7w9y.js";
61
- import"./index-v1d4qz8y.js";
60
+ import"./index-bmmzfrc7.js";
61
+ import"./index-n408rw7n.js";
62
62
  import"./index-zjygnfay.js";
63
63
  import"./index-bk5tah7q.js";
64
64
  import"./index-ry0hgg3m.js";
@@ -10,11 +10,11 @@ import {
10
10
  PluginConfigSchema,
11
11
  init_schema,
12
12
  resolveExternalSkillsConfig
13
- } from "./index-jq7n7w9y.js";
13
+ } from "./index-bmmzfrc7.js";
14
14
  import {
15
15
  DEFAULT_WORKTREE_ISOLATION_CONFIG,
16
16
  init_constants
17
- } from "./index-v1d4qz8y.js";
17
+ } from "./index-n408rw7n.js";
18
18
  import {
19
19
  MAX_MERGE_DEPTH,
20
20
  deepMerge,
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  authorizeCuration
4
- } from "./index-a98msw3z.js";
4
+ } from "./index-t59cdg48.js";
5
5
  import {
6
6
  findNearDuplicate,
7
7
  inferTags,
@@ -9,7 +9,7 @@ import {
9
9
  resolveSwarmKnowledgePath,
10
10
  resolveSwarmRejectedPath,
11
11
  transactKnowledge
12
- } from "./index-dbg3agxz.js";
12
+ } from "./index-325zmfyj.js";
13
13
  import {
14
14
  resolveKnowledgeStoreDir
15
15
  } from "./index-rs1f1bh0.js";
@@ -702,7 +702,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
702
702
  const recovered = touched.filter((e) => e.confidence > CONFIDENCE_FLOOR + FLOOR_EPSILON && e.confidence_floor_demoted);
703
703
  if (atFloor.length === 0 && recovered.length === 0)
704
704
  return;
705
- const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-hgaz06m8.js");
705
+ const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-knr0pfq4.js");
706
706
  const rollups = await readKnowledgeCounterRollups(directory);
707
707
  const flagIds = new Set;
708
708
  for (const e of atFloor) {
@@ -769,11 +769,11 @@ async function applyConfidenceFloorAction(directory, touched, options) {
769
769
  });
770
770
  }
771
771
  if (action === "quarantine" && toQuarantine.length > 0) {
772
- const { quarantineEntry } = await import("./knowledge-validator-7vnqwjtv.js");
773
- const { KnowledgeConfigSchema } = await import("./schema-4dy7emnw.js");
772
+ const { quarantineEntry } = await import("./knowledge-validator-1dtj02q8.js");
773
+ const { KnowledgeConfigSchema } = await import("./schema-b046zss2.js");
774
774
  let config;
775
775
  try {
776
- const { loadPluginConfigWithMeta } = await import("./index-hgrzjhsf.js");
776
+ const { loadPluginConfigWithMeta } = await import("./index-vjqe1z2w.js");
777
777
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
778
778
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
779
779
  } catch {