opencode-swarm 7.127.0 → 7.128.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.
- package/.opencode/skills/swarm-pr-feedback/SKILL.md +2 -2
- package/.opencode/skills/swarm-pr-review/SKILL.md +3 -2
- package/dist/cli/{curator-llm-factory-xmwgrfr0.js → curator-llm-factory-rz4cbq28.js} +1 -1
- package/dist/cli/{curator-x0sqv6ye.js → curator-x5dzf1p7.js} +1 -1
- package/dist/cli/{guardrail-explain-g3tgjv9a.js → guardrail-explain-fwvxteqe.js} +2 -2
- package/dist/cli/{hive-promoter-d11sk30x.js → hive-promoter-z8gc80zq.js} +1 -1
- package/dist/cli/{index-hjkczwqm.js → index-nmedh7bw.js} +2 -2
- package/dist/cli/{index-fcsnw12w.js → index-npycj2tr.js} +9 -9
- package/dist/cli/{index-xq0etzbh.js → index-rczj39pc.js} +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/hooks/auto-review.d.ts +9 -1
- package/dist/hooks/pr-workflow-response-gate.d.ts +7 -5
- package/dist/index.js +18 -16
- package/dist/turbo/lean/integration.d.ts +2 -1
- package/dist/utils/inline-fallback-advancer.d.ts +75 -0
- package/package.json +1 -1
|
@@ -810,8 +810,8 @@ tool clears the durable session gate only when the content digest still equals
|
|
|
810
810
|
the independently approved digest, the exact approved commit remains current,
|
|
811
811
|
its bound upstream remote-tracking ref points to that exact commit, every
|
|
812
812
|
feedback ID has exact-provenance evidence, and no PR-workflow lanes remain
|
|
813
|
-
open. While the gate remains active, the runtime
|
|
814
|
-
|
|
813
|
+
open. While the gate remains active, the runtime prepends a workflow-active
|
|
814
|
+
banner to architect text (the model's text is preserved below it) and normally re-wakes an
|
|
815
815
|
idle parent session. A user interruption pauses automatic wakes until a later
|
|
816
816
|
explicit user turn settles; the durable gate remains available to continue or
|
|
817
817
|
abort.
|
|
@@ -1631,8 +1631,9 @@ before emitting the user-facing final report, call `complete_pr_workflow` with
|
|
|
1631
1631
|
mode `PR_REVIEW` and the same exact
|
|
1632
1632
|
`pr_head_sha`. The tool refuses to clear the session gate while required base,
|
|
1633
1633
|
trigger, declared reviewer/critic, or open-lane obligations remain incomplete.
|
|
1634
|
-
While the gate remains active, the runtime
|
|
1635
|
-
|
|
1634
|
+
While the gate remains active, the runtime prepends a workflow-active banner
|
|
1635
|
+
to architect text parts (the model's text is preserved below the banner) and
|
|
1636
|
+
re-wakes an idle parent session. A
|
|
1636
1637
|
user interruption pauses every automatic wake path until a later explicit user
|
|
1637
1638
|
turn settles; the durable gate remains available to continue or abort. Only
|
|
1638
1639
|
emit the final report after the completion tool confirms that the gate cleared.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailExplain
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
4
|
+
} from "./index-rczj39pc.js";
|
|
5
|
+
import"./index-npycj2tr.js";
|
|
6
6
|
import"./index-v4n224r1.js";
|
|
7
7
|
import"./index-cpssctv1.js";
|
|
8
8
|
import"./index-kk1scggc.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailExplain
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-rczj39pc.js";
|
|
5
5
|
import {
|
|
6
6
|
handleGuardrailLog
|
|
7
7
|
} from "./index-8etcyr9r.js";
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
handleWriteRetroCommand,
|
|
84
84
|
normalizeSwarmCommandInput,
|
|
85
85
|
resolveCommand
|
|
86
|
-
} from "./index-
|
|
86
|
+
} from "./index-npycj2tr.js";
|
|
87
87
|
import"./index-v4n224r1.js";
|
|
88
88
|
import"./index-cpssctv1.js";
|
|
89
89
|
import"./index-kk1scggc.js";
|
|
@@ -12305,11 +12305,11 @@ var _internals15 = {
|
|
|
12305
12305
|
}
|
|
12306
12306
|
},
|
|
12307
12307
|
applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
|
|
12308
|
-
const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-
|
|
12308
|
+
const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-x5dzf1p7.js");
|
|
12309
12309
|
return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
|
|
12310
12310
|
},
|
|
12311
12311
|
checkHivePromotions: async (entries, knowledgeConfig, directory) => {
|
|
12312
|
-
const { checkHivePromotions } = await import("./hive-promoter-
|
|
12312
|
+
const { checkHivePromotions } = await import("./hive-promoter-z8gc80zq.js");
|
|
12313
12313
|
return checkHivePromotions(entries, knowledgeConfig, directory);
|
|
12314
12314
|
},
|
|
12315
12315
|
applyProposalTriage: async (directory, triage) => {
|
|
@@ -20176,8 +20176,8 @@ var _internals28 = {
|
|
|
20176
20176
|
loadCuratorDeps: async () => {
|
|
20177
20177
|
const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
|
|
20178
20178
|
import("./schema-2x7wsb0n.js"),
|
|
20179
|
-
import("./curator-
|
|
20180
|
-
import("./curator-llm-factory-
|
|
20179
|
+
import("./curator-x5dzf1p7.js"),
|
|
20180
|
+
import("./curator-llm-factory-rz4cbq28.js")
|
|
20181
20181
|
]);
|
|
20182
20182
|
return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
|
|
20183
20183
|
}
|
|
@@ -20676,7 +20676,7 @@ import { fileURLToPath } from "url";
|
|
|
20676
20676
|
// package.json
|
|
20677
20677
|
var package_default = {
|
|
20678
20678
|
name: "opencode-swarm",
|
|
20679
|
-
version: "7.
|
|
20679
|
+
version: "7.128.0",
|
|
20680
20680
|
description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
|
|
20681
20681
|
main: "dist/index.js",
|
|
20682
20682
|
types: "dist/index.d.ts",
|
|
@@ -41238,7 +41238,7 @@ function buildDetailedHelp(commandName, entry) {
|
|
|
41238
41238
|
async function handleHelpCommand(ctx) {
|
|
41239
41239
|
const targetCommand = ctx.args.join(" ");
|
|
41240
41240
|
if (!targetCommand) {
|
|
41241
|
-
const { buildHelpText } = await import("./index-
|
|
41241
|
+
const { buildHelpText } = await import("./index-nmedh7bw.js");
|
|
41242
41242
|
return buildHelpText();
|
|
41243
41243
|
}
|
|
41244
41244
|
const tokens = targetCommand.split(/\s+/);
|
|
@@ -41247,7 +41247,7 @@ async function handleHelpCommand(ctx) {
|
|
|
41247
41247
|
return _internals63.buildDetailedHelp(resolved.key, resolved.entry);
|
|
41248
41248
|
}
|
|
41249
41249
|
const similar = _internals63.findSimilarCommands(targetCommand);
|
|
41250
|
-
const { buildHelpText: fullHelp } = await import("./index-
|
|
41250
|
+
const { buildHelpText: fullHelp } = await import("./index-nmedh7bw.js");
|
|
41251
41251
|
if (similar.length > 0) {
|
|
41252
41252
|
return `Command '/swarm ${targetCommand}' not found.
|
|
41253
41253
|
|
|
@@ -41386,7 +41386,7 @@ var COMMAND_REGISTRY = {
|
|
|
41386
41386
|
},
|
|
41387
41387
|
"guardrail explain": {
|
|
41388
41388
|
handler: async (ctx) => {
|
|
41389
|
-
const { handleGuardrailExplain } = await import("./guardrail-explain-
|
|
41389
|
+
const { handleGuardrailExplain } = await import("./guardrail-explain-fwvxteqe.js");
|
|
41390
41390
|
return handleGuardrailExplain(ctx.directory, ctx.args);
|
|
41391
41391
|
},
|
|
41392
41392
|
description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
|
|
@@ -41396,7 +41396,7 @@ var COMMAND_REGISTRY = {
|
|
|
41396
41396
|
},
|
|
41397
41397
|
"guardrail-explain": {
|
|
41398
41398
|
handler: async (ctx) => {
|
|
41399
|
-
const { handleGuardrailExplain } = await import("./guardrail-explain-
|
|
41399
|
+
const { handleGuardrailExplain } = await import("./guardrail-explain-fwvxteqe.js");
|
|
41400
41400
|
return handleGuardrailExplain(ctx.directory, ctx.args);
|
|
41401
41401
|
},
|
|
41402
41402
|
description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
|
package/dist/cli/index.js
CHANGED
|
@@ -21,8 +21,16 @@
|
|
|
21
21
|
* Bounds (AGENTS.md invariants 3 and 8): the diff subprocess uses execFile
|
|
22
22
|
* with cwd/timeout/maxBuffer and ignored stdin; dispatches are guarded by a
|
|
23
23
|
* per-session in-flight set plus a 60s cooldown in a bounded FIFO map.
|
|
24
|
+
*
|
|
25
|
+
* #1896 / #1905: on a transient/quota dispatch error the reviewer fails over to
|
|
26
|
+
* a configured `fallback_models` entry via the shared `dispatchWithModelFallback`
|
|
27
|
+
* helper, instead of immediately writing a `verdict: 'error'` event (a quota
|
|
28
|
+
* blip previously dropped the review pass with no recovery). The SDK error
|
|
29
|
+
* envelope is preserved in the thrown message so the classifier sees the quota
|
|
30
|
+
* token on the dominant SDK error shape.
|
|
24
31
|
*/
|
|
25
32
|
import { type AutoReviewConfig } from '../config/schema.js';
|
|
33
|
+
import { type ModelOverride } from '../utils/model-dispatch-fallback.js';
|
|
26
34
|
/** Test-only: clear module-level dispatch tracking. */
|
|
27
35
|
export declare function resetAutoReviewTracking(): void;
|
|
28
36
|
export type ExecutionDiffResult = {
|
|
@@ -42,7 +50,7 @@ export type ExecutionDiffResult = {
|
|
|
42
50
|
* `maxBytes`.
|
|
43
51
|
*/
|
|
44
52
|
declare function computeExecutionDiff(directory: string, maxBytes: number): Promise<ExecutionDiffResult>;
|
|
45
|
-
declare function dispatchReviewer(directory: string, prompt: string, agentName: string, timeoutMs: number, parentSessionId: string): Promise<string>;
|
|
53
|
+
declare function dispatchReviewer(directory: string, prompt: string, agentName: string, timeoutMs: number, parentSessionId: string, model?: ModelOverride): Promise<string>;
|
|
46
54
|
export interface AutoReviewRunInput {
|
|
47
55
|
directory: string;
|
|
48
56
|
sessionID: string;
|
|
@@ -40,14 +40,16 @@ interface WakeBudget {
|
|
|
40
40
|
suspended: boolean;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
* Prevent an architect from
|
|
44
|
-
* The text-complete hook
|
|
45
|
-
* durable gate exists;
|
|
43
|
+
* Prevent an architect from masquerading a premature text output as a terminal
|
|
44
|
+
* verdict. The text-complete hook prepends a workflow-active banner to every
|
|
45
|
+
* architect-session text part while the durable gate exists; the model's
|
|
46
|
+
* original text is preserved below the banner. session.idle then mechanically
|
|
47
|
+
* resumes that session.
|
|
46
48
|
*
|
|
47
49
|
* The resume loop is bounded (see DEFAULT_MAX_CONSECUTIVE_UNPRODUCTIVE_WAKES)
|
|
48
50
|
* so a session that cannot make progress suspends instead of spinning
|
|
49
|
-
* forever.
|
|
50
|
-
* user-visible surface always names the recovery path.
|
|
51
|
+
* forever. The banner always carries suspension/interruption recovery notices
|
|
52
|
+
* so the user-visible surface always names the recovery path.
|
|
51
53
|
*/
|
|
52
54
|
export declare function createPrWorkflowResponseGate(options: {
|
|
53
55
|
directory: string;
|