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,8 +3,8 @@ import type { CuratorMemoryDecision, MemoryKind, MemoryPatch, MemoryProposal, Me
3
3
  export declare const MemoryScopeTypeSchema: z.ZodEnum<{
4
4
  agent: "agent";
5
5
  project: "project";
6
- global_user: "global_user";
7
6
  workspace: "workspace";
7
+ global_user: "global_user";
8
8
  repository: "repository";
9
9
  run: "run";
10
10
  }>;
@@ -12,8 +12,8 @@ export declare const MemoryScopeRefSchema: z.ZodObject<{
12
12
  type: z.ZodEnum<{
13
13
  agent: "agent";
14
14
  project: "project";
15
- global_user: "global_user";
16
15
  workspace: "workspace";
16
+ global_user: "global_user";
17
17
  repository: "repository";
18
18
  run: "run";
19
19
  }>;
@@ -63,8 +63,8 @@ export declare const MemoryRecordSchema: z.ZodObject<{
63
63
  type: z.ZodEnum<{
64
64
  agent: "agent";
65
65
  project: "project";
66
- global_user: "global_user";
67
66
  workspace: "workspace";
67
+ global_user: "global_user";
68
68
  repository: "repository";
69
69
  run: "run";
70
70
  }>;
@@ -142,8 +142,8 @@ export declare const MemoryProposalSchema: z.ZodObject<{
142
142
  type: z.ZodEnum<{
143
143
  agent: "agent";
144
144
  project: "project";
145
- global_user: "global_user";
146
145
  workspace: "workspace";
146
+ global_user: "global_user";
147
147
  repository: "repository";
148
148
  run: "run";
149
149
  }>;
@@ -11,10 +11,24 @@
11
11
  */
12
12
  /** Possible sandbox status values. */
13
13
  export type SandboxStatus = 'enabled' | 'disabled' | 'unsupported';
14
+ /**
15
+ * Enforcement strength of an available sandbox mechanism.
16
+ * - `strong`: real kernel-level enforcement (bubblewrap, sandbox-exec, the
17
+ * Windows native runner).
18
+ * - `advisory`: best-effort, non-kernel restriction (the Windows PowerShell
19
+ * environment-scrub fallback). Must NEVER be reported as real containment
20
+ * (issue #1778 H2).
21
+ */
22
+ export type SandboxStrength = 'strong' | 'advisory';
14
23
  /** Result of a sandbox capability probe. */
15
24
  export interface SandboxCapability {
16
25
  /** Whether the sandbox mechanism is available. */
17
26
  status: SandboxStatus;
27
+ /**
28
+ * Enforcement strength when `status === 'enabled'`. Absent for
29
+ * disabled/unsupported results.
30
+ */
31
+ strength?: SandboxStrength;
18
32
  /** Human-readable mechanism name, e.g. "Bubblewrap". */
19
33
  mechanism: string;
20
34
  /** Current process.platform value. */
@@ -23,7 +23,12 @@ declare function probeSandboxExec(): boolean;
23
23
  */
24
24
  export declare const _internals: {
25
25
  probeSandboxExec: typeof probeSandboxExec;
26
+ buildSandboxProfile: typeof buildSandboxProfile;
26
27
  };
28
+ /**
29
+ * Build a sandbox-exec profile string for the given scope paths, temp dir, and optional env overrides.
30
+ */
31
+ declare function buildSandboxProfile(scopePaths: string[], tempDir: string, envOverrides?: Record<string, string | null>): string;
27
32
  /**
28
33
  * macOS sandbox-exec sandbox executor.
29
34
  */
@@ -25,6 +25,10 @@ export interface PhaseCompleteArgs {
25
25
  callerAgent?: string;
26
26
  }
27
27
  export declare const MAX_OUTPUT_BYTES = 512000;
28
+ declare function allCompletedTasksHavePassedGateEvidence(directory: string, tasks: Array<{
29
+ id: string;
30
+ status: string;
31
+ }>): Promise<boolean>;
28
32
  /**
29
33
  * Execute the phase_complete tool
30
34
  * Gathers data, enforces policy, writes event, resets state
@@ -47,3 +51,7 @@ export declare function _buildOutputJson(outputData: {
47
51
  * Tool definition for phase_complete
48
52
  */
49
53
  export declare const phase_complete: ToolDefinition;
54
+ export declare const _test_exports: {
55
+ allCompletedTasksHavePassedGateEvidence: typeof allCompletedTasksHavePassedGateEvidence;
56
+ };
57
+ export {};
@@ -29,6 +29,8 @@ export interface SastScanInput {
29
29
  export interface SastScanResult {
30
30
  /** Overall verdict: pass if no findings above threshold, fail otherwise */
31
31
  verdict: EvidenceVerdict;
32
+ /** Validation error when the requested scan cannot safely run */
33
+ error?: string;
32
34
  /** Array of security findings */
33
35
  findings: SastScanFinding[];
34
36
  /** Summary information */
@@ -165,7 +165,7 @@ export declare const TOOL_METADATA: {
165
165
  };
166
166
  extract_code_blocks: {
167
167
  description: string;
168
- agents: ("reviewer" | "test_engineer" | "coder" | "docs" | "designer" | "explorer" | "sme" | "architect" | "docs_design" | "spec_writer")[];
168
+ agents: ("test_engineer" | "coder" | "docs" | "designer" | "docs_design" | "spec_writer")[];
169
169
  };
170
170
  phase_complete: {
171
171
  description: string;
@@ -34,6 +34,32 @@ export declare function validateDirectory(directory: string): void;
34
34
  * @throws Error if the resolved target escapes the root boundary
35
35
  */
36
36
  export declare function validateSymlinkBoundary(targetPath: string, rootPath: string): void;
37
+ /**
38
+ * Verify that a target path canonically resolves inside a root directory.
39
+ * For targets that do not exist yet (e.g. new-file creation), resolves the
40
+ * nearest existing ancestor instead, so a symlinked intermediate directory
41
+ * cannot be used to escape the root. Mirrors the containment used by
42
+ * swarm_apply_patch (the correct template for write tools).
43
+ *
44
+ * @param targetPath - absolute path to validate
45
+ * @param rootPath - absolute root boundary
46
+ * @returns true if the canonical target is within the canonical root
47
+ */
48
+ export declare function isCanonicalPathWithinRoot(targetPath: string, rootPath: string): boolean;
49
+ /**
50
+ * Validate that a caller-supplied path stays within an allowed root directory.
51
+ * Rejects empty paths, absolute paths (POSIX + Windows drive), traversal,
52
+ * control characters, lexical escape, and symlink/junction escape.
53
+ * Returns a human-readable reason string on rejection, or null when valid.
54
+ *
55
+ * This is the shared containment primitive for write-capable tools whose
56
+ * target path is derived from untrusted input (e.g. extract_code_blocks'
57
+ * output_dir and `# filename:` comments).
58
+ *
59
+ * @param filePath - the caller-supplied path (relative to root, or absolute-rejected)
60
+ * @param root - the absolute root boundary (workspace directory)
61
+ */
62
+ export declare function validateTargetWithinRoot(filePath: string, root: string): string | null;
37
63
  /**
38
64
  * DI seam for testability. Contains all test-mocked exports.
39
65
  * Internal calls should use _internals.fn() instead of fn() directly.
@@ -43,4 +69,6 @@ export declare const _internals: {
43
69
  containsControlChars: typeof containsControlChars;
44
70
  validateDirectory: typeof validateDirectory;
45
71
  validateSymlinkBoundary: typeof validateSymlinkBoundary;
72
+ isCanonicalPathWithinRoot: typeof isCanonicalPathWithinRoot;
73
+ validateTargetWithinRoot: typeof validateTargetWithinRoot;
46
74
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.113.1",
3
+ "version": "7.113.3",
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",
@@ -40,6 +40,7 @@
40
40
  "files": [
41
41
  "dist",
42
42
  "dist/lang/grammars",
43
+ "binaries",
43
44
  ".opencode/skills/brainstorm",
44
45
  ".opencode/skills/specify",
45
46
  ".opencode/skills/clarify-spec",
@@ -1,40 +0,0 @@
1
- // @bun
2
- import {
3
- createCuratorLLMDelegate
4
- } from "./index-npd9rypp.js";
5
- import"./index-8f256d7t.js";
6
- import"./index-c8s9a3zh.js";
7
- import"./index-0gf6de8b.js";
8
- import"./index-1ey3dxq7.js";
9
- import"./index-d0w40jm3.js";
10
- import"./index-scww5b77.js";
11
- import"./index-9fxs0rm1.js";
12
- import"./index-q1jaeynn.js";
13
- import"./index-h389ed8y.js";
14
- import"./index-30ejh1tx.js";
15
- import"./index-t6wfwdm1.js";
16
- import"./index-hpp2r0sd.js";
17
- import"./index-32bx4kch.js";
18
- import"./index-bfwt3abw.js";
19
- import"./index-db1fh1fv.js";
20
- import"./index-jt58s751.js";
21
- import"./index-wvrj16f0.js";
22
- import"./index-q1exe2b3.js";
23
- import"./index-g55nzpwn.js";
24
- import"./index-fhmw7evd.js";
25
- import"./index-1rga1vvb.js";
26
- import"./index-jtqkh8jf.js";
27
- import"./index-5e4e2hvv.js";
28
- import"./index-p0arc26j.js";
29
- import"./index-zgwm4ryv.js";
30
- import"./index-pm992z24.js";
31
- import"./index-0dab9w37.js";
32
- import"./index-293f68mj.js";
33
- import"./index-5mkc2f9z.js";
34
- import"./index-vn263hqt.js";
35
- import"./index-vvk2g744.js";
36
- import"./index-h91bv3hy.js";
37
- import"./index-a76rekgs.js";
38
- export {
39
- createCuratorLLMDelegate
40
- };
@@ -1,41 +0,0 @@
1
- // @bun
2
- import {
3
- handleGuardrailExplain
4
- } from "./index-ky8eb4q6.js";
5
- import"./index-npd9rypp.js";
6
- import"./index-8f256d7t.js";
7
- import"./index-c8s9a3zh.js";
8
- import"./index-0gf6de8b.js";
9
- import"./index-1ey3dxq7.js";
10
- import"./index-d0w40jm3.js";
11
- import"./index-scww5b77.js";
12
- import"./index-9fxs0rm1.js";
13
- import"./index-q1jaeynn.js";
14
- import"./index-h389ed8y.js";
15
- import"./index-30ejh1tx.js";
16
- import"./index-t6wfwdm1.js";
17
- import"./index-hpp2r0sd.js";
18
- import"./index-32bx4kch.js";
19
- import"./index-bfwt3abw.js";
20
- import"./index-db1fh1fv.js";
21
- import"./index-jt58s751.js";
22
- import"./index-wvrj16f0.js";
23
- import"./index-q1exe2b3.js";
24
- import"./index-g55nzpwn.js";
25
- import"./index-fhmw7evd.js";
26
- import"./index-1rga1vvb.js";
27
- import"./index-jtqkh8jf.js";
28
- import"./index-5e4e2hvv.js";
29
- import"./index-p0arc26j.js";
30
- import"./index-zgwm4ryv.js";
31
- import"./index-pm992z24.js";
32
- import"./index-0dab9w37.js";
33
- import"./index-293f68mj.js";
34
- import"./index-5mkc2f9z.js";
35
- import"./index-vn263hqt.js";
36
- import"./index-vvk2g744.js";
37
- import"./index-h91bv3hy.js";
38
- import"./index-a76rekgs.js";
39
- export {
40
- handleGuardrailExplain
41
- };
@@ -1,48 +0,0 @@
1
- // @bun
2
- import {
3
- checkHivePromotions,
4
- createHivePromoterHook,
5
- isHiveEligible,
6
- promoteFromSwarm,
7
- promoteToHive
8
- } from "./index-npd9rypp.js";
9
- import"./index-8f256d7t.js";
10
- import"./index-c8s9a3zh.js";
11
- import"./index-0gf6de8b.js";
12
- import"./index-1ey3dxq7.js";
13
- import"./index-d0w40jm3.js";
14
- import"./index-scww5b77.js";
15
- import"./index-9fxs0rm1.js";
16
- import"./index-q1jaeynn.js";
17
- import"./index-h389ed8y.js";
18
- import"./index-30ejh1tx.js";
19
- import"./index-t6wfwdm1.js";
20
- import"./index-hpp2r0sd.js";
21
- import"./index-32bx4kch.js";
22
- import"./index-bfwt3abw.js";
23
- import"./index-db1fh1fv.js";
24
- import"./index-jt58s751.js";
25
- import"./index-wvrj16f0.js";
26
- import"./index-q1exe2b3.js";
27
- import"./index-g55nzpwn.js";
28
- import"./index-fhmw7evd.js";
29
- import"./index-1rga1vvb.js";
30
- import"./index-jtqkh8jf.js";
31
- import"./index-5e4e2hvv.js";
32
- import"./index-p0arc26j.js";
33
- import"./index-zgwm4ryv.js";
34
- import"./index-pm992z24.js";
35
- import"./index-0dab9w37.js";
36
- import"./index-293f68mj.js";
37
- import"./index-5mkc2f9z.js";
38
- import"./index-vn263hqt.js";
39
- import"./index-vvk2g744.js";
40
- import"./index-h91bv3hy.js";
41
- import"./index-a76rekgs.js";
42
- export {
43
- promoteToHive,
44
- promoteFromSwarm,
45
- isHiveEligible,
46
- createHivePromoterHook,
47
- checkHivePromotions
48
- };