swarm-control 0.1.10 → 0.1.11
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/README.md +6 -6
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +8 -17
- package/dist/installer.js.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +17 -42
- package/dist/plugin/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/swarm-worker.md +15 -0
- package/templates/swarm_model.md +0 -4
package/README.md
CHANGED
|
@@ -35,13 +35,13 @@ This will:
|
|
|
35
35
|
|
|
36
36
|
Before using the swarm, you must configure the model used for task decomposition:
|
|
37
37
|
|
|
38
|
-
```
|
|
39
|
-
|
|
38
|
+
```bash
|
|
39
|
+
swarm-control set-agent <model-name>
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
For example:
|
|
43
|
-
```
|
|
44
|
-
|
|
43
|
+
```bash
|
|
44
|
+
swarm-control set-agent anthropic/claude-3-5-sonnet-20241022
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
The model is stored in your OpenCode config file (`~/.config/opencode/opencode.json`).
|
|
@@ -112,6 +112,7 @@ This prevents conflicts and ensures file integrity.
|
|
|
112
112
|
|
|
113
113
|
```bash
|
|
114
114
|
swarm-control setup # Install the plugin
|
|
115
|
+
swarm-control set-agent <model> # Set model for decomposition
|
|
115
116
|
swarm-control uninstall # Remove the plugin
|
|
116
117
|
swarm-control reset # Reset swarm state (keeps configuration)
|
|
117
118
|
```
|
|
@@ -119,7 +120,6 @@ swarm-control reset # Reset swarm state (keeps configuration)
|
|
|
119
120
|
### OpenCode Tools
|
|
120
121
|
|
|
121
122
|
```
|
|
122
|
-
/swarm_model <model> # Set model for decomposition
|
|
123
123
|
/swarm_spawn <task> # Start a swarm task
|
|
124
124
|
/swarm_status # Check swarm status
|
|
125
125
|
```
|
|
@@ -160,7 +160,7 @@ Make sure to restart OpenCode after running `swarm-control setup`.
|
|
|
160
160
|
|
|
161
161
|
### "Swarm model not configured" error
|
|
162
162
|
|
|
163
|
-
Run
|
|
163
|
+
Run `swarm-control set-agent <model-name>` to configure the model before using `/swarm_spawn`.
|
|
164
164
|
|
|
165
165
|
### "A swarm task is already in progress" error
|
|
166
166
|
|
package/dist/installer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAuBA,wBAAsB,WAAW,kBAqBhC;AAED,wBAAsB,eAAe,kBAepC;AAED,wBAAsB,UAAU,kBAiB/B;AAgED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAuBA,wBAAsB,WAAW,kBAqBhC;AAED,wBAAsB,eAAe,kBAepC;AAED,wBAAsB,UAAU,kBAiB/B;AAgED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM,mBAoBzD"}
|
package/dist/installer.js
CHANGED
|
@@ -27,7 +27,7 @@ export async function setupPlugin() {
|
|
|
27
27
|
spinner.succeed(chalk.green('Plugin installed successfully!'));
|
|
28
28
|
console.log(chalk.bold('\nNext steps:'));
|
|
29
29
|
console.log('1. Restart opencode');
|
|
30
|
-
console.log('2. Configure swarm model:
|
|
30
|
+
console.log('2. Configure swarm model: swarm-control set-agent <model-name>');
|
|
31
31
|
console.log('3. Start using: /swarm_spawn "your task"');
|
|
32
32
|
}
|
|
33
33
|
catch (error) {
|
|
@@ -119,23 +119,14 @@ async function removeFromConfig() {
|
|
|
119
119
|
export async function createSwarmWorkerAgent(model) {
|
|
120
120
|
try {
|
|
121
121
|
await fs.ensureDir(OPENCODE_AGENT_DIR);
|
|
122
|
+
const templatesDir = IS_GLOBAL_INSTALL
|
|
123
|
+
? path.join(__dirname, '../../templates')
|
|
124
|
+
: path.join(__dirname, '../templates');
|
|
125
|
+
const templatePath = path.join(templatesDir, 'swarm-worker.md');
|
|
122
126
|
const agentPath = path.join(OPENCODE_AGENT_DIR, SWARM_WORKER_AGENT_FILE);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
model: ${model}
|
|
127
|
-
hidden: true
|
|
128
|
-
---
|
|
129
|
-
You are a Swarm_Worker agent. Your role is to execute specific subtasks as part of a larger swarm operation.
|
|
130
|
-
|
|
131
|
-
Focus on:
|
|
132
|
-
- Completing the assigned subtask accurately
|
|
133
|
-
- Following the provided task description precisely
|
|
134
|
-
- Making minimal changes to achieve the goal
|
|
135
|
-
- Reporting clear results back to the coordinator
|
|
136
|
-
|
|
137
|
-
You are part of a multi-agent swarm working in parallel on a complex task. Work efficiently and communicate results clearly.
|
|
138
|
-
`;
|
|
127
|
+
// Read template and replace $1 with model
|
|
128
|
+
let agentContent = await fs.readFile(templatePath, 'utf-8');
|
|
129
|
+
agentContent = agentContent.replace(/\$1/g, model);
|
|
139
130
|
await fs.writeFile(agentPath, agentContent, 'utf-8');
|
|
140
131
|
return agentPath;
|
|
141
132
|
}
|
package/dist/installer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAE1C,+CAA+C;AAC/C,MAAM,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1C,CAAC,SAAS,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAA;AAEnD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAK,EAAE,kBAAkB,CAAC,CAAA;AAC5E,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAK,EAAE,iBAAiB,CAAC,CAAA;AAC1E,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;AACtE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;AAClE,MAAM,gBAAgB,GAAG,OAAO,CAAA;AAChC,MAAM,uBAAuB,GAAG,iBAAiB,CAAA;AAEjD,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,oCAAoC,CAAC,CAAC,KAAK,EAAE,CAAA;IAEjE,IAAI,CAAC;QACH,gCAAgC;QAChC,MAAM,WAAW,EAAE,CAAA;QAEnB,qBAAqB;QACrB,MAAM,gBAAgB,EAAE,CAAA;QAExB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAClC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAE1C,+CAA+C;AAC/C,MAAM,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1C,CAAC,SAAS,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAA;AAEnD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAK,EAAE,kBAAkB,CAAC,CAAA;AAC5E,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAK,EAAE,iBAAiB,CAAC,CAAA;AAC1E,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;AACtE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;AAClE,MAAM,gBAAgB,GAAG,OAAO,CAAA;AAChC,MAAM,uBAAuB,GAAG,iBAAiB,CAAA;AAEjD,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,oCAAoC,CAAC,CAAC,KAAK,EAAE,CAAA;IAEjE,IAAI,CAAC;QACH,gCAAgC;QAChC,MAAM,WAAW,EAAE,CAAA;QAEnB,qBAAqB;QACrB,MAAM,gBAAgB,EAAE,CAAA;QAExB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAClC,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;QAC7E,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;IAEzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAA;QAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,sCAAsC,CAAC,CAAC,KAAK,EAAE,CAAA;IAEnE,IAAI,CAAC;QACH,qCAAqC;QACrC,MAAM,gBAAgB,EAAE,CAAA;QAExB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2EAA2E,CAAC,CAAC,CAAA;IAExG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAA;QAChD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,kCAAkC,CAAC,CAAC,KAAK,EAAE,CAAA;IAE/D,IAAI,CAAC;QACH,oBAAoB;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAK,EAAE,kCAAkC,CAAC,CAAA;QAClF,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAE1B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAA;QAC9E,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;IAEtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;QACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;QAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,EAAE,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;YACtF,OAAM;QACR,CAAC;QAED,6CAA6C;QAC7C,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;QAEnE,8CAA8C;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAEtC,mCAAmC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAA;QACpB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACrC,CAAC;QAED,MAAM,EAAE,CAAC,SAAS,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAEjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAA;QACvE,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;QAC9D,IAAI,CAAC,YAAY;YAAE,OAAM;QAEzB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAEtC,wCAAwC;QACxC,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAA;QAC5E,CAAC;QAED,sBAAsB;QACtB,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACjC,CAAC;QAED,MAAM,EAAE,CAAC,SAAS,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAE/D,uBAAuB;QACvB,MAAM,kBAAkB,EAAE,CAAA;QAE1B,oBAAoB;QACpB,MAAM,eAAe,EAAE,CAAA;IAEzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAA;IACzE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAa;IACxD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAEtC,MAAM,YAAY,GAAG,iBAAiB;YACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAA;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAA;QAExE,0CAA0C;QAC1C,IAAI,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC3D,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAElD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;QACpD,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAA;QAC1E,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAA;QACxE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,iBAAiB;YACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;QAExC,kCAAkC;QAClC,MAAM,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;QAExC,yDAAyD;QACzD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAEpD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;YACtD,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAA;QACnE,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,iBAAiB;YACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;QAExC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAEpD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;YACtD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAA;IACvE,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAajD,eAAO,MAAM,kBAAkB,EAAE,MAkKhC,CAAA"}
|
package/dist/plugin/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { tool } from '@opencode-ai/plugin/tool';
|
|
2
|
-
import { getConfig, setConfig } from './config.js';
|
|
3
2
|
import { decomposeTask } from './decomposer.js';
|
|
4
3
|
import { createSwarmCoordinator } from './coordinator.js';
|
|
5
4
|
import { StateManager } from './state.js';
|
|
@@ -12,41 +11,6 @@ export const SwarmControlPlugin = async ({ client, directory }) => {
|
|
|
12
11
|
const state = new StateManager();
|
|
13
12
|
return {
|
|
14
13
|
tool: {
|
|
15
|
-
swarm_model: tool({
|
|
16
|
-
description: 'Configure model to use for swarm task decomposition (required before using swarm_spawn)',
|
|
17
|
-
args: {
|
|
18
|
-
model: tool.schema.string().describe('Model identifier (e.g., anthropic/claude-3-5-sonnet-20241022)')
|
|
19
|
-
},
|
|
20
|
-
async execute({ model }) {
|
|
21
|
-
await setConfig({ model });
|
|
22
|
-
// Create Swarm_Worker agent file
|
|
23
|
-
try {
|
|
24
|
-
await fs.ensureDir(OPENCODE_AGENT_DIR);
|
|
25
|
-
const agentPath = path.join(OPENCODE_AGENT_DIR, SWARM_WORKER_AGENT_FILE);
|
|
26
|
-
const agentContent = `---
|
|
27
|
-
description: Swarm worker agent for executing subtasks
|
|
28
|
-
mode: subagent
|
|
29
|
-
model: ${model}
|
|
30
|
-
hidden: true
|
|
31
|
-
---
|
|
32
|
-
You are a Swarm_Worker agent. Your role is to execute specific subtasks as part of a larger swarm operation.
|
|
33
|
-
|
|
34
|
-
Focus on:
|
|
35
|
-
- Completing the assigned subtask accurately
|
|
36
|
-
- Following the provided task description precisely
|
|
37
|
-
- Making minimal changes to achieve the goal
|
|
38
|
-
- Reporting clear results back to the coordinator
|
|
39
|
-
|
|
40
|
-
You are part of a multi-agent swarm working in parallel on a complex task. Work efficiently and communicate results clearly.
|
|
41
|
-
`;
|
|
42
|
-
await fs.writeFile(agentPath, agentContent, 'utf-8');
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
console.warn('Warning: Could not create Swarm_Worker agent file');
|
|
46
|
-
}
|
|
47
|
-
return `Swarm model set to: ${model}\nSwarm_Worker agent created. Please restart opencode to load the new agent.`;
|
|
48
|
-
}
|
|
49
|
-
}),
|
|
50
14
|
swarm_spawn: tool({
|
|
51
15
|
description: 'Spawn a swarm of subagents to tackle a complex programming task',
|
|
52
16
|
args: {
|
|
@@ -54,10 +18,21 @@ You are part of a multi-agent swarm working in parallel on a complex task. Work
|
|
|
54
18
|
maxWorkers: tool.schema.number().min(1).max(4).optional().describe('Maximum number of workers (default: 4)')
|
|
55
19
|
},
|
|
56
20
|
async execute({ task, maxWorkers = 4 }, context) {
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
21
|
+
// Read model from Swarm_Worker agent file
|
|
22
|
+
let model = null;
|
|
23
|
+
try {
|
|
24
|
+
const agentPath = path.join(OPENCODE_AGENT_DIR, SWARM_WORKER_AGENT_FILE);
|
|
25
|
+
const agentContent = await fs.readFile(agentPath, 'utf-8');
|
|
26
|
+
const modelMatch = agentContent.match(/^model:\s*(.+)$/m);
|
|
27
|
+
if (modelMatch) {
|
|
28
|
+
model = modelMatch[1].trim();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
// Agent file doesn't exist or is invalid
|
|
33
|
+
}
|
|
34
|
+
if (!model) {
|
|
35
|
+
throw new Error('Swarm model not configured. Please run `swarm-control set-agent <model>` in your terminal first.');
|
|
61
36
|
}
|
|
62
37
|
// Check if there's already a running task
|
|
63
38
|
const currentTask = await state.getCurrentTask();
|
|
@@ -69,11 +44,11 @@ You are part of a multi-agent swarm working in parallel on a complex task. Work
|
|
|
69
44
|
let decompositionResult;
|
|
70
45
|
try {
|
|
71
46
|
// Decompose task
|
|
72
|
-
decompositionResult = await decomposeTask(client,
|
|
47
|
+
decompositionResult = await decomposeTask(client, model, task, context);
|
|
73
48
|
// Validate numWorkers doesn't exceed maxWorkers
|
|
74
49
|
const numWorkers = Math.min(decompositionResult.numWorkers, maxWorkers);
|
|
75
50
|
// Create and run coordinator
|
|
76
|
-
const coordinator = createSwarmCoordinator(client, directory,
|
|
51
|
+
const coordinator = createSwarmCoordinator(client, directory, { model });
|
|
77
52
|
const result = await coordinator.execute(task, {
|
|
78
53
|
...decompositionResult,
|
|
79
54
|
numWorkers
|
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAE/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Swarm worker agent for executing subtasks
|
|
3
|
+
mode: subagent
|
|
4
|
+
model: $1
|
|
5
|
+
hidden: true
|
|
6
|
+
---
|
|
7
|
+
You are a Swarm_Worker agent. Your role is to execute specific subtasks as part of a larger swarm operation.
|
|
8
|
+
|
|
9
|
+
Focus on:
|
|
10
|
+
- Completing the assigned subtask accurately
|
|
11
|
+
- Following the provided task description precisely
|
|
12
|
+
- Making minimal changes to achieve the goal
|
|
13
|
+
- Reporting clear results back to the coordinator
|
|
14
|
+
|
|
15
|
+
You are part of a multi-agent swarm working in parallel on a complex task. Work efficiently and communicate results clearly.
|
package/templates/swarm_model.md
DELETED