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 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": false,
374
- "featureSkills": false,
375
- "featureMemory": false,
376
- "featurePolicy": false,
377
- "featureMetering": false,
378
- "featureApprovals": false
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 | false | Enable jobs runtime APIs + background worker |
397
- | `featureSkills` | boolean | false | Enable skills registry and routing endpoints |
398
- | `featureMemory` | boolean | false | Enable memory indexing + search endpoint |
399
- | `featurePolicy` | boolean | false | Enable policy evaluation on runtime/mutation actions |
400
- | `featureMetering` | boolean | false | Enable usage metering collection + API |
401
- | `featureApprovals` | boolean | false | Enable approval workflows for policy-gated actions |
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)` |
@@ -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.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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agi-farm",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "description": "Multi-agent AI team builder for OpenClaw — bootstrap complete teams with auto-dispatcher, dashboard, and infrastructure",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
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);