OpenClaw plugin that manages long-lived interactive Claude Code processes per OpenClaw session. Process manager + session-mapping persistence + bridge WebSocket server skeleton. Will be rewritten to follow the contractor-agent HTTP model-provider pattern (register as `synthesis-claude-bridge` provider, receive /v1/chat/completions, dispatch to channel notification on the bound Claude process). See parent repo's STATUS.md for the punch list.
53 lines
1.7 KiB
JSON
53 lines
1.7 KiB
JSON
{
|
|
"id": "synthesis-agent",
|
|
"name": "SynthesisAgent",
|
|
"description": "Manages long-lived interactive Claude Code processes per OpenClaw session; bridges OpenClaw events <-> SynthesisAgent.ClaudePlugin",
|
|
"activation": {
|
|
"onStartup": true
|
|
},
|
|
"commandAliases": [
|
|
{ "name": "synthesis" }
|
|
],
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"bridgePort": {
|
|
"type": "number",
|
|
"default": 18801,
|
|
"description": "TCP port the bridge WebSocket server binds on (127.0.0.1)"
|
|
},
|
|
"bridgeToken": {
|
|
"type": "string",
|
|
"default": "synthesis-local",
|
|
"description": "Shared secret each ClaudePlugin instance must present in its hello frame"
|
|
},
|
|
"claudePluginRef": {
|
|
"type": "string",
|
|
"default": "plugin:synthesis-claude@local",
|
|
"description": "The --channels argument passed to claude on spawn"
|
|
},
|
|
"permissionMode": {
|
|
"type": "string",
|
|
"default": "acceptEdits",
|
|
"description": "Claude Code permission mode for spawned sessions"
|
|
},
|
|
"idleKillMs": {
|
|
"type": "number",
|
|
"default": 3600000,
|
|
"description": "Idle time after which a session's claude process is killed; next message resumes it"
|
|
},
|
|
"maxProcesses": {
|
|
"type": "number",
|
|
"default": 16,
|
|
"description": "Hard cap on concurrent claude processes; new sessions beyond this evict the oldest idle one"
|
|
},
|
|
"mappingDbPath": {
|
|
"type": "string",
|
|
"default": "~/.openclaw/synthesis/sessions.json",
|
|
"description": "Where openclaw_session <-> claude_session UUID mapping is persisted"
|
|
}
|
|
}
|
|
}
|
|
}
|