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.
|
|
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",
|