opencode-swarm 7.56.2 → 7.56.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.
package/dist/cli/index.js CHANGED
@@ -52,7 +52,7 @@ var package_default;
52
52
  var init_package = __esm(() => {
53
53
  package_default = {
54
54
  name: "opencode-swarm",
55
- version: "7.56.2",
55
+ version: "7.56.3",
56
56
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
57
57
  main: "dist/index.js",
58
58
  types: "dist/index.d.ts",
package/dist/index.js CHANGED
@@ -69,7 +69,7 @@ var package_default;
69
69
  var init_package = __esm(() => {
70
70
  package_default = {
71
71
  name: "opencode-swarm",
72
- version: "7.56.2",
72
+ version: "7.56.3",
73
73
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
74
74
  main: "dist/index.js",
75
75
  types: "dist/index.d.ts",
@@ -118287,6 +118287,7 @@ import * as path143 from "node:path";
118287
118287
  async function runFinalCouncilGate(ctx) {
118288
118288
  const { phase, dir, sessionID, agentsDispatched, safeWarn } = ctx;
118289
118289
  let finalCouncilEnabled = false;
118290
+ const gateWarnings = [];
118290
118291
  try {
118291
118292
  const plan = await loadPlan(dir);
118292
118293
  if (plan) {
@@ -118374,11 +118375,17 @@ async function runFinalCouncilGate(ctx) {
118374
118375
  warnings: []
118375
118376
  };
118376
118377
  }
118377
- if (entry.verdict !== "approved" && entry.verdict !== "APPROVED") {
118378
+ if (entry.verdict === "concerns" || entry.verdict === "CONCERNS") {
118379
+ const advisoryNotes = Array.isArray(entry.advisoryNotes) ? entry.advisoryNotes.filter((note) => typeof note === "string") : [];
118380
+ const warning = advisoryNotes.length > 0 ? `Final council returned CONCERNS (non-blocking): ${advisoryNotes.join("; ")}` : "Final council returned CONCERNS (non-blocking).";
118381
+ gateWarnings.push(warning);
118382
+ safeWarn(`[phase_complete] ${warning}`, undefined);
118383
+ }
118384
+ if (entry.verdict !== "approved" && entry.verdict !== "APPROVED" && entry.verdict !== "concerns" && entry.verdict !== "CONCERNS") {
118378
118385
  return {
118379
118386
  blocked: true,
118380
118387
  reason: "FINAL_COUNCIL_INVALID_VERDICT",
118381
- message: `Phase ${phase} (last phase) cannot be completed: final council evidence contains unrecognized verdict '${entry.verdict}'. Expected 'approved'.`,
118388
+ message: `Phase ${phase} (last phase) cannot be completed: final council evidence contains unrecognized verdict '${entry.verdict}'. Expected one of: approved, concerns, rejected.`,
118382
118389
  agentsDispatched,
118383
118390
  agentsMissing: [],
118384
118391
  warnings: []
@@ -118423,7 +118430,12 @@ async function runFinalCouncilGate(ctx) {
118423
118430
  safeWarn(`[phase_complete] Final council gate error (non-blocking):`, fcError);
118424
118431
  }
118425
118432
  }
118426
- return { blocked: false, agentsDispatched, agentsMissing: [], warnings: [] };
118433
+ return {
118434
+ blocked: false,
118435
+ agentsDispatched,
118436
+ agentsMissing: [],
118437
+ warnings: gateWarnings
118438
+ };
118427
118439
  }
118428
118440
  // src/tools/phase-complete/gates/hallucination-gate.ts
118429
118441
  init_qa_gate_profile();
@@ -130326,8 +130338,14 @@ var ArgsSchema8 = exports_external.object({
130326
130338
  roundNumber: exports_external.number().int().min(1).max(10).optional(),
130327
130339
  verdicts: exports_external.array(VerdictSchema3).min(1).max(5)
130328
130340
  });
130329
- function normalizeFinalVerdict(verdict) {
130330
- return verdict === "APPROVE" ? "approved" : "rejected";
130341
+ function normalizeFinalVerdict(verdict, requiredFixesCount) {
130342
+ if (verdict === "APPROVE") {
130343
+ return "approved";
130344
+ }
130345
+ if (verdict === "REJECT") {
130346
+ return "rejected";
130347
+ }
130348
+ return requiredFixesCount > 0 ? "rejected" : "concerns";
130331
130349
  }
130332
130350
  async function executeWriteFinalCouncilEvidence(args2, directory) {
130333
130351
  const parsed = ArgsSchema8.safeParse(args2);
@@ -130360,7 +130378,7 @@ async function executeWriteFinalCouncilEvidence(args2, directory) {
130360
130378
  const synthesis = synthesizeFinalCouncilAdvisory(input.projectSummary.trim(), input.verdicts, input.roundNumber ?? 1, config3.council);
130361
130379
  const plan = await loadPlan(directory);
130362
130380
  const planId = plan ? derivePlanId(plan) : "unknown";
130363
- const normalizedVerdict = normalizeFinalVerdict(synthesis.overallVerdict);
130381
+ const normalizedVerdict = normalizeFinalVerdict(synthesis.overallVerdict, synthesis.requiredFixes.length);
130364
130382
  const evidenceEntry = {
130365
130383
  type: "final-council",
130366
130384
  phase: input.phase,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.56.2",
3
+ "version": "7.56.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",