Real channel-turn dispatch (resolveAgentRoute + finalizeInboundContext + dispatchInboundReplyWithBase), wakeup->drop/dispatch, messaging target grammar (fabric:<id>) + outbound.sendText, tools use execute/parameters. Verified live: human msg in Fabric -> wakeup -> openclaw agent runs -> reply posted back into the Fabric channel as the agent. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
70 lines
2.1 KiB
JSON
70 lines
2.1 KiB
JSON
{
|
|
"id": "fabric",
|
|
"kind": "channel",
|
|
"channels": ["fabric"],
|
|
"name": "Fabric",
|
|
"description": "Fabric channel plugin — OpenClaw agents speak in Fabric guilds",
|
|
"activation": {
|
|
"onStartup": true
|
|
},
|
|
"contracts": {
|
|
"tools": [
|
|
"fabric-register",
|
|
"create-chat-channel",
|
|
"create-work-channel",
|
|
"create-report-channel",
|
|
"create-discussion-channel",
|
|
"discussion-complete"
|
|
]
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"identityFilePath": {
|
|
"type": "string",
|
|
"description": "Path to the agent identity registry JSON (agentId -> Fabric API key). Default ~/.openclaw/fabric-identity.json"
|
|
},
|
|
"debugMode": { "type": "boolean", "default": false }
|
|
},
|
|
"required": []
|
|
},
|
|
"channelConfigs": {
|
|
"fabric": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"centerApiBase": {
|
|
"type": "string",
|
|
"description": "Fabric Center API base, e.g. http://localhost:7001/api"
|
|
},
|
|
"dmSecurity": { "type": "string" },
|
|
"dmPolicy": { "type": "string" },
|
|
"enabled": { "type": "boolean" },
|
|
"allowFrom": { "type": "array", "items": { "type": "string" } },
|
|
"defaultAccount": { "type": "string" },
|
|
"accounts": {
|
|
"type": "object",
|
|
"description": "agent = account; key is the openclaw agentId",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"fabricApiKey": { "type": "string" },
|
|
"centerApiBase": { "type": "string" },
|
|
"enabled": { "type": "boolean" },
|
|
"dmPolicy": { "type": "string" },
|
|
"allowFrom": { "type": "array", "items": { "type": "string" } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"uiHints": {
|
|
"centerApiBase": { "label": "Center API base" }
|
|
}
|
|
}
|
|
}
|
|
}
|