opencode-swarm 7.126.2 → 7.126.4

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 (49) hide show
  1. package/.opencode/skills/engineering-conventions/SKILL.md +1 -1
  2. package/.opencode/skills/issue-tracer/scripts/trace-init.sh +20 -0
  3. package/.opencode/skills/swarm-pr-feedback/SKILL.md +14 -3
  4. package/.opencode/skills/swarm-pr-review/SKILL.md +28 -7
  5. package/dist/background/pr-event-delivery.d.ts +1 -1
  6. package/dist/cli/{config-doctor-mfx27331.js → config-doctor-2admdwc2.js} +2 -2
  7. package/dist/cli/{curation-policy-n944aq62.js → curation-policy-s2wydhda.js} +2 -2
  8. package/dist/cli/{curator-qfh9xty4.js → curator-4tp297kp.js} +12 -12
  9. package/dist/cli/{curator-llm-factory-0rf29gfq.js → curator-llm-factory-caf8jqyb.js} +12 -12
  10. package/dist/cli/{guardrail-explain-jsrjqps1.js → guardrail-explain-yjzbs0fq.js} +13 -13
  11. package/dist/cli/{guardrail-log-61gya05m.js → guardrail-log-7cychbgs.js} +3 -3
  12. package/dist/cli/{hive-promoter-ktt17fyf.js → hive-promoter-er83aqka.js} +12 -12
  13. package/dist/cli/{index-nqp13m5a.js → index-360anpk0.js} +1 -1
  14. package/dist/cli/{index-5nq8dp63.js → index-46xgqgd5.js} +14 -14
  15. package/dist/cli/{index-gwss5btk.js → index-4scxzpbz.js} +1 -1
  16. package/dist/cli/{index-c48dvb6j.js → index-6mfcg9ws.js} +2 -2
  17. package/dist/cli/{index-vcqwhe9d.js → index-7ttstfv6.js} +25 -3
  18. package/dist/cli/{index-bf76q8q7.js → index-8etcyr9r.js} +1 -1
  19. package/dist/cli/{index-3xd9a2g7.js → index-cpssctv1.js} +1 -1
  20. package/dist/cli/{index-z8ftpav0.js → index-cxtnbjwn.js} +2 -2
  21. package/dist/cli/{index-pb8ag9vg.js → index-mgdcrhkg.js} +4 -4
  22. package/dist/cli/{index-pf3xae4s.js → index-r3f1z043.js} +1 -1
  23. package/dist/cli/{index-88dt7c9z.js → index-swgsq1ds.js} +2 -2
  24. package/dist/cli/{index-gf9cxvp0.js → index-v3gw3sc5.js} +1 -1
  25. package/dist/cli/{index-gxw20m1d.js → index-v4n224r1.js} +1 -1
  26. package/dist/cli/{index-f97dm6tz.js → index-vbk29hmf.js} +5 -5
  27. package/dist/cli/{index-7bxw3v5w.js → index-ypy3dhbg.js} +3 -3
  28. package/dist/cli/{index-d88y17ht.js → index-yvgmsepb.js} +155 -130
  29. package/dist/cli/index.js +12 -12
  30. package/dist/cli/{knowledge-escalator-nna0zec3.js → knowledge-escalator-9sd533p6.js} +3 -3
  31. package/dist/cli/{knowledge-events-7k82xk36.js → knowledge-events-v0cp1a8d.js} +1 -1
  32. package/dist/cli/{knowledge-store-efvtng9t.js → knowledge-store-mv7qjf4s.js} +1 -1
  33. package/dist/cli/{knowledge-validator-jh93eagj.js → knowledge-validator-g05g6qrt.js} +4 -4
  34. package/dist/cli/{scan-cursor-cydz8d9q.js → scan-cursor-jp2zz6y1.js} +2 -2
  35. package/dist/cli/{schema-fa033pqw.js → schema-2x7wsb0n.js} +1 -1
  36. package/dist/cli/{skill-generator-8v463kj7.js → skill-generator-497vvped.js} +5 -5
  37. package/dist/config/bundled-skills.d.ts +3 -2
  38. package/dist/config/schema.d.ts +4 -4
  39. package/dist/hooks/init-orphan-recovery.d.ts +1 -1
  40. package/dist/hooks/pr-workflow-auto-wake.d.ts +31 -0
  41. package/dist/hooks/pr-workflow-gate.d.ts +1 -1
  42. package/dist/hooks/pr-workflow-response-gate.d.ts +4 -0
  43. package/dist/index.d.ts +14 -0
  44. package/dist/index.js +289 -289
  45. package/dist/tools/repo-graph/builder.d.ts +5 -4
  46. package/dist/tools/test-runner.d.ts +12 -2
  47. package/dist/utils/path-security.d.ts +2 -0
  48. package/dist/utils/timeout.d.ts +8 -4
  49. package/package.json +1 -1
@@ -16,12 +16,13 @@ import { extractFileOntology } from './ontology';
16
16
  import { safeRealpathSync } from './safe-realpath';
17
17
  import type { BuildWorkspaceGraphOptions, GraphEdge, GraphNode, RepoGraph, RepoGraphDiagnostics, SymbolEdge } from './types';
18
18
  /**
19
- * _internals DI seam for safeRealpathSync.
20
- * Defaults to the real implementation. Tests can override this to inject
21
- * mock behavior without calling mock.module(...) which leaks across test files
22
- * in Bun's shared test-runner process.
19
+ * _internals DI seam for the walk clock and graph helpers.
20
+ * Defaults to the real implementations. Tests can override these to inject
21
+ * deterministic behavior without calling mock.module(...) which leaks across
22
+ * test files in Bun's shared test-runner process.
23
23
  */
24
24
  export declare const _internals: {
25
+ now: () => number;
25
26
  safeRealpathSync: typeof safeRealpathSync;
26
27
  extractTSSymbols: typeof extractTSSymbols;
27
28
  extractPythonSymbols: typeof extractPythonSymbols;
@@ -1,4 +1,7 @@
1
+ import * as fs from 'node:fs';
1
2
  import type { tool } from '@opencode-ai/plugin';
3
+ import { isCommandAvailable } from '../build/discovery';
4
+ import { analyzeImpact, loadImpactMap } from '../test-impact/analyzer.js';
2
5
  import { getAllHistory, type TestRunRecord } from '../test-impact/history-store.js';
3
6
  export declare const MAX_OUTPUT_BYTES = 512000;
4
7
  export declare const MAX_COMMAND_LENGTH = 500;
@@ -41,6 +44,7 @@ export interface ParsedTestCaseResult {
41
44
  errorMessage?: string;
42
45
  stackPrefix?: string;
43
46
  }
47
+ declare const AGGREGATE_TEST_NAME = "(aggregate)";
44
48
  export interface TestSuccessResult {
45
49
  success: true;
46
50
  framework: TestFramework;
@@ -147,7 +151,13 @@ export declare function runTests(framework: TestFramework, scope: 'all' | 'conve
147
151
  declare function selectHistoryForAnalysis(history: ReturnType<typeof getAllHistory>): TestRunRecord[];
148
152
  export declare const test_runner: ReturnType<typeof tool>;
149
153
  export declare const _internals: {
150
- readonly selectHistoryForAnalysis: typeof selectHistoryForAnalysis;
151
- readonly AGGREGATE_TEST_NAME: "(aggregate)";
154
+ analyzeImpact: typeof analyzeImpact;
155
+ loadImpactMap: typeof loadImpactMap;
156
+ isCommandAvailable: typeof isCommandAvailable;
157
+ existsSync: typeof fs.existsSync;
158
+ readdirSync: typeof fs.readdirSync;
159
+ readFileSync: typeof fs.readFileSync;
160
+ selectHistoryForAnalysis: typeof selectHistoryForAnalysis;
161
+ AGGREGATE_TEST_NAME: typeof AGGREGATE_TEST_NAME;
152
162
  };
153
163
  export {};
@@ -1,3 +1,4 @@
1
+ import * as fs from 'node:fs';
1
2
  /**
2
3
  * Canonical path security utilities.
3
4
  * Consolidated from 6+ local implementations across the codebase.
@@ -78,6 +79,7 @@ export declare function validateTargetWithinRoot(filePath: string, root: string)
78
79
  * Internal calls should use _internals.fn() instead of fn() directly.
79
80
  */
80
81
  export declare const _internals: {
82
+ realpathSync: typeof fs.realpathSync;
81
83
  containsPathTraversal: typeof containsPathTraversal;
82
84
  containsControlChars: typeof containsControlChars;
83
85
  validateDirectory: typeof validateDirectory;
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * Timeout primitives used by the plugin init path.
3
3
  *
4
- * Hard rule: every timer scheduled here must call `unref()` so it never holds
5
- * the process open, and every Promise.race must clear the timer in `finally`
6
- * so it does not leak the timer reference after the racer settles.
4
+ * Deadline timers must call `unref()` and every Promise.race must clear its
5
+ * timer in `finally`, so timeouts never pin or leak a process handle. Awaited
6
+ * cooperative-yield timers are deliberately ref'ed: unref'ing the only handle
7
+ * can strand their caller before the awaited promise resolves.
7
8
  */
8
9
  /**
9
10
  * Race a promise against a timeout. The timer is cleared in `finally` so the
@@ -18,6 +19,9 @@
18
19
  export declare function withTimeout<T>(promise: Promise<T>, ms: number, timeoutError: Error): Promise<T>;
19
20
  /**
20
21
  * Yield to the macrotask queue. Works under both Node and Bun runtimes,
21
- * unlike `setImmediate` which is Node-only.
22
+ * unlike `setImmediate` which is Node-only. The timer intentionally remains
23
+ * ref'ed: callers await this promise, so unref'ing its only handle can strand a
24
+ * direct async caller when no unrelated host handle is active. Detached startup
25
+ * work is made non-pinning at its outer scheduling boundary instead.
22
26
  */
23
27
  export declare function yieldToEventLoop(): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.126.2",
3
+ "version": "7.126.4",
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",