opencode-swarm 7.139.1 → 7.139.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 (35) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +15 -0
  2. package/dist/cli/{config-doctor-tgnr91q3.js → config-doctor-hrb61yqe.js} +2 -2
  3. package/dist/cli/{curation-policy-2qnhgdtt.js → curation-policy-4tp0mbcb.js} +2 -2
  4. package/dist/cli/{curator-llm-factory-1ftzece0.js → curator-llm-factory-hvw13hmr.js} +12 -12
  5. package/dist/cli/{curator-nbsag633.js → curator-vpcs1p1v.js} +12 -12
  6. package/dist/cli/{guardrail-explain-vb9k9zwm.js → guardrail-explain-k62h3c92.js} +13 -13
  7. package/dist/cli/{guardrail-log-0djnvfas.js → guardrail-log-2ftew0p3.js} +3 -3
  8. package/dist/cli/{hive-promoter-bpt26yew.js → hive-promoter-mpf0cfkk.js} +12 -12
  9. package/dist/cli/{index-xec724kg.js → index-3radty3f.js} +1 -1
  10. package/dist/cli/{index-hgrkhxbk.js → index-6c5f309q.js} +2 -2
  11. package/dist/cli/{index-0ymhx85c.js → index-6w1re1qn.js} +1 -1
  12. package/dist/cli/{index-hn0mdcmj.js → index-8gftfvpp.js} +1 -1
  13. package/dist/cli/{index-15526t16.js → index-8p9pasnp.js} +1 -1
  14. package/dist/cli/{index-xr07r80d.js → index-a7nh382r.js} +37 -36
  15. package/dist/cli/{index-db7wf6ke.js → index-cyw81ngh.js} +4 -4
  16. package/dist/cli/{index-aymt7hzw.js → index-e9tx99ds.js} +1 -1
  17. package/dist/cli/{index-ywysg26s.js → index-ffpmqx30.js} +2 -2
  18. package/dist/cli/{index-en6qq954.js → index-ktagrqxw.js} +3 -3
  19. package/dist/cli/{index-dw09fz3w.js → index-q11t5erh.js} +1 -1
  20. package/dist/cli/{index-xka8s8jw.js → index-se8xc78k.js} +14 -14
  21. package/dist/cli/{index-vxbppwvf.js → index-w71cq27a.js} +5 -5
  22. package/dist/cli/{index-91s653xx.js → index-y47dwge1.js} +1 -1
  23. package/dist/cli/{index-y1zcsf2a.js → index-y64jv2pe.js} +1 -1
  24. package/dist/cli/{index-ht4q3548.js → index-yr6x707c.js} +2 -2
  25. package/dist/cli/index.js +12 -12
  26. package/dist/cli/{knowledge-escalator-pjg2x75c.js → knowledge-escalator-n9pmx4qr.js} +3 -3
  27. package/dist/cli/{knowledge-events-vxheptk8.js → knowledge-events-raevm18w.js} +1 -1
  28. package/dist/cli/{knowledge-store-36mascwz.js → knowledge-store-bcfqz8fr.js} +1 -1
  29. package/dist/cli/{knowledge-validator-anats6rj.js → knowledge-validator-jxqj96cx.js} +4 -4
  30. package/dist/cli/{scan-cursor-apbz9eez.js → scan-cursor-ah5swtyh.js} +2 -2
  31. package/dist/cli/{schema-x9fr2ey8.js → schema-f7jgrtxj.js} +1 -1
  32. package/dist/cli/{skill-generator-20czn4kd.js → skill-generator-hp7as46c.js} +5 -5
  33. package/dist/hooks/pr-workflow-gate.d.ts +8 -1
  34. package/dist/index.js +4 -4
  35. package/package.json +1 -1
@@ -1851,6 +1851,21 @@ are:
1851
1851
  This is the recovery path when the wake budget has suspended and the
1852
1852
  architect cannot make further tool progress.
1853
1853
 
1854
+ A second, unrelated stranding class is **trigger-ledger drift**. This is not a
1855
+ fetch/checkout problem: it means a later micro-lane's trigger_evaluation
1856
+ disagrees with the canonical ledger frozen by the first micro dispatch. The run
1857
+ fails closed in two places, with different strictness — at ledger bind time
1858
+ `bindPrReviewTriggerLedger` rejects a trigger_evaluation whose frozen-row digest
1859
+ (`trigger_id`, `result`, and `evidence` together) differs from the first
1860
+ dispatch's, and at receipt finalize time `write_pr_review_trigger_eval` rejects
1861
+ rows whose per-family `result` (classification) differs from the frozen ledger.
1862
+ The finalize gate is deliberately narrower than the bind gate: evidence may be
1863
+ omitted or reworded at the receipt, but classifications must still agree. If a
1864
+ later dispatch genuinely cannot converge with the frozen ledger, the exits are
1865
+ the abort paths listed above (`abort_pr_workflow` or `/swarm abort-pr-workflow`),
1866
+ or re-dispatching the disagreeing lane so its trigger_evaluation converges with
1867
+ the frozen ledger before re-binding.
1868
+
1854
1869
  Abort is a recovery tool, not a coverage shortcut. Use it only when the
1855
1870
  bind/checkout path is genuinely unreachable; never use it to skip a
1856
1871
  coverage obligation that is merely expensive or inconvenient.
@@ -12,8 +12,8 @@ import {
12
12
  shouldRunOnStartup,
13
13
  writeBackupArtifact,
14
14
  writeDoctorArtifact
15
- } from "./index-91s653xx.js";
16
- import"./index-15526t16.js";
15
+ } from "./index-y47dwge1.js";
16
+ import"./index-8p9pasnp.js";
17
17
  import"./index-bk5tah7q.js";
18
18
  import"./index-3jcyn8g6.js";
19
19
  import"./index-bpmtbmy9.js";
@@ -4,9 +4,9 @@ import {
4
4
  authorizeCuration,
5
5
  buildConfigFingerprintInput,
6
6
  readCohortConfigFingerprint
7
- } from "./index-xec724kg.js";
7
+ } from "./index-3radty3f.js";
8
8
  import"./index-rtry5xyf.js";
9
- import"./index-aymt7hzw.js";
9
+ import"./index-e9tx99ds.js";
10
10
  import"./index-ae75rja9.js";
11
11
  import"./index-668dpw5e.js";
12
12
  import"./index-gvhvz176.js";
@@ -1,36 +1,36 @@
1
1
  // @bun
2
2
  import {
3
3
  createCuratorLLMDelegate
4
- } from "./index-xr07r80d.js";
4
+ } from "./index-a7nh382r.js";
5
5
  import"./index-vm4xw9z3.js";
6
6
  import"./index-wrt6m5ze.js";
7
- import"./index-y1zcsf2a.js";
8
- import"./index-91s653xx.js";
7
+ import"./index-y64jv2pe.js";
8
+ import"./index-y47dwge1.js";
9
9
  import"./index-0wp67gqj.js";
10
10
  import"./index-s608d3hw.js";
11
11
  import"./index-y8552snf.js";
12
12
  import"./index-4905hd2m.js";
13
13
  import"./index-134d35c1.js";
14
- import"./index-en6qq954.js";
15
- import"./index-vxbppwvf.js";
16
- import"./index-0ymhx85c.js";
14
+ import"./index-ktagrqxw.js";
15
+ import"./index-w71cq27a.js";
16
+ import"./index-6w1re1qn.js";
17
17
  import"./index-6mjf4vr1.js";
18
18
  import"./index-c8s9a3zh.js";
19
19
  import"./index-9ss2m4rs.js";
20
20
  import"./index-wsdnttf4.js";
21
21
  import"./index-5w7ekpy3.js";
22
- import"./index-ywysg26s.js";
23
- import"./index-xec724kg.js";
22
+ import"./index-ffpmqx30.js";
23
+ import"./index-3radty3f.js";
24
24
  import"./index-rtry5xyf.js";
25
- import"./index-db7wf6ke.js";
26
- import"./index-aymt7hzw.js";
25
+ import"./index-cyw81ngh.js";
26
+ import"./index-e9tx99ds.js";
27
27
  import"./index-ae75rja9.js";
28
28
  import"./index-668dpw5e.js";
29
29
  import"./index-gvhvz176.js";
30
- import"./index-dw09fz3w.js";
30
+ import"./index-q11t5erh.js";
31
31
  import"./index-gprxjmm7.js";
32
32
  import"./index-n832052r.js";
33
- import"./index-15526t16.js";
33
+ import"./index-8p9pasnp.js";
34
34
  import"./index-bk5tah7q.js";
35
35
  import"./index-8fwhhayc.js";
36
36
  import"./index-q1exe2b3.js";
@@ -14,36 +14,36 @@ import {
14
14
  runCuratorInit,
15
15
  runCuratorPhase,
16
16
  writeCuratorSummary
17
- } from "./index-xr07r80d.js";
17
+ } from "./index-a7nh382r.js";
18
18
  import"./index-vm4xw9z3.js";
19
19
  import"./index-wrt6m5ze.js";
20
- import"./index-y1zcsf2a.js";
21
- import"./index-91s653xx.js";
20
+ import"./index-y64jv2pe.js";
21
+ import"./index-y47dwge1.js";
22
22
  import"./index-0wp67gqj.js";
23
23
  import"./index-s608d3hw.js";
24
24
  import"./index-y8552snf.js";
25
25
  import"./index-4905hd2m.js";
26
26
  import"./index-134d35c1.js";
27
- import"./index-en6qq954.js";
28
- import"./index-vxbppwvf.js";
29
- import"./index-0ymhx85c.js";
27
+ import"./index-ktagrqxw.js";
28
+ import"./index-w71cq27a.js";
29
+ import"./index-6w1re1qn.js";
30
30
  import"./index-6mjf4vr1.js";
31
31
  import"./index-c8s9a3zh.js";
32
32
  import"./index-9ss2m4rs.js";
33
33
  import"./index-wsdnttf4.js";
34
34
  import"./index-5w7ekpy3.js";
35
- import"./index-ywysg26s.js";
36
- import"./index-xec724kg.js";
35
+ import"./index-ffpmqx30.js";
36
+ import"./index-3radty3f.js";
37
37
  import"./index-rtry5xyf.js";
38
- import"./index-db7wf6ke.js";
39
- import"./index-aymt7hzw.js";
38
+ import"./index-cyw81ngh.js";
39
+ import"./index-e9tx99ds.js";
40
40
  import"./index-ae75rja9.js";
41
41
  import"./index-668dpw5e.js";
42
42
  import"./index-gvhvz176.js";
43
- import"./index-dw09fz3w.js";
43
+ import"./index-q11t5erh.js";
44
44
  import"./index-gprxjmm7.js";
45
45
  import"./index-n832052r.js";
46
- import"./index-15526t16.js";
46
+ import"./index-8p9pasnp.js";
47
47
  import"./index-bk5tah7q.js";
48
48
  import"./index-8fwhhayc.js";
49
49
  import"./index-q1exe2b3.js";
@@ -1,37 +1,37 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-hgrkhxbk.js";
5
- import"./index-xr07r80d.js";
4
+ } from "./index-6c5f309q.js";
5
+ import"./index-a7nh382r.js";
6
6
  import"./index-vm4xw9z3.js";
7
7
  import"./index-wrt6m5ze.js";
8
- import"./index-y1zcsf2a.js";
9
- import"./index-91s653xx.js";
8
+ import"./index-y64jv2pe.js";
9
+ import"./index-y47dwge1.js";
10
10
  import"./index-0wp67gqj.js";
11
11
  import"./index-s608d3hw.js";
12
12
  import"./index-y8552snf.js";
13
13
  import"./index-4905hd2m.js";
14
14
  import"./index-134d35c1.js";
15
- import"./index-en6qq954.js";
16
- import"./index-vxbppwvf.js";
17
- import"./index-0ymhx85c.js";
15
+ import"./index-ktagrqxw.js";
16
+ import"./index-w71cq27a.js";
17
+ import"./index-6w1re1qn.js";
18
18
  import"./index-6mjf4vr1.js";
19
19
  import"./index-c8s9a3zh.js";
20
20
  import"./index-9ss2m4rs.js";
21
21
  import"./index-wsdnttf4.js";
22
22
  import"./index-5w7ekpy3.js";
23
- import"./index-ywysg26s.js";
24
- import"./index-xec724kg.js";
23
+ import"./index-ffpmqx30.js";
24
+ import"./index-3radty3f.js";
25
25
  import"./index-rtry5xyf.js";
26
- import"./index-db7wf6ke.js";
27
- import"./index-aymt7hzw.js";
26
+ import"./index-cyw81ngh.js";
27
+ import"./index-e9tx99ds.js";
28
28
  import"./index-ae75rja9.js";
29
29
  import"./index-668dpw5e.js";
30
30
  import"./index-gvhvz176.js";
31
- import"./index-dw09fz3w.js";
31
+ import"./index-q11t5erh.js";
32
32
  import"./index-gprxjmm7.js";
33
33
  import"./index-n832052r.js";
34
- import"./index-15526t16.js";
34
+ import"./index-8p9pasnp.js";
35
35
  import"./index-bk5tah7q.js";
36
36
  import"./index-8fwhhayc.js";
37
37
  import"./index-q1exe2b3.js";
@@ -1,9 +1,9 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailLog
4
- } from "./index-hn0mdcmj.js";
5
- import"./index-y1zcsf2a.js";
6
- import"./index-15526t16.js";
4
+ } from "./index-8gftfvpp.js";
5
+ import"./index-y64jv2pe.js";
6
+ import"./index-8p9pasnp.js";
7
7
  import"./index-bk5tah7q.js";
8
8
  import"./index-556ja8an.js";
9
9
  import"./index-3jcyn8g6.js";
@@ -7,38 +7,38 @@ import {
7
7
  isHiveEligible,
8
8
  promoteFromSwarm,
9
9
  promoteToHive
10
- } from "./index-xr07r80d.js";
10
+ } from "./index-a7nh382r.js";
11
11
  import"./index-vm4xw9z3.js";
12
12
  import"./index-wrt6m5ze.js";
13
- import"./index-y1zcsf2a.js";
14
- import"./index-91s653xx.js";
13
+ import"./index-y64jv2pe.js";
14
+ import"./index-y47dwge1.js";
15
15
  import"./index-0wp67gqj.js";
16
16
  import"./index-s608d3hw.js";
17
17
  import"./index-y8552snf.js";
18
18
  import"./index-4905hd2m.js";
19
19
  import"./index-134d35c1.js";
20
- import"./index-en6qq954.js";
21
- import"./index-vxbppwvf.js";
22
- import"./index-0ymhx85c.js";
20
+ import"./index-ktagrqxw.js";
21
+ import"./index-w71cq27a.js";
22
+ import"./index-6w1re1qn.js";
23
23
  import"./index-6mjf4vr1.js";
24
24
  import"./index-c8s9a3zh.js";
25
25
  import"./index-9ss2m4rs.js";
26
26
  import"./index-wsdnttf4.js";
27
27
  import"./index-5w7ekpy3.js";
28
- import"./index-ywysg26s.js";
29
- import"./index-xec724kg.js";
28
+ import"./index-ffpmqx30.js";
29
+ import"./index-3radty3f.js";
30
30
  import"./index-rtry5xyf.js";
31
31
  import {
32
32
  resolveHiveKnowledgePath
33
- } from "./index-db7wf6ke.js";
34
- import"./index-aymt7hzw.js";
33
+ } from "./index-cyw81ngh.js";
34
+ import"./index-e9tx99ds.js";
35
35
  import"./index-ae75rja9.js";
36
36
  import"./index-668dpw5e.js";
37
37
  import"./index-gvhvz176.js";
38
- import"./index-dw09fz3w.js";
38
+ import"./index-q11t5erh.js";
39
39
  import"./index-gprxjmm7.js";
40
40
  import"./index-n832052r.js";
41
- import"./index-15526t16.js";
41
+ import"./index-8p9pasnp.js";
42
42
  import"./index-bk5tah7q.js";
43
43
  import"./index-8fwhhayc.js";
44
44
  import"./index-q1exe2b3.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-rtry5xyf.js";
5
5
  import {
6
6
  readKnowledgeEvents
7
- } from "./index-aymt7hzw.js";
7
+ } from "./index-e9tx99ds.js";
8
8
  import {
9
9
  isLinked,
10
10
  readLinkPointer,
@@ -12,14 +12,14 @@ import {
12
12
  detectPosixWrites,
13
13
  detectWindowsWrites,
14
14
  resolveWriteTargets
15
- } from "./index-xr07r80d.js";
15
+ } from "./index-a7nh382r.js";
16
16
  import {
17
17
  checkFileAuthority,
18
18
  classifyFile,
19
19
  isInDeclaredScope,
20
20
  redactPath,
21
21
  redactShellCommand
22
- } from "./index-y1zcsf2a.js";
22
+ } from "./index-y64jv2pe.js";
23
23
 
24
24
  // src/services/guardrail-explain-service.ts
25
25
  import path from "path";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  readKnowledge,
4
4
  transactKnowledge
5
- } from "./index-db7wf6ke.js";
5
+ } from "./index-cyw81ngh.js";
6
6
  import {
7
7
  resolveKnowledgeStoreDir
8
8
  } from "./index-668dpw5e.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  redactPath,
4
4
  redactShellCommand
5
- } from "./index-y1zcsf2a.js";
5
+ } from "./index-y64jv2pe.js";
6
6
 
7
7
  // src/services/guardrail-log-service.ts
8
8
  import * as fs from "fs/promises";
@@ -21,7 +21,7 @@ var package_default;
21
21
  var init_package = __esm(() => {
22
22
  package_default = {
23
23
  name: "opencode-swarm",
24
- version: "7.139.1",
24
+ version: "7.139.2",
25
25
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
26
26
  main: "dist/index.js",
27
27
  types: "dist/index.d.ts",
@@ -16,13 +16,13 @@ import {
16
16
  } from "./index-wrt6m5ze.js";
17
17
  import {
18
18
  stableCanonicalStringify
19
- } from "./index-y1zcsf2a.js";
19
+ } from "./index-y64jv2pe.js";
20
20
  import {
21
21
  detectStraySwarmDirs,
22
22
  readDoctorArtifact,
23
23
  removeStraySwarmDir,
24
24
  runConfigDoctor
25
- } from "./index-91s653xx.js";
25
+ } from "./index-y47dwge1.js";
26
26
  import {
27
27
  MAX_TRANSIENT_RETRIES,
28
28
  archiveEvidence,
@@ -116,15 +116,15 @@ import {
116
116
  retireSkill,
117
117
  selectCandidateEntries,
118
118
  syncBundledProjectSkillsIfMissingAsync
119
- } from "./index-en6qq954.js";
119
+ } from "./index-ktagrqxw.js";
120
120
  import {
121
121
  readRecentEscalations
122
- } from "./index-vxbppwvf.js";
122
+ } from "./index-w71cq27a.js";
123
123
  import {
124
124
  alreadyCuratedThisGeneration,
125
125
  claimNextScanBatch,
126
126
  resolveCohortId
127
- } from "./index-0ymhx85c.js";
127
+ } from "./index-6w1re1qn.js";
128
128
  import {
129
129
  CURATOR_INIT_PROMPT,
130
130
  CURATOR_PHASE_PROMPT,
@@ -177,11 +177,11 @@ import {
177
177
  validateActionableFields,
178
178
  validateLesson,
179
179
  validateSkillPath
180
- } from "./index-ywysg26s.js";
180
+ } from "./index-ffpmqx30.js";
181
181
  import {
182
182
  authorizeCuration,
183
183
  buildConfigFingerprintInput
184
- } from "./index-xec724kg.js";
184
+ } from "./index-3radty3f.js";
185
185
  import {
186
186
  cohortConfigFingerprint
187
187
  } from "./index-rtry5xyf.js";
@@ -214,7 +214,7 @@ import {
214
214
  transactFile,
215
215
  transactKnowledge,
216
216
  wordBigrams
217
- } from "./index-db7wf6ke.js";
217
+ } from "./index-cyw81ngh.js";
218
218
  import {
219
219
  MAX_EVENT_LOG_ENTRIES,
220
220
  _internals,
@@ -224,7 +224,7 @@ import {
224
224
  recordHiveKnowledgeEvent,
225
225
  recordKnowledgeEvent,
226
226
  resolveKnowledgeEventsPath
227
- } from "./index-aymt7hzw.js";
227
+ } from "./index-e9tx99ds.js";
228
228
  import {
229
229
  resolveHiveDataDir,
230
230
  resolveHiveEventsPath,
@@ -249,7 +249,7 @@ import {
249
249
  init_loader,
250
250
  loadPluginConfig,
251
251
  loadPluginConfigWithMeta
252
- } from "./index-dw09fz3w.js";
252
+ } from "./index-q11t5erh.js";
253
253
  import {
254
254
  RetrospectiveEvidenceSchema
255
255
  } from "./index-gprxjmm7.js";
@@ -266,7 +266,7 @@ import {
266
266
  package_default,
267
267
  resolveAutoReviewConfig,
268
268
  stripKnownSwarmPrefix
269
- } from "./index-15526t16.js";
269
+ } from "./index-8p9pasnp.js";
270
270
  import {
271
271
  KNOWLEDGE_SCHEMA_VERSION,
272
272
  OUTCOME_BLOCK_THRESHOLD,
@@ -2199,6 +2199,7 @@ var PrWorkflowGateStateSchema = exports_external.object({
2199
2199
  prReviewBaseDispatch: PrReviewBaseDispatchRecordSchema.optional(),
2200
2200
  prReviewTriggerLedger: exports_external.array(PrReviewInlineTriggerRowSchema).length(PR_REVIEW_REQUIRED_TRIGGER_IDS.length).optional(),
2201
2201
  prReviewTriggerEvalPath: exports_external.string().min(1).optional(),
2202
+ prReviewTriggerEvalRunId: exports_external.string().min(1).optional(),
2202
2203
  prReviewValidationBatches: exports_external.array(PrReviewValidationBatchRecordSchema).max(MAX_WORKFLOW_BATCHES).optional(),
2203
2204
  prReviewBatchCoherence: exports_external.record(exports_external.string().min(1), PrReviewBatchCoherenceRecordSchema).refine((entries) => Object.keys(entries).length <= MAX_WORKFLOW_BATCHES, `prReviewBatchCoherence may not exceed ${MAX_WORKFLOW_BATCHES} entries`).optional(),
2204
2205
  prReviewRetiredReviewerSessionIds: exports_external.array(exports_external.string().min(1)).max(MAX_RETIRED_REVIEWER_SESSION_IDS).optional(),
@@ -18988,7 +18989,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
18988
18989
  };
18989
18990
  }
18990
18991
  async function sweepActiveNearDuplicates(directory, options = {}) {
18991
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ht4q3548.js");
18992
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-yr6x707c.js");
18992
18993
  const { config } = loadPluginConfigWithMeta2(directory);
18993
18994
  const sweepConfig = config.learning?.dedup_sweep;
18994
18995
  if (sweepConfig?.enabled === false)
@@ -20583,7 +20584,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
20583
20584
  }
20584
20585
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
20585
20586
  try {
20586
- const skillModule = await import("./skill-generator-20czn4kd.js");
20587
+ const skillModule = await import("./skill-generator-hp7as46c.js");
20587
20588
  for (const cand of skillCandidates) {
20588
20589
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
20589
20590
  continue;
@@ -21043,7 +21044,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
21043
21044
  } catch {}
21044
21045
  }
21045
21046
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
21046
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-pjg2x75c.js");
21047
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-n9pmx4qr.js");
21047
21048
  for (const { id } of contradictedEntries) {
21048
21049
  try {
21049
21050
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -21862,7 +21863,7 @@ async function runCuratorPostMortem(directory, options = {}) {
21862
21863
  warnings.push("Failed to collect knowledge summary.");
21863
21864
  }
21864
21865
  try {
21865
- const { getScanStatus } = await import("./scan-cursor-apbz9eez.js");
21866
+ const { getScanStatus } = await import("./scan-cursor-ah5swtyh.js");
21866
21867
  const scanStatus = await getScanStatus(directory);
21867
21868
  if (scanStatus.remaining_estimate > 0) {
21868
21869
  warnings.push(`Fair scan: reviewed ${knowledgeSummary.length} entries this sweep (generation ${scanStatus.generation}); ${scanStatus.remaining_estimate} more eligible entries will be visited in future curation sweeps.`);
@@ -22034,9 +22035,9 @@ var _internals24 = {
22034
22035
  verifyPostMortemKnowledgeActions,
22035
22036
  repairPostMortemActions,
22036
22037
  loadDefaultKnowledgeConfig: async (directory) => {
22037
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-x9fr2ey8.js");
22038
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-f7jgrtxj.js");
22038
22039
  try {
22039
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ht4q3548.js");
22040
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-yr6x707c.js");
22040
22041
  const loaded = loadPluginConfigWithMeta2(directory);
22041
22042
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
22042
22043
  } catch {
@@ -22044,11 +22045,11 @@ var _internals24 = {
22044
22045
  }
22045
22046
  },
22046
22047
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
22047
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-nbsag633.js");
22048
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-vpcs1p1v.js");
22048
22049
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
22049
22050
  },
22050
22051
  checkHivePromotions: async (entries, knowledgeConfig, directory) => {
22051
- const { checkHivePromotions } = await import("./hive-promoter-bpt26yew.js");
22052
+ const { checkHivePromotions } = await import("./hive-promoter-mpf0cfkk.js");
22052
22053
  return checkHivePromotions(entries, knowledgeConfig, directory);
22053
22054
  },
22054
22055
  applyProposalTriage: async (directory, triage) => {
@@ -22057,7 +22058,7 @@ var _internals24 = {
22057
22058
  activateProposal,
22058
22059
  listSkills: listSkills2,
22059
22060
  sanitizeSlug
22060
- } = await import("./skill-generator-20czn4kd.js");
22061
+ } = await import("./skill-generator-hp7as46c.js");
22061
22062
  const result = {
22062
22063
  approved: [],
22063
22064
  rejected: [],
@@ -24685,9 +24686,9 @@ function hashContent(content) {
24685
24686
  return createHash9("sha1").update(content).digest("hex");
24686
24687
  }
24687
24688
  async function loadConfigForPolicyCurator(directory) {
24688
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-x9fr2ey8.js");
24689
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-f7jgrtxj.js");
24689
24690
  try {
24690
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ht4q3548.js");
24691
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-yr6x707c.js");
24691
24692
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
24692
24693
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
24693
24694
  } catch {
@@ -28696,7 +28697,7 @@ async function runFinalizeStage(ctx) {
28696
28697
  }
28697
28698
  }
28698
28699
  try {
28699
- const { CuratorConfigSchema: CCS } = await import("./schema-x9fr2ey8.js");
28700
+ const { CuratorConfigSchema: CCS } = await import("./schema-f7jgrtxj.js");
28700
28701
  const { config: pmLoadedConfig } = _internals37.loadPluginConfigWithMeta(ctx.directory);
28701
28702
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
28702
28703
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -30969,9 +30970,9 @@ var _internals42 = {
30969
30970
  loadPluginConfigWithMeta,
30970
30971
  loadCuratorDeps: async () => {
30971
30972
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
30972
- import("./schema-x9fr2ey8.js"),
30973
- import("./curator-nbsag633.js"),
30974
- import("./curator-llm-factory-1ftzece0.js")
30973
+ import("./schema-f7jgrtxj.js"),
30974
+ import("./curator-vpcs1p1v.js"),
30975
+ import("./curator-llm-factory-hvw13hmr.js")
30975
30976
  ]);
30976
30977
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
30977
30978
  }
@@ -31876,7 +31877,7 @@ async function computeCurationDiagnostics(directory, entries) {
31876
31877
  let scanCompleted = false;
31877
31878
  let scanRemaining = 0;
31878
31879
  try {
31879
- const { getScanStatus } = await import("./scan-cursor-apbz9eez.js");
31880
+ const { getScanStatus } = await import("./scan-cursor-ah5swtyh.js");
31880
31881
  const status = await getScanStatus(directory);
31881
31882
  scanGeneration = status.generation;
31882
31883
  scanCompleted = status.completed;
@@ -31886,17 +31887,17 @@ async function computeCurationDiagnostics(directory, entries) {
31886
31887
  try {
31887
31888
  const { isLinked: isLinked2 } = await import("./knowledge-link-3tq8w6gs.js");
31888
31889
  if (isLinked2(directory)) {
31889
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-x9fr2ey8.js");
31890
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-f7jgrtxj.js");
31890
31891
  let config;
31891
31892
  try {
31892
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ht4q3548.js");
31893
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-yr6x707c.js");
31893
31894
  const loaded = loadPluginConfigWithMeta2(directory);
31894
31895
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
31895
31896
  } catch {
31896
31897
  config = KnowledgeConfigSchema2.parse({});
31897
31898
  }
31898
31899
  const { cohortConfigFingerprint: cohortConfigFingerprint2 } = await import("./config-fingerprint-v22xh5a2.js");
31899
- const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-2qnhgdtt.js");
31900
+ const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-4tp0mbcb.js");
31900
31901
  const currentFp = cohortConfigFingerprint2(buildConfigFingerprintInput2(config));
31901
31902
  const cohortFp = await readCohortConfigFingerprint(directory);
31902
31903
  configMatch = cohortFp === null ? null : currentFp === cohortFp;
@@ -33107,7 +33108,7 @@ async function handleDoctorCommand(directory, args) {
33107
33108
  const result = runConfigDoctor(config, directory);
33108
33109
  let output;
33109
33110
  if (enableAutoFix && result.hasAutoFixableIssues) {
33110
- const { runConfigDoctorWithFixes } = await import("./config-doctor-tgnr91q3.js");
33111
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-hrb61yqe.js");
33111
33112
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
33112
33113
  applyLossy: true
33113
33114
  });
@@ -56254,7 +56255,7 @@ function buildDetailedHelp(commandName, entry) {
56254
56255
  async function handleHelpCommand(ctx) {
56255
56256
  const targetCommand = ctx.args.join(" ");
56256
56257
  if (!targetCommand) {
56257
- const { buildHelpText } = await import("./index-xka8s8jw.js");
56258
+ const { buildHelpText } = await import("./index-se8xc78k.js");
56258
56259
  return buildHelpText();
56259
56260
  }
56260
56261
  const tokens = targetCommand.split(/\s+/);
@@ -56263,7 +56264,7 @@ async function handleHelpCommand(ctx) {
56263
56264
  return _internals14.buildDetailedHelp(resolved.key, resolved.entry);
56264
56265
  }
56265
56266
  const similar = _internals14.findSimilarCommands(targetCommand);
56266
- const { buildHelpText: fullHelp } = await import("./index-xka8s8jw.js");
56267
+ const { buildHelpText: fullHelp } = await import("./index-se8xc78k.js");
56267
56268
  if (similar.length > 0) {
56268
56269
  return `Command '/swarm ${targetCommand}' not found.
56269
56270
 
@@ -56440,7 +56441,7 @@ var COMMAND_REGISTRY = {
56440
56441
  },
56441
56442
  "guardrail explain": {
56442
56443
  handler: async (ctx) => {
56443
- const { handleGuardrailExplain } = await import("./guardrail-explain-vb9k9zwm.js");
56444
+ const { handleGuardrailExplain } = await import("./guardrail-explain-k62h3c92.js");
56444
56445
  return handleGuardrailExplain(ctx.directory, ctx.args);
56445
56446
  },
56446
56447
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -56450,7 +56451,7 @@ var COMMAND_REGISTRY = {
56450
56451
  },
56451
56452
  "guardrail-explain": {
56452
56453
  handler: async (ctx) => {
56453
- const { handleGuardrailExplain } = await import("./guardrail-explain-vb9k9zwm.js");
56454
+ const { handleGuardrailExplain } = await import("./guardrail-explain-k62h3c92.js");
56454
56455
  return handleGuardrailExplain(ctx.directory, ctx.args);
56455
56456
  },
56456
56457
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -56460,7 +56461,7 @@ var COMMAND_REGISTRY = {
56460
56461
  },
56461
56462
  "guardrail-log": {
56462
56463
  handler: async (ctx) => {
56463
- const { handleGuardrailLog } = await import("./guardrail-log-0djnvfas.js");
56464
+ const { handleGuardrailLog } = await import("./guardrail-log-2ftew0p3.js");
56464
56465
  return handleGuardrailLog(ctx.directory, ctx.args);
56465
56466
  },
56466
56467
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -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-vxheptk8.js");
705
+ const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-raevm18w.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-anats6rj.js");
773
- const { KnowledgeConfigSchema } = await import("./schema-x9fr2ey8.js");
772
+ const { quarantineEntry } = await import("./knowledge-validator-jxqj96cx.js");
773
+ const { KnowledgeConfigSchema } = await import("./schema-f7jgrtxj.js");
774
774
  let config;
775
775
  try {
776
- const { loadPluginConfigWithMeta } = await import("./index-ht4q3548.js");
776
+ const { loadPluginConfigWithMeta } = await import("./index-yr6x707c.js");
777
777
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
778
778
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
779
779
  } catch {
@@ -628,7 +628,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
628
628
  deltas.push({ id, delta });
629
629
  }
630
630
  if (deltas.length > 0) {
631
- const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-36mascwz.js");
631
+ const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-bcfqz8fr.js");
632
632
  await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
633
633
  }
634
634
  return {
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  authorizeCuration
4
- } from "./index-xec724kg.js";
4
+ } from "./index-3radty3f.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-db7wf6ke.js";
12
+ } from "./index-cyw81ngh.js";
13
13
  import {
14
14
  resolveKnowledgeStoreDir
15
15
  } from "./index-668dpw5e.js";