{ "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", "create-sub-discussion", "discussion-complete", "close-sub-discussion", "fabric-canvas", "fabric-channel", "fabric-send-message", "fabric-channel-list", "fabric-message-history", "fabric-guild-list", "fabric-channel-set-purpose" ] }, "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" }, "commandsSyncKey": { "type": "string", "minLength": 1, "description": "Shared secret that must equal the guild's FABRIC_BACKEND_GUILD_COMMANDS_SYNC_KEY. Required to register the slash-command catalog (Guild C-2). Read it from the guild via: docker exec fabric-backend-guild node dist/cli/print-commands-sync-key.js" }, "coalesce": { "type": "boolean", "description": "Merge a split agent turn (text → thinking/tool → text) into ONE Fabric message. Flushed deterministically on the agent_end hook. Default true; false = raw per-segment posting." }, "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" } } } } } }, "required": ["commandsSyncKey"] }, "uiHints": { "centerApiBase": { "label": "Center API base" }, "commandsSyncKey": { "label": "Commands sync key" } } } } }