opencode-swarm 7.125.6 → 7.126.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 (56) hide show
  1. package/.opencode/skills/brainstorm/SKILL.md +18 -14
  2. package/.opencode/skills/plan/SKILL.md +21 -15
  3. package/.opencode/skills/specify/SKILL.md +18 -14
  4. package/.opencode/skills/swarm-pr-feedback/SKILL.md +19 -14
  5. package/.opencode/skills/swarm-pr-review/SKILL.md +17 -13
  6. package/dist/agents/architect.d.ts +9 -7
  7. package/dist/cli/{config-doctor-akxywx0c.js → config-doctor-23jxdqwv.js} +2 -2
  8. package/dist/cli/{core-v1kp7anb.js → core-wg3re04e.js} +1 -1
  9. package/dist/cli/{curation-policy-62w2pwfz.js → curation-policy-0t6hny6g.js} +2 -2
  10. package/dist/cli/{curator-gke6nrc4.js → curator-g8rggzbk.js} +14 -14
  11. package/dist/cli/{curator-llm-factory-40c4852v.js → curator-llm-factory-36psae60.js} +14 -14
  12. package/dist/cli/{guardrail-explain-m34vcgjg.js → guardrail-explain-6ffgrjx9.js} +15 -15
  13. package/dist/cli/{guardrail-log-222xyxfp.js → guardrail-log-57sczn5h.js} +3 -3
  14. package/dist/cli/{hive-promoter-6fg3redm.js → hive-promoter-c458rgp5.js} +14 -14
  15. package/dist/cli/{index-qzkcy22e.js → index-1p9z8cc4.js} +1 -1
  16. package/dist/cli/{index-e315gwc9.js → index-3hkbegq2.js} +1 -1
  17. package/dist/cli/{index-gnvg72y1.js → index-4ff0x4cg.js} +79 -1
  18. package/dist/cli/{index-yq4s3q43.js → index-6j9p0c40.js} +2 -2
  19. package/dist/cli/{index-74xejn4v.js → index-abw10n3f.js} +139 -83
  20. package/dist/cli/{index-r1gdkn2d.js → index-c8sqc3nh.js} +113 -21
  21. package/dist/cli/{index-gbnpz7rh.js → index-cnhp6c0k.js} +1 -1
  22. package/dist/cli/{index-dezgmvtw.js → index-echdpdhy.js} +1 -1
  23. package/dist/cli/{index-gd5w3ef8.js → index-k5xh81c9.js} +3 -3
  24. package/dist/cli/{index-1htanqp1.js → index-kx3533dm.js} +1 -1
  25. package/dist/cli/{index-0f45t7xy.js → index-nkhp7j16.js} +5 -5
  26. package/dist/cli/{index-1012f47p.js → index-nmyg9b7v.js} +4 -4
  27. package/dist/cli/{index-4b1e5m0d.js → index-vvwf9ark.js} +2 -2
  28. package/dist/cli/{index-jt7hnr7q.js → index-w0yztxgq.js} +1 -1
  29. package/dist/cli/{index-g4ef4v3m.js → index-w9cb5zwh.js} +1 -1
  30. package/dist/cli/{index-1cxp3b5y.js → index-x1w4cx3n.js} +2 -2
  31. package/dist/cli/{index-d17kqe54.js → index-y9t766sw.js} +4950 -4890
  32. package/dist/cli/{index-zp330ss0.js → index-yf4kvhrn.js} +16 -16
  33. package/dist/cli/index.js +14 -14
  34. package/dist/cli/{knowledge-escalator-h3hg7ek7.js → knowledge-escalator-kd80m9vp.js} +3 -3
  35. package/dist/cli/{knowledge-events-jtr66wxz.js → knowledge-events-j7jfwm1d.js} +1 -1
  36. package/dist/cli/{knowledge-store-69ttjjjs.js → knowledge-store-1d4byc7y.js} +1 -1
  37. package/dist/cli/{knowledge-validator-yn06rh13.js → knowledge-validator-63mkgt9x.js} +4 -4
  38. package/dist/cli/{scan-cursor-r0w2p5gz.js → scan-cursor-qzn5jmbe.js} +2 -2
  39. package/dist/cli/{schema-69z8w1ka.js → schema-2j92wnns.js} +1 -1
  40. package/dist/cli/{scope-persistence-habn4q8a.js → scope-persistence-dm5bab50.js} +3 -1
  41. package/dist/cli/{skill-generator-a7xfyddq.js → skill-generator-sv6zvdvz.js} +5 -5
  42. package/dist/commands/turbo-constants.d.ts +6 -0
  43. package/dist/config/constants.d.ts +1 -1
  44. package/dist/config/index.d.ts +1 -0
  45. package/dist/config/loader.d.ts +51 -10
  46. package/dist/hooks/pr-workflow-gate.d.ts +39 -0
  47. package/dist/hooks/scope-guard.d.ts +6 -1
  48. package/dist/index.js +47 -84
  49. package/dist/scope/scope-binding.d.ts +21 -2
  50. package/dist/scope/scope-persistence.d.ts +6 -0
  51. package/dist/tools/index.d.ts +2 -0
  52. package/dist/tools/manifest.d.ts +2 -0
  53. package/dist/tools/prepare-pr-feedback-scope.d.ts +5 -0
  54. package/dist/tools/tool-metadata.d.ts +98 -0
  55. package/dist/tools/write-pr-review-artifact.d.ts +5 -0
  56. package/package.json +4 -3
@@ -60,19 +60,35 @@ var init_tool_metadata = __esm(() => {
60
60
  "critic_oversight",
61
61
  "coder",
62
62
  "test_engineer"
63
- ]
63
+ ],
64
+ prWorkflow: {
65
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
66
+ capability: "observe"
67
+ }
64
68
  },
65
69
  diff_summary: {
66
70
  description: "filter classified AST changes by category, risk level, or file for reviewer drill-down",
67
- agents: ["architect", "reviewer", "critic_oversight"]
71
+ agents: ["architect", "reviewer", "critic_oversight"],
72
+ prWorkflow: {
73
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
74
+ capability: "observe"
75
+ }
68
76
  },
69
77
  syntax_check: {
70
78
  description: "check syntax of source files using tree-sitter parsers across multiple languages, returning per-file errors",
71
- agents: ["architect", "coder", "test_engineer"]
79
+ agents: ["architect", "coder", "test_engineer"],
80
+ prWorkflow: {
81
+ modes: ["PR_REVIEW"],
82
+ capability: "validate"
83
+ }
72
84
  },
73
85
  placeholder_scan: {
74
86
  description: "todo and FIXME comment detection",
75
- agents: ["architect", "reviewer"]
87
+ agents: ["architect", "reviewer"],
88
+ prWorkflow: {
89
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
90
+ capability: "observe"
91
+ }
76
92
  },
77
93
  imports: {
78
94
  description: "find all consumers that import from a given file \u2014 use before refactoring shared modules to avoid breaking unseen dependents",
@@ -89,19 +105,35 @@ var init_tool_metadata = __esm(() => {
89
105
  "critic",
90
106
  "coder",
91
107
  "test_engineer"
92
- ]
108
+ ],
109
+ prWorkflow: {
110
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
111
+ capability: "observe"
112
+ }
93
113
  },
94
114
  lint: {
95
115
  description: "run project linter in check or fix mode; supports biome, eslint, ruff, clippy, and more, returns structured results",
96
- agents: ["architect", "reviewer", "coder"]
116
+ agents: ["architect", "reviewer", "coder"],
117
+ prWorkflow: {
118
+ modes: ["PR_REVIEW"],
119
+ capability: "validate"
120
+ }
97
121
  },
98
122
  secretscan: {
99
123
  description: "scan for secrets (API keys, tokens, passwords) via regex and entropy; returns redacted previews, excludes common dirs",
100
- agents: ["architect", "reviewer", "critic_oversight"]
124
+ agents: ["architect", "reviewer", "critic_oversight"],
125
+ prWorkflow: {
126
+ modes: ["PR_REVIEW"],
127
+ capability: "validate"
128
+ }
101
129
  },
102
130
  sast_scan: {
103
131
  description: "static analysis security scan",
104
- agents: ["architect", "reviewer", "critic_oversight"]
132
+ agents: ["architect", "reviewer", "critic_oversight"],
133
+ prWorkflow: {
134
+ modes: ["PR_REVIEW"],
135
+ capability: "validate"
136
+ }
105
137
  },
106
138
  build_check: {
107
139
  description: "discover and run build, typecheck, and test commands for various project ecosystems in the working directory",
@@ -113,7 +145,11 @@ var init_tool_metadata = __esm(() => {
113
145
  },
114
146
  quality_budget: {
115
147
  description: "code quality budget check",
116
- agents: ["architect"]
148
+ agents: ["architect"],
149
+ prWorkflow: {
150
+ modes: ["PR_REVIEW"],
151
+ capability: "validate"
152
+ }
117
153
  },
118
154
  symbols: {
119
155
  description: "extract exported symbols (functions, classes, interfaces, types) from source files; supports TypeScript, JavaScript, and Python",
@@ -152,11 +188,19 @@ var init_tool_metadata = __esm(() => {
152
188
  },
153
189
  schema_drift: {
154
190
  description: "OpenAPI spec vs route drift",
155
- agents: ["architect", "sme", "researcher", "docs", "explorer"]
191
+ agents: ["architect", "sme", "researcher", "docs", "explorer"],
192
+ prWorkflow: {
193
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
194
+ capability: "observe"
195
+ }
156
196
  },
157
197
  todo_extract: {
158
198
  description: "structured TODO/FIXME extraction",
159
- agents: ["architect", "researcher", "docs", "explorer"]
199
+ agents: ["architect", "researcher", "docs", "explorer"],
200
+ prWorkflow: {
201
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
202
+ capability: "observe"
203
+ }
160
204
  },
161
205
  evidence_check: {
162
206
  description: "verify task evidence completeness",
@@ -210,7 +254,11 @@ var init_tool_metadata = __esm(() => {
210
254
  "reviewer",
211
255
  "critic_oversight",
212
256
  "test_engineer"
213
- ]
257
+ ],
258
+ prWorkflow: {
259
+ modes: ["PR_REVIEW"],
260
+ capability: "validate"
261
+ }
214
262
  },
215
263
  parse_lane_candidates: {
216
264
  description: "Parse [CANDIDATE] rows from a dispatch_lanes or collect_lane_results artifact (by output_ref), produce structured records with provenance, optionally persist to a per-batch sidecar JSONL. Pure-parser variant exists as internal module.",
@@ -220,13 +268,29 @@ var init_tool_metadata = __esm(() => {
220
268
  description: "persist the complete PR-review trigger evaluation with exact-set validation, dispatch provenance, and live merge-base verification",
221
269
  agents: ["architect"]
222
270
  },
271
+ write_pr_review_artifact: {
272
+ description: "persist schema-validated PR-review findings checkpoints and exact actionable feedback handoffs under the active run",
273
+ agents: ["architect"]
274
+ },
275
+ prepare_pr_feedback_scope: {
276
+ description: "prepare an exact file scope for one PR-feedback coder Task after immutable feedback verification settles",
277
+ agents: ["architect"]
278
+ },
223
279
  test_runner: {
224
280
  description: "auto-detect and run tests",
225
- agents: ["architect", "reviewer", "test_engineer"]
281
+ agents: ["architect", "reviewer", "test_engineer"],
282
+ prWorkflow: {
283
+ modes: ["PR_REVIEW"],
284
+ capability: "validate"
285
+ }
226
286
  },
227
287
  test_impact: {
228
288
  description: "identify test files impacted by changed source files via import analysis",
229
- agents: ["architect", "reviewer", "critic_oversight", "test_engineer"]
289
+ agents: ["architect", "reviewer", "critic_oversight", "test_engineer"],
290
+ prWorkflow: {
291
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
292
+ capability: "observe"
293
+ }
230
294
  },
231
295
  mutation_test: {
232
296
  description: "executes pre-generated mutation patches against tests, evaluates kill rate against quality gate thresholds",
@@ -253,11 +317,19 @@ var init_tool_metadata = __esm(() => {
253
317
  },
254
318
  git_blame: {
255
319
  description: "per-line git blame metadata: sha, author, date, summary for each line in a file",
256
- agents: ["reviewer", "explorer", "architect"]
320
+ agents: ["reviewer", "explorer", "architect"],
321
+ prWorkflow: {
322
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
323
+ capability: "observe"
324
+ }
257
325
  },
258
326
  gitingest: {
259
327
  description: "fetch a GitHub repository full content via gitingest.com",
260
- agents: ["architect", "docs", "explorer"]
328
+ agents: ["architect", "docs", "explorer"],
329
+ prWorkflow: {
330
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
331
+ capability: "observe"
332
+ }
261
333
  },
262
334
  retrieve_summary: {
263
335
  description: "retrieve the full content of a stored tool output summary",
@@ -280,7 +352,11 @@ var init_tool_metadata = __esm(() => {
280
352
  },
281
353
  retrieve_lane_output: {
282
354
  description: "retrieve paged full dispatch lane output by output_ref; use before consuming truncated lane previews or routing candidates from lane results",
283
- agents: ["architect"]
355
+ agents: ["architect"],
356
+ prWorkflow: {
357
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
358
+ capability: "observe"
359
+ }
284
360
  },
285
361
  extract_code_blocks: {
286
362
  description: "extract code blocks from text content and save them to files",
@@ -427,15 +503,27 @@ var init_tool_metadata = __esm(() => {
427
503
  },
428
504
  actionlint_scan: {
429
505
  description: "Run actionlint against GitHub Actions workflow YAML files with structured findings. Resolves actionlint lazily and does not modify files.",
430
- agents: ["architect", "test_engineer"]
506
+ agents: ["architect", "test_engineer"],
507
+ prWorkflow: {
508
+ modes: ["PR_REVIEW"],
509
+ capability: "validate"
510
+ }
431
511
  },
432
512
  osv_scan: {
433
513
  description: "Run OSV-Scanner against a workspace path and return structured dependency vulnerability findings. Resolves osv-scanner lazily and does not modify files.",
434
- agents: ["architect", "test_engineer"]
514
+ agents: ["architect", "test_engineer"],
515
+ prWorkflow: {
516
+ modes: ["PR_REVIEW"],
517
+ capability: "validate"
518
+ }
435
519
  },
436
520
  gh_evidence: {
437
521
  description: "Fetch bounded GitHub pull request or issue metadata through gh for review and CI evidence. Resolves gh lazily and is read-only.",
438
- agents: ["architect", "researcher"]
522
+ agents: ["architect", "researcher"],
523
+ prWorkflow: {
524
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
525
+ capability: "observe"
526
+ }
439
527
  },
440
528
  batch_symbols: {
441
529
  description: "Batched symbol extraction across multiple files. Returns per-file symbol summaries with isolated error handling.",
@@ -479,7 +567,11 @@ var init_tool_metadata = __esm(() => {
479
567
  "critic_oversight",
480
568
  "explorer",
481
569
  "coder"
482
- ]
570
+ ],
571
+ prWorkflow: {
572
+ modes: ["PR_REVIEW", "PR_FEEDBACK"],
573
+ capability: "observe"
574
+ }
483
575
  },
484
576
  get_qa_gate_profile: {
485
577
  description: "retrieve the QA gate profile for the current plan: gates (reviewer, test_engineer, sme_enabled, critic_pre_plan, sast_enabled, council_mode, hallucination_guard, mutation_test, phase_council, drift_check, final_council), lock state, and profile hash. Read-only.",
@@ -608,7 +608,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
608
608
  deltas.push({ id, delta });
609
609
  }
610
610
  if (deltas.length > 0) {
611
- const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-69ttjjjs.js");
611
+ const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-1d4byc7y.js");
612
612
  await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
613
613
  }
614
614
  return {
@@ -3,7 +3,7 @@ import {
3
3
  init_constants,
4
4
  init_schema,
5
5
  stripKnownSwarmPrefix
6
- } from "./index-r1gdkn2d.js";
6
+ } from "./index-c8sqc3nh.js";
7
7
  import {
8
8
  init_logger,
9
9
  warn
@@ -2,18 +2,18 @@
2
2
  import {
3
3
  ALLOWED_SKILL_PATH_PREFIXES,
4
4
  validateSkillPath
5
- } from "./index-yq4s3q43.js";
5
+ } from "./index-6j9p0c40.js";
6
6
  import {
7
7
  computeOutcomeSignal,
8
8
  readKnowledge,
9
9
  resolveHiveKnowledgePath,
10
10
  resolveSwarmKnowledgePath,
11
11
  transactKnowledge
12
- } from "./index-1012f47p.js";
12
+ } from "./index-nmyg9b7v.js";
13
13
  import {
14
14
  effectiveRetrievalOutcomes,
15
15
  readKnowledgeCounterRollups
16
- } from "./index-gbnpz7rh.js";
16
+ } from "./index-cnhp6c0k.js";
17
17
  import {
18
18
  init_knowledge_types,
19
19
  isActiveStatus
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-rtry5xyf.js";
5
5
  import {
6
6
  readKnowledgeEvents
7
- } from "./index-gbnpz7rh.js";
7
+ } from "./index-cnhp6c0k.js";
8
8
  import {
9
9
  isLinked,
10
10
  readLinkPointer,
@@ -6,13 +6,13 @@ import {
6
6
  resolveSwarmKnowledgePath,
7
7
  transactKnowledge,
8
8
  wordBigrams
9
- } from "./index-1012f47p.js";
9
+ } from "./index-nmyg9b7v.js";
10
10
  import {
11
11
  countEntryContradictionsInWindow,
12
12
  countEntryViolationsInWindow,
13
13
  readKnowledgeEvents,
14
14
  recordKnowledgeEvent
15
- } from "./index-gbnpz7rh.js";
15
+ } from "./index-cnhp6c0k.js";
16
16
  import {
17
17
  init_knowledge_types,
18
18
  isActiveStatus
@@ -190,11 +190,11 @@ async function maybeQuarantineOnContradiction(directory, entryId, threshold, win
190
190
  alreadyInactive: true
191
191
  };
192
192
  }
193
- const { quarantineEntry } = await import("./knowledge-validator-yn06rh13.js");
193
+ const { quarantineEntry } = await import("./knowledge-validator-63mkgt9x.js");
194
194
  let policyConfig;
195
195
  try {
196
- const { KnowledgeConfigSchema } = await import("./schema-69z8w1ka.js");
197
- const { loadPluginConfigWithMeta } = await import("./index-4b1e5m0d.js");
196
+ const { KnowledgeConfigSchema } = await import("./schema-2j92wnns.js");
197
+ const { loadPluginConfigWithMeta } = await import("./index-vvwf9ark.js");
198
198
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
199
199
  policyConfig = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
200
200
  } catch {
@@ -650,7 +650,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
650
650
  const recovered = touched.filter((e) => e.confidence > CONFIDENCE_FLOOR + FLOOR_EPSILON && e.confidence_floor_demoted);
651
651
  if (atFloor.length === 0 && recovered.length === 0)
652
652
  return;
653
- const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-jtr66wxz.js");
653
+ const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-j7jfwm1d.js");
654
654
  const rollups = await readKnowledgeCounterRollups(directory);
655
655
  const flagIds = new Set;
656
656
  for (const e of atFloor) {
@@ -717,11 +717,11 @@ async function applyConfidenceFloorAction(directory, touched, options) {
717
717
  });
718
718
  }
719
719
  if (action === "quarantine" && toQuarantine.length > 0) {
720
- const { quarantineEntry } = await import("./knowledge-validator-yn06rh13.js");
721
- const { KnowledgeConfigSchema } = await import("./schema-69z8w1ka.js");
720
+ const { quarantineEntry } = await import("./knowledge-validator-63mkgt9x.js");
721
+ const { KnowledgeConfigSchema } = await import("./schema-2j92wnns.js");
722
722
  let config;
723
723
  try {
724
- const { loadPluginConfigWithMeta } = await import("./index-4b1e5m0d.js");
724
+ const { loadPluginConfigWithMeta } = await import("./index-vvwf9ark.js");
725
725
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
726
726
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
727
727
  } catch {
@@ -6,7 +6,7 @@ import {
6
6
  loadPluginConfigWithMeta,
7
7
  loadPluginConfigWithMetaAsync,
8
8
  resolveWorktreeIsolationConfig
9
- } from "./index-74xejn4v.js";
9
+ } from "./index-abw10n3f.js";
10
10
  import {
11
11
  ApprovalEvidenceSchema,
12
12
  BaseEvidenceSchema,
@@ -58,7 +58,7 @@ import {
58
58
  WorktreeIsolationConfigSchema,
59
59
  isQAAgent,
60
60
  isSubagent
61
- } from "./index-r1gdkn2d.js";
61
+ } from "./index-c8sqc3nh.js";
62
62
  import"./index-bk5tah7q.js";
63
63
  import {
64
64
  MigrationStatusSchema,
@@ -8,7 +8,7 @@ import {
8
8
  init_constants,
9
9
  init_schema,
10
10
  stripKnownSwarmPrefix
11
- } from "./index-r1gdkn2d.js";
11
+ } from "./index-c8sqc3nh.js";
12
12
  import {
13
13
  log
14
14
  } from "./index-zgwm4ryv.js";
@@ -39,7 +39,7 @@ var _internals = {
39
39
  symlinkSync: fs.symlinkSync
40
40
  },
41
41
  writeScopeToDisk: async (directory, taskId, files) => {
42
- const { writeScopeToDisk: realWrite } = await import("./scope-persistence-habn4q8a.js");
42
+ const { writeScopeToDisk: realWrite } = await import("./scope-persistence-dm5bab50.js");
43
43
  return realWrite(directory, taskId, files);
44
44
  },
45
45
  writeLaneProfileToDisk: async (_worktreePath, _laneIndex, _envOverrides) => {
@@ -12,14 +12,14 @@ import {
12
12
  detectPosixWrites,
13
13
  detectWindowsWrites,
14
14
  resolveWriteTargets
15
- } from "./index-d17kqe54.js";
15
+ } from "./index-y9t766sw.js";
16
16
  import {
17
17
  checkFileAuthority,
18
18
  classifyFile,
19
19
  isInDeclaredScope,
20
20
  redactPath,
21
21
  redactShellCommand
22
- } from "./index-dezgmvtw.js";
22
+ } from "./index-echdpdhy.js";
23
23
 
24
24
  // src/services/guardrail-explain-service.ts
25
25
  import path from "path";