{"_id":"@coderage-labs/armada-control-plugin","_rev":"2-49954de93c03fc265c29a37a48592afa","name":"@coderage-labs/armada-control-plugin","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@coderage-labs/armada-control-plugin","version":"0.1.0","keywords":["openclaw","openclaw-plugin","armada","control","operator"],"author":{"name":"Chris Kitch"},"license":"MIT","_id":"@coderage-labs/armada-control-plugin@0.1.0","maintainers":[{"name":"kriskit","email":"chris@coderage.co.uk"}],"homepage":"https://github.com/coderage-labs/armada#readme","bugs":{"url":"https://github.com/coderage-labs/armada/issues"},"dist":{"shasum":"91f5d3c3d1882e54ac4701d6599e3e1988e7a49c","tarball":"https://registry.npmjs.org/@coderage-labs/armada-control-plugin/-/armada-control-plugin-0.1.0.tgz","fileCount":3,"integrity":"sha512-7La06K5i0jRrVJySZvm6HayOPABSSuq561bc2j2jQE5OdDT75UKvNxOluVTgUM+a7lIs8iUgjfac7oglG9VNCQ==","signatures":[{"sig":"MEQCIAZT0KrbuCv/6TFNTOxNCRitOKPodvh9M5FzN3/ZOYtDAiATqFzt8a9VB7sKeXa7EMTl5BeGt7o6/KM4mQP6ffD/fQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3005},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"54a2a667ca1a0f4ae247e7584a093061b6865c59","scripts":{"test":"node --test dist/**/*.test.js","build":"tsc"},"_npmUser":{"name":"kriskit","email":"chris@coderage.co.uk"},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/coderage-labs/armada.git","type":"git","directory":"plugins/armada-control"},"_npmVersion":"10.9.4","description":"Armada control plugin for OpenClaw — operator-level management tools","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@coderage-labs/armada-plugin-shared":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.2"},"_npmOperationalInternal":{"tmp":"tmp/armada-control-plugin_0.1.0_1773570876744_0.28886851147044834","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@coderage-labs/armada-control-plugin","version":"0.2.0","description":"Armada control plugin for OpenClaw — operator-level management tools","main":"dist/index.js","types":"dist/index.d.ts","type":"module","scripts":{"build":"tsc","test":"node --test dist/**/*.test.js"},"keywords":["openclaw","openclaw-plugin","armada","control","operator"],"author":{"name":"Chris Kitch"},"license":"MIT","dependencies":{"@coderage-labs/armada-plugin-shared":"0.2.0"},"devDependencies":{"@types/node":"^25.3.2"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/coderage-labs/armada.git","directory":"plugins/armada-control"},"openclaw":{"extensions":["./dist/index.js"]},"gitHead":"44891b3f57857aee2244df24369fc4155600ff9e","_id":"@coderage-labs/armada-control-plugin@0.2.0","bugs":{"url":"https://github.com/coderage-labs/armada/issues"},"homepage":"https://github.com/coderage-labs/armada#readme","_nodeVersion":"22.22.2","_npmVersion":"11.6.2","dist":{"integrity":"sha512-j8+d4VrLrxYCqM6rOTDe0pBo1mt/H/h+tPDJOmnwnjORH0WguNCXkVUC+CkTABqdzc0fqeshH+ClAB2pcZ+F2w==","shasum":"5e7bb11fd3032fbe0958ef10e115603edbd8e479","tarball":"https://registry.npmjs.org/@coderage-labs/armada-control-plugin/-/armada-control-plugin-0.2.0.tgz","fileCount":7,"unpackedSize":77916,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coderage-labs%2farmada-control-plugin@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDnodvIx5Ag1UawWMCeSJW9Fnnst4uYMmr/oOtCBfnsbAIgBqtctH29sFr3WDJMZ1wfoDXtZdeLIHdUdQQA16WHvw0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:753a8033-6666-4a9c-a14b-596e3324c422"}},"directories":{},"maintainers":[{"name":"kriskit","email":"chris@coderage.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/armada-control-plugin_0.2.0_1777288160500_0.719597623830315"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-15T10:34:36.669Z","modified":"2026-04-27T11:09:20.965Z","0.1.0":"2026-03-15T10:34:36.879Z","0.2.0":"2026-04-27T11:09:20.628Z"},"bugs":{"url":"https://github.com/coderage-labs/armada/issues"},"author":{"name":"Chris Kitch"},"license":"MIT","homepage":"https://github.com/coderage-labs/armada#readme","keywords":["openclaw","openclaw-plugin","armada","control","operator"],"repository":{"type":"git","url":"git+https://github.com/coderage-labs/armada.git","directory":"plugins/armada-control"},"description":"Armada control plugin for OpenClaw — operator-level management tools","maintainers":[{"name":"kriskit","email":"chris@coderage.co.uk"}],"readme":"# @coderage-labs/armada-control-plugin\n\nOpenClaw plugin for the armada operator agent. Provides tools to dispatch tasks, check armada status, and manage workflows — without being a managed instance.\n\n## What It Does\n\n- **Task dispatch** — send work to any agent in the armada by name (`armada_task`)\n- **Armada status** — query health and status of all instances and agents (`armada_status`)\n- **Auto-generated tools** — all control plane API endpoints exposed as tools dynamically via `/api/meta/tools`\n- **Result ingestion** — receives async task results at `/armada/result` and feeds them back to the operator's LLM session\n- **Workflow events** — receives workflow gate/completion notifications at `/armada/notify`\n\n## Tools\n\n### Manual tools\n\n| Tool | Description |\n|------|-------------|\n| `armada_task(target, message)` | Send an async task to an armada agent by name. Returns immediately; result arrives later. |\n| `armada_status()` | Get health and status of all armada instances and agents. |\n\n### Auto-generated tools\n\nAny `registerToolDef()` call on the control plane automatically becomes an available tool on the operator. This includes (but is not limited to):\n\n- `armada_template_drift` / `armada_template_sync` — check and fix config drift\n- `armada_inbound_webhooks_*` — manage inbound webhooks\n- Workflow management tools\n- Any other tools registered via the control plane's tool registry\n\n## Configuration\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"armada-control-plugin\": {\n        \"config\": {\n          \"armadaApiUrl\": \"http://armada-control:3001\",\n          \"armadaApiToken\": \"YOUR_TOKEN\",\n          \"callbackUrl\": \"http://your-operator-instance:18789\",\n          \"hooksToken\": \"SHARED_ORG_HOOKS_TOKEN\"\n        }\n      }\n    }\n  }\n}\n```\n\n### Config Fields\n\n| Field | Required | Description |\n|-------|----------|-------------|\n| `armadaApiUrl` | ✅ | Armada control API URL (e.g. `http://armada-control:3001`) |\n| `armadaApiToken` | ✅ | API Bearer token for authenticating to the control plane |\n| `callbackUrl` | ✅ | The operator instance's gateway URL. Task results from managed agents are POSTed to `{callbackUrl}/armada/result`. Without this, `armada_task` calls won't receive responses. |\n| `hooksToken` | — | Shared org-level hooks token for instance authentication |\n\n> ⚠️ `callbackUrl` is required for async task dispatch to work. Set it to the operator instance's OpenClaw gateway URL (e.g. `http://robin:18789` or whatever hostname the managed instances can reach the operator at).\n\n## HTTP Routes\n\nRegistered on the operator's OpenClaw gateway:\n\n| Method | Path | Description |\n|--------|------|-------------|\n| `POST` | `/armada/result` | Receive task results from managed instances. Feeds result back into operator's coordinator session. |\n| `POST` | `/armada/notify` | Receive workflow gate/completion events. |\n\n## Links\n\n- [Armada](https://github.com/coderage-labs/armada) — Control plane and dashboard\n- [Architecture](https://github.com/coderage-labs/armada/blob/main/docs/ARCHITECTURE.md) — How the operator plugin fits into the communication flow\n- [Plugin Guide](https://github.com/coderage-labs/armada/blob/main/docs/PLUGIN-GUIDE.md) — Building OpenClaw plugins\n","readmeFilename":"README.md"}