chore: initial scaffolding for SynthesisAgent.OpenclawPlugin
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.
This commit is contained in:
52
openclaw.plugin.json
Normal file
52
openclaw.plugin.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user