agi-farm 1.2.2 → 1.2.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/README.md +23 -12
- package/openclaw.plugin.json +2 -2
- package/package.json +1 -1
- package/scripts/setup.js +27 -0
package/README.md
CHANGED
|
@@ -117,6 +117,16 @@ openclaw plugins install agi-farm
|
|
|
117
117
|
npm install -g agi-farm
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
+
### Upgrade (Existing Install)
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Update an already installed OpenClaw plugin
|
|
124
|
+
openclaw plugins update agi-farm
|
|
125
|
+
|
|
126
|
+
# One-liner: install first, or update if already installed
|
|
127
|
+
openclaw plugins install agi-farm || openclaw plugins update agi-farm
|
|
128
|
+
```
|
|
129
|
+
|
|
120
130
|
### Run Setup Wizard
|
|
121
131
|
|
|
122
132
|
```bash
|
|
@@ -370,12 +380,12 @@ Configure AGI Farm in your `openclaw.json`:
|
|
|
370
380
|
"autoCheckUpdates": true,
|
|
371
381
|
"workspacePath": "~/.openclaw/workspace",
|
|
372
382
|
"bundlePath": "~/.openclaw/workspace/agi-farm-bundle",
|
|
373
|
-
"featureJobs":
|
|
374
|
-
"featureSkills":
|
|
375
|
-
"featureMemory":
|
|
376
|
-
"featurePolicy":
|
|
377
|
-
"featureMetering":
|
|
378
|
-
"featureApprovals":
|
|
383
|
+
"featureJobs": true,
|
|
384
|
+
"featureSkills": true,
|
|
385
|
+
"featureMemory": true,
|
|
386
|
+
"featurePolicy": true,
|
|
387
|
+
"featureMetering": true,
|
|
388
|
+
"featureApprovals": true
|
|
379
389
|
}
|
|
380
390
|
}
|
|
381
391
|
}
|
|
@@ -393,12 +403,12 @@ Configure AGI Farm in your `openclaw.json`:
|
|
|
393
403
|
| `autoCheckUpdates` | boolean | true | Check GitHub for new releases on startup |
|
|
394
404
|
| `workspacePath` | string | ~/.openclaw/workspace | Path to OpenClaw workspace |
|
|
395
405
|
| `bundlePath` | string | <workspace>/agi-farm-bundle | Path to bundle directory |
|
|
396
|
-
| `featureJobs` | boolean |
|
|
397
|
-
| `featureSkills` | boolean |
|
|
398
|
-
| `featureMemory` | boolean |
|
|
399
|
-
| `featurePolicy` | boolean |
|
|
400
|
-
| `featureMetering` | boolean |
|
|
401
|
-
| `featureApprovals` | boolean |
|
|
406
|
+
| `featureJobs` | boolean | true | Enable jobs runtime APIs + background worker |
|
|
407
|
+
| `featureSkills` | boolean | true | Enable skills registry and routing endpoints |
|
|
408
|
+
| `featureMemory` | boolean | true | Enable memory indexing + search endpoint |
|
|
409
|
+
| `featurePolicy` | boolean | true | Enable policy evaluation on runtime/mutation actions |
|
|
410
|
+
| `featureMetering` | boolean | true | Enable usage metering collection + API |
|
|
411
|
+
| `featureApprovals` | boolean | true | Enable approval workflows for policy-gated actions |
|
|
402
412
|
|
|
403
413
|
### Runtime Files Added By Core Modules
|
|
404
414
|
|
|
@@ -596,6 +606,7 @@ npm run start-dashboard
|
|
|
596
606
|
| Symptom | Fix | Command |
|
|
597
607
|
|---------|-----|---------|
|
|
598
608
|
| ❌ Plugin fails to load | Check global install | `npm list -g agi-farm` |
|
|
609
|
+
| ❌ `plugin already exists` on install | Use plugin update command | `openclaw plugins update agi-farm` |
|
|
599
610
|
| 📊 Dashboard shows stale data | Sync with workspace | `agi-farm status` |
|
|
600
611
|
| 🤖 Agent stuck >30 min | Verify heartbeats | `cat ~/.openclaw/workspace/HEARTBEAT.md` |
|
|
601
612
|
| ⚠️ `openclaw` not found | Add to PATH | `export PATH=$PATH:$(npm bin -g)` |
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "agi-farm",
|
|
3
3
|
"kind": "team-orchestration",
|
|
4
4
|
"name": "AGI Farm — Multi-Agent Team Builder",
|
|
5
|
-
"version": "1.2.
|
|
5
|
+
"version": "1.2.4",
|
|
6
6
|
"description": "Bootstrap complete multi-agent AI teams with auto-dispatcher, live dashboard, and infrastructure. Includes interactive wizard, SOUL.md generation, comms setup, cron registration, and React + SSE ops room.",
|
|
7
7
|
"author": "oabdelmaksoud",
|
|
8
8
|
"homepage": "https://github.com/oabdelmaksoud/AGI-FARM-PLUGIN",
|
|
@@ -163,4 +163,4 @@
|
|
|
163
163
|
"handler": "./scripts/teardown.js"
|
|
164
164
|
}
|
|
165
165
|
]
|
|
166
|
-
}
|
|
166
|
+
}
|
package/package.json
CHANGED
package/scripts/setup.js
CHANGED
|
@@ -13,6 +13,7 @@ import path from 'path';
|
|
|
13
13
|
import os from 'os';
|
|
14
14
|
import { spawnSync } from 'child_process';
|
|
15
15
|
import { fileURLToPath } from 'url';
|
|
16
|
+
import open from 'open';
|
|
16
17
|
import { runCommand } from './lib/run-command.js';
|
|
17
18
|
|
|
18
19
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -336,6 +337,31 @@ function healthCheck(team) {
|
|
|
336
337
|
}
|
|
337
338
|
}
|
|
338
339
|
|
|
340
|
+
// ── Post-Setup UX ────────────────────────────────────────────────────────────
|
|
341
|
+
async function offerOpenDashboard() {
|
|
342
|
+
const host = process.env.AGI_FARM_DASHBOARD_HOST || '127.0.0.1';
|
|
343
|
+
const port = process.env.AGI_FARM_DASHBOARD_PORT || '8080';
|
|
344
|
+
const url = `http://${host}:${port}`;
|
|
345
|
+
|
|
346
|
+
const { openDashboard } = await inquirer.prompt([
|
|
347
|
+
{
|
|
348
|
+
type: 'confirm',
|
|
349
|
+
name: 'openDashboard',
|
|
350
|
+
message: `Open dashboard in browser now? (${url})`,
|
|
351
|
+
default: true,
|
|
352
|
+
},
|
|
353
|
+
]);
|
|
354
|
+
|
|
355
|
+
if (!openDashboard) return;
|
|
356
|
+
|
|
357
|
+
try {
|
|
358
|
+
await open(url);
|
|
359
|
+
console.log(chalk.green(`✅ Opened dashboard: ${url}`));
|
|
360
|
+
} catch {
|
|
361
|
+
console.log(chalk.yellow(`⚠ Could not open browser automatically. Open manually: ${url}`));
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
339
365
|
// ── Main ───────────────────────────────────────────────────────────────────────
|
|
340
366
|
async function main() {
|
|
341
367
|
try {
|
|
@@ -365,6 +391,7 @@ async function main() {
|
|
|
365
391
|
console.log(chalk.white(`Workspace: ${WORKSPACE}`));
|
|
366
392
|
console.log(chalk.white(`Bundle: ${BUNDLE_DIR}`));
|
|
367
393
|
console.log(chalk.dim(`\nNext: talk to ${config.orchestratorName} · /agi-farm status · /agi-farm dashboard\n`));
|
|
394
|
+
await offerOpenDashboard();
|
|
368
395
|
|
|
369
396
|
} catch (err) {
|
|
370
397
|
console.error(chalk.red('Error:'), err.message);
|