opencode-swarm 7.131.0 → 7.132.1

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 (54) hide show
  1. package/.opencode/skills/swarm-pr-feedback/SKILL.md +8 -0
  2. package/.opencode/skills/swarm-pr-review/SKILL.md +2 -0
  3. package/README.md +13 -4
  4. package/dist/cli/{config-doctor-rjvb0hhn.js → config-doctor-bp5spb79.js} +2 -2
  5. package/dist/cli/{curation-policy-f5bybzmh.js → curation-policy-7zp2m9gv.js} +2 -2
  6. package/dist/cli/{curator-kjzqa5m7.js → curator-28hcw9hx.js} +12 -12
  7. package/dist/cli/{curator-llm-factory-ezq4fakt.js → curator-llm-factory-rd0s95fw.js} +12 -12
  8. package/dist/cli/{guardrail-explain-n93qh8k6.js → guardrail-explain-742dhpec.js} +13 -13
  9. package/dist/cli/{guardrail-log-h4tmcjwx.js → guardrail-log-aa112fxv.js} +3 -3
  10. package/dist/cli/{hive-promoter-mammxe5p.js → hive-promoter-8whgvcry.js} +12 -12
  11. package/dist/cli/{index-q68sprcy.js → index-3s9rfnqq.js} +4 -4
  12. package/dist/cli/{index-6vg0qczz.js → index-4hapy63e.js} +2 -2
  13. package/dist/cli/{index-kbfhyxtv.js → index-630badhp.js} +1 -1
  14. package/dist/cli/{index-xv2ydncg.js → index-6ccynjv3.js} +2 -2
  15. package/dist/cli/{index-01nyrk95.js → index-9cf1yr67.js} +3 -3
  16. package/dist/cli/{index-d2tgc580.js → index-b21a4zw4.js} +1432 -1316
  17. package/dist/cli/{index-hynbzh7s.js → index-bvp2v7k1.js} +22 -4
  18. package/dist/cli/{index-pft1qxqh.js → index-djwemsjn.js} +1 -1
  19. package/dist/cli/{index-cnwh164k.js → index-fgcmxjp7.js} +1 -1
  20. package/dist/cli/{index-fepakwhp.js → index-jgfcp9bh.js} +1 -1
  21. package/dist/cli/{index-tw33v84d.js → index-jj4earrh.js} +1 -1
  22. package/dist/cli/{index-m6zfm7cm.js → index-mwkwyej1.js} +5 -5
  23. package/dist/cli/{index-1atz85c8.js → index-rt5jgktq.js} +1 -1
  24. package/dist/cli/{index-xhd797bz.js → index-x3p6ktva.js} +14 -14
  25. package/dist/cli/{index-szkswbqf.js → index-y5qp59rc.js} +2 -2
  26. package/dist/cli/{index-cq22pnd2.js → index-yvv1wt2h.js} +1 -1
  27. package/dist/cli/index.js +12 -12
  28. package/dist/cli/{knowledge-escalator-cf1kkmfe.js → knowledge-escalator-j0nceas7.js} +3 -3
  29. package/dist/cli/{knowledge-events-p8t5ev44.js → knowledge-events-gpqc62jr.js} +1 -1
  30. package/dist/cli/{knowledge-store-vpdmcwem.js → knowledge-store-ggxr3ww5.js} +1 -1
  31. package/dist/cli/{knowledge-validator-w1t0sw5f.js → knowledge-validator-007smap6.js} +4 -4
  32. package/dist/cli/{scan-cursor-z4c51902.js → scan-cursor-wz4bff7a.js} +2 -2
  33. package/dist/cli/{schema-yqzzfavj.js → schema-023gwne7.js} +1 -1
  34. package/dist/cli/{skill-generator-aaabj00n.js → skill-generator-rtsg1m7x.js} +5 -5
  35. package/dist/config/constants.d.ts +22 -0
  36. package/dist/hooks/pr-workflow-gate.d.ts +2 -0
  37. package/dist/index.d.ts +13 -0
  38. package/dist/index.js +359 -359
  39. package/dist/parallel/index.d.ts +0 -2
  40. package/dist/plan/parallel-verdict.d.ts +94 -0
  41. package/dist/services/status-service.d.ts +14 -0
  42. package/dist/tools/dispatch-lanes.d.ts +18 -0
  43. package/dist/tools/index.d.ts +1 -0
  44. package/dist/tools/lean-turbo-run-phase.d.ts +7 -0
  45. package/dist/tools/manifest.d.ts +1 -0
  46. package/dist/tools/plan-conflict-check.d.ts +61 -0
  47. package/dist/tools/run-pr-feedback-stage-a.d.ts +2 -0
  48. package/dist/tools/tool-metadata.d.ts +8 -0
  49. package/dist/turbo/lean/recovery.d.ts +90 -0
  50. package/dist/turbo/lean/runner.d.ts +16 -1
  51. package/dist/worktree/merge.d.ts +5 -0
  52. package/package.json +1 -1
  53. package/dist/parallel/dependency-graph.d.ts +0 -34
  54. package/dist/parallel/meta-indexer.d.ts +0 -32
@@ -686,6 +686,14 @@ controller snapshots the content revision plus HEAD, index, refs, upstream, and
686
686
  Git config before and after every command (including failures/timeouts); any
687
687
  mutation invalidates Stage A and prevents later commands from becoming proof.
688
688
 
689
+ The Stage A response carries per-check summaries (category, command, exit code,
690
+ duration) rather than inline stdout/stderr. On failure it also carries a bounded
691
+ tail of the failing check and a `full_output_ref` for retrieving the complete
692
+ output via `retrieve_summary`; if that persistence fails, the failing check's
693
+ full stdout/stderr is inlined instead so evidence is never lost. A successful
694
+ run persists nothing — there is no failure evidence to recover, and the
695
+ per-check summaries are the useful record.
696
+
689
697
  ### Stage B — reviewer + test_engineer (mandatory after Stage A passes)
690
698
 
691
699
  Two independent agents on the Stage-A-green diff, run in order: **reviewer
@@ -808,6 +808,8 @@ or synthesis begins, whichever layer enforces it.
808
808
 
809
809
  **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.
810
810
 
811
+ 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`.
812
+
811
813
  Before Phase 4 or synthesis, all base lanes must be settled. `dispatch_lanes_async` accepts a maximum of 8 lanes per call; base lanes (6) and micro-lanes (Phase 4) are dispatched in separate calls by design. Do not let one lane's conclusions bias another lane.
812
814
 
813
815
  **COVERAGE GATE — zero tolerance for unclosed gaps.** After `collect_lane_results`, verify every lane produced validated output. Two failure modes exist:
package/README.md CHANGED
@@ -107,7 +107,7 @@ Swarm then:
107
107
  3. Consults domain experts when needed and caches the guidance.
108
108
  4. Writes a phased implementation plan.
109
109
  5. Sends that plan through a critic gate before coding starts.
110
- 6. Executes one task at a time through the QA pipeline:
110
+ 6. Executes tasks through the QA pipeline — one at a time, or concurrently in isolated worktrees for plans with provably file-disjoint task groups (v8 default for new plans, #1674; serial is the automatic fallback when scopes overlap or are unknown):
111
111
 
112
112
  * coder writes code
113
113
  * automated checks run
@@ -307,7 +307,7 @@ Swarm registers a roster of specialized core, optional, and conditional agents.
307
307
  |---|---|---|
308
308
  | **architect** | Orchestrates workflow, writes plans, enforces gates | Core |
309
309
  | **explorer** | Scans codebase, gathers context, maps facts | Core |
310
- | **coder** | Implements one task at a time | Core |
310
+ | **coder** | Implements one task at a time (or concurrently in isolated worktrees for provably file-disjoint task groups — v8, #1674) | Core |
311
311
  | **reviewer** | Checks correctness and security | Core |
312
312
  | **test_engineer** | Writes and runs tests, adversarial testing | Core |
313
313
  | **critic** | Reviews plans before implementation begins | Core |
@@ -1057,13 +1057,22 @@ Control how tool outputs are summarized for LLM context.
1057
1057
  {
1058
1058
  "summaries": {
1059
1059
  "threshold_bytes": 102400,
1060
- "exempt_tools": ["retrieve_summary", "task", "read"]
1060
+ "exempt_tools": [
1061
+ "retrieve_summary",
1062
+ "retrieve_lane_output",
1063
+ "task",
1064
+ "read",
1065
+ "dispatch_lanes",
1066
+ "dispatch_lanes_async",
1067
+ "collect_lane_results",
1068
+ "parse_lane_candidates"
1069
+ ]
1061
1070
  }
1062
1071
  }
1063
1072
  ```
1064
1073
 
1065
1074
  - **threshold_bytes** – Output size threshold in bytes before summarization is triggered (default 102400 = 100KB).
1066
- - **exempt_tools** – Tools whose outputs are never summarized. Defaults to `["retrieve_summary", "task", "read"]` to prevent re-summarization loops.
1075
+ - **exempt_tools** – Tools whose outputs are never summarized. Defaults to `["retrieve_summary", "retrieve_lane_output", "task", "read", "dispatch_lanes", "dispatch_lanes_async", "collect_lane_results", "parse_lane_candidates"]`. Retrieval and lane tools are always exempt—summarizing them would destroy the references needed to recover their full outputs.
1067
1076
 
1068
1077
  > **Note:** The `retrieve_summary` tool supports paginated retrieval via `offset` and `limit` parameters to fetch large summarized outputs in chunks.
1069
1078
 
@@ -12,8 +12,8 @@ import {
12
12
  shouldRunOnStartup,
13
13
  writeBackupArtifact,
14
14
  writeDoctorArtifact
15
- } from "./index-kbfhyxtv.js";
16
- import"./index-hynbzh7s.js";
15
+ } from "./index-630badhp.js";
16
+ import"./index-bvp2v7k1.js";
17
17
  import"./index-bk5tah7q.js";
18
18
  import"./index-z6xqpmqg.js";
19
19
  import"./index-zjygnfay.js";
@@ -4,9 +4,9 @@ import {
4
4
  authorizeCuration,
5
5
  buildConfigFingerprintInput,
6
6
  readCohortConfigFingerprint
7
- } from "./index-1atz85c8.js";
7
+ } from "./index-rt5jgktq.js";
8
8
  import"./index-rtry5xyf.js";
9
- import"./index-fepakwhp.js";
9
+ import"./index-jgfcp9bh.js";
10
10
  import"./index-ae75rja9.js";
11
11
  import"./index-q27bajqb.js";
12
12
  import"./index-zgwm4ryv.js";
@@ -14,31 +14,31 @@ import {
14
14
  runCuratorInit,
15
15
  runCuratorPhase,
16
16
  writeCuratorSummary
17
- } from "./index-d2tgc580.js";
18
- import"./index-cq22pnd2.js";
19
- import"./index-kbfhyxtv.js";
17
+ } from "./index-b21a4zw4.js";
18
+ import"./index-yvv1wt2h.js";
19
+ import"./index-630badhp.js";
20
20
  import"./index-03zyn94g.js";
21
21
  import"./index-4905hd2m.js";
22
22
  import"./index-134d35c1.js";
23
23
  import"./index-9f71ye47.js";
24
- import"./index-01nyrk95.js";
25
- import"./index-m6zfm7cm.js";
26
- import"./index-pft1qxqh.js";
24
+ import"./index-9cf1yr67.js";
25
+ import"./index-mwkwyej1.js";
26
+ import"./index-djwemsjn.js";
27
27
  import"./index-vxv732ex.js";
28
28
  import"./index-c8s9a3zh.js";
29
29
  import"./index-9ss2m4rs.js";
30
30
  import"./index-g4mnf3p5.js";
31
- import"./index-xv2ydncg.js";
32
- import"./index-1atz85c8.js";
31
+ import"./index-6ccynjv3.js";
32
+ import"./index-rt5jgktq.js";
33
33
  import"./index-rtry5xyf.js";
34
- import"./index-q68sprcy.js";
35
- import"./index-fepakwhp.js";
34
+ import"./index-3s9rfnqq.js";
35
+ import"./index-jgfcp9bh.js";
36
36
  import"./index-ae75rja9.js";
37
37
  import"./index-q27bajqb.js";
38
- import"./index-tw33v84d.js";
38
+ import"./index-jj4earrh.js";
39
39
  import"./index-k5jrywpr.js";
40
40
  import"./index-n832052r.js";
41
- import"./index-hynbzh7s.js";
41
+ import"./index-bvp2v7k1.js";
42
42
  import"./index-bk5tah7q.js";
43
43
  import"./index-8fwhhayc.js";
44
44
  import"./index-q1exe2b3.js";
@@ -1,31 +1,31 @@
1
1
  // @bun
2
2
  import {
3
3
  createCuratorLLMDelegate
4
- } from "./index-d2tgc580.js";
5
- import"./index-cq22pnd2.js";
6
- import"./index-kbfhyxtv.js";
4
+ } from "./index-b21a4zw4.js";
5
+ import"./index-yvv1wt2h.js";
6
+ import"./index-630badhp.js";
7
7
  import"./index-03zyn94g.js";
8
8
  import"./index-4905hd2m.js";
9
9
  import"./index-134d35c1.js";
10
10
  import"./index-9f71ye47.js";
11
- import"./index-01nyrk95.js";
12
- import"./index-m6zfm7cm.js";
13
- import"./index-pft1qxqh.js";
11
+ import"./index-9cf1yr67.js";
12
+ import"./index-mwkwyej1.js";
13
+ import"./index-djwemsjn.js";
14
14
  import"./index-vxv732ex.js";
15
15
  import"./index-c8s9a3zh.js";
16
16
  import"./index-9ss2m4rs.js";
17
17
  import"./index-g4mnf3p5.js";
18
- import"./index-xv2ydncg.js";
19
- import"./index-1atz85c8.js";
18
+ import"./index-6ccynjv3.js";
19
+ import"./index-rt5jgktq.js";
20
20
  import"./index-rtry5xyf.js";
21
- import"./index-q68sprcy.js";
22
- import"./index-fepakwhp.js";
21
+ import"./index-3s9rfnqq.js";
22
+ import"./index-jgfcp9bh.js";
23
23
  import"./index-ae75rja9.js";
24
24
  import"./index-q27bajqb.js";
25
- import"./index-tw33v84d.js";
25
+ import"./index-jj4earrh.js";
26
26
  import"./index-k5jrywpr.js";
27
27
  import"./index-n832052r.js";
28
- import"./index-hynbzh7s.js";
28
+ import"./index-bvp2v7k1.js";
29
29
  import"./index-bk5tah7q.js";
30
30
  import"./index-8fwhhayc.js";
31
31
  import"./index-q1exe2b3.js";
@@ -1,32 +1,32 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-6vg0qczz.js";
5
- import"./index-d2tgc580.js";
6
- import"./index-cq22pnd2.js";
7
- import"./index-kbfhyxtv.js";
4
+ } from "./index-4hapy63e.js";
5
+ import"./index-b21a4zw4.js";
6
+ import"./index-yvv1wt2h.js";
7
+ import"./index-630badhp.js";
8
8
  import"./index-03zyn94g.js";
9
9
  import"./index-4905hd2m.js";
10
10
  import"./index-134d35c1.js";
11
11
  import"./index-9f71ye47.js";
12
- import"./index-01nyrk95.js";
13
- import"./index-m6zfm7cm.js";
14
- import"./index-pft1qxqh.js";
12
+ import"./index-9cf1yr67.js";
13
+ import"./index-mwkwyej1.js";
14
+ import"./index-djwemsjn.js";
15
15
  import"./index-vxv732ex.js";
16
16
  import"./index-c8s9a3zh.js";
17
17
  import"./index-9ss2m4rs.js";
18
18
  import"./index-g4mnf3p5.js";
19
- import"./index-xv2ydncg.js";
20
- import"./index-1atz85c8.js";
19
+ import"./index-6ccynjv3.js";
20
+ import"./index-rt5jgktq.js";
21
21
  import"./index-rtry5xyf.js";
22
- import"./index-q68sprcy.js";
23
- import"./index-fepakwhp.js";
22
+ import"./index-3s9rfnqq.js";
23
+ import"./index-jgfcp9bh.js";
24
24
  import"./index-ae75rja9.js";
25
25
  import"./index-q27bajqb.js";
26
- import"./index-tw33v84d.js";
26
+ import"./index-jj4earrh.js";
27
27
  import"./index-k5jrywpr.js";
28
28
  import"./index-n832052r.js";
29
- import"./index-hynbzh7s.js";
29
+ import"./index-bvp2v7k1.js";
30
30
  import"./index-bk5tah7q.js";
31
31
  import"./index-8fwhhayc.js";
32
32
  import"./index-q1exe2b3.js";
@@ -1,9 +1,9 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailLog
4
- } from "./index-cnwh164k.js";
5
- import"./index-cq22pnd2.js";
6
- import"./index-hynbzh7s.js";
4
+ } from "./index-fgcmxjp7.js";
5
+ import"./index-yvv1wt2h.js";
6
+ import"./index-bvp2v7k1.js";
7
7
  import"./index-bk5tah7q.js";
8
8
  import"./index-z6xqpmqg.js";
9
9
  import"./index-zjygnfay.js";
@@ -7,33 +7,33 @@ import {
7
7
  isHiveEligible,
8
8
  promoteFromSwarm,
9
9
  promoteToHive
10
- } from "./index-d2tgc580.js";
11
- import"./index-cq22pnd2.js";
12
- import"./index-kbfhyxtv.js";
10
+ } from "./index-b21a4zw4.js";
11
+ import"./index-yvv1wt2h.js";
12
+ import"./index-630badhp.js";
13
13
  import"./index-03zyn94g.js";
14
14
  import"./index-4905hd2m.js";
15
15
  import"./index-134d35c1.js";
16
16
  import"./index-9f71ye47.js";
17
- import"./index-01nyrk95.js";
18
- import"./index-m6zfm7cm.js";
19
- import"./index-pft1qxqh.js";
17
+ import"./index-9cf1yr67.js";
18
+ import"./index-mwkwyej1.js";
19
+ import"./index-djwemsjn.js";
20
20
  import"./index-vxv732ex.js";
21
21
  import"./index-c8s9a3zh.js";
22
22
  import"./index-9ss2m4rs.js";
23
23
  import"./index-g4mnf3p5.js";
24
- import"./index-xv2ydncg.js";
25
- import"./index-1atz85c8.js";
24
+ import"./index-6ccynjv3.js";
25
+ import"./index-rt5jgktq.js";
26
26
  import"./index-rtry5xyf.js";
27
27
  import {
28
28
  resolveHiveKnowledgePath
29
- } from "./index-q68sprcy.js";
30
- import"./index-fepakwhp.js";
29
+ } from "./index-3s9rfnqq.js";
30
+ import"./index-jgfcp9bh.js";
31
31
  import"./index-ae75rja9.js";
32
32
  import"./index-q27bajqb.js";
33
- import"./index-tw33v84d.js";
33
+ import"./index-jj4earrh.js";
34
34
  import"./index-k5jrywpr.js";
35
35
  import"./index-n832052r.js";
36
- import"./index-hynbzh7s.js";
36
+ import"./index-bvp2v7k1.js";
37
37
  import"./index-bk5tah7q.js";
38
38
  import"./index-8fwhhayc.js";
39
39
  import"./index-q1exe2b3.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-p8t5ev44.js");
705
+ const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-gpqc62jr.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-w1t0sw5f.js");
773
- const { KnowledgeConfigSchema } = await import("./schema-yqzzfavj.js");
772
+ const { quarantineEntry } = await import("./knowledge-validator-007smap6.js");
773
+ const { KnowledgeConfigSchema } = await import("./schema-023gwne7.js");
774
774
  let config;
775
775
  try {
776
- const { loadPluginConfigWithMeta } = await import("./index-szkswbqf.js");
776
+ const { loadPluginConfigWithMeta } = await import("./index-y5qp59rc.js");
777
777
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
778
778
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
779
779
  } catch {
@@ -12,14 +12,14 @@ import {
12
12
  detectPosixWrites,
13
13
  detectWindowsWrites,
14
14
  resolveWriteTargets
15
- } from "./index-d2tgc580.js";
15
+ } from "./index-b21a4zw4.js";
16
16
  import {
17
17
  checkFileAuthority,
18
18
  classifyFile,
19
19
  isInDeclaredScope,
20
20
  redactPath,
21
21
  redactShellCommand
22
- } from "./index-cq22pnd2.js";
22
+ } from "./index-yvv1wt2h.js";
23
23
 
24
24
  // src/services/guardrail-explain-service.ts
25
25
  import path from "path";
@@ -8,7 +8,7 @@ import {
8
8
  init_constants,
9
9
  init_schema,
10
10
  stripKnownSwarmPrefix
11
- } from "./index-hynbzh7s.js";
11
+ } from "./index-bvp2v7k1.js";
12
12
  import {
13
13
  log
14
14
  } from "./index-zgwm4ryv.js";
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  authorizeCuration
4
- } from "./index-1atz85c8.js";
4
+ } from "./index-rt5jgktq.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-q68sprcy.js";
12
+ } from "./index-3s9rfnqq.js";
13
13
  import {
14
14
  resolveKnowledgeStoreDir
15
15
  } from "./index-q27bajqb.js";
@@ -2,18 +2,18 @@
2
2
  import {
3
3
  ALLOWED_SKILL_PATH_PREFIXES,
4
4
  validateSkillPath
5
- } from "./index-xv2ydncg.js";
5
+ } from "./index-6ccynjv3.js";
6
6
  import {
7
7
  computeOutcomeSignal,
8
8
  readKnowledge,
9
9
  resolveHiveKnowledgePath,
10
10
  resolveSwarmKnowledgePath,
11
11
  transactKnowledge
12
- } from "./index-q68sprcy.js";
12
+ } from "./index-3s9rfnqq.js";
13
13
  import {
14
14
  effectiveRetrievalOutcomes,
15
15
  readKnowledgeCounterRollups
16
- } from "./index-fepakwhp.js";
16
+ } from "./index-jgfcp9bh.js";
17
17
  import {
18
18
  init_knowledge_types,
19
19
  isActiveStatus