agi-farm 1.10.0 → 3.3.1

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.
Files changed (61) hide show
  1. package/README.md +58 -0
  2. package/dist/index.d.ts +13 -22
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +44 -59
  5. package/dist/index.js.map +1 -1
  6. package/openclaw.plugin.json +67 -38
  7. package/package.json +12 -25
  8. package/scripts/agi-farm.js +48 -32
  9. package/scripts/lib/blueprints.js +421 -0
  10. package/scripts/lib/cron-defs.js +42 -0
  11. package/scripts/paperclip.js +68 -0
  12. package/scripts/setup.js +616 -360
  13. package/scripts/sync-lobsterboard-upstream.js +7 -1
  14. package/server/paperclip-bridge.js +390 -0
  15. package/server/paperclip-sync.js +132 -0
  16. package/skills/agi-farm/tools/create_company.js +94 -0
  17. package/skills/agi-farm/tools/create_project.js +88 -0
  18. package/skills/agi-farm/tools/create_task.js +106 -0
  19. package/skills/agi-farm/tools/hire_specialist.js +138 -0
  20. package/skills/agi-farm/tools/lib/resolve-company.js +90 -0
  21. package/skills/agi-farm/tools/list_projects.js +63 -0
  22. package/skills/agi-farm/tools/manage_board.js +110 -0
  23. package/skills/agi-farm/tools/update_task.js +126 -0
  24. package/templates/SOUL.md.main +84 -0
  25. package/dashboard-dist/assets/Agents-s1Pcdrga.js +0 -1
  26. package/dashboard-dist/assets/Alerts-T-KcEJKx.js +0 -1
  27. package/dashboard-dist/assets/Approvals-e-y0qIwz.js +0 -1
  28. package/dashboard-dist/assets/AuditLog-Cc1GUGYz.js +0 -1
  29. package/dashboard-dist/assets/Budget-DRJWqsop.js +0 -1
  30. package/dashboard-dist/assets/Comms-DT2o5TCi.js +0 -1
  31. package/dashboard-dist/assets/Crons-BsUNSrso.js +0 -1
  32. package/dashboard-dist/assets/Decisions-B3i1Rijg.js +0 -3
  33. package/dashboard-dist/assets/Failures-CaEvQ0t1.js +0 -2
  34. package/dashboard-dist/assets/HITL-BX5-FQjS.js +0 -1
  35. package/dashboard-dist/assets/Jobs-Ch4D8P85.js +0 -1
  36. package/dashboard-dist/assets/Knowledge-C92uZhl9.js +0 -1
  37. package/dashboard-dist/assets/Memory-DFU5CtTT.js +0 -2
  38. package/dashboard-dist/assets/OKRs-Dt0HzTQQ.js +0 -1
  39. package/dashboard-dist/assets/Overview-Cp6HOIJF.js +0 -2
  40. package/dashboard-dist/assets/Policies-CbemgLkX.js +0 -1
  41. package/dashboard-dist/assets/Processes-btq7Pyex.js +0 -1
  42. package/dashboard-dist/assets/Projects-DGWbAWDb.js +0 -1
  43. package/dashboard-dist/assets/Security-BVLBAnlu.js +0 -1
  44. package/dashboard-dist/assets/Settings-DWsfHIfK.js +0 -1
  45. package/dashboard-dist/assets/Tasks-DFJ-nyg0.js +0 -1
  46. package/dashboard-dist/assets/Usage-Cvfmkgit.js +0 -1
  47. package/dashboard-dist/assets/Velocity-DzCZH_YB.js +0 -1
  48. package/dashboard-dist/assets/charts-CjCN_e1M.js +0 -36
  49. package/dashboard-dist/assets/index-Cti3NWck.css +0 -1
  50. package/dashboard-dist/assets/index-DUjHkafG.js +0 -2
  51. package/dashboard-dist/assets/vendor-gUVFsxOc.js +0 -9
  52. package/dashboard-dist/index.html +0 -16
  53. package/dashboard-dist/vite.svg +0 -1
  54. package/scripts/dashboard.js +0 -49
  55. package/server/dashboard.js +0 -2523
  56. package/server/services/audit.js +0 -17
  57. package/server/services/intake.js +0 -156
  58. package/server/services/metering.js +0 -64
  59. package/server/services/projects.js +0 -220
  60. package/server/services/timeline.js +0 -71
  61. package/server/updater.js +0 -154
package/README.md CHANGED
@@ -17,6 +17,9 @@
17
17
 
18
18
  ---
19
19
 
20
+ > [!WARNING]
21
+ > **Notice: AGI Farm is currently under active development and still has known bugs.** Please use with caution in production environments.
22
+
20
23
  ## 🎯 What It Does
21
24
 
22
25
  **AGI Farm** is an [OpenClaw](https://docs.openclaw.ai) plugin that bootstraps a fully operational multi-agent AI system with everything you need:
@@ -60,6 +63,56 @@ This keeps upstream diffs visible in PRs so feature ports can be done continuous
60
63
 
61
64
  ---
62
65
 
66
+ ## 🧙 What's New in v3.3.0
67
+
68
+ ### 🚀 Automated Release & Workflow Hardening
69
+
70
+ Version 3.3.0 standardizes the release process and ensures all GitHub workflows are production-ready.
71
+
72
+ #### 🏗️ Automated Dashboard Launch
73
+ - **One-Click Wizard**: The `agi-farm setup` wizard now automatically opens the Paperclip dashboard in your default browser upon successful configuration.
74
+ - **Direct Dependencies**: Added `express` as a core dependency for improved dashboard server stability.
75
+
76
+ #### 🛡️ Workflow & Compatibility Hardening
77
+ - **OpenClaw Compatibility**: Improved version scrubbing (handles `v` prefixes and revision suffixes) for more robust integration testing.
78
+ - **Graceful Installation**: Workflows now handle missing NPM versions gracefully, skipping integration tests if a specific version is not yet published.
79
+ - **Global PATH Reliability**: Ensured global `npm` bin directories are correctly added to `GITHUB_PATH` across all workflow steps.
80
+
81
+ #### 🔐 Security Enhancements
82
+ - **Automated Secret Scrubbing**: Upstream sync scripts (`scripts/sync-lobsterboard-upstream.js`) now redact Google OAuth Client IDs and Secrets to prevent GitHub Push Protection violations.
83
+ - **Refined Command Execution**: All `agi-farm` commands in workflows now use `npx` for guaranteed executability.
84
+
85
+ ---
86
+
87
+ ## 🧙 What's New in v1.9.0
88
+
89
+ ### 🚀 Advanced Wizard 2.0 — Industry-Driven Automation
90
+
91
+ The setup wizard has been completely overhauled from a basic 4-template system to a sophisticated, 6-phase onboarding experience that activates the full depth of the AGI Farm plugin.
92
+
93
+ #### 🏗️ 15 Industry-Specific Blueprints
94
+ Choose from professional team compositions across 5 major verticals:
95
+ - **Software Engineering**: Startup MVP, Full-Stack Product, Mobile-First App, AI/ML System.
96
+ - **Marketing & Growth**: Marketing Campaign, Brand Launch, Performance Marketing.
97
+ - **Enterprise & Regulated**: Enterprise Feature, Security-Critical, Compliance & Audit.
98
+ - **Research & Development**: Quality-First, Research & Discovery.
99
+ - **Creative & Content**: Content Studio, Product Design Sprint.
100
+
101
+ #### ⚙️ Deep Plugin Integration
102
+ The wizard now automates what used to be manual post-setup tasks:
103
+ - **Budget & OKRs**: Set monthly spend limits and seed your team with industry-specific OKRs immediately.
104
+ - **Operational Automation**: Select and activate pre-built cron jobs (daily security scans, weekly velocity reports, auto-dispatcher heartbeats).
105
+ - **HITL Security Policy**: Choose your "Human-in-the-Loop" sensitivity level (Low/Medium/High) during setup.
106
+ - **Project Seeding**: Start with a pre-populated project and task backlog tailored to your chosen blueprint.
107
+ - **AgentShield Integration**: One-click initial security scan to baseline your new workspace.
108
+
109
+ #### 🧹 Consolidated Architecture
110
+ - Legacy `setup-enhanced.js` has been consolidated into the main `setup.js`.
111
+ - Performance improvements in agent creation and SOUL.md template generation.
112
+ - Expanded `WORKFLOW_TEMPLATES.md` documentation covering all 15 new blueprints.
113
+
114
+ ---
115
+
63
116
  ## 🆕 What's New in v1.8.0
64
117
 
65
118
  ### 🎨 Complete Dashboard Redesign — Day Theme (Minimalism 3.0 + Glassmorphism 2.0)
@@ -665,6 +718,11 @@ The dashboard enables direct control over team operations via authenticated REST
665
718
  - `GET /api/templates` / `GET /api/templates/:id` — List and inspect dashboard templates
666
719
  - `POST /api/templates/export` / `POST /api/templates/import` — Export/import template settings
667
720
 
721
+ **Integrated LobsterBoard Runtime (same host/process):**
722
+ - Full LobsterBoard runtime is mounted internally at `GET /lobsterboard/`
723
+ - Dashboard tab `LobsterBoard` loads this internal route (no separate user-facing port required)
724
+ - API/static calls from LobsterBoard are proxied through AGI Farm server under the same origin
725
+
668
726
  **Auto-Update:**
669
727
  - `GET /api/update-check` — Force a fresh GitHub release check
670
728
  - `POST /api/update-install` — Install latest version via npm
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * AGI Farm - OpenClaw Plugin
3
3
  *
4
- * Multi-agent AI team builder with dashboard, auto-dispatcher, and infrastructure.
4
+ * Multi-agent AI team builder powered by Paperclip dashboard.
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
@@ -32,30 +32,30 @@ export interface OpenClawExtension {
32
32
  onUnload(): Promise<void>;
33
33
  }
34
34
  export interface AGIFarmConfig {
35
- /** Port for the live ops dashboard */
36
- dashboardPort: number;
37
- /** Host to bind dashboard server */
38
- dashboardHost: string;
39
- /** Auto-start dashboard on plugin load */
40
- autoStartDashboard: boolean;
35
+ /** Port for Paperclip dashboard */
36
+ paperclipPort: number;
37
+ /** Host to bind Paperclip server */
38
+ paperclipHost: string;
39
+ /** Auto-start Paperclip on plugin load */
40
+ autoStartPaperclip: boolean;
41
41
  /** Check GitHub for plugin updates on startup */
42
42
  autoCheckUpdates: boolean;
43
43
  /** Path to OpenClaw workspace */
44
44
  workspacePath?: string;
45
45
  /** Path to AGI Farm bundle */
46
46
  bundlePath?: string;
47
+ /** Paperclip deployment mode */
48
+ paperclipDeploymentMode?: "local_trusted" | "authenticated";
47
49
  /** Feature flags */
48
50
  featureJobs?: boolean;
49
51
  featureSkills?: boolean;
50
52
  featureMemory?: boolean;
51
53
  featurePolicy?: boolean;
52
- featureMetering?: boolean;
53
- featureApprovals?: boolean;
54
54
  }
55
55
  /**
56
56
  * AGI Farm Plugin Extension
57
57
  *
58
- * Provides multi-agent team bootstrapping, live dashboard, and auto-dispatcher.
58
+ * Provides multi-agent team bootstrapping with Paperclip-powered dashboard.
59
59
  */
60
60
  declare class AGIFarmExtension implements OpenClawExtension {
61
61
  id: string;
@@ -63,7 +63,7 @@ declare class AGIFarmExtension implements OpenClawExtension {
63
63
  version: string;
64
64
  private config;
65
65
  private context;
66
- private dashboardProcess;
66
+ private paperclipProcess;
67
67
  constructor(config?: Partial<AGIFarmConfig>);
68
68
  /**
69
69
  * Called when plugin is loaded by OpenClaw
@@ -74,24 +74,15 @@ declare class AGIFarmExtension implements OpenClawExtension {
74
74
  */
75
75
  onUnload(): Promise<void>;
76
76
  /**
77
- * Start the dashboard server
78
- */
79
- private startDashboard;
80
- /**
81
- * Register plugin commands (stub)
77
+ * Start the Paperclip server as a child process
82
78
  */
79
+ private startPaperclip;
83
80
  private registerCommands;
84
81
  /**
85
82
  * Check GitHub for plugin updates (non-blocking, best-effort)
86
83
  */
87
84
  private checkForUpdates;
88
- /**
89
- * Get dashboard URL
90
- */
91
85
  getDashboardUrl(): string;
92
- /**
93
- * Check if dashboard is running
94
- */
95
86
  isDashboardRunning(): boolean;
96
87
  }
97
88
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAClC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAClC,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iCAAiC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAqBD;;;;GAIG;AACH,cAAM,gBAAiB,YAAW,iBAAiB;IACjD,EAAE,SAAc;IAChB,IAAI,SAAyC;IAC7C,OAAO,SAAe;IAEtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM;IAI/C;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B;;OAEG;YACW,cAAc;IA4C5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;YACW,eAAe;IA6C7B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,OAAO;CAG9B;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAEzF;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CA4BrD;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAClC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAClC,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iCAAiC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,uBAAuB,CAAC,EAAE,eAAe,GAAG,eAAe,CAAC;IAC5D,oBAAoB;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAoBD;;;;GAIG;AACH,cAAM,gBAAiB,YAAW,iBAAiB;IACjD,EAAE,SAAc;IAChB,IAAI,SAAyC;IAC7C,OAAO,SAAe;IAEtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM;IAI/C;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B;;OAEG;YACW,cAAc;IAiD5B,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;YACW,eAAe;IA4C7B,eAAe,IAAI,MAAM;IAIzB,kBAAkB,IAAI,OAAO;CAG9B;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAEzF;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CA4BrD;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * AGI Farm - OpenClaw Plugin
3
3
  *
4
- * Multi-agent AI team builder with dashboard, auto-dispatcher, and infrastructure.
4
+ * Multi-agent AI team builder powered by Paperclip dashboard.
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
@@ -12,23 +12,22 @@ const require = createRequire(import.meta.url);
12
12
  const PKG_VERSION = require("../package.json").version;
13
13
  // ── Constants ─────────────────────────────────────────────────────────────────
14
14
  const DEFAULT_CONFIG = {
15
- dashboardPort: 8080,
16
- dashboardHost: "127.0.0.1",
17
- autoStartDashboard: true,
15
+ paperclipPort: 3100,
16
+ paperclipHost: "127.0.0.1",
17
+ autoStartPaperclip: true,
18
18
  autoCheckUpdates: true,
19
+ paperclipDeploymentMode: "local_trusted",
19
20
  featureJobs: true,
20
21
  featureSkills: true,
21
22
  featureMemory: true,
22
23
  featurePolicy: true,
23
- featureMetering: true,
24
- featureApprovals: true,
25
24
  };
26
25
  const GITHUB_RELEASES_URL = "https://api.github.com/repos/oabdelmaksoud/AGI-FARM-PLUGIN/releases/latest";
27
26
  // ── AGI Farm Extension ────────────────────────────────────────────────────────
28
27
  /**
29
28
  * AGI Farm Plugin Extension
30
29
  *
31
- * Provides multi-agent team bootstrapping, live dashboard, and auto-dispatcher.
30
+ * Provides multi-agent team bootstrapping with Paperclip-powered dashboard.
32
31
  */
33
32
  class AGIFarmExtension {
34
33
  id = "agi-farm";
@@ -36,7 +35,7 @@ class AGIFarmExtension {
36
35
  version = PKG_VERSION;
37
36
  config;
38
37
  context = null;
39
- dashboardProcess = null;
38
+ paperclipProcess = null;
40
39
  constructor(config = {}) {
41
40
  this.config = { ...DEFAULT_CONFIG, ...config };
42
41
  }
@@ -46,13 +45,11 @@ class AGIFarmExtension {
46
45
  async onLoad(context) {
47
46
  this.context = context;
48
47
  context.logger.info(`[agi-farm] Plugin loaded (v${this.version})`);
49
- context.logger.info(`[agi-farm] Config: dashboardPort=${this.config.dashboardPort}, autoStart=${this.config.autoStartDashboard}`);
50
- if (this.config.autoStartDashboard) {
51
- await this.startDashboard();
48
+ context.logger.info(`[agi-farm] Paperclip: port=${this.config.paperclipPort}, autoStart=${this.config.autoStartPaperclip}`);
49
+ if (this.config.autoStartPaperclip) {
50
+ await this.startPaperclip();
52
51
  }
53
- // Register commands
54
52
  this.registerCommands(context);
55
- // Non-blocking update check
56
53
  if (this.config.autoCheckUpdates) {
57
54
  this.checkForUpdates().catch(() => { });
58
55
  }
@@ -61,57 +58,53 @@ class AGIFarmExtension {
61
58
  * Called when OpenClaw is shutting down
62
59
  */
63
60
  async onUnload() {
64
- if (this.dashboardProcess) {
65
- this.context?.logger.info("[agi-farm] Stopping dashboard server...");
66
- this.dashboardProcess.kill("SIGTERM");
67
- this.dashboardProcess = null;
61
+ if (this.paperclipProcess) {
62
+ this.context?.logger.info("[agi-farm] Stopping Paperclip server...");
63
+ this.paperclipProcess.kill("SIGTERM");
64
+ this.paperclipProcess = null;
68
65
  }
69
66
  }
70
67
  /**
71
- * Start the dashboard server
68
+ * Start the Paperclip server as a child process
72
69
  */
73
- async startDashboard() {
70
+ async startPaperclip() {
74
71
  const { spawn } = await import("child_process");
75
72
  const { join } = await import("path");
76
- const dashboardScript = join(__dirname, "..", "server", "dashboard.js");
77
- this.context?.logger.info(`[agi-farm] Starting dashboard on ${this.config.dashboardHost}:${this.config.dashboardPort}`);
78
- this.dashboardProcess = spawn("node", [dashboardScript], {
73
+ const paperclipDir = join(__dirname, "..", "paperclip");
74
+ const paperclipEntry = join(paperclipDir, "server", "src", "index.ts");
75
+ this.context?.logger.info(`[agi-farm] Starting Paperclip on ${this.config.paperclipHost}:${this.config.paperclipPort}`);
76
+ this.paperclipProcess = spawn("node", ["--import", "tsx/esm", paperclipEntry], {
77
+ cwd: paperclipDir,
79
78
  env: {
80
79
  ...process.env,
81
- AGI_FARM_DASHBOARD_PORT: String(this.config.dashboardPort),
82
- AGI_FARM_DASHBOARD_HOST: this.config.dashboardHost,
83
- AGI_FARM_WORKSPACE: this.config.workspacePath || "",
84
- AGI_FARM_FEATURE_JOBS: this.config.featureJobs ? "1" : "0",
85
- AGI_FARM_FEATURE_SKILLS: this.config.featureSkills ? "1" : "0",
86
- AGI_FARM_FEATURE_MEMORY: this.config.featureMemory ? "1" : "0",
87
- AGI_FARM_FEATURE_POLICY: this.config.featurePolicy ? "1" : "0",
88
- AGI_FARM_FEATURE_METERING: this.config.featureMetering ? "1" : "0",
89
- AGI_FARM_FEATURE_APPROVALS: this.config.featureApprovals ? "1" : "0",
80
+ PAPERCLIP_HOST: this.config.paperclipHost,
81
+ PORT: String(this.config.paperclipPort),
82
+ PAPERCLIP_PORT: String(this.config.paperclipPort),
83
+ PAPERCLIP_DEPLOYMENT_MODE: this.config.paperclipDeploymentMode || "local_trusted",
84
+ PAPERCLIP_DEPLOYMENT_EXPOSURE: "private",
85
+ SERVE_UI: "true",
86
+ PAPERCLIP_MIGRATION_AUTO_APPLY: "true",
87
+ PAPERCLIP_MIGRATION_PROMPT: "never",
90
88
  },
91
89
  stdio: ["ignore", "pipe", "pipe"],
92
90
  });
93
- this.dashboardProcess.stdout?.on("data", (data) => {
94
- this.context?.logger.debug(`[agi-farm:dashboard] ${data.toString().trim()}`);
91
+ this.paperclipProcess.stdout?.on("data", (data) => {
92
+ this.context?.logger.debug(`[agi-farm:paperclip] ${data.toString().trim()}`);
95
93
  });
96
- this.dashboardProcess.stderr?.on("data", (data) => {
97
- this.context?.logger.error(`[agi-farm:dashboard] ${data.toString().trim()}`);
94
+ this.paperclipProcess.stderr?.on("data", (data) => {
95
+ this.context?.logger.error(`[agi-farm:paperclip] ${data.toString().trim()}`);
98
96
  });
99
- this.dashboardProcess.on("error", (err) => {
100
- this.context?.logger.error(`[agi-farm:dashboard] Failed to start: ${err.message}`);
97
+ this.paperclipProcess.on("error", (err) => {
98
+ this.context?.logger.error(`[agi-farm:paperclip] Failed to start: ${err.message}`);
101
99
  });
102
- this.dashboardProcess.on("exit", (code) => {
100
+ this.paperclipProcess.on("exit", (code) => {
103
101
  if (code !== 0 && code !== null) {
104
- this.context?.logger.warn(`[agi-farm:dashboard] Exited with code ${code}`);
102
+ this.context?.logger.warn(`[agi-farm:paperclip] Exited with code ${code}`);
105
103
  }
106
- this.dashboardProcess = null;
104
+ this.paperclipProcess = null;
107
105
  });
108
106
  }
109
- /**
110
- * Register plugin commands (stub)
111
- */
112
107
  registerCommands(context) {
113
- // Commands in this plugin are statically defined in openclaw.plugin.json
114
- // This method stub exists for future programmatic runtime command registration if needed
115
108
  context.logger.debug("[agi-farm] Commands registered statically via openclaw.plugin.json");
116
109
  }
117
110
  /**
@@ -132,7 +125,6 @@ class AGIFarmExtension {
132
125
  const latest = (data.tag_name || "").replace(/^v/, "");
133
126
  if (!latest)
134
127
  return;
135
- // Simple SemVer compare
136
128
  const cur = this.version.split(".").map(Number);
137
129
  const lat = latest.split(".").map(Number);
138
130
  let isNewer = false;
@@ -145,7 +137,7 @@ class AGIFarmExtension {
145
137
  break;
146
138
  }
147
139
  if (isNewer) {
148
- this.context?.logger.info(`[agi-farm] Update available: v${this.version} v${latest}`);
140
+ this.context?.logger.info(`[agi-farm] Update available: v${this.version} -> v${latest}`);
149
141
  if (data.html_url) {
150
142
  this.context?.logger.info(`[agi-farm] Release: ${data.html_url}`);
151
143
  }
@@ -153,20 +145,14 @@ class AGIFarmExtension {
153
145
  }
154
146
  }
155
147
  catch {
156
- // Network errors silently ignored — update check is best-effort
148
+ // Network errors silently ignored
157
149
  }
158
150
  }
159
- /**
160
- * Get dashboard URL
161
- */
162
151
  getDashboardUrl() {
163
- return `http://${this.config.dashboardHost}:${this.config.dashboardPort}`;
152
+ return `http://${this.config.paperclipHost}:${this.config.paperclipPort}`;
164
153
  }
165
- /**
166
- * Check if dashboard is running
167
- */
168
154
  isDashboardRunning() {
169
- return this.dashboardProcess !== null;
155
+ return this.paperclipProcess !== null;
170
156
  }
171
157
  }
172
158
  /**
@@ -185,14 +171,14 @@ export function register(context) {
185
171
  logger: context.logger,
186
172
  config: {},
187
173
  });
188
- context.logger.info(`[agi-farm] Dashboard URL: ${extension.getDashboardUrl()}`);
174
+ context.logger.info(`[agi-farm] Paperclip URL: ${extension.getDashboardUrl()}`);
189
175
  };
190
176
  const stop = async () => {
191
177
  await extension.onUnload();
192
178
  };
193
179
  if (typeof context.registerService === "function") {
194
180
  context.registerService({
195
- id: "agi-farm-dashboard",
181
+ id: "agi-farm-paperclip",
196
182
  start,
197
183
  stop,
198
184
  });
@@ -203,6 +189,5 @@ export function register(context) {
203
189
  context.logger.error(`[agi-farm] Failed to initialize: ${message}`);
204
190
  });
205
191
  }
206
- // Export types
207
192
  export { AGIFarmExtension };
208
193
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAY,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AAwDxF,iFAAiF;AAEjF,MAAM,cAAc,GAAkB;IACpC,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,WAAW;IAC1B,kBAAkB,EAAE,IAAI;IACxB,gBAAgB,EAAE,IAAI;IACtB,uBAAuB,EAAE,eAAe;IACxC,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,MAAM,mBAAmB,GAAG,4EAA4E,CAAC;AAEzG,iFAAiF;AAEjF;;;;GAIG;AACH,MAAM,gBAAgB;IACpB,EAAE,GAAG,UAAU,CAAC;IAChB,IAAI,GAAG,qCAAqC,CAAC;IAC7C,OAAO,GAAG,WAAW,CAAC;IAEd,MAAM,CAAgB;IACtB,OAAO,GAA4B,IAAI,CAAC;IACxC,gBAAgB,GAAwB,IAAI,CAAC;IAErD,YAAY,SAAiC,EAAE;QAC7C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAAyB;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,MAAM,CAAC,aAAa,eAAe,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE5H,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACrE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAEvE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAExH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAC3B,MAAM,EACN,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,EACvC;YACE,GAAG,EAAE,YAAY;YACjB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;gBACzC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACvC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACjD,yBAAyB,EAAE,IAAI,CAAC,MAAM,CAAC,uBAAuB,IAAI,eAAe;gBACjF,6BAA6B,EAAE,SAAS;gBACxC,QAAQ,EAAE,MAAM;gBAChB,8BAA8B,EAAE,MAAM;gBACtC,0BAA0B,EAAE,OAAO;aACpC;YACD,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CACF,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,yCAAyC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,OAAyB;QAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAC7F,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE;gBAC3C,OAAO,EAAE;oBACP,MAAM,EAAE,6BAA6B;oBACrC,YAAY,EAAE,YAAY,IAAI,CAAC,OAAO,EAAE;iBACzC;gBACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO;YAEpB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAG7B,CAAC;YACF,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAEvD,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAAC,OAAO,GAAG,IAAI,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAAE,MAAM;YAC3C,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CACvB,iCAAiC,IAAI,CAAC,OAAO,QAAQ,MAAM,EAAE,CAC9D,CAAC;gBACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CACvB,2CAA2C,CAC5C,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;IACH,CAAC;IAED,eAAe;QACb,OAAO,UAAU,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAC5E,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC;IACxC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAA8B;IACpE,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAsB;IAC7C,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,MAAM,SAAS,CAAC,MAAM,CAAC;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAClD,OAAO,CAAC,eAAe,CAAC;YACtB,EAAE,EAAE,oBAAoB;YACxB,KAAK;YACL,IAAI;SACL,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -2,8 +2,8 @@
2
2
  "id": "agi-farm",
3
3
  "kind": "team-orchestration",
4
4
  "name": "AGI Farm — Multi-Agent Team Builder",
5
- "version": "1.10.0",
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.",
5
+ "version": "3.3.1",
6
+ "description": "Bootstrap complete multi-agent AI teams with Paperclip dashboard, auto-dispatcher, and infrastructure. Includes interactive wizard, SOUL.md generation, comms setup, cron registration, and OpenClaw gateway integration.",
7
7
  "author": "oabdelmaksoud",
8
8
  "homepage": "https://github.com/oabdelmaksoud/AGI-FARM-PLUGIN",
9
9
  "openclawVersion": ">=1.0.0",
@@ -15,22 +15,28 @@
15
15
  "type": "object",
16
16
  "additionalProperties": false,
17
17
  "properties": {
18
- "dashboardPort": {
18
+ "paperclipPort": {
19
19
  "type": "number",
20
- "default": 8080,
20
+ "default": 3100,
21
21
  "minimum": 1024,
22
22
  "maximum": 65535,
23
- "description": "Port for the live ops dashboard (SSE + React)"
23
+ "description": "Port for the Paperclip dashboard server"
24
24
  },
25
- "dashboardHost": {
25
+ "paperclipHost": {
26
26
  "type": "string",
27
27
  "default": "127.0.0.1",
28
- "description": "Bind address for the dashboard server"
28
+ "description": "Bind address for the Paperclip server"
29
29
  },
30
- "autoStartDashboard": {
30
+ "autoStartPaperclip": {
31
31
  "type": "boolean",
32
32
  "default": true,
33
- "description": "Automatically start the dashboard when plugin loads"
33
+ "description": "Automatically start Paperclip when plugin loads"
34
+ },
35
+ "paperclipDeploymentMode": {
36
+ "type": "string",
37
+ "enum": ["local_trusted", "authenticated"],
38
+ "default": "local_trusted",
39
+ "description": "Paperclip deployment mode (local_trusted for dev, authenticated for production)"
34
40
  },
35
41
  "workspacePath": {
36
42
  "type": "string",
@@ -64,32 +70,26 @@
64
70
  "type": "boolean",
65
71
  "default": true,
66
72
  "description": "Enable policy engine for runtime actions"
67
- },
68
- "featureMetering": {
69
- "type": "boolean",
70
- "default": true,
71
- "description": "Enable usage metering APIs and dashboard data"
72
- },
73
- "featureApprovals": {
74
- "type": "boolean",
75
- "default": true,
76
- "description": "Enable approval workflows for policy-gated actions"
77
73
  }
78
74
  },
79
75
  "required": []
80
76
  },
81
77
  "uiHints": {
82
- "dashboardPort": {
83
- "label": "Dashboard Port",
84
- "description": "Port for the live ops dashboard (SSE + React)"
78
+ "paperclipPort": {
79
+ "label": "Paperclip Port",
80
+ "description": "Port for the Paperclip dashboard server"
81
+ },
82
+ "paperclipHost": {
83
+ "label": "Paperclip Host",
84
+ "description": "Bind address for the Paperclip server"
85
85
  },
86
- "dashboardHost": {
87
- "label": "Dashboard Host",
88
- "description": "Bind address for the dashboard server"
86
+ "autoStartPaperclip": {
87
+ "label": "Auto-Start Paperclip",
88
+ "description": "Automatically start Paperclip when OpenClaw loads"
89
89
  },
90
- "autoStartDashboard": {
91
- "label": "Auto-Start Dashboard",
92
- "description": "Automatically start the dashboard when OpenClaw loads"
90
+ "paperclipDeploymentMode": {
91
+ "label": "Deployment Mode",
92
+ "description": "Paperclip deployment mode"
93
93
  },
94
94
  "workspacePath": {
95
95
  "label": "Workspace Path",
@@ -118,14 +118,6 @@
118
118
  "featurePolicy": {
119
119
  "label": "Feature: Policy",
120
120
  "description": "Enable policy engine for runtime actions"
121
- },
122
- "featureMetering": {
123
- "label": "Feature: Metering",
124
- "description": "Enable usage metering APIs and dashboard data"
125
- },
126
- "featureApprovals": {
127
- "label": "Feature: Approvals",
128
- "description": "Enable approval workflows for policy-gated actions"
129
121
  }
130
122
  },
131
123
  "skills": [
@@ -140,6 +132,43 @@
140
132
  "hooks/git-push-reminder",
141
133
  "hooks/build-analyzer"
142
134
  ],
135
+ "tools": [
136
+ {
137
+ "name": "hire_specialist",
138
+ "description": "Autonomously hire and provision a new specialized agent to the team.",
139
+ "executable": "./skills/agi-farm/tools/hire_specialist.js"
140
+ },
141
+ {
142
+ "name": "create_company",
143
+ "description": "Create a new company/team in Paperclip dashboard. Use when starting a new venture or when no company exists.",
144
+ "executable": "./skills/agi-farm/tools/create_company.js"
145
+ },
146
+ {
147
+ "name": "create_project",
148
+ "description": "Create a new project in Paperclip. Auto-creates company if none exists.",
149
+ "executable": "./skills/agi-farm/tools/create_project.js"
150
+ },
151
+ {
152
+ "name": "create_task",
153
+ "description": "Create a task (issue) in Paperclip and assign to an agent. Auto-creates company if none exists.",
154
+ "executable": "./skills/agi-farm/tools/create_task.js"
155
+ },
156
+ {
157
+ "name": "update_task",
158
+ "description": "Update task status, reassign, change priority, or add comments in Paperclip.",
159
+ "executable": "./skills/agi-farm/tools/update_task.js"
160
+ },
161
+ {
162
+ "name": "list_projects",
163
+ "description": "List all projects in Paperclip. Use before creating a new project to avoid duplicates.",
164
+ "executable": "./skills/agi-farm/tools/list_projects.js"
165
+ },
166
+ {
167
+ "name": "manage_board",
168
+ "description": "Query board state — see tasks by status, agent, or project. Get stats and overview.",
169
+ "executable": "./skills/agi-farm/tools/manage_board.js"
170
+ }
171
+ ],
143
172
  "commands": [
144
173
  {
145
174
  "name": "agi-farm setup",
@@ -163,8 +192,8 @@
163
192
  },
164
193
  {
165
194
  "name": "agi-farm dashboard",
166
- "description": "Launch live ops room dashboard (React + SSE)",
167
- "handler": "./scripts/dashboard.js"
195
+ "description": "Launch Paperclip dashboard for team management",
196
+ "handler": "./scripts/paperclip.js"
168
197
  },
169
198
  {
170
199
  "name": "agi-farm dispatch",