{
  "pluginId": "openclaw-lark",
  "channel": "feishu",
  "rawSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
      "appId": {
        "type": "string"
      },
      "appSecret": {
        "type": "string"
      },
      "encryptKey": {
        "type": "string"
      },
      "verificationToken": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "nickname": {
        "type": "string"
      },
      "enabled": {
        "type": "boolean"
      },
      "domain": {
        "anyOf": [
          {
            "type": "string",
            "const": "feishu"
          },
          {
            "type": "string",
            "const": "lark"
          },
          {
            "type": "string",
            "pattern": "^https:\\/\\/"
          }
        ]
      },
      "connectionMode": {
        "type": "string",
        "enum": [
          "websocket",
          "webhook"
        ]
      },
      "webhookPath": {
        "type": "string"
      },
      "webhookPort": {
        "type": "number"
      },
      "dmPolicy": {
        "default": "open",
        "readOnly": true,
        "description": "单聊开放策略（固定值，不可修改）",
        "type": "string",
        "enum": [
          "open",
          "pairing",
          "allowlist",
          "disabled"
        ]
      },
      "allowFrom": {
        "default": [
          "*"
        ],
        "readOnly": true,
        "description": "私聊发送者白名单（固定为通配，不可修改）",
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "groupPolicy": {
        "default": "open",
        "readOnly": true,
        "description": "群聊开放策略（固定值，不可修改）",
        "type": "string",
        "enum": [
          "open",
          "allowlist",
          "disabled"
        ]
      },
      "groupAllowFrom": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "requireMention": {
        "default": true,
        "readOnly": true,
        "description": "群聊必须 @bot 才响应（固定值，不可修改）",
        "type": "boolean"
      },
      "groups": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {
          "type": "object",
          "properties": {
            "groupPolicy": {
              "type": "string",
              "enum": [
                "open",
                "allowlist",
                "disabled"
              ]
            },
            "requireMention": {
              "type": "boolean"
            },
            "tools": {
              "type": "object",
              "properties": {
                "allow": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "deny": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            },
            "skills": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "enabled": {
              "type": "boolean"
            },
            "allowFrom": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "systemPrompt": {
              "type": "string"
            }
          }
        }
      },
      "historyLimit": {
        "type": "number"
      },
      "dmHistoryLimit": {
        "type": "number"
      },
      "dms": {
        "type": "object",
        "properties": {
          "historyLimit": {
            "type": "number"
          }
        }
      },
      "textChunkLimit": {
        "type": "number"
      },
      "chunkMode": {
        "type": "string",
        "enum": [
          "newline",
          "paragraph",
          "none"
        ]
      },
      "blockStreamingCoalesce": {
        "type": "object",
        "properties": {
          "minChars": {
            "type": "number"
          },
          "maxChars": {
            "type": "number"
          },
          "idleMs": {
            "type": "number"
          }
        }
      },
      "mediaMaxMb": {
        "type": "number"
      },
      "heartbeat": {
        "type": "object",
        "properties": {
          "every": {
            "type": "string"
          },
          "activeHours": {
            "type": "object",
            "properties": {
              "start": {
                "type": "string"
              },
              "end": {
                "type": "string"
              },
              "timezone": {
                "type": "string"
              }
            }
          },
          "target": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "prompt": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          }
        }
      },
      "replyMode": {
        "anyOf": [
          {
            "type": "string",
            "enum": [
              "auto",
              "static",
              "streaming"
            ]
          },
          {
            "type": "object",
            "properties": {
              "default": {
                "type": "string",
                "enum": [
                  "auto",
                  "static",
                  "streaming"
                ]
              },
              "group": {
                "type": "string",
                "enum": [
                  "auto",
                  "static",
                  "streaming"
                ]
              },
              "direct": {
                "type": "string",
                "enum": [
                  "auto",
                  "static",
                  "streaming"
                ]
              }
            }
          }
        ]
      },
      "streaming": {
        "default": false,
        "type": "boolean"
      },
      "blockStreaming": {
        "type": "boolean"
      },
      "tools": {
        "type": "object",
        "properties": {
          "doc": {
            "type": "boolean"
          },
          "wiki": {
            "type": "boolean"
          },
          "drive": {
            "type": "boolean"
          },
          "perm": {
            "type": "boolean"
          },
          "scopes": {
            "type": "boolean"
          }
        }
      },
      "footer": {
        "type": "object",
        "properties": {
          "status": {
            "type": "boolean"
          },
          "elapsed": {
            "type": "boolean"
          }
        }
      },
      "markdown": {
        "type": "object",
        "properties": {
          "tables": {
            "type": "string",
            "enum": [
              "off",
              "bullets",
              "code"
            ]
          }
        }
      },
      "configWrites": {
        "type": "boolean"
      },
      "capabilities": {
        "type": "object",
        "properties": {
          "image": {
            "type": "boolean"
          },
          "audio": {
            "type": "boolean"
          },
          "video": {
            "type": "boolean"
          }
        }
      },
      "dedup": {
        "type": "object",
        "properties": {
          "ttlMs": {
            "type": "number"
          },
          "maxEntries": {
            "type": "number"
          }
        }
      },
      "reactionNotifications": {
        "type": "string",
        "enum": [
          "off",
          "own",
          "all"
        ]
      },
      "threadSession": {
        "type": "boolean"
      },
      "uat": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "allowedScopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blockedScopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "gatewayBaseUrl": {
        "type": "string"
      },
      "gatewayToken": {
        "type": "string"
      },
      "uploadHost": {
        "type": "string"
      },
      "injectSenderContextToPrompt": {
        "default": false,
        "type": "boolean"
      },
      "showFinalAnswerOnly": {
        "default": false,
        "type": "boolean"
      },
      "yuceImageCookieStrictOrigin": {
        "type": "boolean"
      },
      "modelName": {
        "type": "string"
      },
      "scopeType": {
        "readOnly": true,
        "description": "Workspace 作用域类型（由后端运行时自动注入）",
        "type": "string",
        "enum": [
          "workspace"
        ]
      },
      "workspaceId": {
        "readOnly": true,
        "description": "Workspace ID（由后端运行时自动注入）",
        "type": "string"
      },
      "projectId": {
        "readOnly": true,
        "description": "项目ID（历史兼容字段，由后端运行时自动注入）",
        "type": "string"
      },
      "scope_type": {
        "readOnly": true,
        "description": "Workspace 作用域类型（snake_case 兼容字段）",
        "type": "string",
        "enum": [
          "workspace"
        ]
      },
      "workspace_id": {
        "readOnly": true,
        "description": "Workspace ID（snake_case 字段）",
        "type": "string"
      },
      "project_id": {
        "readOnly": true,
        "description": "项目ID（snake_case 历史兼容字段）",
        "type": "string"
      },
      "separateSessionByConversation": {
        "default": true,
        "readOnly": true,
        "description": "是否按单聊/群聊区分 session（固定值，不可修改）",
        "type": "boolean"
      },
      "groupSessionScope": {
        "default": "group_sender",
        "readOnly": true,
        "description": "群组按人隔离会话模式（固定值，不可修改）",
        "type": "string",
        "enum": [
          "group_sender"
        ]
      },
      "accounts": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {
          "type": "object",
          "properties": {
            "appId": {
              "type": "string"
            },
            "appSecret": {
              "type": "string"
            },
            "encryptKey": {
              "type": "string"
            },
            "verificationToken": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "nickname": {
              "type": "string"
            },
            "enabled": {
              "type": "boolean"
            },
            "domain": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "feishu"
                },
                {
                  "type": "string",
                  "const": "lark"
                },
                {
                  "type": "string",
                  "pattern": "^https:\\/\\/"
                }
              ]
            },
            "connectionMode": {
              "type": "string",
              "enum": [
                "websocket",
                "webhook"
              ]
            },
            "webhookPath": {
              "type": "string"
            },
            "webhookPort": {
              "type": "number"
            },
            "dmPolicy": {
              "default": "open",
              "readOnly": true,
              "description": "单聊开放策略（固定值，不可修改）",
              "type": "string",
              "enum": [
                "open",
                "pairing",
                "allowlist",
                "disabled"
              ]
            },
            "allowFrom": {
              "default": [
                "*"
              ],
              "readOnly": true,
              "description": "私聊发送者白名单（固定为通配，不可修改）",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "groupPolicy": {
              "default": "open",
              "readOnly": true,
              "description": "群聊开放策略（固定值，不可修改）",
              "type": "string",
              "enum": [
                "open",
                "allowlist",
                "disabled"
              ]
            },
            "groupAllowFrom": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "requireMention": {
              "default": true,
              "readOnly": true,
              "description": "群聊必须 @bot 才响应（固定值，不可修改）",
              "type": "boolean"
            },
            "groups": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "groupPolicy": {
                    "type": "string",
                    "enum": [
                      "open",
                      "allowlist",
                      "disabled"
                    ]
                  },
                  "requireMention": {
                    "type": "boolean"
                  },
                  "tools": {
                    "type": "object",
                    "properties": {
                      "allow": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "deny": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "skills": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "enabled": {
                    "type": "boolean"
                  },
                  "allowFrom": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "systemPrompt": {
                    "type": "string"
                  }
                }
              }
            },
            "historyLimit": {
              "type": "number"
            },
            "dmHistoryLimit": {
              "type": "number"
            },
            "dms": {
              "type": "object",
              "properties": {
                "historyLimit": {
                  "type": "number"
                }
              }
            },
            "textChunkLimit": {
              "type": "number"
            },
            "chunkMode": {
              "type": "string",
              "enum": [
                "newline",
                "paragraph",
                "none"
              ]
            },
            "blockStreamingCoalesce": {
              "type": "object",
              "properties": {
                "minChars": {
                  "type": "number"
                },
                "maxChars": {
                  "type": "number"
                },
                "idleMs": {
                  "type": "number"
                }
              }
            },
            "mediaMaxMb": {
              "type": "number"
            },
            "heartbeat": {
              "type": "object",
              "properties": {
                "every": {
                  "type": "string"
                },
                "activeHours": {
                  "type": "object",
                  "properties": {
                    "start": {
                      "type": "string"
                    },
                    "end": {
                      "type": "string"
                    },
                    "timezone": {
                      "type": "string"
                    }
                  }
                },
                "target": {
                  "type": "string"
                },
                "to": {
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "accountId": {
                  "type": "string"
                }
              }
            },
            "replyMode": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "auto",
                    "static",
                    "streaming"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "default": {
                      "type": "string",
                      "enum": [
                        "auto",
                        "static",
                        "streaming"
                      ]
                    },
                    "group": {
                      "type": "string",
                      "enum": [
                        "auto",
                        "static",
                        "streaming"
                      ]
                    },
                    "direct": {
                      "type": "string",
                      "enum": [
                        "auto",
                        "static",
                        "streaming"
                      ]
                    }
                  }
                }
              ]
            },
            "streaming": {
              "default": false,
              "type": "boolean"
            },
            "blockStreaming": {
              "type": "boolean"
            },
            "tools": {
              "type": "object",
              "properties": {
                "doc": {
                  "type": "boolean"
                },
                "wiki": {
                  "type": "boolean"
                },
                "drive": {
                  "type": "boolean"
                },
                "perm": {
                  "type": "boolean"
                },
                "scopes": {
                  "type": "boolean"
                }
              }
            },
            "footer": {
              "type": "object",
              "properties": {
                "status": {
                  "type": "boolean"
                },
                "elapsed": {
                  "type": "boolean"
                }
              }
            },
            "markdown": {
              "type": "object",
              "properties": {
                "tables": {
                  "type": "string",
                  "enum": [
                    "off",
                    "bullets",
                    "code"
                  ]
                }
              }
            },
            "configWrites": {
              "type": "boolean"
            },
            "capabilities": {
              "type": "object",
              "properties": {
                "image": {
                  "type": "boolean"
                },
                "audio": {
                  "type": "boolean"
                },
                "video": {
                  "type": "boolean"
                }
              }
            },
            "dedup": {
              "type": "object",
              "properties": {
                "ttlMs": {
                  "type": "number"
                },
                "maxEntries": {
                  "type": "number"
                }
              }
            },
            "reactionNotifications": {
              "type": "string",
              "enum": [
                "off",
                "own",
                "all"
              ]
            },
            "threadSession": {
              "type": "boolean"
            },
            "uat": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                },
                "allowedScopes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "blockedScopes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            },
            "gatewayBaseUrl": {
              "type": "string"
            },
            "gatewayToken": {
              "type": "string"
            },
            "uploadHost": {
              "type": "string"
            },
            "injectSenderContextToPrompt": {
              "default": false,
              "type": "boolean"
            },
            "showFinalAnswerOnly": {
              "default": false,
              "type": "boolean"
            },
            "yuceImageCookieStrictOrigin": {
              "type": "boolean"
            },
            "modelName": {
              "type": "string"
            },
            "scopeType": {
              "readOnly": true,
              "description": "Workspace 作用域类型（由后端运行时自动注入）",
              "type": "string",
              "enum": [
                "workspace"
              ]
            },
            "workspaceId": {
              "readOnly": true,
              "description": "Workspace ID（由后端运行时自动注入）",
              "type": "string"
            },
            "projectId": {
              "readOnly": true,
              "description": "项目ID（历史兼容字段，由后端运行时自动注入）",
              "type": "string"
            },
            "scope_type": {
              "readOnly": true,
              "description": "Workspace 作用域类型（snake_case 兼容字段）",
              "type": "string",
              "enum": [
                "workspace"
              ]
            },
            "workspace_id": {
              "readOnly": true,
              "description": "Workspace ID（snake_case 字段）",
              "type": "string"
            },
            "project_id": {
              "readOnly": true,
              "description": "项目ID（snake_case 历史兼容字段）",
              "type": "string"
            },
            "separateSessionByConversation": {
              "default": true,
              "readOnly": true,
              "description": "是否按单聊/群聊区分 session（固定值，不可修改）",
              "type": "boolean"
            },
            "groupSessionScope": {
              "default": "group_sender",
              "readOnly": true,
              "description": "群组按人隔离会话模式（固定值，不可修改）",
              "type": "string",
              "enum": [
                "group_sender"
              ]
            }
          }
        }
      }
    }
  },
  "schemaVersion": 1
}
