58 lines
694 KiB
JSON
58 lines
694 KiB
JSON
{"type":"session","version":3,"id":"b196d5be-c841-45fb-80af-68f233385895","timestamp":"2026-02-13T11:15:26.801Z","cwd":"/home/starmen1265/.openclaw/workspace"}
|
||
{"type":"model_change","id":"f4d26c54","parentId":null,"timestamp":"2026-02-13T11:15:26.801Z","provider":"mm","modelId":"MiniMax-M2.5"}
|
||
{"type":"thinking_level_change","id":"ad88c990","parentId":"f4d26c54","timestamp":"2026-02-13T11:15:26.801Z","thinkingLevel":"off"}
|
||
{"type":"custom","customType":"model-snapshot","data":{"timestamp":1770981326801,"provider":"mm","modelApi":"anthropic-messages","modelId":"MiniMax-M2.5"},"id":"3bede131","parentId":"ad88c990","timestamp":"2026-02-13T11:15:26.801Z"}
|
||
{"type":"message","id":"d87a2fcc","parentId":"3bede131","timestamp":"2026-02-13T11:15:26.804Z","message":{"role":"user","content":[{"type":"text","text":"System: [2026-02-13 19:15:26 GMT+8] Feishu[default] message in group oc_79bcbd274c7cff8757b52e2ec1d8e12b: 这里是用于知识库对话的群组\n\n[Feishu oc_79bcbd274c7cff8757b52e2ec1d8e12b:ou_be83febac9ee2afaa343c642bc697c48 Fri 2026-02-13 19:15 GMT+8] 张青: 这里是用于知识库对话的群组\n[message_id: om_x100b57c43213e4a8c382fa0c50bbc12]"}],"timestamp":1770981326803}}
|
||
{"type":"message","id":"1adbb9e9","parentId":"d87a2fcc","timestamp":"2026-02-13T11:15:30.691Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"这是知识库相关的群组对话,张青发了一条消息说\"这里是用于知识库对话的群组\"。\n\n这是FYI类型的消息,不需要我安排工作。蒋先生之前设置了知识库工作流(KB Workflow),这个群组是用于知识库对话的。\n\n我应该简单确认一下,回复\"收到\"即可。","thinkingSignature":"9d5cac968cd9a64416c199cc2257955cbfd4dc94d7e4932033e726583eed1e8c"},{"type":"text","text":"浩南收到,蒋先生!🧙♂️\n\n了解,这是知识库对话的群组,有需要随时安排。"}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":32,"output":96,"cacheRead":8240,"cacheWrite":8971,"totalTokens":17339,"cost":{"input":0.00048,"output":0.00576,"cacheRead":0.016479999999999998,"cacheWrite":0.08971000000000001,"total":0.11243}},"stopReason":"stop","timestamp":1770981326804}}
|
||
{"type":"message","id":"fe79fe3c","parentId":"1adbb9e9","timestamp":"2026-02-13T11:16:24.895Z","message":{"role":"user","content":[{"type":"text","text":"System: [2026-02-13 19:16:24 GMT+8] Feishu[default] message in group oc_79bcbd274c7cff8757b52e2ec1d8e12b: 你能获得群组ID吗?\n\n[Feishu oc_79bcbd274c7cff8757b52e2ec1d8e12b:ou_be83febac9ee2afaa343c642bc697c48 Fri 2026-02-13 19:16 GMT+8] 张青: 你能获得群组ID吗?\n[message_id: om_x100b57c4ce4caca4c4a21584176bf79]"}],"timestamp":1770981384894}}
|
||
{"type":"message","id":"3b3c4675","parentId":"fe79fe3c","timestamp":"2026-02-13T11:16:35.950Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"用户问能否获得群组ID。根据系统信息,群组ID是 oc_79bcbd274c7cff8757b52e2ec1d8e12b","thinkingSignature":"50c621cd7651d3fd7018ab15e559e88b5f345dc0cb4ca5b0455b2a7f741265b2"},{"type":"text","text":"浩南收到,蒋先生!🧙♂️\n\n可以,当前群组ID是:\n\n`oc_79bcbd274c7cff8757b52e2ec1d8e12b`"}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":32,"output":85,"cacheRead":16921,"cacheWrite":358,"totalTokens":17396,"cost":{"input":0.00048,"output":0.0051,"cacheRead":0.033842,"cacheWrite":0.0035800000000000003,"total":0.043002}},"stopReason":"stop","timestamp":1770981384895}}
|
||
{"type":"message","id":"4e79e11d","parentId":"3b3c4675","timestamp":"2026-02-13T11:19:02.615Z","message":{"role":"user","content":[{"type":"text","text":"System: [2026-02-13 19:19:02 GMT+8] Feishu[default] message in group oc_79bcbd274c7cff8757b52e2ec1d8e12b: 好的,将这个ID绑定到新的代理knowledge-base,并且给他一个提示词,你是知识库的管理者,负责用kb-系列的技能进行知识库管理,操作过程中如果遇到问题,禁止通过修改代码和修改配置的方式来解决,并且上报这个意料之外的问题。使用g5模型\n\n[Feishu oc_79bcbd274c7cff8757b52e2ec1d8e12b:ou_be83febac9ee2afaa343c642bc697c48 Fri 2026-02-13 19:19 GMT+8] 张青: 好的,将这个ID绑定到新的代理knowledge-base,并且给他一个提示词,你是知识库的管理者,负责用kb-系列的技能进行知识库管理,操作过程中如果遇到问题,禁止通过修改代码和修改配置的方式来解决,并且上报这个意料之外的问题。使用g5模型\n[message_id: om_x100b57c4c49044b0c4d932cc2b6f0fd]"}],"timestamp":1770981542614}}
|
||
{"type":"message","id":"2aa78864","parentId":"4e79e11d","timestamp":"2026-02-13T11:19:06.562Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"用户要求创建一个新的代理 knowledge-base,需要:\n1. 绑定群组 ID: oc_79bcbd274c7cff8757b52e2ec1d8e12b\n2. 设置提示词:知识库管理者,使用 kb-系列技能\n3. 遇到问题不能修改代码/配置,要上报\n4. 使用 g5 模型\n\n我需要使用 sessions_spawn 来创建一个新的代理。让我查看一下可用的 agent IDs。","thinkingSignature":"db05e69ff9edc8397fa93c9fbe1f4501e7ab4dfafdd281a8e466733c69c603fc"},{"type":"text","text":"浩南收到,蒋先生!🧙♂️\n\n我来创建 knowledge-base 代理。\n"},{"type":"toolCall","id":"call_function_1k0vyjc3zcse_1","name":"agents_list","arguments":{}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":32,"output":130,"cacheRead":17189,"cacheWrite":399,"totalTokens":17750,"cost":{"input":0.00048,"output":0.0078000000000000005,"cacheRead":0.034378,"cacheWrite":0.0039900000000000005,"total":0.046648}},"stopReason":"toolUse","timestamp":1770981542614}}
|
||
{"type":"message","id":"8b54e6f6","parentId":"2aa78864","timestamp":"2026-02-13T11:19:06.597Z","message":{"role":"toolResult","toolCallId":"call_function_1k0vyjc3zcse_1","toolName":"agents_list","content":[{"type":"text","text":"{\n \"requester\": \"main\",\n \"allowAny\": false,\n \"agents\": [\n {\n \"id\": \"main\",\n \"configured\": false\n }\n ]\n}"}],"details":{"requester":"main","allowAny":false,"agents":[{"id":"main","configured":false}]},"isError":false,"timestamp":1770981546596}}
|
||
{"type":"message","id":"2f0ae9ad","parentId":"8b54e6f6","timestamp":"2026-02-13T11:19:12.256Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"看起来没有其他可用的 agent ID,只有 main。但是用户想要创建一个新的代理 knowledge-base。\n\n让我查看一下 gateway 配置,看看如何添加新的代理。","thinkingSignature":"69bc498b380f2ec68a464784ce6ad3e7698bf5778f39d7a257d4a9090e42c74a"},{"type":"toolCall","id":"call_function_7hmpvylbmsq2_1","name":"gateway","arguments":{"action":"config.get"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":884,"output":56,"cacheRead":16921,"cacheWrite":0,"totalTokens":17861,"cost":{"input":0.013260000000000001,"output":0.00336,"cacheRead":0.033842,"cacheWrite":0,"total":0.050462}},"stopReason":"toolUse","timestamp":1770981546597}}
|
||
{"type":"message","id":"678528c4","parentId":"2f0ae9ad","timestamp":"2026-02-13T11:19:12.272Z","message":{"role":"toolResult","toolCallId":"call_function_7hmpvylbmsq2_1","toolName":"gateway","content":[{"type":"text","text":"{\n \"ok\": true,\n \"result\": {\n \"path\": \"/home/starmen1265/.openclaw/openclaw.json\",\n \"exists\": true,\n \"raw\": \"{\\n \\\"meta\\\": {\\n \\\"lastTouchedVersion\\\": \\\"2026.2.9\\\",\\n \\\"lastTouchedAt\\\": \\\"2026-02-12T16:36:05.392Z\\\"\\n },\\n \\\"wizard\\\": {\\n \\\"lastRunAt\\\": \\\"2026-02-11T11:00:45.701Z\\\",\\n \\\"lastRunVersion\\\": \\\"2026.2.9\\\",\\n \\\"lastRunCommand\\\": \\\"onboard\\\",\\n \\\"lastRunMode\\\": \\\"local\\\"\\n },\\n \\\"auth\\\": {\\n \\\"profiles\\\": {\\n \\\"kimi-coding:default\\\": {\\n \\\"provider\\\": \\\"kimi-coding\\\",\\n \\\"mode\\\": \\\"api_key\\\"\\n }\\n }\\n },\\n \\\"models\\\": {\\n \\\"mode\\\": \\\"merge\\\",\\n \\\"providers\\\": {\\n \\\"alibaba-cloud\\\": {\\n \\\"baseUrl\\\": \\\"https://dashscope.aliyuncs.com/compatible-mode/v1\\\",\\n \\\"api\\\": \\\"openai-completions\\\",\\n \\\"models\\\": [\\n {\\n \\\"id\\\": \\\"qwen3-max-2026-01-23\\\",\\n \\\"name\\\": \\\"qwen3-max-thinking\\\",\\n \\\"reasoning\\\": false,\\n \\\"input\\\": [\\n \\\"text\\\"\\n ],\\n \\\"cost\\\": {\\n \\\"input\\\": 0,\\n \\\"output\\\": 0,\\n \\\"cacheRead\\\": 0,\\n \\\"cacheWrite\\\": 0\\n },\\n \\\"contextWindow\\\": 262144,\\n \\\"maxTokens\\\": 65536\\n }\\n ]\\n },\\n \\\"mm\\\": {\\n \\\"baseUrl\\\": \\\"https://api.minimaxi.com/anthropic\\\",\\n \\\"apiKey\\\": \\\"__OPENCLAW_REDACTED__\\\",\\n \\\"api\\\": \\\"anthropic-messages\\\",\\n \\\"authHeader\\\": true,\\n \\\"models\\\": [\\n {\\n \\\"id\\\": \\\"MiniMax-M2.5\\\",\\n \\\"name\\\": \\\"MiniMax M2.5\\\",\\n \\\"reasoning\\\": false,\\n \\\"input\\\": [\\n \\\"text\\\"\\n ],\\n \\\"cost\\\": {\\n \\\"input\\\": 15,\\n \\\"output\\\": 60,\\n \\\"cacheRead\\\": 2,\\n \\\"cacheWrite\\\": 10\\n },\\n \\\"contextWindow\\\": 200000,\\n \\\"maxTokens\\\": 8192\\n }\\n ]\\n },\\n \\\"zhipu\\\": {\\n \\\"baseUrl\\\": \\\"https://open.bigmodel.cn/api/coding/paas/v4\\\",\\n \\\"apiKey\\\": \\\"__OPENCLAW_REDACTED__\\\",\\n \\\"api\\\": \\\"openai-completions\\\",\\n \\\"models\\\": [\\n {\\n \\\"id\\\": \\\"glm-5\\\",\\n \\\"name\\\": \\\"glm 5\\\",\\n \\\"reasoning\\\": false,\\n \\\"input\\\": [\\n \\\"text\\\"\\n ],\\n \\\"cost\\\": {\\n \\\"input\\\": 0,\\n \\\"output\\\": 0,\\n \\\"cacheRead\\\": 0,\\n \\\"cacheWrite\\\": 0\\n },\\n \\\"contextWindow\\\": 200000,\\n \\\"maxTokens\\\": 8192\\n },\\n {\\n \\\"id\\\": \\\"glm-4.7-FlashX\\\",\\n \\\"name\\\": \\\"glm 4.7 FlashX\\\",\\n \\\"reasoning\\\": false,\\n \\\"input\\\": [\\n \\\"text\\\"\\n ],\\n \\\"cost\\\": {\\n \\\"input\\\": 0,\\n \\\"output\\\": 0,\\n \\\"cacheRead\\\": 0,\\n \\\"cacheWrite\\\": 0\\n },\\n \\\"contextWindow\\\": 200000,\\n \\\"maxTokens\\\": 8192\\n }\\n ]\\n }\\n }\\n },\\n \\\"agents\\\": {\\n \\\"list\\\": [\\n {\\n \\\"id\\\": \\\"knowledge-base\\\",\\n \\\"name\\\": \\\"知识库维护代理\\\",\\n \\\"workspace\\\": \\\"~/.openclaw/agents/knowledge-base/workspace\\\",\\n \\\"model\\\": \\\"g47f\\\",\\n \\\"skills\\\": [\\\"kb-whisper\\\", \\\"kb-workflow\\\", \\\"kb-funasr\\\"],\\n \\\"identity\\\": {\\n \\\"name\\\": \\\"知识库小助手\\\",\\n \\\"emoji\\\": \\\"📚\\\"\\n }\\n }\\n ],\\n \\\"defaults\\\": {\\n \\\"model\\\": {\\n \\\"primary\\\": \\\"m25\\\",\\n \\\"fallbacks\\\": [\\n \\\"g47f\\\",\\n \\\"g5\\\",\\n \\\"qmax\\\",\\n \\\"k2p5\\\"\\n ]\\n },\\n \\\"models\\\": {\\n \\\"zhipu/glm-5\\\": {\\n \\\"alias\\\": \\\"g5\\\"\\n },\\n \\\"zhipu/glm-4.7-FlashX\\\": {\\n \\\"alias\\\": \\\"g47f\\\"\\n },\\n \\\"mm/MiniMax-M2.5\\\": {\\n \\\"alias\\\": \\\"m25\\\"\\n },\\n \\\"alibaba-cloud/qwen3-max-2026-01-23\\\": {\\n \\\"alias\\\": \\\"qmax\\\"\\n },\\n \\\"kimi-coding/k2p5\\\": {\\n \\\"alias\\\": \\\"k2p5\\\"\\n }\\n },\\n \\\"workspace\\\": \\\"/home/starmen1265/.openclaw/workspace\\\",\\n \\\"compaction\\\": {\\n \\\"mode\\\": \\\"safeguard\\\"\\n },\\n \\\"maxConcurrent\\\": 8,\\n \\\"subagents\\\": {\\n \\\"maxConcurrent\\\": 16\\n }\\n }\\n },\\n \\\"tools\\\": {\\n \\\"web\\\": {\\n \\\"search\\\": {\\n \\\"enabled\\\": true,\\n \\\"provider\\\": \\\"brave\\\",\\n \\\"apiKey\\\": \\\"__OPENCLAW_REDACTED__\\\"\\n }\\n },\\n \\\"elevated\\\": {\\n \\\"enabled\\\": true,\\n \\\"allowFrom\\\": {\\n \\\"webchat\\\": [\\n \\\"*\\\"\\n ],\\n \\\"tui\\\": [\\n \\\"*\\\"\\n ],\\n \\\"wecom\\\": [\\n \\\"*\\\"\\n ]\\n }\\n },\\n \\\"exec\\\": {\\n \\\"security\\\": \\\"full\\\"\\n }\\n },\\n \\\"messages\\\": {\\n \\\"ackReactionScope\\\": \\\"group-mentions\\\"\\n },\\n \\\"commands\\\": {\\n \\\"native\\\": \\\"auto\\\",\\n \\\"nativeSkills\\\": \\\"auto\\\",\\n \\\"restart\\\": true\\n },\\n \\\"approvals\\\": {\\n \\\"exec\\\": {\\n \\\"enabled\\\": false\\n }\\n },\\n \\\"hooks\\\": {\\n \\\"internal\\\": {\\n \\\"enabled\\\": true,\\n \\\"entries\\\": {\\n \\\"boot-md\\\": {\\n \\\"enabled\\\": true\\n },\\n \\\"command-logger\\\": {\\n \\\"enabled\\\": true\\n },\\n \\\"session-memory\\\": {\\n \\\"enabled\\\": true\\n }\\n }\\n }\\n },\\n \\\"gateway\\\": {\\n \\\"port\\\": 18789,\\n \\\"mode\\\": \\\"local\\\",\\n \\\"bind\\\": \\\"lan\\\",\\n \\\"controlUi\\\": {\\n \\\"allowInsecureAuth\\\": true\\n },\\n \\\"auth\\\": {\\n \\\"mode\\\": \\\"token\\\",\\n \\\"token\\\": \\\"__OPENCLAW_REDACTED__\\\"\\n },\\n \\\"tailscale\\\": {\\n \\\"mode\\\": \\\"off\\\",\\n \\\"resetOnExit\\\": false\\n },\\n \\\"nodes\\\": {\\n \\\"denyCommands\\\": [\\n \\\"camera.snap\\\",\\n \\\"camera.clip\\\",\\n \\\"screen.record\\\",\\n \\\"calendar.add\\\",\\n \\\"contacts.add\\\",\\n \\\"reminders.add\\\"\\n ]\\n }\\n },\\n \\\"skills\\\": {\\n \\\"install\\\": {\\n \\\"nodeManager\\\": \\\"npm\\\"\\n }\\n },\\n \\\"plugins\\\": {\\n \\\"entries\\\": {\\n \\\"feishu\\\": {\\n \\\"enabled\\\": true\\n }\\n },\\n \\\"installs\\\": {\\n \\\"feishu\\\": {\\n \\\"source\\\": \\\"npm\\\",\\n \\\"spec\\\": \\\"@m1heng-clawd/feishu\\\",\\n \\\"installPath\\\": \\\"/home/starmen1265/.openclaw/extensions/feishu\\\",\\n \\\"version\\\": \\\"0.1.9\\\",\\n \\\"installedAt\\\": \\\"2026-02-12T16:31:18.854Z\\\"\\n }\\n }\\n },\\n \\\"channels\\\": {\\n \\\"feishu\\\": {\\n \\\"enabled\\\": true,\\n \\\"appId\\\": \\\"cli_a9f74dc9a3f8dbce\\\",\\n \\\"appSecret\\\": \\\"__OPENCLAW_REDACTED__\\\",\\n \\\"domain\\\": \\\"feishu\\\",\\n \\\"groupPolicy\\\": \\\"allowlist\\\",\\n \\\"groupAllowFrom\\\": [],\\n \\\"groups\\\": {}\\n }\\n },\\n \\\"bindings\\\": [\\n {\\n \\\"agentId\\\": \\\"knowledge-base\\\",\\n \\\"match\\\": {\\n \\\"channel\\\": \\\"feishu\\\",\\n \\\"peer\\\": { \\\"kind\\\": \\\"group\\\" }\\n }\\n }\\n ]\\n}\\n\",\n \"parsed\": {\n \"meta\": {\n \"lastTouchedVersion\": \"2026.2.9\",\n \"lastTouchedAt\": \"2026-02-12T16:36:05.392Z\"\n },\n \"wizard\": {\n \"lastRunAt\": \"2026-02-11T11:00:45.701Z\",\n \"lastRunVersion\": \"2026.2.9\",\n \"lastRunCommand\": \"onboard\",\n \"lastRunMode\": \"local\"\n },\n \"auth\": {\n \"profiles\": {\n \"kimi-coding:default\": {\n \"provider\": \"kimi-coding\",\n \"mode\": \"api_key\"\n }\n }\n },\n \"models\": {\n \"mode\": \"merge\",\n \"providers\": {\n \"alibaba-cloud\": {\n \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"qwen3-max-2026-01-23\",\n \"name\": \"qwen3-max-thinking\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 262144,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"mm\": {\n \"baseUrl\": \"https://api.minimaxi.com/anthropic\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"anthropic-messages\",\n \"authHeader\": true,\n \"models\": [\n {\n \"id\": \"MiniMax-M2.5\",\n \"name\": \"MiniMax M2.5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 15,\n \"output\": 60,\n \"cacheRead\": 2,\n \"cacheWrite\": 10\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"zhipu\": {\n \"baseUrl\": \"https://open.bigmodel.cn/api/coding/paas/v4\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"glm-5\",\n \"name\": \"glm 5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n },\n {\n \"id\": \"glm-4.7-FlashX\",\n \"name\": \"glm 4.7 FlashX\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n }\n }\n },\n \"agents\": {\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g47f\",\n \"skills\": [\n \"kb-whisper\",\n \"kb-workflow\",\n \"kb-funasr\"\n ],\n \"identity\": {\n \"name\": \"知识库小助手\",\n \"emoji\": \"📚\"\n }\n }\n ],\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n }\n },\n \"tools\": {\n \"web\": {\n \"search\": {\n \"enabled\": true,\n \"provider\": \"brave\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\"\n }\n },\n \"elevated\": {\n \"enabled\": true,\n \"allowFrom\": {\n \"webchat\": [\n \"*\"\n ],\n \"tui\": [\n \"*\"\n ],\n \"wecom\": [\n \"*\"\n ]\n }\n },\n \"exec\": {\n \"security\": \"full\"\n }\n },\n \"messages\": {\n \"ackReactionScope\": \"group-mentions\"\n },\n \"commands\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\",\n \"restart\": true\n },\n \"approvals\": {\n \"exec\": {\n \"enabled\": false\n }\n },\n \"hooks\": {\n \"internal\": {\n \"enabled\": true,\n \"entries\": {\n \"boot-md\": {\n \"enabled\": true\n },\n \"command-logger\": {\n \"enabled\": true\n },\n \"session-memory\": {\n \"enabled\": true\n }\n }\n }\n },\n \"gateway\": {\n \"port\": 18789,\n \"mode\": \"local\",\n \"bind\": \"lan\",\n \"controlUi\": {\n \"allowInsecureAuth\": true\n },\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"__OPENCLAW_REDACTED__\"\n },\n \"tailscale\": {\n \"mode\": \"off\",\n \"resetOnExit\": false\n },\n \"nodes\": {\n \"denyCommands\": [\n \"camera.snap\",\n \"camera.clip\",\n \"screen.record\",\n \"calendar.add\",\n \"contacts.add\",\n \"reminders.add\"\n ]\n }\n },\n \"skills\": {\n \"install\": {\n \"nodeManager\": \"npm\"\n }\n },\n \"plugins\": {\n \"entries\": {\n \"feishu\": {\n \"enabled\": true\n }\n },\n \"installs\": {\n \"feishu\": {\n \"source\": \"npm\",\n \"spec\": \"@m1heng-clawd/feishu\",\n \"installPath\": \"/home/starmen1265/.openclaw/extensions/feishu\",\n \"version\": \"0.1.9\",\n \"installedAt\": \"2026-02-12T16:31:18.854Z\"\n }\n }\n },\n \"channels\": {\n \"feishu\": {\n \"enabled\": true,\n \"appId\": \"cli_a9f74dc9a3f8dbce\",\n \"appSecret\": \"__OPENCLAW_REDACTED__\",\n \"domain\": \"feishu\",\n \"groupPolicy\": \"allowlist\",\n \"groupAllowFrom\": [],\n \"groups\": {}\n }\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\"\n }\n }\n }\n ]\n },\n \"valid\": false,\n \"config\": {\n \"meta\": {\n \"lastTouchedVersion\": \"2026.2.9\",\n \"lastTouchedAt\": \"2026-02-12T16:36:05.392Z\"\n },\n \"wizard\": {\n \"lastRunAt\": \"2026-02-11T11:00:45.701Z\",\n \"lastRunVersion\": \"2026.2.9\",\n \"lastRunCommand\": \"onboard\",\n \"lastRunMode\": \"local\"\n },\n \"auth\": {\n \"profiles\": {\n \"kimi-coding:default\": {\n \"provider\": \"kimi-coding\",\n \"mode\": \"api_key\"\n }\n }\n },\n \"models\": {\n \"mode\": \"merge\",\n \"providers\": {\n \"alibaba-cloud\": {\n \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"qwen3-max-2026-01-23\",\n \"name\": \"qwen3-max-thinking\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 262144,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"mm\": {\n \"baseUrl\": \"https://api.minimaxi.com/anthropic\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"anthropic-messages\",\n \"authHeader\": true,\n \"models\": [\n {\n \"id\": \"MiniMax-M2.5\",\n \"name\": \"MiniMax M2.5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 15,\n \"output\": 60,\n \"cacheRead\": 2,\n \"cacheWrite\": 10\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"zhipu\": {\n \"baseUrl\": \"https://open.bigmodel.cn/api/coding/paas/v4\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"glm-5\",\n \"name\": \"glm 5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n },\n {\n \"id\": \"glm-4.7-FlashX\",\n \"name\": \"glm 4.7 FlashX\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n }\n }\n },\n \"agents\": {\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g47f\",\n \"skills\": [\n \"kb-whisper\",\n \"kb-workflow\",\n \"kb-funasr\"\n ],\n \"identity\": {\n \"name\": \"知识库小助手\",\n \"emoji\": \"📚\"\n }\n }\n ],\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n }\n },\n \"tools\": {\n \"web\": {\n \"search\": {\n \"enabled\": true,\n \"provider\": \"brave\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\"\n }\n },\n \"elevated\": {\n \"enabled\": true,\n \"allowFrom\": {\n \"webchat\": [\n \"*\"\n ],\n \"tui\": [\n \"*\"\n ],\n \"wecom\": [\n \"*\"\n ]\n }\n },\n \"exec\": {\n \"security\": \"full\"\n }\n },\n \"messages\": {\n \"ackReactionScope\": \"group-mentions\"\n },\n \"commands\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\",\n \"restart\": true\n },\n \"approvals\": {\n \"exec\": {\n \"enabled\": false\n }\n },\n \"hooks\": {\n \"internal\": {\n \"enabled\": true,\n \"entries\": {\n \"boot-md\": {\n \"enabled\": true\n },\n \"command-logger\": {\n \"enabled\": true\n },\n \"session-memory\": {\n \"enabled\": true\n }\n }\n }\n },\n \"gateway\": {\n \"port\": 18789,\n \"mode\": \"local\",\n \"bind\": \"lan\",\n \"controlUi\": {\n \"allowInsecureAuth\": true\n },\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"__OPENCLAW_REDACTED__\"\n },\n \"tailscale\": {\n \"mode\": \"off\",\n \"resetOnExit\": false\n },\n \"nodes\": {\n \"denyCommands\": [\n \"camera.snap\",\n \"camera.clip\",\n \"screen.record\",\n \"calendar.add\",\n \"contacts.add\",\n \"reminders.add\"\n ]\n }\n },\n \"skills\": {\n \"install\": {\n \"nodeManager\": \"npm\"\n }\n },\n \"plugins\": {\n \"entries\": {\n \"feishu\": {\n \"enabled\": true\n }\n },\n \"installs\": {\n \"feishu\": {\n \"source\": \"npm\",\n \"spec\": \"@m1heng-clawd/feishu\",\n \"installPath\": \"/home/starmen1265/.openclaw/extensions/feishu\",\n \"version\": \"0.1.9\",\n \"installedAt\": \"2026-02-12T16:31:18.854Z\"\n }\n }\n },\n \"channels\": {\n \"feishu\": {\n \"enabled\": true,\n \"appId\": \"cli_a9f74dc9a3f8dbce\",\n \"appSecret\": \"__OPENCLAW_REDACTED__\",\n \"domain\": \"feishu\",\n \"groupPolicy\": \"allowlist\",\n \"groupAllowFrom\": [],\n \"groups\": {}\n }\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\"\n }\n }\n }\n ]\n },\n \"hash\": \"cb5d71c2664515a36925c9357cf36a7a1ef5cb1f6ec23b687c2decf4a6e39cff\",\n \"issues\": [\n {\n \"path\": \"bindings.0.match.peer.id\",\n \"message\": \"Invalid input: expected string, received undefined\"\n }\n ],\n \"warnings\": [],\n \"legacyIssues\": []\n }\n}"}],"details":{"ok":true,"result":{"path":"/home/starmen1265/.openclaw/openclaw.json","exists":true,"raw":"{\n \"meta\": {\n \"lastTouchedVersion\": \"2026.2.9\",\n \"lastTouchedAt\": \"2026-02-12T16:36:05.392Z\"\n },\n \"wizard\": {\n \"lastRunAt\": \"2026-02-11T11:00:45.701Z\",\n \"lastRunVersion\": \"2026.2.9\",\n \"lastRunCommand\": \"onboard\",\n \"lastRunMode\": \"local\"\n },\n \"auth\": {\n \"profiles\": {\n \"kimi-coding:default\": {\n \"provider\": \"kimi-coding\",\n \"mode\": \"api_key\"\n }\n }\n },\n \"models\": {\n \"mode\": \"merge\",\n \"providers\": {\n \"alibaba-cloud\": {\n \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"qwen3-max-2026-01-23\",\n \"name\": \"qwen3-max-thinking\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 262144,\n \"maxTokens\": 65536\n }\n ]\n },\n \"mm\": {\n \"baseUrl\": \"https://api.minimaxi.com/anthropic\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"anthropic-messages\",\n \"authHeader\": true,\n \"models\": [\n {\n \"id\": \"MiniMax-M2.5\",\n \"name\": \"MiniMax M2.5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 15,\n \"output\": 60,\n \"cacheRead\": 2,\n \"cacheWrite\": 10\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n }\n ]\n },\n \"zhipu\": {\n \"baseUrl\": \"https://open.bigmodel.cn/api/coding/paas/v4\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"glm-5\",\n \"name\": \"glm 5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n },\n {\n \"id\": \"glm-4.7-FlashX\",\n \"name\": \"glm 4.7 FlashX\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n }\n ]\n }\n }\n },\n \"agents\": {\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g47f\",\n \"skills\": [\"kb-whisper\", \"kb-workflow\", \"kb-funasr\"],\n \"identity\": {\n \"name\": \"知识库小助手\",\n \"emoji\": \"📚\"\n }\n }\n ],\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n }\n },\n \"tools\": {\n \"web\": {\n \"search\": {\n \"enabled\": true,\n \"provider\": \"brave\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\"\n }\n },\n \"elevated\": {\n \"enabled\": true,\n \"allowFrom\": {\n \"webchat\": [\n \"*\"\n ],\n \"tui\": [\n \"*\"\n ],\n \"wecom\": [\n \"*\"\n ]\n }\n },\n \"exec\": {\n \"security\": \"full\"\n }\n },\n \"messages\": {\n \"ackReactionScope\": \"group-mentions\"\n },\n \"commands\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\",\n \"restart\": true\n },\n \"approvals\": {\n \"exec\": {\n \"enabled\": false\n }\n },\n \"hooks\": {\n \"internal\": {\n \"enabled\": true,\n \"entries\": {\n \"boot-md\": {\n \"enabled\": true\n },\n \"command-logger\": {\n \"enabled\": true\n },\n \"session-memory\": {\n \"enabled\": true\n }\n }\n }\n },\n \"gateway\": {\n \"port\": 18789,\n \"mode\": \"local\",\n \"bind\": \"lan\",\n \"controlUi\": {\n \"allowInsecureAuth\": true\n },\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"__OPENCLAW_REDACTED__\"\n },\n \"tailscale\": {\n \"mode\": \"off\",\n \"resetOnExit\": false\n },\n \"nodes\": {\n \"denyCommands\": [\n \"camera.snap\",\n \"camera.clip\",\n \"screen.record\",\n \"calendar.add\",\n \"contacts.add\",\n \"reminders.add\"\n ]\n }\n },\n \"skills\": {\n \"install\": {\n \"nodeManager\": \"npm\"\n }\n },\n \"plugins\": {\n \"entries\": {\n \"feishu\": {\n \"enabled\": true\n }\n },\n \"installs\": {\n \"feishu\": {\n \"source\": \"npm\",\n \"spec\": \"@m1heng-clawd/feishu\",\n \"installPath\": \"/home/starmen1265/.openclaw/extensions/feishu\",\n \"version\": \"0.1.9\",\n \"installedAt\": \"2026-02-12T16:31:18.854Z\"\n }\n }\n },\n \"channels\": {\n \"feishu\": {\n \"enabled\": true,\n \"appId\": \"cli_a9f74dc9a3f8dbce\",\n \"appSecret\": \"__OPENCLAW_REDACTED__\",\n \"domain\": \"feishu\",\n \"groupPolicy\": \"allowlist\",\n \"groupAllowFrom\": [],\n \"groups\": {}\n }\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": { \"kind\": \"group\" }\n }\n }\n ]\n}\n","parsed":{"meta":{"lastTouchedVersion":"2026.2.9","lastTouchedAt":"2026-02-12T16:36:05.392Z"},"wizard":{"lastRunAt":"2026-02-11T11:00:45.701Z","lastRunVersion":"2026.2.9","lastRunCommand":"onboard","lastRunMode":"local"},"auth":{"profiles":{"kimi-coding:default":{"provider":"kimi-coding","mode":"api_key"}}},"models":{"mode":"merge","providers":{"alibaba-cloud":{"baseUrl":"https://dashscope.aliyuncs.com/compatible-mode/v1","api":"openai-completions","models":[{"id":"qwen3-max-2026-01-23","name":"qwen3-max-thinking","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":"__OPENCLAW_REDACTED__"}]},"mm":{"baseUrl":"https://api.minimaxi.com/anthropic","apiKey":"__OPENCLAW_REDACTED__","api":"anthropic-messages","authHeader":true,"models":[{"id":"MiniMax-M2.5","name":"MiniMax M2.5","reasoning":false,"input":["text"],"cost":{"input":15,"output":60,"cacheRead":2,"cacheWrite":10},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]},"zhipu":{"baseUrl":"https://open.bigmodel.cn/api/coding/paas/v4","apiKey":"__OPENCLAW_REDACTED__","api":"openai-completions","models":[{"id":"glm-5","name":"glm 5","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"},{"id":"glm-4.7-FlashX","name":"glm 4.7 FlashX","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]}}},"agents":{"list":[{"id":"knowledge-base","name":"知识库维护代理","workspace":"~/.openclaw/agents/knowledge-base/workspace","model":"g47f","skills":["kb-whisper","kb-workflow","kb-funasr"],"identity":{"name":"知识库小助手","emoji":"📚"}}],"defaults":{"model":{"primary":"m25","fallbacks":["g47f","g5","qmax","k2p5"]},"models":{"zhipu/glm-5":{"alias":"g5"},"zhipu/glm-4.7-FlashX":{"alias":"g47f"},"mm/MiniMax-M2.5":{"alias":"m25"},"alibaba-cloud/qwen3-max-2026-01-23":{"alias":"qmax"},"kimi-coding/k2p5":{"alias":"k2p5"}},"workspace":"/home/starmen1265/.openclaw/workspace","compaction":{"mode":"safeguard"},"maxConcurrent":8,"subagents":{"maxConcurrent":16}}},"tools":{"web":{"search":{"enabled":true,"provider":"brave","apiKey":"__OPENCLAW_REDACTED__"}},"elevated":{"enabled":true,"allowFrom":{"webchat":["*"],"tui":["*"],"wecom":["*"]}},"exec":{"security":"full"}},"messages":{"ackReactionScope":"group-mentions"},"commands":{"native":"auto","nativeSkills":"auto","restart":true},"approvals":{"exec":{"enabled":false}},"hooks":{"internal":{"enabled":true,"entries":{"boot-md":{"enabled":true},"command-logger":{"enabled":true},"session-memory":{"enabled":true}}}},"gateway":{"port":18789,"mode":"local","bind":"lan","controlUi":{"allowInsecureAuth":true},"auth":{"mode":"token","token":"__OPENCLAW_REDACTED__"},"tailscale":{"mode":"off","resetOnExit":false},"nodes":{"denyCommands":["camera.snap","camera.clip","screen.record","calendar.add","contacts.add","reminders.add"]}},"skills":{"install":{"nodeManager":"npm"}},"plugins":{"entries":{"feishu":{"enabled":true}},"installs":{"feishu":{"source":"npm","spec":"@m1heng-clawd/feishu","installPath":"/home/starmen1265/.openclaw/extensions/feishu","version":"0.1.9","installedAt":"2026-02-12T16:31:18.854Z"}}},"channels":{"feishu":{"enabled":true,"appId":"cli_a9f74dc9a3f8dbce","appSecret":"__OPENCLAW_REDACTED__","domain":"feishu","groupPolicy":"allowlist","groupAllowFrom":[],"groups":{}}},"bindings":[{"agentId":"knowledge-base","match":{"channel":"feishu","peer":{"kind":"group"}}}]},"valid":false,"config":{"meta":{"lastTouchedVersion":"2026.2.9","lastTouchedAt":"2026-02-12T16:36:05.392Z"},"wizard":{"lastRunAt":"2026-02-11T11:00:45.701Z","lastRunVersion":"2026.2.9","lastRunCommand":"onboard","lastRunMode":"local"},"auth":{"profiles":{"kimi-coding:default":{"provider":"kimi-coding","mode":"api_key"}}},"models":{"mode":"merge","providers":{"alibaba-cloud":{"baseUrl":"https://dashscope.aliyuncs.com/compatible-mode/v1","api":"openai-completions","models":[{"id":"qwen3-max-2026-01-23","name":"qwen3-max-thinking","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":"__OPENCLAW_REDACTED__"}]},"mm":{"baseUrl":"https://api.minimaxi.com/anthropic","apiKey":"__OPENCLAW_REDACTED__","api":"anthropic-messages","authHeader":true,"models":[{"id":"MiniMax-M2.5","name":"MiniMax M2.5","reasoning":false,"input":["text"],"cost":{"input":15,"output":60,"cacheRead":2,"cacheWrite":10},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]},"zhipu":{"baseUrl":"https://open.bigmodel.cn/api/coding/paas/v4","apiKey":"__OPENCLAW_REDACTED__","api":"openai-completions","models":[{"id":"glm-5","name":"glm 5","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"},{"id":"glm-4.7-FlashX","name":"glm 4.7 FlashX","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]}}},"agents":{"list":[{"id":"knowledge-base","name":"知识库维护代理","workspace":"~/.openclaw/agents/knowledge-base/workspace","model":"g47f","skills":["kb-whisper","kb-workflow","kb-funasr"],"identity":{"name":"知识库小助手","emoji":"📚"}}],"defaults":{"model":{"primary":"m25","fallbacks":["g47f","g5","qmax","k2p5"]},"models":{"zhipu/glm-5":{"alias":"g5"},"zhipu/glm-4.7-FlashX":{"alias":"g47f"},"mm/MiniMax-M2.5":{"alias":"m25"},"alibaba-cloud/qwen3-max-2026-01-23":{"alias":"qmax"},"kimi-coding/k2p5":{"alias":"k2p5"}},"workspace":"/home/starmen1265/.openclaw/workspace","compaction":{"mode":"safeguard"},"maxConcurrent":8,"subagents":{"maxConcurrent":16}}},"tools":{"web":{"search":{"enabled":true,"provider":"brave","apiKey":"__OPENCLAW_REDACTED__"}},"elevated":{"enabled":true,"allowFrom":{"webchat":["*"],"tui":["*"],"wecom":["*"]}},"exec":{"security":"full"}},"messages":{"ackReactionScope":"group-mentions"},"commands":{"native":"auto","nativeSkills":"auto","restart":true},"approvals":{"exec":{"enabled":false}},"hooks":{"internal":{"enabled":true,"entries":{"boot-md":{"enabled":true},"command-logger":{"enabled":true},"session-memory":{"enabled":true}}}},"gateway":{"port":18789,"mode":"local","bind":"lan","controlUi":{"allowInsecureAuth":true},"auth":{"mode":"token","token":"__OPENCLAW_REDACTED__"},"tailscale":{"mode":"off","resetOnExit":false},"nodes":{"denyCommands":["camera.snap","camera.clip","screen.record","calendar.add","contacts.add","reminders.add"]}},"skills":{"install":{"nodeManager":"npm"}},"plugins":{"entries":{"feishu":{"enabled":true}},"installs":{"feishu":{"source":"npm","spec":"@m1heng-clawd/feishu","installPath":"/home/starmen1265/.openclaw/extensions/feishu","version":"0.1.9","installedAt":"2026-02-12T16:31:18.854Z"}}},"channels":{"feishu":{"enabled":true,"appId":"cli_a9f74dc9a3f8dbce","appSecret":"__OPENCLAW_REDACTED__","domain":"feishu","groupPolicy":"allowlist","groupAllowFrom":[],"groups":{}}},"bindings":[{"agentId":"knowledge-base","match":{"channel":"feishu","peer":{"kind":"group"}}}]},"hash":"cb5d71c2664515a36925c9357cf36a7a1ef5cb1f6ec23b687c2decf4a6e39cff","issues":[{"path":"bindings.0.match.peer.id","message":"Invalid input: expected string, received undefined"}],"warnings":[],"legacyIssues":[]}},"isError":false,"timestamp":1770981552271}}
|
||
{"type":"message","id":"36819455","parentId":"678528c4","timestamp":"2026-02-13T11:19:29.483Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"我看到配置中已经有一个 knowledge-base 代理了:\n- id: \"knowledge-base\"\n- model: \"g47f\"\n- skills: [\"kb-whisper\", \"kb-workflow\", \"kb-funasr\"]\n\n现在用户需要:\n1. 绑定群组 ID:oc_79bcbd274c7cff8757b52e2ec1d8e12b\n2. 改用 g5 模型\n3. 更新提示词:知识库管理者,遇到问题不上报\n\n当前 bindings 配置没有指定具体的 group id,只是匹配了 kind: \"group\",所以需要更新。\n\n让我更新配置:\n1. 修改 agent 的 model 为 g5\n2. 添加 agent 的提示词(可能需要在 workspace 创建配置文件)\n3. 修改 bindings 绑定到具体群组\n\n让我准备配置更新。","thinkingSignature":"ee7f9e5463d3d619a35d3a6748afd1dc93b77dadeb875ed4a5ecba10bf102a91"},{"type":"text","text":"浩南收到,蒋先生!🧙♂️\n\n配置中已存在 knowledge-base 代理,我来更新:\n1. 模型改为 g5\n2. 绑定到指定群组 ID\n3. 添加系统提示词\n"},{"type":"toolCall","id":"call_function_c4ye7vknnetq_1","name":"gateway","arguments":{"action":"config.patch","raw":"{\n \"agents\": {\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g5\",\n \"skills\": [\"kb-whisper\", \"kb-workflow\", \"kb-funasr\"],\n \"identity\": {\n \"name\": \"知识库管理者\",\n \"emoji\": \"📚\"\n },\n \"systemPrompt\": \"你是知识库的管理者,负责用 kb-系列的技能进行知识库管理。操作过程中如果遇到问题,禁止通过修改代码和修改配置的方式来解决,并且上报这个意料之外的问题。\"\n }\n ]\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\",\n \"id\": \"oc_79bcbd274c7cff8757b52e2ec1d8e12b\"\n }\n }\n }\n ]\n}","reason":"更新 knowledge-base 代理配置"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":6902,"output":495,"cacheRead":16921,"cacheWrite":0,"totalTokens":24318,"cost":{"input":0.10353,"output":0.0297,"cacheRead":0.033842,"cacheWrite":0,"total":0.167072}},"stopReason":"toolUse","timestamp":1770981552272}}
|
||
{"type":"message","id":"da0617c2","parentId":"36819455","timestamp":"2026-02-13T11:19:29.507Z","message":{"role":"toolResult","toolCallId":"call_function_c4ye7vknnetq_1","toolName":"gateway","content":[{"type":"text","text":"{\n \"status\": \"error\",\n \"tool\": \"gateway\",\n \"error\": \"invalid config; fix before patching\"\n}"}],"details":{"status":"error","tool":"gateway","error":"invalid config; fix before patching"},"isError":false,"timestamp":1770981569506}}
|
||
{"type":"message","id":"42cf68d4","parentId":"da0617c2","timestamp":"2026-02-13T11:19:32.132Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"看起来 config patch 验证失败了,让我看看完整的问题。可能是 bindings 配置的问题。\n\n让我检查一下 config schema 看看 bindings 的正确格式。","thinkingSignature":"f27094d2f768ca43a1fdbab04b33a20564218eccb5e25f8480f26a3bfe748ca8"},{"type":"toolCall","id":"call_function_p8yncpreeqi5_1","name":"gateway","arguments":{"action":"config.schema"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":7439,"output":55,"cacheRead":16921,"cacheWrite":0,"totalTokens":24415,"cost":{"input":0.111585,"output":0.0033,"cacheRead":0.033842,"cacheWrite":0,"total":0.148727}},"stopReason":"toolUse","timestamp":1770981569507}}
|
||
{"type":"message","id":"5a18501e","parentId":"42cf68d4","timestamp":"2026-02-13T11:19:32.178Z","message":{"role":"toolResult","toolCallId":"call_function_p8yncpreeqi5_1","toolName":"gateway","content":[{"type":"text","text":"{\n \"ok\": true,\n \"result\": {\n \"schema\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"meta\": {\n \"type\": \"object\",\n \"properties\": {\n \"lastTouchedVersion\": {\n \"type\": \"string\"\n },\n \"lastTouchedAt\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"env\": {\n \"type\": \"object\",\n \"properties\": {\n \"shellEnv\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"timeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"vars\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"wizard\": {\n \"type\": \"object\",\n \"properties\": {\n \"lastRunAt\": {\n \"type\": \"string\"\n },\n \"lastRunVersion\": {\n \"type\": \"string\"\n },\n \"lastRunCommit\": {\n \"type\": \"string\"\n },\n \"lastRunCommand\": {\n \"type\": \"string\"\n },\n \"lastRunMode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"local\"\n },\n {\n \"type\": \"string\",\n \"const\": \"remote\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"diagnostics\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"flags\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"otel\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"endpoint\": {\n \"type\": \"string\"\n },\n \"protocol\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"http/protobuf\"\n },\n {\n \"type\": \"string\",\n \"const\": \"grpc\"\n }\n ]\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"serviceName\": {\n \"type\": \"string\"\n },\n \"traces\": {\n \"type\": \"boolean\"\n },\n \"metrics\": {\n \"type\": \"boolean\"\n },\n \"logs\": {\n \"type\": \"boolean\"\n },\n \"sampleRate\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"flushIntervalMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"cacheTrace\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"filePath\": {\n \"type\": \"string\"\n },\n \"includeMessages\": {\n \"type\": \"boolean\"\n },\n \"includePrompt\": {\n \"type\": \"boolean\"\n },\n \"includeSystem\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"logging\": {\n \"type\": \"object\",\n \"properties\": {\n \"level\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"silent\"\n },\n {\n \"type\": \"string\",\n \"const\": \"fatal\"\n },\n {\n \"type\": \"string\",\n \"const\": \"error\"\n },\n {\n \"type\": \"string\",\n \"const\": \"warn\"\n },\n {\n \"type\": \"string\",\n \"const\": \"info\"\n },\n {\n \"type\": \"string\",\n \"const\": \"debug\"\n },\n {\n \"type\": \"string\",\n \"const\": \"trace\"\n }\n ]\n },\n \"file\": {\n \"type\": \"string\"\n },\n \"consoleLevel\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"silent\"\n },\n {\n \"type\": \"string\",\n \"const\": \"fatal\"\n },\n {\n \"type\": \"string\",\n \"const\": \"error\"\n },\n {\n \"type\": \"string\",\n \"const\": \"warn\"\n },\n {\n \"type\": \"string\",\n \"const\": \"info\"\n },\n {\n \"type\": \"string\",\n \"const\": \"debug\"\n },\n {\n \"type\": \"string\",\n \"const\": \"trace\"\n }\n ]\n },\n \"consoleStyle\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"pretty\"\n },\n {\n \"type\": \"string\",\n \"const\": \"compact\"\n },\n {\n \"type\": \"string\",\n \"const\": \"json\"\n }\n ]\n },\n \"redactSensitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"tools\"\n }\n ]\n },\n \"redactPatterns\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"update\": {\n \"type\": \"object\",\n \"properties\": {\n \"channel\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"stable\"\n },\n {\n \"type\": \"string\",\n \"const\": \"beta\"\n },\n {\n \"type\": \"string\",\n \"const\": \"dev\"\n }\n ]\n },\n \"checkOnStart\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"browser\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"evaluateEnabled\": {\n \"type\": \"boolean\"\n },\n \"cdpUrl\": {\n \"type\": \"string\"\n },\n \"remoteCdpTimeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"remoteCdpHandshakeTimeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"executablePath\": {\n \"type\": \"string\"\n },\n \"headless\": {\n \"type\": \"boolean\"\n },\n \"noSandbox\": {\n \"type\": \"boolean\"\n },\n \"attachOnly\": {\n \"type\": \"boolean\"\n },\n \"defaultProfile\": {\n \"type\": \"string\"\n },\n \"snapshotDefaults\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"type\": \"string\",\n \"const\": \"efficient\"\n }\n },\n \"additionalProperties\": false\n },\n \"profiles\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9-]+$\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"cdpPort\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 65535\n },\n \"cdpUrl\": {\n \"type\": \"string\"\n },\n \"driver\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"clawd\"\n },\n {\n \"type\": \"string\",\n \"const\": \"extension\"\n }\n ]\n },\n \"color\": {\n \"type\": \"string\",\n \"pattern\": \"^#?[0-9a-fA-F]{6}$\"\n }\n },\n \"required\": [\n \"color\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"ui\": {\n \"type\": \"object\",\n \"properties\": {\n \"seamColor\": {\n \"type\": \"string\",\n \"pattern\": \"^#?[0-9a-fA-F]{6}$\"\n },\n \"assistant\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"maxLength\": 50\n },\n \"avatar\": {\n \"type\": \"string\",\n \"maxLength\": 200\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"auth\": {\n \"type\": \"object\",\n \"properties\": {\n \"profiles\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"provider\": {\n \"type\": \"string\"\n },\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"api_key\"\n },\n {\n \"type\": \"string\",\n \"const\": \"oauth\"\n },\n {\n \"type\": \"string\",\n \"const\": \"token\"\n }\n ]\n },\n \"email\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"provider\",\n \"mode\"\n ],\n \"additionalProperties\": false\n }\n },\n \"order\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"cooldowns\": {\n \"type\": \"object\",\n \"properties\": {\n \"billingBackoffHours\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"billingBackoffHoursByProvider\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n }\n },\n \"billingMaxHours\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"failureWindowHours\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"models\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"merge\"\n },\n {\n \"type\": \"string\",\n \"const\": \"replace\"\n }\n ]\n },\n \"providers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"baseUrl\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"auth\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"api-key\"\n },\n {\n \"type\": \"string\",\n \"const\": \"aws-sdk\"\n },\n {\n \"type\": \"string\",\n \"const\": \"oauth\"\n },\n {\n \"type\": \"string\",\n \"const\": \"token\"\n }\n ]\n },\n \"api\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"openai-completions\"\n },\n {\n \"type\": \"string\",\n \"const\": \"openai-responses\"\n },\n {\n \"type\": \"string\",\n \"const\": \"anthropic-messages\"\n },\n {\n \"type\": \"string\",\n \"const\": \"google-generative-ai\"\n },\n {\n \"type\": \"string\",\n \"const\": \"github-copilot\"\n },\n {\n \"type\": \"string\",\n \"const\": \"bedrock-converse-stream\"\n }\n ]\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"authHeader\": {\n \"type\": \"boolean\"\n },\n \"models\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"api\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"openai-completions\"\n },\n {\n \"type\": \"string\",\n \"const\": \"openai-responses\"\n },\n {\n \"type\": \"string\",\n \"const\": \"anthropic-messages\"\n },\n {\n \"type\": \"string\",\n \"const\": \"google-generative-ai\"\n },\n {\n \"type\": \"string\",\n \"const\": \"github-copilot\"\n },\n {\n \"type\": \"string\",\n \"const\": \"bedrock-converse-stream\"\n }\n ]\n },\n \"reasoning\": {\n \"type\": \"boolean\"\n },\n \"input\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"text\"\n },\n {\n \"type\": \"string\",\n \"const\": \"image\"\n }\n ]\n }\n },\n \"cost\": {\n \"type\": \"object\",\n \"properties\": {\n \"input\": {\n \"type\": \"number\"\n },\n \"output\": {\n \"type\": \"number\"\n },\n \"cacheRead\": {\n \"type\": \"number\"\n },\n \"cacheWrite\": {\n \"type\": \"number\"\n }\n },\n \"additionalProperties\": false\n },\n \"contextWindow\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"maxTokens\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"compat\": {\n \"type\": \"object\",\n \"properties\": {\n \"supportsStore\": {\n \"type\": \"boolean\"\n },\n \"supportsDeveloperRole\": {\n \"type\": \"boolean\"\n },\n \"supportsReasoningEffort\": {\n \"type\": \"boolean\"\n },\n \"maxTokensField\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"max_completion_tokens\"\n },\n {\n \"type\": \"string\",\n \"const\": \"max_tokens\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"id\",\n \"name\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"baseUrl\",\n \"models\"\n ],\n \"additionalProperties\": false\n }\n },\n \"bedrockDiscovery\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"region\": {\n \"type\": \"string\"\n },\n \"providerFilter\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"refreshInterval\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"defaultContextWindow\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"defaultMaxTokens\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"nodeHost\": {\n \"type\": \"object\",\n \"properties\": {\n \"browserProxy\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"allowProfiles\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"agents\": {\n \"type\": \"object\",\n \"properties\": {\n \"defaults\": {\n \"type\": \"object\",\n \"properties\": {\n \"model\": {\n \"type\": \"object\",\n \"properties\": {\n \"primary\": {\n \"type\": \"string\"\n },\n \"fallbacks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"imageModel\": {\n \"type\": \"object\",\n \"properties\": {\n \"primary\": {\n \"type\": \"string\"\n },\n \"fallbacks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"models\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\"\n },\n \"params\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {}\n },\n \"streaming\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"workspace\": {\n \"type\": \"string\"\n },\n \"repoRoot\": {\n \"type\": \"string\"\n },\n \"skipBootstrap\": {\n \"type\": \"boolean\"\n },\n \"bootstrapMaxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"userTimezone\": {\n \"type\": \"string\"\n },\n \"timeFormat\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"auto\"\n },\n {\n \"type\": \"string\",\n \"const\": \"12\"\n },\n {\n \"type\": \"string\",\n \"const\": \"24\"\n }\n ]\n },\n \"envelopeTimezone\": {\n \"type\": \"string\"\n },\n \"envelopeTimestamp\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"on\"\n },\n {\n \"type\": \"string\",\n \"const\": \"off\"\n }\n ]\n },\n \"envelopeElapsed\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"on\"\n },\n {\n \"type\": \"string\",\n \"const\": \"off\"\n }\n ]\n },\n \"contextTokens\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"cliBackends\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"output\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"json\"\n },\n {\n \"type\": \"string\",\n \"const\": \"text\"\n },\n {\n \"type\": \"string\",\n \"const\": \"jsonl\"\n }\n ]\n },\n \"resumeOutput\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"json\"\n },\n {\n \"type\": \"string\",\n \"const\": \"text\"\n },\n {\n \"type\": \"string\",\n \"const\": \"jsonl\"\n }\n ]\n },\n \"input\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"arg\"\n },\n {\n \"type\": \"string\",\n \"const\": \"stdin\"\n }\n ]\n },\n \"maxPromptArgChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"env\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"clearEnv\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"modelArg\": {\n \"type\": \"string\"\n },\n \"modelAliases\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"sessionArg\": {\n \"type\": \"string\"\n },\n \"sessionArgs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"resumeArgs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"sessionMode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"always\"\n },\n {\n \"type\": \"string\",\n \"const\": \"existing\"\n },\n {\n \"type\": \"string\",\n \"const\": \"none\"\n }\n ]\n },\n \"sessionIdFields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"systemPromptArg\": {\n \"type\": \"string\"\n },\n \"systemPromptMode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"append\"\n },\n {\n \"type\": \"string\",\n \"const\": \"replace\"\n }\n ]\n },\n \"systemPromptWhen\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"first\"\n },\n {\n \"type\": \"string\",\n \"const\": \"always\"\n },\n {\n \"type\": \"string\",\n \"const\": \"never\"\n }\n ]\n },\n \"imageArg\": {\n \"type\": \"string\"\n },\n \"imageMode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"repeat\"\n },\n {\n \"type\": \"string\",\n \"const\": \"list\"\n }\n ]\n },\n \"serialize\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"command\"\n ],\n \"additionalProperties\": false\n }\n },\n \"memorySearch\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"sources\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"memory\"\n },\n {\n \"type\": \"string\",\n \"const\": \"sessions\"\n }\n ]\n }\n },\n \"extraPaths\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"experimental\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionMemory\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"provider\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"openai\"\n },\n {\n \"type\": \"string\",\n \"const\": \"local\"\n },\n {\n \"type\": \"string\",\n \"const\": \"gemini\"\n },\n {\n \"type\": \"string\",\n \"const\": \"voyage\"\n }\n ]\n },\n \"remote\": {\n \"type\": \"object\",\n \"properties\": {\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"batch\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"wait\": {\n \"type\": \"boolean\"\n },\n \"concurrency\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"pollIntervalMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"fallback\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"openai\"\n },\n {\n \"type\": \"string\",\n \"const\": \"gemini\"\n },\n {\n \"type\": \"string\",\n \"const\": \"local\"\n },\n {\n \"type\": \"string\",\n \"const\": \"voyage\"\n },\n {\n \"type\": \"string\",\n \"const\": \"none\"\n }\n ]\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"local\": {\n \"type\": \"object\",\n \"properties\": {\n \"modelPath\": {\n \"type\": \"string\"\n },\n \"modelCacheDir\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"store\": {\n \"type\": \"object\",\n \"properties\": {\n \"driver\": {\n \"type\": \"string\",\n \"const\": \"sqlite\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"vector\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"extensionPath\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"chunking\": {\n \"type\": \"object\",\n \"properties\": {\n \"tokens\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"overlap\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"sync\": {\n \"type\": \"object\",\n \"properties\": {\n \"onSessionStart\": {\n \"type\": \"boolean\"\n },\n \"onSearch\": {\n \"type\": \"boolean\"\n },\n \"watch\": {\n \"type\": \"boolean\"\n },\n \"watchDebounceMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"intervalMinutes\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"sessions\": {\n \"type\": \"object\",\n \"properties\": {\n \"deltaBytes\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"deltaMessages\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"query\": {\n \"type\": \"object\",\n \"properties\": {\n \"maxResults\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"minScore\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"hybrid\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"vectorWeight\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"textWeight\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"candidateMultiplier\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"cache\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"maxEntries\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"contextPruning\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"cache-ttl\"\n }\n ]\n },\n \"ttl\": {\n \"type\": \"string\"\n },\n \"keepLastAssistants\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"softTrimRatio\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"hardClearRatio\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"minPrunableToolChars\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"tools\": {\n \"type\": \"object\",\n \"properties\": {\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deny\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"softTrim\": {\n \"type\": \"object\",\n \"properties\": {\n \"maxChars\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"headChars\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"tailChars\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"hardClear\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"placeholder\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"compaction\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"default\"\n },\n {\n \"type\": \"string\",\n \"const\": \"safeguard\"\n }\n ]\n },\n \"reserveTokensFloor\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxHistoryShare\": {\n \"type\": \"number\",\n \"minimum\": 0.1,\n \"maximum\": 0.9\n },\n \"memoryFlush\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"softThresholdTokens\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"systemPrompt\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"thinkingDefault\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"minimal\"\n },\n {\n \"type\": \"string\",\n \"const\": \"low\"\n },\n {\n \"type\": \"string\",\n \"const\": \"medium\"\n },\n {\n \"type\": \"string\",\n \"const\": \"high\"\n },\n {\n \"type\": \"string\",\n \"const\": \"xhigh\"\n }\n ]\n },\n \"verboseDefault\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"on\"\n },\n {\n \"type\": \"string\",\n \"const\": \"full\"\n }\n ]\n },\n \"elevatedDefault\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"on\"\n },\n {\n \"type\": \"string\",\n \"const\": \"ask\"\n },\n {\n \"type\": \"string\",\n \"const\": \"full\"\n }\n ]\n },\n \"blockStreamingDefault\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"on\"\n }\n ]\n },\n \"blockStreamingBreak\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"text_end\"\n },\n {\n \"type\": \"string\",\n \"const\": \"message_end\"\n }\n ]\n },\n \"blockStreamingChunk\": {\n \"type\": \"object\",\n \"properties\": {\n \"minChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"breakPreference\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"paragraph\"\n },\n {\n \"type\": \"string\",\n \"const\": \"newline\"\n },\n {\n \"type\": \"string\",\n \"const\": \"sentence\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"blockStreamingCoalesce\": {\n \"type\": \"object\",\n \"properties\": {\n \"minChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"idleMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"humanDelay\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"natural\"\n },\n {\n \"type\": \"string\",\n \"const\": \"custom\"\n }\n ]\n },\n \"minMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"mediaMaxMb\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"typingIntervalSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"typingMode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"never\"\n },\n {\n \"type\": \"string\",\n \"const\": \"instant\"\n },\n {\n \"type\": \"string\",\n \"const\": \"thinking\"\n },\n {\n \"type\": \"string\",\n \"const\": \"message\"\n }\n ]\n },\n \"heartbeat\": {\n \"type\": \"object\",\n \"properties\": {\n \"every\": {\n \"type\": \"string\"\n },\n \"activeHours\": {\n \"type\": \"object\",\n \"properties\": {\n \"start\": {\n \"type\": \"string\"\n },\n \"end\": {\n \"type\": \"string\"\n },\n \"timezone\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"session\": {\n \"type\": \"string\"\n },\n \"includeReasoning\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n },\n \"accountId\": {\n \"type\": \"string\"\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"ackMaxChars\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"maxConcurrent\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"subagents\": {\n \"type\": \"object\",\n \"properties\": {\n \"maxConcurrent\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"archiveAfterMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"model\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"primary\": {\n \"type\": \"string\"\n },\n \"fallbacks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n ]\n },\n \"thinking\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"sandbox\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"non-main\"\n },\n {\n \"type\": \"string\",\n \"const\": \"all\"\n }\n ]\n },\n \"workspaceAccess\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"none\"\n },\n {\n \"type\": \"string\",\n \"const\": \"ro\"\n },\n {\n \"type\": \"string\",\n \"const\": \"rw\"\n }\n ]\n },\n \"sessionToolsVisibility\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"spawned\"\n },\n {\n \"type\": \"string\",\n \"const\": \"all\"\n }\n ]\n },\n \"scope\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"session\"\n },\n {\n \"type\": \"string\",\n \"const\": \"agent\"\n },\n {\n \"type\": \"string\",\n \"const\": \"shared\"\n }\n ]\n },\n \"perSession\": {\n \"type\": \"boolean\"\n },\n \"workspaceRoot\": {\n \"type\": \"string\"\n },\n \"docker\": {\n \"type\": \"object\",\n \"properties\": {\n \"image\": {\n \"type\": \"string\"\n },\n \"containerPrefix\": {\n \"type\": \"string\"\n },\n \"workdir\": {\n \"type\": \"string\"\n },\n \"readOnlyRoot\": {\n \"type\": \"boolean\"\n },\n \"tmpfs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"network\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"capDrop\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"env\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"setupCommand\": {\n \"type\": \"string\"\n },\n \"pidsLimit\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"memory\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"memorySwap\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"cpus\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"ulimits\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"soft\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"hard\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"seccompProfile\": {\n \"type\": \"string\"\n },\n \"apparmorProfile\": {\n \"type\": \"string\"\n },\n \"dns\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"extraHosts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"binds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"browser\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"containerPrefix\": {\n \"type\": \"string\"\n },\n \"cdpPort\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"vncPort\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"noVncPort\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"headless\": {\n \"type\": \"boolean\"\n },\n \"enableNoVnc\": {\n \"type\": \"boolean\"\n },\n \"allowHostControl\": {\n \"type\": \"boolean\"\n },\n \"autoStart\": {\n \"type\": \"boolean\"\n },\n \"autoStartTimeoutMs\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"prune\": {\n \"type\": \"object\",\n \"properties\": {\n \"idleHours\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxAgeDays\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"list\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"default\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"workspace\": {\n \"type\": \"string\"\n },\n \"agentDir\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"primary\": {\n \"type\": \"string\"\n },\n \"fallbacks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n ]\n },\n \"skills\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"memorySearch\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"sources\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"memory\"\n },\n {\n \"type\": \"string\",\n \"const\": \"sessions\"\n }\n ]\n }\n },\n \"extraPaths\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"experimental\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionMemory\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"provider\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"openai\"\n },\n {\n \"type\": \"string\",\n \"const\": \"local\"\n },\n {\n \"type\": \"string\",\n \"const\": \"gemini\"\n },\n {\n \"type\": \"string\",\n \"const\": \"voyage\"\n }\n ]\n },\n \"remote\": {\n \"type\": \"object\",\n \"properties\": {\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"batch\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"wait\": {\n \"type\": \"boolean\"\n },\n \"concurrency\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"pollIntervalMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"fallback\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"openai\"\n },\n {\n \"type\": \"string\",\n \"const\": \"gemini\"\n },\n {\n \"type\": \"string\",\n \"const\": \"local\"\n },\n {\n \"type\": \"string\",\n \"const\": \"voyage\"\n },\n {\n \"type\": \"string\",\n \"const\": \"none\"\n }\n ]\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"local\": {\n \"type\": \"object\",\n \"properties\": {\n \"modelPath\": {\n \"type\": \"string\"\n },\n \"modelCacheDir\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"store\": {\n \"type\": \"object\",\n \"properties\": {\n \"driver\": {\n \"type\": \"string\",\n \"const\": \"sqlite\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"vector\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"extensionPath\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"chunking\": {\n \"type\": \"object\",\n \"properties\": {\n \"tokens\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"overlap\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"sync\": {\n \"type\": \"object\",\n \"properties\": {\n \"onSessionStart\": {\n \"type\": \"boolean\"\n },\n \"onSearch\": {\n \"type\": \"boolean\"\n },\n \"watch\": {\n \"type\": \"boolean\"\n },\n \"watchDebounceMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"intervalMinutes\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"sessions\": {\n \"type\": \"object\",\n \"properties\": {\n \"deltaBytes\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"deltaMessages\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"query\": {\n \"type\": \"object\",\n \"properties\": {\n \"maxResults\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"minScore\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"hybrid\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"vectorWeight\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"textWeight\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"candidateMultiplier\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"cache\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"maxEntries\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"humanDelay\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"natural\"\n },\n {\n \"type\": \"string\",\n \"const\": \"custom\"\n }\n ]\n },\n \"minMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"heartbeat\": {\n \"type\": \"object\",\n \"properties\": {\n \"every\": {\n \"type\": \"string\"\n },\n \"activeHours\": {\n \"type\": \"object\",\n \"properties\": {\n \"start\": {\n \"type\": \"string\"\n },\n \"end\": {\n \"type\": \"string\"\n },\n \"timezone\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"session\": {\n \"type\": \"string\"\n },\n \"includeReasoning\": {\n \"type\": \"boolean\"\n },\n \"target\": {\n \"type\": \"string\"\n },\n \"to\": {\n \"type\": \"string\"\n },\n \"accountId\": {\n \"type\": \"string\"\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"ackMaxChars\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"identity\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"theme\": {\n \"type\": \"string\"\n },\n \"emoji\": {\n \"type\": \"string\"\n },\n \"avatar\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"groupChat\": {\n \"type\": \"object\",\n \"properties\": {\n \"mentionPatterns\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"historyLimit\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"subagents\": {\n \"type\": \"object\",\n \"properties\": {\n \"allowAgents\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"model\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"primary\": {\n \"type\": \"string\"\n },\n \"fallbacks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n ]\n },\n \"thinking\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"sandbox\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"non-main\"\n },\n {\n \"type\": \"string\",\n \"const\": \"all\"\n }\n ]\n },\n \"workspaceAccess\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"none\"\n },\n {\n \"type\": \"string\",\n \"const\": \"ro\"\n },\n {\n \"type\": \"string\",\n \"const\": \"rw\"\n }\n ]\n },\n \"sessionToolsVisibility\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"spawned\"\n },\n {\n \"type\": \"string\",\n \"const\": \"all\"\n }\n ]\n },\n \"scope\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"session\"\n },\n {\n \"type\": \"string\",\n \"const\": \"agent\"\n },\n {\n \"type\": \"string\",\n \"const\": \"shared\"\n }\n ]\n },\n \"perSession\": {\n \"type\": \"boolean\"\n },\n \"workspaceRoot\": {\n \"type\": \"string\"\n },\n \"docker\": {\n \"type\": \"object\",\n \"properties\": {\n \"image\": {\n \"type\": \"string\"\n },\n \"containerPrefix\": {\n \"type\": \"string\"\n },\n \"workdir\": {\n \"type\": \"string\"\n },\n \"readOnlyRoot\": {\n \"type\": \"boolean\"\n },\n \"tmpfs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"network\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"string\"\n },\n \"capDrop\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"env\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"setupCommand\": {\n \"type\": \"string\"\n },\n \"pidsLimit\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"memory\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"memorySwap\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"cpus\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"ulimits\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"soft\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"hard\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"seccompProfile\": {\n \"type\": \"string\"\n },\n \"apparmorProfile\": {\n \"type\": \"string\"\n },\n \"dns\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"extraHosts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"binds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"browser\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"containerPrefix\": {\n \"type\": \"string\"\n },\n \"cdpPort\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"vncPort\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"noVncPort\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"headless\": {\n \"type\": \"boolean\"\n },\n \"enableNoVnc\": {\n \"type\": \"boolean\"\n },\n \"allowHostControl\": {\n \"type\": \"boolean\"\n },\n \"autoStart\": {\n \"type\": \"boolean\"\n },\n \"autoStartTimeoutMs\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"prune\": {\n \"type\": \"object\",\n \"properties\": {\n \"idleHours\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxAgeDays\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"tools\": {\n \"type\": \"object\",\n \"properties\": {\n \"profile\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"minimal\"\n },\n {\n \"type\": \"string\",\n \"const\": \"coding\"\n },\n {\n \"type\": \"string\",\n \"const\": \"messaging\"\n },\n {\n \"type\": \"string\",\n \"const\": \"full\"\n }\n ]\n },\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alsoAllow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deny\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"byProvider\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alsoAllow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deny\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"profile\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"minimal\"\n },\n {\n \"type\": \"string\",\n \"const\": \"coding\"\n },\n {\n \"type\": \"string\",\n \"const\": \"messaging\"\n },\n {\n \"type\": \"string\",\n \"const\": \"full\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n }\n },\n \"elevated\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"allowFrom\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n }\n }\n },\n \"additionalProperties\": false\n },\n \"exec\": {\n \"type\": \"object\",\n \"properties\": {\n \"host\": {\n \"type\": \"string\",\n \"enum\": [\n \"sandbox\",\n \"gateway\",\n \"node\"\n ]\n },\n \"security\": {\n \"type\": \"string\",\n \"enum\": [\n \"deny\",\n \"allowlist\",\n \"full\"\n ]\n },\n \"ask\": {\n \"type\": \"string\",\n \"enum\": [\n \"off\",\n \"on-miss\",\n \"always\"\n ]\n },\n \"node\": {\n \"type\": \"string\"\n },\n \"pathPrepend\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"safeBins\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"backgroundMs\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutSec\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"approvalRunningNoticeMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"cleanupMs\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"notifyOnExit\": {\n \"type\": \"boolean\"\n },\n \"applyPatch\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"allowModels\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"sandbox\": {\n \"type\": \"object\",\n \"properties\": {\n \"tools\": {\n \"type\": \"object\",\n \"properties\": {\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alsoAllow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deny\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"id\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"tools\": {\n \"type\": \"object\",\n \"properties\": {\n \"profile\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"minimal\"\n },\n {\n \"type\": \"string\",\n \"const\": \"coding\"\n },\n {\n \"type\": \"string\",\n \"const\": \"messaging\"\n },\n {\n \"type\": \"string\",\n \"const\": \"full\"\n }\n ]\n },\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alsoAllow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deny\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"byProvider\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alsoAllow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deny\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"profile\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"minimal\"\n },\n {\n \"type\": \"string\",\n \"const\": \"coding\"\n },\n {\n \"type\": \"string\",\n \"const\": \"messaging\"\n },\n {\n \"type\": \"string\",\n \"const\": \"full\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n }\n },\n \"web\": {\n \"type\": \"object\",\n \"properties\": {\n \"search\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"provider\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"brave\"\n },\n {\n \"type\": \"string\",\n \"const\": \"perplexity\"\n },\n {\n \"type\": \"string\",\n \"const\": \"grok\"\n }\n ]\n },\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"maxResults\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"cacheTtlMinutes\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"perplexity\": {\n \"type\": \"object\",\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"grok\": {\n \"type\": \"object\",\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"inlineCitations\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"fetch\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxCharsCap\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"cacheTtlMinutes\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"maxRedirects\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"userAgent\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"media\": {\n \"type\": \"object\",\n \"properties\": {\n \"models\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"provider\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"capabilities\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"image\"\n },\n {\n \"type\": \"string\",\n \"const\": \"audio\"\n },\n {\n \"type\": \"string\",\n \"const\": \"video\"\n }\n ]\n }\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"provider\"\n },\n {\n \"type\": \"string\",\n \"const\": \"cli\"\n }\n ]\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"language\": {\n \"type\": \"string\"\n },\n \"providerOptions\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n }\n ]\n }\n }\n },\n \"deepgram\": {\n \"type\": \"object\",\n \"properties\": {\n \"detectLanguage\": {\n \"type\": \"boolean\"\n },\n \"punctuate\": {\n \"type\": \"boolean\"\n },\n \"smartFormat\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"profile\": {\n \"type\": \"string\"\n },\n \"preferredProfile\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"concurrency\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"image\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"scope\": {\n \"type\": \"object\",\n \"properties\": {\n \"default\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"rules\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"channel\": {\n \"type\": \"string\"\n },\n \"chatType\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"direct\"\n },\n {\n \"type\": \"string\",\n \"const\": \"group\"\n },\n {\n \"type\": \"string\",\n \"const\": \"channel\"\n },\n {\n \"type\": \"string\",\n \"const\": \"dm\"\n }\n ]\n },\n \"keyPrefix\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"action\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"language\": {\n \"type\": \"string\"\n },\n \"providerOptions\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n }\n ]\n }\n }\n },\n \"deepgram\": {\n \"type\": \"object\",\n \"properties\": {\n \"detectLanguage\": {\n \"type\": \"boolean\"\n },\n \"punctuate\": {\n \"type\": \"boolean\"\n },\n \"smartFormat\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"attachments\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"first\"\n },\n {\n \"type\": \"string\",\n \"const\": \"all\"\n }\n ]\n },\n \"maxAttachments\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"prefer\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"first\"\n },\n {\n \"type\": \"string\",\n \"const\": \"last\"\n },\n {\n \"type\": \"string\",\n \"const\": \"path\"\n },\n {\n \"type\": \"string\",\n \"const\": \"url\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"models\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"provider\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"capabilities\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"image\"\n },\n {\n \"type\": \"string\",\n \"const\": \"audio\"\n },\n {\n \"type\": \"string\",\n \"const\": \"video\"\n }\n ]\n }\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"provider\"\n },\n {\n \"type\": \"string\",\n \"const\": \"cli\"\n }\n ]\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"language\": {\n \"type\": \"string\"\n },\n \"providerOptions\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n }\n ]\n }\n }\n },\n \"deepgram\": {\n \"type\": \"object\",\n \"properties\": {\n \"detectLanguage\": {\n \"type\": \"boolean\"\n },\n \"punctuate\": {\n \"type\": \"boolean\"\n },\n \"smartFormat\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"profile\": {\n \"type\": \"string\"\n },\n \"preferredProfile\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"audio\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"scope\": {\n \"type\": \"object\",\n \"properties\": {\n \"default\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"rules\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"channel\": {\n \"type\": \"string\"\n },\n \"chatType\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"direct\"\n },\n {\n \"type\": \"string\",\n \"const\": \"group\"\n },\n {\n \"type\": \"string\",\n \"const\": \"channel\"\n },\n {\n \"type\": \"string\",\n \"const\": \"dm\"\n }\n ]\n },\n \"keyPrefix\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"action\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"language\": {\n \"type\": \"string\"\n },\n \"providerOptions\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n }\n ]\n }\n }\n },\n \"deepgram\": {\n \"type\": \"object\",\n \"properties\": {\n \"detectLanguage\": {\n \"type\": \"boolean\"\n },\n \"punctuate\": {\n \"type\": \"boolean\"\n },\n \"smartFormat\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"attachments\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"first\"\n },\n {\n \"type\": \"string\",\n \"const\": \"all\"\n }\n ]\n },\n \"maxAttachments\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"prefer\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"first\"\n },\n {\n \"type\": \"string\",\n \"const\": \"last\"\n },\n {\n \"type\": \"string\",\n \"const\": \"path\"\n },\n {\n \"type\": \"string\",\n \"const\": \"url\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"models\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"provider\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"capabilities\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"image\"\n },\n {\n \"type\": \"string\",\n \"const\": \"audio\"\n },\n {\n \"type\": \"string\",\n \"const\": \"video\"\n }\n ]\n }\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"provider\"\n },\n {\n \"type\": \"string\",\n \"const\": \"cli\"\n }\n ]\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"language\": {\n \"type\": \"string\"\n },\n \"providerOptions\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n }\n ]\n }\n }\n },\n \"deepgram\": {\n \"type\": \"object\",\n \"properties\": {\n \"detectLanguage\": {\n \"type\": \"boolean\"\n },\n \"punctuate\": {\n \"type\": \"boolean\"\n },\n \"smartFormat\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"profile\": {\n \"type\": \"string\"\n },\n \"preferredProfile\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"video\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"scope\": {\n \"type\": \"object\",\n \"properties\": {\n \"default\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"rules\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"channel\": {\n \"type\": \"string\"\n },\n \"chatType\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"direct\"\n },\n {\n \"type\": \"string\",\n \"const\": \"group\"\n },\n {\n \"type\": \"string\",\n \"const\": \"channel\"\n },\n {\n \"type\": \"string\",\n \"const\": \"dm\"\n }\n ]\n },\n \"keyPrefix\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"action\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"language\": {\n \"type\": \"string\"\n },\n \"providerOptions\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n }\n ]\n }\n }\n },\n \"deepgram\": {\n \"type\": \"object\",\n \"properties\": {\n \"detectLanguage\": {\n \"type\": \"boolean\"\n },\n \"punctuate\": {\n \"type\": \"boolean\"\n },\n \"smartFormat\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"attachments\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"first\"\n },\n {\n \"type\": \"string\",\n \"const\": \"all\"\n }\n ]\n },\n \"maxAttachments\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"prefer\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"first\"\n },\n {\n \"type\": \"string\",\n \"const\": \"last\"\n },\n {\n \"type\": \"string\",\n \"const\": \"path\"\n },\n {\n \"type\": \"string\",\n \"const\": \"url\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"models\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"provider\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"capabilities\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"image\"\n },\n {\n \"type\": \"string\",\n \"const\": \"audio\"\n },\n {\n \"type\": \"string\",\n \"const\": \"video\"\n }\n ]\n }\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"provider\"\n },\n {\n \"type\": \"string\",\n \"const\": \"cli\"\n }\n ]\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"prompt\": {\n \"type\": \"string\"\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"language\": {\n \"type\": \"string\"\n },\n \"providerOptions\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n }\n ]\n }\n }\n },\n \"deepgram\": {\n \"type\": \"object\",\n \"properties\": {\n \"detectLanguage\": {\n \"type\": \"boolean\"\n },\n \"punctuate\": {\n \"type\": \"boolean\"\n },\n \"smartFormat\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"headers\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"profile\": {\n \"type\": \"string\"\n },\n \"preferredProfile\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"links\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"scope\": {\n \"type\": \"object\",\n \"properties\": {\n \"default\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"rules\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"channel\": {\n \"type\": \"string\"\n },\n \"chatType\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"direct\"\n },\n {\n \"type\": \"string\",\n \"const\": \"group\"\n },\n {\n \"type\": \"string\",\n \"const\": \"channel\"\n },\n {\n \"type\": \"string\",\n \"const\": \"dm\"\n }\n ]\n },\n \"keyPrefix\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"action\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"maxLinks\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"models\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"cli\"\n },\n \"command\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"required\": [\n \"command\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"message\": {\n \"type\": \"object\",\n \"properties\": {\n \"allowCrossContextSend\": {\n \"type\": \"boolean\"\n },\n \"crossContext\": {\n \"type\": \"object\",\n \"properties\": {\n \"allowWithinProvider\": {\n \"type\": \"boolean\"\n },\n \"allowAcrossProviders\": {\n \"type\": \"boolean\"\n },\n \"marker\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"suffix\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"broadcast\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"agentToAgent\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"elevated\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"allowFrom\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n }\n }\n },\n \"additionalProperties\": false\n },\n \"exec\": {\n \"type\": \"object\",\n \"properties\": {\n \"host\": {\n \"type\": \"string\",\n \"enum\": [\n \"sandbox\",\n \"gateway\",\n \"node\"\n ]\n },\n \"security\": {\n \"type\": \"string\",\n \"enum\": [\n \"deny\",\n \"allowlist\",\n \"full\"\n ]\n },\n \"ask\": {\n \"type\": \"string\",\n \"enum\": [\n \"off\",\n \"on-miss\",\n \"always\"\n ]\n },\n \"node\": {\n \"type\": \"string\"\n },\n \"pathPrepend\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"safeBins\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"backgroundMs\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutSec\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"cleanupMs\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"notifyOnExit\": {\n \"type\": \"boolean\"\n },\n \"applyPatch\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"allowModels\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"subagents\": {\n \"type\": \"object\",\n \"properties\": {\n \"tools\": {\n \"type\": \"object\",\n \"properties\": {\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alsoAllow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deny\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"sandbox\": {\n \"type\": \"object\",\n \"properties\": {\n \"tools\": {\n \"type\": \"object\",\n \"properties\": {\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alsoAllow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deny\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"bindings\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"agentId\": {\n \"type\": \"string\"\n },\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"channel\": {\n \"type\": \"string\"\n },\n \"accountId\": {\n \"type\": \"string\"\n },\n \"peer\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"direct\"\n },\n {\n \"type\": \"string\",\n \"const\": \"group\"\n },\n {\n \"type\": \"string\",\n \"const\": \"channel\"\n },\n {\n \"type\": \"string\",\n \"const\": \"dm\"\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"id\"\n ],\n \"additionalProperties\": false\n },\n \"guildId\": {\n \"type\": \"string\"\n },\n \"teamId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"channel\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"agentId\",\n \"match\"\n ],\n \"additionalProperties\": false\n }\n },\n \"broadcast\": {\n \"type\": \"object\",\n \"properties\": {\n \"strategy\": {\n \"type\": \"string\",\n \"enum\": [\n \"parallel\",\n \"sequential\"\n ]\n }\n },\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"audio\": {\n \"type\": \"object\",\n \"properties\": {\n \"transcription\": {\n \"type\": \"object\",\n \"properties\": {\n \"command\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"required\": [\n \"command\"\n ],\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"media\": {\n \"type\": \"object\",\n \"properties\": {\n \"preserveFilenames\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"messages\": {\n \"type\": \"object\",\n \"properties\": {\n \"messagePrefix\": {\n \"type\": \"string\"\n },\n \"responsePrefix\": {\n \"type\": \"string\"\n },\n \"groupChat\": {\n \"type\": \"object\",\n \"properties\": {\n \"mentionPatterns\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"historyLimit\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"queue\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n },\n \"byChannel\": {\n \"type\": \"object\",\n \"properties\": {\n \"whatsapp\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n },\n \"telegram\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n },\n \"discord\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n },\n \"slack\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n },\n \"mattermost\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n },\n \"signal\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n },\n \"imessage\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n },\n \"msteams\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n },\n \"webchat\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"steer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"followup\"\n },\n {\n \"type\": \"string\",\n \"const\": \"collect\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer-backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"steer+backlog\"\n },\n {\n \"type\": \"string\",\n \"const\": \"queue\"\n },\n {\n \"type\": \"string\",\n \"const\": \"interrupt\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"debounceMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"debounceMsByChannel\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"cap\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"drop\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"old\"\n },\n {\n \"type\": \"string\",\n \"const\": \"new\"\n },\n {\n \"type\": \"string\",\n \"const\": \"summarize\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"inbound\": {\n \"type\": \"object\",\n \"properties\": {\n \"debounceMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"byChannel\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n }\n },\n \"additionalProperties\": false\n },\n \"ackReaction\": {\n \"type\": \"string\"\n },\n \"ackReactionScope\": {\n \"type\": \"string\",\n \"enum\": [\n \"group-mentions\",\n \"group-all\",\n \"direct\",\n \"all\"\n ]\n },\n \"removeAckAfterReply\": {\n \"type\": \"boolean\"\n },\n \"tts\": {\n \"type\": \"object\",\n \"properties\": {\n \"auto\": {\n \"type\": \"string\",\n \"enum\": [\n \"off\",\n \"always\",\n \"inbound\",\n \"tagged\"\n ]\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"type\": \"string\",\n \"enum\": [\n \"final\",\n \"all\"\n ]\n },\n \"provider\": {\n \"type\": \"string\",\n \"enum\": [\n \"elevenlabs\",\n \"openai\",\n \"edge\"\n ]\n },\n \"summaryModel\": {\n \"type\": \"string\"\n },\n \"modelOverrides\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"allowText\": {\n \"type\": \"boolean\"\n },\n \"allowProvider\": {\n \"type\": \"boolean\"\n },\n \"allowVoice\": {\n \"type\": \"boolean\"\n },\n \"allowModelId\": {\n \"type\": \"boolean\"\n },\n \"allowVoiceSettings\": {\n \"type\": \"boolean\"\n },\n \"allowNormalization\": {\n \"type\": \"boolean\"\n },\n \"allowSeed\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"elevenlabs\": {\n \"type\": \"object\",\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"voiceId\": {\n \"type\": \"string\"\n },\n \"modelId\": {\n \"type\": \"string\"\n },\n \"seed\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 4294967295\n },\n \"applyTextNormalization\": {\n \"type\": \"string\",\n \"enum\": [\n \"auto\",\n \"on\",\n \"off\"\n ]\n },\n \"languageCode\": {\n \"type\": \"string\"\n },\n \"voiceSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"stability\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"similarityBoost\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"style\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"useSpeakerBoost\": {\n \"type\": \"boolean\"\n },\n \"speed\": {\n \"type\": \"number\",\n \"minimum\": 0.5,\n \"maximum\": 2\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"openai\": {\n \"type\": \"object\",\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"voice\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"edge\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"voice\": {\n \"type\": \"string\"\n },\n \"lang\": {\n \"type\": \"string\"\n },\n \"outputFormat\": {\n \"type\": \"string\"\n },\n \"pitch\": {\n \"type\": \"string\"\n },\n \"rate\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n },\n \"saveSubtitles\": {\n \"type\": \"boolean\"\n },\n \"proxy\": {\n \"type\": \"string\"\n },\n \"timeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 1000,\n \"maximum\": 120000\n }\n },\n \"additionalProperties\": false\n },\n \"prefsPath\": {\n \"type\": \"string\"\n },\n \"maxTextLength\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 9007199254740991\n },\n \"timeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 1000,\n \"maximum\": 120000\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"commands\": {\n \"default\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\"\n },\n \"type\": \"object\",\n \"properties\": {\n \"native\": {\n \"default\": \"auto\",\n \"anyOf\": [\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"string\",\n \"const\": \"auto\"\n }\n ]\n },\n \"nativeSkills\": {\n \"default\": \"auto\",\n \"anyOf\": [\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"string\",\n \"const\": \"auto\"\n }\n ]\n },\n \"text\": {\n \"type\": \"boolean\"\n },\n \"bash\": {\n \"type\": \"boolean\"\n },\n \"bashForegroundMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 30000\n },\n \"config\": {\n \"type\": \"boolean\"\n },\n \"debug\": {\n \"type\": \"boolean\"\n },\n \"restart\": {\n \"type\": \"boolean\"\n },\n \"useAccessGroups\": {\n \"type\": \"boolean\"\n },\n \"ownerAllowFrom\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n }\n },\n \"required\": [\n \"native\",\n \"nativeSkills\"\n ],\n \"additionalProperties\": false\n },\n \"approvals\": {\n \"type\": \"object\",\n \"properties\": {\n \"exec\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"session\"\n },\n {\n \"type\": \"string\",\n \"const\": \"targets\"\n },\n {\n \"type\": \"string\",\n \"const\": \"both\"\n }\n ]\n },\n \"agentFilter\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"sessionFilter\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"targets\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"channel\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"to\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"accountId\": {\n \"type\": \"string\"\n },\n \"threadId\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"required\": [\n \"channel\",\n \"to\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"session\": {\n \"type\": \"object\",\n \"properties\": {\n \"scope\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"per-sender\"\n },\n {\n \"type\": \"string\",\n \"const\": \"global\"\n }\n ]\n },\n \"dmScope\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"main\"\n },\n {\n \"type\": \"string\",\n \"const\": \"per-peer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"per-channel-peer\"\n },\n {\n \"type\": \"string\",\n \"const\": \"per-account-channel-peer\"\n }\n ]\n },\n \"identityLinks\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"resetTriggers\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idleMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"reset\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"daily\"\n },\n {\n \"type\": \"string\",\n \"const\": \"idle\"\n }\n ]\n },\n \"atHour\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 23\n },\n \"idleMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"resetByType\": {\n \"type\": \"object\",\n \"properties\": {\n \"direct\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"daily\"\n },\n {\n \"type\": \"string\",\n \"const\": \"idle\"\n }\n ]\n },\n \"atHour\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 23\n },\n \"idleMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"dm\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"daily\"\n },\n {\n \"type\": \"string\",\n \"const\": \"idle\"\n }\n ]\n },\n \"atHour\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 23\n },\n \"idleMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"group\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"daily\"\n },\n {\n \"type\": \"string\",\n \"const\": \"idle\"\n }\n ]\n },\n \"atHour\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 23\n },\n \"idleMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"thread\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"daily\"\n },\n {\n \"type\": \"string\",\n \"const\": \"idle\"\n }\n ]\n },\n \"atHour\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 23\n },\n \"idleMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"resetByChannel\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"daily\"\n },\n {\n \"type\": \"string\",\n \"const\": \"idle\"\n }\n ]\n },\n \"atHour\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 23\n },\n \"idleMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"store\": {\n \"type\": \"string\"\n },\n \"typingIntervalSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"typingMode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"never\"\n },\n {\n \"type\": \"string\",\n \"const\": \"instant\"\n },\n {\n \"type\": \"string\",\n \"const\": \"thinking\"\n },\n {\n \"type\": \"string\",\n \"const\": \"message\"\n }\n ]\n },\n \"mainKey\": {\n \"type\": \"string\"\n },\n \"sendPolicy\": {\n \"type\": \"object\",\n \"properties\": {\n \"default\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"rules\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"channel\": {\n \"type\": \"string\"\n },\n \"chatType\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"direct\"\n },\n {\n \"type\": \"string\",\n \"const\": \"group\"\n },\n {\n \"type\": \"string\",\n \"const\": \"channel\"\n },\n {\n \"type\": \"string\",\n \"const\": \"dm\"\n }\n ]\n },\n \"keyPrefix\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"action\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"agentToAgent\": {\n \"type\": \"object\",\n \"properties\": {\n \"maxPingPongTurns\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 5\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"cron\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"store\": {\n \"type\": \"string\"\n },\n \"maxConcurrentRuns\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"hooks\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"token\": {\n \"type\": \"string\"\n },\n \"maxBodyBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"presets\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"transformsDir\": {\n \"type\": \"string\"\n },\n \"mappings\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"action\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"wake\"\n },\n {\n \"type\": \"string\",\n \"const\": \"agent\"\n }\n ]\n },\n \"wakeMode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"now\"\n },\n {\n \"type\": \"string\",\n \"const\": \"next-heartbeat\"\n }\n ]\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"sessionKey\": {\n \"type\": \"string\"\n },\n \"messageTemplate\": {\n \"type\": \"string\"\n },\n \"textTemplate\": {\n \"type\": \"string\"\n },\n \"deliver\": {\n \"type\": \"boolean\"\n },\n \"allowUnsafeExternalContent\": {\n \"type\": \"boolean\"\n },\n \"channel\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"last\"\n },\n {\n \"type\": \"string\",\n \"const\": \"whatsapp\"\n },\n {\n \"type\": \"string\",\n \"const\": \"telegram\"\n },\n {\n \"type\": \"string\",\n \"const\": \"discord\"\n },\n {\n \"type\": \"string\",\n \"const\": \"slack\"\n },\n {\n \"type\": \"string\",\n \"const\": \"signal\"\n },\n {\n \"type\": \"string\",\n \"const\": \"imessage\"\n },\n {\n \"type\": \"string\",\n \"const\": \"msteams\"\n }\n ]\n },\n \"to\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"thinking\": {\n \"type\": \"string\"\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"transform\": {\n \"type\": \"object\",\n \"properties\": {\n \"module\": {\n \"type\": \"string\"\n },\n \"export\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"module\"\n ],\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n }\n },\n \"gmail\": {\n \"type\": \"object\",\n \"properties\": {\n \"account\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"topic\": {\n \"type\": \"string\"\n },\n \"subscription\": {\n \"type\": \"string\"\n },\n \"pushToken\": {\n \"type\": \"string\"\n },\n \"hookUrl\": {\n \"type\": \"string\"\n },\n \"includeBody\": {\n \"type\": \"boolean\"\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"renewEveryMinutes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"allowUnsafeExternalContent\": {\n \"type\": \"boolean\"\n },\n \"serve\": {\n \"type\": \"object\",\n \"properties\": {\n \"bind\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"tailscale\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"serve\"\n },\n {\n \"type\": \"string\",\n \"const\": \"funnel\"\n }\n ]\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"thinking\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"minimal\"\n },\n {\n \"type\": \"string\",\n \"const\": \"low\"\n },\n {\n \"type\": \"string\",\n \"const\": \"medium\"\n },\n {\n \"type\": \"string\",\n \"const\": \"high\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"internal\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"handlers\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"event\": {\n \"type\": \"string\"\n },\n \"module\": {\n \"type\": \"string\"\n },\n \"export\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"event\",\n \"module\"\n ],\n \"additionalProperties\": false\n }\n },\n \"entries\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"env\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"load\": {\n \"type\": \"object\",\n \"properties\": {\n \"extraDirs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"installs\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"source\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"npm\"\n },\n {\n \"type\": \"string\",\n \"const\": \"archive\"\n },\n {\n \"type\": \"string\",\n \"const\": \"path\"\n }\n ]\n },\n \"spec\": {\n \"type\": \"string\"\n },\n \"sourcePath\": {\n \"type\": \"string\"\n },\n \"installPath\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"installedAt\": {\n \"type\": \"string\"\n },\n \"hooks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"source\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"web\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"heartbeatSeconds\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"reconnect\": {\n \"type\": \"object\",\n \"properties\": {\n \"initialMs\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"maxMs\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"factor\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"jitter\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"maxAttempts\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"channels\": {\n \"type\": \"object\",\n \"properties\": {\n \"feishu\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"appId\": {\n \"type\": \"string\"\n },\n \"appSecret\": {\n \"type\": \"string\"\n },\n \"encryptKey\": {\n \"type\": \"string\"\n },\n \"verificationToken\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"feishu\",\n \"lark\"\n ]\n },\n {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"pattern\": \"^https://\"\n }\n ]\n },\n \"connectionMode\": {\n \"type\": \"string\",\n \"enum\": [\n \"websocket\",\n \"webhook\"\n ]\n },\n \"webhookPath\": {\n \"type\": \"string\"\n },\n \"webhookPort\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"dmPolicy\": {\n \"type\": \"string\",\n \"enum\": [\n \"open\",\n \"pairing\",\n \"allowlist\"\n ]\n },\n \"allowFrom\": {\n \"type\": \"array\",\n \"items\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"groupPolicy\": {\n \"type\": \"string\",\n \"enum\": [\n \"open\",\n \"allowlist\",\n \"disabled\"\n ]\n },\n \"groupAllowFrom\": {\n \"type\": \"array\",\n \"items\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"requireMention\": {\n \"type\": \"boolean\"\n },\n \"topicSessionMode\": {\n \"type\": \"string\",\n \"enum\": [\n \"disabled\",\n \"enabled\"\n ]\n },\n \"historyLimit\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"dmHistoryLimit\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"textChunkLimit\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"chunkMode\": {\n \"type\": \"string\",\n \"enum\": [\n \"length\",\n \"newline\"\n ]\n },\n \"mediaMaxMb\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"renderMode\": {\n \"type\": \"string\",\n \"enum\": [\n \"auto\",\n \"raw\",\n \"card\"\n ]\n },\n \"accounts\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"appId\": {\n \"type\": \"string\"\n },\n \"appSecret\": {\n \"type\": \"string\"\n },\n \"encryptKey\": {\n \"type\": \"string\"\n },\n \"verificationToken\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"type\": \"string\",\n \"enum\": [\n \"feishu\",\n \"lark\"\n ]\n },\n \"connectionMode\": {\n \"type\": \"string\",\n \"enum\": [\n \"websocket\",\n \"webhook\"\n ]\n }\n }\n }\n }\n }\n }\n },\n \"additionalProperties\": true,\n \"required\": []\n },\n \"discovery\": {\n \"type\": \"object\",\n \"properties\": {\n \"wideArea\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"mdns\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"type\": \"string\",\n \"enum\": [\n \"off\",\n \"minimal\",\n \"full\"\n ]\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"canvasHost\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"root\": {\n \"type\": \"string\"\n },\n \"port\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"liveReload\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"talk\": {\n \"type\": \"object\",\n \"properties\": {\n \"voiceId\": {\n \"type\": \"string\"\n },\n \"voiceAliases\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"modelId\": {\n \"type\": \"string\"\n },\n \"outputFormat\": {\n \"type\": \"string\"\n },\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"interruptOnSpeech\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"gateway\": {\n \"type\": \"object\",\n \"properties\": {\n \"port\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"local\"\n },\n {\n \"type\": \"string\",\n \"const\": \"remote\"\n }\n ]\n },\n \"bind\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"auto\"\n },\n {\n \"type\": \"string\",\n \"const\": \"lan\"\n },\n {\n \"type\": \"string\",\n \"const\": \"loopback\"\n },\n {\n \"type\": \"string\",\n \"const\": \"custom\"\n },\n {\n \"type\": \"string\",\n \"const\": \"tailnet\"\n }\n ]\n },\n \"controlUi\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"basePath\": {\n \"type\": \"string\"\n },\n \"root\": {\n \"type\": \"string\"\n },\n \"allowedOrigins\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"allowInsecureAuth\": {\n \"type\": \"boolean\"\n },\n \"dangerouslyDisableDeviceAuth\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"auth\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"token\"\n },\n {\n \"type\": \"string\",\n \"const\": \"password\"\n }\n ]\n },\n \"token\": {\n \"type\": \"string\"\n },\n \"password\": {\n \"type\": \"string\"\n },\n \"allowTailscale\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"trustedProxies\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"tailscale\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"serve\"\n },\n {\n \"type\": \"string\",\n \"const\": \"funnel\"\n }\n ]\n },\n \"resetOnExit\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"remote\": {\n \"type\": \"object\",\n \"properties\": {\n \"url\": {\n \"type\": \"string\"\n },\n \"transport\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"ssh\"\n },\n {\n \"type\": \"string\",\n \"const\": \"direct\"\n }\n ]\n },\n \"token\": {\n \"type\": \"string\"\n },\n \"password\": {\n \"type\": \"string\"\n },\n \"tlsFingerprint\": {\n \"type\": \"string\"\n },\n \"sshTarget\": {\n \"type\": \"string\"\n },\n \"sshIdentity\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"reload\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"off\"\n },\n {\n \"type\": \"string\",\n \"const\": \"restart\"\n },\n {\n \"type\": \"string\",\n \"const\": \"hot\"\n },\n {\n \"type\": \"string\",\n \"const\": \"hybrid\"\n }\n ]\n },\n \"debounceMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"tls\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"autoGenerate\": {\n \"type\": \"boolean\"\n },\n \"certPath\": {\n \"type\": \"string\"\n },\n \"keyPath\": {\n \"type\": \"string\"\n },\n \"caPath\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"http\": {\n \"type\": \"object\",\n \"properties\": {\n \"endpoints\": {\n \"type\": \"object\",\n \"properties\": {\n \"chatCompletions\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"responses\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"maxBodyBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"files\": {\n \"type\": \"object\",\n \"properties\": {\n \"allowUrl\": {\n \"type\": \"boolean\"\n },\n \"allowedMimes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxRedirects\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutMs\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"pdf\": {\n \"type\": \"object\",\n \"properties\": {\n \"maxPages\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxPixels\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"minTextChars\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"images\": {\n \"type\": \"object\",\n \"properties\": {\n \"allowUrl\": {\n \"type\": \"boolean\"\n },\n \"allowedMimes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"maxBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxRedirects\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutMs\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"nodes\": {\n \"type\": \"object\",\n \"properties\": {\n \"browser\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"auto\"\n },\n {\n \"type\": \"string\",\n \"const\": \"manual\"\n },\n {\n \"type\": \"string\",\n \"const\": \"off\"\n }\n ]\n },\n \"node\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"allowCommands\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"denyCommands\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"memory\": {\n \"type\": \"object\",\n \"properties\": {\n \"backend\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"builtin\"\n },\n {\n \"type\": \"string\",\n \"const\": \"qmd\"\n }\n ]\n },\n \"citations\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"auto\"\n },\n {\n \"type\": \"string\",\n \"const\": \"on\"\n },\n {\n \"type\": \"string\",\n \"const\": \"off\"\n }\n ]\n },\n \"qmd\": {\n \"type\": \"object\",\n \"properties\": {\n \"command\": {\n \"type\": \"string\"\n },\n \"includeDefaultMemory\": {\n \"type\": \"boolean\"\n },\n \"paths\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"pattern\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"additionalProperties\": false\n }\n },\n \"sessions\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"exportDir\": {\n \"type\": \"string\"\n },\n \"retentionDays\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"update\": {\n \"type\": \"object\",\n \"properties\": {\n \"interval\": {\n \"type\": \"string\"\n },\n \"debounceMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"onBoot\": {\n \"type\": \"boolean\"\n },\n \"waitForBootSync\": {\n \"type\": \"boolean\"\n },\n \"embedInterval\": {\n \"type\": \"string\"\n },\n \"commandTimeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"updateTimeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"embedTimeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"limits\": {\n \"type\": \"object\",\n \"properties\": {\n \"maxResults\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxSnippetChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"maxInjectedChars\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"timeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"scope\": {\n \"type\": \"object\",\n \"properties\": {\n \"default\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"rules\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"allow\"\n },\n {\n \"type\": \"string\",\n \"const\": \"deny\"\n }\n ]\n },\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"channel\": {\n \"type\": \"string\"\n },\n \"chatType\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"direct\"\n },\n {\n \"type\": \"string\",\n \"const\": \"group\"\n },\n {\n \"type\": \"string\",\n \"const\": \"channel\"\n },\n {\n \"type\": \"string\",\n \"const\": \"dm\"\n }\n ]\n },\n \"keyPrefix\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"action\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n }\n },\n \"additionalProperties\": false\n },\n \"skills\": {\n \"type\": \"object\",\n \"properties\": {\n \"allowBundled\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"load\": {\n \"type\": \"object\",\n \"properties\": {\n \"extraDirs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"watch\": {\n \"type\": \"boolean\"\n },\n \"watchDebounceMs\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n }\n },\n \"additionalProperties\": false\n },\n \"install\": {\n \"type\": \"object\",\n \"properties\": {\n \"preferBrew\": {\n \"type\": \"boolean\"\n },\n \"nodeManager\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"npm\"\n },\n {\n \"type\": \"string\",\n \"const\": \"pnpm\"\n },\n {\n \"type\": \"string\",\n \"const\": \"yarn\"\n },\n {\n \"type\": \"string\",\n \"const\": \"bun\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"entries\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"env\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {}\n }\n },\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n },\n \"plugins\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"allow\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deny\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"load\": {\n \"type\": \"object\",\n \"properties\": {\n \"paths\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"slots\": {\n \"type\": \"object\",\n \"properties\": {\n \"memory\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"entries\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"properties\": {\n \"feishu\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"bluebubbles\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"copilot-proxy\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"device-pair\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {\n \"publicUrl\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"additionalProperties\": false\n },\n \"diagnostics-otel\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"discord\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"google-antigravity-auth\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"google-gemini-cli-auth\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"googlechat\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"imessage\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"line\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"llm-task\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {\n \"defaultProvider\": {\n \"type\": \"string\"\n },\n \"defaultModel\": {\n \"type\": \"string\"\n },\n \"defaultAuthProfileId\": {\n \"type\": \"string\"\n },\n \"allowedModels\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Allowlist of provider/model keys like openai-codex/gpt-5.2.\"\n },\n \"maxTokens\": {\n \"type\": \"number\"\n },\n \"timeoutMs\": {\n \"type\": \"number\"\n }\n }\n }\n },\n \"additionalProperties\": false\n },\n \"lobster\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"matrix\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"mattermost\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"memory-core\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"memory-lancedb\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {\n \"embedding\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\",\n \"enum\": [\n \"text-embedding-3-small\",\n \"text-embedding-3-large\"\n ]\n }\n },\n \"required\": [\n \"apiKey\"\n ]\n },\n \"dbPath\": {\n \"type\": \"string\"\n },\n \"autoCapture\": {\n \"type\": \"boolean\"\n },\n \"autoRecall\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"embedding\"\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"minimax-portal-auth\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"msteams\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"nextcloud-talk\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"nostr\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"open-prose\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"phone-control\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"qwen-portal-auth\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"signal\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"slack\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"talk-voice\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"telegram\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"tlon\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"twitch\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"voice-call\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"provider\": {\n \"type\": \"string\",\n \"enum\": [\n \"telnyx\",\n \"twilio\",\n \"plivo\",\n \"mock\"\n ]\n },\n \"telnyx\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"connectionId\": {\n \"type\": \"string\"\n },\n \"publicKey\": {\n \"type\": \"string\"\n }\n }\n },\n \"twilio\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"accountSid\": {\n \"type\": \"string\"\n },\n \"authToken\": {\n \"type\": \"string\"\n }\n }\n },\n \"plivo\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"authId\": {\n \"type\": \"string\"\n },\n \"authToken\": {\n \"type\": \"string\"\n }\n }\n },\n \"fromNumber\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\+[1-9]\\\\d{1,14}$\"\n },\n \"toNumber\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\+[1-9]\\\\d{1,14}$\"\n },\n \"inboundPolicy\": {\n \"type\": \"string\",\n \"enum\": [\n \"disabled\",\n \"allowlist\",\n \"pairing\",\n \"open\"\n ]\n },\n \"allowFrom\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\+[1-9]\\\\d{1,14}$\"\n }\n },\n \"inboundGreeting\": {\n \"type\": \"string\"\n },\n \"outbound\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"defaultMode\": {\n \"type\": \"string\",\n \"enum\": [\n \"notify\",\n \"conversation\"\n ]\n },\n \"notifyHangupDelaySec\": {\n \"type\": \"integer\",\n \"minimum\": 0\n }\n }\n },\n \"maxDurationSeconds\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"silenceTimeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"transcriptTimeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"ringTimeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"maxConcurrentCalls\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"serve\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"port\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"bind\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n }\n }\n },\n \"tailscale\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"mode\": {\n \"type\": \"string\",\n \"enum\": [\n \"off\",\n \"serve\",\n \"funnel\"\n ]\n },\n \"path\": {\n \"type\": \"string\"\n }\n }\n },\n \"tunnel\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"provider\": {\n \"type\": \"string\",\n \"enum\": [\n \"none\",\n \"ngrok\",\n \"tailscale-serve\",\n \"tailscale-funnel\"\n ]\n },\n \"ngrokAuthToken\": {\n \"type\": \"string\"\n },\n \"ngrokDomain\": {\n \"type\": \"string\"\n },\n \"allowNgrokFreeTierLoopbackBypass\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"streaming\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"sttProvider\": {\n \"type\": \"string\",\n \"enum\": [\n \"openai-realtime\"\n ]\n },\n \"openaiApiKey\": {\n \"type\": \"string\"\n },\n \"sttModel\": {\n \"type\": \"string\"\n },\n \"silenceDurationMs\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"vadThreshold\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"streamPath\": {\n \"type\": \"string\"\n }\n }\n },\n \"publicUrl\": {\n \"type\": \"string\"\n },\n \"skipSignatureVerification\": {\n \"type\": \"boolean\"\n },\n \"stt\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"provider\": {\n \"type\": \"string\",\n \"enum\": [\n \"openai\"\n ]\n },\n \"model\": {\n \"type\": \"string\"\n }\n }\n },\n \"tts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"auto\": {\n \"type\": \"string\",\n \"enum\": [\n \"off\",\n \"always\",\n \"inbound\",\n \"tagged\"\n ]\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"mode\": {\n \"type\": \"string\",\n \"enum\": [\n \"final\",\n \"all\"\n ]\n },\n \"provider\": {\n \"type\": \"string\",\n \"enum\": [\n \"openai\",\n \"elevenlabs\",\n \"edge\"\n ]\n },\n \"summaryModel\": {\n \"type\": \"string\"\n },\n \"modelOverrides\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"allowText\": {\n \"type\": \"boolean\"\n },\n \"allowProvider\": {\n \"type\": \"boolean\"\n },\n \"allowVoice\": {\n \"type\": \"boolean\"\n },\n \"allowModelId\": {\n \"type\": \"boolean\"\n },\n \"allowVoiceSettings\": {\n \"type\": \"boolean\"\n },\n \"allowNormalization\": {\n \"type\": \"boolean\"\n },\n \"allowSeed\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"elevenlabs\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"voiceId\": {\n \"type\": \"string\"\n },\n \"modelId\": {\n \"type\": \"string\"\n },\n \"seed\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 4294967295\n },\n \"applyTextNormalization\": {\n \"type\": \"string\",\n \"enum\": [\n \"auto\",\n \"on\",\n \"off\"\n ]\n },\n \"languageCode\": {\n \"type\": \"string\"\n },\n \"voiceSettings\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"stability\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"similarityBoost\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"style\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"useSpeakerBoost\": {\n \"type\": \"boolean\"\n },\n \"speed\": {\n \"type\": \"number\",\n \"minimum\": 0.5,\n \"maximum\": 2\n }\n }\n }\n }\n },\n \"openai\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"voice\": {\n \"type\": \"string\"\n }\n }\n },\n \"edge\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"voice\": {\n \"type\": \"string\"\n },\n \"lang\": {\n \"type\": \"string\"\n },\n \"outputFormat\": {\n \"type\": \"string\"\n },\n \"pitch\": {\n \"type\": \"string\"\n },\n \"rate\": {\n \"type\": \"string\"\n },\n \"volume\": {\n \"type\": \"string\"\n },\n \"saveSubtitles\": {\n \"type\": \"boolean\"\n },\n \"proxy\": {\n \"type\": \"string\"\n },\n \"timeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 1000,\n \"maximum\": 120000\n }\n }\n },\n \"prefsPath\": {\n \"type\": \"string\"\n },\n \"maxTextLength\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"timeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 1000,\n \"maximum\": 120000\n }\n }\n },\n \"store\": {\n \"type\": \"string\"\n },\n \"responseModel\": {\n \"type\": \"string\"\n },\n \"responseSystemPrompt\": {\n \"type\": \"string\"\n },\n \"responseTimeoutMs\": {\n \"type\": \"integer\",\n \"minimum\": 1\n }\n }\n }\n },\n \"additionalProperties\": false\n },\n \"whatsapp\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"zalo\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n },\n \"zalouser\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"config\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false,\n \"properties\": {}\n }\n },\n \"additionalProperties\": false\n }\n }\n },\n \"installs\": {\n \"type\": \"object\",\n \"propertyNames\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"source\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"npm\"\n },\n {\n \"type\": \"string\",\n \"const\": \"archive\"\n },\n {\n \"type\": \"string\",\n \"const\": \"path\"\n }\n ]\n },\n \"spec\": {\n \"type\": \"string\"\n },\n \"sourcePath\": {\n \"type\": \"string\"\n },\n \"installPath\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"installedAt\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"source\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"commands\"\n ],\n \"additionalProperties\": false,\n \"title\": \"OpenClawConfig\"\n },\n \"uiHints\": {\n \"wizard\": {\n \"label\": \"Wizard\",\n \"group\": \"Wizard\",\n \"order\": 20\n },\n \"update\": {\n \"label\": \"Update\",\n \"group\": \"Update\",\n \"order\": 25\n },\n \"diagnostics\": {\n \"label\": \"Diagnostics\",\n \"group\": \"Diagnostics\",\n \"order\": 27\n },\n \"logging\": {\n \"label\": \"Logging\",\n \"group\": \"Logging\",\n \"order\": 900\n },\n \"gateway\": {\n \"label\": \"Gateway\",\n \"group\": \"Gateway\",\n \"order\": 30\n },\n \"nodeHost\": {\n \"label\": \"Node Host\",\n \"group\": \"Node Host\",\n \"order\": 35\n },\n \"agents\": {\n \"label\": \"Agents\",\n \"group\": \"Agents\",\n \"order\": 40\n },\n \"tools\": {\n \"label\": \"Tools\",\n \"group\": \"Tools\",\n \"order\": 50\n },\n \"bindings\": {\n \"label\": \"Bindings\",\n \"group\": \"Bindings\",\n \"order\": 55\n },\n \"audio\": {\n \"label\": \"Audio\",\n \"group\": \"Audio\",\n \"order\": 60\n },\n \"models\": {\n \"label\": \"Models\",\n \"group\": \"Models\",\n \"order\": 70\n },\n \"messages\": {\n \"label\": \"Messages\",\n \"group\": \"Messages\",\n \"order\": 80\n },\n \"commands\": {\n \"label\": \"Commands\",\n \"group\": \"Commands\",\n \"order\": 85\n },\n \"session\": {\n \"label\": \"Session\",\n \"group\": \"Session\",\n \"order\": 90\n },\n \"cron\": {\n \"label\": \"Cron\",\n \"group\": \"Cron\",\n \"order\": 100\n },\n \"hooks\": {\n \"label\": \"Hooks\",\n \"group\": \"Hooks\",\n \"order\": 110\n },\n \"ui\": {\n \"label\": \"UI\",\n \"group\": \"UI\",\n \"order\": 120\n },\n \"browser\": {\n \"label\": \"Browser\",\n \"group\": \"Browser\",\n \"order\": 130\n },\n \"talk\": {\n \"label\": \"Talk\",\n \"group\": \"Talk\",\n \"order\": 140\n },\n \"channels\": {\n \"label\": \"Messaging Channels\",\n \"group\": \"Messaging Channels\",\n \"order\": 150\n },\n \"skills\": {\n \"label\": \"Skills\",\n \"group\": \"Skills\",\n \"order\": 200\n },\n \"plugins\": {\n \"label\": \"Plugins\",\n \"group\": \"Plugins\",\n \"order\": 205\n },\n \"discovery\": {\n \"label\": \"Discovery\",\n \"group\": \"Discovery\",\n \"order\": 210\n },\n \"presence\": {\n \"label\": \"Presence\",\n \"group\": \"Presence\",\n \"order\": 220\n },\n \"voicewake\": {\n \"label\": \"Voice Wake\",\n \"group\": \"Voice Wake\",\n \"order\": 230\n },\n \"meta.lastTouchedVersion\": {\n \"label\": \"Config Last Touched Version\",\n \"help\": \"Auto-set when OpenClaw writes the config.\"\n },\n \"meta.lastTouchedAt\": {\n \"label\": \"Config Last Touched At\",\n \"help\": \"ISO timestamp of the last config write (auto-set).\"\n },\n \"update.channel\": {\n \"label\": \"Update Channel\",\n \"help\": \"Update channel for git + npm installs (\\\"stable\\\", \\\"beta\\\", or \\\"dev\\\").\"\n },\n \"update.checkOnStart\": {\n \"label\": \"Update Check on Start\",\n \"help\": \"Check for npm updates when the gateway starts (default: true).\"\n },\n \"diagnostics.enabled\": {\n \"label\": \"Diagnostics Enabled\"\n },\n \"diagnostics.flags\": {\n \"label\": \"Diagnostics Flags\",\n \"help\": \"Enable targeted diagnostics logs by flag (e.g. [\\\"telegram.http\\\"]). Supports wildcards like \\\"telegram.*\\\" or \\\"*\\\".\"\n },\n \"diagnostics.otel.enabled\": {\n \"label\": \"OpenTelemetry Enabled\"\n },\n \"diagnostics.otel.endpoint\": {\n \"label\": \"OpenTelemetry Endpoint\"\n },\n \"diagnostics.otel.protocol\": {\n \"label\": \"OpenTelemetry Protocol\"\n },\n \"diagnostics.otel.headers\": {\n \"label\": \"OpenTelemetry Headers\"\n },\n \"diagnostics.otel.serviceName\": {\n \"label\": \"OpenTelemetry Service Name\"\n },\n \"diagnostics.otel.traces\": {\n \"label\": \"OpenTelemetry Traces Enabled\"\n },\n \"diagnostics.otel.metrics\": {\n \"label\": \"OpenTelemetry Metrics Enabled\"\n },\n \"diagnostics.otel.logs\": {\n \"label\": \"OpenTelemetry Logs Enabled\"\n },\n \"diagnostics.otel.sampleRate\": {\n \"label\": \"OpenTelemetry Trace Sample Rate\"\n },\n \"diagnostics.otel.flushIntervalMs\": {\n \"label\": \"OpenTelemetry Flush Interval (ms)\"\n },\n \"diagnostics.cacheTrace.enabled\": {\n \"label\": \"Cache Trace Enabled\",\n \"help\": \"Log cache trace snapshots for embedded agent runs (default: false).\"\n },\n \"diagnostics.cacheTrace.filePath\": {\n \"label\": \"Cache Trace File Path\",\n \"help\": \"JSONL output path for cache trace logs (default: $OPENCLAW_STATE_DIR/logs/cache-trace.jsonl).\"\n },\n \"diagnostics.cacheTrace.includeMessages\": {\n \"label\": \"Cache Trace Include Messages\",\n \"help\": \"Include full message payloads in trace output (default: true).\"\n },\n \"diagnostics.cacheTrace.includePrompt\": {\n \"label\": \"Cache Trace Include Prompt\",\n \"help\": \"Include prompt text in trace output (default: true).\"\n },\n \"diagnostics.cacheTrace.includeSystem\": {\n \"label\": \"Cache Trace Include System\",\n \"help\": \"Include system prompt in trace output (default: true).\"\n },\n \"agents.list.*.identity.avatar\": {\n \"label\": \"Identity Avatar\",\n \"help\": \"Agent avatar (workspace-relative path, http(s) URL, or data URI).\"\n },\n \"agents.list.*.skills\": {\n \"label\": \"Agent Skill Filter\",\n \"help\": \"Optional allowlist of skills for this agent (omit = all skills; empty = no skills).\"\n },\n \"gateway.remote.url\": {\n \"label\": \"Remote Gateway URL\",\n \"help\": \"Remote Gateway WebSocket URL (ws:// or wss://).\",\n \"placeholder\": \"ws://host:18789\"\n },\n \"gateway.remote.sshTarget\": {\n \"label\": \"Remote Gateway SSH Target\",\n \"help\": \"Remote gateway over SSH (tunnels the gateway port to localhost). Format: user@host or user@host:port.\",\n \"placeholder\": \"user@host\"\n },\n \"gateway.remote.sshIdentity\": {\n \"label\": \"Remote Gateway SSH Identity\",\n \"help\": \"Optional SSH identity file path (passed to ssh -i).\"\n },\n \"gateway.remote.token\": {\n \"label\": \"Remote Gateway Token\",\n \"sensitive\": true\n },\n \"gateway.remote.password\": {\n \"label\": \"Remote Gateway Password\",\n \"sensitive\": true\n },\n \"gateway.remote.tlsFingerprint\": {\n \"label\": \"Remote Gateway TLS Fingerprint\",\n \"help\": \"Expected sha256 TLS fingerprint for the remote gateway (pin to avoid MITM).\",\n \"placeholder\": \"sha256:ab12cd34…\"\n },\n \"gateway.auth.token\": {\n \"label\": \"Gateway Token\",\n \"help\": \"Required by default for gateway access (unless using Tailscale Serve identity); required for non-loopback binds.\",\n \"sensitive\": true\n },\n \"gateway.auth.password\": {\n \"label\": \"Gateway Password\",\n \"help\": \"Required for Tailscale funnel.\",\n \"sensitive\": true\n },\n \"tools.media.image.enabled\": {\n \"label\": \"Enable Image Understanding\"\n },\n \"tools.media.image.maxBytes\": {\n \"label\": \"Image Understanding Max Bytes\"\n },\n \"tools.media.image.maxChars\": {\n \"label\": \"Image Understanding Max Chars\"\n },\n \"tools.media.image.prompt\": {\n \"label\": \"Image Understanding Prompt\"\n },\n \"tools.media.image.timeoutSeconds\": {\n \"label\": \"Image Understanding Timeout (sec)\"\n },\n \"tools.media.image.attachments\": {\n \"label\": \"Image Understanding Attachment Policy\"\n },\n \"tools.media.image.models\": {\n \"label\": \"Image Understanding Models\"\n },\n \"tools.media.image.scope\": {\n \"label\": \"Image Understanding Scope\"\n },\n \"tools.media.models\": {\n \"label\": \"Media Understanding Shared Models\"\n },\n \"tools.media.concurrency\": {\n \"label\": \"Media Understanding Concurrency\"\n },\n \"tools.media.audio.enabled\": {\n \"label\": \"Enable Audio Understanding\"\n },\n \"tools.media.audio.maxBytes\": {\n \"label\": \"Audio Understanding Max Bytes\"\n },\n \"tools.media.audio.maxChars\": {\n \"label\": \"Audio Understanding Max Chars\"\n },\n \"tools.media.audio.prompt\": {\n \"label\": \"Audio Understanding Prompt\"\n },\n \"tools.media.audio.timeoutSeconds\": {\n \"label\": \"Audio Understanding Timeout (sec)\"\n },\n \"tools.media.audio.language\": {\n \"label\": \"Audio Understanding Language\"\n },\n \"tools.media.audio.attachments\": {\n \"label\": \"Audio Understanding Attachment Policy\"\n },\n \"tools.media.audio.models\": {\n \"label\": \"Audio Understanding Models\"\n },\n \"tools.media.audio.scope\": {\n \"label\": \"Audio Understanding Scope\"\n },\n \"tools.media.video.enabled\": {\n \"label\": \"Enable Video Understanding\"\n },\n \"tools.media.video.maxBytes\": {\n \"label\": \"Video Understanding Max Bytes\"\n },\n \"tools.media.video.maxChars\": {\n \"label\": \"Video Understanding Max Chars\"\n },\n \"tools.media.video.prompt\": {\n \"label\": \"Video Understanding Prompt\"\n },\n \"tools.media.video.timeoutSeconds\": {\n \"label\": \"Video Understanding Timeout (sec)\"\n },\n \"tools.media.video.attachments\": {\n \"label\": \"Video Understanding Attachment Policy\"\n },\n \"tools.media.video.models\": {\n \"label\": \"Video Understanding Models\"\n },\n \"tools.media.video.scope\": {\n \"label\": \"Video Understanding Scope\"\n },\n \"tools.links.enabled\": {\n \"label\": \"Enable Link Understanding\"\n },\n \"tools.links.maxLinks\": {\n \"label\": \"Link Understanding Max Links\"\n },\n \"tools.links.timeoutSeconds\": {\n \"label\": \"Link Understanding Timeout (sec)\"\n },\n \"tools.links.models\": {\n \"label\": \"Link Understanding Models\"\n },\n \"tools.links.scope\": {\n \"label\": \"Link Understanding Scope\"\n },\n \"tools.profile\": {\n \"label\": \"Tool Profile\"\n },\n \"tools.alsoAllow\": {\n \"label\": \"Tool Allowlist Additions\"\n },\n \"agents.list[].tools.profile\": {\n \"label\": \"Agent Tool Profile\"\n },\n \"agents.list[].tools.alsoAllow\": {\n \"label\": \"Agent Tool Allowlist Additions\"\n },\n \"tools.byProvider\": {\n \"label\": \"Tool Policy by Provider\"\n },\n \"agents.list[].tools.byProvider\": {\n \"label\": \"Agent Tool Policy by Provider\"\n },\n \"tools.exec.applyPatch.enabled\": {\n \"label\": \"Enable apply_patch\",\n \"help\": \"Experimental. Enables apply_patch for OpenAI models when allowed by tool policy.\"\n },\n \"tools.exec.applyPatch.allowModels\": {\n \"label\": \"apply_patch Model Allowlist\",\n \"help\": \"Optional allowlist of model ids (e.g. \\\"gpt-5.2\\\" or \\\"openai/gpt-5.2\\\").\"\n },\n \"tools.exec.notifyOnExit\": {\n \"label\": \"Exec Notify On Exit\",\n \"help\": \"When true (default), backgrounded exec sessions enqueue a system event and request a heartbeat on exit.\"\n },\n \"tools.exec.approvalRunningNoticeMs\": {\n \"label\": \"Exec Approval Running Notice (ms)\"\n },\n \"tools.exec.host\": {\n \"label\": \"Exec Host\"\n },\n \"tools.exec.security\": {\n \"label\": \"Exec Security\"\n },\n \"tools.exec.ask\": {\n \"label\": \"Exec Ask\"\n },\n \"tools.exec.node\": {\n \"label\": \"Exec Node Binding\"\n },\n \"tools.exec.pathPrepend\": {\n \"label\": \"Exec PATH Prepend\",\n \"help\": \"Directories to prepend to PATH for exec runs (gateway/sandbox).\"\n },\n \"tools.exec.safeBins\": {\n \"label\": \"Exec Safe Bins\",\n \"help\": \"Allow stdin-only safe binaries to run without explicit allowlist entries.\"\n },\n \"tools.message.allowCrossContextSend\": {\n \"label\": \"Allow Cross-Context Messaging\",\n \"help\": \"Legacy override: allow cross-context sends across all providers.\"\n },\n \"tools.message.crossContext.allowWithinProvider\": {\n \"label\": \"Allow Cross-Context (Same Provider)\",\n \"help\": \"Allow sends to other channels within the same provider (default: true).\"\n },\n \"tools.message.crossContext.allowAcrossProviders\": {\n \"label\": \"Allow Cross-Context (Across Providers)\",\n \"help\": \"Allow sends across different providers (default: false).\"\n },\n \"tools.message.crossContext.marker.enabled\": {\n \"label\": \"Cross-Context Marker\",\n \"help\": \"Add a visible origin marker when sending cross-context (default: true).\"\n },\n \"tools.message.crossContext.marker.prefix\": {\n \"label\": \"Cross-Context Marker Prefix\",\n \"help\": \"Text prefix for cross-context markers (supports \\\"{channel}\\\").\"\n },\n \"tools.message.crossContext.marker.suffix\": {\n \"label\": \"Cross-Context Marker Suffix\",\n \"help\": \"Text suffix for cross-context markers (supports \\\"{channel}\\\").\"\n },\n \"tools.message.broadcast.enabled\": {\n \"label\": \"Enable Message Broadcast\",\n \"help\": \"Enable broadcast action (default: true).\"\n },\n \"tools.web.search.enabled\": {\n \"label\": \"Enable Web Search Tool\",\n \"help\": \"Enable the web_search tool (requires a provider API key).\"\n },\n \"tools.web.search.provider\": {\n \"label\": \"Web Search Provider\",\n \"help\": \"Search provider (\\\"brave\\\" or \\\"perplexity\\\").\"\n },\n \"tools.web.search.apiKey\": {\n \"label\": \"Brave Search API Key\",\n \"help\": \"Brave Search API key (fallback: BRAVE_API_KEY env var).\",\n \"sensitive\": true\n },\n \"tools.web.search.maxResults\": {\n \"label\": \"Web Search Max Results\",\n \"help\": \"Default number of results to return (1-10).\"\n },\n \"tools.web.search.timeoutSeconds\": {\n \"label\": \"Web Search Timeout (sec)\",\n \"help\": \"Timeout in seconds for web_search requests.\"\n },\n \"tools.web.search.cacheTtlMinutes\": {\n \"label\": \"Web Search Cache TTL (min)\",\n \"help\": \"Cache TTL in minutes for web_search results.\"\n },\n \"tools.web.fetch.enabled\": {\n \"label\": \"Enable Web Fetch Tool\",\n \"help\": \"Enable the web_fetch tool (lightweight HTTP fetch).\"\n },\n \"tools.web.fetch.maxChars\": {\n \"label\": \"Web Fetch Max Chars\",\n \"help\": \"Max characters returned by web_fetch (truncated).\"\n },\n \"tools.web.fetch.timeoutSeconds\": {\n \"label\": \"Web Fetch Timeout (sec)\",\n \"help\": \"Timeout in seconds for web_fetch requests.\"\n },\n \"tools.web.fetch.cacheTtlMinutes\": {\n \"label\": \"Web Fetch Cache TTL (min)\",\n \"help\": \"Cache TTL in minutes for web_fetch results.\"\n },\n \"tools.web.fetch.maxRedirects\": {\n \"label\": \"Web Fetch Max Redirects\",\n \"help\": \"Maximum redirects allowed for web_fetch (default: 3).\"\n },\n \"tools.web.fetch.userAgent\": {\n \"label\": \"Web Fetch User-Agent\",\n \"help\": \"Override User-Agent header for web_fetch requests.\"\n },\n \"gateway.controlUi.basePath\": {\n \"label\": \"Control UI Base Path\",\n \"help\": \"Optional URL prefix where the Control UI is served (e.g. /openclaw).\",\n \"placeholder\": \"/openclaw\"\n },\n \"gateway.controlUi.root\": {\n \"label\": \"Control UI Assets Root\",\n \"help\": \"Optional filesystem root for Control UI assets (defaults to dist/control-ui).\",\n \"placeholder\": \"dist/control-ui\"\n },\n \"gateway.controlUi.allowedOrigins\": {\n \"label\": \"Control UI Allowed Origins\",\n \"help\": \"Allowed browser origins for Control UI/WebChat websocket connections (full origins only, e.g. https://control.example.com).\",\n \"placeholder\": \"https://control.example.com\"\n },\n \"gateway.controlUi.allowInsecureAuth\": {\n \"label\": \"Allow Insecure Control UI Auth\",\n \"help\": \"Allow Control UI auth over insecure HTTP (token-only; not recommended).\"\n },\n \"gateway.controlUi.dangerouslyDisableDeviceAuth\": {\n \"label\": \"Dangerously Disable Control UI Device Auth\",\n \"help\": \"DANGEROUS. Disable Control UI device identity checks (token/password only).\"\n },\n \"gateway.http.endpoints.chatCompletions.enabled\": {\n \"label\": \"OpenAI Chat Completions Endpoint\",\n \"help\": \"Enable the OpenAI-compatible `POST /v1/chat/completions` endpoint (default: false).\"\n },\n \"gateway.reload.mode\": {\n \"label\": \"Config Reload Mode\",\n \"help\": \"Hot reload strategy for config changes (\\\"hybrid\\\" recommended).\"\n },\n \"gateway.reload.debounceMs\": {\n \"label\": \"Config Reload Debounce (ms)\",\n \"help\": \"Debounce window (ms) before applying config changes.\"\n },\n \"gateway.nodes.browser.mode\": {\n \"label\": \"Gateway Node Browser Mode\",\n \"help\": \"Node browser routing (\\\"auto\\\" = pick single connected browser node, \\\"manual\\\" = require node param, \\\"off\\\" = disable).\"\n },\n \"gateway.nodes.browser.node\": {\n \"label\": \"Gateway Node Browser Pin\",\n \"help\": \"Pin browser routing to a specific node id or name (optional).\"\n },\n \"gateway.nodes.allowCommands\": {\n \"label\": \"Gateway Node Allowlist (Extra Commands)\",\n \"help\": \"Extra node.invoke commands to allow beyond the gateway defaults (array of command strings).\"\n },\n \"gateway.nodes.denyCommands\": {\n \"label\": \"Gateway Node Denylist\",\n \"help\": \"Commands to block even if present in node claims or default allowlist.\"\n },\n \"nodeHost.browserProxy.enabled\": {\n \"label\": \"Node Browser Proxy Enabled\",\n \"help\": \"Expose the local browser control server via node proxy.\"\n },\n \"nodeHost.browserProxy.allowProfiles\": {\n \"label\": \"Node Browser Proxy Allowed Profiles\",\n \"help\": \"Optional allowlist of browser profile names exposed via the node proxy.\"\n },\n \"skills.load.watch\": {\n \"label\": \"Watch Skills\"\n },\n \"skills.load.watchDebounceMs\": {\n \"label\": \"Skills Watch Debounce (ms)\"\n },\n \"agents.defaults.workspace\": {\n \"label\": \"Workspace\"\n },\n \"agents.defaults.repoRoot\": {\n \"label\": \"Repo Root\",\n \"help\": \"Optional repository root shown in the system prompt runtime line (overrides auto-detect).\"\n },\n \"agents.defaults.bootstrapMaxChars\": {\n \"label\": \"Bootstrap Max Chars\",\n \"help\": \"Max characters of each workspace bootstrap file injected into the system prompt before truncation (default: 20000).\"\n },\n \"agents.defaults.envelopeTimezone\": {\n \"label\": \"Envelope Timezone\",\n \"help\": \"Timezone for message envelopes (\\\"utc\\\", \\\"local\\\", \\\"user\\\", or an IANA timezone string).\"\n },\n \"agents.defaults.envelopeTimestamp\": {\n \"label\": \"Envelope Timestamp\",\n \"help\": \"Include absolute timestamps in message envelopes (\\\"on\\\" or \\\"off\\\").\"\n },\n \"agents.defaults.envelopeElapsed\": {\n \"label\": \"Envelope Elapsed\",\n \"help\": \"Include elapsed time in message envelopes (\\\"on\\\" or \\\"off\\\").\"\n },\n \"agents.defaults.memorySearch\": {\n \"label\": \"Memory Search\",\n \"help\": \"Vector search over MEMORY.md and memory/*.md (per-agent overrides supported).\"\n },\n \"agents.defaults.memorySearch.enabled\": {\n \"label\": \"Enable Memory Search\"\n },\n \"agents.defaults.memorySearch.sources\": {\n \"label\": \"Memory Search Sources\",\n \"help\": \"Sources to index for memory search (default: [\\\"memory\\\"]; add \\\"sessions\\\" to include session transcripts).\"\n },\n \"agents.defaults.memorySearch.extraPaths\": {\n \"label\": \"Extra Memory Paths\",\n \"help\": \"Extra paths to include in memory search (directories or .md files; relative paths resolved from workspace).\"\n },\n \"agents.defaults.memorySearch.experimental.sessionMemory\": {\n \"label\": \"Memory Search Session Index (Experimental)\",\n \"help\": \"Enable experimental session transcript indexing for memory search (default: false).\"\n },\n \"agents.defaults.memorySearch.provider\": {\n \"label\": \"Memory Search Provider\",\n \"help\": \"Embedding provider (\\\"openai\\\", \\\"gemini\\\", \\\"voyage\\\", or \\\"local\\\").\"\n },\n \"agents.defaults.memorySearch.remote.baseUrl\": {\n \"label\": \"Remote Embedding Base URL\",\n \"help\": \"Custom base URL for remote embeddings (OpenAI-compatible proxies or Gemini overrides).\"\n },\n \"agents.defaults.memorySearch.remote.apiKey\": {\n \"label\": \"Remote Embedding API Key\",\n \"help\": \"Custom API key for the remote embedding provider.\",\n \"sensitive\": true\n },\n \"agents.defaults.memorySearch.remote.headers\": {\n \"label\": \"Remote Embedding Headers\",\n \"help\": \"Extra headers for remote embeddings (merged; remote overrides OpenAI headers).\"\n },\n \"agents.defaults.memorySearch.remote.batch.concurrency\": {\n \"label\": \"Remote Batch Concurrency\",\n \"help\": \"Max concurrent embedding batch jobs for memory indexing (default: 2).\"\n },\n \"agents.defaults.memorySearch.model\": {\n \"label\": \"Memory Search Model\"\n },\n \"agents.defaults.memorySearch.fallback\": {\n \"label\": \"Memory Search Fallback\",\n \"help\": \"Fallback provider when embeddings fail (\\\"openai\\\", \\\"gemini\\\", \\\"local\\\", or \\\"none\\\").\"\n },\n \"agents.defaults.memorySearch.local.modelPath\": {\n \"label\": \"Local Embedding Model Path\",\n \"help\": \"Local GGUF model path or hf: URI (node-llama-cpp).\"\n },\n \"agents.defaults.memorySearch.store.path\": {\n \"label\": \"Memory Search Index Path\",\n \"help\": \"SQLite index path (default: ~/.openclaw/memory/{agentId}.sqlite).\"\n },\n \"agents.defaults.memorySearch.store.vector.enabled\": {\n \"label\": \"Memory Search Vector Index\",\n \"help\": \"Enable sqlite-vec extension for vector search (default: true).\"\n },\n \"agents.defaults.memorySearch.store.vector.extensionPath\": {\n \"label\": \"Memory Search Vector Extension Path\",\n \"help\": \"Optional override path to sqlite-vec extension library (.dylib/.so/.dll).\"\n },\n \"agents.defaults.memorySearch.chunking.tokens\": {\n \"label\": \"Memory Chunk Tokens\",\n \"sensitive\": true\n },\n \"agents.defaults.memorySearch.chunking.overlap\": {\n \"label\": \"Memory Chunk Overlap Tokens\"\n },\n \"agents.defaults.memorySearch.sync.onSessionStart\": {\n \"label\": \"Index on Session Start\"\n },\n \"agents.defaults.memorySearch.sync.onSearch\": {\n \"label\": \"Index on Search (Lazy)\",\n \"help\": \"Lazy sync: schedule a reindex on search after changes.\"\n },\n \"agents.defaults.memorySearch.sync.watch\": {\n \"label\": \"Watch Memory Files\",\n \"help\": \"Watch memory files for changes (chokidar).\"\n },\n \"agents.defaults.memorySearch.sync.watchDebounceMs\": {\n \"label\": \"Memory Watch Debounce (ms)\"\n },\n \"agents.defaults.memorySearch.sync.sessions.deltaBytes\": {\n \"label\": \"Session Delta Bytes\",\n \"help\": \"Minimum appended bytes before session transcripts trigger reindex (default: 100000).\"\n },\n \"agents.defaults.memorySearch.sync.sessions.deltaMessages\": {\n \"label\": \"Session Delta Messages\",\n \"help\": \"Minimum appended JSONL lines before session transcripts trigger reindex (default: 50).\"\n },\n \"agents.defaults.memorySearch.query.maxResults\": {\n \"label\": \"Memory Search Max Results\"\n },\n \"agents.defaults.memorySearch.query.minScore\": {\n \"label\": \"Memory Search Min Score\"\n },\n \"agents.defaults.memorySearch.query.hybrid.enabled\": {\n \"label\": \"Memory Search Hybrid\",\n \"help\": \"Enable hybrid BM25 + vector search for memory (default: true).\"\n },\n \"agents.defaults.memorySearch.query.hybrid.vectorWeight\": {\n \"label\": \"Memory Search Vector Weight\",\n \"help\": \"Weight for vector similarity when merging results (0-1).\"\n },\n \"agents.defaults.memorySearch.query.hybrid.textWeight\": {\n \"label\": \"Memory Search Text Weight\",\n \"help\": \"Weight for BM25 text relevance when merging results (0-1).\"\n },\n \"agents.defaults.memorySearch.query.hybrid.candidateMultiplier\": {\n \"label\": \"Memory Search Hybrid Candidate Multiplier\",\n \"help\": \"Multiplier for candidate pool size (default: 4).\"\n },\n \"agents.defaults.memorySearch.cache.enabled\": {\n \"label\": \"Memory Search Embedding Cache\",\n \"help\": \"Cache chunk embeddings in SQLite to speed up reindexing and frequent updates (default: true).\"\n },\n \"agents.defaults.memorySearch.cache.maxEntries\": {\n \"label\": \"Memory Search Embedding Cache Max Entries\",\n \"help\": \"Optional cap on cached embeddings (best-effort).\"\n },\n \"memory\": {\n \"label\": \"Memory\",\n \"help\": \"Memory backend configuration (global).\"\n },\n \"memory.backend\": {\n \"label\": \"Memory Backend\",\n \"help\": \"Memory backend (\\\"builtin\\\" for OpenClaw embeddings, \\\"qmd\\\" for QMD sidecar).\"\n },\n \"memory.citations\": {\n \"label\": \"Memory Citations Mode\",\n \"help\": \"Default citation behavior (\\\"auto\\\", \\\"on\\\", or \\\"off\\\").\"\n },\n \"memory.qmd.command\": {\n \"label\": \"QMD Binary\",\n \"help\": \"Path to the qmd binary (default: resolves from PATH).\"\n },\n \"memory.qmd.includeDefaultMemory\": {\n \"label\": \"QMD Include Default Memory\",\n \"help\": \"Whether to automatically index MEMORY.md + memory/**/*.md (default: true).\"\n },\n \"memory.qmd.paths\": {\n \"label\": \"QMD Extra Paths\",\n \"help\": \"Additional directories/files to index with QMD (path + optional glob pattern).\"\n },\n \"memory.qmd.paths.path\": {\n \"label\": \"QMD Path\",\n \"help\": \"Absolute or ~-relative path to index via QMD.\"\n },\n \"memory.qmd.paths.pattern\": {\n \"label\": \"QMD Path Pattern\",\n \"help\": \"Glob pattern relative to the path root (default: **/*.md).\"\n },\n \"memory.qmd.paths.name\": {\n \"label\": \"QMD Path Name\",\n \"help\": \"Optional stable name for the QMD collection (default derived from path).\"\n },\n \"memory.qmd.sessions.enabled\": {\n \"label\": \"QMD Session Indexing\",\n \"help\": \"Enable QMD session transcript indexing (experimental, default: false).\"\n },\n \"memory.qmd.sessions.exportDir\": {\n \"label\": \"QMD Session Export Directory\",\n \"help\": \"Override directory for sanitized session exports before indexing.\"\n },\n \"memory.qmd.sessions.retentionDays\": {\n \"label\": \"QMD Session Retention (days)\",\n \"help\": \"Retention window for exported sessions before pruning (default: unlimited).\"\n },\n \"memory.qmd.update.interval\": {\n \"label\": \"QMD Update Interval\",\n \"help\": \"How often the QMD sidecar refreshes indexes (duration string, default: 5m).\"\n },\n \"memory.qmd.update.debounceMs\": {\n \"label\": \"QMD Update Debounce (ms)\",\n \"help\": \"Minimum delay between successive QMD refresh runs (default: 15000).\"\n },\n \"memory.qmd.update.onBoot\": {\n \"label\": \"QMD Update on Startup\",\n \"help\": \"Run QMD update once on gateway startup (default: true).\"\n },\n \"memory.qmd.update.waitForBootSync\": {\n \"label\": \"QMD Wait for Boot Sync\",\n \"help\": \"Block startup until the boot QMD refresh finishes (default: false).\"\n },\n \"memory.qmd.update.embedInterval\": {\n \"label\": \"QMD Embed Interval\",\n \"help\": \"How often QMD embeddings are refreshed (duration string, default: 60m). Set to 0 to disable periodic embed.\"\n },\n \"memory.qmd.update.commandTimeoutMs\": {\n \"label\": \"QMD Command Timeout (ms)\",\n \"help\": \"Timeout for QMD maintenance commands like collection list/add (default: 30000).\"\n },\n \"memory.qmd.update.updateTimeoutMs\": {\n \"label\": \"QMD Update Timeout (ms)\",\n \"help\": \"Timeout for `qmd update` runs (default: 120000).\"\n },\n \"memory.qmd.update.embedTimeoutMs\": {\n \"label\": \"QMD Embed Timeout (ms)\",\n \"help\": \"Timeout for `qmd embed` runs (default: 120000).\"\n },\n \"memory.qmd.limits.maxResults\": {\n \"label\": \"QMD Max Results\",\n \"help\": \"Max QMD results returned to the agent loop (default: 6).\"\n },\n \"memory.qmd.limits.maxSnippetChars\": {\n \"label\": \"QMD Max Snippet Chars\",\n \"help\": \"Max characters per snippet pulled from QMD (default: 700).\"\n },\n \"memory.qmd.limits.maxInjectedChars\": {\n \"label\": \"QMD Max Injected Chars\",\n \"help\": \"Max total characters injected from QMD hits per turn.\"\n },\n \"memory.qmd.limits.timeoutMs\": {\n \"label\": \"QMD Search Timeout (ms)\",\n \"help\": \"Per-query timeout for QMD searches (default: 4000).\"\n },\n \"memory.qmd.scope\": {\n \"label\": \"QMD Surface Scope\",\n \"help\": \"Session/channel scope for QMD recall (same syntax as session.sendPolicy; default: direct-only).\"\n },\n \"auth.profiles\": {\n \"label\": \"Auth Profiles\",\n \"help\": \"Named auth profiles (provider + mode + optional email).\"\n },\n \"auth.order\": {\n \"label\": \"Auth Profile Order\",\n \"help\": \"Ordered auth profile IDs per provider (used for automatic failover).\"\n },\n \"auth.cooldowns.billingBackoffHours\": {\n \"label\": \"Billing Backoff (hours)\",\n \"help\": \"Base backoff (hours) when a profile fails due to billing/insufficient credits (default: 5).\"\n },\n \"auth.cooldowns.billingBackoffHoursByProvider\": {\n \"label\": \"Billing Backoff Overrides\",\n \"help\": \"Optional per-provider overrides for billing backoff (hours).\"\n },\n \"auth.cooldowns.billingMaxHours\": {\n \"label\": \"Billing Backoff Cap (hours)\",\n \"help\": \"Cap (hours) for billing backoff (default: 24).\"\n },\n \"auth.cooldowns.failureWindowHours\": {\n \"label\": \"Failover Window (hours)\",\n \"help\": \"Failure window (hours) for backoff counters (default: 24).\"\n },\n \"agents.defaults.models\": {\n \"label\": \"Models\",\n \"help\": \"Configured model catalog (keys are full provider/model IDs).\"\n },\n \"agents.defaults.model.primary\": {\n \"label\": \"Primary Model\",\n \"help\": \"Primary model (provider/model).\"\n },\n \"agents.defaults.model.fallbacks\": {\n \"label\": \"Model Fallbacks\",\n \"help\": \"Ordered fallback models (provider/model). Used when the primary model fails.\"\n },\n \"agents.defaults.imageModel.primary\": {\n \"label\": \"Image Model\",\n \"help\": \"Optional image model (provider/model) used when the primary model lacks image input.\"\n },\n \"agents.defaults.imageModel.fallbacks\": {\n \"label\": \"Image Model Fallbacks\",\n \"help\": \"Ordered fallback image models (provider/model).\"\n },\n \"agents.defaults.humanDelay.mode\": {\n \"label\": \"Human Delay Mode\",\n \"help\": \"Delay style for block replies (\\\"off\\\", \\\"natural\\\", \\\"custom\\\").\"\n },\n \"agents.defaults.humanDelay.minMs\": {\n \"label\": \"Human Delay Min (ms)\",\n \"help\": \"Minimum delay in ms for custom humanDelay (default: 800).\"\n },\n \"agents.defaults.humanDelay.maxMs\": {\n \"label\": \"Human Delay Max (ms)\",\n \"help\": \"Maximum delay in ms for custom humanDelay (default: 2500).\"\n },\n \"agents.defaults.cliBackends\": {\n \"label\": \"CLI Backends\",\n \"help\": \"Optional CLI backends for text-only fallback (claude-cli, etc.).\"\n },\n \"commands.native\": {\n \"label\": \"Native Commands\",\n \"help\": \"Register native commands with channels that support it (Discord/Slack/Telegram).\"\n },\n \"commands.nativeSkills\": {\n \"label\": \"Native Skill Commands\",\n \"help\": \"Register native skill commands (user-invocable skills) with channels that support it.\"\n },\n \"commands.text\": {\n \"label\": \"Text Commands\",\n \"help\": \"Allow text command parsing (slash commands only).\"\n },\n \"commands.bash\": {\n \"label\": \"Allow Bash Chat Command\",\n \"help\": \"Allow bash chat command (`!`; `/bash` alias) to run host shell commands (default: false; requires tools.elevated).\"\n },\n \"commands.bashForegroundMs\": {\n \"label\": \"Bash Foreground Window (ms)\",\n \"help\": \"How long bash waits before backgrounding (default: 2000; 0 backgrounds immediately).\"\n },\n \"commands.config\": {\n \"label\": \"Allow /config\",\n \"help\": \"Allow /config chat command to read/write config on disk (default: false).\"\n },\n \"commands.debug\": {\n \"label\": \"Allow /debug\",\n \"help\": \"Allow /debug chat command for runtime-only overrides (default: false).\"\n },\n \"commands.restart\": {\n \"label\": \"Allow Restart\",\n \"help\": \"Allow /restart and gateway restart tool actions (default: false).\"\n },\n \"commands.useAccessGroups\": {\n \"label\": \"Use Access Groups\",\n \"help\": \"Enforce access-group allowlists/policies for commands.\"\n },\n \"commands.ownerAllowFrom\": {\n \"label\": \"Command Owners\",\n \"help\": \"Explicit owner allowlist for owner-only tools/commands. Use channel-native IDs (optionally prefixed like \\\"whatsapp:+15551234567\\\"). '*' is ignored.\"\n },\n \"ui.seamColor\": {\n \"label\": \"Accent Color\"\n },\n \"ui.assistant.name\": {\n \"label\": \"Assistant Name\"\n },\n \"ui.assistant.avatar\": {\n \"label\": \"Assistant Avatar\"\n },\n \"browser.evaluateEnabled\": {\n \"label\": \"Browser Evaluate Enabled\"\n },\n \"browser.snapshotDefaults\": {\n \"label\": \"Browser Snapshot Defaults\"\n },\n \"browser.snapshotDefaults.mode\": {\n \"label\": \"Browser Snapshot Mode\"\n },\n \"browser.remoteCdpTimeoutMs\": {\n \"label\": \"Remote CDP Timeout (ms)\"\n },\n \"browser.remoteCdpHandshakeTimeoutMs\": {\n \"label\": \"Remote CDP Handshake Timeout (ms)\"\n },\n \"session.dmScope\": {\n \"label\": \"DM Session Scope\",\n \"help\": \"DM session scoping: \\\"main\\\" keeps continuity; \\\"per-peer\\\", \\\"per-channel-peer\\\", or \\\"per-account-channel-peer\\\" isolates DM history (recommended for shared inboxes/multi-account).\"\n },\n \"session.agentToAgent.maxPingPongTurns\": {\n \"label\": \"Agent-to-Agent Ping-Pong Turns\",\n \"help\": \"Max reply-back turns between requester and target (0–5).\"\n },\n \"messages.ackReaction\": {\n \"label\": \"Ack Reaction Emoji\",\n \"help\": \"Emoji reaction used to acknowledge inbound messages (empty disables).\"\n },\n \"messages.ackReactionScope\": {\n \"label\": \"Ack Reaction Scope\",\n \"help\": \"When to send ack reactions (\\\"group-mentions\\\", \\\"group-all\\\", \\\"direct\\\", \\\"all\\\").\"\n },\n \"messages.inbound.debounceMs\": {\n \"label\": \"Inbound Message Debounce (ms)\",\n \"help\": \"Debounce window (ms) for batching rapid inbound messages from the same sender (0 to disable).\"\n },\n \"talk.apiKey\": {\n \"label\": \"Talk API Key\",\n \"sensitive\": true\n },\n \"channels.whatsapp\": {\n \"label\": \"WhatsApp\"\n },\n \"channels.telegram\": {\n \"label\": \"Telegram\"\n },\n \"channels.telegram.customCommands\": {\n \"label\": \"Telegram Custom Commands\",\n \"help\": \"Additional Telegram bot menu commands (merged with native; conflicts ignored).\"\n },\n \"channels.discord\": {\n \"label\": \"Discord\"\n },\n \"channels.slack\": {\n \"label\": \"Slack\"\n },\n \"channels.mattermost\": {\n \"label\": \"Mattermost\"\n },\n \"channels.signal\": {\n \"label\": \"Signal\"\n },\n \"channels.imessage\": {\n \"label\": \"iMessage\"\n },\n \"channels.bluebubbles\": {\n \"label\": \"BlueBubbles\"\n },\n \"channels.msteams\": {\n \"label\": \"MS Teams\"\n },\n \"channels.telegram.botToken\": {\n \"label\": \"Telegram Bot Token\",\n \"sensitive\": true\n },\n \"channels.telegram.dmPolicy\": {\n \"label\": \"Telegram DM Policy\",\n \"help\": \"Direct message access control (\\\"pairing\\\" recommended). \\\"open\\\" requires channels.telegram.allowFrom=[\\\"*\\\"].\"\n },\n \"channels.telegram.streamMode\": {\n \"label\": \"Telegram Draft Stream Mode\",\n \"help\": \"Draft streaming mode for Telegram replies (off | partial | block). Separate from block streaming; requires private topics + sendMessageDraft.\"\n },\n \"channels.telegram.draftChunk.minChars\": {\n \"label\": \"Telegram Draft Chunk Min Chars\",\n \"help\": \"Minimum chars before emitting a Telegram draft update when channels.telegram.streamMode=\\\"block\\\" (default: 200).\"\n },\n \"channels.telegram.draftChunk.maxChars\": {\n \"label\": \"Telegram Draft Chunk Max Chars\",\n \"help\": \"Target max size for a Telegram draft update chunk when channels.telegram.streamMode=\\\"block\\\" (default: 800; clamped to channels.telegram.textChunkLimit).\"\n },\n \"channels.telegram.draftChunk.breakPreference\": {\n \"label\": \"Telegram Draft Chunk Break Preference\",\n \"help\": \"Preferred breakpoints for Telegram draft chunks (paragraph | newline | sentence). Default: paragraph.\"\n },\n \"channels.telegram.retry.attempts\": {\n \"label\": \"Telegram Retry Attempts\",\n \"help\": \"Max retry attempts for outbound Telegram API calls (default: 3).\"\n },\n \"channels.telegram.retry.minDelayMs\": {\n \"label\": \"Telegram Retry Min Delay (ms)\",\n \"help\": \"Minimum retry delay in ms for Telegram outbound calls.\"\n },\n \"channels.telegram.retry.maxDelayMs\": {\n \"label\": \"Telegram Retry Max Delay (ms)\",\n \"help\": \"Maximum retry delay cap in ms for Telegram outbound calls.\"\n },\n \"channels.telegram.retry.jitter\": {\n \"label\": \"Telegram Retry Jitter\",\n \"help\": \"Jitter factor (0-1) applied to Telegram retry delays.\"\n },\n \"channels.telegram.network.autoSelectFamily\": {\n \"label\": \"Telegram autoSelectFamily\",\n \"help\": \"Override Node autoSelectFamily for Telegram (true=enable, false=disable).\"\n },\n \"channels.telegram.timeoutSeconds\": {\n \"label\": \"Telegram API Timeout (seconds)\",\n \"help\": \"Max seconds before Telegram API requests are aborted (default: 500 per grammY).\"\n },\n \"channels.telegram.capabilities.inlineButtons\": {\n \"label\": \"Telegram Inline Buttons\"\n },\n \"channels.whatsapp.dmPolicy\": {\n \"label\": \"WhatsApp DM Policy\",\n \"help\": \"Direct message access control (\\\"pairing\\\" recommended). \\\"open\\\" requires channels.whatsapp.allowFrom=[\\\"*\\\"].\"\n },\n \"channels.whatsapp.selfChatMode\": {\n \"label\": \"WhatsApp Self-Phone Mode\",\n \"help\": \"Same-phone setup (bot uses your personal WhatsApp number).\"\n },\n \"channels.whatsapp.debounceMs\": {\n \"label\": \"WhatsApp Message Debounce (ms)\",\n \"help\": \"Debounce window (ms) for batching rapid consecutive messages from the same sender (0 to disable).\"\n },\n \"channels.signal.dmPolicy\": {\n \"label\": \"Signal DM Policy\",\n \"help\": \"Direct message access control (\\\"pairing\\\" recommended). \\\"open\\\" requires channels.signal.allowFrom=[\\\"*\\\"].\"\n },\n \"channels.imessage.dmPolicy\": {\n \"label\": \"iMessage DM Policy\",\n \"help\": \"Direct message access control (\\\"pairing\\\" recommended). \\\"open\\\" requires channels.imessage.allowFrom=[\\\"*\\\"].\"\n },\n \"channels.bluebubbles.dmPolicy\": {\n \"label\": \"BlueBubbles DM Policy\",\n \"help\": \"Direct message access control (\\\"pairing\\\" recommended). \\\"open\\\" requires channels.bluebubbles.allowFrom=[\\\"*\\\"].\"\n },\n \"channels.discord.dm.policy\": {\n \"label\": \"Discord DM Policy\",\n \"help\": \"Direct message access control (\\\"pairing\\\" recommended). \\\"open\\\" requires channels.discord.dm.allowFrom=[\\\"*\\\"].\"\n },\n \"channels.discord.retry.attempts\": {\n \"label\": \"Discord Retry Attempts\",\n \"help\": \"Max retry attempts for outbound Discord API calls (default: 3).\"\n },\n \"channels.discord.retry.minDelayMs\": {\n \"label\": \"Discord Retry Min Delay (ms)\",\n \"help\": \"Minimum retry delay in ms for Discord outbound calls.\"\n },\n \"channels.discord.retry.maxDelayMs\": {\n \"label\": \"Discord Retry Max Delay (ms)\",\n \"help\": \"Maximum retry delay cap in ms for Discord outbound calls.\"\n },\n \"channels.discord.retry.jitter\": {\n \"label\": \"Discord Retry Jitter\",\n \"help\": \"Jitter factor (0-1) applied to Discord retry delays.\"\n },\n \"channels.discord.maxLinesPerMessage\": {\n \"label\": \"Discord Max Lines Per Message\",\n \"help\": \"Soft max line count per Discord message (default: 17).\"\n },\n \"channels.discord.intents.presence\": {\n \"label\": \"Discord Presence Intent\",\n \"help\": \"Enable the Guild Presences privileged intent. Must also be enabled in the Discord Developer Portal. Allows tracking user activities (e.g. Spotify). Default: false.\"\n },\n \"channels.discord.intents.guildMembers\": {\n \"label\": \"Discord Guild Members Intent\",\n \"help\": \"Enable the Guild Members privileged intent. Must also be enabled in the Discord Developer Portal. Default: false.\"\n },\n \"channels.discord.pluralkit.enabled\": {\n \"label\": \"Discord PluralKit Enabled\",\n \"help\": \"Resolve PluralKit proxied messages and treat system members as distinct senders.\"\n },\n \"channels.discord.pluralkit.token\": {\n \"label\": \"Discord PluralKit Token\",\n \"help\": \"Optional PluralKit token for resolving private systems or members.\",\n \"sensitive\": true\n },\n \"channels.slack.dm.policy\": {\n \"label\": \"Slack DM Policy\",\n \"help\": \"Direct message access control (\\\"pairing\\\" recommended). \\\"open\\\" requires channels.slack.dm.allowFrom=[\\\"*\\\"].\"\n },\n \"channels.slack.allowBots\": {\n \"label\": \"Slack Allow Bot Messages\",\n \"help\": \"Allow bot-authored messages to trigger Slack replies (default: false).\"\n },\n \"channels.discord.token\": {\n \"label\": \"Discord Bot Token\",\n \"sensitive\": true\n },\n \"channels.slack.botToken\": {\n \"label\": \"Slack Bot Token\",\n \"sensitive\": true\n },\n \"channels.slack.appToken\": {\n \"label\": \"Slack App Token\",\n \"sensitive\": true\n },\n \"channels.slack.userToken\": {\n \"label\": \"Slack User Token\",\n \"sensitive\": true\n },\n \"channels.slack.userTokenReadOnly\": {\n \"label\": \"Slack User Token Read Only\",\n \"sensitive\": true\n },\n \"channels.slack.thread.historyScope\": {\n \"label\": \"Slack Thread History Scope\",\n \"help\": \"Scope for Slack thread history context (\\\"thread\\\" isolates per thread; \\\"channel\\\" reuses channel history).\"\n },\n \"channels.slack.thread.inheritParent\": {\n \"label\": \"Slack Thread Parent Inheritance\",\n \"help\": \"If true, Slack thread sessions inherit the parent channel transcript (default: false).\"\n },\n \"channels.mattermost.botToken\": {\n \"label\": \"Mattermost Bot Token\",\n \"help\": \"Bot token from Mattermost System Console -> Integrations -> Bot Accounts.\",\n \"sensitive\": true\n },\n \"channels.mattermost.baseUrl\": {\n \"label\": \"Mattermost Base URL\",\n \"help\": \"Base URL for your Mattermost server (e.g., https://chat.example.com).\",\n \"placeholder\": \"https://chat.example.com\"\n },\n \"channels.mattermost.chatmode\": {\n \"label\": \"Mattermost Chat Mode\",\n \"help\": \"Reply to channel messages on mention (\\\"oncall\\\"), on trigger chars (\\\">\\\" or \\\"!\\\") (\\\"onchar\\\"), or on every message (\\\"onmessage\\\").\"\n },\n \"channels.mattermost.oncharPrefixes\": {\n \"label\": \"Mattermost Onchar Prefixes\",\n \"help\": \"Trigger prefixes for onchar mode (default: [\\\">\\\", \\\"!\\\"]).\"\n },\n \"channels.mattermost.requireMention\": {\n \"label\": \"Mattermost Require Mention\",\n \"help\": \"Require @mention in channels before responding (default: true).\"\n },\n \"channels.signal.account\": {\n \"label\": \"Signal Account\"\n },\n \"channels.imessage.cliPath\": {\n \"label\": \"iMessage CLI Path\"\n },\n \"agents.list[].skills\": {\n \"label\": \"Agent Skill Filter\",\n \"help\": \"Optional allowlist of skills for this agent (omit = all skills; empty = no skills).\"\n },\n \"agents.list[].identity.avatar\": {\n \"label\": \"Agent Avatar\",\n \"help\": \"Avatar image path (relative to the agent workspace only) or a remote URL/data URL.\",\n \"placeholder\": \"avatars/openclaw.png\"\n },\n \"discovery.mdns.mode\": {\n \"label\": \"mDNS Discovery Mode\",\n \"help\": \"mDNS broadcast mode (\\\"minimal\\\" default, \\\"full\\\" includes cliPath/sshPort, \\\"off\\\" disables mDNS).\"\n },\n \"plugins.enabled\": {\n \"label\": \"Enable Plugins\",\n \"help\": \"Enable plugin/extension loading (default: true).\"\n },\n \"plugins.allow\": {\n \"label\": \"Plugin Allowlist\",\n \"help\": \"Optional allowlist of plugin ids; when set, only listed plugins load.\"\n },\n \"plugins.deny\": {\n \"label\": \"Plugin Denylist\",\n \"help\": \"Optional denylist of plugin ids; deny wins over allowlist.\"\n },\n \"plugins.load.paths\": {\n \"label\": \"Plugin Load Paths\",\n \"help\": \"Additional plugin files or directories to load.\"\n },\n \"plugins.slots\": {\n \"label\": \"Plugin Slots\",\n \"help\": \"Select which plugins own exclusive slots (memory, etc.).\"\n },\n \"plugins.slots.memory\": {\n \"label\": \"Memory Plugin\",\n \"help\": \"Select the active memory plugin by id, or \\\"none\\\" to disable memory plugins.\"\n },\n \"plugins.entries\": {\n \"label\": \"Plugin Entries\",\n \"help\": \"Per-plugin settings keyed by plugin id (enable/disable + config payloads).\"\n },\n \"plugins.entries.*.enabled\": {\n \"label\": \"Plugin Enabled\",\n \"help\": \"Overrides plugin enable/disable for this entry (restart required).\"\n },\n \"plugins.entries.*.config\": {\n \"label\": \"Plugin Config\",\n \"help\": \"Plugin-defined config payload (schema is provided by the plugin).\"\n },\n \"plugins.installs\": {\n \"label\": \"Plugin Install Records\",\n \"help\": \"CLI-managed install metadata (used by `openclaw plugins update` to locate install sources).\"\n },\n \"plugins.installs.*.source\": {\n \"label\": \"Plugin Install Source\",\n \"help\": \"Install source (\\\"npm\\\", \\\"archive\\\", or \\\"path\\\").\"\n },\n \"plugins.installs.*.spec\": {\n \"label\": \"Plugin Install Spec\",\n \"help\": \"Original npm spec used for install (if source is npm).\"\n },\n \"plugins.installs.*.sourcePath\": {\n \"label\": \"Plugin Install Source Path\",\n \"help\": \"Original archive/path used for install (if any).\"\n },\n \"plugins.installs.*.installPath\": {\n \"label\": \"Plugin Install Path\",\n \"help\": \"Resolved install directory (usually ~/.openclaw/extensions/<id>).\"\n },\n \"plugins.installs.*.version\": {\n \"label\": \"Plugin Install Version\",\n \"help\": \"Version recorded at install time (if available).\"\n },\n \"plugins.installs.*.installedAt\": {\n \"label\": \"Plugin Install Time\",\n \"help\": \"ISO timestamp of last install/update.\"\n },\n \"tools.web.search.perplexity.apiKey\": {\n \"help\": \"Perplexity or OpenRouter API key (fallback: PERPLEXITY_API_KEY or OPENROUTER_API_KEY env var).\",\n \"sensitive\": true\n },\n \"tools.web.search.perplexity.baseUrl\": {\n \"help\": \"Perplexity base URL override (default: https://openrouter.ai/api/v1 or https://api.perplexity.ai).\"\n },\n \"tools.web.search.perplexity.model\": {\n \"help\": \"Perplexity model override (default: \\\"perplexity/sonar-pro\\\").\"\n },\n \"tools.web.fetch.maxCharsCap\": {\n \"help\": \"Hard cap for web_fetch maxChars (applies to config and tool calls).\"\n },\n \"tools.web.fetch.readability\": {\n \"help\": \"Use Readability to extract main content from HTML (fallbacks to basic HTML cleanup).\"\n },\n \"tools.web.fetch.firecrawl.enabled\": {\n \"help\": \"Enable Firecrawl fallback for web_fetch (if configured).\"\n },\n \"tools.web.fetch.firecrawl.apiKey\": {\n \"help\": \"Firecrawl API key (fallback: FIRECRAWL_API_KEY env var).\",\n \"sensitive\": true\n },\n \"tools.web.fetch.firecrawl.baseUrl\": {\n \"help\": \"Firecrawl base URL (e.g. https://api.firecrawl.dev or custom endpoint).\"\n },\n \"tools.web.fetch.firecrawl.onlyMainContent\": {\n \"help\": \"When true, Firecrawl returns only the main content (default: true).\"\n },\n \"tools.web.fetch.firecrawl.maxAgeMs\": {\n \"help\": \"Firecrawl maxAge (ms) for cached results when supported by the API.\"\n },\n \"tools.web.fetch.firecrawl.timeoutSeconds\": {\n \"help\": \"Timeout in seconds for Firecrawl requests.\"\n },\n \"agents.defaults.memorySearch.remote.batch.enabled\": {\n \"help\": \"Enable batch API for memory embeddings (OpenAI/Gemini; default: true).\"\n },\n \"agents.defaults.memorySearch.remote.batch.wait\": {\n \"help\": \"Wait for batch completion when indexing (default: true).\"\n },\n \"agents.defaults.memorySearch.remote.batch.pollIntervalMs\": {\n \"help\": \"Polling interval in ms for batch status (default: 2000).\"\n },\n \"agents.defaults.memorySearch.remote.batch.timeoutMinutes\": {\n \"help\": \"Timeout in minutes for batch indexing (default: 60).\"\n },\n \"session.identityLinks\": {\n \"help\": \"Map canonical identities to provider-prefixed peer IDs for DM session linking (example: telegram:123456).\"\n },\n \"channels.telegram.configWrites\": {\n \"help\": \"Allow Telegram to write config in response to channel events/commands (default: true).\"\n },\n \"channels.slack.configWrites\": {\n \"help\": \"Allow Slack to write config in response to channel events/commands (default: true).\"\n },\n \"channels.mattermost.configWrites\": {\n \"help\": \"Allow Mattermost to write config in response to channel events/commands (default: true).\"\n },\n \"channels.discord.configWrites\": {\n \"help\": \"Allow Discord to write config in response to channel events/commands (default: true).\"\n },\n \"channels.whatsapp.configWrites\": {\n \"help\": \"Allow WhatsApp to write config in response to channel events/commands (default: true).\"\n },\n \"channels.signal.configWrites\": {\n \"help\": \"Allow Signal to write config in response to channel events/commands (default: true).\"\n },\n \"channels.imessage.configWrites\": {\n \"help\": \"Allow iMessage to write config in response to channel events/commands (default: true).\"\n },\n \"channels.msteams.configWrites\": {\n \"help\": \"Allow Microsoft Teams to write config in response to channel events/commands (default: true).\"\n },\n \"channels.discord.commands.native\": {\n \"help\": \"Override native commands for Discord (bool or \\\"auto\\\").\"\n },\n \"channels.discord.commands.nativeSkills\": {\n \"help\": \"Override native skill commands for Discord (bool or \\\"auto\\\").\"\n },\n \"channels.telegram.commands.native\": {\n \"help\": \"Override native commands for Telegram (bool or \\\"auto\\\").\"\n },\n \"channels.telegram.commands.nativeSkills\": {\n \"help\": \"Override native skill commands for Telegram (bool or \\\"auto\\\").\"\n },\n \"channels.slack.commands.native\": {\n \"help\": \"Override native commands for Slack (bool or \\\"auto\\\").\"\n },\n \"channels.slack.commands.nativeSkills\": {\n \"help\": \"Override native skill commands for Slack (bool or \\\"auto\\\").\"\n },\n \"plugins.entries.feishu\": {\n \"label\": \"@openclaw/feishu\",\n \"help\": \"OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng) (plugin: feishu)\"\n },\n \"plugins.entries.feishu.enabled\": {\n \"label\": \"Enable @openclaw/feishu\"\n },\n \"plugins.entries.feishu.config\": {\n \"label\": \"@openclaw/feishu Config\",\n \"help\": \"Plugin-defined config payload for feishu.\"\n },\n \"plugins.entries.bluebubbles\": {\n \"label\": \"@openclaw/bluebubbles\",\n \"help\": \"OpenClaw BlueBubbles channel plugin (plugin: bluebubbles)\"\n },\n \"plugins.entries.bluebubbles.enabled\": {\n \"label\": \"Enable @openclaw/bluebubbles\"\n },\n \"plugins.entries.bluebubbles.config\": {\n \"label\": \"@openclaw/bluebubbles Config\",\n \"help\": \"Plugin-defined config payload for bluebubbles.\"\n },\n \"plugins.entries.copilot-proxy\": {\n \"label\": \"@openclaw/copilot-proxy\",\n \"help\": \"OpenClaw Copilot Proxy provider plugin (plugin: copilot-proxy)\"\n },\n \"plugins.entries.copilot-proxy.enabled\": {\n \"label\": \"Enable @openclaw/copilot-proxy\"\n },\n \"plugins.entries.copilot-proxy.config\": {\n \"label\": \"@openclaw/copilot-proxy Config\",\n \"help\": \"Plugin-defined config payload for copilot-proxy.\"\n },\n \"plugins.entries.device-pair\": {\n \"label\": \"Device Pairing\",\n \"help\": \"Generate setup codes and approve device pairing requests. (plugin: device-pair)\"\n },\n \"plugins.entries.device-pair.enabled\": {\n \"label\": \"Enable Device Pairing\"\n },\n \"plugins.entries.device-pair.config\": {\n \"label\": \"Device Pairing Config\",\n \"help\": \"Plugin-defined config payload for device-pair.\"\n },\n \"plugins.entries.device-pair.config.publicUrl\": {\n \"label\": \"Gateway URL\",\n \"help\": \"Public WebSocket URL used for /pair setup codes (ws/wss or http/https).\"\n },\n \"plugins.entries.diagnostics-otel\": {\n \"label\": \"@openclaw/diagnostics-otel\",\n \"help\": \"OpenClaw diagnostics OpenTelemetry exporter (plugin: diagnostics-otel)\"\n },\n \"plugins.entries.diagnostics-otel.enabled\": {\n \"label\": \"Enable @openclaw/diagnostics-otel\"\n },\n \"plugins.entries.diagnostics-otel.config\": {\n \"label\": \"@openclaw/diagnostics-otel Config\",\n \"help\": \"Plugin-defined config payload for diagnostics-otel.\"\n },\n \"plugins.entries.discord\": {\n \"label\": \"@openclaw/discord\",\n \"help\": \"OpenClaw Discord channel plugin (plugin: discord)\"\n },\n \"plugins.entries.discord.enabled\": {\n \"label\": \"Enable @openclaw/discord\"\n },\n \"plugins.entries.discord.config\": {\n \"label\": \"@openclaw/discord Config\",\n \"help\": \"Plugin-defined config payload for discord.\"\n },\n \"plugins.entries.google-antigravity-auth\": {\n \"label\": \"@openclaw/google-antigravity-auth\",\n \"help\": \"OpenClaw Google Antigravity OAuth provider plugin (plugin: google-antigravity-auth)\"\n },\n \"plugins.entries.google-antigravity-auth.enabled\": {\n \"label\": \"Enable @openclaw/google-antigravity-auth\"\n },\n \"plugins.entries.google-antigravity-auth.config\": {\n \"label\": \"@openclaw/google-antigravity-auth Config\",\n \"help\": \"Plugin-defined config payload for google-antigravity-auth.\"\n },\n \"plugins.entries.google-gemini-cli-auth\": {\n \"label\": \"@openclaw/google-gemini-cli-auth\",\n \"help\": \"OpenClaw Gemini CLI OAuth provider plugin (plugin: google-gemini-cli-auth)\"\n },\n \"plugins.entries.google-gemini-cli-auth.enabled\": {\n \"label\": \"Enable @openclaw/google-gemini-cli-auth\"\n },\n \"plugins.entries.google-gemini-cli-auth.config\": {\n \"label\": \"@openclaw/google-gemini-cli-auth Config\",\n \"help\": \"Plugin-defined config payload for google-gemini-cli-auth.\"\n },\n \"plugins.entries.googlechat\": {\n \"label\": \"@openclaw/googlechat\",\n \"help\": \"OpenClaw Google Chat channel plugin (plugin: googlechat)\"\n },\n \"plugins.entries.googlechat.enabled\": {\n \"label\": \"Enable @openclaw/googlechat\"\n },\n \"plugins.entries.googlechat.config\": {\n \"label\": \"@openclaw/googlechat Config\",\n \"help\": \"Plugin-defined config payload for googlechat.\"\n },\n \"plugins.entries.imessage\": {\n \"label\": \"@openclaw/imessage\",\n \"help\": \"OpenClaw iMessage channel plugin (plugin: imessage)\"\n },\n \"plugins.entries.imessage.enabled\": {\n \"label\": \"Enable @openclaw/imessage\"\n },\n \"plugins.entries.imessage.config\": {\n \"label\": \"@openclaw/imessage Config\",\n \"help\": \"Plugin-defined config payload for imessage.\"\n },\n \"plugins.entries.line\": {\n \"label\": \"@openclaw/line\",\n \"help\": \"OpenClaw LINE channel plugin (plugin: line)\"\n },\n \"plugins.entries.line.enabled\": {\n \"label\": \"Enable @openclaw/line\"\n },\n \"plugins.entries.line.config\": {\n \"label\": \"@openclaw/line Config\",\n \"help\": \"Plugin-defined config payload for line.\"\n },\n \"plugins.entries.llm-task\": {\n \"label\": \"LLM Task\",\n \"help\": \"Generic JSON-only LLM tool for structured tasks callable from workflows. (plugin: llm-task)\"\n },\n \"plugins.entries.llm-task.enabled\": {\n \"label\": \"Enable LLM Task\"\n },\n \"plugins.entries.llm-task.config\": {\n \"label\": \"LLM Task Config\",\n \"help\": \"Plugin-defined config payload for llm-task.\"\n },\n \"plugins.entries.lobster\": {\n \"label\": \"Lobster\",\n \"help\": \"Typed workflow tool with resumable approvals. (plugin: lobster)\"\n },\n \"plugins.entries.lobster.enabled\": {\n \"label\": \"Enable Lobster\"\n },\n \"plugins.entries.lobster.config\": {\n \"label\": \"Lobster Config\",\n \"help\": \"Plugin-defined config payload for lobster.\"\n },\n \"plugins.entries.matrix\": {\n \"label\": \"@openclaw/matrix\",\n \"help\": \"OpenClaw Matrix channel plugin (plugin: matrix)\"\n },\n \"plugins.entries.matrix.enabled\": {\n \"label\": \"Enable @openclaw/matrix\"\n },\n \"plugins.entries.matrix.config\": {\n \"label\": \"@openclaw/matrix Config\",\n \"help\": \"Plugin-defined config payload for matrix.\"\n },\n \"plugins.entries.mattermost\": {\n \"label\": \"@openclaw/mattermost\",\n \"help\": \"OpenClaw Mattermost channel plugin (plugin: mattermost)\"\n },\n \"plugins.entries.mattermost.enabled\": {\n \"label\": \"Enable @openclaw/mattermost\"\n },\n \"plugins.entries.mattermost.config\": {\n \"label\": \"@openclaw/mattermost Config\",\n \"help\": \"Plugin-defined config payload for mattermost.\"\n },\n \"plugins.entries.memory-core\": {\n \"label\": \"Memory (Core)\",\n \"help\": \"File-backed memory search tools and CLI (plugin: memory-core)\"\n },\n \"plugins.entries.memory-core.enabled\": {\n \"label\": \"Enable Memory (Core)\"\n },\n \"plugins.entries.memory-core.config\": {\n \"label\": \"Memory (Core) Config\",\n \"help\": \"Plugin-defined config payload for memory-core.\"\n },\n \"plugins.entries.memory-lancedb\": {\n \"label\": \"@openclaw/memory-lancedb\",\n \"help\": \"OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture (plugin: memory-lancedb)\"\n },\n \"plugins.entries.memory-lancedb.enabled\": {\n \"label\": \"Enable @openclaw/memory-lancedb\"\n },\n \"plugins.entries.memory-lancedb.config\": {\n \"label\": \"@openclaw/memory-lancedb Config\",\n \"help\": \"Plugin-defined config payload for memory-lancedb.\"\n },\n \"plugins.entries.memory-lancedb.config.embedding.apiKey\": {\n \"label\": \"OpenAI API Key\",\n \"sensitive\": true,\n \"placeholder\": \"sk-proj-...\",\n \"help\": \"API key for OpenAI embeddings (or use ${OPENAI_API_KEY})\"\n },\n \"plugins.entries.memory-lancedb.config.embedding.model\": {\n \"label\": \"Embedding Model\",\n \"placeholder\": \"text-embedding-3-small\",\n \"help\": \"OpenAI embedding model to use\"\n },\n \"plugins.entries.memory-lancedb.config.dbPath\": {\n \"label\": \"Database Path\",\n \"placeholder\": \"~/.openclaw/memory/lancedb\",\n \"advanced\": true\n },\n \"plugins.entries.memory-lancedb.config.autoCapture\": {\n \"label\": \"Auto-Capture\",\n \"help\": \"Automatically capture important information from conversations\"\n },\n \"plugins.entries.memory-lancedb.config.autoRecall\": {\n \"label\": \"Auto-Recall\",\n \"help\": \"Automatically inject relevant memories into context\"\n },\n \"plugins.entries.minimax-portal-auth\": {\n \"label\": \"@openclaw/minimax-portal-auth\",\n \"help\": \"OpenClaw MiniMax Portal OAuth provider plugin (plugin: minimax-portal-auth)\"\n },\n \"plugins.entries.minimax-portal-auth.enabled\": {\n \"label\": \"Enable @openclaw/minimax-portal-auth\"\n },\n \"plugins.entries.minimax-portal-auth.config\": {\n \"label\": \"@openclaw/minimax-portal-auth Config\",\n \"help\": \"Plugin-defined config payload for minimax-portal-auth.\"\n },\n \"plugins.entries.msteams\": {\n \"label\": \"@openclaw/msteams\",\n \"help\": \"OpenClaw Microsoft Teams channel plugin (plugin: msteams)\"\n },\n \"plugins.entries.msteams.enabled\": {\n \"label\": \"Enable @openclaw/msteams\"\n },\n \"plugins.entries.msteams.config\": {\n \"label\": \"@openclaw/msteams Config\",\n \"help\": \"Plugin-defined config payload for msteams.\"\n },\n \"plugins.entries.nextcloud-talk\": {\n \"label\": \"@openclaw/nextcloud-talk\",\n \"help\": \"OpenClaw Nextcloud Talk channel plugin (plugin: nextcloud-talk)\"\n },\n \"plugins.entries.nextcloud-talk.enabled\": {\n \"label\": \"Enable @openclaw/nextcloud-talk\"\n },\n \"plugins.entries.nextcloud-talk.config\": {\n \"label\": \"@openclaw/nextcloud-talk Config\",\n \"help\": \"Plugin-defined config payload for nextcloud-talk.\"\n },\n \"plugins.entries.nostr\": {\n \"label\": \"@openclaw/nostr\",\n \"help\": \"OpenClaw Nostr channel plugin for NIP-04 encrypted DMs (plugin: nostr)\"\n },\n \"plugins.entries.nostr.enabled\": {\n \"label\": \"Enable @openclaw/nostr\"\n },\n \"plugins.entries.nostr.config\": {\n \"label\": \"@openclaw/nostr Config\",\n \"help\": \"Plugin-defined config payload for nostr.\"\n },\n \"plugins.entries.open-prose\": {\n \"label\": \"OpenProse\",\n \"help\": \"OpenProse VM skill pack with a /prose slash command. (plugin: open-prose)\"\n },\n \"plugins.entries.open-prose.enabled\": {\n \"label\": \"Enable OpenProse\"\n },\n \"plugins.entries.open-prose.config\": {\n \"label\": \"OpenProse Config\",\n \"help\": \"Plugin-defined config payload for open-prose.\"\n },\n \"plugins.entries.phone-control\": {\n \"label\": \"Phone Control\",\n \"help\": \"Arm/disarm high-risk phone node commands (camera/screen/writes) with an optional auto-expiry. (plugin: phone-control)\"\n },\n \"plugins.entries.phone-control.enabled\": {\n \"label\": \"Enable Phone Control\"\n },\n \"plugins.entries.phone-control.config\": {\n \"label\": \"Phone Control Config\",\n \"help\": \"Plugin-defined config payload for phone-control.\"\n },\n \"plugins.entries.qwen-portal-auth\": {\n \"label\": \"qwen-portal-auth\",\n \"help\": \"Plugin entry for qwen-portal-auth.\"\n },\n \"plugins.entries.qwen-portal-auth.enabled\": {\n \"label\": \"Enable qwen-portal-auth\"\n },\n \"plugins.entries.qwen-portal-auth.config\": {\n \"label\": \"qwen-portal-auth Config\",\n \"help\": \"Plugin-defined config payload for qwen-portal-auth.\"\n },\n \"plugins.entries.signal\": {\n \"label\": \"@openclaw/signal\",\n \"help\": \"OpenClaw Signal channel plugin (plugin: signal)\"\n },\n \"plugins.entries.signal.enabled\": {\n \"label\": \"Enable @openclaw/signal\"\n },\n \"plugins.entries.signal.config\": {\n \"label\": \"@openclaw/signal Config\",\n \"help\": \"Plugin-defined config payload for signal.\"\n },\n \"plugins.entries.slack\": {\n \"label\": \"@openclaw/slack\",\n \"help\": \"OpenClaw Slack channel plugin (plugin: slack)\"\n },\n \"plugins.entries.slack.enabled\": {\n \"label\": \"Enable @openclaw/slack\"\n },\n \"plugins.entries.slack.config\": {\n \"label\": \"@openclaw/slack Config\",\n \"help\": \"Plugin-defined config payload for slack.\"\n },\n \"plugins.entries.talk-voice\": {\n \"label\": \"Talk Voice\",\n \"help\": \"Manage Talk voice selection (list/set). (plugin: talk-voice)\"\n },\n \"plugins.entries.talk-voice.enabled\": {\n \"label\": \"Enable Talk Voice\"\n },\n \"plugins.entries.talk-voice.config\": {\n \"label\": \"Talk Voice Config\",\n \"help\": \"Plugin-defined config payload for talk-voice.\"\n },\n \"plugins.entries.telegram\": {\n \"label\": \"@openclaw/telegram\",\n \"help\": \"OpenClaw Telegram channel plugin (plugin: telegram)\"\n },\n \"plugins.entries.telegram.enabled\": {\n \"label\": \"Enable @openclaw/telegram\"\n },\n \"plugins.entries.telegram.config\": {\n \"label\": \"@openclaw/telegram Config\",\n \"help\": \"Plugin-defined config payload for telegram.\"\n },\n \"plugins.entries.tlon\": {\n \"label\": \"@openclaw/tlon\",\n \"help\": \"OpenClaw Tlon/Urbit channel plugin (plugin: tlon)\"\n },\n \"plugins.entries.tlon.enabled\": {\n \"label\": \"Enable @openclaw/tlon\"\n },\n \"plugins.entries.tlon.config\": {\n \"label\": \"@openclaw/tlon Config\",\n \"help\": \"Plugin-defined config payload for tlon.\"\n },\n \"plugins.entries.twitch\": {\n \"label\": \"@openclaw/twitch\",\n \"help\": \"OpenClaw Twitch channel plugin (plugin: twitch)\"\n },\n \"plugins.entries.twitch.enabled\": {\n \"label\": \"Enable @openclaw/twitch\"\n },\n \"plugins.entries.twitch.config\": {\n \"label\": \"@openclaw/twitch Config\",\n \"help\": \"Plugin-defined config payload for twitch.\"\n },\n \"plugins.entries.voice-call\": {\n \"label\": \"@openclaw/voice-call\",\n \"help\": \"OpenClaw voice-call plugin (plugin: voice-call)\"\n },\n \"plugins.entries.voice-call.enabled\": {\n \"label\": \"Enable @openclaw/voice-call\"\n },\n \"plugins.entries.voice-call.config\": {\n \"label\": \"@openclaw/voice-call Config\",\n \"help\": \"Plugin-defined config payload for voice-call.\"\n },\n \"plugins.entries.voice-call.config.provider\": {\n \"label\": \"Provider\",\n \"help\": \"Use twilio, telnyx, or mock for dev/no-network.\"\n },\n \"plugins.entries.voice-call.config.fromNumber\": {\n \"label\": \"From Number\",\n \"placeholder\": \"+15550001234\"\n },\n \"plugins.entries.voice-call.config.toNumber\": {\n \"label\": \"Default To Number\",\n \"placeholder\": \"+15550001234\"\n },\n \"plugins.entries.voice-call.config.inboundPolicy\": {\n \"label\": \"Inbound Policy\"\n },\n \"plugins.entries.voice-call.config.allowFrom\": {\n \"label\": \"Inbound Allowlist\"\n },\n \"plugins.entries.voice-call.config.inboundGreeting\": {\n \"label\": \"Inbound Greeting\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.telnyx.apiKey\": {\n \"label\": \"Telnyx API Key\",\n \"sensitive\": true\n },\n \"plugins.entries.voice-call.config.telnyx.connectionId\": {\n \"label\": \"Telnyx Connection ID\"\n },\n \"plugins.entries.voice-call.config.telnyx.publicKey\": {\n \"label\": \"Telnyx Public Key\",\n \"sensitive\": true\n },\n \"plugins.entries.voice-call.config.twilio.accountSid\": {\n \"label\": \"Twilio Account SID\"\n },\n \"plugins.entries.voice-call.config.twilio.authToken\": {\n \"label\": \"Twilio Auth Token\",\n \"sensitive\": true\n },\n \"plugins.entries.voice-call.config.outbound.defaultMode\": {\n \"label\": \"Default Call Mode\"\n },\n \"plugins.entries.voice-call.config.outbound.notifyHangupDelaySec\": {\n \"label\": \"Notify Hangup Delay (sec)\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.serve.port\": {\n \"label\": \"Webhook Port\"\n },\n \"plugins.entries.voice-call.config.serve.bind\": {\n \"label\": \"Webhook Bind\"\n },\n \"plugins.entries.voice-call.config.serve.path\": {\n \"label\": \"Webhook Path\"\n },\n \"plugins.entries.voice-call.config.tailscale.mode\": {\n \"label\": \"Tailscale Mode\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tailscale.path\": {\n \"label\": \"Tailscale Path\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tunnel.provider\": {\n \"label\": \"Tunnel Provider\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tunnel.ngrokAuthToken\": {\n \"label\": \"ngrok Auth Token\",\n \"sensitive\": true,\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tunnel.ngrokDomain\": {\n \"label\": \"ngrok Domain\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tunnel.allowNgrokFreeTierLoopbackBypass\": {\n \"label\": \"Allow ngrok Free Tier (Loopback Bypass)\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.streaming.enabled\": {\n \"label\": \"Enable Streaming\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.streaming.openaiApiKey\": {\n \"label\": \"OpenAI Realtime API Key\",\n \"sensitive\": true,\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.streaming.sttModel\": {\n \"label\": \"Realtime STT Model\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.streaming.streamPath\": {\n \"label\": \"Media Stream Path\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tts.provider\": {\n \"label\": \"TTS Provider Override\",\n \"help\": \"Deep-merges with messages.tts (Edge is ignored for calls).\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tts.openai.model\": {\n \"label\": \"OpenAI TTS Model\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tts.openai.voice\": {\n \"label\": \"OpenAI TTS Voice\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tts.openai.apiKey\": {\n \"label\": \"OpenAI API Key\",\n \"sensitive\": true,\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tts.elevenlabs.modelId\": {\n \"label\": \"ElevenLabs Model ID\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tts.elevenlabs.voiceId\": {\n \"label\": \"ElevenLabs Voice ID\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tts.elevenlabs.apiKey\": {\n \"label\": \"ElevenLabs API Key\",\n \"sensitive\": true,\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.tts.elevenlabs.baseUrl\": {\n \"label\": \"ElevenLabs Base URL\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.publicUrl\": {\n \"label\": \"Public Webhook URL\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.skipSignatureVerification\": {\n \"label\": \"Skip Signature Verification\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.store\": {\n \"label\": \"Call Log Store Path\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.responseModel\": {\n \"label\": \"Response Model\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.responseSystemPrompt\": {\n \"label\": \"Response System Prompt\",\n \"advanced\": true\n },\n \"plugins.entries.voice-call.config.responseTimeoutMs\": {\n \"label\": \"Response Timeout (ms)\",\n \"advanced\": true\n },\n \"plugins.entries.whatsapp\": {\n \"label\": \"@openclaw/whatsapp\",\n \"help\": \"OpenClaw WhatsApp channel plugin (plugin: whatsapp)\"\n },\n \"plugins.entries.whatsapp.enabled\": {\n \"label\": \"Enable @openclaw/whatsapp\"\n },\n \"plugins.entries.whatsapp.config\": {\n \"label\": \"@openclaw/whatsapp Config\",\n \"help\": \"Plugin-defined config payload for whatsapp.\"\n },\n \"plugins.entries.zalo\": {\n \"label\": \"@openclaw/zalo\",\n \"help\": \"OpenClaw Zalo channel plugin (plugin: zalo)\"\n },\n \"plugins.entries.zalo.enabled\": {\n \"label\": \"Enable @openclaw/zalo\"\n },\n \"plugins.entries.zalo.config\": {\n \"label\": \"@openclaw/zalo Config\",\n \"help\": \"Plugin-defined config payload for zalo.\"\n },\n \"plugins.entries.zalouser\": {\n \"label\": \"@openclaw/zalouser\",\n \"help\": \"OpenClaw Zalo Personal Account plugin via zca-cli (plugin: zalouser)\"\n },\n \"plugins.entries.zalouser.enabled\": {\n \"label\": \"Enable @openclaw/zalouser\"\n },\n \"plugins.entries.zalouser.config\": {\n \"label\": \"@openclaw/zalouser Config\",\n \"help\": \"Plugin-defined config payload for zalouser.\"\n },\n \"channels.feishu\": {\n \"label\": \"Feishu\",\n \"help\": \"飞书/Lark enterprise messaging.\"\n },\n \"agents.defaults.heartbeat.target\": {\n \"help\": \"Delivery target (\\\"last\\\", \\\"none\\\", or a channel id). Known channels: telegram, whatsapp, discord, googlechat, slack, signal, imessage, feishu.\",\n \"placeholder\": \"last\"\n },\n \"agents.list.*.heartbeat.target\": {\n \"help\": \"Delivery target (\\\"last\\\", \\\"none\\\", or a channel id). Known channels: telegram, whatsapp, discord, googlechat, slack, signal, imessage, feishu.\",\n \"placeholder\": \"last\"\n }\n },\n \"version\": \"2026.2.9\",\n \"generatedAt\": \"2026-02-13T11:19:32.167Z\"\n }\n}"}],"details":{"ok":true,"result":{"schema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"meta":{"type":"object","properties":{"lastTouchedVersion":{"type":"string"},"lastTouchedAt":{"type":"string"}},"additionalProperties":false},"env":{"type":"object","properties":{"shellEnv":{"type":"object","properties":{"enabled":{"type":"boolean"},"timeoutMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"vars":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"additionalProperties":{"type":"string"}},"wizard":{"type":"object","properties":{"lastRunAt":{"type":"string"},"lastRunVersion":{"type":"string"},"lastRunCommit":{"type":"string"},"lastRunCommand":{"type":"string"},"lastRunMode":{"anyOf":[{"type":"string","const":"local"},{"type":"string","const":"remote"}]}},"additionalProperties":false},"diagnostics":{"type":"object","properties":{"enabled":{"type":"boolean"},"flags":{"type":"array","items":{"type":"string"}},"otel":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"protocol":{"anyOf":[{"type":"string","const":"http/protobuf"},{"type":"string","const":"grpc"}]},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"serviceName":{"type":"string"},"traces":{"type":"boolean"},"metrics":{"type":"boolean"},"logs":{"type":"boolean"},"sampleRate":{"type":"number","minimum":0,"maximum":1},"flushIntervalMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"cacheTrace":{"type":"object","properties":{"enabled":{"type":"boolean"},"filePath":{"type":"string"},"includeMessages":{"type":"boolean"},"includePrompt":{"type":"boolean"},"includeSystem":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false},"logging":{"type":"object","properties":{"level":{"anyOf":[{"type":"string","const":"silent"},{"type":"string","const":"fatal"},{"type":"string","const":"error"},{"type":"string","const":"warn"},{"type":"string","const":"info"},{"type":"string","const":"debug"},{"type":"string","const":"trace"}]},"file":{"type":"string"},"consoleLevel":{"anyOf":[{"type":"string","const":"silent"},{"type":"string","const":"fatal"},{"type":"string","const":"error"},{"type":"string","const":"warn"},{"type":"string","const":"info"},{"type":"string","const":"debug"},{"type":"string","const":"trace"}]},"consoleStyle":{"anyOf":[{"type":"string","const":"pretty"},{"type":"string","const":"compact"},{"type":"string","const":"json"}]},"redactSensitive":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"tools"}]},"redactPatterns":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"update":{"type":"object","properties":{"channel":{"anyOf":[{"type":"string","const":"stable"},{"type":"string","const":"beta"},{"type":"string","const":"dev"}]},"checkOnStart":{"type":"boolean"}},"additionalProperties":false},"browser":{"type":"object","properties":{"enabled":{"type":"boolean"},"evaluateEnabled":{"type":"boolean"},"cdpUrl":{"type":"string"},"remoteCdpTimeoutMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"remoteCdpHandshakeTimeoutMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"color":{"type":"string"},"executablePath":{"type":"string"},"headless":{"type":"boolean"},"noSandbox":{"type":"boolean"},"attachOnly":{"type":"boolean"},"defaultProfile":{"type":"string"},"snapshotDefaults":{"type":"object","properties":{"mode":{"type":"string","const":"efficient"}},"additionalProperties":false},"profiles":{"type":"object","propertyNames":{"type":"string","pattern":"^[a-z0-9-]+$"},"additionalProperties":{"type":"object","properties":{"cdpPort":{"type":"integer","minimum":1,"maximum":65535},"cdpUrl":{"type":"string"},"driver":{"anyOf":[{"type":"string","const":"clawd"},{"type":"string","const":"extension"}]},"color":{"type":"string","pattern":"^#?[0-9a-fA-F]{6}$"}},"required":["color"],"additionalProperties":false}}},"additionalProperties":false},"ui":{"type":"object","properties":{"seamColor":{"type":"string","pattern":"^#?[0-9a-fA-F]{6}$"},"assistant":{"type":"object","properties":{"name":{"type":"string","maxLength":50},"avatar":{"type":"string","maxLength":200}},"additionalProperties":false}},"additionalProperties":false},"auth":{"type":"object","properties":{"profiles":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"provider":{"type":"string"},"mode":{"anyOf":[{"type":"string","const":"api_key"},{"type":"string","const":"oauth"},{"type":"string","const":"token"}]},"email":{"type":"string"}},"required":["provider","mode"],"additionalProperties":false}},"order":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"cooldowns":{"type":"object","properties":{"billingBackoffHours":{"type":"number","exclusiveMinimum":0},"billingBackoffHoursByProvider":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number","exclusiveMinimum":0}},"billingMaxHours":{"type":"number","exclusiveMinimum":0},"failureWindowHours":{"type":"number","exclusiveMinimum":0}},"additionalProperties":false}},"additionalProperties":false},"models":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"merge"},{"type":"string","const":"replace"}]},"providers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"baseUrl":{"type":"string","minLength":1},"apiKey":{"type":"string"},"auth":{"anyOf":[{"type":"string","const":"api-key"},{"type":"string","const":"aws-sdk"},{"type":"string","const":"oauth"},{"type":"string","const":"token"}]},"api":{"anyOf":[{"type":"string","const":"openai-completions"},{"type":"string","const":"openai-responses"},{"type":"string","const":"anthropic-messages"},{"type":"string","const":"google-generative-ai"},{"type":"string","const":"github-copilot"},{"type":"string","const":"bedrock-converse-stream"}]},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"authHeader":{"type":"boolean"},"models":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"api":{"anyOf":[{"type":"string","const":"openai-completions"},{"type":"string","const":"openai-responses"},{"type":"string","const":"anthropic-messages"},{"type":"string","const":"google-generative-ai"},{"type":"string","const":"github-copilot"},{"type":"string","const":"bedrock-converse-stream"}]},"reasoning":{"type":"boolean"},"input":{"type":"array","items":{"anyOf":[{"type":"string","const":"text"},{"type":"string","const":"image"}]}},"cost":{"type":"object","properties":{"input":{"type":"number"},"output":{"type":"number"},"cacheRead":{"type":"number"},"cacheWrite":{"type":"number"}},"additionalProperties":false},"contextWindow":{"type":"number","exclusiveMinimum":0},"maxTokens":{"type":"number","exclusiveMinimum":0},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"compat":{"type":"object","properties":{"supportsStore":{"type":"boolean"},"supportsDeveloperRole":{"type":"boolean"},"supportsReasoningEffort":{"type":"boolean"},"maxTokensField":{"anyOf":[{"type":"string","const":"max_completion_tokens"},{"type":"string","const":"max_tokens"}]}},"additionalProperties":false}},"required":["id","name"],"additionalProperties":false}}},"required":["baseUrl","models"],"additionalProperties":false}},"bedrockDiscovery":{"type":"object","properties":{"enabled":{"type":"boolean"},"region":{"type":"string"},"providerFilter":{"type":"array","items":{"type":"string"}},"refreshInterval":{"type":"integer","minimum":0,"maximum":9007199254740991},"defaultContextWindow":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"defaultMaxTokens":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"nodeHost":{"type":"object","properties":{"browserProxy":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowProfiles":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false},"agents":{"type":"object","properties":{"defaults":{"type":"object","properties":{"model":{"type":"object","properties":{"primary":{"type":"string"},"fallbacks":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"imageModel":{"type":"object","properties":{"primary":{"type":"string"},"fallbacks":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"models":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"alias":{"type":"string"},"params":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"streaming":{"type":"boolean"}},"additionalProperties":false}},"workspace":{"type":"string"},"repoRoot":{"type":"string"},"skipBootstrap":{"type":"boolean"},"bootstrapMaxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"userTimezone":{"type":"string"},"timeFormat":{"anyOf":[{"type":"string","const":"auto"},{"type":"string","const":"12"},{"type":"string","const":"24"}]},"envelopeTimezone":{"type":"string"},"envelopeTimestamp":{"anyOf":[{"type":"string","const":"on"},{"type":"string","const":"off"}]},"envelopeElapsed":{"anyOf":[{"type":"string","const":"on"},{"type":"string","const":"off"}]},"contextTokens":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"cliBackends":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"command":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"output":{"anyOf":[{"type":"string","const":"json"},{"type":"string","const":"text"},{"type":"string","const":"jsonl"}]},"resumeOutput":{"anyOf":[{"type":"string","const":"json"},{"type":"string","const":"text"},{"type":"string","const":"jsonl"}]},"input":{"anyOf":[{"type":"string","const":"arg"},{"type":"string","const":"stdin"}]},"maxPromptArgChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"env":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"clearEnv":{"type":"array","items":{"type":"string"}},"modelArg":{"type":"string"},"modelAliases":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"sessionArg":{"type":"string"},"sessionArgs":{"type":"array","items":{"type":"string"}},"resumeArgs":{"type":"array","items":{"type":"string"}},"sessionMode":{"anyOf":[{"type":"string","const":"always"},{"type":"string","const":"existing"},{"type":"string","const":"none"}]},"sessionIdFields":{"type":"array","items":{"type":"string"}},"systemPromptArg":{"type":"string"},"systemPromptMode":{"anyOf":[{"type":"string","const":"append"},{"type":"string","const":"replace"}]},"systemPromptWhen":{"anyOf":[{"type":"string","const":"first"},{"type":"string","const":"always"},{"type":"string","const":"never"}]},"imageArg":{"type":"string"},"imageMode":{"anyOf":[{"type":"string","const":"repeat"},{"type":"string","const":"list"}]},"serialize":{"type":"boolean"}},"required":["command"],"additionalProperties":false}},"memorySearch":{"type":"object","properties":{"enabled":{"type":"boolean"},"sources":{"type":"array","items":{"anyOf":[{"type":"string","const":"memory"},{"type":"string","const":"sessions"}]}},"extraPaths":{"type":"array","items":{"type":"string"}},"experimental":{"type":"object","properties":{"sessionMemory":{"type":"boolean"}},"additionalProperties":false},"provider":{"anyOf":[{"type":"string","const":"openai"},{"type":"string","const":"local"},{"type":"string","const":"gemini"},{"type":"string","const":"voyage"}]},"remote":{"type":"object","properties":{"baseUrl":{"type":"string"},"apiKey":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"batch":{"type":"object","properties":{"enabled":{"type":"boolean"},"wait":{"type":"boolean"},"concurrency":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"pollIntervalMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"timeoutMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"anyOf":[{"type":"string","const":"openai"},{"type":"string","const":"gemini"},{"type":"string","const":"local"},{"type":"string","const":"voyage"},{"type":"string","const":"none"}]},"model":{"type":"string"},"local":{"type":"object","properties":{"modelPath":{"type":"string"},"modelCacheDir":{"type":"string"}},"additionalProperties":false},"store":{"type":"object","properties":{"driver":{"type":"string","const":"sqlite"},"path":{"type":"string"},"vector":{"type":"object","properties":{"enabled":{"type":"boolean"},"extensionPath":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"chunking":{"type":"object","properties":{"tokens":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"overlap":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"sync":{"type":"object","properties":{"onSessionStart":{"type":"boolean"},"onSearch":{"type":"boolean"},"watch":{"type":"boolean"},"watchDebounceMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"intervalMinutes":{"type":"integer","minimum":0,"maximum":9007199254740991},"sessions":{"type":"object","properties":{"deltaBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"deltaMessages":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"query":{"type":"object","properties":{"maxResults":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minScore":{"type":"number","minimum":0,"maximum":1},"hybrid":{"type":"object","properties":{"enabled":{"type":"boolean"},"vectorWeight":{"type":"number","minimum":0,"maximum":1},"textWeight":{"type":"number","minimum":0,"maximum":1},"candidateMultiplier":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"cache":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxEntries":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"contextPruning":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"cache-ttl"}]},"ttl":{"type":"string"},"keepLastAssistants":{"type":"integer","minimum":0,"maximum":9007199254740991},"softTrimRatio":{"type":"number","minimum":0,"maximum":1},"hardClearRatio":{"type":"number","minimum":0,"maximum":1},"minPrunableToolChars":{"type":"integer","minimum":0,"maximum":9007199254740991},"tools":{"type":"object","properties":{"allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"softTrim":{"type":"object","properties":{"maxChars":{"type":"integer","minimum":0,"maximum":9007199254740991},"headChars":{"type":"integer","minimum":0,"maximum":9007199254740991},"tailChars":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"hardClear":{"type":"object","properties":{"enabled":{"type":"boolean"},"placeholder":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"compaction":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"default"},{"type":"string","const":"safeguard"}]},"reserveTokensFloor":{"type":"integer","minimum":0,"maximum":9007199254740991},"maxHistoryShare":{"type":"number","minimum":0.1,"maximum":0.9},"memoryFlush":{"type":"object","properties":{"enabled":{"type":"boolean"},"softThresholdTokens":{"type":"integer","minimum":0,"maximum":9007199254740991},"prompt":{"type":"string"},"systemPrompt":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"thinkingDefault":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"minimal"},{"type":"string","const":"low"},{"type":"string","const":"medium"},{"type":"string","const":"high"},{"type":"string","const":"xhigh"}]},"verboseDefault":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"on"},{"type":"string","const":"full"}]},"elevatedDefault":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"on"},{"type":"string","const":"ask"},{"type":"string","const":"full"}]},"blockStreamingDefault":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"on"}]},"blockStreamingBreak":{"anyOf":[{"type":"string","const":"text_end"},{"type":"string","const":"message_end"}]},"blockStreamingChunk":{"type":"object","properties":{"minChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"breakPreference":{"anyOf":[{"type":"string","const":"paragraph"},{"type":"string","const":"newline"},{"type":"string","const":"sentence"}]}},"additionalProperties":false},"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},"humanDelay":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"natural"},{"type":"string","const":"custom"}]},"minMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"maxMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"mediaMaxMb":{"type":"number","exclusiveMinimum":0},"typingIntervalSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"typingMode":{"anyOf":[{"type":"string","const":"never"},{"type":"string","const":"instant"},{"type":"string","const":"thinking"},{"type":"string","const":"message"}]},"heartbeat":{"type":"object","properties":{"every":{"type":"string"},"activeHours":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"},"timezone":{"type":"string"}},"additionalProperties":false},"model":{"type":"string"},"session":{"type":"string"},"includeReasoning":{"type":"boolean"},"target":{"type":"string"},"to":{"type":"string"},"accountId":{"type":"string"},"prompt":{"type":"string"},"ackMaxChars":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"maxConcurrent":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"subagents":{"type":"object","properties":{"maxConcurrent":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"archiveAfterMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"model":{"anyOf":[{"type":"string"},{"type":"object","properties":{"primary":{"type":"string"},"fallbacks":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}]},"thinking":{"type":"string"}},"additionalProperties":false},"sandbox":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"non-main"},{"type":"string","const":"all"}]},"workspaceAccess":{"anyOf":[{"type":"string","const":"none"},{"type":"string","const":"ro"},{"type":"string","const":"rw"}]},"sessionToolsVisibility":{"anyOf":[{"type":"string","const":"spawned"},{"type":"string","const":"all"}]},"scope":{"anyOf":[{"type":"string","const":"session"},{"type":"string","const":"agent"},{"type":"string","const":"shared"}]},"perSession":{"type":"boolean"},"workspaceRoot":{"type":"string"},"docker":{"type":"object","properties":{"image":{"type":"string"},"containerPrefix":{"type":"string"},"workdir":{"type":"string"},"readOnlyRoot":{"type":"boolean"},"tmpfs":{"type":"array","items":{"type":"string"}},"network":{"type":"string"},"user":{"type":"string"},"capDrop":{"type":"array","items":{"type":"string"}},"env":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"setupCommand":{"type":"string"},"pidsLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"memory":{"anyOf":[{"type":"string"},{"type":"number"}]},"memorySwap":{"anyOf":[{"type":"string"},{"type":"number"}]},"cpus":{"type":"number","exclusiveMinimum":0},"ulimits":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"soft":{"type":"integer","minimum":0,"maximum":9007199254740991},"hard":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}]}},"seccompProfile":{"type":"string"},"apparmorProfile":{"type":"string"},"dns":{"type":"array","items":{"type":"string"}},"extraHosts":{"type":"array","items":{"type":"string"}},"binds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"browser":{"type":"object","properties":{"enabled":{"type":"boolean"},"image":{"type":"string"},"containerPrefix":{"type":"string"},"cdpPort":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"vncPort":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"noVncPort":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"headless":{"type":"boolean"},"enableNoVnc":{"type":"boolean"},"allowHostControl":{"type":"boolean"},"autoStart":{"type":"boolean"},"autoStartTimeoutMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"prune":{"type":"object","properties":{"idleHours":{"type":"integer","minimum":0,"maximum":9007199254740991},"maxAgeDays":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"list":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"default":{"type":"boolean"},"name":{"type":"string"},"workspace":{"type":"string"},"agentDir":{"type":"string"},"model":{"anyOf":[{"type":"string"},{"type":"object","properties":{"primary":{"type":"string"},"fallbacks":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}]},"skills":{"type":"array","items":{"type":"string"}},"memorySearch":{"type":"object","properties":{"enabled":{"type":"boolean"},"sources":{"type":"array","items":{"anyOf":[{"type":"string","const":"memory"},{"type":"string","const":"sessions"}]}},"extraPaths":{"type":"array","items":{"type":"string"}},"experimental":{"type":"object","properties":{"sessionMemory":{"type":"boolean"}},"additionalProperties":false},"provider":{"anyOf":[{"type":"string","const":"openai"},{"type":"string","const":"local"},{"type":"string","const":"gemini"},{"type":"string","const":"voyage"}]},"remote":{"type":"object","properties":{"baseUrl":{"type":"string"},"apiKey":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"batch":{"type":"object","properties":{"enabled":{"type":"boolean"},"wait":{"type":"boolean"},"concurrency":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"pollIntervalMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"timeoutMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"anyOf":[{"type":"string","const":"openai"},{"type":"string","const":"gemini"},{"type":"string","const":"local"},{"type":"string","const":"voyage"},{"type":"string","const":"none"}]},"model":{"type":"string"},"local":{"type":"object","properties":{"modelPath":{"type":"string"},"modelCacheDir":{"type":"string"}},"additionalProperties":false},"store":{"type":"object","properties":{"driver":{"type":"string","const":"sqlite"},"path":{"type":"string"},"vector":{"type":"object","properties":{"enabled":{"type":"boolean"},"extensionPath":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"chunking":{"type":"object","properties":{"tokens":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"overlap":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"sync":{"type":"object","properties":{"onSessionStart":{"type":"boolean"},"onSearch":{"type":"boolean"},"watch":{"type":"boolean"},"watchDebounceMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"intervalMinutes":{"type":"integer","minimum":0,"maximum":9007199254740991},"sessions":{"type":"object","properties":{"deltaBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"deltaMessages":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"query":{"type":"object","properties":{"maxResults":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minScore":{"type":"number","minimum":0,"maximum":1},"hybrid":{"type":"object","properties":{"enabled":{"type":"boolean"},"vectorWeight":{"type":"number","minimum":0,"maximum":1},"textWeight":{"type":"number","minimum":0,"maximum":1},"candidateMultiplier":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"cache":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxEntries":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"humanDelay":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"natural"},{"type":"string","const":"custom"}]},"minMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"maxMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"heartbeat":{"type":"object","properties":{"every":{"type":"string"},"activeHours":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"},"timezone":{"type":"string"}},"additionalProperties":false},"model":{"type":"string"},"session":{"type":"string"},"includeReasoning":{"type":"boolean"},"target":{"type":"string"},"to":{"type":"string"},"accountId":{"type":"string"},"prompt":{"type":"string"},"ackMaxChars":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"identity":{"type":"object","properties":{"name":{"type":"string"},"theme":{"type":"string"},"emoji":{"type":"string"},"avatar":{"type":"string"}},"additionalProperties":false},"groupChat":{"type":"object","properties":{"mentionPatterns":{"type":"array","items":{"type":"string"}},"historyLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"subagents":{"type":"object","properties":{"allowAgents":{"type":"array","items":{"type":"string"}},"model":{"anyOf":[{"type":"string"},{"type":"object","properties":{"primary":{"type":"string"},"fallbacks":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}]},"thinking":{"type":"string"}},"additionalProperties":false},"sandbox":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"non-main"},{"type":"string","const":"all"}]},"workspaceAccess":{"anyOf":[{"type":"string","const":"none"},{"type":"string","const":"ro"},{"type":"string","const":"rw"}]},"sessionToolsVisibility":{"anyOf":[{"type":"string","const":"spawned"},{"type":"string","const":"all"}]},"scope":{"anyOf":[{"type":"string","const":"session"},{"type":"string","const":"agent"},{"type":"string","const":"shared"}]},"perSession":{"type":"boolean"},"workspaceRoot":{"type":"string"},"docker":{"type":"object","properties":{"image":{"type":"string"},"containerPrefix":{"type":"string"},"workdir":{"type":"string"},"readOnlyRoot":{"type":"boolean"},"tmpfs":{"type":"array","items":{"type":"string"}},"network":{"type":"string"},"user":{"type":"string"},"capDrop":{"type":"array","items":{"type":"string"}},"env":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"setupCommand":{"type":"string"},"pidsLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"memory":{"anyOf":[{"type":"string"},{"type":"number"}]},"memorySwap":{"anyOf":[{"type":"string"},{"type":"number"}]},"cpus":{"type":"number","exclusiveMinimum":0},"ulimits":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"soft":{"type":"integer","minimum":0,"maximum":9007199254740991},"hard":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}]}},"seccompProfile":{"type":"string"},"apparmorProfile":{"type":"string"},"dns":{"type":"array","items":{"type":"string"}},"extraHosts":{"type":"array","items":{"type":"string"}},"binds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"browser":{"type":"object","properties":{"enabled":{"type":"boolean"},"image":{"type":"string"},"containerPrefix":{"type":"string"},"cdpPort":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"vncPort":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"noVncPort":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"headless":{"type":"boolean"},"enableNoVnc":{"type":"boolean"},"allowHostControl":{"type":"boolean"},"autoStart":{"type":"boolean"},"autoStartTimeoutMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"prune":{"type":"object","properties":{"idleHours":{"type":"integer","minimum":0,"maximum":9007199254740991},"maxAgeDays":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"tools":{"type":"object","properties":{"profile":{"anyOf":[{"type":"string","const":"minimal"},{"type":"string","const":"coding"},{"type":"string","const":"messaging"},{"type":"string","const":"full"}]},"allow":{"type":"array","items":{"type":"string"}},"alsoAllow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}},"byProvider":{"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"}},"profile":{"anyOf":[{"type":"string","const":"minimal"},{"type":"string","const":"coding"},{"type":"string","const":"messaging"},{"type":"string","const":"full"}]}},"additionalProperties":false}},"elevated":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowFrom":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"}]}}}},"additionalProperties":false},"exec":{"type":"object","properties":{"host":{"type":"string","enum":["sandbox","gateway","node"]},"security":{"type":"string","enum":["deny","allowlist","full"]},"ask":{"type":"string","enum":["off","on-miss","always"]},"node":{"type":"string"},"pathPrepend":{"type":"array","items":{"type":"string"}},"safeBins":{"type":"array","items":{"type":"string"}},"backgroundMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutSec":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"approvalRunningNoticeMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"cleanupMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"notifyOnExit":{"type":"boolean"},"applyPatch":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowModels":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false},"sandbox":{"type":"object","properties":{"tools":{"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}},"additionalProperties":false}},"required":["id"],"additionalProperties":false}}},"additionalProperties":false},"tools":{"type":"object","properties":{"profile":{"anyOf":[{"type":"string","const":"minimal"},{"type":"string","const":"coding"},{"type":"string","const":"messaging"},{"type":"string","const":"full"}]},"allow":{"type":"array","items":{"type":"string"}},"alsoAllow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}},"byProvider":{"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"}},"profile":{"anyOf":[{"type":"string","const":"minimal"},{"type":"string","const":"coding"},{"type":"string","const":"messaging"},{"type":"string","const":"full"}]}},"additionalProperties":false}},"web":{"type":"object","properties":{"search":{"type":"object","properties":{"enabled":{"type":"boolean"},"provider":{"anyOf":[{"type":"string","const":"brave"},{"type":"string","const":"perplexity"},{"type":"string","const":"grok"}]},"apiKey":{"type":"string"},"maxResults":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"cacheTtlMinutes":{"type":"number","minimum":0},"perplexity":{"type":"object","properties":{"apiKey":{"type":"string"},"baseUrl":{"type":"string"},"model":{"type":"string"}},"additionalProperties":false},"grok":{"type":"object","properties":{"apiKey":{"type":"string"},"model":{"type":"string"},"inlineCitations":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false},"fetch":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxCharsCap":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"cacheTtlMinutes":{"type":"number","minimum":0},"maxRedirects":{"type":"integer","minimum":0,"maximum":9007199254740991},"userAgent":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"media":{"type":"object","properties":{"models":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"},"capabilities":{"type":"array","items":{"anyOf":[{"type":"string","const":"image"},{"type":"string","const":"audio"},{"type":"string","const":"video"}]}},"type":{"anyOf":[{"type":"string","const":"provider"},{"type":"string","const":"cli"}]},"command":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"prompt":{"type":"string"},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"language":{"type":"string"},"providerOptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}}},"deepgram":{"type":"object","properties":{"detectLanguage":{"type":"boolean"},"punctuate":{"type":"boolean"},"smartFormat":{"type":"boolean"}},"additionalProperties":false},"baseUrl":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"profile":{"type":"string"},"preferredProfile":{"type":"string"}},"additionalProperties":false}},"concurrency":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"image":{"type":"object","properties":{"enabled":{"type":"boolean"},"scope":{"type":"object","properties":{"default":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"rules":{"type":"array","items":{"type":"object","properties":{"action":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"match":{"type":"object","properties":{"channel":{"type":"string"},"chatType":{"anyOf":[{"type":"string","const":"direct"},{"type":"string","const":"group"},{"type":"string","const":"channel"},{"type":"string","const":"dm"}]},"keyPrefix":{"type":"string"}},"additionalProperties":false}},"required":["action"],"additionalProperties":false}}},"additionalProperties":false},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"prompt":{"type":"string"},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"language":{"type":"string"},"providerOptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}}},"deepgram":{"type":"object","properties":{"detectLanguage":{"type":"boolean"},"punctuate":{"type":"boolean"},"smartFormat":{"type":"boolean"}},"additionalProperties":false},"baseUrl":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"attachments":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"first"},{"type":"string","const":"all"}]},"maxAttachments":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"prefer":{"anyOf":[{"type":"string","const":"first"},{"type":"string","const":"last"},{"type":"string","const":"path"},{"type":"string","const":"url"}]}},"additionalProperties":false},"models":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"},"capabilities":{"type":"array","items":{"anyOf":[{"type":"string","const":"image"},{"type":"string","const":"audio"},{"type":"string","const":"video"}]}},"type":{"anyOf":[{"type":"string","const":"provider"},{"type":"string","const":"cli"}]},"command":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"prompt":{"type":"string"},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"language":{"type":"string"},"providerOptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}}},"deepgram":{"type":"object","properties":{"detectLanguage":{"type":"boolean"},"punctuate":{"type":"boolean"},"smartFormat":{"type":"boolean"}},"additionalProperties":false},"baseUrl":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"profile":{"type":"string"},"preferredProfile":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false},"audio":{"type":"object","properties":{"enabled":{"type":"boolean"},"scope":{"type":"object","properties":{"default":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"rules":{"type":"array","items":{"type":"object","properties":{"action":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"match":{"type":"object","properties":{"channel":{"type":"string"},"chatType":{"anyOf":[{"type":"string","const":"direct"},{"type":"string","const":"group"},{"type":"string","const":"channel"},{"type":"string","const":"dm"}]},"keyPrefix":{"type":"string"}},"additionalProperties":false}},"required":["action"],"additionalProperties":false}}},"additionalProperties":false},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"prompt":{"type":"string"},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"language":{"type":"string"},"providerOptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}}},"deepgram":{"type":"object","properties":{"detectLanguage":{"type":"boolean"},"punctuate":{"type":"boolean"},"smartFormat":{"type":"boolean"}},"additionalProperties":false},"baseUrl":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"attachments":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"first"},{"type":"string","const":"all"}]},"maxAttachments":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"prefer":{"anyOf":[{"type":"string","const":"first"},{"type":"string","const":"last"},{"type":"string","const":"path"},{"type":"string","const":"url"}]}},"additionalProperties":false},"models":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"},"capabilities":{"type":"array","items":{"anyOf":[{"type":"string","const":"image"},{"type":"string","const":"audio"},{"type":"string","const":"video"}]}},"type":{"anyOf":[{"type":"string","const":"provider"},{"type":"string","const":"cli"}]},"command":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"prompt":{"type":"string"},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"language":{"type":"string"},"providerOptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}}},"deepgram":{"type":"object","properties":{"detectLanguage":{"type":"boolean"},"punctuate":{"type":"boolean"},"smartFormat":{"type":"boolean"}},"additionalProperties":false},"baseUrl":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"profile":{"type":"string"},"preferredProfile":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false},"video":{"type":"object","properties":{"enabled":{"type":"boolean"},"scope":{"type":"object","properties":{"default":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"rules":{"type":"array","items":{"type":"object","properties":{"action":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"match":{"type":"object","properties":{"channel":{"type":"string"},"chatType":{"anyOf":[{"type":"string","const":"direct"},{"type":"string","const":"group"},{"type":"string","const":"channel"},{"type":"string","const":"dm"}]},"keyPrefix":{"type":"string"}},"additionalProperties":false}},"required":["action"],"additionalProperties":false}}},"additionalProperties":false},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"prompt":{"type":"string"},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"language":{"type":"string"},"providerOptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}}},"deepgram":{"type":"object","properties":{"detectLanguage":{"type":"boolean"},"punctuate":{"type":"boolean"},"smartFormat":{"type":"boolean"}},"additionalProperties":false},"baseUrl":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"attachments":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"first"},{"type":"string","const":"all"}]},"maxAttachments":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"prefer":{"anyOf":[{"type":"string","const":"first"},{"type":"string","const":"last"},{"type":"string","const":"path"},{"type":"string","const":"url"}]}},"additionalProperties":false},"models":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string"},"model":{"type":"string"},"capabilities":{"type":"array","items":{"anyOf":[{"type":"string","const":"image"},{"type":"string","const":"audio"},{"type":"string","const":"video"}]}},"type":{"anyOf":[{"type":"string","const":"provider"},{"type":"string","const":"cli"}]},"command":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"prompt":{"type":"string"},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"language":{"type":"string"},"providerOptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}}},"deepgram":{"type":"object","properties":{"detectLanguage":{"type":"boolean"},"punctuate":{"type":"boolean"},"smartFormat":{"type":"boolean"}},"additionalProperties":false},"baseUrl":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"profile":{"type":"string"},"preferredProfile":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"enabled":{"type":"boolean"},"scope":{"type":"object","properties":{"default":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"rules":{"type":"array","items":{"type":"object","properties":{"action":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"match":{"type":"object","properties":{"channel":{"type":"string"},"chatType":{"anyOf":[{"type":"string","const":"direct"},{"type":"string","const":"group"},{"type":"string","const":"channel"},{"type":"string","const":"dm"}]},"keyPrefix":{"type":"string"}},"additionalProperties":false}},"required":["action"],"additionalProperties":false}}},"additionalProperties":false},"maxLinks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"models":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"cli"},"command":{"type":"string","minLength":1},"args":{"type":"array","items":{"type":"string"}},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["command"],"additionalProperties":false}}},"additionalProperties":false},"message":{"type":"object","properties":{"allowCrossContextSend":{"type":"boolean"},"crossContext":{"type":"object","properties":{"allowWithinProvider":{"type":"boolean"},"allowAcrossProviders":{"type":"boolean"},"marker":{"type":"object","properties":{"enabled":{"type":"boolean"},"prefix":{"type":"string"},"suffix":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"broadcast":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false},"agentToAgent":{"type":"object","properties":{"enabled":{"type":"boolean"},"allow":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"elevated":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowFrom":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"}]}}}},"additionalProperties":false},"exec":{"type":"object","properties":{"host":{"type":"string","enum":["sandbox","gateway","node"]},"security":{"type":"string","enum":["deny","allowlist","full"]},"ask":{"type":"string","enum":["off","on-miss","always"]},"node":{"type":"string"},"pathPrepend":{"type":"array","items":{"type":"string"}},"safeBins":{"type":"array","items":{"type":"string"}},"backgroundMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutSec":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"cleanupMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"notifyOnExit":{"type":"boolean"},"applyPatch":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowModels":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false},"subagents":{"type":"object","properties":{"tools":{"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},"sandbox":{"type":"object","properties":{"tools":{"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}},"additionalProperties":false},"bindings":{"type":"array","items":{"type":"object","properties":{"agentId":{"type":"string"},"match":{"type":"object","properties":{"channel":{"type":"string"},"accountId":{"type":"string"},"peer":{"type":"object","properties":{"kind":{"anyOf":[{"type":"string","const":"direct"},{"type":"string","const":"group"},{"type":"string","const":"channel"},{"type":"string","const":"dm"}]},"id":{"type":"string"}},"required":["kind","id"],"additionalProperties":false},"guildId":{"type":"string"},"teamId":{"type":"string"}},"required":["channel"],"additionalProperties":false}},"required":["agentId","match"],"additionalProperties":false}},"broadcast":{"type":"object","properties":{"strategy":{"type":"string","enum":["parallel","sequential"]}},"additionalProperties":{"type":"array","items":{"type":"string"}}},"audio":{"type":"object","properties":{"transcription":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"}},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["command"],"additionalProperties":false}},"additionalProperties":false},"media":{"type":"object","properties":{"preserveFilenames":{"type":"boolean"}},"additionalProperties":false},"messages":{"type":"object","properties":{"messagePrefix":{"type":"string"},"responsePrefix":{"type":"string"},"groupChat":{"type":"object","properties":{"mentionPatterns":{"type":"array","items":{"type":"string"}},"historyLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"queue":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]},"byChannel":{"type":"object","properties":{"whatsapp":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]},"telegram":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]},"discord":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]},"slack":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]},"mattermost":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]},"signal":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]},"imessage":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]},"msteams":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]},"webchat":{"anyOf":[{"type":"string","const":"steer"},{"type":"string","const":"followup"},{"type":"string","const":"collect"},{"type":"string","const":"steer-backlog"},{"type":"string","const":"steer+backlog"},{"type":"string","const":"queue"},{"type":"string","const":"interrupt"}]}},"additionalProperties":false},"debounceMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"debounceMsByChannel":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"integer","minimum":0,"maximum":9007199254740991}},"cap":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"drop":{"anyOf":[{"type":"string","const":"old"},{"type":"string","const":"new"},{"type":"string","const":"summarize"}]}},"additionalProperties":false},"inbound":{"type":"object","properties":{"debounceMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"byChannel":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"integer","minimum":0,"maximum":9007199254740991}}},"additionalProperties":false},"ackReaction":{"type":"string"},"ackReactionScope":{"type":"string","enum":["group-mentions","group-all","direct","all"]},"removeAckAfterReply":{"type":"boolean"},"tts":{"type":"object","properties":{"auto":{"type":"string","enum":["off","always","inbound","tagged"]},"enabled":{"type":"boolean"},"mode":{"type":"string","enum":["final","all"]},"provider":{"type":"string","enum":["elevenlabs","openai","edge"]},"summaryModel":{"type":"string"},"modelOverrides":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowText":{"type":"boolean"},"allowProvider":{"type":"boolean"},"allowVoice":{"type":"boolean"},"allowModelId":{"type":"boolean"},"allowVoiceSettings":{"type":"boolean"},"allowNormalization":{"type":"boolean"},"allowSeed":{"type":"boolean"}},"additionalProperties":false},"elevenlabs":{"type":"object","properties":{"apiKey":{"type":"string"},"baseUrl":{"type":"string"},"voiceId":{"type":"string"},"modelId":{"type":"string"},"seed":{"type":"integer","minimum":0,"maximum":4294967295},"applyTextNormalization":{"type":"string","enum":["auto","on","off"]},"languageCode":{"type":"string"},"voiceSettings":{"type":"object","properties":{"stability":{"type":"number","minimum":0,"maximum":1},"similarityBoost":{"type":"number","minimum":0,"maximum":1},"style":{"type":"number","minimum":0,"maximum":1},"useSpeakerBoost":{"type":"boolean"},"speed":{"type":"number","minimum":0.5,"maximum":2}},"additionalProperties":false}},"additionalProperties":false},"openai":{"type":"object","properties":{"apiKey":{"type":"string"},"model":{"type":"string"},"voice":{"type":"string"}},"additionalProperties":false},"edge":{"type":"object","properties":{"enabled":{"type":"boolean"},"voice":{"type":"string"},"lang":{"type":"string"},"outputFormat":{"type":"string"},"pitch":{"type":"string"},"rate":{"type":"string"},"volume":{"type":"string"},"saveSubtitles":{"type":"boolean"},"proxy":{"type":"string"},"timeoutMs":{"type":"integer","minimum":1000,"maximum":120000}},"additionalProperties":false},"prefsPath":{"type":"string"},"maxTextLength":{"type":"integer","minimum":1,"maximum":9007199254740991},"timeoutMs":{"type":"integer","minimum":1000,"maximum":120000}},"additionalProperties":false}},"additionalProperties":false},"commands":{"default":{"native":"auto","nativeSkills":"auto"},"type":"object","properties":{"native":{"default":"auto","anyOf":[{"type":"boolean"},{"type":"string","const":"auto"}]},"nativeSkills":{"default":"auto","anyOf":[{"type":"boolean"},{"type":"string","const":"auto"}]},"text":{"type":"boolean"},"bash":{"type":"boolean"},"bashForegroundMs":{"type":"integer","minimum":0,"maximum":30000},"config":{"type":"boolean"},"debug":{"type":"boolean"},"restart":{"type":"boolean"},"useAccessGroups":{"type":"boolean"},"ownerAllowFrom":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"}]}}},"required":["native","nativeSkills"],"additionalProperties":false},"approvals":{"type":"object","properties":{"exec":{"type":"object","properties":{"enabled":{"type":"boolean"},"mode":{"anyOf":[{"type":"string","const":"session"},{"type":"string","const":"targets"},{"type":"string","const":"both"}]},"agentFilter":{"type":"array","items":{"type":"string"}},"sessionFilter":{"type":"array","items":{"type":"string"}},"targets":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"string","minLength":1},"to":{"type":"string","minLength":1},"accountId":{"type":"string"},"threadId":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["channel","to"],"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false},"session":{"type":"object","properties":{"scope":{"anyOf":[{"type":"string","const":"per-sender"},{"type":"string","const":"global"}]},"dmScope":{"anyOf":[{"type":"string","const":"main"},{"type":"string","const":"per-peer"},{"type":"string","const":"per-channel-peer"},{"type":"string","const":"per-account-channel-peer"}]},"identityLinks":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"resetTriggers":{"type":"array","items":{"type":"string"}},"idleMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"reset":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"daily"},{"type":"string","const":"idle"}]},"atHour":{"type":"integer","minimum":0,"maximum":23},"idleMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"resetByType":{"type":"object","properties":{"direct":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"daily"},{"type":"string","const":"idle"}]},"atHour":{"type":"integer","minimum":0,"maximum":23},"idleMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"dm":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"daily"},{"type":"string","const":"idle"}]},"atHour":{"type":"integer","minimum":0,"maximum":23},"idleMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"group":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"daily"},{"type":"string","const":"idle"}]},"atHour":{"type":"integer","minimum":0,"maximum":23},"idleMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"thread":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"daily"},{"type":"string","const":"idle"}]},"atHour":{"type":"integer","minimum":0,"maximum":23},"idleMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"resetByChannel":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"daily"},{"type":"string","const":"idle"}]},"atHour":{"type":"integer","minimum":0,"maximum":23},"idleMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"store":{"type":"string"},"typingIntervalSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"typingMode":{"anyOf":[{"type":"string","const":"never"},{"type":"string","const":"instant"},{"type":"string","const":"thinking"},{"type":"string","const":"message"}]},"mainKey":{"type":"string"},"sendPolicy":{"type":"object","properties":{"default":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"rules":{"type":"array","items":{"type":"object","properties":{"action":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"match":{"type":"object","properties":{"channel":{"type":"string"},"chatType":{"anyOf":[{"type":"string","const":"direct"},{"type":"string","const":"group"},{"type":"string","const":"channel"},{"type":"string","const":"dm"}]},"keyPrefix":{"type":"string"}},"additionalProperties":false}},"required":["action"],"additionalProperties":false}}},"additionalProperties":false},"agentToAgent":{"type":"object","properties":{"maxPingPongTurns":{"type":"integer","minimum":0,"maximum":5}},"additionalProperties":false}},"additionalProperties":false},"cron":{"type":"object","properties":{"enabled":{"type":"boolean"},"store":{"type":"string"},"maxConcurrentRuns":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"hooks":{"type":"object","properties":{"enabled":{"type":"boolean"},"path":{"type":"string"},"token":{"type":"string"},"maxBodyBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"presets":{"type":"array","items":{"type":"string"}},"transformsDir":{"type":"string"},"mappings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"match":{"type":"object","properties":{"path":{"type":"string"},"source":{"type":"string"}},"additionalProperties":false},"action":{"anyOf":[{"type":"string","const":"wake"},{"type":"string","const":"agent"}]},"wakeMode":{"anyOf":[{"type":"string","const":"now"},{"type":"string","const":"next-heartbeat"}]},"name":{"type":"string"},"sessionKey":{"type":"string"},"messageTemplate":{"type":"string"},"textTemplate":{"type":"string"},"deliver":{"type":"boolean"},"allowUnsafeExternalContent":{"type":"boolean"},"channel":{"anyOf":[{"type":"string","const":"last"},{"type":"string","const":"whatsapp"},{"type":"string","const":"telegram"},{"type":"string","const":"discord"},{"type":"string","const":"slack"},{"type":"string","const":"signal"},{"type":"string","const":"imessage"},{"type":"string","const":"msteams"}]},"to":{"type":"string"},"model":{"type":"string"},"thinking":{"type":"string"},"timeoutSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"transform":{"type":"object","properties":{"module":{"type":"string"},"export":{"type":"string"}},"required":["module"],"additionalProperties":false}},"additionalProperties":false}},"gmail":{"type":"object","properties":{"account":{"type":"string"},"label":{"type":"string"},"topic":{"type":"string"},"subscription":{"type":"string"},"pushToken":{"type":"string"},"hookUrl":{"type":"string"},"includeBody":{"type":"boolean"},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"renewEveryMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"allowUnsafeExternalContent":{"type":"boolean"},"serve":{"type":"object","properties":{"bind":{"type":"string"},"port":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"path":{"type":"string"}},"additionalProperties":false},"tailscale":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"serve"},{"type":"string","const":"funnel"}]},"path":{"type":"string"},"target":{"type":"string"}},"additionalProperties":false},"model":{"type":"string"},"thinking":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"minimal"},{"type":"string","const":"low"},{"type":"string","const":"medium"},{"type":"string","const":"high"}]}},"additionalProperties":false},"internal":{"type":"object","properties":{"enabled":{"type":"boolean"},"handlers":{"type":"array","items":{"type":"object","properties":{"event":{"type":"string"},"module":{"type":"string"},"export":{"type":"string"}},"required":["event","module"],"additionalProperties":false}},"entries":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"env":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"additionalProperties":false}},"load":{"type":"object","properties":{"extraDirs":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"installs":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"source":{"anyOf":[{"type":"string","const":"npm"},{"type":"string","const":"archive"},{"type":"string","const":"path"}]},"spec":{"type":"string"},"sourcePath":{"type":"string"},"installPath":{"type":"string"},"version":{"type":"string"},"installedAt":{"type":"string"},"hooks":{"type":"array","items":{"type":"string"}}},"required":["source"],"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false},"web":{"type":"object","properties":{"enabled":{"type":"boolean"},"heartbeatSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"reconnect":{"type":"object","properties":{"initialMs":{"type":"number","exclusiveMinimum":0},"maxMs":{"type":"number","exclusiveMinimum":0},"factor":{"type":"number","exclusiveMinimum":0},"jitter":{"type":"number","minimum":0,"maximum":1},"maxAttempts":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"channels":{"type":"object","properties":{"feishu":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"appId":{"type":"string"},"appSecret":{"type":"string"},"encryptKey":{"type":"string"},"verificationToken":{"type":"string"},"domain":{"oneOf":[{"type":"string","enum":["feishu","lark"]},{"type":"string","format":"uri","pattern":"^https://"}]},"connectionMode":{"type":"string","enum":["websocket","webhook"]},"webhookPath":{"type":"string"},"webhookPort":{"type":"integer","minimum":1},"dmPolicy":{"type":"string","enum":["open","pairing","allowlist"]},"allowFrom":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"}]}},"groupPolicy":{"type":"string","enum":["open","allowlist","disabled"]},"groupAllowFrom":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"}]}},"requireMention":{"type":"boolean"},"topicSessionMode":{"type":"string","enum":["disabled","enabled"]},"historyLimit":{"type":"integer","minimum":0},"dmHistoryLimit":{"type":"integer","minimum":0},"textChunkLimit":{"type":"integer","minimum":1},"chunkMode":{"type":"string","enum":["length","newline"]},"mediaMaxMb":{"type":"number","minimum":0},"renderMode":{"type":"string","enum":["auto","raw","card"]},"accounts":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"name":{"type":"string"},"appId":{"type":"string"},"appSecret":{"type":"string"},"encryptKey":{"type":"string"},"verificationToken":{"type":"string"},"domain":{"type":"string","enum":["feishu","lark"]},"connectionMode":{"type":"string","enum":["websocket","webhook"]}}}}}}},"additionalProperties":true,"required":[]},"discovery":{"type":"object","properties":{"wideArea":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"mdns":{"type":"object","properties":{"mode":{"type":"string","enum":["off","minimal","full"]}},"additionalProperties":false}},"additionalProperties":false},"canvasHost":{"type":"object","properties":{"enabled":{"type":"boolean"},"root":{"type":"string"},"port":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"liveReload":{"type":"boolean"}},"additionalProperties":false},"talk":{"type":"object","properties":{"voiceId":{"type":"string"},"voiceAliases":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"modelId":{"type":"string"},"outputFormat":{"type":"string"},"apiKey":{"type":"string"},"interruptOnSpeech":{"type":"boolean"}},"additionalProperties":false},"gateway":{"type":"object","properties":{"port":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"mode":{"anyOf":[{"type":"string","const":"local"},{"type":"string","const":"remote"}]},"bind":{"anyOf":[{"type":"string","const":"auto"},{"type":"string","const":"lan"},{"type":"string","const":"loopback"},{"type":"string","const":"custom"},{"type":"string","const":"tailnet"}]},"controlUi":{"type":"object","properties":{"enabled":{"type":"boolean"},"basePath":{"type":"string"},"root":{"type":"string"},"allowedOrigins":{"type":"array","items":{"type":"string"}},"allowInsecureAuth":{"type":"boolean"},"dangerouslyDisableDeviceAuth":{"type":"boolean"}},"additionalProperties":false},"auth":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"token"},{"type":"string","const":"password"}]},"token":{"type":"string"},"password":{"type":"string"},"allowTailscale":{"type":"boolean"}},"additionalProperties":false},"trustedProxies":{"type":"array","items":{"type":"string"}},"tailscale":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"serve"},{"type":"string","const":"funnel"}]},"resetOnExit":{"type":"boolean"}},"additionalProperties":false},"remote":{"type":"object","properties":{"url":{"type":"string"},"transport":{"anyOf":[{"type":"string","const":"ssh"},{"type":"string","const":"direct"}]},"token":{"type":"string"},"password":{"type":"string"},"tlsFingerprint":{"type":"string"},"sshTarget":{"type":"string"},"sshIdentity":{"type":"string"}},"additionalProperties":false},"reload":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"off"},{"type":"string","const":"restart"},{"type":"string","const":"hot"},{"type":"string","const":"hybrid"}]},"debounceMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"tls":{"type":"object","properties":{"enabled":{"type":"boolean"},"autoGenerate":{"type":"boolean"},"certPath":{"type":"string"},"keyPath":{"type":"string"},"caPath":{"type":"string"}},"additionalProperties":false},"http":{"type":"object","properties":{"endpoints":{"type":"object","properties":{"chatCompletions":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"responses":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBodyBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"files":{"type":"object","properties":{"allowUrl":{"type":"boolean"},"allowedMimes":{"type":"array","items":{"type":"string"}},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxRedirects":{"type":"integer","minimum":0,"maximum":9007199254740991},"timeoutMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"pdf":{"type":"object","properties":{"maxPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxPixels":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minTextChars":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false},"images":{"type":"object","properties":{"allowUrl":{"type":"boolean"},"allowedMimes":{"type":"array","items":{"type":"string"}},"maxBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxRedirects":{"type":"integer","minimum":0,"maximum":9007199254740991},"timeoutMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"nodes":{"type":"object","properties":{"browser":{"type":"object","properties":{"mode":{"anyOf":[{"type":"string","const":"auto"},{"type":"string","const":"manual"},{"type":"string","const":"off"}]},"node":{"type":"string"}},"additionalProperties":false},"allowCommands":{"type":"array","items":{"type":"string"}},"denyCommands":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false},"memory":{"type":"object","properties":{"backend":{"anyOf":[{"type":"string","const":"builtin"},{"type":"string","const":"qmd"}]},"citations":{"anyOf":[{"type":"string","const":"auto"},{"type":"string","const":"on"},{"type":"string","const":"off"}]},"qmd":{"type":"object","properties":{"command":{"type":"string"},"includeDefaultMemory":{"type":"boolean"},"paths":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"name":{"type":"string"},"pattern":{"type":"string"}},"required":["path"],"additionalProperties":false}},"sessions":{"type":"object","properties":{"enabled":{"type":"boolean"},"exportDir":{"type":"string"},"retentionDays":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"update":{"type":"object","properties":{"interval":{"type":"string"},"debounceMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"onBoot":{"type":"boolean"},"waitForBootSync":{"type":"boolean"},"embedInterval":{"type":"string"},"commandTimeoutMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"updateTimeoutMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"embedTimeoutMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"limits":{"type":"object","properties":{"maxResults":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxSnippetChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxInjectedChars":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"timeoutMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"scope":{"type":"object","properties":{"default":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"rules":{"type":"array","items":{"type":"object","properties":{"action":{"anyOf":[{"type":"string","const":"allow"},{"type":"string","const":"deny"}]},"match":{"type":"object","properties":{"channel":{"type":"string"},"chatType":{"anyOf":[{"type":"string","const":"direct"},{"type":"string","const":"group"},{"type":"string","const":"channel"},{"type":"string","const":"dm"}]},"keyPrefix":{"type":"string"}},"additionalProperties":false}},"required":["action"],"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"skills":{"type":"object","properties":{"allowBundled":{"type":"array","items":{"type":"string"}},"load":{"type":"object","properties":{"extraDirs":{"type":"array","items":{"type":"string"}},"watch":{"type":"boolean"},"watchDebounceMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"install":{"type":"object","properties":{"preferBrew":{"type":"boolean"},"nodeManager":{"anyOf":[{"type":"string","const":"npm"},{"type":"string","const":"pnpm"},{"type":"string","const":"yarn"},{"type":"string","const":"bun"}]}},"additionalProperties":false},"entries":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"apiKey":{"type":"string"},"env":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"additionalProperties":false}}},"additionalProperties":false},"plugins":{"type":"object","properties":{"enabled":{"type":"boolean"},"allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}},"load":{"type":"object","properties":{"paths":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"slots":{"type":"object","properties":{"memory":{"type":"string"}},"additionalProperties":false},"entries":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"additionalProperties":false},"properties":{"feishu":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"bluebubbles":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"copilot-proxy":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"device-pair":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{"publicUrl":{"type":"string"}}}},"additionalProperties":false},"diagnostics-otel":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"discord":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"google-antigravity-auth":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"google-gemini-cli-auth":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"googlechat":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"imessage":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"line":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"llm-task":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{"defaultProvider":{"type":"string"},"defaultModel":{"type":"string"},"defaultAuthProfileId":{"type":"string"},"allowedModels":{"type":"array","items":{"type":"string"},"description":"Allowlist of provider/model keys like openai-codex/gpt-5.2."},"maxTokens":{"type":"number"},"timeoutMs":{"type":"number"}}}},"additionalProperties":false},"lobster":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"matrix":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"mattermost":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"memory-core":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"memory-lancedb":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{"embedding":{"type":"object","additionalProperties":false,"properties":{"apiKey":{"type":"string"},"model":{"type":"string","enum":["text-embedding-3-small","text-embedding-3-large"]}},"required":["apiKey"]},"dbPath":{"type":"string"},"autoCapture":{"type":"boolean"},"autoRecall":{"type":"boolean"}},"required":["embedding"]}},"additionalProperties":false},"minimax-portal-auth":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"msteams":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"nextcloud-talk":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"nostr":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"open-prose":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"phone-control":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"qwen-portal-auth":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"signal":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"slack":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"talk-voice":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"telegram":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"tlon":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"twitch":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"voice-call":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"provider":{"type":"string","enum":["telnyx","twilio","plivo","mock"]},"telnyx":{"type":"object","additionalProperties":false,"properties":{"apiKey":{"type":"string"},"connectionId":{"type":"string"},"publicKey":{"type":"string"}}},"twilio":{"type":"object","additionalProperties":false,"properties":{"accountSid":{"type":"string"},"authToken":{"type":"string"}}},"plivo":{"type":"object","additionalProperties":false,"properties":{"authId":{"type":"string"},"authToken":{"type":"string"}}},"fromNumber":{"type":"string","pattern":"^\\+[1-9]\\d{1,14}$"},"toNumber":{"type":"string","pattern":"^\\+[1-9]\\d{1,14}$"},"inboundPolicy":{"type":"string","enum":["disabled","allowlist","pairing","open"]},"allowFrom":{"type":"array","items":{"type":"string","pattern":"^\\+[1-9]\\d{1,14}$"}},"inboundGreeting":{"type":"string"},"outbound":{"type":"object","additionalProperties":false,"properties":{"defaultMode":{"type":"string","enum":["notify","conversation"]},"notifyHangupDelaySec":{"type":"integer","minimum":0}}},"maxDurationSeconds":{"type":"integer","minimum":1},"silenceTimeoutMs":{"type":"integer","minimum":1},"transcriptTimeoutMs":{"type":"integer","minimum":1},"ringTimeoutMs":{"type":"integer","minimum":1},"maxConcurrentCalls":{"type":"integer","minimum":1},"serve":{"type":"object","additionalProperties":false,"properties":{"port":{"type":"integer","minimum":1},"bind":{"type":"string"},"path":{"type":"string"}}},"tailscale":{"type":"object","additionalProperties":false,"properties":{"mode":{"type":"string","enum":["off","serve","funnel"]},"path":{"type":"string"}}},"tunnel":{"type":"object","additionalProperties":false,"properties":{"provider":{"type":"string","enum":["none","ngrok","tailscale-serve","tailscale-funnel"]},"ngrokAuthToken":{"type":"string"},"ngrokDomain":{"type":"string"},"allowNgrokFreeTierLoopbackBypass":{"type":"boolean"}}},"streaming":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"sttProvider":{"type":"string","enum":["openai-realtime"]},"openaiApiKey":{"type":"string"},"sttModel":{"type":"string"},"silenceDurationMs":{"type":"integer","minimum":1},"vadThreshold":{"type":"number","minimum":0,"maximum":1},"streamPath":{"type":"string"}}},"publicUrl":{"type":"string"},"skipSignatureVerification":{"type":"boolean"},"stt":{"type":"object","additionalProperties":false,"properties":{"provider":{"type":"string","enum":["openai"]},"model":{"type":"string"}}},"tts":{"type":"object","additionalProperties":false,"properties":{"auto":{"type":"string","enum":["off","always","inbound","tagged"]},"enabled":{"type":"boolean"},"mode":{"type":"string","enum":["final","all"]},"provider":{"type":"string","enum":["openai","elevenlabs","edge"]},"summaryModel":{"type":"string"},"modelOverrides":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"allowText":{"type":"boolean"},"allowProvider":{"type":"boolean"},"allowVoice":{"type":"boolean"},"allowModelId":{"type":"boolean"},"allowVoiceSettings":{"type":"boolean"},"allowNormalization":{"type":"boolean"},"allowSeed":{"type":"boolean"}}},"elevenlabs":{"type":"object","additionalProperties":false,"properties":{"apiKey":{"type":"string"},"baseUrl":{"type":"string"},"voiceId":{"type":"string"},"modelId":{"type":"string"},"seed":{"type":"integer","minimum":0,"maximum":4294967295},"applyTextNormalization":{"type":"string","enum":["auto","on","off"]},"languageCode":{"type":"string"},"voiceSettings":{"type":"object","additionalProperties":false,"properties":{"stability":{"type":"number","minimum":0,"maximum":1},"similarityBoost":{"type":"number","minimum":0,"maximum":1},"style":{"type":"number","minimum":0,"maximum":1},"useSpeakerBoost":{"type":"boolean"},"speed":{"type":"number","minimum":0.5,"maximum":2}}}}},"openai":{"type":"object","additionalProperties":false,"properties":{"apiKey":{"type":"string"},"model":{"type":"string"},"voice":{"type":"string"}}},"edge":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"voice":{"type":"string"},"lang":{"type":"string"},"outputFormat":{"type":"string"},"pitch":{"type":"string"},"rate":{"type":"string"},"volume":{"type":"string"},"saveSubtitles":{"type":"boolean"},"proxy":{"type":"string"},"timeoutMs":{"type":"integer","minimum":1000,"maximum":120000}}},"prefsPath":{"type":"string"},"maxTextLength":{"type":"integer","minimum":1},"timeoutMs":{"type":"integer","minimum":1000,"maximum":120000}}},"store":{"type":"string"},"responseModel":{"type":"string"},"responseSystemPrompt":{"type":"string"},"responseTimeoutMs":{"type":"integer","minimum":1}}}},"additionalProperties":false},"whatsapp":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"zalo":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false},"zalouser":{"type":"object","properties":{"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":false,"properties":{}}},"additionalProperties":false}}},"installs":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"source":{"anyOf":[{"type":"string","const":"npm"},{"type":"string","const":"archive"},{"type":"string","const":"path"}]},"spec":{"type":"string"},"sourcePath":{"type":"string"},"installPath":{"type":"string"},"version":{"type":"string"},"installedAt":{"type":"string"}},"required":["source"],"additionalProperties":false}}},"additionalProperties":false}},"required":["commands"],"additionalProperties":false,"title":"OpenClawConfig"},"uiHints":{"wizard":{"label":"Wizard","group":"Wizard","order":20},"update":{"label":"Update","group":"Update","order":25},"diagnostics":{"label":"Diagnostics","group":"Diagnostics","order":27},"logging":{"label":"Logging","group":"Logging","order":900},"gateway":{"label":"Gateway","group":"Gateway","order":30},"nodeHost":{"label":"Node Host","group":"Node Host","order":35},"agents":{"label":"Agents","group":"Agents","order":40},"tools":{"label":"Tools","group":"Tools","order":50},"bindings":{"label":"Bindings","group":"Bindings","order":55},"audio":{"label":"Audio","group":"Audio","order":60},"models":{"label":"Models","group":"Models","order":70},"messages":{"label":"Messages","group":"Messages","order":80},"commands":{"label":"Commands","group":"Commands","order":85},"session":{"label":"Session","group":"Session","order":90},"cron":{"label":"Cron","group":"Cron","order":100},"hooks":{"label":"Hooks","group":"Hooks","order":110},"ui":{"label":"UI","group":"UI","order":120},"browser":{"label":"Browser","group":"Browser","order":130},"talk":{"label":"Talk","group":"Talk","order":140},"channels":{"label":"Messaging Channels","group":"Messaging Channels","order":150},"skills":{"label":"Skills","group":"Skills","order":200},"plugins":{"label":"Plugins","group":"Plugins","order":205},"discovery":{"label":"Discovery","group":"Discovery","order":210},"presence":{"label":"Presence","group":"Presence","order":220},"voicewake":{"label":"Voice Wake","group":"Voice Wake","order":230},"meta.lastTouchedVersion":{"label":"Config Last Touched Version","help":"Auto-set when OpenClaw writes the config."},"meta.lastTouchedAt":{"label":"Config Last Touched At","help":"ISO timestamp of the last config write (auto-set)."},"update.channel":{"label":"Update Channel","help":"Update channel for git + npm installs (\"stable\", \"beta\", or \"dev\")."},"update.checkOnStart":{"label":"Update Check on Start","help":"Check for npm updates when the gateway starts (default: true)."},"diagnostics.enabled":{"label":"Diagnostics Enabled"},"diagnostics.flags":{"label":"Diagnostics Flags","help":"Enable targeted diagnostics logs by flag (e.g. [\"telegram.http\"]). Supports wildcards like \"telegram.*\" or \"*\"."},"diagnostics.otel.enabled":{"label":"OpenTelemetry Enabled"},"diagnostics.otel.endpoint":{"label":"OpenTelemetry Endpoint"},"diagnostics.otel.protocol":{"label":"OpenTelemetry Protocol"},"diagnostics.otel.headers":{"label":"OpenTelemetry Headers"},"diagnostics.otel.serviceName":{"label":"OpenTelemetry Service Name"},"diagnostics.otel.traces":{"label":"OpenTelemetry Traces Enabled"},"diagnostics.otel.metrics":{"label":"OpenTelemetry Metrics Enabled"},"diagnostics.otel.logs":{"label":"OpenTelemetry Logs Enabled"},"diagnostics.otel.sampleRate":{"label":"OpenTelemetry Trace Sample Rate"},"diagnostics.otel.flushIntervalMs":{"label":"OpenTelemetry Flush Interval (ms)"},"diagnostics.cacheTrace.enabled":{"label":"Cache Trace Enabled","help":"Log cache trace snapshots for embedded agent runs (default: false)."},"diagnostics.cacheTrace.filePath":{"label":"Cache Trace File Path","help":"JSONL output path for cache trace logs (default: $OPENCLAW_STATE_DIR/logs/cache-trace.jsonl)."},"diagnostics.cacheTrace.includeMessages":{"label":"Cache Trace Include Messages","help":"Include full message payloads in trace output (default: true)."},"diagnostics.cacheTrace.includePrompt":{"label":"Cache Trace Include Prompt","help":"Include prompt text in trace output (default: true)."},"diagnostics.cacheTrace.includeSystem":{"label":"Cache Trace Include System","help":"Include system prompt in trace output (default: true)."},"agents.list.*.identity.avatar":{"label":"Identity Avatar","help":"Agent avatar (workspace-relative path, http(s) URL, or data URI)."},"agents.list.*.skills":{"label":"Agent Skill Filter","help":"Optional allowlist of skills for this agent (omit = all skills; empty = no skills)."},"gateway.remote.url":{"label":"Remote Gateway URL","help":"Remote Gateway WebSocket URL (ws:// or wss://).","placeholder":"ws://host:18789"},"gateway.remote.sshTarget":{"label":"Remote Gateway SSH Target","help":"Remote gateway over SSH (tunnels the gateway port to localhost). Format: user@host or user@host:port.","placeholder":"user@host"},"gateway.remote.sshIdentity":{"label":"Remote Gateway SSH Identity","help":"Optional SSH identity file path (passed to ssh -i)."},"gateway.remote.token":{"label":"Remote Gateway Token","sensitive":true},"gateway.remote.password":{"label":"Remote Gateway Password","sensitive":true},"gateway.remote.tlsFingerprint":{"label":"Remote Gateway TLS Fingerprint","help":"Expected sha256 TLS fingerprint for the remote gateway (pin to avoid MITM).","placeholder":"sha256:ab12cd34…"},"gateway.auth.token":{"label":"Gateway Token","help":"Required by default for gateway access (unless using Tailscale Serve identity); required for non-loopback binds.","sensitive":true},"gateway.auth.password":{"label":"Gateway Password","help":"Required for Tailscale funnel.","sensitive":true},"tools.media.image.enabled":{"label":"Enable Image Understanding"},"tools.media.image.maxBytes":{"label":"Image Understanding Max Bytes"},"tools.media.image.maxChars":{"label":"Image Understanding Max Chars"},"tools.media.image.prompt":{"label":"Image Understanding Prompt"},"tools.media.image.timeoutSeconds":{"label":"Image Understanding Timeout (sec)"},"tools.media.image.attachments":{"label":"Image Understanding Attachment Policy"},"tools.media.image.models":{"label":"Image Understanding Models"},"tools.media.image.scope":{"label":"Image Understanding Scope"},"tools.media.models":{"label":"Media Understanding Shared Models"},"tools.media.concurrency":{"label":"Media Understanding Concurrency"},"tools.media.audio.enabled":{"label":"Enable Audio Understanding"},"tools.media.audio.maxBytes":{"label":"Audio Understanding Max Bytes"},"tools.media.audio.maxChars":{"label":"Audio Understanding Max Chars"},"tools.media.audio.prompt":{"label":"Audio Understanding Prompt"},"tools.media.audio.timeoutSeconds":{"label":"Audio Understanding Timeout (sec)"},"tools.media.audio.language":{"label":"Audio Understanding Language"},"tools.media.audio.attachments":{"label":"Audio Understanding Attachment Policy"},"tools.media.audio.models":{"label":"Audio Understanding Models"},"tools.media.audio.scope":{"label":"Audio Understanding Scope"},"tools.media.video.enabled":{"label":"Enable Video Understanding"},"tools.media.video.maxBytes":{"label":"Video Understanding Max Bytes"},"tools.media.video.maxChars":{"label":"Video Understanding Max Chars"},"tools.media.video.prompt":{"label":"Video Understanding Prompt"},"tools.media.video.timeoutSeconds":{"label":"Video Understanding Timeout (sec)"},"tools.media.video.attachments":{"label":"Video Understanding Attachment Policy"},"tools.media.video.models":{"label":"Video Understanding Models"},"tools.media.video.scope":{"label":"Video Understanding Scope"},"tools.links.enabled":{"label":"Enable Link Understanding"},"tools.links.maxLinks":{"label":"Link Understanding Max Links"},"tools.links.timeoutSeconds":{"label":"Link Understanding Timeout (sec)"},"tools.links.models":{"label":"Link Understanding Models"},"tools.links.scope":{"label":"Link Understanding Scope"},"tools.profile":{"label":"Tool Profile"},"tools.alsoAllow":{"label":"Tool Allowlist Additions"},"agents.list[].tools.profile":{"label":"Agent Tool Profile"},"agents.list[].tools.alsoAllow":{"label":"Agent Tool Allowlist Additions"},"tools.byProvider":{"label":"Tool Policy by Provider"},"agents.list[].tools.byProvider":{"label":"Agent Tool Policy by Provider"},"tools.exec.applyPatch.enabled":{"label":"Enable apply_patch","help":"Experimental. Enables apply_patch for OpenAI models when allowed by tool policy."},"tools.exec.applyPatch.allowModels":{"label":"apply_patch Model Allowlist","help":"Optional allowlist of model ids (e.g. \"gpt-5.2\" or \"openai/gpt-5.2\")."},"tools.exec.notifyOnExit":{"label":"Exec Notify On Exit","help":"When true (default), backgrounded exec sessions enqueue a system event and request a heartbeat on exit."},"tools.exec.approvalRunningNoticeMs":{"label":"Exec Approval Running Notice (ms)"},"tools.exec.host":{"label":"Exec Host"},"tools.exec.security":{"label":"Exec Security"},"tools.exec.ask":{"label":"Exec Ask"},"tools.exec.node":{"label":"Exec Node Binding"},"tools.exec.pathPrepend":{"label":"Exec PATH Prepend","help":"Directories to prepend to PATH for exec runs (gateway/sandbox)."},"tools.exec.safeBins":{"label":"Exec Safe Bins","help":"Allow stdin-only safe binaries to run without explicit allowlist entries."},"tools.message.allowCrossContextSend":{"label":"Allow Cross-Context Messaging","help":"Legacy override: allow cross-context sends across all providers."},"tools.message.crossContext.allowWithinProvider":{"label":"Allow Cross-Context (Same Provider)","help":"Allow sends to other channels within the same provider (default: true)."},"tools.message.crossContext.allowAcrossProviders":{"label":"Allow Cross-Context (Across Providers)","help":"Allow sends across different providers (default: false)."},"tools.message.crossContext.marker.enabled":{"label":"Cross-Context Marker","help":"Add a visible origin marker when sending cross-context (default: true)."},"tools.message.crossContext.marker.prefix":{"label":"Cross-Context Marker Prefix","help":"Text prefix for cross-context markers (supports \"{channel}\")."},"tools.message.crossContext.marker.suffix":{"label":"Cross-Context Marker Suffix","help":"Text suffix for cross-context markers (supports \"{channel}\")."},"tools.message.broadcast.enabled":{"label":"Enable Message Broadcast","help":"Enable broadcast action (default: true)."},"tools.web.search.enabled":{"label":"Enable Web Search Tool","help":"Enable the web_search tool (requires a provider API key)."},"tools.web.search.provider":{"label":"Web Search Provider","help":"Search provider (\"brave\" or \"perplexity\")."},"tools.web.search.apiKey":{"label":"Brave Search API Key","help":"Brave Search API key (fallback: BRAVE_API_KEY env var).","sensitive":true},"tools.web.search.maxResults":{"label":"Web Search Max Results","help":"Default number of results to return (1-10)."},"tools.web.search.timeoutSeconds":{"label":"Web Search Timeout (sec)","help":"Timeout in seconds for web_search requests."},"tools.web.search.cacheTtlMinutes":{"label":"Web Search Cache TTL (min)","help":"Cache TTL in minutes for web_search results."},"tools.web.fetch.enabled":{"label":"Enable Web Fetch Tool","help":"Enable the web_fetch tool (lightweight HTTP fetch)."},"tools.web.fetch.maxChars":{"label":"Web Fetch Max Chars","help":"Max characters returned by web_fetch (truncated)."},"tools.web.fetch.timeoutSeconds":{"label":"Web Fetch Timeout (sec)","help":"Timeout in seconds for web_fetch requests."},"tools.web.fetch.cacheTtlMinutes":{"label":"Web Fetch Cache TTL (min)","help":"Cache TTL in minutes for web_fetch results."},"tools.web.fetch.maxRedirects":{"label":"Web Fetch Max Redirects","help":"Maximum redirects allowed for web_fetch (default: 3)."},"tools.web.fetch.userAgent":{"label":"Web Fetch User-Agent","help":"Override User-Agent header for web_fetch requests."},"gateway.controlUi.basePath":{"label":"Control UI Base Path","help":"Optional URL prefix where the Control UI is served (e.g. /openclaw).","placeholder":"/openclaw"},"gateway.controlUi.root":{"label":"Control UI Assets Root","help":"Optional filesystem root for Control UI assets (defaults to dist/control-ui).","placeholder":"dist/control-ui"},"gateway.controlUi.allowedOrigins":{"label":"Control UI Allowed Origins","help":"Allowed browser origins for Control UI/WebChat websocket connections (full origins only, e.g. https://control.example.com).","placeholder":"https://control.example.com"},"gateway.controlUi.allowInsecureAuth":{"label":"Allow Insecure Control UI Auth","help":"Allow Control UI auth over insecure HTTP (token-only; not recommended)."},"gateway.controlUi.dangerouslyDisableDeviceAuth":{"label":"Dangerously Disable Control UI Device Auth","help":"DANGEROUS. Disable Control UI device identity checks (token/password only)."},"gateway.http.endpoints.chatCompletions.enabled":{"label":"OpenAI Chat Completions Endpoint","help":"Enable the OpenAI-compatible `POST /v1/chat/completions` endpoint (default: false)."},"gateway.reload.mode":{"label":"Config Reload Mode","help":"Hot reload strategy for config changes (\"hybrid\" recommended)."},"gateway.reload.debounceMs":{"label":"Config Reload Debounce (ms)","help":"Debounce window (ms) before applying config changes."},"gateway.nodes.browser.mode":{"label":"Gateway Node Browser Mode","help":"Node browser routing (\"auto\" = pick single connected browser node, \"manual\" = require node param, \"off\" = disable)."},"gateway.nodes.browser.node":{"label":"Gateway Node Browser Pin","help":"Pin browser routing to a specific node id or name (optional)."},"gateway.nodes.allowCommands":{"label":"Gateway Node Allowlist (Extra Commands)","help":"Extra node.invoke commands to allow beyond the gateway defaults (array of command strings)."},"gateway.nodes.denyCommands":{"label":"Gateway Node Denylist","help":"Commands to block even if present in node claims or default allowlist."},"nodeHost.browserProxy.enabled":{"label":"Node Browser Proxy Enabled","help":"Expose the local browser control server via node proxy."},"nodeHost.browserProxy.allowProfiles":{"label":"Node Browser Proxy Allowed Profiles","help":"Optional allowlist of browser profile names exposed via the node proxy."},"skills.load.watch":{"label":"Watch Skills"},"skills.load.watchDebounceMs":{"label":"Skills Watch Debounce (ms)"},"agents.defaults.workspace":{"label":"Workspace"},"agents.defaults.repoRoot":{"label":"Repo Root","help":"Optional repository root shown in the system prompt runtime line (overrides auto-detect)."},"agents.defaults.bootstrapMaxChars":{"label":"Bootstrap Max Chars","help":"Max characters of each workspace bootstrap file injected into the system prompt before truncation (default: 20000)."},"agents.defaults.envelopeTimezone":{"label":"Envelope Timezone","help":"Timezone for message envelopes (\"utc\", \"local\", \"user\", or an IANA timezone string)."},"agents.defaults.envelopeTimestamp":{"label":"Envelope Timestamp","help":"Include absolute timestamps in message envelopes (\"on\" or \"off\")."},"agents.defaults.envelopeElapsed":{"label":"Envelope Elapsed","help":"Include elapsed time in message envelopes (\"on\" or \"off\")."},"agents.defaults.memorySearch":{"label":"Memory Search","help":"Vector search over MEMORY.md and memory/*.md (per-agent overrides supported)."},"agents.defaults.memorySearch.enabled":{"label":"Enable Memory Search"},"agents.defaults.memorySearch.sources":{"label":"Memory Search Sources","help":"Sources to index for memory search (default: [\"memory\"]; add \"sessions\" to include session transcripts)."},"agents.defaults.memorySearch.extraPaths":{"label":"Extra Memory Paths","help":"Extra paths to include in memory search (directories or .md files; relative paths resolved from workspace)."},"agents.defaults.memorySearch.experimental.sessionMemory":{"label":"Memory Search Session Index (Experimental)","help":"Enable experimental session transcript indexing for memory search (default: false)."},"agents.defaults.memorySearch.provider":{"label":"Memory Search Provider","help":"Embedding provider (\"openai\", \"gemini\", \"voyage\", or \"local\")."},"agents.defaults.memorySearch.remote.baseUrl":{"label":"Remote Embedding Base URL","help":"Custom base URL for remote embeddings (OpenAI-compatible proxies or Gemini overrides)."},"agents.defaults.memorySearch.remote.apiKey":{"label":"Remote Embedding API Key","help":"Custom API key for the remote embedding provider.","sensitive":true},"agents.defaults.memorySearch.remote.headers":{"label":"Remote Embedding Headers","help":"Extra headers for remote embeddings (merged; remote overrides OpenAI headers)."},"agents.defaults.memorySearch.remote.batch.concurrency":{"label":"Remote Batch Concurrency","help":"Max concurrent embedding batch jobs for memory indexing (default: 2)."},"agents.defaults.memorySearch.model":{"label":"Memory Search Model"},"agents.defaults.memorySearch.fallback":{"label":"Memory Search Fallback","help":"Fallback provider when embeddings fail (\"openai\", \"gemini\", \"local\", or \"none\")."},"agents.defaults.memorySearch.local.modelPath":{"label":"Local Embedding Model Path","help":"Local GGUF model path or hf: URI (node-llama-cpp)."},"agents.defaults.memorySearch.store.path":{"label":"Memory Search Index Path","help":"SQLite index path (default: ~/.openclaw/memory/{agentId}.sqlite)."},"agents.defaults.memorySearch.store.vector.enabled":{"label":"Memory Search Vector Index","help":"Enable sqlite-vec extension for vector search (default: true)."},"agents.defaults.memorySearch.store.vector.extensionPath":{"label":"Memory Search Vector Extension Path","help":"Optional override path to sqlite-vec extension library (.dylib/.so/.dll)."},"agents.defaults.memorySearch.chunking.tokens":{"label":"Memory Chunk Tokens","sensitive":true},"agents.defaults.memorySearch.chunking.overlap":{"label":"Memory Chunk Overlap Tokens"},"agents.defaults.memorySearch.sync.onSessionStart":{"label":"Index on Session Start"},"agents.defaults.memorySearch.sync.onSearch":{"label":"Index on Search (Lazy)","help":"Lazy sync: schedule a reindex on search after changes."},"agents.defaults.memorySearch.sync.watch":{"label":"Watch Memory Files","help":"Watch memory files for changes (chokidar)."},"agents.defaults.memorySearch.sync.watchDebounceMs":{"label":"Memory Watch Debounce (ms)"},"agents.defaults.memorySearch.sync.sessions.deltaBytes":{"label":"Session Delta Bytes","help":"Minimum appended bytes before session transcripts trigger reindex (default: 100000)."},"agents.defaults.memorySearch.sync.sessions.deltaMessages":{"label":"Session Delta Messages","help":"Minimum appended JSONL lines before session transcripts trigger reindex (default: 50)."},"agents.defaults.memorySearch.query.maxResults":{"label":"Memory Search Max Results"},"agents.defaults.memorySearch.query.minScore":{"label":"Memory Search Min Score"},"agents.defaults.memorySearch.query.hybrid.enabled":{"label":"Memory Search Hybrid","help":"Enable hybrid BM25 + vector search for memory (default: true)."},"agents.defaults.memorySearch.query.hybrid.vectorWeight":{"label":"Memory Search Vector Weight","help":"Weight for vector similarity when merging results (0-1)."},"agents.defaults.memorySearch.query.hybrid.textWeight":{"label":"Memory Search Text Weight","help":"Weight for BM25 text relevance when merging results (0-1)."},"agents.defaults.memorySearch.query.hybrid.candidateMultiplier":{"label":"Memory Search Hybrid Candidate Multiplier","help":"Multiplier for candidate pool size (default: 4)."},"agents.defaults.memorySearch.cache.enabled":{"label":"Memory Search Embedding Cache","help":"Cache chunk embeddings in SQLite to speed up reindexing and frequent updates (default: true)."},"agents.defaults.memorySearch.cache.maxEntries":{"label":"Memory Search Embedding Cache Max Entries","help":"Optional cap on cached embeddings (best-effort)."},"memory":{"label":"Memory","help":"Memory backend configuration (global)."},"memory.backend":{"label":"Memory Backend","help":"Memory backend (\"builtin\" for OpenClaw embeddings, \"qmd\" for QMD sidecar)."},"memory.citations":{"label":"Memory Citations Mode","help":"Default citation behavior (\"auto\", \"on\", or \"off\")."},"memory.qmd.command":{"label":"QMD Binary","help":"Path to the qmd binary (default: resolves from PATH)."},"memory.qmd.includeDefaultMemory":{"label":"QMD Include Default Memory","help":"Whether to automatically index MEMORY.md + memory/**/*.md (default: true)."},"memory.qmd.paths":{"label":"QMD Extra Paths","help":"Additional directories/files to index with QMD (path + optional glob pattern)."},"memory.qmd.paths.path":{"label":"QMD Path","help":"Absolute or ~-relative path to index via QMD."},"memory.qmd.paths.pattern":{"label":"QMD Path Pattern","help":"Glob pattern relative to the path root (default: **/*.md)."},"memory.qmd.paths.name":{"label":"QMD Path Name","help":"Optional stable name for the QMD collection (default derived from path)."},"memory.qmd.sessions.enabled":{"label":"QMD Session Indexing","help":"Enable QMD session transcript indexing (experimental, default: false)."},"memory.qmd.sessions.exportDir":{"label":"QMD Session Export Directory","help":"Override directory for sanitized session exports before indexing."},"memory.qmd.sessions.retentionDays":{"label":"QMD Session Retention (days)","help":"Retention window for exported sessions before pruning (default: unlimited)."},"memory.qmd.update.interval":{"label":"QMD Update Interval","help":"How often the QMD sidecar refreshes indexes (duration string, default: 5m)."},"memory.qmd.update.debounceMs":{"label":"QMD Update Debounce (ms)","help":"Minimum delay between successive QMD refresh runs (default: 15000)."},"memory.qmd.update.onBoot":{"label":"QMD Update on Startup","help":"Run QMD update once on gateway startup (default: true)."},"memory.qmd.update.waitForBootSync":{"label":"QMD Wait for Boot Sync","help":"Block startup until the boot QMD refresh finishes (default: false)."},"memory.qmd.update.embedInterval":{"label":"QMD Embed Interval","help":"How often QMD embeddings are refreshed (duration string, default: 60m). Set to 0 to disable periodic embed."},"memory.qmd.update.commandTimeoutMs":{"label":"QMD Command Timeout (ms)","help":"Timeout for QMD maintenance commands like collection list/add (default: 30000)."},"memory.qmd.update.updateTimeoutMs":{"label":"QMD Update Timeout (ms)","help":"Timeout for `qmd update` runs (default: 120000)."},"memory.qmd.update.embedTimeoutMs":{"label":"QMD Embed Timeout (ms)","help":"Timeout for `qmd embed` runs (default: 120000)."},"memory.qmd.limits.maxResults":{"label":"QMD Max Results","help":"Max QMD results returned to the agent loop (default: 6)."},"memory.qmd.limits.maxSnippetChars":{"label":"QMD Max Snippet Chars","help":"Max characters per snippet pulled from QMD (default: 700)."},"memory.qmd.limits.maxInjectedChars":{"label":"QMD Max Injected Chars","help":"Max total characters injected from QMD hits per turn."},"memory.qmd.limits.timeoutMs":{"label":"QMD Search Timeout (ms)","help":"Per-query timeout for QMD searches (default: 4000)."},"memory.qmd.scope":{"label":"QMD Surface Scope","help":"Session/channel scope for QMD recall (same syntax as session.sendPolicy; default: direct-only)."},"auth.profiles":{"label":"Auth Profiles","help":"Named auth profiles (provider + mode + optional email)."},"auth.order":{"label":"Auth Profile Order","help":"Ordered auth profile IDs per provider (used for automatic failover)."},"auth.cooldowns.billingBackoffHours":{"label":"Billing Backoff (hours)","help":"Base backoff (hours) when a profile fails due to billing/insufficient credits (default: 5)."},"auth.cooldowns.billingBackoffHoursByProvider":{"label":"Billing Backoff Overrides","help":"Optional per-provider overrides for billing backoff (hours)."},"auth.cooldowns.billingMaxHours":{"label":"Billing Backoff Cap (hours)","help":"Cap (hours) for billing backoff (default: 24)."},"auth.cooldowns.failureWindowHours":{"label":"Failover Window (hours)","help":"Failure window (hours) for backoff counters (default: 24)."},"agents.defaults.models":{"label":"Models","help":"Configured model catalog (keys are full provider/model IDs)."},"agents.defaults.model.primary":{"label":"Primary Model","help":"Primary model (provider/model)."},"agents.defaults.model.fallbacks":{"label":"Model Fallbacks","help":"Ordered fallback models (provider/model). Used when the primary model fails."},"agents.defaults.imageModel.primary":{"label":"Image Model","help":"Optional image model (provider/model) used when the primary model lacks image input."},"agents.defaults.imageModel.fallbacks":{"label":"Image Model Fallbacks","help":"Ordered fallback image models (provider/model)."},"agents.defaults.humanDelay.mode":{"label":"Human Delay Mode","help":"Delay style for block replies (\"off\", \"natural\", \"custom\")."},"agents.defaults.humanDelay.minMs":{"label":"Human Delay Min (ms)","help":"Minimum delay in ms for custom humanDelay (default: 800)."},"agents.defaults.humanDelay.maxMs":{"label":"Human Delay Max (ms)","help":"Maximum delay in ms for custom humanDelay (default: 2500)."},"agents.defaults.cliBackends":{"label":"CLI Backends","help":"Optional CLI backends for text-only fallback (claude-cli, etc.)."},"commands.native":{"label":"Native Commands","help":"Register native commands with channels that support it (Discord/Slack/Telegram)."},"commands.nativeSkills":{"label":"Native Skill Commands","help":"Register native skill commands (user-invocable skills) with channels that support it."},"commands.text":{"label":"Text Commands","help":"Allow text command parsing (slash commands only)."},"commands.bash":{"label":"Allow Bash Chat Command","help":"Allow bash chat command (`!`; `/bash` alias) to run host shell commands (default: false; requires tools.elevated)."},"commands.bashForegroundMs":{"label":"Bash Foreground Window (ms)","help":"How long bash waits before backgrounding (default: 2000; 0 backgrounds immediately)."},"commands.config":{"label":"Allow /config","help":"Allow /config chat command to read/write config on disk (default: false)."},"commands.debug":{"label":"Allow /debug","help":"Allow /debug chat command for runtime-only overrides (default: false)."},"commands.restart":{"label":"Allow Restart","help":"Allow /restart and gateway restart tool actions (default: false)."},"commands.useAccessGroups":{"label":"Use Access Groups","help":"Enforce access-group allowlists/policies for commands."},"commands.ownerAllowFrom":{"label":"Command Owners","help":"Explicit owner allowlist for owner-only tools/commands. Use channel-native IDs (optionally prefixed like \"whatsapp:+15551234567\"). '*' is ignored."},"ui.seamColor":{"label":"Accent Color"},"ui.assistant.name":{"label":"Assistant Name"},"ui.assistant.avatar":{"label":"Assistant Avatar"},"browser.evaluateEnabled":{"label":"Browser Evaluate Enabled"},"browser.snapshotDefaults":{"label":"Browser Snapshot Defaults"},"browser.snapshotDefaults.mode":{"label":"Browser Snapshot Mode"},"browser.remoteCdpTimeoutMs":{"label":"Remote CDP Timeout (ms)"},"browser.remoteCdpHandshakeTimeoutMs":{"label":"Remote CDP Handshake Timeout (ms)"},"session.dmScope":{"label":"DM Session Scope","help":"DM session scoping: \"main\" keeps continuity; \"per-peer\", \"per-channel-peer\", or \"per-account-channel-peer\" isolates DM history (recommended for shared inboxes/multi-account)."},"session.agentToAgent.maxPingPongTurns":{"label":"Agent-to-Agent Ping-Pong Turns","help":"Max reply-back turns between requester and target (0–5)."},"messages.ackReaction":{"label":"Ack Reaction Emoji","help":"Emoji reaction used to acknowledge inbound messages (empty disables)."},"messages.ackReactionScope":{"label":"Ack Reaction Scope","help":"When to send ack reactions (\"group-mentions\", \"group-all\", \"direct\", \"all\")."},"messages.inbound.debounceMs":{"label":"Inbound Message Debounce (ms)","help":"Debounce window (ms) for batching rapid inbound messages from the same sender (0 to disable)."},"talk.apiKey":{"label":"Talk API Key","sensitive":true},"channels.whatsapp":{"label":"WhatsApp"},"channels.telegram":{"label":"Telegram"},"channels.telegram.customCommands":{"label":"Telegram Custom Commands","help":"Additional Telegram bot menu commands (merged with native; conflicts ignored)."},"channels.discord":{"label":"Discord"},"channels.slack":{"label":"Slack"},"channels.mattermost":{"label":"Mattermost"},"channels.signal":{"label":"Signal"},"channels.imessage":{"label":"iMessage"},"channels.bluebubbles":{"label":"BlueBubbles"},"channels.msteams":{"label":"MS Teams"},"channels.telegram.botToken":{"label":"Telegram Bot Token","sensitive":true},"channels.telegram.dmPolicy":{"label":"Telegram DM Policy","help":"Direct message access control (\"pairing\" recommended). \"open\" requires channels.telegram.allowFrom=[\"*\"]."},"channels.telegram.streamMode":{"label":"Telegram Draft Stream Mode","help":"Draft streaming mode for Telegram replies (off | partial | block). Separate from block streaming; requires private topics + sendMessageDraft."},"channels.telegram.draftChunk.minChars":{"label":"Telegram Draft Chunk Min Chars","help":"Minimum chars before emitting a Telegram draft update when channels.telegram.streamMode=\"block\" (default: 200)."},"channels.telegram.draftChunk.maxChars":{"label":"Telegram Draft Chunk Max Chars","help":"Target max size for a Telegram draft update chunk when channels.telegram.streamMode=\"block\" (default: 800; clamped to channels.telegram.textChunkLimit)."},"channels.telegram.draftChunk.breakPreference":{"label":"Telegram Draft Chunk Break Preference","help":"Preferred breakpoints for Telegram draft chunks (paragraph | newline | sentence). Default: paragraph."},"channels.telegram.retry.attempts":{"label":"Telegram Retry Attempts","help":"Max retry attempts for outbound Telegram API calls (default: 3)."},"channels.telegram.retry.minDelayMs":{"label":"Telegram Retry Min Delay (ms)","help":"Minimum retry delay in ms for Telegram outbound calls."},"channels.telegram.retry.maxDelayMs":{"label":"Telegram Retry Max Delay (ms)","help":"Maximum retry delay cap in ms for Telegram outbound calls."},"channels.telegram.retry.jitter":{"label":"Telegram Retry Jitter","help":"Jitter factor (0-1) applied to Telegram retry delays."},"channels.telegram.network.autoSelectFamily":{"label":"Telegram autoSelectFamily","help":"Override Node autoSelectFamily for Telegram (true=enable, false=disable)."},"channels.telegram.timeoutSeconds":{"label":"Telegram API Timeout (seconds)","help":"Max seconds before Telegram API requests are aborted (default: 500 per grammY)."},"channels.telegram.capabilities.inlineButtons":{"label":"Telegram Inline Buttons"},"channels.whatsapp.dmPolicy":{"label":"WhatsApp DM Policy","help":"Direct message access control (\"pairing\" recommended). \"open\" requires channels.whatsapp.allowFrom=[\"*\"]."},"channels.whatsapp.selfChatMode":{"label":"WhatsApp Self-Phone Mode","help":"Same-phone setup (bot uses your personal WhatsApp number)."},"channels.whatsapp.debounceMs":{"label":"WhatsApp Message Debounce (ms)","help":"Debounce window (ms) for batching rapid consecutive messages from the same sender (0 to disable)."},"channels.signal.dmPolicy":{"label":"Signal DM Policy","help":"Direct message access control (\"pairing\" recommended). \"open\" requires channels.signal.allowFrom=[\"*\"]."},"channels.imessage.dmPolicy":{"label":"iMessage DM Policy","help":"Direct message access control (\"pairing\" recommended). \"open\" requires channels.imessage.allowFrom=[\"*\"]."},"channels.bluebubbles.dmPolicy":{"label":"BlueBubbles DM Policy","help":"Direct message access control (\"pairing\" recommended). \"open\" requires channels.bluebubbles.allowFrom=[\"*\"]."},"channels.discord.dm.policy":{"label":"Discord DM Policy","help":"Direct message access control (\"pairing\" recommended). \"open\" requires channels.discord.dm.allowFrom=[\"*\"]."},"channels.discord.retry.attempts":{"label":"Discord Retry Attempts","help":"Max retry attempts for outbound Discord API calls (default: 3)."},"channels.discord.retry.minDelayMs":{"label":"Discord Retry Min Delay (ms)","help":"Minimum retry delay in ms for Discord outbound calls."},"channels.discord.retry.maxDelayMs":{"label":"Discord Retry Max Delay (ms)","help":"Maximum retry delay cap in ms for Discord outbound calls."},"channels.discord.retry.jitter":{"label":"Discord Retry Jitter","help":"Jitter factor (0-1) applied to Discord retry delays."},"channels.discord.maxLinesPerMessage":{"label":"Discord Max Lines Per Message","help":"Soft max line count per Discord message (default: 17)."},"channels.discord.intents.presence":{"label":"Discord Presence Intent","help":"Enable the Guild Presences privileged intent. Must also be enabled in the Discord Developer Portal. Allows tracking user activities (e.g. Spotify). Default: false."},"channels.discord.intents.guildMembers":{"label":"Discord Guild Members Intent","help":"Enable the Guild Members privileged intent. Must also be enabled in the Discord Developer Portal. Default: false."},"channels.discord.pluralkit.enabled":{"label":"Discord PluralKit Enabled","help":"Resolve PluralKit proxied messages and treat system members as distinct senders."},"channels.discord.pluralkit.token":{"label":"Discord PluralKit Token","help":"Optional PluralKit token for resolving private systems or members.","sensitive":true},"channels.slack.dm.policy":{"label":"Slack DM Policy","help":"Direct message access control (\"pairing\" recommended). \"open\" requires channels.slack.dm.allowFrom=[\"*\"]."},"channels.slack.allowBots":{"label":"Slack Allow Bot Messages","help":"Allow bot-authored messages to trigger Slack replies (default: false)."},"channels.discord.token":{"label":"Discord Bot Token","sensitive":true},"channels.slack.botToken":{"label":"Slack Bot Token","sensitive":true},"channels.slack.appToken":{"label":"Slack App Token","sensitive":true},"channels.slack.userToken":{"label":"Slack User Token","sensitive":true},"channels.slack.userTokenReadOnly":{"label":"Slack User Token Read Only","sensitive":true},"channels.slack.thread.historyScope":{"label":"Slack Thread History Scope","help":"Scope for Slack thread history context (\"thread\" isolates per thread; \"channel\" reuses channel history)."},"channels.slack.thread.inheritParent":{"label":"Slack Thread Parent Inheritance","help":"If true, Slack thread sessions inherit the parent channel transcript (default: false)."},"channels.mattermost.botToken":{"label":"Mattermost Bot Token","help":"Bot token from Mattermost System Console -> Integrations -> Bot Accounts.","sensitive":true},"channels.mattermost.baseUrl":{"label":"Mattermost Base URL","help":"Base URL for your Mattermost server (e.g., https://chat.example.com).","placeholder":"https://chat.example.com"},"channels.mattermost.chatmode":{"label":"Mattermost Chat Mode","help":"Reply to channel messages on mention (\"oncall\"), on trigger chars (\">\" or \"!\") (\"onchar\"), or on every message (\"onmessage\")."},"channels.mattermost.oncharPrefixes":{"label":"Mattermost Onchar Prefixes","help":"Trigger prefixes for onchar mode (default: [\">\", \"!\"])."},"channels.mattermost.requireMention":{"label":"Mattermost Require Mention","help":"Require @mention in channels before responding (default: true)."},"channels.signal.account":{"label":"Signal Account"},"channels.imessage.cliPath":{"label":"iMessage CLI Path"},"agents.list[].skills":{"label":"Agent Skill Filter","help":"Optional allowlist of skills for this agent (omit = all skills; empty = no skills)."},"agents.list[].identity.avatar":{"label":"Agent Avatar","help":"Avatar image path (relative to the agent workspace only) or a remote URL/data URL.","placeholder":"avatars/openclaw.png"},"discovery.mdns.mode":{"label":"mDNS Discovery Mode","help":"mDNS broadcast mode (\"minimal\" default, \"full\" includes cliPath/sshPort, \"off\" disables mDNS)."},"plugins.enabled":{"label":"Enable Plugins","help":"Enable plugin/extension loading (default: true)."},"plugins.allow":{"label":"Plugin Allowlist","help":"Optional allowlist of plugin ids; when set, only listed plugins load."},"plugins.deny":{"label":"Plugin Denylist","help":"Optional denylist of plugin ids; deny wins over allowlist."},"plugins.load.paths":{"label":"Plugin Load Paths","help":"Additional plugin files or directories to load."},"plugins.slots":{"label":"Plugin Slots","help":"Select which plugins own exclusive slots (memory, etc.)."},"plugins.slots.memory":{"label":"Memory Plugin","help":"Select the active memory plugin by id, or \"none\" to disable memory plugins."},"plugins.entries":{"label":"Plugin Entries","help":"Per-plugin settings keyed by plugin id (enable/disable + config payloads)."},"plugins.entries.*.enabled":{"label":"Plugin Enabled","help":"Overrides plugin enable/disable for this entry (restart required)."},"plugins.entries.*.config":{"label":"Plugin Config","help":"Plugin-defined config payload (schema is provided by the plugin)."},"plugins.installs":{"label":"Plugin Install Records","help":"CLI-managed install metadata (used by `openclaw plugins update` to locate install sources)."},"plugins.installs.*.source":{"label":"Plugin Install Source","help":"Install source (\"npm\", \"archive\", or \"path\")."},"plugins.installs.*.spec":{"label":"Plugin Install Spec","help":"Original npm spec used for install (if source is npm)."},"plugins.installs.*.sourcePath":{"label":"Plugin Install Source Path","help":"Original archive/path used for install (if any)."},"plugins.installs.*.installPath":{"label":"Plugin Install Path","help":"Resolved install directory (usually ~/.openclaw/extensions/<id>)."},"plugins.installs.*.version":{"label":"Plugin Install Version","help":"Version recorded at install time (if available)."},"plugins.installs.*.installedAt":{"label":"Plugin Install Time","help":"ISO timestamp of last install/update."},"tools.web.search.perplexity.apiKey":{"help":"Perplexity or OpenRouter API key (fallback: PERPLEXITY_API_KEY or OPENROUTER_API_KEY env var).","sensitive":true},"tools.web.search.perplexity.baseUrl":{"help":"Perplexity base URL override (default: https://openrouter.ai/api/v1 or https://api.perplexity.ai)."},"tools.web.search.perplexity.model":{"help":"Perplexity model override (default: \"perplexity/sonar-pro\")."},"tools.web.fetch.maxCharsCap":{"help":"Hard cap for web_fetch maxChars (applies to config and tool calls)."},"tools.web.fetch.readability":{"help":"Use Readability to extract main content from HTML (fallbacks to basic HTML cleanup)."},"tools.web.fetch.firecrawl.enabled":{"help":"Enable Firecrawl fallback for web_fetch (if configured)."},"tools.web.fetch.firecrawl.apiKey":{"help":"Firecrawl API key (fallback: FIRECRAWL_API_KEY env var).","sensitive":true},"tools.web.fetch.firecrawl.baseUrl":{"help":"Firecrawl base URL (e.g. https://api.firecrawl.dev or custom endpoint)."},"tools.web.fetch.firecrawl.onlyMainContent":{"help":"When true, Firecrawl returns only the main content (default: true)."},"tools.web.fetch.firecrawl.maxAgeMs":{"help":"Firecrawl maxAge (ms) for cached results when supported by the API."},"tools.web.fetch.firecrawl.timeoutSeconds":{"help":"Timeout in seconds for Firecrawl requests."},"agents.defaults.memorySearch.remote.batch.enabled":{"help":"Enable batch API for memory embeddings (OpenAI/Gemini; default: true)."},"agents.defaults.memorySearch.remote.batch.wait":{"help":"Wait for batch completion when indexing (default: true)."},"agents.defaults.memorySearch.remote.batch.pollIntervalMs":{"help":"Polling interval in ms for batch status (default: 2000)."},"agents.defaults.memorySearch.remote.batch.timeoutMinutes":{"help":"Timeout in minutes for batch indexing (default: 60)."},"session.identityLinks":{"help":"Map canonical identities to provider-prefixed peer IDs for DM session linking (example: telegram:123456)."},"channels.telegram.configWrites":{"help":"Allow Telegram to write config in response to channel events/commands (default: true)."},"channels.slack.configWrites":{"help":"Allow Slack to write config in response to channel events/commands (default: true)."},"channels.mattermost.configWrites":{"help":"Allow Mattermost to write config in response to channel events/commands (default: true)."},"channels.discord.configWrites":{"help":"Allow Discord to write config in response to channel events/commands (default: true)."},"channels.whatsapp.configWrites":{"help":"Allow WhatsApp to write config in response to channel events/commands (default: true)."},"channels.signal.configWrites":{"help":"Allow Signal to write config in response to channel events/commands (default: true)."},"channels.imessage.configWrites":{"help":"Allow iMessage to write config in response to channel events/commands (default: true)."},"channels.msteams.configWrites":{"help":"Allow Microsoft Teams to write config in response to channel events/commands (default: true)."},"channels.discord.commands.native":{"help":"Override native commands for Discord (bool or \"auto\")."},"channels.discord.commands.nativeSkills":{"help":"Override native skill commands for Discord (bool or \"auto\")."},"channels.telegram.commands.native":{"help":"Override native commands for Telegram (bool or \"auto\")."},"channels.telegram.commands.nativeSkills":{"help":"Override native skill commands for Telegram (bool or \"auto\")."},"channels.slack.commands.native":{"help":"Override native commands for Slack (bool or \"auto\")."},"channels.slack.commands.nativeSkills":{"help":"Override native skill commands for Slack (bool or \"auto\")."},"plugins.entries.feishu":{"label":"@openclaw/feishu","help":"OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng) (plugin: feishu)"},"plugins.entries.feishu.enabled":{"label":"Enable @openclaw/feishu"},"plugins.entries.feishu.config":{"label":"@openclaw/feishu Config","help":"Plugin-defined config payload for feishu."},"plugins.entries.bluebubbles":{"label":"@openclaw/bluebubbles","help":"OpenClaw BlueBubbles channel plugin (plugin: bluebubbles)"},"plugins.entries.bluebubbles.enabled":{"label":"Enable @openclaw/bluebubbles"},"plugins.entries.bluebubbles.config":{"label":"@openclaw/bluebubbles Config","help":"Plugin-defined config payload for bluebubbles."},"plugins.entries.copilot-proxy":{"label":"@openclaw/copilot-proxy","help":"OpenClaw Copilot Proxy provider plugin (plugin: copilot-proxy)"},"plugins.entries.copilot-proxy.enabled":{"label":"Enable @openclaw/copilot-proxy"},"plugins.entries.copilot-proxy.config":{"label":"@openclaw/copilot-proxy Config","help":"Plugin-defined config payload for copilot-proxy."},"plugins.entries.device-pair":{"label":"Device Pairing","help":"Generate setup codes and approve device pairing requests. (plugin: device-pair)"},"plugins.entries.device-pair.enabled":{"label":"Enable Device Pairing"},"plugins.entries.device-pair.config":{"label":"Device Pairing Config","help":"Plugin-defined config payload for device-pair."},"plugins.entries.device-pair.config.publicUrl":{"label":"Gateway URL","help":"Public WebSocket URL used for /pair setup codes (ws/wss or http/https)."},"plugins.entries.diagnostics-otel":{"label":"@openclaw/diagnostics-otel","help":"OpenClaw diagnostics OpenTelemetry exporter (plugin: diagnostics-otel)"},"plugins.entries.diagnostics-otel.enabled":{"label":"Enable @openclaw/diagnostics-otel"},"plugins.entries.diagnostics-otel.config":{"label":"@openclaw/diagnostics-otel Config","help":"Plugin-defined config payload for diagnostics-otel."},"plugins.entries.discord":{"label":"@openclaw/discord","help":"OpenClaw Discord channel plugin (plugin: discord)"},"plugins.entries.discord.enabled":{"label":"Enable @openclaw/discord"},"plugins.entries.discord.config":{"label":"@openclaw/discord Config","help":"Plugin-defined config payload for discord."},"plugins.entries.google-antigravity-auth":{"label":"@openclaw/google-antigravity-auth","help":"OpenClaw Google Antigravity OAuth provider plugin (plugin: google-antigravity-auth)"},"plugins.entries.google-antigravity-auth.enabled":{"label":"Enable @openclaw/google-antigravity-auth"},"plugins.entries.google-antigravity-auth.config":{"label":"@openclaw/google-antigravity-auth Config","help":"Plugin-defined config payload for google-antigravity-auth."},"plugins.entries.google-gemini-cli-auth":{"label":"@openclaw/google-gemini-cli-auth","help":"OpenClaw Gemini CLI OAuth provider plugin (plugin: google-gemini-cli-auth)"},"plugins.entries.google-gemini-cli-auth.enabled":{"label":"Enable @openclaw/google-gemini-cli-auth"},"plugins.entries.google-gemini-cli-auth.config":{"label":"@openclaw/google-gemini-cli-auth Config","help":"Plugin-defined config payload for google-gemini-cli-auth."},"plugins.entries.googlechat":{"label":"@openclaw/googlechat","help":"OpenClaw Google Chat channel plugin (plugin: googlechat)"},"plugins.entries.googlechat.enabled":{"label":"Enable @openclaw/googlechat"},"plugins.entries.googlechat.config":{"label":"@openclaw/googlechat Config","help":"Plugin-defined config payload for googlechat."},"plugins.entries.imessage":{"label":"@openclaw/imessage","help":"OpenClaw iMessage channel plugin (plugin: imessage)"},"plugins.entries.imessage.enabled":{"label":"Enable @openclaw/imessage"},"plugins.entries.imessage.config":{"label":"@openclaw/imessage Config","help":"Plugin-defined config payload for imessage."},"plugins.entries.line":{"label":"@openclaw/line","help":"OpenClaw LINE channel plugin (plugin: line)"},"plugins.entries.line.enabled":{"label":"Enable @openclaw/line"},"plugins.entries.line.config":{"label":"@openclaw/line Config","help":"Plugin-defined config payload for line."},"plugins.entries.llm-task":{"label":"LLM Task","help":"Generic JSON-only LLM tool for structured tasks callable from workflows. (plugin: llm-task)"},"plugins.entries.llm-task.enabled":{"label":"Enable LLM Task"},"plugins.entries.llm-task.config":{"label":"LLM Task Config","help":"Plugin-defined config payload for llm-task."},"plugins.entries.lobster":{"label":"Lobster","help":"Typed workflow tool with resumable approvals. (plugin: lobster)"},"plugins.entries.lobster.enabled":{"label":"Enable Lobster"},"plugins.entries.lobster.config":{"label":"Lobster Config","help":"Plugin-defined config payload for lobster."},"plugins.entries.matrix":{"label":"@openclaw/matrix","help":"OpenClaw Matrix channel plugin (plugin: matrix)"},"plugins.entries.matrix.enabled":{"label":"Enable @openclaw/matrix"},"plugins.entries.matrix.config":{"label":"@openclaw/matrix Config","help":"Plugin-defined config payload for matrix."},"plugins.entries.mattermost":{"label":"@openclaw/mattermost","help":"OpenClaw Mattermost channel plugin (plugin: mattermost)"},"plugins.entries.mattermost.enabled":{"label":"Enable @openclaw/mattermost"},"plugins.entries.mattermost.config":{"label":"@openclaw/mattermost Config","help":"Plugin-defined config payload for mattermost."},"plugins.entries.memory-core":{"label":"Memory (Core)","help":"File-backed memory search tools and CLI (plugin: memory-core)"},"plugins.entries.memory-core.enabled":{"label":"Enable Memory (Core)"},"plugins.entries.memory-core.config":{"label":"Memory (Core) Config","help":"Plugin-defined config payload for memory-core."},"plugins.entries.memory-lancedb":{"label":"@openclaw/memory-lancedb","help":"OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture (plugin: memory-lancedb)"},"plugins.entries.memory-lancedb.enabled":{"label":"Enable @openclaw/memory-lancedb"},"plugins.entries.memory-lancedb.config":{"label":"@openclaw/memory-lancedb Config","help":"Plugin-defined config payload for memory-lancedb."},"plugins.entries.memory-lancedb.config.embedding.apiKey":{"label":"OpenAI API Key","sensitive":true,"placeholder":"sk-proj-...","help":"API key for OpenAI embeddings (or use ${OPENAI_API_KEY})"},"plugins.entries.memory-lancedb.config.embedding.model":{"label":"Embedding Model","placeholder":"text-embedding-3-small","help":"OpenAI embedding model to use"},"plugins.entries.memory-lancedb.config.dbPath":{"label":"Database Path","placeholder":"~/.openclaw/memory/lancedb","advanced":true},"plugins.entries.memory-lancedb.config.autoCapture":{"label":"Auto-Capture","help":"Automatically capture important information from conversations"},"plugins.entries.memory-lancedb.config.autoRecall":{"label":"Auto-Recall","help":"Automatically inject relevant memories into context"},"plugins.entries.minimax-portal-auth":{"label":"@openclaw/minimax-portal-auth","help":"OpenClaw MiniMax Portal OAuth provider plugin (plugin: minimax-portal-auth)"},"plugins.entries.minimax-portal-auth.enabled":{"label":"Enable @openclaw/minimax-portal-auth"},"plugins.entries.minimax-portal-auth.config":{"label":"@openclaw/minimax-portal-auth Config","help":"Plugin-defined config payload for minimax-portal-auth."},"plugins.entries.msteams":{"label":"@openclaw/msteams","help":"OpenClaw Microsoft Teams channel plugin (plugin: msteams)"},"plugins.entries.msteams.enabled":{"label":"Enable @openclaw/msteams"},"plugins.entries.msteams.config":{"label":"@openclaw/msteams Config","help":"Plugin-defined config payload for msteams."},"plugins.entries.nextcloud-talk":{"label":"@openclaw/nextcloud-talk","help":"OpenClaw Nextcloud Talk channel plugin (plugin: nextcloud-talk)"},"plugins.entries.nextcloud-talk.enabled":{"label":"Enable @openclaw/nextcloud-talk"},"plugins.entries.nextcloud-talk.config":{"label":"@openclaw/nextcloud-talk Config","help":"Plugin-defined config payload for nextcloud-talk."},"plugins.entries.nostr":{"label":"@openclaw/nostr","help":"OpenClaw Nostr channel plugin for NIP-04 encrypted DMs (plugin: nostr)"},"plugins.entries.nostr.enabled":{"label":"Enable @openclaw/nostr"},"plugins.entries.nostr.config":{"label":"@openclaw/nostr Config","help":"Plugin-defined config payload for nostr."},"plugins.entries.open-prose":{"label":"OpenProse","help":"OpenProse VM skill pack with a /prose slash command. (plugin: open-prose)"},"plugins.entries.open-prose.enabled":{"label":"Enable OpenProse"},"plugins.entries.open-prose.config":{"label":"OpenProse Config","help":"Plugin-defined config payload for open-prose."},"plugins.entries.phone-control":{"label":"Phone Control","help":"Arm/disarm high-risk phone node commands (camera/screen/writes) with an optional auto-expiry. (plugin: phone-control)"},"plugins.entries.phone-control.enabled":{"label":"Enable Phone Control"},"plugins.entries.phone-control.config":{"label":"Phone Control Config","help":"Plugin-defined config payload for phone-control."},"plugins.entries.qwen-portal-auth":{"label":"qwen-portal-auth","help":"Plugin entry for qwen-portal-auth."},"plugins.entries.qwen-portal-auth.enabled":{"label":"Enable qwen-portal-auth"},"plugins.entries.qwen-portal-auth.config":{"label":"qwen-portal-auth Config","help":"Plugin-defined config payload for qwen-portal-auth."},"plugins.entries.signal":{"label":"@openclaw/signal","help":"OpenClaw Signal channel plugin (plugin: signal)"},"plugins.entries.signal.enabled":{"label":"Enable @openclaw/signal"},"plugins.entries.signal.config":{"label":"@openclaw/signal Config","help":"Plugin-defined config payload for signal."},"plugins.entries.slack":{"label":"@openclaw/slack","help":"OpenClaw Slack channel plugin (plugin: slack)"},"plugins.entries.slack.enabled":{"label":"Enable @openclaw/slack"},"plugins.entries.slack.config":{"label":"@openclaw/slack Config","help":"Plugin-defined config payload for slack."},"plugins.entries.talk-voice":{"label":"Talk Voice","help":"Manage Talk voice selection (list/set). (plugin: talk-voice)"},"plugins.entries.talk-voice.enabled":{"label":"Enable Talk Voice"},"plugins.entries.talk-voice.config":{"label":"Talk Voice Config","help":"Plugin-defined config payload for talk-voice."},"plugins.entries.telegram":{"label":"@openclaw/telegram","help":"OpenClaw Telegram channel plugin (plugin: telegram)"},"plugins.entries.telegram.enabled":{"label":"Enable @openclaw/telegram"},"plugins.entries.telegram.config":{"label":"@openclaw/telegram Config","help":"Plugin-defined config payload for telegram."},"plugins.entries.tlon":{"label":"@openclaw/tlon","help":"OpenClaw Tlon/Urbit channel plugin (plugin: tlon)"},"plugins.entries.tlon.enabled":{"label":"Enable @openclaw/tlon"},"plugins.entries.tlon.config":{"label":"@openclaw/tlon Config","help":"Plugin-defined config payload for tlon."},"plugins.entries.twitch":{"label":"@openclaw/twitch","help":"OpenClaw Twitch channel plugin (plugin: twitch)"},"plugins.entries.twitch.enabled":{"label":"Enable @openclaw/twitch"},"plugins.entries.twitch.config":{"label":"@openclaw/twitch Config","help":"Plugin-defined config payload for twitch."},"plugins.entries.voice-call":{"label":"@openclaw/voice-call","help":"OpenClaw voice-call plugin (plugin: voice-call)"},"plugins.entries.voice-call.enabled":{"label":"Enable @openclaw/voice-call"},"plugins.entries.voice-call.config":{"label":"@openclaw/voice-call Config","help":"Plugin-defined config payload for voice-call."},"plugins.entries.voice-call.config.provider":{"label":"Provider","help":"Use twilio, telnyx, or mock for dev/no-network."},"plugins.entries.voice-call.config.fromNumber":{"label":"From Number","placeholder":"+15550001234"},"plugins.entries.voice-call.config.toNumber":{"label":"Default To Number","placeholder":"+15550001234"},"plugins.entries.voice-call.config.inboundPolicy":{"label":"Inbound Policy"},"plugins.entries.voice-call.config.allowFrom":{"label":"Inbound Allowlist"},"plugins.entries.voice-call.config.inboundGreeting":{"label":"Inbound Greeting","advanced":true},"plugins.entries.voice-call.config.telnyx.apiKey":{"label":"Telnyx API Key","sensitive":true},"plugins.entries.voice-call.config.telnyx.connectionId":{"label":"Telnyx Connection ID"},"plugins.entries.voice-call.config.telnyx.publicKey":{"label":"Telnyx Public Key","sensitive":true},"plugins.entries.voice-call.config.twilio.accountSid":{"label":"Twilio Account SID"},"plugins.entries.voice-call.config.twilio.authToken":{"label":"Twilio Auth Token","sensitive":true},"plugins.entries.voice-call.config.outbound.defaultMode":{"label":"Default Call Mode"},"plugins.entries.voice-call.config.outbound.notifyHangupDelaySec":{"label":"Notify Hangup Delay (sec)","advanced":true},"plugins.entries.voice-call.config.serve.port":{"label":"Webhook Port"},"plugins.entries.voice-call.config.serve.bind":{"label":"Webhook Bind"},"plugins.entries.voice-call.config.serve.path":{"label":"Webhook Path"},"plugins.entries.voice-call.config.tailscale.mode":{"label":"Tailscale Mode","advanced":true},"plugins.entries.voice-call.config.tailscale.path":{"label":"Tailscale Path","advanced":true},"plugins.entries.voice-call.config.tunnel.provider":{"label":"Tunnel Provider","advanced":true},"plugins.entries.voice-call.config.tunnel.ngrokAuthToken":{"label":"ngrok Auth Token","sensitive":true,"advanced":true},"plugins.entries.voice-call.config.tunnel.ngrokDomain":{"label":"ngrok Domain","advanced":true},"plugins.entries.voice-call.config.tunnel.allowNgrokFreeTierLoopbackBypass":{"label":"Allow ngrok Free Tier (Loopback Bypass)","advanced":true},"plugins.entries.voice-call.config.streaming.enabled":{"label":"Enable Streaming","advanced":true},"plugins.entries.voice-call.config.streaming.openaiApiKey":{"label":"OpenAI Realtime API Key","sensitive":true,"advanced":true},"plugins.entries.voice-call.config.streaming.sttModel":{"label":"Realtime STT Model","advanced":true},"plugins.entries.voice-call.config.streaming.streamPath":{"label":"Media Stream Path","advanced":true},"plugins.entries.voice-call.config.tts.provider":{"label":"TTS Provider Override","help":"Deep-merges with messages.tts (Edge is ignored for calls).","advanced":true},"plugins.entries.voice-call.config.tts.openai.model":{"label":"OpenAI TTS Model","advanced":true},"plugins.entries.voice-call.config.tts.openai.voice":{"label":"OpenAI TTS Voice","advanced":true},"plugins.entries.voice-call.config.tts.openai.apiKey":{"label":"OpenAI API Key","sensitive":true,"advanced":true},"plugins.entries.voice-call.config.tts.elevenlabs.modelId":{"label":"ElevenLabs Model ID","advanced":true},"plugins.entries.voice-call.config.tts.elevenlabs.voiceId":{"label":"ElevenLabs Voice ID","advanced":true},"plugins.entries.voice-call.config.tts.elevenlabs.apiKey":{"label":"ElevenLabs API Key","sensitive":true,"advanced":true},"plugins.entries.voice-call.config.tts.elevenlabs.baseUrl":{"label":"ElevenLabs Base URL","advanced":true},"plugins.entries.voice-call.config.publicUrl":{"label":"Public Webhook URL","advanced":true},"plugins.entries.voice-call.config.skipSignatureVerification":{"label":"Skip Signature Verification","advanced":true},"plugins.entries.voice-call.config.store":{"label":"Call Log Store Path","advanced":true},"plugins.entries.voice-call.config.responseModel":{"label":"Response Model","advanced":true},"plugins.entries.voice-call.config.responseSystemPrompt":{"label":"Response System Prompt","advanced":true},"plugins.entries.voice-call.config.responseTimeoutMs":{"label":"Response Timeout (ms)","advanced":true},"plugins.entries.whatsapp":{"label":"@openclaw/whatsapp","help":"OpenClaw WhatsApp channel plugin (plugin: whatsapp)"},"plugins.entries.whatsapp.enabled":{"label":"Enable @openclaw/whatsapp"},"plugins.entries.whatsapp.config":{"label":"@openclaw/whatsapp Config","help":"Plugin-defined config payload for whatsapp."},"plugins.entries.zalo":{"label":"@openclaw/zalo","help":"OpenClaw Zalo channel plugin (plugin: zalo)"},"plugins.entries.zalo.enabled":{"label":"Enable @openclaw/zalo"},"plugins.entries.zalo.config":{"label":"@openclaw/zalo Config","help":"Plugin-defined config payload for zalo."},"plugins.entries.zalouser":{"label":"@openclaw/zalouser","help":"OpenClaw Zalo Personal Account plugin via zca-cli (plugin: zalouser)"},"plugins.entries.zalouser.enabled":{"label":"Enable @openclaw/zalouser"},"plugins.entries.zalouser.config":{"label":"@openclaw/zalouser Config","help":"Plugin-defined config payload for zalouser."},"channels.feishu":{"label":"Feishu","help":"飞书/Lark enterprise messaging."},"agents.defaults.heartbeat.target":{"help":"Delivery target (\"last\", \"none\", or a channel id). Known channels: telegram, whatsapp, discord, googlechat, slack, signal, imessage, feishu.","placeholder":"last"},"agents.list.*.heartbeat.target":{"help":"Delivery target (\"last\", \"none\", or a channel id). Known channels: telegram, whatsapp, discord, googlechat, slack, signal, imessage, feishu.","placeholder":"last"}},"version":"2026.2.9","generatedAt":"2026-02-13T11:19:32.167Z"}},"isError":false,"timestamp":1770981572175}}
|
||
{"type":"message","id":"d499db07","parentId":"5a18501e","timestamp":"2026-02-13T11:19:46.257Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"现在我看到了 config schema,关于 bindings 的定义:\n- bindings 是一个数组\n- 每个 binding 包含 agentId 和 match\n- match 包含 channel 和 peer\n- peer 包含 kind 和 id\n- peer.id 是必需的\n\n所以正确的 bindings 格式应该是:\n```json\n{\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\",\n \"id\": \"oc_79bcbd274c7cff8757b52e2ec1d8e12b\"\n }\n }\n}\n```\n\n让我重新尝试 config.patch。另外,我还需要检查 agents 是否有 systemPrompt 字段。查看 schema,agent 的配置似乎没有直接的 systemPrompt 字段。但是 identity 下面有 name 和 emoji。\n\n让我查看一下完整的 agent 配置格式,看看 systemPrompt 应该怎么加。实际上根据 schema,agents.list 中的属性包括:id, default, name, workspace, agentDir, model, skills, memorySearch, humanDelay, heartbeat, identity, groupChat, subagents, sandbox, tools。\n\n没有直接的 systemPrompt 字段。那么可能需要通过其他方式设置 agent 的系统提示词。\n\n让我重新看一下需求:蒋先生想要设置一个提示词。也许我可以通过其他方式实现,比如使用 BOOTSTRAP.md 或者其他方式。\n \n对于已存在的 knowledge-base 代理,我应该更新其模型和绑定配置。systemPrompt 可能需要在代理的工作空间通过 BOOTSTRAP.md 来设置,或者我先尝试不包含 systemPrompt,只更新模型和绑定,然后观察结果。","thinkingSignature":"2000bcf15d6d3b7c649405f9f24a6e3b4153798fe0c957f85ca80fd29283ff0f"},{"type":"text","text":"浩南收到,蒋先生!🧙♂️\n\n我来修正配置。根据 schema,bindings 中 peer.id 是必需的:\n"},{"type":"toolCall","id":"call_function_wdta4x8cqevy_1","name":"gateway","arguments":{"action":"config.patch","raw":"{\n \"agents\": {\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g5\",\n \"skills\": [\"kb-whisper\", \"kb-workflow\", \"kb-funasr\"],\n \"identity\": {\n \"name\": \"知识库管理者\",\n \"emoji\": \"📚\"\n }\n }\n ]\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\",\n \"id\": \"oc_79bcbd274c7cff8757b52e2ec1d8e12b\"\n }\n }\n }\n ]\n}","reason":"更新 knowledge-base 代理配置:模型改为 g5,绑定到指定群组"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":67960,"output":593,"cacheRead":16921,"cacheWrite":0,"totalTokens":85474,"cost":{"input":1.0194,"output":0.03558,"cacheRead":0.033842,"cacheWrite":0,"total":1.088822}},"stopReason":"toolUse","timestamp":1770981572182}}
|
||
{"type":"message","id":"83f5054e","parentId":"d499db07","timestamp":"2026-02-13T11:19:46.284Z","message":{"role":"toolResult","toolCallId":"call_function_wdta4x8cqevy_1","toolName":"gateway","content":[{"type":"text","text":"{\n \"status\": \"error\",\n \"tool\": \"gateway\",\n \"error\": \"invalid config; fix before patching\"\n}"}],"details":{"status":"error","tool":"gateway","error":"invalid config; fix before patching"},"isError":false,"timestamp":1770981586280}}
|
||
{"type":"message","id":"b6f5022e","parentId":"83f5054e","timestamp":"2026-02-13T11:19:50.600Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"还是报错。让我看看错误详情,需要查看完整的 config 问题。让我获取当前 config 然后仔细检查。\n\n让我尝试另一种方式:使用 config.apply 来完全替换配置,但这可能比较危险。让我先获取完整的 config 看看问题在哪里。\n\n等等,也许我应该看看具体的错误是什么。让我试试直接查看完整的 config 然后手动修改。","thinkingSignature":"2e78ce1a01d0e7529a57aa66411c658f0a44bbe29d872920ff15f99bad454600"},{"type":"toolCall","id":"call_function_ic60zt33f74t_1","name":"exec","arguments":{"command":"cat ~/.openclaw/openclaw.json | python3 -c \"import json,sys; d=json.load(sys.stdin); print(json.dumps(d.get('bindings',[]), indent=2))\""}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":68595,"output":132,"cacheRead":16921,"cacheWrite":0,"totalTokens":85648,"cost":{"input":1.028925,"output":0.00792,"cacheRead":0.033842,"cacheWrite":0,"total":1.070687}},"stopReason":"toolUse","timestamp":1770981586284}}
|
||
{"type":"message","id":"0cd2144b","parentId":"b6f5022e","timestamp":"2026-02-13T11:19:50.622Z","message":{"role":"toolResult","toolCallId":"call_function_ic60zt33f74t_1","toolName":"exec","content":[{"type":"text","text":"[\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\"\n }\n }\n }\n]"}],"details":{"status":"completed","exitCode":0,"durationMs":18,"aggregated":"[\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\"\n }\n }\n }\n]","cwd":"/home/starmen1265/.openclaw/workspace"},"isError":false,"timestamp":1770981590618}}
|
||
{"type":"message","id":"3bdca775","parentId":"0cd2144b","timestamp":"2026-02-13T11:19:54.645Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"我看到了,当前 bindings 中的 peer 只有 kind: \"group\",没有 id 字段。现在的问题是 config patch 失败,可能是 agents 配置的格式问题。\n\n让我查看当前完整的 agents 配置:","thinkingSignature":"fbb033b9f80a15a322548228c32675047c29c1df7ac3eda72a9e19a3c052f169"},{"type":"toolCall","id":"call_function_kl6ggrel1rv9_1","name":"exec","arguments":{"command":"cat ~/.openclaw/openclaw.json | python3 -c \"import json,sys; d=json.load(sys.stdin); print(json.dumps(d.get('agents',{}), indent=2))\""}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":68786,"output":101,"cacheRead":16921,"cacheWrite":0,"totalTokens":85808,"cost":{"input":1.03179,"output":0.00606,"cacheRead":0.033842,"cacheWrite":0,"total":1.0716919999999999}},"stopReason":"toolUse","timestamp":1770981590622}}
|
||
{"type":"message","id":"93415e0f","parentId":"3bdca775","timestamp":"2026-02-13T11:19:54.668Z","message":{"role":"toolResult","toolCallId":"call_function_kl6ggrel1rv9_1","toolName":"exec","content":[{"type":"text","text":"{\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"\\u77e5\\u8bc6\\u5e93\\u7ef4\\u62a4\\u4ee3\\u7406\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g47f\",\n \"skills\": [\n \"kb-whisper\",\n \"kb-workflow\",\n \"kb-funasr\"\n ],\n \"identity\": {\n \"name\": \"\\u77e5\\u8bc6\\u5e93\\u5c0f\\u52a9\\u624b\",\n \"emoji\": \"\\ud83d\\udcda\"\n }\n }\n ],\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n }\n}"}],"details":{"status":"completed","exitCode":0,"durationMs":19,"aggregated":"{\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"\\u77e5\\u8bc6\\u5e93\\u7ef4\\u62a4\\u4ee3\\u7406\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g47f\",\n \"skills\": [\n \"kb-whisper\",\n \"kb-workflow\",\n \"kb-funasr\"\n ],\n \"identity\": {\n \"name\": \"\\u77e5\\u8bc6\\u5e93\\u5c0f\\u52a9\\u624b\",\n \"emoji\": \"\\ud83d\\udcda\"\n }\n }\n ],\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n }\n}","cwd":"/home/starmen1265/.openclaw/workspace"},"isError":false,"timestamp":1770981594664}}
|
||
{"type":"message","id":"037cf3a2","parentId":"93415e0f","timestamp":"2026-02-13T11:19:58.625Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"让我尝试一个更简单的配置 patch,只更新 bindings,不更新 agents(因为 agents 配置看起来是正确的)。","thinkingSignature":"68dac84e29da95f116e389d73c9ca9e083baffe4d3f0cccf982ff39446afb98c"},{"type":"toolCall","id":"call_function_h55tpte1xqd2_1","name":"gateway","arguments":{"action":"config.patch","raw":"{\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\",\n \"id\": \"oc_79bcbd274c7cff8757b52e2ec1d8e12b\"\n }\n }\n }\n ]\n}","reason":"绑定 knowledge-base 到指定飞书群组"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":69295,"output":154,"cacheRead":16921,"cacheWrite":0,"totalTokens":86370,"cost":{"input":1.039425,"output":0.00924,"cacheRead":0.033842,"cacheWrite":0,"total":1.0825069999999999}},"stopReason":"toolUse","timestamp":1770981594668}}
|
||
{"type":"message","id":"5357e5c9","parentId":"037cf3a2","timestamp":"2026-02-13T11:19:58.679Z","message":{"role":"toolResult","toolCallId":"call_function_h55tpte1xqd2_1","toolName":"gateway","content":[{"type":"text","text":"{\n \"status\": \"error\",\n \"tool\": \"gateway\",\n \"error\": \"invalid config; fix before patching\"\n}"}],"details":{"status":"error","tool":"gateway","error":"invalid config; fix before patching"},"isError":false,"timestamp":1770981598676}}
|
||
{"type":"message","id":"bf663a1b","parentId":"5357e5c9","timestamp":"2026-02-13T11:20:05.723Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"还是有问题。让我直接读取完整配置文件,然后手动修改后使用 config.apply。","thinkingSignature":"53d8cab4f4722ebfee2035f351a5e8168e7fc42b7146117f724936ff9a4f76d1"},{"type":"toolCall","id":"call_function_gxt3h1svoksr_1","name":"read","arguments":{"file_path":"/home/starmen1265/.openclaw/openclaw.json"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":69491,"output":54,"cacheRead":16921,"cacheWrite":0,"totalTokens":86466,"cost":{"input":1.042365,"output":0.0032400000000000003,"cacheRead":0.033842,"cacheWrite":0,"total":1.0794469999999998}},"stopReason":"toolUse","timestamp":1770981598679}}
|
||
{"type":"message","id":"8612d90a","parentId":"bf663a1b","timestamp":"2026-02-13T11:20:05.730Z","message":{"role":"toolResult","toolCallId":"call_function_gxt3h1svoksr_1","toolName":"read","content":[{"type":"text","text":"{\n \"meta\": {\n \"lastTouchedVersion\": \"2026.2.9\",\n \"lastTouchedAt\": \"2026-02-12T16:36:05.392Z\"\n },\n \"wizard\": {\n \"lastRunAt\": \"2026-02-11T11:00:45.701Z\",\n \"lastRunVersion\": \"2026.2.9\",\n \"lastRunCommand\": \"onboard\",\n \"lastRunMode\": \"local\"\n },\n \"auth\": {\n \"profiles\": {\n \"kimi-coding:default\": {\n \"provider\": \"kimi-coding\",\n \"mode\": \"api_key\"\n }\n }\n },\n \"models\": {\n \"mode\": \"merge\",\n \"providers\": {\n \"alibaba-cloud\": {\n \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"qwen3-max-2026-01-23\",\n \"name\": \"qwen3-max-thinking\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 262144,\n \"maxTokens\": 65536\n }\n ]\n },\n \"mm\": {\n \"baseUrl\": \"https://api.minimaxi.com/anthropic\",\n \"apiKey\": \"sk-cp-8PugyKE2xsG0S4x4KzDuuIV6Z9bT1NFwkpfrOSG05djFVExAgYEPpp7iUaTcugT6_P4uBYIN9S75l3ij-Yd2Ct8f6CxdKWdgFahESfn_jla-SlU6oGUCBjk\",\n \"api\": \"anthropic-messages\",\n \"authHeader\": true,\n \"models\": [\n {\n \"id\": \"MiniMax-M2.5\",\n \"name\": \"MiniMax M2.5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 15,\n \"output\": 60,\n \"cacheRead\": 2,\n \"cacheWrite\": 10\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n }\n ]\n },\n \"zhipu\": {\n \"baseUrl\": \"https://open.bigmodel.cn/api/coding/paas/v4\",\n \"apiKey\": \"80ec82f2b14047d9a0399682a042378b.E8rv2nPSyuIsGoDr\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"glm-5\",\n \"name\": \"glm 5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n },\n {\n \"id\": \"glm-4.7-FlashX\",\n \"name\": \"glm 4.7 FlashX\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n }\n ]\n }\n }\n },\n \"agents\": {\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g47f\",\n \"skills\": [\"kb-whisper\", \"kb-workflow\", \"kb-funasr\"],\n \"identity\": {\n \"name\": \"知识库小助手\",\n \"emoji\": \"📚\"\n }\n }\n ],\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n }\n },\n \"tools\": {\n \"web\": {\n \"search\": {\n \"enabled\": true,\n \"provider\": \"brave\",\n \"apiKey\": \"BSAjOnKoRQhsGaUEWY57A3GZiXEgzzQ\"\n }\n },\n \"elevated\": {\n \"enabled\": true,\n \"allowFrom\": {\n \"webchat\": [\n \"*\"\n ],\n \"tui\": [\n \"*\"\n ],\n \"wecom\": [\n \"*\"\n ]\n }\n },\n \"exec\": {\n \"security\": \"full\"\n }\n },\n \"messages\": {\n \"ackReactionScope\": \"group-mentions\"\n },\n \"commands\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\",\n \"restart\": true\n },\n \"approvals\": {\n \"exec\": {\n \"enabled\": false\n }\n },\n \"hooks\": {\n \"internal\": {\n \"enabled\": true,\n \"entries\": {\n \"boot-md\": {\n \"enabled\": true\n },\n \"command-logger\": {\n \"enabled\": true\n },\n \"session-memory\": {\n \"enabled\": true\n }\n }\n }\n },\n \"gateway\": {\n \"port\": 18789,\n \"mode\": \"local\",\n \"bind\": \"lan\",\n \"controlUi\": {\n \"allowInsecureAuth\": true\n },\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"1b7fc86b3895e0e27da4c9fd3aac10fc5ad8f66354040347\"\n },\n \"tailscale\": {\n \"mode\": \"off\",\n \"resetOnExit\": false\n },\n \"nodes\": {\n \"denyCommands\": [\n \"camera.snap\",\n \"camera.clip\",\n \"screen.record\",\n \"calendar.add\",\n \"contacts.add\",\n \"reminders.add\"\n ]\n }\n },\n \"skills\": {\n \"install\": {\n \"nodeManager\": \"npm\"\n }\n },\n \"plugins\": {\n \"entries\": {\n \"feishu\": {\n \"enabled\": true\n }\n },\n \"installs\": {\n \"feishu\": {\n \"source\": \"npm\",\n \"spec\": \"@m1heng-clawd/feishu\",\n \"installPath\": \"/home/starmen1265/.openclaw/extensions/feishu\",\n \"version\": \"0.1.9\",\n \"installedAt\": \"2026-02-12T16:31:18.854Z\"\n }\n }\n },\n \"channels\": {\n \"feishu\": {\n \"enabled\": true,\n \"appId\": \"cli_a9f74dc9a3f8dbce\",\n \"appSecret\": \"QtnvzRUhhFoNTTorxJuAwgSJ3ocPv0p1\",\n \"domain\": \"feishu\",\n \"groupPolicy\": \"allowlist\",\n \"groupAllowFrom\": [],\n \"groups\": {}\n }\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": { \"kind\": \"group\" }\n }\n }\n ]\n}\n"}],"isError":false,"timestamp":1770981605726}}
|
||
{"type":"message","id":"ca2e3a7a","parentId":"8612d90a","timestamp":"2026-02-13T11:20:37.016Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"现在我可以看到完整配置了。我需要:1. 修改 bindings 添加 group id\n2. 修改 agents 中 knowledge-base 的 model 为 g5\n3. 修改 identity\n\n让我直接使用 config.apply 来应用完整的更新后的配置。首先创建修改后的配置:","thinkingSignature":"c670fc57f14f017a3366e511bf13196706846c0ec23c2c5e54f95beb52f6185a"},{"type":"toolCall","id":"call_function_azmo49t2klln_1","name":"gateway","arguments":{"action":"config.apply","raw":"{\n \"meta\": {\n \"lastTouchedVersion\": \"2026.2.9\",\n \"lastTouchedAt\": \"2026-02-12T16:36:05.392Z\"\n },\n \"wizard\": {\n \"lastRunAt\": \"2026-02-11T11:00:45.701Z\",\n \"lastRunVersion\": \"2026.2.9\",\n \"lastRunCommand\": \"onboard\",\n \"lastRunMode\": \"local\"\n },\n \"auth\": {\n \"profiles\": {\n \"kimi-coding:default\": {\n \"provider\": \"kimi-coding\",\n \"mode\": \"api_key\"\n }\n }\n },\n \"models\": {\n \"mode\": \"merge\",\n \"providers\": {\n \"alibaba-cloud\": {\n \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"qwen3-max-2026-01-23\",\n \"name\": \"qwen3-max-thinking\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 262144,\n \"maxTokens\": 65536\n }\n ]\n },\n \"mm\": {\n \"baseUrl\": \"https://api.minimaxi.com/anthropic\",\n \"apiKey\": \"sk-cp-8PugyKE2xsG0S4x4KzDuuIV6Z9bT1NFwkpfrOSG05djFVExAgYEPpp7iUaTcugT6_P4uBYIN9S75l3ij-Yd2Ct8f6CxdKWdgFahESfn_jla-SlU6oGUCBjk\",\n \"api\": \"anthropic-messages\",\n \"authHeader\": true,\n \"models\": [\n {\n \"id\": \"MiniMax-M2.5\",\n \"name\": \"MiniMax M2.5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 15,\n \"output\": 60,\n \"cacheRead\": 2,\n \"cacheWrite\": 10\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n }\n ]\n },\n \"zhipu\": {\n \"baseUrl\": \"https://open.bigmodel.cn/api/coding/paas/v4\",\n \"apiKey\": \"80ec82f2b14047d9a0399682a042378b.E8rv2nPSyuIsGoDr\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"glm-5\",\n \"name\": \"glm 5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n },\n {\n \"id\": \"glm-4.7-FlashX\",\n \"name\": \"glm 4.7 FlashX\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n }\n ]\n }\n }\n },\n \"agents\": {\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g5\",\n \"skills\": [\"kb-whisper\", \"kb-workflow\", \"kb-funasr\"],\n \"identity\": {\n \"name\": \"知识库管理者\",\n \"emoji\": \"📚\"\n }\n }\n ],\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n }\n },\n \"tools\": {\n \"web\": {\n \"search\": {\n \"enabled\": true,\n \"provider\": \"brave\",\n \"apiKey\": \"BSAjOnKoRQhsGaUEWY57A3GZiXEgzzQ\"\n }\n },\n \"elevated\": {\n \"enabled\": true,\n \"allowFrom\": {\n \"webchat\": [\n \"*\"\n ],\n \"tui\": [\n \"*\"\n ],\n \"wecom\": [\n \"*\"\n ]\n }\n },\n \"exec\": {\n \"security\": \"full\"\n }\n },\n \"messages\": {\n \"ackReactionScope\": \"group-mentions\"\n },\n \"commands\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\",\n \"restart\": true\n },\n \"approvals\": {\n \"exec\": {\n \"enabled\": false\n }\n },\n \"hooks\": {\n \"internal\": {\n \"enabled\": true,\n \"entries\": {\n \"boot-md\": {\n \"enabled\": true\n },\n \"command-logger\": {\n \"enabled\": true\n },\n \"session-memory\": {\n \"enabled\": true\n }\n }\n }\n },\n \"gateway\": {\n \"port\": 18789,\n \"mode\": \"local\",\n \"bind\": \"lan\",\n \"controlUi\": {\n \"allowInsecureAuth\": true\n },\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"1b7fc86b3895e0e27da4c9fd3aac10fc5ad8f66354040347\"\n },\n \"tailscale\": {\n \"mode\": \"off\",\n \"resetOnExit\": false\n },\n \"nodes\": {\n \"denyCommands\": [\n \"camera.snap\",\n \"camera.clip\",\n \"screen.record\",\n \"calendar.add\",\n \"contacts.add\",\n \"reminders.add\"\n ]\n }\n },\n \"skills\": {\n \"install\": {\n \"nodeManager\": \"npm\"\n }\n },\n \"plugins\": {\n \"entries\": {\n \"feishu\": {\n \"enabled\": true\n }\n },\n \"installs\": {\n \"feishu\": {\n \"source\": \"npm\",\n \"spec\": \"@m1heng-clawd/feishu\",\n \"installPath\": \"/home/starmen1265/.openclaw/extensions/feishu\",\n \"version\": \"0.1.9\",\n \"installedAt\": \"2026-02-12T16:31:18.854Z\"\n }\n }\n },\n \"channels\": {\n \"feishu\": {\n \"enabled\": true,\n \"appId\": \"cli_a9f74dc9a3f8dbce\",\n \"appSecret\": \"QtnvzRUhhFoNTTorxJuAwgSJ3ocPv0p1\",\n \"domain\": \"feishu\",\n \"groupPolicy\": \"allowlist\",\n \"groupAllowFrom\": [],\n \"groups\": {}\n }\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\",\n \"id\": \"oc_79bcbd274c7cff8757b52e2ec1d8e12b\"\n }\n }\n }\n ]\n}","note":"更新 knowledge-base 代理配置:模型改为 g5,绑定到指定群组"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":71481,"output":2064,"cacheRead":16921,"cacheWrite":0,"totalTokens":90466,"cost":{"input":1.072215,"output":0.12384,"cacheRead":0.033842,"cacheWrite":0,"total":1.2298969999999998}},"stopReason":"toolUse","timestamp":1770981605730}}
|
||
{"type":"message","id":"77871067","parentId":"ca2e3a7a","timestamp":"2026-02-13T11:20:37.047Z","message":{"role":"toolResult","toolCallId":"call_function_azmo49t2klln_1","toolName":"gateway","content":[{"type":"text","text":"{\n \"ok\": true,\n \"result\": {\n \"ok\": true,\n \"path\": \"/home/starmen1265/.openclaw/openclaw.json\",\n \"config\": {\n \"meta\": {\n \"lastTouchedVersion\": \"2026.2.9\",\n \"lastTouchedAt\": \"2026-02-12T16:36:05.392Z\"\n },\n \"wizard\": {\n \"lastRunAt\": \"2026-02-11T11:00:45.701Z\",\n \"lastRunVersion\": \"2026.2.9\",\n \"lastRunCommand\": \"onboard\",\n \"lastRunMode\": \"local\"\n },\n \"auth\": {\n \"profiles\": {\n \"kimi-coding:default\": {\n \"provider\": \"kimi-coding\",\n \"mode\": \"api_key\"\n }\n }\n },\n \"models\": {\n \"mode\": \"merge\",\n \"providers\": {\n \"alibaba-cloud\": {\n \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"qwen3-max-2026-01-23\",\n \"name\": \"qwen3-max-thinking\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 262144,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"mm\": {\n \"baseUrl\": \"https://api.minimaxi.com/anthropic\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"anthropic-messages\",\n \"authHeader\": true,\n \"models\": [\n {\n \"id\": \"MiniMax-M2.5\",\n \"name\": \"MiniMax M2.5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 15,\n \"output\": 60,\n \"cacheRead\": 2,\n \"cacheWrite\": 10\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"zhipu\": {\n \"baseUrl\": \"https://open.bigmodel.cn/api/coding/paas/v4\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"glm-5\",\n \"name\": \"glm 5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n },\n {\n \"id\": \"glm-4.7-FlashX\",\n \"name\": \"glm 4.7 FlashX\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n }\n }\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n },\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g5\",\n \"skills\": [\n \"kb-whisper\",\n \"kb-workflow\",\n \"kb-funasr\"\n ],\n \"identity\": {\n \"name\": \"知识库管理者\",\n \"emoji\": \"📚\"\n }\n }\n ]\n },\n \"tools\": {\n \"web\": {\n \"search\": {\n \"enabled\": true,\n \"provider\": \"brave\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\"\n }\n },\n \"elevated\": {\n \"enabled\": true,\n \"allowFrom\": {\n \"webchat\": [\n \"*\"\n ],\n \"tui\": [\n \"*\"\n ],\n \"wecom\": [\n \"*\"\n ]\n }\n },\n \"exec\": {\n \"security\": \"full\"\n }\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\",\n \"peer\": {\n \"kind\": \"group\",\n \"id\": \"oc_79bcbd274c7cff8757b52e2ec1d8e12b\"\n }\n }\n }\n ],\n \"messages\": {\n \"ackReactionScope\": \"group-mentions\"\n },\n \"commands\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\",\n \"restart\": true\n },\n \"approvals\": {\n \"exec\": {\n \"enabled\": false\n }\n },\n \"hooks\": {\n \"internal\": {\n \"enabled\": true,\n \"entries\": {\n \"boot-md\": {\n \"enabled\": true\n },\n \"command-logger\": {\n \"enabled\": true\n },\n \"session-memory\": {\n \"enabled\": true\n }\n }\n }\n },\n \"channels\": {\n \"feishu\": {\n \"enabled\": true,\n \"appId\": \"cli_a9f74dc9a3f8dbce\",\n \"appSecret\": \"__OPENCLAW_REDACTED__\",\n \"domain\": \"feishu\",\n \"groupPolicy\": \"allowlist\",\n \"groupAllowFrom\": [],\n \"groups\": {}\n }\n },\n \"gateway\": {\n \"port\": 18789,\n \"mode\": \"local\",\n \"bind\": \"lan\",\n \"controlUi\": {\n \"allowInsecureAuth\": true\n },\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"__OPENCLAW_REDACTED__\"\n },\n \"tailscale\": {\n \"mode\": \"off\",\n \"resetOnExit\": false\n },\n \"nodes\": {\n \"denyCommands\": [\n \"camera.snap\",\n \"camera.clip\",\n \"screen.record\",\n \"calendar.add\",\n \"contacts.add\",\n \"reminders.add\"\n ]\n }\n },\n \"skills\": {\n \"install\": {\n \"nodeManager\": \"npm\"\n }\n },\n \"plugins\": {\n \"entries\": {\n \"feishu\": {\n \"enabled\": true\n }\n },\n \"installs\": {\n \"feishu\": {\n \"source\": \"npm\",\n \"spec\": \"@m1heng-clawd/feishu\",\n \"installPath\": \"/home/starmen1265/.openclaw/extensions/feishu\",\n \"version\": \"0.1.9\",\n \"installedAt\": \"2026-02-12T16:31:18.854Z\"\n }\n }\n }\n },\n \"restart\": {\n \"ok\": true,\n \"pid\": 1578034,\n \"signal\": \"SIGUSR1\",\n \"delayMs\": 2000,\n \"reason\": \"config.apply\",\n \"mode\": \"emit\"\n },\n \"sentinel\": {\n \"path\": \"/home/starmen1265/.openclaw/restart-sentinel.json\",\n \"payload\": {\n \"kind\": \"config-apply\",\n \"status\": \"ok\",\n \"ts\": 1770981637042,\n \"sessionKey\": \"agent:main:feishu:group:oc_79bcbd274c7cff8757b52e2ec1d8e12b\",\n \"message\": \"更新 knowledge-base 代理配置:模型改为 g5,绑定到指定群组\",\n \"doctorHint\": \"Run: openclaw doctor --non-interactive\",\n \"stats\": {\n \"mode\": \"config.apply\",\n \"root\": \"/home/starmen1265/.openclaw/openclaw.json\"\n }\n }\n }\n }\n}"}],"details":{"ok":true,"result":{"ok":true,"path":"/home/starmen1265/.openclaw/openclaw.json","config":{"meta":{"lastTouchedVersion":"2026.2.9","lastTouchedAt":"2026-02-12T16:36:05.392Z"},"wizard":{"lastRunAt":"2026-02-11T11:00:45.701Z","lastRunVersion":"2026.2.9","lastRunCommand":"onboard","lastRunMode":"local"},"auth":{"profiles":{"kimi-coding:default":{"provider":"kimi-coding","mode":"api_key"}}},"models":{"mode":"merge","providers":{"alibaba-cloud":{"baseUrl":"https://dashscope.aliyuncs.com/compatible-mode/v1","api":"openai-completions","models":[{"id":"qwen3-max-2026-01-23","name":"qwen3-max-thinking","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":"__OPENCLAW_REDACTED__"}]},"mm":{"baseUrl":"https://api.minimaxi.com/anthropic","apiKey":"__OPENCLAW_REDACTED__","api":"anthropic-messages","authHeader":true,"models":[{"id":"MiniMax-M2.5","name":"MiniMax M2.5","reasoning":false,"input":["text"],"cost":{"input":15,"output":60,"cacheRead":2,"cacheWrite":10},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]},"zhipu":{"baseUrl":"https://open.bigmodel.cn/api/coding/paas/v4","apiKey":"__OPENCLAW_REDACTED__","api":"openai-completions","models":[{"id":"glm-5","name":"glm 5","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"},{"id":"glm-4.7-FlashX","name":"glm 4.7 FlashX","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]}}},"agents":{"defaults":{"model":{"primary":"m25","fallbacks":["g47f","g5","qmax","k2p5"]},"models":{"zhipu/glm-5":{"alias":"g5"},"zhipu/glm-4.7-FlashX":{"alias":"g47f"},"mm/MiniMax-M2.5":{"alias":"m25"},"alibaba-cloud/qwen3-max-2026-01-23":{"alias":"qmax"},"kimi-coding/k2p5":{"alias":"k2p5"}},"workspace":"/home/starmen1265/.openclaw/workspace","compaction":{"mode":"safeguard"},"maxConcurrent":8,"subagents":{"maxConcurrent":16}},"list":[{"id":"knowledge-base","name":"知识库维护代理","workspace":"~/.openclaw/agents/knowledge-base/workspace","model":"g5","skills":["kb-whisper","kb-workflow","kb-funasr"],"identity":{"name":"知识库管理者","emoji":"📚"}}]},"tools":{"web":{"search":{"enabled":true,"provider":"brave","apiKey":"__OPENCLAW_REDACTED__"}},"elevated":{"enabled":true,"allowFrom":{"webchat":["*"],"tui":["*"],"wecom":["*"]}},"exec":{"security":"full"}},"bindings":[{"agentId":"knowledge-base","match":{"channel":"feishu","peer":{"kind":"group","id":"oc_79bcbd274c7cff8757b52e2ec1d8e12b"}}}],"messages":{"ackReactionScope":"group-mentions"},"commands":{"native":"auto","nativeSkills":"auto","restart":true},"approvals":{"exec":{"enabled":false}},"hooks":{"internal":{"enabled":true,"entries":{"boot-md":{"enabled":true},"command-logger":{"enabled":true},"session-memory":{"enabled":true}}}},"channels":{"feishu":{"enabled":true,"appId":"cli_a9f74dc9a3f8dbce","appSecret":"__OPENCLAW_REDACTED__","domain":"feishu","groupPolicy":"allowlist","groupAllowFrom":[],"groups":{}}},"gateway":{"port":18789,"mode":"local","bind":"lan","controlUi":{"allowInsecureAuth":true},"auth":{"mode":"token","token":"__OPENCLAW_REDACTED__"},"tailscale":{"mode":"off","resetOnExit":false},"nodes":{"denyCommands":["camera.snap","camera.clip","screen.record","calendar.add","contacts.add","reminders.add"]}},"skills":{"install":{"nodeManager":"npm"}},"plugins":{"entries":{"feishu":{"enabled":true}},"installs":{"feishu":{"source":"npm","spec":"@m1heng-clawd/feishu","installPath":"/home/starmen1265/.openclaw/extensions/feishu","version":"0.1.9","installedAt":"2026-02-12T16:31:18.854Z"}}}},"restart":{"ok":true,"pid":1578034,"signal":"SIGUSR1","delayMs":2000,"reason":"config.apply","mode":"emit"},"sentinel":{"path":"/home/starmen1265/.openclaw/restart-sentinel.json","payload":{"kind":"config-apply","status":"ok","ts":1770981637042,"sessionKey":"agent:main:feishu:group:oc_79bcbd274c7cff8757b52e2ec1d8e12b","message":"更新 knowledge-base 代理配置:模型改为 g5,绑定到指定群组","doctorHint":"Run: openclaw doctor --non-interactive","stats":{"mode":"config.apply","root":"/home/starmen1265/.openclaw/openclaw.json"}}}}},"isError":false,"timestamp":1770981637044}}
|
||
{"type":"message","id":"7a764718","parentId":"77871067","timestamp":"2026-02-13T11:20:47.601Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"配置已成功更新。现在我需要为 knowledge-base 代理创建系统提示词。让我为代理的 workspace 创建一个 BOOTSTRAP.md 文件来设置提示词。\n\n根据用户需求,需要设置以下提示词:\n\"你是知识库的管理者,负责用 kb-系列的技能进行知识库管理。操作过程中如果遇到问题,禁止通过修改代码和修改配置的方式来解决,并且上报这个意料之外的问题。\"\n\n让我先创建代理的 workspace 目录(如果不存在),然后创建 BOOTSTRAP.md 文件。","thinkingSignature":"4756b0724bbc81488b0628a406b359449b1c62877df4c64becbae71e28442a76"},{"type":"text","text":"配置已更新成功!现在需要为 knowledge-base 代理设置系统提示词。让我创建代理的工作空间和引导文件:\n"},{"type":"toolCall","id":"call_function_2nmwkxmyq8ja_1","name":"exec","arguments":{"command":"mkdir -p ~/.openclaw/agents/knowledge-base/workspace"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":75668,"output":167,"cacheRead":16921,"cacheWrite":0,"totalTokens":92756,"cost":{"input":1.13502,"output":0.01002,"cacheRead":0.033842,"cacheWrite":0,"total":1.1788819999999998}},"stopReason":"toolUse","timestamp":1770981637047}}
|
||
{"type":"message","id":"050f30ca","parentId":"7a764718","timestamp":"2026-02-13T11:20:47.613Z","message":{"role":"toolResult","toolCallId":"call_function_2nmwkxmyq8ja_1","toolName":"exec","content":[{"type":"text","text":"(no output)"}],"details":{"status":"completed","exitCode":0,"durationMs":8,"aggregated":"","cwd":"/home/starmen1265/.openclaw/workspace"},"isError":false,"timestamp":1770981647609}}
|
||
{"type":"message","id":"79c5d16a","parentId":"050f30ca","timestamp":"2026-02-13T11:20:51.808Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"现在创建 BOOTSTRAP.md 文件来设置代理的提示词:","thinkingSignature":"abced2b7aad8dea9bdad011aa834e622bee1553f0f0d97c10f13b1191528cf94"},{"type":"toolCall","id":"call_function_owffo9bhl8n0_1","name":"write","arguments":{"content":"# 知识库管理者\n\n你是知识库的管理者,负责用 kb-系列的技能进行知识库管理。\n\n操作过程中如果遇到问题,禁止通过修改代码和修改配置的方式来解决,并且上报这个意料之外的问题。\n","file_path":"/home/starmen1265/.openclaw/agents/knowledge-base/workspace/BOOTSTRAP.md"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":75853,"output":115,"cacheRead":16921,"cacheWrite":0,"totalTokens":92889,"cost":{"input":1.1377950000000001,"output":0.0069,"cacheRead":0.033842,"cacheWrite":0,"total":1.178537}},"stopReason":"toolUse","timestamp":1770981647613}}
|
||
{"type":"message","id":"30a871de","parentId":"79c5d16a","timestamp":"2026-02-13T11:20:51.815Z","message":{"role":"toolResult","toolCallId":"call_function_owffo9bhl8n0_1","toolName":"write","content":[{"type":"text","text":"Successfully wrote 89 bytes to /home/starmen1265/.openclaw/agents/knowledge-base/workspace/BOOTSTRAP.md"}],"isError":false,"timestamp":1770981651812}}
|
||
{"type":"message","id":"705f06d9","parentId":"30a871de","timestamp":"2026-02-13T11:20:56.233Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"现在配置已经完成:1. knowledge-base 代理已绑定到群组 ID: oc_79bcbd274c7cff8757b52e2ec1d8e12b\n2. 模型已改为 g5\n3. 系统提示词已通过 BOOTSTRAP.md 设置\n\n让我向蒋先生汇报完成情况。","thinkingSignature":"b59c6c744583d59134faf71e1010f730a1fd442d0a66e47ff9749b7692a28c89"},{"type":"text","text":"浩南收到,蒋先生!🧙♂️\n\n已完成 knowledge-base 代理配置:\n\n✅ **模型**:g5\n✅ **绑定群组**:oc_79bcbd274c7cff8757b52e2ec1d8e12b\n✅ **系统提示词**:已设置(知识库管理者,遇到问题不上报代码/配置修改)\n\n配置已生效,代理已就绪。"}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":76012,"output":161,"cacheRead":16921,"cacheWrite":0,"totalTokens":93094,"cost":{"input":1.14018,"output":0.00966,"cacheRead":0.033842,"cacheWrite":0,"total":1.183682}},"stopReason":"stop","timestamp":1770981651815}}
|
||
{"type":"message","id":"d68c6db1","parentId":"705f06d9","timestamp":"2026-02-13T11:20:56.300Z","message":{"role":"user","content":[{"type":"text","text":"GatewayRestart:\n{\n \"kind\": \"config-apply\",\n \"status\": \"ok\",\n \"ts\": 1770981637042,\n \"sessionKey\": \"agent:main:feishu:group:oc_79bcbd274c7cff8757b52e2ec1d8e12b\",\n \"message\": \"更新 knowledge-base 代理配置:模型改为 g5,绑定到指定群组\",\n \"doctorHint\": \"Run: openclaw doctor --non-interactive\",\n \"stats\": {\n \"mode\": \"config.apply\",\n \"root\": \"/home/starmen1265/.openclaw/openclaw.json\"\n }\n}"}],"timestamp":1770981656296}}
|
||
{"type":"message","id":"f39e4683","parentId":"d68c6db1","timestamp":"2026-02-13T11:21:03.127Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"This is a system event confirming that the gateway has restarted successfully after the config apply. The user is just informing me about this restart. Since this is a system event and not a user message that requires a response, I should not reply to it.","thinkingSignature":"89f6928ceedb6ac213326a01b5348fd4996938a7b2a689d1278f5ad6a0e7d8fc"},{"type":"text","text":"NO_REPLY"}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":32,"output":57,"cacheRead":8240,"cacheWrite":82777,"totalTokens":91106,"cost":{"input":0.00048,"output":0.0034200000000000003,"cacheRead":0.016479999999999998,"cacheWrite":0.8277700000000001,"total":0.8481500000000001}},"stopReason":"stop","timestamp":1770981656299}}
|
||
{"type":"message","id":"04e278f7","parentId":"f39e4683","timestamp":"2026-02-13T11:24:33.248Z","message":{"role":"user","content":[{"type":"text","text":"System: [2026-02-13 19:24:32 GMT+8] Feishu[default] message in group oc_79bcbd274c7cff8757b52e2ec1d8e12b: 你好\n\n[Feishu oc_79bcbd274c7cff8757b52e2ec1d8e12b:ou_be83febac9ee2afaa343c642bc697c48 Fri 2026-02-13 19:24 GMT+8] 张青: 你好\n[message_id: om_x100b57c4d1c9c8b0c38031be4832cb6]"}],"timestamp":1770981873243}}
|
||
{"type":"message","id":"c910e996","parentId":"04e278f7","timestamp":"2026-02-13T11:24:40.312Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"这是用户张青在群组里发送的消息。根据配置,这个群组已经绑定到了 knowledge-base 代理,所以这条消息应该会被路由到 knowledge-base 代理处理。\n\n我作为 main 代理,不需要直接回复这个消息,因为它是发送给 knowledge-base 代理的。\n\n所以应该返回 NO_REPLY。","thinkingSignature":"48c1de28656744a31b34093131acfeba0979ad02c786032eb7c1c4b5b934558c"},{"type":"text","text":"NO_REPLY"}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":32,"output":67,"cacheRead":16921,"cacheWrite":75377,"totalTokens":92397,"cost":{"input":0.00048,"output":0.00402,"cacheRead":0.033842,"cacheWrite":0.75377,"total":0.792112}},"stopReason":"stop","timestamp":1770981873247}}
|
||
{"type":"message","id":"f353b862","parentId":"c910e996","timestamp":"2026-02-13T11:28:33.644Z","message":{"role":"user","content":[{"type":"text","text":"System: [2026-02-13 19:28:33 GMT+8] Feishu[default] message in group oc_79bcbd274c7cff8757b52e2ec1d8e12b: 你好\n\n[Feishu oc_79bcbd274c7cff8757b52e2ec1d8e12b:ou_be83febac9ee2afaa343c642bc697c48 Fri 2026-02-13 19:28 GMT+8] 张青: 你好\n[message_id: om_x100b57c4e0c3f8a0c4f2ebd5b29046b]"}],"timestamp":1770982113640}}
|
||
{"type":"message","id":"39e7f896","parentId":"f353b862","timestamp":"2026-02-13T11:28:48.408Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"这是群组 oc_79bcbd274c7cff8757b52e2ec1d8e12b 的消息,应该路由到 knowledge-base 代理。但这条消息似乎没有被路由到我这里,而是作为系统消息发送给了我(主代理)。\n\n让我检查一下绑定是否生效。根据配置,这个群组应该绑定到 knowledge-base 代理。但消息似乎还是发送到了 main 代理。\n\n这可能是因为:\n1. 绑定还没有生效(需要时间)\n2. 绑定配置有问题\n\n不过,用户只是打招呼\"你好\",我可以简单回复。但按照规则,这个消息应该被路由到 knowledge-base 代理。\n\n让我回复用户,说明情况。","thinkingSignature":"d8b11348a694e09b081c660bb63cb1320c41efd1599e86ec2f03fc47da8f1989"},{"type":"text","text":"浩南收到,蒋先生!🧙♂️\n\n这条消息应该路由到 knowledge-base 代理,但它似乎还在主会话。可能需要等待绑定完全生效。\n\n让我确认一下当前配置状态:\n"},{"type":"toolCall","id":"call_function_wxxtxyypk4ak_1","name":"exec","arguments":{"command":"cat ~/.openclaw/openclaw.json | python3 -c \"import json,sys; d=json.load(sys.stdin); print(json.dumps(d.get('bindings',[]), indent=2))\""}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":32,"output":241,"cacheRead":92197,"cacheWrite":267,"totalTokens":92737,"cost":{"input":0.00048,"output":0.01446,"cacheRead":0.184394,"cacheWrite":0.00267,"total":0.20200400000000002}},"stopReason":"toolUse","timestamp":1770982113643}}
|
||
{"type":"message","id":"8392e1c7","parentId":"39e7f896","timestamp":"2026-02-13T11:28:48.443Z","message":{"role":"toolResult","toolCallId":"call_function_wxxtxyypk4ak_1","toolName":"exec","content":[{"type":"text","text":"[\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\"\n }\n }\n]"}],"details":{"status":"completed","exitCode":0,"durationMs":31,"aggregated":"[\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\"\n }\n }\n]","cwd":"/home/starmen1265/.openclaw/workspace"},"isError":false,"timestamp":1770982128440}}
|
||
{"type":"message","id":"36a6a477","parentId":"8392e1c7","timestamp":"2026-02-13T11:28:52.281Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"绑定配置没有 id,说明配置在重启后丢失了。我需要重新配置绑定,添加群组 ID。","thinkingSignature":"952f1f7d49fff1d6e351f33caa89b88cf3fd0116dcf3d793fc4c24d779166552"},{"type":"text","text":"绑定配置丢失了群组 ID,让我重新配置:\n"},{"type":"toolCall","id":"call_function_f494ue46izys_1","name":"gateway","arguments":{"action":"config.get"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":75861,"output":61,"cacheRead":16921,"cacheWrite":0,"totalTokens":92843,"cost":{"input":1.137915,"output":0.00366,"cacheRead":0.033842,"cacheWrite":0,"total":1.175417}},"stopReason":"toolUse","timestamp":1770982128443}}
|
||
{"type":"message","id":"dd9d55c7","parentId":"36a6a477","timestamp":"2026-02-13T11:28:52.323Z","message":{"role":"toolResult","toolCallId":"call_function_f494ue46izys_1","toolName":"gateway","content":[{"type":"text","text":"{\n \"ok\": true,\n \"result\": {\n \"path\": \"/home/starmen1265/.openclaw/openclaw.json\",\n \"exists\": true,\n \"raw\": \"{\\n \\\"meta\\\": {\\n \\\"lastTouchedVersion\\\": \\\"2026.2.9\\\",\\n \\\"lastTouchedAt\\\": \\\"2026-02-13T11:20:37.040Z\\\"\\n },\\n \\\"wizard\\\": {\\n \\\"lastRunAt\\\": \\\"2026-02-11T11:00:45.701Z\\\",\\n \\\"lastRunVersion\\\": \\\"2026.2.9\\\",\\n \\\"lastRunCommand\\\": \\\"onboard\\\",\\n \\\"lastRunMode\\\": \\\"local\\\"\\n },\\n \\\"auth\\\": {\\n \\\"profiles\\\": {\\n \\\"kimi-coding:default\\\": {\\n \\\"provider\\\": \\\"kimi-coding\\\",\\n \\\"mode\\\": \\\"api_key\\\"\\n }\\n }\\n },\\n \\\"models\\\": {\\n \\\"mode\\\": \\\"merge\\\",\\n \\\"providers\\\": {\\n \\\"alibaba-cloud\\\": {\\n \\\"baseUrl\\\": \\\"https://dashscope.aliyuncs.com/compatible-mode/v1\\\",\\n \\\"api\\\": \\\"openai-completions\\\",\\n \\\"models\\\": [\\n {\\n \\\"id\\\": \\\"qwen3-max-2026-01-23\\\",\\n \\\"name\\\": \\\"qwen3-max-thinking\\\",\\n \\\"reasoning\\\": false,\\n \\\"input\\\": [\\n \\\"text\\\"\\n ],\\n \\\"cost\\\": {\\n \\\"input\\\": 0,\\n \\\"output\\\": 0,\\n \\\"cacheRead\\\": 0,\\n \\\"cacheWrite\\\": 0\\n },\\n \\\"contextWindow\\\": 262144,\\n \\\"maxTokens\\\": 65536\\n }\\n ]\\n },\\n \\\"mm\\\": {\\n \\\"baseUrl\\\": \\\"https://api.minimaxi.com/anthropic\\\",\\n \\\"apiKey\\\": \\\"__OPENCLAW_REDACTED__\\\",\\n \\\"api\\\": \\\"anthropic-messages\\\",\\n \\\"authHeader\\\": true,\\n \\\"models\\\": [\\n {\\n \\\"id\\\": \\\"MiniMax-M2.5\\\",\\n \\\"name\\\": \\\"MiniMax M2.5\\\",\\n \\\"reasoning\\\": false,\\n \\\"input\\\": [\\n \\\"text\\\"\\n ],\\n \\\"cost\\\": {\\n \\\"input\\\": 15,\\n \\\"output\\\": 60,\\n \\\"cacheRead\\\": 2,\\n \\\"cacheWrite\\\": 10\\n },\\n \\\"contextWindow\\\": 200000,\\n \\\"maxTokens\\\": 8192\\n }\\n ]\\n },\\n \\\"zhipu\\\": {\\n \\\"baseUrl\\\": \\\"https://open.bigmodel.cn/api/coding/paas/v4\\\",\\n \\\"apiKey\\\": \\\"__OPENCLAW_REDACTED__\\\",\\n \\\"api\\\": \\\"openai-completions\\\",\\n \\\"models\\\": [\\n {\\n \\\"id\\\": \\\"glm-5\\\",\\n \\\"name\\\": \\\"glm 5\\\",\\n \\\"reasoning\\\": false,\\n \\\"input\\\": [\\n \\\"text\\\"\\n ],\\n \\\"cost\\\": {\\n \\\"input\\\": 0,\\n \\\"output\\\": 0,\\n \\\"cacheRead\\\": 0,\\n \\\"cacheWrite\\\": 0\\n },\\n \\\"contextWindow\\\": 200000,\\n \\\"maxTokens\\\": 8192\\n },\\n {\\n \\\"id\\\": \\\"glm-4.7-FlashX\\\",\\n \\\"name\\\": \\\"glm 4.7 FlashX\\\",\\n \\\"reasoning\\\": false,\\n \\\"input\\\": [\\n \\\"text\\\"\\n ],\\n \\\"cost\\\": {\\n \\\"input\\\": 0,\\n \\\"output\\\": 0,\\n \\\"cacheRead\\\": 0,\\n \\\"cacheWrite\\\": 0\\n },\\n \\\"contextWindow\\\": 200000,\\n \\\"maxTokens\\\": 8192\\n }\\n ]\\n }\\n }\\n },\\n \\\"agents\\\": {\\n \\\"defaults\\\": {\\n \\\"model\\\": {\\n \\\"primary\\\": \\\"m25\\\",\\n \\\"fallbacks\\\": [\\n \\\"g47f\\\",\\n \\\"g5\\\",\\n \\\"qmax\\\",\\n \\\"k2p5\\\"\\n ]\\n },\\n \\\"models\\\": {\\n \\\"zhipu/glm-5\\\": {\\n \\\"alias\\\": \\\"g5\\\"\\n },\\n \\\"zhipu/glm-4.7-FlashX\\\": {\\n \\\"alias\\\": \\\"g47f\\\"\\n },\\n \\\"mm/MiniMax-M2.5\\\": {\\n \\\"alias\\\": \\\"m25\\\"\\n },\\n \\\"alibaba-cloud/qwen3-max-2026-01-23\\\": {\\n \\\"alias\\\": \\\"qmax\\\"\\n },\\n \\\"kimi-coding/k2p5\\\": {\\n \\\"alias\\\": \\\"k2p5\\\"\\n }\\n },\\n \\\"workspace\\\": \\\"/home/starmen1265/.openclaw/workspace\\\",\\n \\\"compaction\\\": {\\n \\\"mode\\\": \\\"safeguard\\\"\\n },\\n \\\"maxConcurrent\\\": 8,\\n \\\"subagents\\\": {\\n \\\"maxConcurrent\\\": 16\\n }\\n },\\n \\\"list\\\": [\\n {\\n \\\"id\\\": \\\"knowledge-base\\\",\\n \\\"name\\\": \\\"知识库维护代理\\\",\\n \\\"workspace\\\": \\\"~/.openclaw/agents/knowledge-base/workspace\\\",\\n \\\"model\\\": \\\"g5\\\",\\n \\\"skills\\\": [\\n \\\"kb-whisper\\\",\\n \\\"kb-workflow\\\",\\n \\\"kb-funasr\\\"\\n ],\\n \\\"identity\\\": {\\n \\\"name\\\": \\\"知识库管理者\\\",\\n \\\"emoji\\\": \\\"📚\\\"\\n }\\n }\\n ]\\n },\\n \\\"tools\\\": {\\n \\\"web\\\": {\\n \\\"search\\\": {\\n \\\"enabled\\\": true,\\n \\\"provider\\\": \\\"brave\\\",\\n \\\"apiKey\\\": \\\"__OPENCLAW_REDACTED__\\\"\\n }\\n },\\n \\\"elevated\\\": {\\n \\\"enabled\\\": true,\\n \\\"allowFrom\\\": {\\n \\\"webchat\\\": [\\n \\\"*\\\"\\n ],\\n \\\"tui\\\": [\\n \\\"*\\\"\\n ],\\n \\\"wecom\\\": [\\n \\\"*\\\"\\n ]\\n }\\n },\\n \\\"exec\\\": {\\n \\\"security\\\": \\\"full\\\"\\n }\\n },\\n \\\"bindings\\\": [\\n {\\n \\\"agentId\\\": \\\"knowledge-base\\\",\\n \\\"match\\\": {\\n \\\"channel\\\": \\\"feishu\\\"\\n }\\n }\\n ],\\n \\\"messages\\\": {\\n \\\"ackReactionScope\\\": \\\"group-mentions\\\"\\n },\\n \\\"commands\\\": {\\n \\\"native\\\": \\\"auto\\\",\\n \\\"nativeSkills\\\": \\\"auto\\\",\\n \\\"restart\\\": true\\n },\\n \\\"approvals\\\": {\\n \\\"exec\\\": {\\n \\\"enabled\\\": false\\n }\\n },\\n \\\"hooks\\\": {\\n \\\"internal\\\": {\\n \\\"enabled\\\": true,\\n \\\"entries\\\": {\\n \\\"boot-md\\\": {\\n \\\"enabled\\\": true\\n },\\n \\\"command-logger\\\": {\\n \\\"enabled\\\": true\\n },\\n \\\"session-memory\\\": {\\n \\\"enabled\\\": true\\n }\\n }\\n }\\n },\\n \\\"channels\\\": {\\n \\\"feishu\\\": {\\n \\\"enabled\\\": true,\\n \\\"appId\\\": \\\"cli_a9f74dc9a3f8dbce\\\",\\n \\\"appSecret\\\": \\\"__OPENCLAW_REDACTED__\\\",\\n \\\"domain\\\": \\\"feishu\\\",\\n \\\"groupPolicy\\\": \\\"open\\\",\\n \\\"requireMention\\\": true\\n }\\n },\\n \\\"gateway\\\": {\\n \\\"port\\\": 18789,\\n \\\"mode\\\": \\\"local\\\",\\n \\\"bind\\\": \\\"lan\\\",\\n \\\"controlUi\\\": {\\n \\\"allowInsecureAuth\\\": true\\n },\\n \\\"auth\\\": {\\n \\\"mode\\\": \\\"token\\\",\\n \\\"token\\\": \\\"__OPENCLAW_REDACTED__\\\"\\n },\\n \\\"tailscale\\\": {\\n \\\"mode\\\": \\\"off\\\",\\n \\\"resetOnExit\\\": false\\n },\\n \\\"nodes\\\": {\\n \\\"denyCommands\\\": [\\n \\\"camera.snap\\\",\\n \\\"camera.clip\\\",\\n \\\"screen.record\\\",\\n \\\"calendar.add\\\",\\n \\\"contacts.add\\\",\\n \\\"reminders.add\\\"\\n ]\\n }\\n },\\n \\\"skills\\\": {\\n \\\"install\\\": {\\n \\\"nodeManager\\\": \\\"npm\\\"\\n }\\n },\\n \\\"plugins\\\": {\\n \\\"entries\\\": {\\n \\\"feishu\\\": {\\n \\\"enabled\\\": true\\n }\\n },\\n \\\"installs\\\": {\\n \\\"feishu\\\": {\\n \\\"source\\\": \\\"npm\\\",\\n \\\"spec\\\": \\\"@m1heng-clawd/feishu\\\",\\n \\\"installPath\\\": \\\"/home/starmen1265/.openclaw/extensions/feishu\\\",\\n \\\"version\\\": \\\"0.1.9\\\",\\n \\\"installedAt\\\": \\\"2026-02-12T16:31:18.854Z\\\"\\n }\\n }\\n }\\n}\\n\",\n \"parsed\": {\n \"meta\": {\n \"lastTouchedVersion\": \"2026.2.9\",\n \"lastTouchedAt\": \"2026-02-13T11:20:37.040Z\"\n },\n \"wizard\": {\n \"lastRunAt\": \"2026-02-11T11:00:45.701Z\",\n \"lastRunVersion\": \"2026.2.9\",\n \"lastRunCommand\": \"onboard\",\n \"lastRunMode\": \"local\"\n },\n \"auth\": {\n \"profiles\": {\n \"kimi-coding:default\": {\n \"provider\": \"kimi-coding\",\n \"mode\": \"api_key\"\n }\n }\n },\n \"models\": {\n \"mode\": \"merge\",\n \"providers\": {\n \"alibaba-cloud\": {\n \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"qwen3-max-2026-01-23\",\n \"name\": \"qwen3-max-thinking\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 262144,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"mm\": {\n \"baseUrl\": \"https://api.minimaxi.com/anthropic\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"anthropic-messages\",\n \"authHeader\": true,\n \"models\": [\n {\n \"id\": \"MiniMax-M2.5\",\n \"name\": \"MiniMax M2.5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 15,\n \"output\": 60,\n \"cacheRead\": 2,\n \"cacheWrite\": 10\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"zhipu\": {\n \"baseUrl\": \"https://open.bigmodel.cn/api/coding/paas/v4\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"glm-5\",\n \"name\": \"glm 5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n },\n {\n \"id\": \"glm-4.7-FlashX\",\n \"name\": \"glm 4.7 FlashX\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n }\n }\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n },\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g5\",\n \"skills\": [\n \"kb-whisper\",\n \"kb-workflow\",\n \"kb-funasr\"\n ],\n \"identity\": {\n \"name\": \"知识库管理者\",\n \"emoji\": \"📚\"\n }\n }\n ]\n },\n \"tools\": {\n \"web\": {\n \"search\": {\n \"enabled\": true,\n \"provider\": \"brave\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\"\n }\n },\n \"elevated\": {\n \"enabled\": true,\n \"allowFrom\": {\n \"webchat\": [\n \"*\"\n ],\n \"tui\": [\n \"*\"\n ],\n \"wecom\": [\n \"*\"\n ]\n }\n },\n \"exec\": {\n \"security\": \"full\"\n }\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\"\n }\n }\n ],\n \"messages\": {\n \"ackReactionScope\": \"group-mentions\"\n },\n \"commands\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\",\n \"restart\": true\n },\n \"approvals\": {\n \"exec\": {\n \"enabled\": false\n }\n },\n \"hooks\": {\n \"internal\": {\n \"enabled\": true,\n \"entries\": {\n \"boot-md\": {\n \"enabled\": true\n },\n \"command-logger\": {\n \"enabled\": true\n },\n \"session-memory\": {\n \"enabled\": true\n }\n }\n }\n },\n \"channels\": {\n \"feishu\": {\n \"enabled\": true,\n \"appId\": \"cli_a9f74dc9a3f8dbce\",\n \"appSecret\": \"__OPENCLAW_REDACTED__\",\n \"domain\": \"feishu\",\n \"groupPolicy\": \"open\",\n \"requireMention\": true\n }\n },\n \"gateway\": {\n \"port\": 18789,\n \"mode\": \"local\",\n \"bind\": \"lan\",\n \"controlUi\": {\n \"allowInsecureAuth\": true\n },\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"__OPENCLAW_REDACTED__\"\n },\n \"tailscale\": {\n \"mode\": \"off\",\n \"resetOnExit\": false\n },\n \"nodes\": {\n \"denyCommands\": [\n \"camera.snap\",\n \"camera.clip\",\n \"screen.record\",\n \"calendar.add\",\n \"contacts.add\",\n \"reminders.add\"\n ]\n }\n },\n \"skills\": {\n \"install\": {\n \"nodeManager\": \"npm\"\n }\n },\n \"plugins\": {\n \"entries\": {\n \"feishu\": {\n \"enabled\": true\n }\n },\n \"installs\": {\n \"feishu\": {\n \"source\": \"npm\",\n \"spec\": \"@m1heng-clawd/feishu\",\n \"installPath\": \"/home/starmen1265/.openclaw/extensions/feishu\",\n \"version\": \"0.1.9\",\n \"installedAt\": \"2026-02-12T16:31:18.854Z\"\n }\n }\n }\n },\n \"valid\": true,\n \"config\": {\n \"meta\": {\n \"lastTouchedVersion\": \"2026.2.9\",\n \"lastTouchedAt\": \"2026-02-13T11:20:37.040Z\"\n },\n \"wizard\": {\n \"lastRunAt\": \"2026-02-11T11:00:45.701Z\",\n \"lastRunVersion\": \"2026.2.9\",\n \"lastRunCommand\": \"onboard\",\n \"lastRunMode\": \"local\"\n },\n \"auth\": {\n \"profiles\": {\n \"kimi-coding:default\": {\n \"provider\": \"kimi-coding\",\n \"mode\": \"api_key\"\n }\n }\n },\n \"models\": {\n \"mode\": \"merge\",\n \"providers\": {\n \"alibaba-cloud\": {\n \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"qwen3-max-2026-01-23\",\n \"name\": \"qwen3-max-thinking\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 262144,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"mm\": {\n \"baseUrl\": \"https://api.minimaxi.com/anthropic\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"anthropic-messages\",\n \"authHeader\": true,\n \"models\": [\n {\n \"id\": \"MiniMax-M2.5\",\n \"name\": \"MiniMax M2.5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 15,\n \"output\": 60,\n \"cacheRead\": 2,\n \"cacheWrite\": 10\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n },\n \"zhipu\": {\n \"baseUrl\": \"https://open.bigmodel.cn/api/coding/paas/v4\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"glm-5\",\n \"name\": \"glm 5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n },\n {\n \"id\": \"glm-4.7-FlashX\",\n \"name\": \"glm 4.7 FlashX\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": \"__OPENCLAW_REDACTED__\"\n }\n ]\n }\n }\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n },\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"/home/starmen1265/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g5\",\n \"skills\": [\n \"kb-whisper\",\n \"kb-workflow\",\n \"kb-funasr\"\n ],\n \"identity\": {\n \"name\": \"知识库管理者\",\n \"emoji\": \"📚\"\n }\n }\n ]\n },\n \"tools\": {\n \"web\": {\n \"search\": {\n \"enabled\": true,\n \"provider\": \"brave\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\"\n }\n },\n \"elevated\": {\n \"enabled\": true,\n \"allowFrom\": {\n \"webchat\": [\n \"*\"\n ],\n \"tui\": [\n \"*\"\n ],\n \"wecom\": [\n \"*\"\n ]\n }\n },\n \"exec\": {\n \"security\": \"full\"\n }\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\"\n }\n }\n ],\n \"messages\": {\n \"ackReactionScope\": \"group-mentions\"\n },\n \"commands\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\",\n \"restart\": true\n },\n \"approvals\": {\n \"exec\": {\n \"enabled\": false\n }\n },\n \"hooks\": {\n \"internal\": {\n \"enabled\": true,\n \"entries\": {\n \"boot-md\": {\n \"enabled\": true\n },\n \"command-logger\": {\n \"enabled\": true\n },\n \"session-memory\": {\n \"enabled\": true\n }\n }\n }\n },\n \"channels\": {\n \"feishu\": {\n \"enabled\": true,\n \"appId\": \"cli_a9f74dc9a3f8dbce\",\n \"appSecret\": \"__OPENCLAW_REDACTED__\",\n \"domain\": \"feishu\",\n \"groupPolicy\": \"open\",\n \"requireMention\": true\n }\n },\n \"gateway\": {\n \"port\": 18789,\n \"mode\": \"local\",\n \"bind\": \"lan\",\n \"controlUi\": {\n \"allowInsecureAuth\": true\n },\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"__OPENCLAW_REDACTED__\"\n },\n \"tailscale\": {\n \"mode\": \"off\",\n \"resetOnExit\": false\n },\n \"nodes\": {\n \"denyCommands\": [\n \"camera.snap\",\n \"camera.clip\",\n \"screen.record\",\n \"calendar.add\",\n \"contacts.add\",\n \"reminders.add\"\n ]\n }\n },\n \"skills\": {\n \"install\": {\n \"nodeManager\": \"npm\"\n }\n },\n \"plugins\": {\n \"entries\": {\n \"feishu\": {\n \"enabled\": true\n }\n },\n \"installs\": {\n \"feishu\": {\n \"source\": \"npm\",\n \"spec\": \"@m1heng-clawd/feishu\",\n \"installPath\": \"/home/starmen1265/.openclaw/extensions/feishu\",\n \"version\": \"0.1.9\",\n \"installedAt\": \"2026-02-12T16:31:18.854Z\"\n }\n }\n }\n },\n \"hash\": \"c5d7348c37d629dc2ec0e9ce5c86c17f3b03aedc33efea300ab266aad07ee83c\",\n \"issues\": [],\n \"warnings\": [\n {\n \"path\": \"plugins.entries.feishu\",\n \"message\": \"plugin feishu: duplicate plugin id detected; later plugin may be overridden (/home/starmen1265/.npm-global/lib/node_modules/openclaw/extensions/feishu/index.ts)\"\n }\n ],\n \"legacyIssues\": []\n }\n}"}],"details":{"ok":true,"result":{"path":"/home/starmen1265/.openclaw/openclaw.json","exists":true,"raw":"{\n \"meta\": {\n \"lastTouchedVersion\": \"2026.2.9\",\n \"lastTouchedAt\": \"2026-02-13T11:20:37.040Z\"\n },\n \"wizard\": {\n \"lastRunAt\": \"2026-02-11T11:00:45.701Z\",\n \"lastRunVersion\": \"2026.2.9\",\n \"lastRunCommand\": \"onboard\",\n \"lastRunMode\": \"local\"\n },\n \"auth\": {\n \"profiles\": {\n \"kimi-coding:default\": {\n \"provider\": \"kimi-coding\",\n \"mode\": \"api_key\"\n }\n }\n },\n \"models\": {\n \"mode\": \"merge\",\n \"providers\": {\n \"alibaba-cloud\": {\n \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"qwen3-max-2026-01-23\",\n \"name\": \"qwen3-max-thinking\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 262144,\n \"maxTokens\": 65536\n }\n ]\n },\n \"mm\": {\n \"baseUrl\": \"https://api.minimaxi.com/anthropic\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"anthropic-messages\",\n \"authHeader\": true,\n \"models\": [\n {\n \"id\": \"MiniMax-M2.5\",\n \"name\": \"MiniMax M2.5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 15,\n \"output\": 60,\n \"cacheRead\": 2,\n \"cacheWrite\": 10\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n }\n ]\n },\n \"zhipu\": {\n \"baseUrl\": \"https://open.bigmodel.cn/api/coding/paas/v4\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"glm-5\",\n \"name\": \"glm 5\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n },\n {\n \"id\": \"glm-4.7-FlashX\",\n \"name\": \"glm 4.7 FlashX\",\n \"reasoning\": false,\n \"input\": [\n \"text\"\n ],\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n },\n \"contextWindow\": 200000,\n \"maxTokens\": 8192\n }\n ]\n }\n }\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"m25\",\n \"fallbacks\": [\n \"g47f\",\n \"g5\",\n \"qmax\",\n \"k2p5\"\n ]\n },\n \"models\": {\n \"zhipu/glm-5\": {\n \"alias\": \"g5\"\n },\n \"zhipu/glm-4.7-FlashX\": {\n \"alias\": \"g47f\"\n },\n \"mm/MiniMax-M2.5\": {\n \"alias\": \"m25\"\n },\n \"alibaba-cloud/qwen3-max-2026-01-23\": {\n \"alias\": \"qmax\"\n },\n \"kimi-coding/k2p5\": {\n \"alias\": \"k2p5\"\n }\n },\n \"workspace\": \"/home/starmen1265/.openclaw/workspace\",\n \"compaction\": {\n \"mode\": \"safeguard\"\n },\n \"maxConcurrent\": 8,\n \"subagents\": {\n \"maxConcurrent\": 16\n }\n },\n \"list\": [\n {\n \"id\": \"knowledge-base\",\n \"name\": \"知识库维护代理\",\n \"workspace\": \"~/.openclaw/agents/knowledge-base/workspace\",\n \"model\": \"g5\",\n \"skills\": [\n \"kb-whisper\",\n \"kb-workflow\",\n \"kb-funasr\"\n ],\n \"identity\": {\n \"name\": \"知识库管理者\",\n \"emoji\": \"📚\"\n }\n }\n ]\n },\n \"tools\": {\n \"web\": {\n \"search\": {\n \"enabled\": true,\n \"provider\": \"brave\",\n \"apiKey\": \"__OPENCLAW_REDACTED__\"\n }\n },\n \"elevated\": {\n \"enabled\": true,\n \"allowFrom\": {\n \"webchat\": [\n \"*\"\n ],\n \"tui\": [\n \"*\"\n ],\n \"wecom\": [\n \"*\"\n ]\n }\n },\n \"exec\": {\n \"security\": \"full\"\n }\n },\n \"bindings\": [\n {\n \"agentId\": \"knowledge-base\",\n \"match\": {\n \"channel\": \"feishu\"\n }\n }\n ],\n \"messages\": {\n \"ackReactionScope\": \"group-mentions\"\n },\n \"commands\": {\n \"native\": \"auto\",\n \"nativeSkills\": \"auto\",\n \"restart\": true\n },\n \"approvals\": {\n \"exec\": {\n \"enabled\": false\n }\n },\n \"hooks\": {\n \"internal\": {\n \"enabled\": true,\n \"entries\": {\n \"boot-md\": {\n \"enabled\": true\n },\n \"command-logger\": {\n \"enabled\": true\n },\n \"session-memory\": {\n \"enabled\": true\n }\n }\n }\n },\n \"channels\": {\n \"feishu\": {\n \"enabled\": true,\n \"appId\": \"cli_a9f74dc9a3f8dbce\",\n \"appSecret\": \"__OPENCLAW_REDACTED__\",\n \"domain\": \"feishu\",\n \"groupPolicy\": \"open\",\n \"requireMention\": true\n }\n },\n \"gateway\": {\n \"port\": 18789,\n \"mode\": \"local\",\n \"bind\": \"lan\",\n \"controlUi\": {\n \"allowInsecureAuth\": true\n },\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"__OPENCLAW_REDACTED__\"\n },\n \"tailscale\": {\n \"mode\": \"off\",\n \"resetOnExit\": false\n },\n \"nodes\": {\n \"denyCommands\": [\n \"camera.snap\",\n \"camera.clip\",\n \"screen.record\",\n \"calendar.add\",\n \"contacts.add\",\n \"reminders.add\"\n ]\n }\n },\n \"skills\": {\n \"install\": {\n \"nodeManager\": \"npm\"\n }\n },\n \"plugins\": {\n \"entries\": {\n \"feishu\": {\n \"enabled\": true\n }\n },\n \"installs\": {\n \"feishu\": {\n \"source\": \"npm\",\n \"spec\": \"@m1heng-clawd/feishu\",\n \"installPath\": \"/home/starmen1265/.openclaw/extensions/feishu\",\n \"version\": \"0.1.9\",\n \"installedAt\": \"2026-02-12T16:31:18.854Z\"\n }\n }\n }\n}\n","parsed":{"meta":{"lastTouchedVersion":"2026.2.9","lastTouchedAt":"2026-02-13T11:20:37.040Z"},"wizard":{"lastRunAt":"2026-02-11T11:00:45.701Z","lastRunVersion":"2026.2.9","lastRunCommand":"onboard","lastRunMode":"local"},"auth":{"profiles":{"kimi-coding:default":{"provider":"kimi-coding","mode":"api_key"}}},"models":{"mode":"merge","providers":{"alibaba-cloud":{"baseUrl":"https://dashscope.aliyuncs.com/compatible-mode/v1","api":"openai-completions","models":[{"id":"qwen3-max-2026-01-23","name":"qwen3-max-thinking","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":"__OPENCLAW_REDACTED__"}]},"mm":{"baseUrl":"https://api.minimaxi.com/anthropic","apiKey":"__OPENCLAW_REDACTED__","api":"anthropic-messages","authHeader":true,"models":[{"id":"MiniMax-M2.5","name":"MiniMax M2.5","reasoning":false,"input":["text"],"cost":{"input":15,"output":60,"cacheRead":2,"cacheWrite":10},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]},"zhipu":{"baseUrl":"https://open.bigmodel.cn/api/coding/paas/v4","apiKey":"__OPENCLAW_REDACTED__","api":"openai-completions","models":[{"id":"glm-5","name":"glm 5","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"},{"id":"glm-4.7-FlashX","name":"glm 4.7 FlashX","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]}}},"agents":{"defaults":{"model":{"primary":"m25","fallbacks":["g47f","g5","qmax","k2p5"]},"models":{"zhipu/glm-5":{"alias":"g5"},"zhipu/glm-4.7-FlashX":{"alias":"g47f"},"mm/MiniMax-M2.5":{"alias":"m25"},"alibaba-cloud/qwen3-max-2026-01-23":{"alias":"qmax"},"kimi-coding/k2p5":{"alias":"k2p5"}},"workspace":"/home/starmen1265/.openclaw/workspace","compaction":{"mode":"safeguard"},"maxConcurrent":8,"subagents":{"maxConcurrent":16}},"list":[{"id":"knowledge-base","name":"知识库维护代理","workspace":"~/.openclaw/agents/knowledge-base/workspace","model":"g5","skills":["kb-whisper","kb-workflow","kb-funasr"],"identity":{"name":"知识库管理者","emoji":"📚"}}]},"tools":{"web":{"search":{"enabled":true,"provider":"brave","apiKey":"__OPENCLAW_REDACTED__"}},"elevated":{"enabled":true,"allowFrom":{"webchat":["*"],"tui":["*"],"wecom":["*"]}},"exec":{"security":"full"}},"bindings":[{"agentId":"knowledge-base","match":{"channel":"feishu"}}],"messages":{"ackReactionScope":"group-mentions"},"commands":{"native":"auto","nativeSkills":"auto","restart":true},"approvals":{"exec":{"enabled":false}},"hooks":{"internal":{"enabled":true,"entries":{"boot-md":{"enabled":true},"command-logger":{"enabled":true},"session-memory":{"enabled":true}}}},"channels":{"feishu":{"enabled":true,"appId":"cli_a9f74dc9a3f8dbce","appSecret":"__OPENCLAW_REDACTED__","domain":"feishu","groupPolicy":"open","requireMention":true}},"gateway":{"port":18789,"mode":"local","bind":"lan","controlUi":{"allowInsecureAuth":true},"auth":{"mode":"token","token":"__OPENCLAW_REDACTED__"},"tailscale":{"mode":"off","resetOnExit":false},"nodes":{"denyCommands":["camera.snap","camera.clip","screen.record","calendar.add","contacts.add","reminders.add"]}},"skills":{"install":{"nodeManager":"npm"}},"plugins":{"entries":{"feishu":{"enabled":true}},"installs":{"feishu":{"source":"npm","spec":"@m1heng-clawd/feishu","installPath":"/home/starmen1265/.openclaw/extensions/feishu","version":"0.1.9","installedAt":"2026-02-12T16:31:18.854Z"}}}},"valid":true,"config":{"meta":{"lastTouchedVersion":"2026.2.9","lastTouchedAt":"2026-02-13T11:20:37.040Z"},"wizard":{"lastRunAt":"2026-02-11T11:00:45.701Z","lastRunVersion":"2026.2.9","lastRunCommand":"onboard","lastRunMode":"local"},"auth":{"profiles":{"kimi-coding:default":{"provider":"kimi-coding","mode":"api_key"}}},"models":{"mode":"merge","providers":{"alibaba-cloud":{"baseUrl":"https://dashscope.aliyuncs.com/compatible-mode/v1","api":"openai-completions","models":[{"id":"qwen3-max-2026-01-23","name":"qwen3-max-thinking","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":"__OPENCLAW_REDACTED__"}]},"mm":{"baseUrl":"https://api.minimaxi.com/anthropic","apiKey":"__OPENCLAW_REDACTED__","api":"anthropic-messages","authHeader":true,"models":[{"id":"MiniMax-M2.5","name":"MiniMax M2.5","reasoning":false,"input":["text"],"cost":{"input":15,"output":60,"cacheRead":2,"cacheWrite":10},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]},"zhipu":{"baseUrl":"https://open.bigmodel.cn/api/coding/paas/v4","apiKey":"__OPENCLAW_REDACTED__","api":"openai-completions","models":[{"id":"glm-5","name":"glm 5","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"},{"id":"glm-4.7-FlashX","name":"glm 4.7 FlashX","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":"__OPENCLAW_REDACTED__"}]}}},"agents":{"defaults":{"model":{"primary":"m25","fallbacks":["g47f","g5","qmax","k2p5"]},"models":{"zhipu/glm-5":{"alias":"g5"},"zhipu/glm-4.7-FlashX":{"alias":"g47f"},"mm/MiniMax-M2.5":{"alias":"m25"},"alibaba-cloud/qwen3-max-2026-01-23":{"alias":"qmax"},"kimi-coding/k2p5":{"alias":"k2p5"}},"workspace":"/home/starmen1265/.openclaw/workspace","compaction":{"mode":"safeguard"},"maxConcurrent":8,"subagents":{"maxConcurrent":16}},"list":[{"id":"knowledge-base","name":"知识库维护代理","workspace":"/home/starmen1265/.openclaw/agents/knowledge-base/workspace","model":"g5","skills":["kb-whisper","kb-workflow","kb-funasr"],"identity":{"name":"知识库管理者","emoji":"📚"}}]},"tools":{"web":{"search":{"enabled":true,"provider":"brave","apiKey":"__OPENCLAW_REDACTED__"}},"elevated":{"enabled":true,"allowFrom":{"webchat":["*"],"tui":["*"],"wecom":["*"]}},"exec":{"security":"full"}},"bindings":[{"agentId":"knowledge-base","match":{"channel":"feishu"}}],"messages":{"ackReactionScope":"group-mentions"},"commands":{"native":"auto","nativeSkills":"auto","restart":true},"approvals":{"exec":{"enabled":false}},"hooks":{"internal":{"enabled":true,"entries":{"boot-md":{"enabled":true},"command-logger":{"enabled":true},"session-memory":{"enabled":true}}}},"channels":{"feishu":{"enabled":true,"appId":"cli_a9f74dc9a3f8dbce","appSecret":"__OPENCLAW_REDACTED__","domain":"feishu","groupPolicy":"open","requireMention":true}},"gateway":{"port":18789,"mode":"local","bind":"lan","controlUi":{"allowInsecureAuth":true},"auth":{"mode":"token","token":"__OPENCLAW_REDACTED__"},"tailscale":{"mode":"off","resetOnExit":false},"nodes":{"denyCommands":["camera.snap","camera.clip","screen.record","calendar.add","contacts.add","reminders.add"]}},"skills":{"install":{"nodeManager":"npm"}},"plugins":{"entries":{"feishu":{"enabled":true}},"installs":{"feishu":{"source":"npm","spec":"@m1heng-clawd/feishu","installPath":"/home/starmen1265/.openclaw/extensions/feishu","version":"0.1.9","installedAt":"2026-02-12T16:31:18.854Z"}}}},"hash":"c5d7348c37d629dc2ec0e9ce5c86c17f3b03aedc33efea300ab266aad07ee83c","issues":[],"warnings":[{"path":"plugins.entries.feishu","message":"plugin feishu: duplicate plugin id detected; later plugin may be overridden (/home/starmen1265/.npm-global/lib/node_modules/openclaw/extensions/feishu/index.ts)"}],"legacyIssues":[]}},"isError":false,"timestamp":1770982132319}}
|
||
{"type":"message","id":"5787a92e","parentId":"dd9d55c7","timestamp":"2026-02-13T11:29:02.780Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"我看到配置已经改变了,bindings 现在只有 channel: \"feishu\" 没有具体的 peer id,而且 channel 配置也变了(groupPolicy 从 allowlist 变成了 open,requireMention 设置为 true)。\n\n当前 bindings 没有群组 ID,所以任何飞书群组都会路由到 knowledge-base 代理。这应该就是用户想要的效果。\n\n但是用户说的是绑定到具体的群组 ID。让我再次检查一下配置问题。\n\n目前配置:\n- bindings: knowledge-base 匹配所有 feishu 群组\n- channel.feishu.groupPolicy: open (对所有群组开放)\n- requireMention: true (需要 @ 才会回复)\n\n这意味着knowledge-base代理现在应该可以处理这个群组的消息了。\n\n蒋先生发送的\"你好\"没有 @ 任何人,所以可能因为 requireMention: true 而没有触发回复。\n\n让我汇报当前状态给用户。","thinkingSignature":"79295fcad6f4a01b57e41b54c339c0f894fa645d7fe775fa4d32a2a3f6fd841b"},{"type":"text","text":"浩南收到,蒋先生!🧙♂️\n\n检查发现配置已变更:\n- **bindings**:knowledge-base 现在匹配所有飞书群组(channel: \"feishu\")\n- **groupPolicy**:已改为 `open`(对所有群组开放)\n- **requireMention**:已设为 `true`(需要 @ 才会回复)\n\n蒋先生在群里说\"你好\"但没有 @ 知识库管理者,所以没有触发回复。\n\n需要我修改为**仅绑定到指定群组**吗?这样可以通过群组ID精确绑定。"}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":81856,"output":293,"cacheRead":16921,"cacheWrite":0,"totalTokens":99070,"cost":{"input":1.22784,"output":0.017580000000000002,"cacheRead":0.033842,"cacheWrite":0,"total":1.279262}},"stopReason":"stop","timestamp":1770982132323}}
|
||
{"type":"message","id":"fa290e57","parentId":"5787a92e","timestamp":"2026-02-13T11:30:21.054Z","message":{"role":"user","content":[{"type":"text","text":"Pre-compaction memory flush. Store durable memories now (use memory/YYYY-MM-DD.md; create memory/ if needed). If nothing to store, reply with NO_REPLY."}],"timestamp":1770982221048}}
|
||
{"type":"message","id":"699f34d8","parentId":"fa290e57","timestamp":"2026-02-13T11:30:41.193Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"这是一个预压缩内存刷新提醒。我需要检查是否有需要存储到持久内存的内容。\n\n让我看看今天有什么重要的事情需要记录:\n1. 配置了 knowledge-base 代理\n2. 绑定到飞书群组 oc_79bcbd274c7cff8757b52e2ec1d8e12b\n3. 设置了系统提示词(知识库管理者)\n4. 模型改为 g5\n5. 飞书频道 groupPolicy 改为 open,requireMention 设为 true\n\n这些内容中,需要持久记忆的关键信息:\n- knowledge-base 代理已创建并绑定到飞书群组\n- 配置变更需要记录\n\n让我记录到 memory/2026-02-13.md","thinkingSignature":"cb8cfafaaffc800224a1b500ece7fb0e2c74c9d8ae558edf9b930e7ebff03c14"},{"type":"toolCall","id":"call_function_fqnn41vbiwcm_1","name":"exec","arguments":{"command":"mkdir -p ~/.openclaw/workspace/memory"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":32,"output":183,"cacheRead":16959,"cacheWrite":81816,"totalTokens":98990,"cost":{"input":0.00048,"output":0.01098,"cacheRead":0.033918,"cacheWrite":0.8181600000000001,"total":0.8635380000000001}},"stopReason":"toolUse","timestamp":1770982221053}}
|
||
{"type":"message","id":"19a6aafc","parentId":"699f34d8","timestamp":"2026-02-13T11:30:41.205Z","message":{"role":"toolResult","toolCallId":"call_function_fqnn41vbiwcm_1","toolName":"exec","content":[{"type":"text","text":"(no output)"}],"details":{"status":"completed","exitCode":0,"durationMs":8,"aggregated":"","cwd":"/home/starmen1265/.openclaw/workspace"},"isError":false,"timestamp":1770982241201}}
|
||
{"type":"message","id":"849d5890","parentId":"19a6aafc","timestamp":"2026-02-13T11:30:44.415Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"让我检查今天的 memory 文件有没有已经存在的内容。","thinkingSignature":"c0f00dcadc78b4f75cc4b105149ce9167df97c27c9450379bf7b7650c488f5f6"},{"type":"toolCall","id":"call_function_8m2qmdh8pr6t_1","name":"exec","arguments":{"command":"cat ~/.openclaw/workspace/memory/2026-02-13.md 2>/dev/null || echo \"FILE_NOT_EXISTS\""}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":82049,"output":63,"cacheRead":16959,"cacheWrite":0,"totalTokens":99071,"cost":{"input":1.2307350000000001,"output":0.00378,"cacheRead":0.033918,"cacheWrite":0,"total":1.268433}},"stopReason":"toolUse","timestamp":1770982241205}}
|
||
{"type":"message","id":"7583369c","parentId":"849d5890","timestamp":"2026-02-13T11:30:44.428Z","message":{"role":"toolResult","toolCallId":"call_function_8m2qmdh8pr6t_1","toolName":"exec","content":[{"type":"text","text":"# 2026-02-13 工作日志\n\n## 完成事项\n\n### deep_analyzer.py 重构\n- 改为一次性 AI 调用生成完整报告\n- 修复内容读取:支持 `text`、`subtitle`、`subtitles`、`description` 多种字段\n- 时间轴分片策略:按 10 分钟分片\n- 删除内容中的\"标签\" section,只保留 frontmatter 的 tags\n\n### 报告格式\n```\n---\ntitle: \"xxx\"\ndate: xxx\nduration: xxx\nauthor: xxx\nbvid: xxx\nplatform: bilibili\nurl: xxx\ntags: [\"tag1\", \"tag2\", ...]\n---\n\n## 标题\n[AI 自总结标题]\n\n## 摘要\n[200-400字]\n\n## 主要主题\n- 主题1\n- 主题2\n...\n\n## 关键见解\n- 见解1\n- 见解2\n...\n\n## 时间轴\n### 第 1 部分 (00:00 - 10:00)\n[详细分析]\n\n### 第 2 部分 (10:00 - 20:00)\n[详细分析]\n...\n```\n\n## 待办\n- 无\n\n## 备注\n- AI 模型:glm-4.7\n- 内容长度:约 8000 字符输入,生成详细分析报告\n\n## 2026-02-13 知识库工作流\n\n### BV1x3ctzkEdf 添加到知识库\n- 视频标题:冬奥会和超级碗,为何让MAGA帝君破防?\n- 工作流完整执行:\n 1. 链接解析 ✅\n 2. 元数据提取 ✅\n 3. 字幕下载:无官方字幕,使用 Whisper ✅\n 4. Whisper 语音识别:981秒,464分段 ✅\n 5. 深度分析:9主题,5洞察,5标签 ✅\n 6. 归档:/archive/2026-02-13/bilibili_BV1x3ctzkEdf.md ✅\n\n### Git 仓库配置\n- 远端仓库:ssh://sc-gitea@192.168.1.22:2223/starmen1265/knowledge-base.git\n- 本地 archive 目录已关联远端仓库\n- 成功推送到 Gitea(master 分支)\n- kb_workflow.py 已更新归档流程:\n 1. 检查并初始化 Git 仓库\n 2. 关联远端仓库(KB_GIT_REMOTE 环境变量)\n 3. 拉取远端最新代码\n 4. 归档文件后自动 commit + push\n 5. 支持 main/master 分支自动兼容"}],"details":{"status":"completed","exitCode":0,"durationMs":9,"aggregated":"# 2026-02-13 工作日志\n\n## 完成事项\n\n### deep_analyzer.py 重构\n- 改为一次性 AI 调用生成完整报告\n- 修复内容读取:支持 `text`、`subtitle`、`subtitles`、`description` 多种字段\n- 时间轴分片策略:按 10 分钟分片\n- 删除内容中的\"标签\" section,只保留 frontmatter 的 tags\n\n### 报告格式\n```\n---\ntitle: \"xxx\"\ndate: xxx\nduration: xxx\nauthor: xxx\nbvid: xxx\nplatform: bilibili\nurl: xxx\ntags: [\"tag1\", \"tag2\", ...]\n---\n\n## 标题\n[AI 自总结标题]\n\n## 摘要\n[200-400字]\n\n## 主要主题\n- 主题1\n- 主题2\n...\n\n## 关键见解\n- 见解1\n- 见解2\n...\n\n## 时间轴\n### 第 1 部分 (00:00 - 10:00)\n[详细分析]\n\n### 第 2 部分 (10:00 - 20:00)\n[详细分析]\n...\n```\n\n## 待办\n- 无\n\n## 备注\n- AI 模型:glm-4.7\n- 内容长度:约 8000 字符输入,生成详细分析报告\n\n## 2026-02-13 知识库工作流\n\n### BV1x3ctzkEdf 添加到知识库\n- 视频标题:冬奥会和超级碗,为何让MAGA帝君破防?\n- 工作流完整执行:\n 1. 链接解析 ✅\n 2. 元数据提取 ✅\n 3. 字幕下载:无官方字幕,使用 Whisper ✅\n 4. Whisper 语音识别:981秒,464分段 ✅\n 5. 深度分析:9主题,5洞察,5标签 ✅\n 6. 归档:/archive/2026-02-13/bilibili_BV1x3ctzkEdf.md ✅\n\n### Git 仓库配置\n- 远端仓库:ssh://sc-gitea@192.168.1.22:2223/starmen1265/knowledge-base.git\n- 本地 archive 目录已关联远端仓库\n- 成功推送到 Gitea(master 分支)\n- kb_workflow.py 已更新归档流程:\n 1. 检查并初始化 Git 仓库\n 2. 关联远端仓库(KB_GIT_REMOTE 环境变量)\n 3. 拉取远端最新代码\n 4. 归档文件后自动 commit + push\n 5. 支持 main/master 分支自动兼容","cwd":"/home/starmen1265/.openclaw/workspace"},"isError":false,"timestamp":1770982244424}}
|
||
{"type":"message","id":"baae0d60","parentId":"7583369c","timestamp":"2026-02-13T11:30:49.986Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"文件已存在,我需要添加今天新完成的事项:knowledge-base 代理配置。","thinkingSignature":"2d5595acc748c6fd9f7951e11448c680c0ea92b761e2f26da2b4a0cfed16aac0"},{"type":"toolCall","id":"call_function_6824k40u2fl5_1","name":"edit","arguments":{"file_path":"/home/starmen1265/.openclaw/workspace/memory/2026-02-13.md","newText":"## 2026-02-13 知识库工作流\n\n### knowledge-base 代理创建\n- 代理 ID: knowledge-base\n- 模型: g5\n- 绑定: 飞书群组 oc_79bcbd274c7cff8757b52e2ec1d8e12b\n- 系统提示词: 知识库管理者,遇到问题不上报代码/配置修改\n- 技能: kb-whisper, kb-workflow, kb-funasr\n- 飞书配置: groupPolicy=open, requireMention=true\n\n### Git 仓库配置","oldText":"## 2026-02-13 知识库工作流\n\n### Git 仓库配置"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":82683,"output":227,"cacheRead":16959,"cacheWrite":0,"totalTokens":99869,"cost":{"input":1.240245,"output":0.01362,"cacheRead":0.033918,"cacheWrite":0,"total":1.287783}},"stopReason":"toolUse","timestamp":1770982244428}}
|
||
{"type":"message","id":"ab3437da","parentId":"baae0d60","timestamp":"2026-02-13T11:30:49.996Z","message":{"role":"toolResult","toolCallId":"call_function_6824k40u2fl5_1","toolName":"edit","content":[{"type":"text","text":"{\n \"status\": \"error\",\n \"tool\": \"edit\",\n \"error\": \"Could not find the exact text in /home/starmen1265/.openclaw/workspace/memory/2026-02-13.md. The old text must match exactly including all whitespace and newlines.\"\n}"}],"details":{"status":"error","tool":"edit","error":"Could not find the exact text in /home/starmen1265/.openclaw/workspace/memory/2026-02-13.md. The old text must match exactly including all whitespace and newlines."},"isError":false,"timestamp":1770982249991}}
|
||
{"type":"message","id":"61cc1c69","parentId":"ab3437da","timestamp":"2026-02-13T11:30:54.023Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"让我先读取文件看看准确的内容","thinkingSignature":"6b322fc7b2912ef1c45cb71ffe727ab35f98ba7ee30f4e26063b00b4e8e58a74"},{"type":"toolCall","id":"call_function_8r4kfywyiu7f_1","name":"read","arguments":{"file_path":"/home/starmen1265/.openclaw/workspace/memory/2026-02-13.md","limit":20,"offset":50}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":82987,"output":75,"cacheRead":16959,"cacheWrite":0,"totalTokens":100021,"cost":{"input":1.244805,"output":0.0045000000000000005,"cacheRead":0.033918,"cacheWrite":0,"total":1.2832229999999998}},"stopReason":"toolUse","timestamp":1770982249996}}
|
||
{"type":"message","id":"4391ffae","parentId":"61cc1c69","timestamp":"2026-02-13T11:30:54.031Z","message":{"role":"toolResult","toolCallId":"call_function_8r4kfywyiu7f_1","toolName":"read","content":[{"type":"text","text":"- 无\n\n## 备注\n- AI 模型:glm-4.7\n- 内容长度:约 8000 字符输入,生成详细分析报告\n\n## 2026-02-13 知识库工作流\n\n### BV1x3ctzkEdf 添加到知识库\n- 视频标题:冬奥会和超级碗,为何让MAGA帝君破防?\n- 工作流完整执行:\n 1. 链接解析 ✅\n 2. 元数据提取 ✅\n 3. 字幕下载:无官方字幕,使用 Whisper ✅\n 4. Whisper 语音识别:981秒,464分段 ✅\n 5. 深度分析:9主题,5洞察,5标签 ✅\n 6. 归档:/archive/2026-02-13/bilibili_BV1x3ctzkEdf.md ✅\n\n### Git 仓库配置\n- 远端仓库:ssh://sc-gitea@192.168.1.22:2223/starmen1265/knowledge-base.git\n\n[9 more lines in file. Use offset=70 to continue.]"}],"isError":false,"timestamp":1770982254026}}
|
||
{"type":"message","id":"ad620d3a","parentId":"4391ffae","timestamp":"2026-02-13T11:31:03.070Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"我看到了格式。让我追加内容。","thinkingSignature":"828c59fc85346599477d82cbd879567a7982929451f134159518dcc4df3dfcbc"},{"type":"toolCall","id":"call_function_4ym5ogbkrhnr_1","name":"edit","arguments":{"file_path":"/home/starmen1265/.openclaw/workspace/memory/2026-02-13.md","newText":"### Git 仓库配置\n- 远端仓库:ssh://sc-gitea@192.168.1.22:2223/starmen1265/knowledge-base.git\n- 本地 archive 目录已关联远端仓库\n- 成功推送到 Gitea(master 分支)\n- kb_workflow.py 已更新归档流程:\n 1. 检查并初始化 Git 仓库\n 2. 关联远端仓库(KB_GIT_REMOTE 环境变量)\n 3. 拉取远端最新代码\n 4. 归档文件后自动 commit + push\n 5. 支持 main/master 分支自动兼容\n\n### knowledge-base 代理创建\n- 代理 ID: knowledge-base\n- 模型: g5\n- 绑定: 飞书群组 oc_79bcbd274c7cff8757b52e2ec1d8e12b\n- 系统提示词: 知识库管理者\n- 技能: kb-whisper, kb-workflow, kb-funasr\n- 飞书配置: groupPolicy=open, requireMention=true","oldText":"### Git 仓库配置\n- 远端仓库:ssh://sc-gitea@192.168.1.22:2223/starmen1265/knowledge-base.git\n- 本地 archive 目录已关联远端仓库\n- 成功推送到 Gitea(master 分支)\n- kb_workflow.py 已更新归档流程:\n 1. 检查并初始化 Git 仓库\n 2. 关联远端仓库(KB_GIT_REMOTE 环境变量)\n 3. 拉取远端最新代码\n 4. 归档文件后自动 commit + push\n 5. 支持 main/master 分支自动兼容"}}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":83314,"output":448,"cacheRead":16959,"cacheWrite":0,"totalTokens":100721,"cost":{"input":1.24971,"output":0.02688,"cacheRead":0.033918,"cacheWrite":0,"total":1.310508}},"stopReason":"toolUse","timestamp":1770982254031}}
|
||
{"type":"message","id":"4873b452","parentId":"ad620d3a","timestamp":"2026-02-13T11:31:03.075Z","message":{"role":"toolResult","toolCallId":"call_function_4ym5ogbkrhnr_1","toolName":"edit","content":[{"type":"text","text":"Successfully replaced text in /home/starmen1265/.openclaw/workspace/memory/2026-02-13.md."}],"details":{"diff":" ...\n 74 2. 关联远端仓库(KB_GIT_REMOTE 环境变量)\n 75 3. 拉取远端最新代码\n 76 4. 归档文件后自动 commit + push\n 77 5. 支持 main/master 分支自动兼容\n+78 \n+79 ### knowledge-base 代理创建\n+80 - 代理 ID: knowledge-base\n+81 - 模型: g5\n+82 - 绑定: 飞书群组 oc_79bcbd274c7cff8757b52e2ec1d8e12b\n+83 - 系统提示词: 知识库管理者\n+84 - 技能: kb-whisper, kb-workflow, kb-funasr\n+85 - 飞书配置: groupPolicy=open, requireMention=true","firstChangedLine":78},"isError":false,"timestamp":1770982263072}}
|
||
{"type":"message","id":"ecc1bc02","parentId":"4873b452","timestamp":"2026-02-13T11:31:06.036Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"成功记录了 memory。继续等待用户的下一步指示。","thinkingSignature":"d402e3190cbe8b0cfb0f81b29714db2fae68312abcfa1991a876b6c1afaaef9d"},{"type":"text","text":"NO_REPLY"}],"api":"anthropic-messages","provider":"mm","model":"MiniMax-M2.5","usage":{"input":83803,"output":17,"cacheRead":16959,"cacheWrite":0,"totalTokens":100779,"cost":{"input":1.257045,"output":0.00102,"cacheRead":0.033918,"cacheWrite":0,"total":1.2919829999999999}},"stopReason":"stop","timestamp":1770982263075}}
|
||
{"type":"message","id":"1f69604b","parentId":"ecc1bc02","timestamp":"2026-02-13T11:31:06.085Z","message":{"role":"user","content":[{"type":"text","text":"System: [2026-02-13 19:30:20 GMT+8] Feishu[default] message in group oc_79bcbd274c7cff8757b52e2ec1d8e12b: 你好\n\n[Feishu oc_79bcbd274c7cff8757b52e2ec1d8e12b:ou_be83febac9ee2afaa343c642bc697c48 Fri 2026-02-13 19:30 GMT+8] 张青: 你好\n[message_id: om_x100b57c4fa0ba8a8c3a9778f37f0789]"}],"timestamp":1770982266081}}
|