opencode-swarm 7.169.0 → 7.170.0

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 (67) hide show
  1. package/README.md +1 -0
  2. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  3. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  4. package/dist/ci/evaluate.d.ts +100 -0
  5. package/dist/ci/index.d.ts +13 -0
  6. package/dist/ci/quality-checks.d.ts +58 -0
  7. package/dist/ci/report.d.ts +21 -0
  8. package/dist/ci/runtime.d.ts +81 -0
  9. package/dist/cli/{capability-probe-faqefhah.js → capability-probe-pdwwz8gs.js} +1 -1
  10. package/dist/cli/{coder-settlement-fd6ba876.js → coder-settlement-65zx1bet.js} +3 -3
  11. package/dist/cli/{config-doctor-zeppqwwx.js → config-doctor-c30rss1c.js} +2 -2
  12. package/dist/cli/{core-fj1afc31.js → core-8wkbr1tr.js} +1 -1
  13. package/dist/cli/{curator-llm-factory-4t773tmz.js → curator-llm-factory-jkjqasfs.js} +20 -20
  14. package/dist/cli/{curator-emftndv0.js → curator-pckzk1q4.js} +20 -20
  15. package/dist/cli/{evidence-summary-service-51b69jc3.js → evidence-summary-service-4ydcapke.js} +7 -7
  16. package/dist/cli/{gate-evidence-53s161wb.js → gate-evidence-xwqfky3m.js} +2 -2
  17. package/dist/cli/{guardrail-explain-mhx8gt8q.js → guardrail-explain-fe2veh2s.js} +21 -21
  18. package/dist/cli/{guardrail-log-xg6hrdsq.js → guardrail-log-z38j69bx.js} +3 -3
  19. package/dist/cli/{guardrail-reset-fgv5kt5x.js → guardrail-reset-mmnzt4mz.js} +20 -20
  20. package/dist/cli/{hive-promoter-41zygtgx.js → hive-promoter-68hrw1y1.js} +20 -20
  21. package/dist/cli/{index-sxcfszbe.js → index-06rbdzqn.js} +1 -1
  22. package/dist/cli/{index-ksybszed.js → index-0xprxg95.js} +1 -1
  23. package/dist/cli/{index-2znfa537.js → index-31sqcdsd.js} +1 -1
  24. package/dist/cli/{index-p6xsgk4r.js → index-3axdtaf0.js} +2 -2
  25. package/dist/cli/{index-nwv3e3kc.js → index-3eh2n3dx.js} +1 -1
  26. package/dist/cli/{index-zapc8vj4.js → index-3p3y55xg.js} +4 -4
  27. package/dist/cli/{index-yj24ny5k.js → index-4wc5gfgm.js} +1 -1
  28. package/dist/cli/{index-wwr67xc0.js → index-59fcfpkh.js} +1 -1
  29. package/dist/cli/{index-sb1s03y9.js → index-5bbem0ey.js} +3 -3
  30. package/dist/cli/{index-q1r1cfww.js → index-76qm2c2y.js} +37 -26
  31. package/dist/cli/{index-0vgs5r39.js → index-8w1mrvbd.js} +3 -3
  32. package/dist/cli/{index-c7kr7tnk.js → index-9xk97bcf.js} +3 -3
  33. package/dist/cli/{index-3zcds757.js → index-j144fgk8.js} +3370 -2498
  34. package/dist/cli/{index-s96dpjsk.js → index-mjn6aqqk.js} +2 -2
  35. package/dist/cli/{index-1cbjemgh.js → index-n0d5hrs4.js} +2 -2
  36. package/dist/cli/{index-dd48vt27.js → index-p6fj7qz7.js} +3 -3
  37. package/dist/cli/{index-83m0y4cj.js → index-pw00xcj0.js} +3 -3
  38. package/dist/cli/{index-55fkkjec.js → index-r1z8nrb6.js} +5 -5
  39. package/dist/cli/{index-76ng6vmq.js → index-ssx8087p.js} +4 -4
  40. package/dist/cli/{index-exf0j569.js → index-t73888m0.js} +1 -1
  41. package/dist/cli/{index-3bfzpzsb.js → index-td6xrw55.js} +1 -1
  42. package/dist/cli/{index-8x9keek6.js → index-xztkjj3c.js} +28 -22
  43. package/dist/cli/{index-egkc2bpv.js → index-ye43mdfm.js} +1 -1
  44. package/dist/cli/{index-e4dxf5cr.js → index-z5vas8c3.js} +20 -20
  45. package/dist/cli/{index-5reh1bjz.js → index-zw3hkzch.js} +1 -1
  46. package/dist/cli/index.js +25 -20
  47. package/dist/cli/{knowledge-escalator-07s44av0.js → knowledge-escalator-pz2faktx.js} +6 -6
  48. package/dist/cli/{knowledge-events-j2n1569p.js → knowledge-events-s6s8qedx.js} +4 -4
  49. package/dist/cli/{knowledge-store-85metj89.js → knowledge-store-dgv3xw3h.js} +1 -1
  50. package/dist/cli/{knowledge-validator-63k1xzcc.js → knowledge-validator-22qppdyv.js} +2 -2
  51. package/dist/cli/{pending-delegations-dckmjymn.js → pending-delegations-4r21nf9d.js} +2 -2
  52. package/dist/cli/{pr-subscriptions-pyh73me6.js → pr-subscriptions-d52xy3zd.js} +1 -1
  53. package/dist/cli/{pr-workflow-gate-k1r4rjw4.js → pr-workflow-gate-0de81kzw.js} +20 -20
  54. package/dist/cli/{scan-cursor-k6egg4n0.js → scan-cursor-ahbbejab.js} +2 -2
  55. package/dist/cli/{schema-vdrtpggt.js → schema-17h2hcw9.js} +1 -1
  56. package/dist/cli/{scope-persistence-h1mmww19.js → scope-persistence-gcn3zm5e.js} +5 -5
  57. package/dist/cli/{skill-generator-pmn6gmvk.js → skill-generator-hkqr5qs7.js} +7 -7
  58. package/dist/cli/{snapshot-coordination-init-rspykgd0.js → snapshot-coordination-init-ms36zxv6.js} +20 -20
  59. package/dist/cli/{worktree-collision-ownership-x84dzzzc.js → worktree-collision-ownership-7v7gg511.js} +2 -2
  60. package/dist/cli/{worktree-isolation-nw9pakkx.js → worktree-isolation-nanamt25.js} +20 -20
  61. package/dist/commands/ci.d.ts +40 -0
  62. package/dist/commands/index.d.ts +1 -0
  63. package/dist/commands/registry.d.ts +8 -0
  64. package/dist/hooks/gate-denial-tracker.d.ts +18 -14
  65. package/dist/index.js +436 -434
  66. package/dist/sandbox/macos/sandbox-exec-executor.d.ts +48 -11
  67. package/package.json +1 -1
@@ -23,12 +23,18 @@ declare function resolveProbeTargetBinary(): string;
23
23
  *
24
24
  * F6a item 2 (issue #2236): this deliberately shares the same primitives and
25
25
  * ordering as buildSandboxProfile's production profile — a blanket
26
- * `(deny file-write*)` followed by a scoped `(allow file-write* (subpath …))`,
27
- * plus a `(setenv …)`/`(unsetenv …)` pair (F6b) so that probe success
28
- * implies the production profile's primitives actually parse under this
29
- * host's sandbox-exec. A trivial `(allow default)`-only probe would pass
30
- * even when the production profile is unparseable, which is the exact
31
- * probe-passes/production-fails failure mode this guards against.
26
+ * `(deny file-write*)` followed by a scoped `(allow file-write* (subpath …))` —
27
+ * so that probe success implies the production profile's primitives actually
28
+ * parse under this host's sandbox-exec. A trivial `(allow default)`-only probe
29
+ * would pass even when the production profile is unparseable, which is the
30
+ * exact probe-passes/production-fails failure mode this guards against.
31
+ *
32
+ * NEVER add env directives here or to buildSandboxProfile: `setenv`/`unsetenv`
33
+ * are not SBPL operations — the profile parser treats them as unbound
34
+ * variables and rejects the whole profile (exit 65), which silently disabled
35
+ * this executor on every macOS host (issue #2590). SBPL cannot mutate the
36
+ * sandboxed process's environment at all; env overrides are applied inside the
37
+ * wrapped command instead (see buildEnvOverridePrefix / wrapCommand).
32
38
  */
33
39
  declare function buildProbeProfile(tempDir: string): string;
34
40
  /**
@@ -61,15 +67,41 @@ export declare const _internals: {
61
67
  resetProbeMemo: typeof resetProbeMemo;
62
68
  buildSandboxProfile: typeof buildSandboxProfile;
63
69
  buildProbeProfile: typeof buildProbeProfile;
70
+ buildEnvOverridePrefix: typeof buildEnvOverridePrefix;
64
71
  resolveSandboxExecBinary: typeof resolveSandboxExecBinary;
65
72
  resolveProbeTargetBinary: typeof resolveProbeTargetBinary;
66
73
  exists: typeof existsSync;
67
74
  spawnSync: typeof spawnSync;
68
75
  };
69
76
  /**
70
- * Build a sandbox-exec profile string for the given scope paths, temp dir, and optional env overrides.
77
+ * Build the shell prefix that applies env overrides inside the wrapped
78
+ * command's `bash -c` payload (issue #2590).
79
+ *
80
+ * SBPL cannot mutate the sandboxed process's environment, so the hardening
81
+ * declared by getEnvOverrides() (DYLD_* unsets, PATH pin) and any per-call
82
+ * overrides are applied by the inner shell itself, before the user command:
83
+ * null-valued keys are unset via a single `unset` builtin, string-valued keys
84
+ * are exported with the value single-quote-escaped via shellEscape. Keys
85
+ * failing isValidEnvKey are silently dropped — the same contract the (broken)
86
+ * SBPL emitter applied, and required for shell safety too: an invalid key is
87
+ * neither a safe shell word nor a safe SBPL token.
88
+ *
89
+ * Returns '' when there is nothing to apply, so the no-override payload is
90
+ * byte-identical to the pre-#2590 wrapped command. The trailing '; ' lets the
91
+ * prefix compose with arbitrary user payloads.
92
+ */
93
+ declare function buildEnvOverridePrefix(envOverrides?: Record<string, string | null>): string;
94
+ /**
95
+ * Build a sandbox-exec profile string for the given scope paths and temp dir.
96
+ *
97
+ * NOTE: there are deliberately NO environment directives in the profile.
98
+ * `setenv`/`unsetenv` are not SBPL operations — sandbox-exec rejects them as
99
+ * unbound variables (exit 65), which silently disabled this executor on every
100
+ * macOS host (issue #2590). SBPL cannot mutate the sandboxed process's
101
+ * environment at all; env overrides are applied by the inner shell instead
102
+ * (see buildEnvOverridePrefix / wrapCommand).
71
103
  */
72
- declare function buildSandboxProfile(scopePaths: string[], tempDir: string, envOverrides?: Record<string, string | null>): string;
104
+ declare function buildSandboxProfile(scopePaths: string[], tempDir: string): string;
73
105
  /**
74
106
  * macOS sandbox-exec sandbox executor.
75
107
  */
@@ -100,6 +132,8 @@ export declare class MacOSSandboxExecutor implements SandboxExecutor {
100
132
  * @param scopePaths - Additional scope paths to bind (merged with constructor scope)
101
133
  * @param tempDir - Optional temp directory override
102
134
  * @param envOverrides - Optional per-call env overrides: string sets the var, null unsets it.
135
+ * Applied by the inner shell BEFORE the user command runs — SBPL
136
+ * cannot mutate the sandboxed process's environment (issue #2590).
103
137
  * When omitted, no per-call env override is applied.
104
138
  * @returns A sandbox-exec wrapped command string ready for shell execution,
105
139
  * or the raw command string when the sandbox is unavailable (passthrough mode)
@@ -110,9 +144,12 @@ export declare class MacOSSandboxExecutor implements SandboxExecutor {
110
144
  /**
111
145
  * Return environment variable overrides required for the macOS sandbox.
112
146
  *
113
- * DYLD_INSERT_LIBRARIES, DYLD_LIBRARY_PATH, DYLD_FRAMEWORK_PATH, and
114
- * DYLD_ROOT_PATH can be used to bypass sandbox restrictions by injecting
115
- * dynamic libraries. Unsetting them improves sandbox enforcement (defense in depth).
147
+ * DYLD_INSERT_LIBRARIES, DYLD_LIBRARY_PATH, DYLD_FRAMEWORK_PATH,
148
+ * DYLD_ROOT_PATH, and DYLD_FORCE_FLAT_NAMESPACE can be used to bypass
149
+ * sandbox restrictions by injecting or redirecting dynamic-library
150
+ * loading. Unsetting them improves sandbox enforcement (defense in
151
+ * depth); DYLD_FORCE_FLAT_NAMESPACE matches the Windows executors'
152
+ * scrub lists (review PRR-006, PR #2630).
116
153
  */
117
154
  getEnvOverrides(): Record<string, string | null>;
118
155
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.169.0",
3
+ "version": "7.170.0",
4
4
  "description": "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",