opencode-swarm 6.84.3 → 6.84.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.
package/dist/index.js CHANGED
@@ -86802,6 +86802,7 @@ var todo_extract = createSwarmTool({
86802
86802
  init_tool();
86803
86803
  init_loader();
86804
86804
  init_schema();
86805
+ init_qa_gate_profile();
86805
86806
  init_gate_evidence();
86806
86807
  import * as fs83 from "fs";
86807
86808
  import * as path99 from "path";
@@ -87169,6 +87170,20 @@ function checkCouncilGate(workingDirectory, taskId) {
87169
87170
  if (!councilEnabled) {
87170
87171
  return { blocked: false, reason: "" };
87171
87172
  }
87173
+ try {
87174
+ const planPath = path99.join(workingDirectory, ".swarm", "plan.json");
87175
+ const planRaw = fs83.readFileSync(planPath, "utf-8");
87176
+ const planObj = JSON.parse(planRaw);
87177
+ if (planObj.swarm && planObj.title) {
87178
+ const planId = `${planObj.swarm}-${planObj.title}`.replace(/[^a-zA-Z0-9-_]/g, "_");
87179
+ const profile = getProfile(workingDirectory, planId);
87180
+ if (!profile || !profile.gates.council_mode) {
87181
+ return { blocked: false, reason: "" };
87182
+ }
87183
+ }
87184
+ } catch {
87185
+ return { blocked: false, reason: "" };
87186
+ }
87172
87187
  let evidence;
87173
87188
  try {
87174
87189
  evidence = readTaskEvidenceRaw(workingDirectory, taskId);
@@ -88,6 +88,12 @@ export interface CouncilGateResult {
88
88
  * Check the council gate for a completion transition. Pure — reads config and
89
89
  * evidence only, no state mutation. Exported for focused unit testing.
90
90
  *
91
+ * AND semantics (mirrors isCouncilGateActive in state.ts): the gate only
92
+ * activates when BOTH pluginConfig.council.enabled === true AND the QA gate
93
+ * profile for this plan has council_mode === true. When council.enabled is
94
+ * true but council_mode is false (or the profile is absent), the gate is
95
+ * treated as inactive — the operator has disabled it at the profile level.
96
+ *
91
97
  * @param workingDirectory - Validated project root (contains .swarm/evidence/)
92
98
  * @param taskId - Task ID in N.M or N.M.P format
93
99
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "6.84.3",
3
+ "version": "6.84.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",