opencode-swarm 6.86.0 → 6.86.2

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.
@@ -26,6 +26,16 @@ export interface CouncilWorkflowConfig {
26
26
  enabled?: boolean;
27
27
  };
28
28
  }
29
+ /**
30
+ * Subset of PluginConfig.ui_review needed to gate the designer agent
31
+ * references in the architect prompt. Only `enabled` is consumed here —
32
+ * runtime agent creation is handled separately in agents/index.ts.
33
+ * Keeping this shape narrow avoids pulling the full PluginConfig type
34
+ * into the agent-prompt layer.
35
+ */
36
+ export interface UIReviewConfig {
37
+ enabled?: boolean;
38
+ }
29
39
  /**
30
40
  * Build the Work Complete Council four-phase workflow block. Returns the full
31
41
  * block text when council.enabled === true, otherwise the empty string. The
@@ -44,4 +54,4 @@ export declare function buildCouncilWorkflow(council?: CouncilWorkflowConfig): s
44
54
  * BRAINSTORM, and PLAN inline paths stay in lockstep.
45
55
  */
46
56
  export declare function buildQaGateSelectionDialogue(modeLabel: 'BRAINSTORM' | 'SPECIFY' | 'PLAN'): string;
47
- export declare function createArchitectAgent(model: string, customPrompt?: string, customAppendPrompt?: string, adversarialTesting?: AdversarialTestingConfig, council?: CouncilWorkflowConfig): AgentDefinition;
57
+ export declare function createArchitectAgent(model: string, customPrompt?: string, customAppendPrompt?: string, adversarialTesting?: AdversarialTestingConfig, council?: CouncilWorkflowConfig, uiReview?: UIReviewConfig): AgentDefinition;
@@ -0,0 +1 @@
1
+ export {};
package/dist/index.js CHANGED
@@ -54349,7 +54349,7 @@ function buildSlashCommandsList() {
54349
54349
  return lines.join(`
54350
54350
  `);
54351
54351
  }
54352
- function createArchitectAgent(model, customPrompt, customAppendPrompt, adversarialTesting, council) {
54352
+ function createArchitectAgent(model, customPrompt, customAppendPrompt, adversarialTesting, council, uiReview) {
54353
54353
  let prompt = ARCHITECT_PROMPT;
54354
54354
  if (customPrompt) {
54355
54355
  prompt = customPrompt;
@@ -54384,6 +54384,13 @@ ${councilBlock}`;
54384
54384
  prompt = prompt?.replace(/\{\{ADVERSARIAL_TEST_STEP\}\}/g, ` 5m. {{AGENT_PREFIX}}test_engineer - Adversarial tests. FAIL \u2192 coder retry from 5g. Scope: attack vectors only \u2014 malformed inputs, boundary violations, injection attempts.
54385
54385
  \u2192 REQUIRED: Print "testengineer-adversarial: [PASS | FAIL \u2014 details]"`)?.replace(/\{\{ADVERSARIAL_TEST_CHECKLIST\}\}/g, " [GATE] test_engineer-adversarial: PASS / FAIL \u2014 value: ___");
54386
54386
  }
54387
+ if (!uiReview?.enabled) {
54388
+ prompt = prompt?.replace(", {{AGENT_PREFIX}}designer", "")?.replace(/\n 9\. \*\*UI\/UX DESIGN GATE\*\*:[\s\S]*?(?=\n10\. \*\*)/, `
54389
+ `)?.replace(`
54390
+ {{AGENT_PREFIX}}designer - UI/UX design specs (scaffold generation for UI components \u2014 runs BEFORE coder on UI tasks)`, "")?.replace(/\n\{\{AGENT_PREFIX\}\}designer\nTASK: Design specification[\s\S]*?accessibility(?=\n\n## WORKFLOW)/, "")?.replace(`5a. **UI DESIGN GATE** (conditional \u2014 Rule 9): If task matches UI trigger \u2192 {{AGENT_PREFIX}}designer produces scaffold \u2192 pass scaffold to coder as INPUT. If no match \u2192 skip.
54391
+
54392
+ `, "")?.replace("\u2192 After step 5a (or immediately if no UI task applies): Call update_task_status", "\u2192 Call update_task_status")?.replace(" (if designer scaffold produced, include it as INPUT)", "");
54393
+ }
54387
54394
  return {
54388
54395
  name: "architect",
54389
54396
  description: "Central orchestrator of the development pipeline. Analyzes requests, coordinates SME consultation, manages code generation, and triages QA feedback.",
@@ -57677,7 +57684,7 @@ function createSwarmAgents(swarmId, swarmConfig, isDefault, pluginConfig) {
57677
57684
  const prefixName = (name2) => `${prefix}${name2}`;
57678
57685
  if (!isAgentDisabled("architect", swarmAgents, swarmPrefix)) {
57679
57686
  const architectPrompts = getPrompts("architect");
57680
- const architect = createArchitectAgent(getModel("architect"), architectPrompts.prompt, architectPrompts.appendPrompt, pluginConfig?.adversarial_testing, pluginConfig?.council);
57687
+ const architect = createArchitectAgent(getModel("architect"), architectPrompts.prompt, architectPrompts.appendPrompt, pluginConfig?.adversarial_testing, pluginConfig?.council, pluginConfig?.ui_review);
57681
57688
  architect.name = prefixName("architect");
57682
57689
  const swarmName = swarmConfig.name || swarmId;
57683
57690
  const swarmIdentity = isDefault ? "default" : swarmId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "6.86.0",
3
+ "version": "6.86.2",
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",