{
  "id": "tuitui-openclaw-channel",
  "contracts": {
    "tools": [
      "tuitui_bot_get_messages",
      "tuitui_bot_send_message",
      "tuitui_bot_send_channel_post",
      "tuitui_bot_get_announcement",
      "tuitui_bot_file_space_list",
      "tuitui_bot_file_space_add",
      "tuitui_bot_send_card",
      "tuitui_bot_quick_card"
    ]
  },
  "channels": ["tuitui"],
  "skills": ["./skills"],
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {}
  },
  "channelConfigs": {
    "tuitui": {
      "schema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "enabled": { "type": "boolean", "default": true },
          "appId": { "type": "string", "default": "" },
          "appSecret": { "type": "string" },
          "dmPolicy": {
            "type": "string",
            "default": "pairing",
            "enum": ["pairing", "allowlist", "open", "disabled"]
          },
          "allowFrom": {
            "type": "array",
            "default": [],
            "items": { "type": "string" }
          },
          "groupPolicy": {
            "type": "string",
            "default": "allowlist",
            "enum": ["allowlist", "disabled"]
          },
          "requireMention": { "type": "boolean", "default": true },
          "groupAllowFrom": {
            "type": "array",
            "default": [],
            "items": { "type": "string" }
          },
          "channelContext": {
            "type": "string",
            "default": "thread",
            "enum": ["channel", "thread"]
          },
          "emojiReaction": { "type": "boolean", "default": true },
          "monitorEnabled": { "type": "boolean", "default": true },
          "accounts": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "enabled": { "type": "boolean", "default": true },
                "appId": { "type": "string", "default": "" },
                "appSecret": { "type": "string" },
                "dmPolicy": {
                  "type": "string",
                  "default": "pairing",
                  "enum": ["pairing", "allowlist", "open", "disabled"]
                },
                "allowFrom": {
                  "type": "array",
                  "default": [],
                  "items": { "type": "string" }
                },
                "groupPolicy": {
                  "type": "string",
                  "default": "allowlist",
                  "enum": ["allowlist", "disabled"]
                },
                "requireMention": { "type": "boolean", "default": true },
                "groupAllowFrom": {
                  "type": "array",
                  "items": { "type": "string" }
                },
                "channelContext": {
                  "type": "string",
                  "default": "thread",
                  "enum": ["channel", "thread"]
                },
                "emojiReaction": { "type": "boolean", "default": true },
                "monitorEnabled": { "type": "boolean", "default": true }
              }
            }
          }
        }
      },
      "uiHints": {
        "enabled": { "order": 1, "help": "开启或关闭" },
        "appId": {
          "help": "推推机器人身份 AppId（你可以推推搜索【推推机器人助手】，和它聊天自助申请推推机器人）",
          "order": 2
        },
        "appSecret": {
          "help": "推推机器人密钥 Secret（推推机器人的 App Secret）",
          "order": 3
        },
        "dmPolicy": {
          "help": "私聊策略（pairing=配对（默认）；allowlist=白名单；open=允许所有（不安全）；disabled=禁用私聊）",
          "order": 10,
          "advanced": true
        },
        "allowFrom": {
          "help": "私聊白名单-域账号（dmPolicy=allowlist 时生效；pairing 下可用于显式放行用户）。对群聊/团队也能生效",
          "order": 11,
          "advanced": true
        },
        "groupPolicy": {
          "help": "群聊/团队策略（allowlist=白名单；disabled=禁用）",
          "order": 12,
          "advanced": true
        },
        "requireMention": {
          "help": "群组/团队是否需要 @ 机器人才触发 Agent（默认 true）。注意：如果你关闭了这个开关，且有多个龙虾机器人在同一个群里，他们会聊的停不下来",
          "order": 13,
          "advanced": true
        },
        "groupAllowFrom": {
          "help": "群组/团队白名单-包含群ID、团队ID或频道ID（仅在 groupPolicy=allowlist 生效）",
          "order": 14,
          "advanced": true
        },
        "channelContext": {
          "help": "团队-频道上下文（选项已废弃）",
          "order": 15,
          "advanced": true
        },
        "emojiReaction": {
          "help": "在收到消息后，大模型给出反应结果前，先对原消息发送一个\"收到\"的表情回复。",
          "order": 16,
          "advanced": true
        },
        "monitorEnabled": {
          "help": "是否开启频道agent事件上报，用于频道展示agent执行中间步骤（默认 true）",
          "order": 17,
          "advanced": true
        },
        "accounts": {
          "help": "Accounts（多账户配置）",
          "order": 30,
          "advanced": true
        },
        "accounts.*.enabled": { "order": 301, "help": "开启或关闭" },
        "accounts.*.appId": {
          "help": "推推机器人身份 AppId（你可以推推搜索【推推机器人助手】，和它聊天自助申请推推机器人）",
          "order": 302
        },
        "accounts.*.appSecret": {
          "help": "推推机器人密钥 Secret（推推机器人的 App Secret）",
          "order": 303
        },
        "accounts.*.dmPolicy": {
          "help": "私聊策略（pairing=配对（默认）；allowlist=白名单；open=允许所有（不安全）；disabled=禁用私聊）",
          "order": 304,
          "advanced": true
        },
        "accounts.*.allowFrom": {
          "help": "私聊白名单-推推域账号（dmPolicy=allowlist 时生效；pairing 下可用于显式放行用户）；对群、团队也生效",
          "order": 305,
          "advanced": true
        },
        "accounts.*.groupPolicy": {
          "help": "群聊/团队策略（allowlist=白名单；disabled=禁用）",
          "order": 306,
          "advanced": true
        },
        "accounts.*.requireMention": {
          "help": "群组/团队是否需要 @ 机器人才触发 Agent（默认 true）",
          "order": 307,
          "advanced": true
        },
        "accounts.*.groupAllowFrom": {
          "help": "群组/团队白名单-包含群ID、团队ID或频道ID（仅在 groupPolicy=allowlist 生效）。如果不想所有人使用，可以配置私聊白名单，私聊白名单对群/团队仍然有效",
          "order": 308,
          "advanced": true
        },
        "accounts.*.channelContext": {
          "help": "团队-频道上下文（选项已废弃）",
          "order": 309,
          "advanced": true
        },
        "accounts.*.emojiReaction": {
          "help": "在收到消息后，大模型给出反应结果前，先对原消息发送一个\"收到\"的表情回复。",
          "order": 310,
          "advanced": true
        },
        "accounts.*.monitorEnabled": {
          "help": "是否开启频道agent事件上报，用于频道展示agent执行中间步骤（默认 true）。",
          "order": 311,
          "advanced": true
        }
      }
    }
  }
}
