opencode-swarm 7.25.0 → 7.25.1
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/dist/cli/index.js +1 -1
- package/dist/index.js +46 -3
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -34,7 +34,7 @@ var package_default;
|
|
|
34
34
|
var init_package = __esm(() => {
|
|
35
35
|
package_default = {
|
|
36
36
|
name: "opencode-swarm",
|
|
37
|
-
version: "7.25.
|
|
37
|
+
version: "7.25.1",
|
|
38
38
|
description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
|
|
39
39
|
main: "dist/index.js",
|
|
40
40
|
types: "dist/index.d.ts",
|
package/dist/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var package_default;
|
|
|
33
33
|
var init_package = __esm(() => {
|
|
34
34
|
package_default = {
|
|
35
35
|
name: "opencode-swarm",
|
|
36
|
-
version: "7.25.
|
|
36
|
+
version: "7.25.1",
|
|
37
37
|
description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
|
|
38
38
|
main: "dist/index.js",
|
|
39
39
|
types: "dist/index.d.ts",
|
|
@@ -104289,6 +104289,23 @@ function checkReviewerGate(taskId, workingDirectory, stageBParallelEnabled = fal
|
|
|
104289
104289
|
if (hasReviewer && hasTestEngineer) {
|
|
104290
104290
|
return { blocked: false, reason: "" };
|
|
104291
104291
|
}
|
|
104292
|
+
if (!evidenceIncompleteReason && (!hasReviewer || !hasTestEngineer)) {
|
|
104293
|
+
for (const [, chain] of swarmState.delegationChains) {
|
|
104294
|
+
const hasCoder = chain.some((d) => stripKnownSwarmPrefix(d.to) === "coder");
|
|
104295
|
+
if (hasCoder)
|
|
104296
|
+
continue;
|
|
104297
|
+
for (const delegation of chain) {
|
|
104298
|
+
const target = stripKnownSwarmPrefix(delegation.to);
|
|
104299
|
+
if (target === "reviewer")
|
|
104300
|
+
hasReviewer = true;
|
|
104301
|
+
if (target === "test_engineer")
|
|
104302
|
+
hasTestEngineer = true;
|
|
104303
|
+
}
|
|
104304
|
+
}
|
|
104305
|
+
if (hasReviewer && hasTestEngineer) {
|
|
104306
|
+
return { blocked: false, reason: "" };
|
|
104307
|
+
}
|
|
104308
|
+
}
|
|
104292
104309
|
}
|
|
104293
104310
|
const currentStateStr = stateEntries.length > 0 ? stateEntries.join(", ") : "no active sessions";
|
|
104294
104311
|
const chainEntries = [];
|
|
@@ -104348,6 +104365,32 @@ function recoverTaskStateFromDelegations(taskId, directory) {
|
|
|
104348
104365
|
}
|
|
104349
104366
|
}
|
|
104350
104367
|
}
|
|
104368
|
+
let hasDurableIncompleteGates = false;
|
|
104369
|
+
if (directory) {
|
|
104370
|
+
try {
|
|
104371
|
+
const taskEvidence = readTaskEvidenceRaw(directory, taskId);
|
|
104372
|
+
if (taskEvidence?.gates && Array.isArray(taskEvidence.required_gates) && taskEvidence.required_gates.length > 0) {
|
|
104373
|
+
const gates = taskEvidence.gates;
|
|
104374
|
+
hasDurableIncompleteGates = taskEvidence.required_gates.some((g) => gates[g] == null);
|
|
104375
|
+
}
|
|
104376
|
+
} catch {
|
|
104377
|
+
hasDurableIncompleteGates = true;
|
|
104378
|
+
}
|
|
104379
|
+
}
|
|
104380
|
+
if (!hasDurableIncompleteGates && (!hasReviewer || !hasTestEngineer)) {
|
|
104381
|
+
for (const [, chain] of swarmState.delegationChains) {
|
|
104382
|
+
const hasCoder = chain.some((d) => stripKnownSwarmPrefix(d.to) === "coder");
|
|
104383
|
+
if (hasCoder)
|
|
104384
|
+
continue;
|
|
104385
|
+
for (const delegation of chain) {
|
|
104386
|
+
const target = stripKnownSwarmPrefix(delegation.to);
|
|
104387
|
+
if (target === "reviewer")
|
|
104388
|
+
hasReviewer = true;
|
|
104389
|
+
if (target === "test_engineer")
|
|
104390
|
+
hasTestEngineer = true;
|
|
104391
|
+
}
|
|
104392
|
+
}
|
|
104393
|
+
}
|
|
104351
104394
|
if ((!hasReviewer || !hasTestEngineer) && directory) {
|
|
104352
104395
|
try {
|
|
104353
104396
|
const evidence = readTaskEvidenceRaw(directory, taskId);
|
|
@@ -104494,7 +104537,7 @@ async function executeUpdateTaskStatus(args2, fallbackDir, ctx) {
|
|
|
104494
104537
|
try {
|
|
104495
104538
|
fs107.writeSync(fd, JSON.stringify({
|
|
104496
104539
|
taskId: args2.task_id,
|
|
104497
|
-
required_gates: [
|
|
104540
|
+
required_gates: [],
|
|
104498
104541
|
gates: {}
|
|
104499
104542
|
}, null, 2));
|
|
104500
104543
|
writeOk = true;
|
|
@@ -104525,7 +104568,7 @@ async function executeUpdateTaskStatus(args2, fallbackDir, ctx) {
|
|
|
104525
104568
|
if (reviewerCheck.blocked) {
|
|
104526
104569
|
return {
|
|
104527
104570
|
success: false,
|
|
104528
|
-
message: "Gate check failed:
|
|
104571
|
+
message: "Gate check failed: required QA gates not yet satisfied for task " + args2.task_id,
|
|
104529
104572
|
errors: [reviewerCheck.reason]
|
|
104530
104573
|
};
|
|
104531
104574
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-swarm",
|
|
3
|
-
"version": "7.25.
|
|
3
|
+
"version": "7.25.1",
|
|
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",
|