UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

771 lines (770 loc) 22.6 kB
{ "id": "signal", "activation": { "onStartup": false }, "channels": [ "signal" ], "configSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "channelConfigs": { "signal": { "schema": { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "name": { "type": "string" }, "capabilities": { "type": "array", "items": { "type": "string" } }, "markdown": { "type": "object", "properties": { "tables": { "type": "string", "enum": [ "off", "bullets", "code", "block" ] } }, "additionalProperties": false }, "enabled": { "type": "boolean" }, "configWrites": { "type": "boolean" }, "account": { "type": "string" }, "accountUuid": { "type": "string" }, "configPath": { "type": "string" }, "httpUrl": { "type": "string" }, "httpHost": { "type": "string" }, "httpPort": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "cliPath": { "type": "string" }, "autoStart": { "type": "boolean" }, "startupTimeoutMs": { "type": "integer", "minimum": 1000, "maximum": 120000 }, "receiveMode": { "anyOf": [ { "type": "string", "const": "on-start" }, { "type": "string", "const": "manual" } ] }, "ignoreAttachments": { "type": "boolean" }, "ignoreStories": { "type": "boolean" }, "sendReadReceipts": { "type": "boolean" }, "dmPolicy": { "default": "pairing", "type": "string", "enum": [ "pairing", "allowlist", "open", "disabled" ] }, "allowFrom": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "number" } ] } }, "defaultTo": { "type": "string" }, "groupAllowFrom": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "number" } ] } }, "groupPolicy": { "default": "allowlist", "type": "string", "enum": [ "open", "disabled", "allowlist" ] }, "contextVisibility": { "type": "string", "enum": [ "all", "allowlist", "allowlist_quote" ] }, "groups": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "requireMention": { "type": "boolean" }, "ingest": { "type": "boolean" }, "tools": { "type": "object", "properties": { "allow": { "type": "array", "items": { "type": "string" } }, "alsoAllow": { "type": "array", "items": { "type": "string" } }, "deny": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "toolsBySender": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "allow": { "type": "array", "items": { "type": "string" } }, "alsoAllow": { "type": "array", "items": { "type": "string" } }, "deny": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } }, "additionalProperties": false } }, "historyLimit": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "dmHistoryLimit": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "dms": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "historyLimit": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "additionalProperties": false } }, "textChunkLimit": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "chunkMode": { "type": "string", "enum": [ "length", "newline" ] }, "blockStreaming": { "type": "boolean" }, "blockStreamingCoalesce": { "type": "object", "properties": { "minChars": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxChars": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "idleMs": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "additionalProperties": false }, "mediaMaxMb": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "reactionNotifications": { "type": "string", "enum": [ "off", "own", "all", "allowlist" ] }, "reactionAllowlist": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "number" } ] } }, "actions": { "type": "object", "properties": { "reactions": { "type": "boolean" } }, "additionalProperties": false }, "reactionLevel": { "type": "string", "enum": [ "off", "ack", "minimal", "extensive" ] }, "heartbeat": { "type": "object", "properties": { "showOk": { "type": "boolean" }, "showAlerts": { "type": "boolean" }, "useIndicator": { "type": "boolean" } }, "additionalProperties": false }, "healthMonitor": { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "additionalProperties": false }, "responsePrefix": { "type": "string" }, "apiMode": { "type": "string", "enum": [ "auto", "native", "container" ] }, "accounts": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "name": { "type": "string" }, "capabilities": { "type": "array", "items": { "type": "string" } }, "markdown": { "type": "object", "properties": { "tables": { "type": "string", "enum": [ "off", "bullets", "code", "block" ] } }, "additionalProperties": false }, "enabled": { "type": "boolean" }, "configWrites": { "type": "boolean" }, "account": { "type": "string" }, "accountUuid": { "type": "string" }, "configPath": { "type": "string" }, "httpUrl": { "type": "string" }, "httpHost": { "type": "string" }, "httpPort": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "cliPath": { "type": "string" }, "autoStart": { "type": "boolean" }, "startupTimeoutMs": { "type": "integer", "minimum": 1000, "maximum": 120000 }, "receiveMode": { "anyOf": [ { "type": "string", "const": "on-start" }, { "type": "string", "const": "manual" } ] }, "ignoreAttachments": { "type": "boolean" }, "ignoreStories": { "type": "boolean" }, "sendReadReceipts": { "type": "boolean" }, "dmPolicy": { "default": "pairing", "type": "string", "enum": [ "pairing", "allowlist", "open", "disabled" ] }, "allowFrom": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "number" } ] } }, "defaultTo": { "type": "string" }, "groupAllowFrom": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "number" } ] } }, "groupPolicy": { "default": "allowlist", "type": "string", "enum": [ "open", "disabled", "allowlist" ] }, "contextVisibility": { "type": "string", "enum": [ "all", "allowlist", "allowlist_quote" ] }, "groups": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "requireMention": { "type": "boolean" }, "ingest": { "type": "boolean" }, "tools": { "type": "object", "properties": { "allow": { "type": "array", "items": { "type": "string" } }, "alsoAllow": { "type": "array", "items": { "type": "string" } }, "deny": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "toolsBySender": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "allow": { "type": "array", "items": { "type": "string" } }, "alsoAllow": { "type": "array", "items": { "type": "string" } }, "deny": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } }, "additionalProperties": false } }, "historyLimit": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "dmHistoryLimit": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "dms": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "historyLimit": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "additionalProperties": false } }, "textChunkLimit": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "chunkMode": { "type": "string", "enum": [ "length", "newline" ] }, "blockStreaming": { "type": "boolean" }, "blockStreamingCoalesce": { "type": "object", "properties": { "minChars": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxChars": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "idleMs": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "additionalProperties": false }, "mediaMaxMb": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "reactionNotifications": { "type": "string", "enum": [ "off", "own", "all", "allowlist" ] }, "reactionAllowlist": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "number" } ] } }, "actions": { "type": "object", "properties": { "reactions": { "type": "boolean" } }, "additionalProperties": false }, "reactionLevel": { "type": "string", "enum": [ "off", "ack", "minimal", "extensive" ] }, "heartbeat": { "type": "object", "properties": { "showOk": { "type": "boolean" }, "showAlerts": { "type": "boolean" }, "useIndicator": { "type": "boolean" } }, "additionalProperties": false }, "healthMonitor": { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "additionalProperties": false }, "responsePrefix": { "type": "string" } }, "required": [ "dmPolicy", "groupPolicy" ], "additionalProperties": false } }, "defaultAccount": { "type": "string" } }, "required": [ "dmPolicy", "groupPolicy" ], "additionalProperties": false }, "label": "Signal", "description": "signal-cli linked device; more setup (David Reagans: \"Hop on Discord.\").", "uiHints": { "": { "label": "Signal", "help": "Signal channel provider configuration including account identity and DM policy behavior. Keep account mapping explicit so routing remains stable across multi-device setups." }, "dmPolicy": { "label": "Signal DM Policy", "help": "Direct message access control (\"pairing\" recommended). \"open\" requires channels.signal.allowFrom=[\"*\"]." }, "configWrites": { "label": "Signal Config Writes", "help": "Allow Signal to write config in response to channel events/commands (default: true)." }, "account": { "label": "Signal Account", "help": "Signal account identifier (phone/number handle) used to bind this channel config to a specific Signal identity. Keep this aligned with your linked device/session state." }, "configPath": { "label": "Signal CLI Config Path", "help": "Optional directory passed to signal-cli via --config when the service needs a non-default signal-cli data path." } } } } }