opencode-swarm 7.113.1 → 7.113.3

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 (78) hide show
  1. package/.opencode/skills/engineering-conventions/SKILL.md +5 -0
  2. package/.opencode/skills/gate-attribution/SKILL.md +2 -0
  3. package/binaries/win32-arm64/.gitkeep +0 -0
  4. package/binaries/win32-x64/.gitkeep +0 -0
  5. package/dist/background/event-bus.d.ts +1 -1
  6. package/dist/background/pending-delegations.d.ts +8 -0
  7. package/dist/background/queue.d.ts +11 -0
  8. package/dist/background/trigger.d.ts +1 -0
  9. package/dist/background/workspace-snapshot.d.ts +7 -0
  10. package/dist/cli/{capability-probe-sh9bwh39.js → capability-probe-f1paszww.js} +1 -1
  11. package/dist/cli/{config-doctor-az11cwf5.js → config-doctor-xbdfrbwt.js} +2 -2
  12. package/dist/cli/{core-f4cbabe7.js → core-zg8s1jwx.js} +2 -2
  13. package/dist/cli/{curator-nm2c9y1p.js → curator-ckzb8ww4.js} +23 -22
  14. package/dist/cli/{curator-drift-jvs1v6em.js → curator-drift-c0by7063.js} +2 -2
  15. package/dist/cli/curator-llm-factory-mhjcpy1s.js +41 -0
  16. package/dist/cli/{dispatch-wst7bypk.js → dispatch-mczsxy5s.js} +2 -2
  17. package/dist/cli/{evidence-summary-service-j6fnsfeq.js → evidence-summary-service-8g594znj.js} +7 -7
  18. package/dist/cli/{gate-evidence-mk0ss1re.js → gate-evidence-vkpqt300.js} +5 -5
  19. package/dist/cli/guardrail-explain-kabd97j8.js +42 -0
  20. package/dist/cli/{guardrail-log-hysxdwg9.js → guardrail-log-qfc2j0tb.js} +4 -4
  21. package/dist/cli/hive-promoter-h21wzpsr.js +49 -0
  22. package/dist/cli/{index-0dab9w37.js → index-0p660a87.js} +2 -2
  23. package/dist/cli/{index-32bx4kch.js → index-0q7rrh59.js} +4 -4
  24. package/dist/cli/{index-1ey3dxq7.js → index-147ja18h.js} +0 -4
  25. package/dist/cli/{index-0gf6de8b.js → index-2148358e.js} +45 -1
  26. package/dist/cli/{index-30ejh1tx.js → index-43khae15.js} +3 -3
  27. package/dist/cli/{index-pm992z24.js → index-4h2ea8h5.js} +12 -9
  28. package/dist/cli/{index-5mkc2f9z.js → index-4sckv7y6.js} +1 -1
  29. package/dist/cli/{index-q1jaeynn.js → index-80jkseqw.js} +2 -2
  30. package/dist/cli/{index-wvrj16f0.js → index-8fwhhayc.js} +4 -0
  31. package/dist/cli/{index-npd9rypp.js → index-dh87tpc5.js} +176 -63
  32. package/dist/cli/{workspace-snapshot-w58jr2ga.js → index-dqh3zhhc.js} +53 -10
  33. package/dist/cli/{index-d0w40jm3.js → index-f6y341yk.js} +14 -11
  34. package/dist/cli/{index-db1fh1fv.js → index-g40r5d08.js} +1 -1
  35. package/dist/cli/{index-8f256d7t.js → index-g6va6n3t.js} +1 -1
  36. package/dist/cli/{index-9fxs0rm1.js → index-ga4ta3cr.js} +1 -1
  37. package/dist/cli/{index-t6wfwdm1.js → index-h7q1bvzm.js} +3 -3
  38. package/dist/cli/{index-rqpm9cwe.js → index-hw4tcxs9.js} +25 -24
  39. package/dist/cli/{index-h389ed8y.js → index-mr4whary.js} +3 -3
  40. package/dist/cli/{index-g55nzpwn.js → index-n6fa2hhk.js} +1 -1
  41. package/dist/cli/{index-vn263hqt.js → index-pa6t33pt.js} +17 -10
  42. package/dist/cli/{index-h91bv3hy.js → index-qe3v54nb.js} +6 -1
  43. package/dist/cli/{index-hpp2r0sd.js → index-qzqx2qky.js} +3 -3
  44. package/dist/cli/{index-fhmw7evd.js → index-rdwfqhp7.js} +2 -2
  45. package/dist/cli/{index-ky8eb4q6.js → index-srvqfcyj.js} +2 -2
  46. package/dist/cli/{index-1rga1vvb.js → index-wh8949ef.js} +1 -1
  47. package/dist/cli/{index-r9fjzr3k.js → index-xbe1wtme.js} +1 -1
  48. package/dist/cli/index.js +23 -22
  49. package/dist/cli/{knowledge-escalator-4gbz527n.js → knowledge-escalator-0q1p6br7.js} +8 -8
  50. package/dist/cli/{knowledge-events-b6x28fgc.js → knowledge-events-9518gzsp.js} +6 -6
  51. package/dist/cli/{knowledge-store-h3cjx4dg.js → knowledge-store-k5rab79h.js} +6 -6
  52. package/dist/cli/{knowledge-validator-q6jw2p0t.js → knowledge-validator-csay9wqj.js} +7 -7
  53. package/dist/cli/{pending-delegations-gc3a2hfx.js → pending-delegations-ddbkbgxy.js} +11 -4
  54. package/dist/cli/{pr-subscriptions-p8g2rzxd.js → pr-subscriptions-vwv7zm2p.js} +5 -5
  55. package/dist/cli/{schema-qb313fyy.js → schema-e5kd993s.js} +1 -1
  56. package/dist/cli/{scope-persistence-5ccgtebg.js → scope-persistence-fm0gzhnk.js} +2 -2
  57. package/dist/cli/{skill-generator-nnwn4sq0.js → skill-generator-z01sjppf.js} +9 -9
  58. package/dist/cli/{telemetry-jm7t8031.js → telemetry-jny76r83.js} +1 -1
  59. package/dist/cli/workspace-snapshot-eyf6gd0d.js +22 -0
  60. package/dist/commands/registry.d.ts +7 -0
  61. package/dist/config/constants.d.ts +1 -1
  62. package/dist/config/skill-mirrors.d.ts +3 -1
  63. package/dist/gate-evidence-classification.d.ts +5 -0
  64. package/dist/gate-evidence.d.ts +14 -3
  65. package/dist/hooks/messages-transform.d.ts +22 -1
  66. package/dist/hooks/spawn-helper.d.ts +10 -0
  67. package/dist/index.js +302 -300
  68. package/dist/memory/schema.d.ts +4 -4
  69. package/dist/sandbox/capability-probe.d.ts +14 -0
  70. package/dist/sandbox/macos/sandbox-exec-executor.d.ts +5 -0
  71. package/dist/tools/phase-complete.d.ts +8 -0
  72. package/dist/tools/sast-scan.d.ts +2 -0
  73. package/dist/tools/tool-metadata.d.ts +1 -1
  74. package/dist/utils/path-security.d.ts +28 -0
  75. package/package.json +2 -1
  76. package/dist/cli/curator-llm-factory-nmhzc774.js +0 -40
  77. package/dist/cli/guardrail-explain-q1np1xaw.js +0 -41
  78. package/dist/cli/hive-promoter-z4dezw62.js +0 -48
@@ -3,13 +3,13 @@ import {
3
3
  atomicWriteFile,
4
4
  taskEvidencePath,
5
5
  withTaskEvidenceLock
6
- } from "./index-0dab9w37.js";
6
+ } from "./index-0p660a87.js";
7
7
  import {
8
8
  exports_external
9
9
  } from "./index-293f68mj.js";
10
10
  import {
11
11
  telemetry
12
- } from "./index-vn263hqt.js";
12
+ } from "./index-pa6t33pt.js";
13
13
 
14
14
  // src/gate-evidence.ts
15
15
  import { mkdirSync, readFileSync, realpathSync } from "fs";
@@ -71,7 +71,8 @@ var TaskEvidenceSchema = exports_external.object({
71
71
  taskId: exports_external.string(),
72
72
  required_gates: exports_external.array(exports_external.string()).default([]),
73
73
  gates: exports_external.record(exports_external.string(), GateEvidenceSchema),
74
- turbo: exports_external.boolean().optional()
74
+ turbo: exports_external.boolean().optional(),
75
+ test_engineer_exempt: exports_external.boolean().optional()
75
76
  });
76
77
  var DEFAULT_REQUIRED_GATES = ["reviewer", "test_engineer"];
77
78
  function isValidTaskId(taskId) {
@@ -80,10 +81,10 @@ function isValidTaskId(taskId) {
80
81
  function assertValidTaskId(taskId) {
81
82
  assertStrictTaskId(taskId);
82
83
  }
83
- function deriveRequiredGates(agentType) {
84
+ function deriveRequiredGates(agentType, context = {}) {
84
85
  switch (agentType) {
85
86
  case "coder":
86
- return ["reviewer", "test_engineer"];
87
+ return context.testEngineerExempt === true ? ["reviewer"] : ["reviewer", "test_engineer"];
87
88
  case "docs":
88
89
  return ["docs"];
89
90
  case "designer":
@@ -110,8 +111,8 @@ function deriveRequiredGates(agentType) {
110
111
  return ["reviewer", "test_engineer"];
111
112
  }
112
113
  }
113
- function expandRequiredGates(existingGates, newAgentType) {
114
- const newGates = deriveRequiredGates(newAgentType);
114
+ function expandRequiredGates(existingGates, newAgentType, context = {}) {
115
+ const newGates = deriveRequiredGates(newAgentType, context);
115
116
  const combined = [...new Set([...existingGates ?? [], ...newGates])];
116
117
  return combined.sort();
117
118
  }
@@ -166,6 +167,7 @@ async function recordGateEvidence(directory, taskId, gate, sessionId, turbo) {
166
167
  taskId,
167
168
  required_gates: requiredGates,
168
169
  turbo: turbo === true ? true : existing?.turbo,
170
+ test_engineer_exempt: existing?.test_engineer_exempt,
169
171
  gates: {
170
172
  ...existing?.gates ?? {},
171
173
  [gate]: {
@@ -179,7 +181,7 @@ async function recordGateEvidence(directory, taskId, gate, sessionId, turbo) {
179
181
  });
180
182
  telemetry.gatePassed(sessionId, gate, taskId);
181
183
  }
182
- async function recordAgentDispatch(directory, taskId, agentType, turbo) {
184
+ async function recordAgentDispatch(directory, taskId, agentType, turbo, context = {}) {
183
185
  assertValidTaskId(taskId);
184
186
  await withTaskEvidenceLock(directory, taskId, agentType, async () => {
185
187
  const resolvedEvidenceDir = getEvidenceDir(directory);
@@ -191,11 +193,12 @@ async function recordAgentDispatch(directory, taskId, agentType, turbo) {
191
193
  telemetry.gateParseError(taskId, error);
192
194
  throw error;
193
195
  }
194
- const requiredGates = existing ? expandRequiredGates(existing.required_gates, agentType) : deriveRequiredGates(agentType);
196
+ const requiredGates = existing ? expandRequiredGates(existing.required_gates, agentType, context) : deriveRequiredGates(agentType, context);
195
197
  const updated = {
196
198
  taskId,
197
199
  required_gates: requiredGates,
198
200
  turbo: turbo === true ? true : existing?.turbo,
201
+ test_engineer_exempt: agentType === "coder" ? context.testEngineerExempt === true && !requiredGates.includes("test_engineer") : existing?.test_engineer_exempt,
199
202
  gates: existing?.gates ?? {}
200
203
  };
201
204
  await atomicWriteFile(evidencePath, JSON.stringify(updated, null, 2));
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  emit
4
- } from "./index-vn263hqt.js";
4
+ } from "./index-pa6t33pt.js";
5
5
  import {
6
6
  require_proper_lockfile
7
7
  } from "./index-vvk2g744.js";
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  validateSwarmPath
4
- } from "./index-1rga1vvb.js";
4
+ } from "./index-wh8949ef.js";
5
5
  import {
6
6
  log
7
7
  } from "./index-zgwm4ryv.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./index-293f68mj.js";
11
11
  import {
12
12
  withEvidenceLock
13
- } from "./index-5mkc2f9z.js";
13
+ } from "./index-4sckv7y6.js";
14
14
 
15
15
  // src/background/pr-subscriptions.ts
16
16
  import * as fs from "fs";
@@ -54,6 +54,7 @@ async function probeLinux() {
54
54
  if (output.length > 0) {
55
55
  return {
56
56
  status: "enabled",
57
+ strength: "strong",
57
58
  mechanism: "Bubblewrap",
58
59
  platform: "linux"
59
60
  };
@@ -88,6 +89,7 @@ async function probeMacOS() {
88
89
  if (output.length > 0) {
89
90
  return {
90
91
  status: "enabled",
92
+ strength: "strong",
91
93
  mechanism: "sandbox-exec",
92
94
  platform: "darwin"
93
95
  };
@@ -123,6 +125,7 @@ function probeWindows() {
123
125
  if (result.available) {
124
126
  return {
125
127
  status: "enabled",
128
+ strength: "strong",
126
129
  platform: "win32",
127
130
  mechanism: `native-runner/${result.mode}`
128
131
  };
@@ -145,6 +148,7 @@ function probeWindows() {
145
148
  }
146
149
  return result.status === 0 ? {
147
150
  status: "enabled",
151
+ strength: "advisory",
148
152
  platform: "win32",
149
153
  mechanism: "PowerShell wrapper"
150
154
  } : {