Files
stack/plugins/macp/README.md
Jarvis 774b76447d
Some checks failed
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
fix: rename all packages from @mosaic/* to @mosaicstack/*
- Updated all package.json name fields and dependency references
- Updated all TypeScript/JavaScript imports
- Updated .woodpecker/publish.yml filters and registry paths
- Updated tools/install.sh scope default
- Updated .npmrc registry paths (worktree + host)
- Enhanced update-checker.ts with checkForAllUpdates() multi-package support
- Updated CLI update command to show table of all packages
- Added KNOWN_PACKAGES, formatAllPackagesTable, getInstallAllCommand
- Marked checkForUpdate() with @deprecated JSDoc

Closes #391
2026-04-04 21:43:23 -05:00

62 lines
2.1 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 @mosaicstack/oc-macp-plugin typecheck || npx tsc --noEmit -p plugins/macp/tsconfig.json
pnpm prettier --write "plugins/macp/**/*.{ts,json,md}"
pnpm format:check
```