62 lines
2.0 KiB
Markdown
62 lines
2.0 KiB
Markdown
# MACP OpenClaw Plugin
|
|
|
|
This plugin registers a new OpenClaw ACP runtime backend named `macp`.
|
|
|
|
When OpenClaw calls `sessions_spawn(runtime: "macp")`, the plugin now writes the prompt to a brief file, queues a MACP controller task in `.mosaic/orchestrator/tasks.json`, triggers `mosaic-orchestrator-run --once`, polls `.mosaic/orchestrator/results/<task-id>.json`, and streams the resulting output back as ACP runtime events.
|
|
|
|
## Current behavior
|
|
|
|
- Supports ACP `mode: "oneshot"` only
|
|
- Accepts any `agentId` and maps it to the queued MACP task `runtime`
|
|
- Defaults queued tasks to `dispatch: "yolo"` and `runtime: "codex"` when no override is provided
|
|
- Rejects persistent ACP sessions
|
|
- Keeps `src/pi-bridge.ts` for future `dispatch: "pi"` support
|
|
|
|
## Install in OpenClaw
|
|
|
|
Add the plugin entry to your OpenClaw config:
|
|
|
|
```json
|
|
{
|
|
"plugins": ["~/src/mosaic-mono-v1/plugins/macp/src/index.ts"]
|
|
}
|
|
```
|
|
|
|
## Optional config
|
|
|
|
```json
|
|
{
|
|
"plugins": [
|
|
{
|
|
"source": "~/src/mosaic-mono-v1/plugins/macp/src/index.ts",
|
|
"config": {
|
|
"defaultModel": "openai/gpt-5-mini",
|
|
"systemPrompt": "You are Pi running via MACP.",
|
|
"timeoutMs": 300000,
|
|
"logDir": "~/.openclaw/state/macp",
|
|
"repoRoot": "~/src/mosaic-mono-v1",
|
|
"orchDir": "~/src/mosaic-mono-v1/.mosaic/orchestrator",
|
|
"defaultDispatch": "yolo",
|
|
"defaultRuntime": "codex"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Runtime flow
|
|
|
|
1. OpenClaw ensures a oneshot `macp` session and preserves the requested `agentId`.
|
|
2. `runTurn` writes the turn prompt to `~/.mosaic/macp-oc/<session>-<request>.md`.
|
|
3. The plugin appends a pending MACP task to the configured orchestrator queue.
|
|
4. The plugin triggers `~/.config/mosaic/bin/mosaic-orchestrator-run --once` in the configured repo root.
|
|
5. The plugin polls for `.mosaic/orchestrator/results/<task-id>.json` and streams the result back to OpenClaw.
|
|
|
|
## Verification
|
|
|
|
```bash
|
|
pnpm --filter @mosaic/oc-macp-plugin typecheck || npx tsc --noEmit -p plugins/macp/tsconfig.json
|
|
pnpm prettier --write "plugins/macp/**/*.{ts,json,md}"
|
|
pnpm format:check
|
|
```
|