@kodelyth/feishu 2026.5.39 → 2026.5.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/api.ts +32 -0
  2. package/channel-entry.ts +20 -0
  3. package/channel-plugin-api.ts +1 -0
  4. package/contract-api.ts +16 -0
  5. package/dist/accounts-D0ow-lRb.js +429 -0
  6. package/dist/api.js +2308 -0
  7. package/dist/app-registration-DBSnysKJ.js +184 -0
  8. package/dist/audio-preflight.runtime-Dpjbn-7r.js +7 -0
  9. package/dist/channel-13WQvQ0u.js +2115 -0
  10. package/dist/channel-entry.js +22 -0
  11. package/dist/channel-plugin-api.js +2 -0
  12. package/dist/channel.runtime-JMJonrJ4.js +729 -0
  13. package/dist/client-D1pzbBGo.js +157 -0
  14. package/dist/contract-api.js +9 -0
  15. package/dist/conversation-id-_58ecqlx.js +139 -0
  16. package/dist/drive-CgHOluXx.js +883 -0
  17. package/dist/index.js +68 -0
  18. package/dist/monitor-oWptK0zL.js +60 -0
  19. package/dist/monitor.account-DHaWlslg.js +5207 -0
  20. package/dist/monitor.state-C211a4tX.js +100 -0
  21. package/dist/probe-CF4duEpK.js +149 -0
  22. package/dist/rolldown-runtime-DUslC3ob.js +14 -0
  23. package/dist/runtime-DSh5rL_d.js +8 -0
  24. package/dist/runtime-api.js +14 -0
  25. package/dist/secret-contract-NSee-WzN.js +119 -0
  26. package/dist/secret-contract-api.js +2 -0
  27. package/dist/security-audit-DWVC0vSK.js +11 -0
  28. package/dist/security-audit-shared-Dpcwxeft.js +38 -0
  29. package/dist/security-contract-api.js +2 -0
  30. package/dist/send-DfZuV4Fi.js +1212 -0
  31. package/dist/session-conversation-Duaukbnl.js +27 -0
  32. package/dist/session-key-api.js +2 -0
  33. package/dist/setup-api.js +2 -0
  34. package/dist/setup-entry.js +15 -0
  35. package/dist/subagent-hooks-Dtegs0kh.js +235 -0
  36. package/dist/subagent-hooks-api.js +23 -0
  37. package/dist/targets-DFskxX4p.js +48 -0
  38. package/dist/thread-bindings-DI7lVSOE.js +222 -0
  39. package/index.ts +82 -0
  40. package/klaw.plugin.json +47 -1712
  41. package/package.json +4 -4
  42. package/runtime-api.ts +52 -0
  43. package/secret-contract-api.ts +5 -0
  44. package/security-contract-api.ts +1 -0
  45. package/session-key-api.ts +1 -0
  46. package/setup-api.ts +3 -0
  47. package/setup-entry.test.ts +19 -0
  48. package/setup-entry.ts +13 -0
  49. package/src/accounts.test.ts +480 -0
  50. package/src/accounts.ts +333 -0
  51. package/src/agent-config.ts +21 -0
  52. package/src/app-registration.ts +331 -0
  53. package/src/approval-auth.test.ts +24 -0
  54. package/src/approval-auth.ts +25 -0
  55. package/src/async.test.ts +35 -0
  56. package/src/async.ts +104 -0
  57. package/src/audio-preflight.runtime.ts +9 -0
  58. package/src/bitable.test.ts +136 -0
  59. package/src/bitable.ts +762 -0
  60. package/src/bot-content.ts +485 -0
  61. package/src/bot-group-name.test.ts +116 -0
  62. package/src/bot-runtime-api.ts +12 -0
  63. package/src/bot-sender-name.ts +125 -0
  64. package/src/bot.broadcast.test.ts +523 -0
  65. package/src/bot.card-action.test.ts +552 -0
  66. package/src/bot.checkBotMentioned.test.ts +265 -0
  67. package/src/bot.helpers.test.ts +135 -0
  68. package/src/bot.stripBotMention.test.ts +126 -0
  69. package/src/bot.test.ts +3671 -0
  70. package/src/bot.ts +1703 -0
  71. package/src/card-action.ts +447 -0
  72. package/src/card-interaction.test.ts +131 -0
  73. package/src/card-interaction.ts +159 -0
  74. package/src/card-test-helpers.ts +54 -0
  75. package/src/card-ux-approval.ts +65 -0
  76. package/src/card-ux-launcher.test.ts +106 -0
  77. package/src/card-ux-launcher.ts +121 -0
  78. package/src/card-ux-shared.ts +33 -0
  79. package/src/channel-runtime-api.ts +16 -0
  80. package/src/channel.runtime.ts +47 -0
  81. package/src/channel.test.ts +1151 -0
  82. package/src/channel.ts +1423 -0
  83. package/src/chat-schema.ts +25 -0
  84. package/src/chat.test.ts +240 -0
  85. package/src/chat.ts +188 -0
  86. package/src/client-timeout.ts +42 -0
  87. package/src/client.test.ts +447 -0
  88. package/src/client.ts +262 -0
  89. package/src/comment-dispatcher-runtime-api.ts +6 -0
  90. package/src/comment-dispatcher.test.ts +185 -0
  91. package/src/comment-dispatcher.ts +107 -0
  92. package/src/comment-handler-runtime-api.ts +3 -0
  93. package/src/comment-handler.test.ts +592 -0
  94. package/src/comment-handler.ts +303 -0
  95. package/src/comment-reaction.test.ts +138 -0
  96. package/src/comment-reaction.ts +259 -0
  97. package/src/comment-shared.test.ts +183 -0
  98. package/src/comment-shared.ts +406 -0
  99. package/src/comment-target.ts +44 -0
  100. package/src/config-schema.test.ts +326 -0
  101. package/src/config-schema.ts +335 -0
  102. package/src/conversation-id.test.ts +18 -0
  103. package/src/conversation-id.ts +199 -0
  104. package/src/dedup-runtime-api.ts +1 -0
  105. package/src/dedup.ts +141 -0
  106. package/src/dedupe-key.ts +72 -0
  107. package/src/directory.static.ts +61 -0
  108. package/src/directory.test.ts +141 -0
  109. package/src/directory.ts +124 -0
  110. package/src/doc-schema.ts +182 -0
  111. package/src/docx-batch-insert.test.ts +116 -0
  112. package/src/docx-batch-insert.ts +223 -0
  113. package/src/docx-color-text.ts +154 -0
  114. package/src/docx-table-ops.test.ts +53 -0
  115. package/src/docx-table-ops.ts +316 -0
  116. package/src/docx-types.ts +38 -0
  117. package/src/docx.account-selection.test.ts +95 -0
  118. package/src/docx.test.ts +701 -0
  119. package/src/docx.ts +1596 -0
  120. package/src/drive-schema.ts +92 -0
  121. package/src/drive.test.ts +1237 -0
  122. package/src/drive.ts +829 -0
  123. package/src/dynamic-agent.test.ts +155 -0
  124. package/src/dynamic-agent.ts +143 -0
  125. package/src/event-types.ts +45 -0
  126. package/src/external-keys.test.ts +20 -0
  127. package/src/external-keys.ts +19 -0
  128. package/src/lifecycle.test-support.ts +220 -0
  129. package/src/media.test.ts +955 -0
  130. package/src/media.ts +1105 -0
  131. package/src/mention-target.types.ts +5 -0
  132. package/src/mention.ts +114 -0
  133. package/src/message-action-contract.ts +13 -0
  134. package/src/monitor-state-runtime-api.ts +7 -0
  135. package/src/monitor-transport-runtime-api.ts +10 -0
  136. package/src/monitor.account.ts +492 -0
  137. package/src/monitor.acp-init-failure.lifecycle.test-support.ts +219 -0
  138. package/src/monitor.bot-identity.ts +86 -0
  139. package/src/monitor.bot-menu-handler.ts +165 -0
  140. package/src/monitor.bot-menu.lifecycle.test-support.ts +224 -0
  141. package/src/monitor.bot-menu.test.ts +188 -0
  142. package/src/monitor.broadcast.reply-once.lifecycle.test-support.ts +264 -0
  143. package/src/monitor.card-action.lifecycle.test-support.ts +421 -0
  144. package/src/monitor.cleanup.test.ts +383 -0
  145. package/src/monitor.comment-notice-handler.ts +105 -0
  146. package/src/monitor.comment.test.ts +967 -0
  147. package/src/monitor.comment.ts +1386 -0
  148. package/src/monitor.lifecycle.test.ts +4 -0
  149. package/src/monitor.message-handler.ts +350 -0
  150. package/src/monitor.reaction.lifecycle.test-support.ts +68 -0
  151. package/src/monitor.reaction.test.ts +739 -0
  152. package/src/monitor.startup.test.ts +213 -0
  153. package/src/monitor.startup.ts +74 -0
  154. package/src/monitor.state.defaults.test.ts +46 -0
  155. package/src/monitor.state.ts +170 -0
  156. package/src/monitor.synthetic-error.ts +18 -0
  157. package/src/monitor.test-mocks.ts +46 -0
  158. package/src/monitor.transport.ts +451 -0
  159. package/src/monitor.ts +100 -0
  160. package/src/monitor.webhook-e2e.test.ts +279 -0
  161. package/src/monitor.webhook-security.test.ts +389 -0
  162. package/src/monitor.webhook.test-helpers.ts +116 -0
  163. package/src/outbound-runtime-api.ts +1 -0
  164. package/src/outbound.test.ts +1118 -0
  165. package/src/outbound.ts +785 -0
  166. package/src/perm-schema.ts +52 -0
  167. package/src/perm.ts +170 -0
  168. package/src/pins.ts +108 -0
  169. package/src/policy.test.ts +223 -0
  170. package/src/policy.ts +318 -0
  171. package/src/post.test.ts +105 -0
  172. package/src/post.ts +275 -0
  173. package/src/probe.test.ts +283 -0
  174. package/src/probe.ts +166 -0
  175. package/src/processing-claims.ts +59 -0
  176. package/src/qr-terminal.ts +1 -0
  177. package/src/reactions.ts +123 -0
  178. package/src/reasoning-preview.test.ts +113 -0
  179. package/src/reasoning-preview.ts +28 -0
  180. package/src/reply-dispatcher-runtime-api.ts +7 -0
  181. package/src/reply-dispatcher.test.ts +1513 -0
  182. package/src/reply-dispatcher.ts +748 -0
  183. package/src/runtime.ts +9 -0
  184. package/src/secret-contract.ts +145 -0
  185. package/src/secret-input.ts +1 -0
  186. package/src/security-audit-shared.ts +69 -0
  187. package/src/security-audit.test.ts +59 -0
  188. package/src/security-audit.ts +1 -0
  189. package/src/send-result.ts +80 -0
  190. package/src/send-target.test.ts +86 -0
  191. package/src/send-target.ts +35 -0
  192. package/src/send.reply-fallback.test.ts +417 -0
  193. package/src/send.test.ts +621 -0
  194. package/src/send.ts +861 -0
  195. package/src/sequential-key.test.ts +72 -0
  196. package/src/sequential-key.ts +25 -0
  197. package/src/sequential-queue.test.ts +165 -0
  198. package/src/sequential-queue.ts +86 -0
  199. package/src/session-conversation.ts +42 -0
  200. package/src/session-route.ts +48 -0
  201. package/src/setup-core.ts +51 -0
  202. package/src/setup-surface.test.ts +484 -0
  203. package/src/setup-surface.ts +618 -0
  204. package/src/streaming-card.test.ts +397 -0
  205. package/src/streaming-card.ts +571 -0
  206. package/src/subagent-hooks.test.ts +627 -0
  207. package/src/subagent-hooks.ts +413 -0
  208. package/src/targets.ts +97 -0
  209. package/src/test-support/lifecycle-test-support.ts +454 -0
  210. package/src/thread-bindings.test.ts +180 -0
  211. package/src/thread-bindings.ts +331 -0
  212. package/src/tool-account-routing.test.ts +250 -0
  213. package/src/tool-account.test.ts +44 -0
  214. package/src/tool-account.ts +93 -0
  215. package/src/tool-factory-test-harness.ts +79 -0
  216. package/src/tool-result.test.ts +32 -0
  217. package/src/tool-result.ts +16 -0
  218. package/src/tools-config.test.ts +21 -0
  219. package/src/tools-config.ts +22 -0
  220. package/src/types.ts +106 -0
  221. package/src/typing.test.ts +144 -0
  222. package/src/typing.ts +214 -0
  223. package/src/wiki-schema.ts +69 -0
  224. package/src/wiki.ts +270 -0
  225. package/subagent-hooks-api.ts +31 -0
  226. package/tsconfig.json +16 -0
  227. package/api.js +0 -7
  228. package/channel-entry.js +0 -7
  229. package/channel-plugin-api.js +0 -7
  230. package/contract-api.js +0 -7
  231. package/index.js +0 -7
  232. package/runtime-api.js +0 -7
  233. package/secret-contract-api.js +0 -7
  234. package/security-contract-api.js +0 -7
  235. package/session-key-api.js +0 -7
  236. package/setup-api.js +0 -7
  237. package/setup-entry.js +0 -7
  238. package/subagent-hooks-api.js +0 -7
package/klaw.plugin.json CHANGED
@@ -3,9 +3,7 @@
3
3
  "activation": {
4
4
  "onStartup": false
5
5
  },
6
- "channels": [
7
- "feishu"
8
- ],
6
+ "channels": ["feishu"],
9
7
  "contracts": {
10
8
  "tools": [
11
9
  "feishu_app_scopes",
@@ -26,158 +24,46 @@
26
24
  },
27
25
  "toolMetadata": {
28
26
  "feishu_app_scopes": {
29
- "configSignals": [
30
- {
31
- "rootPath": "channels.feishu",
32
- "required": [
33
- "appId",
34
- "appSecret"
35
- ]
36
- }
37
- ]
27
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
38
28
  },
39
29
  "feishu_bitable_create_app": {
40
- "configSignals": [
41
- {
42
- "rootPath": "channels.feishu",
43
- "required": [
44
- "appId",
45
- "appSecret"
46
- ]
47
- }
48
- ]
30
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
49
31
  },
50
32
  "feishu_bitable_create_field": {
51
- "configSignals": [
52
- {
53
- "rootPath": "channels.feishu",
54
- "required": [
55
- "appId",
56
- "appSecret"
57
- ]
58
- }
59
- ]
33
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
60
34
  },
61
35
  "feishu_bitable_create_record": {
62
- "configSignals": [
63
- {
64
- "rootPath": "channels.feishu",
65
- "required": [
66
- "appId",
67
- "appSecret"
68
- ]
69
- }
70
- ]
36
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
71
37
  },
72
38
  "feishu_bitable_get_meta": {
73
- "configSignals": [
74
- {
75
- "rootPath": "channels.feishu",
76
- "required": [
77
- "appId",
78
- "appSecret"
79
- ]
80
- }
81
- ]
39
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
82
40
  },
83
41
  "feishu_bitable_get_record": {
84
- "configSignals": [
85
- {
86
- "rootPath": "channels.feishu",
87
- "required": [
88
- "appId",
89
- "appSecret"
90
- ]
91
- }
92
- ]
42
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
93
43
  },
94
44
  "feishu_bitable_list_fields": {
95
- "configSignals": [
96
- {
97
- "rootPath": "channels.feishu",
98
- "required": [
99
- "appId",
100
- "appSecret"
101
- ]
102
- }
103
- ]
45
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
104
46
  },
105
47
  "feishu_bitable_list_records": {
106
- "configSignals": [
107
- {
108
- "rootPath": "channels.feishu",
109
- "required": [
110
- "appId",
111
- "appSecret"
112
- ]
113
- }
114
- ]
48
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
115
49
  },
116
50
  "feishu_bitable_update_record": {
117
- "configSignals": [
118
- {
119
- "rootPath": "channels.feishu",
120
- "required": [
121
- "appId",
122
- "appSecret"
123
- ]
124
- }
125
- ]
51
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
126
52
  },
127
53
  "feishu_chat": {
128
- "configSignals": [
129
- {
130
- "rootPath": "channels.feishu",
131
- "required": [
132
- "appId",
133
- "appSecret"
134
- ]
135
- }
136
- ]
54
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
137
55
  },
138
56
  "feishu_doc": {
139
- "configSignals": [
140
- {
141
- "rootPath": "channels.feishu",
142
- "required": [
143
- "appId",
144
- "appSecret"
145
- ]
146
- }
147
- ]
57
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
148
58
  },
149
59
  "feishu_drive": {
150
- "configSignals": [
151
- {
152
- "rootPath": "channels.feishu",
153
- "required": [
154
- "appId",
155
- "appSecret"
156
- ]
157
- }
158
- ]
60
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
159
61
  },
160
62
  "feishu_perm": {
161
- "configSignals": [
162
- {
163
- "rootPath": "channels.feishu",
164
- "required": [
165
- "appId",
166
- "appSecret"
167
- ]
168
- }
169
- ]
63
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
170
64
  },
171
65
  "feishu_wiki": {
172
- "configSignals": [
173
- {
174
- "rootPath": "channels.feishu",
175
- "required": [
176
- "appId",
177
- "appSecret"
178
- ]
179
- }
180
- ]
66
+ "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
181
67
  }
182
68
  },
183
69
  "channelEnvVars": {
@@ -188,9 +74,7 @@
188
74
  "FEISHU_ENCRYPT_KEY"
189
75
  ]
190
76
  },
191
- "skills": [
192
- "./skills"
193
- ],
77
+ "skills": ["./skills"],
194
78
  "configSchema": {
195
79
  "type": "object",
196
80
  "additionalProperties": true,
@@ -201,66 +85,31 @@
201
85
  "properties": {
202
86
  "source": {
203
87
  "type": "string",
204
- "enum": [
205
- "env",
206
- "file",
207
- "exec"
208
- ]
88
+ "enum": ["env", "file", "exec"]
209
89
  },
210
- "provider": {
211
- "type": "string"
212
- },
213
- "id": {
214
- "type": "string"
215
- }
90
+ "provider": { "type": "string" },
91
+ "id": { "type": "string" }
216
92
  },
217
- "required": [
218
- "source",
219
- "provider",
220
- "id"
221
- ]
93
+ "required": ["source", "provider", "id"]
222
94
  },
223
95
  "secretInput": {
224
- "anyOf": [
225
- {
226
- "type": "string",
227
- "minLength": 1
228
- },
229
- {
230
- "$ref": "#/$defs/secretRef"
231
- }
232
- ]
96
+ "anyOf": [{ "type": "string", "minLength": 1 }, { "$ref": "#/$defs/secretRef" }]
233
97
  },
234
98
  "account": {
235
99
  "type": "object",
236
100
  "additionalProperties": true,
237
101
  "properties": {
238
- "enabled": {
239
- "type": "boolean"
240
- },
241
- "name": {
242
- "type": "string"
243
- },
244
- "appId": {
245
- "type": "string"
246
- },
247
- "appSecret": {
248
- "$ref": "#/$defs/secretInput"
249
- },
250
- "encryptKey": {
251
- "$ref": "#/$defs/secretInput"
252
- },
253
- "verificationToken": {
254
- "$ref": "#/$defs/secretInput"
255
- },
102
+ "enabled": { "type": "boolean" },
103
+ "name": { "type": "string" },
104
+ "appId": { "type": "string" },
105
+ "appSecret": { "$ref": "#/$defs/secretInput" },
106
+ "encryptKey": { "$ref": "#/$defs/secretInput" },
107
+ "verificationToken": { "$ref": "#/$defs/secretInput" },
256
108
  "domain": {
257
109
  "anyOf": [
258
110
  {
259
111
  "type": "string",
260
- "enum": [
261
- "feishu",
262
- "lark"
263
- ]
112
+ "enum": ["feishu", "lark"]
264
113
  },
265
114
  {
266
115
  "type": "string",
@@ -270,65 +119,34 @@
270
119
  },
271
120
  "connectionMode": {
272
121
  "type": "string",
273
- "enum": [
274
- "websocket",
275
- "webhook"
276
- ]
122
+ "enum": ["websocket", "webhook"]
277
123
  },
278
124
  "renderMode": {
279
125
  "type": "string",
280
- "enum": [
281
- "auto",
282
- "raw",
283
- "card"
284
- ]
285
- },
286
- "streaming": {
287
- "type": "boolean"
288
- },
289
- "blockStreaming": {
290
- "type": "boolean"
126
+ "enum": ["auto", "raw", "card"]
291
127
  },
128
+ "streaming": { "type": "boolean" },
129
+ "blockStreaming": { "type": "boolean" },
292
130
  "replyInThread": {
293
131
  "type": "string",
294
- "enum": [
295
- "disabled",
296
- "enabled"
297
- ]
132
+ "enum": ["disabled", "enabled"]
298
133
  },
299
- "typingIndicator": {
300
- "type": "boolean"
301
- }
134
+ "typingIndicator": { "type": "boolean" }
302
135
  }
303
136
  }
304
137
  },
305
138
  "properties": {
306
- "enabled": {
307
- "type": "boolean"
308
- },
309
- "defaultAccount": {
310
- "type": "string"
311
- },
312
- "appId": {
313
- "type": "string"
314
- },
315
- "appSecret": {
316
- "$ref": "#/$defs/secretInput"
317
- },
318
- "encryptKey": {
319
- "$ref": "#/$defs/secretInput"
320
- },
321
- "verificationToken": {
322
- "$ref": "#/$defs/secretInput"
323
- },
139
+ "enabled": { "type": "boolean" },
140
+ "defaultAccount": { "type": "string" },
141
+ "appId": { "type": "string" },
142
+ "appSecret": { "$ref": "#/$defs/secretInput" },
143
+ "encryptKey": { "$ref": "#/$defs/secretInput" },
144
+ "verificationToken": { "$ref": "#/$defs/secretInput" },
324
145
  "domain": {
325
146
  "anyOf": [
326
147
  {
327
148
  "type": "string",
328
- "enum": [
329
- "feishu",
330
- "lark"
331
- ]
149
+ "enum": ["feishu", "lark"]
332
150
  },
333
151
  {
334
152
  "type": "string",
@@ -338,35 +156,19 @@
338
156
  },
339
157
  "connectionMode": {
340
158
  "type": "string",
341
- "enum": [
342
- "websocket",
343
- "webhook"
344
- ]
159
+ "enum": ["websocket", "webhook"]
345
160
  },
346
161
  "renderMode": {
347
162
  "type": "string",
348
- "enum": [
349
- "auto",
350
- "raw",
351
- "card"
352
- ]
353
- },
354
- "streaming": {
355
- "type": "boolean"
356
- },
357
- "blockStreaming": {
358
- "type": "boolean"
163
+ "enum": ["auto", "raw", "card"]
359
164
  },
165
+ "streaming": { "type": "boolean" },
166
+ "blockStreaming": { "type": "boolean" },
360
167
  "replyInThread": {
361
168
  "type": "string",
362
- "enum": [
363
- "disabled",
364
- "enabled"
365
- ]
366
- },
367
- "typingIndicator": {
368
- "type": "boolean"
169
+ "enum": ["disabled", "enabled"]
369
170
  },
171
+ "typingIndicator": { "type": "boolean" },
370
172
  "accounts": {
371
173
  "type": "object",
372
174
  "additionalProperties": {
@@ -374,1472 +176,5 @@
374
176
  }
375
177
  }
376
178
  }
377
- },
378
- "channelConfigs": {
379
- "feishu": {
380
- "schema": {
381
- "$schema": "http://json-schema.org/draft-07/schema#",
382
- "type": "object",
383
- "properties": {
384
- "enabled": {
385
- "type": "boolean"
386
- },
387
- "defaultAccount": {
388
- "type": "string"
389
- },
390
- "appId": {
391
- "type": "string"
392
- },
393
- "appSecret": {
394
- "anyOf": [
395
- {
396
- "type": "string"
397
- },
398
- {
399
- "oneOf": [
400
- {
401
- "type": "object",
402
- "properties": {
403
- "source": {
404
- "type": "string",
405
- "const": "env"
406
- },
407
- "provider": {
408
- "type": "string",
409
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
410
- },
411
- "id": {
412
- "type": "string",
413
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
414
- }
415
- },
416
- "required": [
417
- "source",
418
- "provider",
419
- "id"
420
- ],
421
- "additionalProperties": false
422
- },
423
- {
424
- "type": "object",
425
- "properties": {
426
- "source": {
427
- "type": "string",
428
- "const": "file"
429
- },
430
- "provider": {
431
- "type": "string",
432
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
433
- },
434
- "id": {
435
- "type": "string"
436
- }
437
- },
438
- "required": [
439
- "source",
440
- "provider",
441
- "id"
442
- ],
443
- "additionalProperties": false
444
- },
445
- {
446
- "type": "object",
447
- "properties": {
448
- "source": {
449
- "type": "string",
450
- "const": "exec"
451
- },
452
- "provider": {
453
- "type": "string",
454
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
455
- },
456
- "id": {
457
- "type": "string"
458
- }
459
- },
460
- "required": [
461
- "source",
462
- "provider",
463
- "id"
464
- ],
465
- "additionalProperties": false
466
- }
467
- ]
468
- }
469
- ]
470
- },
471
- "encryptKey": {
472
- "anyOf": [
473
- {
474
- "type": "string"
475
- },
476
- {
477
- "oneOf": [
478
- {
479
- "type": "object",
480
- "properties": {
481
- "source": {
482
- "type": "string",
483
- "const": "env"
484
- },
485
- "provider": {
486
- "type": "string",
487
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
488
- },
489
- "id": {
490
- "type": "string",
491
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
492
- }
493
- },
494
- "required": [
495
- "source",
496
- "provider",
497
- "id"
498
- ],
499
- "additionalProperties": false
500
- },
501
- {
502
- "type": "object",
503
- "properties": {
504
- "source": {
505
- "type": "string",
506
- "const": "file"
507
- },
508
- "provider": {
509
- "type": "string",
510
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
511
- },
512
- "id": {
513
- "type": "string"
514
- }
515
- },
516
- "required": [
517
- "source",
518
- "provider",
519
- "id"
520
- ],
521
- "additionalProperties": false
522
- },
523
- {
524
- "type": "object",
525
- "properties": {
526
- "source": {
527
- "type": "string",
528
- "const": "exec"
529
- },
530
- "provider": {
531
- "type": "string",
532
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
533
- },
534
- "id": {
535
- "type": "string"
536
- }
537
- },
538
- "required": [
539
- "source",
540
- "provider",
541
- "id"
542
- ],
543
- "additionalProperties": false
544
- }
545
- ]
546
- }
547
- ]
548
- },
549
- "verificationToken": {
550
- "anyOf": [
551
- {
552
- "type": "string"
553
- },
554
- {
555
- "oneOf": [
556
- {
557
- "type": "object",
558
- "properties": {
559
- "source": {
560
- "type": "string",
561
- "const": "env"
562
- },
563
- "provider": {
564
- "type": "string",
565
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
566
- },
567
- "id": {
568
- "type": "string",
569
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
570
- }
571
- },
572
- "required": [
573
- "source",
574
- "provider",
575
- "id"
576
- ],
577
- "additionalProperties": false
578
- },
579
- {
580
- "type": "object",
581
- "properties": {
582
- "source": {
583
- "type": "string",
584
- "const": "file"
585
- },
586
- "provider": {
587
- "type": "string",
588
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
589
- },
590
- "id": {
591
- "type": "string"
592
- }
593
- },
594
- "required": [
595
- "source",
596
- "provider",
597
- "id"
598
- ],
599
- "additionalProperties": false
600
- },
601
- {
602
- "type": "object",
603
- "properties": {
604
- "source": {
605
- "type": "string",
606
- "const": "exec"
607
- },
608
- "provider": {
609
- "type": "string",
610
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
611
- },
612
- "id": {
613
- "type": "string"
614
- }
615
- },
616
- "required": [
617
- "source",
618
- "provider",
619
- "id"
620
- ],
621
- "additionalProperties": false
622
- }
623
- ]
624
- }
625
- ]
626
- },
627
- "domain": {
628
- "default": "feishu",
629
- "anyOf": [
630
- {
631
- "type": "string",
632
- "enum": [
633
- "feishu",
634
- "lark"
635
- ]
636
- },
637
- {
638
- "type": "string",
639
- "format": "uri",
640
- "pattern": "^https:\\/\\/.*"
641
- }
642
- ]
643
- },
644
- "connectionMode": {
645
- "default": "websocket",
646
- "type": "string",
647
- "enum": [
648
- "websocket",
649
- "webhook"
650
- ]
651
- },
652
- "webhookPath": {
653
- "default": "/feishu/events",
654
- "type": "string"
655
- },
656
- "webhookHost": {
657
- "type": "string"
658
- },
659
- "webhookPort": {
660
- "type": "integer",
661
- "exclusiveMinimum": 0,
662
- "maximum": 9007199254740991
663
- },
664
- "capabilities": {
665
- "type": "array",
666
- "items": {
667
- "type": "string"
668
- }
669
- },
670
- "markdown": {
671
- "type": "object",
672
- "properties": {
673
- "mode": {
674
- "type": "string",
675
- "enum": [
676
- "native",
677
- "escape",
678
- "strip"
679
- ]
680
- },
681
- "tableMode": {
682
- "type": "string",
683
- "enum": [
684
- "native",
685
- "ascii",
686
- "simple"
687
- ]
688
- }
689
- },
690
- "additionalProperties": false
691
- },
692
- "configWrites": {
693
- "type": "boolean"
694
- },
695
- "dmPolicy": {
696
- "default": "pairing",
697
- "type": "string",
698
- "enum": [
699
- "open",
700
- "pairing",
701
- "allowlist"
702
- ]
703
- },
704
- "allowFrom": {
705
- "type": "array",
706
- "items": {
707
- "anyOf": [
708
- {
709
- "type": "string"
710
- },
711
- {
712
- "type": "number"
713
- }
714
- ]
715
- }
716
- },
717
- "groupPolicy": {
718
- "default": "allowlist",
719
- "anyOf": [
720
- {
721
- "type": "string",
722
- "enum": [
723
- "open",
724
- "allowlist",
725
- "disabled"
726
- ]
727
- },
728
- {}
729
- ]
730
- },
731
- "groupAllowFrom": {
732
- "type": "array",
733
- "items": {
734
- "anyOf": [
735
- {
736
- "type": "string"
737
- },
738
- {
739
- "type": "number"
740
- }
741
- ]
742
- }
743
- },
744
- "groupSenderAllowFrom": {
745
- "type": "array",
746
- "items": {
747
- "anyOf": [
748
- {
749
- "type": "string"
750
- },
751
- {
752
- "type": "number"
753
- }
754
- ]
755
- }
756
- },
757
- "requireMention": {
758
- "type": "boolean"
759
- },
760
- "groups": {
761
- "type": "object",
762
- "propertyNames": {
763
- "type": "string"
764
- },
765
- "additionalProperties": {
766
- "type": "object",
767
- "properties": {
768
- "requireMention": {
769
- "type": "boolean"
770
- },
771
- "tools": {
772
- "type": "object",
773
- "properties": {
774
- "allow": {
775
- "type": "array",
776
- "items": {
777
- "type": "string"
778
- }
779
- },
780
- "deny": {
781
- "type": "array",
782
- "items": {
783
- "type": "string"
784
- }
785
- }
786
- },
787
- "additionalProperties": false
788
- },
789
- "skills": {
790
- "type": "array",
791
- "items": {
792
- "type": "string"
793
- }
794
- },
795
- "enabled": {
796
- "type": "boolean"
797
- },
798
- "allowFrom": {
799
- "type": "array",
800
- "items": {
801
- "anyOf": [
802
- {
803
- "type": "string"
804
- },
805
- {
806
- "type": "number"
807
- }
808
- ]
809
- }
810
- },
811
- "systemPrompt": {
812
- "type": "string"
813
- },
814
- "groupSessionScope": {
815
- "type": "string",
816
- "enum": [
817
- "group",
818
- "group_sender",
819
- "group_topic",
820
- "group_topic_sender"
821
- ]
822
- },
823
- "topicSessionMode": {
824
- "type": "string",
825
- "enum": [
826
- "disabled",
827
- "enabled"
828
- ]
829
- },
830
- "replyInThread": {
831
- "type": "string",
832
- "enum": [
833
- "disabled",
834
- "enabled"
835
- ]
836
- }
837
- },
838
- "additionalProperties": false
839
- }
840
- },
841
- "historyLimit": {
842
- "type": "integer",
843
- "minimum": 0,
844
- "maximum": 9007199254740991
845
- },
846
- "dmHistoryLimit": {
847
- "type": "integer",
848
- "minimum": 0,
849
- "maximum": 9007199254740991
850
- },
851
- "dms": {
852
- "type": "object",
853
- "propertyNames": {
854
- "type": "string"
855
- },
856
- "additionalProperties": {
857
- "type": "object",
858
- "properties": {
859
- "enabled": {
860
- "type": "boolean"
861
- },
862
- "systemPrompt": {
863
- "type": "string"
864
- }
865
- },
866
- "additionalProperties": false
867
- }
868
- },
869
- "textChunkLimit": {
870
- "type": "integer",
871
- "exclusiveMinimum": 0,
872
- "maximum": 9007199254740991
873
- },
874
- "chunkMode": {
875
- "type": "string",
876
- "enum": [
877
- "length",
878
- "newline"
879
- ]
880
- },
881
- "blockStreaming": {
882
- "type": "boolean"
883
- },
884
- "blockStreamingCoalesce": {
885
- "type": "object",
886
- "properties": {
887
- "enabled": {
888
- "type": "boolean"
889
- },
890
- "minDelayMs": {
891
- "type": "integer",
892
- "exclusiveMinimum": 0,
893
- "maximum": 9007199254740991
894
- },
895
- "maxDelayMs": {
896
- "type": "integer",
897
- "exclusiveMinimum": 0,
898
- "maximum": 9007199254740991
899
- }
900
- },
901
- "additionalProperties": false
902
- },
903
- "mediaMaxMb": {
904
- "type": "number",
905
- "exclusiveMinimum": 0
906
- },
907
- "httpTimeoutMs": {
908
- "type": "integer",
909
- "exclusiveMinimum": 0,
910
- "maximum": 300000
911
- },
912
- "heartbeat": {
913
- "type": "object",
914
- "properties": {
915
- "visibility": {
916
- "type": "string",
917
- "enum": [
918
- "visible",
919
- "hidden"
920
- ]
921
- },
922
- "intervalMs": {
923
- "type": "integer",
924
- "exclusiveMinimum": 0,
925
- "maximum": 9007199254740991
926
- }
927
- },
928
- "additionalProperties": false
929
- },
930
- "renderMode": {
931
- "type": "string",
932
- "enum": [
933
- "auto",
934
- "raw",
935
- "card"
936
- ]
937
- },
938
- "streaming": {
939
- "type": "boolean"
940
- },
941
- "tools": {
942
- "type": "object",
943
- "properties": {
944
- "doc": {
945
- "type": "boolean"
946
- },
947
- "chat": {
948
- "type": "boolean"
949
- },
950
- "wiki": {
951
- "type": "boolean"
952
- },
953
- "drive": {
954
- "type": "boolean"
955
- },
956
- "perm": {
957
- "type": "boolean"
958
- },
959
- "scopes": {
960
- "type": "boolean"
961
- }
962
- },
963
- "additionalProperties": false
964
- },
965
- "actions": {
966
- "type": "object",
967
- "properties": {
968
- "reactions": {
969
- "type": "boolean"
970
- }
971
- },
972
- "additionalProperties": false
973
- },
974
- "replyInThread": {
975
- "type": "string",
976
- "enum": [
977
- "disabled",
978
- "enabled"
979
- ]
980
- },
981
- "reactionNotifications": {
982
- "default": "own",
983
- "type": "string",
984
- "enum": [
985
- "off",
986
- "own",
987
- "all"
988
- ]
989
- },
990
- "typingIndicator": {
991
- "default": true,
992
- "type": "boolean"
993
- },
994
- "resolveSenderNames": {
995
- "default": true,
996
- "type": "boolean"
997
- },
998
- "tts": {
999
- "type": "object",
1000
- "properties": {
1001
- "auto": {
1002
- "type": "string",
1003
- "enum": [
1004
- "off",
1005
- "always",
1006
- "inbound",
1007
- "tagged"
1008
- ]
1009
- },
1010
- "enabled": {
1011
- "type": "boolean"
1012
- },
1013
- "mode": {
1014
- "type": "string",
1015
- "enum": [
1016
- "final",
1017
- "all"
1018
- ]
1019
- },
1020
- "provider": {
1021
- "type": "string"
1022
- },
1023
- "persona": {
1024
- "type": "string"
1025
- },
1026
- "personas": {
1027
- "type": "object",
1028
- "propertyNames": {
1029
- "type": "string"
1030
- },
1031
- "additionalProperties": {
1032
- "type": "object",
1033
- "propertyNames": {
1034
- "type": "string"
1035
- },
1036
- "additionalProperties": {}
1037
- }
1038
- },
1039
- "summaryModel": {
1040
- "type": "string"
1041
- },
1042
- "modelOverrides": {
1043
- "type": "object",
1044
- "propertyNames": {
1045
- "type": "string"
1046
- },
1047
- "additionalProperties": {}
1048
- },
1049
- "providers": {
1050
- "type": "object",
1051
- "propertyNames": {
1052
- "type": "string"
1053
- },
1054
- "additionalProperties": {
1055
- "type": "object",
1056
- "propertyNames": {
1057
- "type": "string"
1058
- },
1059
- "additionalProperties": {}
1060
- }
1061
- },
1062
- "prefsPath": {
1063
- "type": "string"
1064
- },
1065
- "maxTextLength": {
1066
- "type": "integer",
1067
- "minimum": 1,
1068
- "maximum": 9007199254740991
1069
- },
1070
- "timeoutMs": {
1071
- "type": "integer",
1072
- "minimum": 1000,
1073
- "maximum": 120000
1074
- }
1075
- },
1076
- "additionalProperties": false
1077
- },
1078
- "groupSessionScope": {
1079
- "type": "string",
1080
- "enum": [
1081
- "group",
1082
- "group_sender",
1083
- "group_topic",
1084
- "group_topic_sender"
1085
- ]
1086
- },
1087
- "topicSessionMode": {
1088
- "type": "string",
1089
- "enum": [
1090
- "disabled",
1091
- "enabled"
1092
- ]
1093
- },
1094
- "dynamicAgentCreation": {
1095
- "type": "object",
1096
- "properties": {
1097
- "enabled": {
1098
- "type": "boolean"
1099
- },
1100
- "workspaceTemplate": {
1101
- "type": "string"
1102
- },
1103
- "agentDirTemplate": {
1104
- "type": "string"
1105
- },
1106
- "maxAgents": {
1107
- "type": "integer",
1108
- "exclusiveMinimum": 0,
1109
- "maximum": 9007199254740991
1110
- }
1111
- },
1112
- "additionalProperties": false
1113
- },
1114
- "accounts": {
1115
- "type": "object",
1116
- "propertyNames": {
1117
- "type": "string"
1118
- },
1119
- "additionalProperties": {
1120
- "type": "object",
1121
- "properties": {
1122
- "enabled": {
1123
- "type": "boolean"
1124
- },
1125
- "name": {
1126
- "type": "string"
1127
- },
1128
- "appId": {
1129
- "type": "string"
1130
- },
1131
- "appSecret": {
1132
- "anyOf": [
1133
- {
1134
- "type": "string"
1135
- },
1136
- {
1137
- "oneOf": [
1138
- {
1139
- "type": "object",
1140
- "properties": {
1141
- "source": {
1142
- "type": "string",
1143
- "const": "env"
1144
- },
1145
- "provider": {
1146
- "type": "string",
1147
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1148
- },
1149
- "id": {
1150
- "type": "string",
1151
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
1152
- }
1153
- },
1154
- "required": [
1155
- "source",
1156
- "provider",
1157
- "id"
1158
- ],
1159
- "additionalProperties": false
1160
- },
1161
- {
1162
- "type": "object",
1163
- "properties": {
1164
- "source": {
1165
- "type": "string",
1166
- "const": "file"
1167
- },
1168
- "provider": {
1169
- "type": "string",
1170
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1171
- },
1172
- "id": {
1173
- "type": "string"
1174
- }
1175
- },
1176
- "required": [
1177
- "source",
1178
- "provider",
1179
- "id"
1180
- ],
1181
- "additionalProperties": false
1182
- },
1183
- {
1184
- "type": "object",
1185
- "properties": {
1186
- "source": {
1187
- "type": "string",
1188
- "const": "exec"
1189
- },
1190
- "provider": {
1191
- "type": "string",
1192
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1193
- },
1194
- "id": {
1195
- "type": "string"
1196
- }
1197
- },
1198
- "required": [
1199
- "source",
1200
- "provider",
1201
- "id"
1202
- ],
1203
- "additionalProperties": false
1204
- }
1205
- ]
1206
- }
1207
- ]
1208
- },
1209
- "encryptKey": {
1210
- "anyOf": [
1211
- {
1212
- "type": "string"
1213
- },
1214
- {
1215
- "oneOf": [
1216
- {
1217
- "type": "object",
1218
- "properties": {
1219
- "source": {
1220
- "type": "string",
1221
- "const": "env"
1222
- },
1223
- "provider": {
1224
- "type": "string",
1225
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1226
- },
1227
- "id": {
1228
- "type": "string",
1229
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
1230
- }
1231
- },
1232
- "required": [
1233
- "source",
1234
- "provider",
1235
- "id"
1236
- ],
1237
- "additionalProperties": false
1238
- },
1239
- {
1240
- "type": "object",
1241
- "properties": {
1242
- "source": {
1243
- "type": "string",
1244
- "const": "file"
1245
- },
1246
- "provider": {
1247
- "type": "string",
1248
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1249
- },
1250
- "id": {
1251
- "type": "string"
1252
- }
1253
- },
1254
- "required": [
1255
- "source",
1256
- "provider",
1257
- "id"
1258
- ],
1259
- "additionalProperties": false
1260
- },
1261
- {
1262
- "type": "object",
1263
- "properties": {
1264
- "source": {
1265
- "type": "string",
1266
- "const": "exec"
1267
- },
1268
- "provider": {
1269
- "type": "string",
1270
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1271
- },
1272
- "id": {
1273
- "type": "string"
1274
- }
1275
- },
1276
- "required": [
1277
- "source",
1278
- "provider",
1279
- "id"
1280
- ],
1281
- "additionalProperties": false
1282
- }
1283
- ]
1284
- }
1285
- ]
1286
- },
1287
- "verificationToken": {
1288
- "anyOf": [
1289
- {
1290
- "type": "string"
1291
- },
1292
- {
1293
- "oneOf": [
1294
- {
1295
- "type": "object",
1296
- "properties": {
1297
- "source": {
1298
- "type": "string",
1299
- "const": "env"
1300
- },
1301
- "provider": {
1302
- "type": "string",
1303
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1304
- },
1305
- "id": {
1306
- "type": "string",
1307
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
1308
- }
1309
- },
1310
- "required": [
1311
- "source",
1312
- "provider",
1313
- "id"
1314
- ],
1315
- "additionalProperties": false
1316
- },
1317
- {
1318
- "type": "object",
1319
- "properties": {
1320
- "source": {
1321
- "type": "string",
1322
- "const": "file"
1323
- },
1324
- "provider": {
1325
- "type": "string",
1326
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1327
- },
1328
- "id": {
1329
- "type": "string"
1330
- }
1331
- },
1332
- "required": [
1333
- "source",
1334
- "provider",
1335
- "id"
1336
- ],
1337
- "additionalProperties": false
1338
- },
1339
- {
1340
- "type": "object",
1341
- "properties": {
1342
- "source": {
1343
- "type": "string",
1344
- "const": "exec"
1345
- },
1346
- "provider": {
1347
- "type": "string",
1348
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1349
- },
1350
- "id": {
1351
- "type": "string"
1352
- }
1353
- },
1354
- "required": [
1355
- "source",
1356
- "provider",
1357
- "id"
1358
- ],
1359
- "additionalProperties": false
1360
- }
1361
- ]
1362
- }
1363
- ]
1364
- },
1365
- "domain": {
1366
- "anyOf": [
1367
- {
1368
- "type": "string",
1369
- "enum": [
1370
- "feishu",
1371
- "lark"
1372
- ]
1373
- },
1374
- {
1375
- "type": "string",
1376
- "format": "uri",
1377
- "pattern": "^https:\\/\\/.*"
1378
- }
1379
- ]
1380
- },
1381
- "connectionMode": {
1382
- "type": "string",
1383
- "enum": [
1384
- "websocket",
1385
- "webhook"
1386
- ]
1387
- },
1388
- "webhookPath": {
1389
- "type": "string"
1390
- },
1391
- "webhookHost": {
1392
- "type": "string"
1393
- },
1394
- "webhookPort": {
1395
- "type": "integer",
1396
- "exclusiveMinimum": 0,
1397
- "maximum": 9007199254740991
1398
- },
1399
- "capabilities": {
1400
- "type": "array",
1401
- "items": {
1402
- "type": "string"
1403
- }
1404
- },
1405
- "markdown": {
1406
- "type": "object",
1407
- "properties": {
1408
- "mode": {
1409
- "type": "string",
1410
- "enum": [
1411
- "native",
1412
- "escape",
1413
- "strip"
1414
- ]
1415
- },
1416
- "tableMode": {
1417
- "type": "string",
1418
- "enum": [
1419
- "native",
1420
- "ascii",
1421
- "simple"
1422
- ]
1423
- }
1424
- },
1425
- "additionalProperties": false
1426
- },
1427
- "configWrites": {
1428
- "type": "boolean"
1429
- },
1430
- "dmPolicy": {
1431
- "type": "string",
1432
- "enum": [
1433
- "open",
1434
- "pairing",
1435
- "allowlist"
1436
- ]
1437
- },
1438
- "allowFrom": {
1439
- "type": "array",
1440
- "items": {
1441
- "anyOf": [
1442
- {
1443
- "type": "string"
1444
- },
1445
- {
1446
- "type": "number"
1447
- }
1448
- ]
1449
- }
1450
- },
1451
- "groupPolicy": {
1452
- "anyOf": [
1453
- {
1454
- "type": "string",
1455
- "enum": [
1456
- "open",
1457
- "allowlist",
1458
- "disabled"
1459
- ]
1460
- },
1461
- {}
1462
- ]
1463
- },
1464
- "groupAllowFrom": {
1465
- "type": "array",
1466
- "items": {
1467
- "anyOf": [
1468
- {
1469
- "type": "string"
1470
- },
1471
- {
1472
- "type": "number"
1473
- }
1474
- ]
1475
- }
1476
- },
1477
- "groupSenderAllowFrom": {
1478
- "type": "array",
1479
- "items": {
1480
- "anyOf": [
1481
- {
1482
- "type": "string"
1483
- },
1484
- {
1485
- "type": "number"
1486
- }
1487
- ]
1488
- }
1489
- },
1490
- "requireMention": {
1491
- "type": "boolean"
1492
- },
1493
- "groups": {
1494
- "type": "object",
1495
- "propertyNames": {
1496
- "type": "string"
1497
- },
1498
- "additionalProperties": {
1499
- "type": "object",
1500
- "properties": {
1501
- "requireMention": {
1502
- "type": "boolean"
1503
- },
1504
- "tools": {
1505
- "type": "object",
1506
- "properties": {
1507
- "allow": {
1508
- "type": "array",
1509
- "items": {
1510
- "type": "string"
1511
- }
1512
- },
1513
- "deny": {
1514
- "type": "array",
1515
- "items": {
1516
- "type": "string"
1517
- }
1518
- }
1519
- },
1520
- "additionalProperties": false
1521
- },
1522
- "skills": {
1523
- "type": "array",
1524
- "items": {
1525
- "type": "string"
1526
- }
1527
- },
1528
- "enabled": {
1529
- "type": "boolean"
1530
- },
1531
- "allowFrom": {
1532
- "type": "array",
1533
- "items": {
1534
- "anyOf": [
1535
- {
1536
- "type": "string"
1537
- },
1538
- {
1539
- "type": "number"
1540
- }
1541
- ]
1542
- }
1543
- },
1544
- "systemPrompt": {
1545
- "type": "string"
1546
- },
1547
- "groupSessionScope": {
1548
- "type": "string",
1549
- "enum": [
1550
- "group",
1551
- "group_sender",
1552
- "group_topic",
1553
- "group_topic_sender"
1554
- ]
1555
- },
1556
- "topicSessionMode": {
1557
- "type": "string",
1558
- "enum": [
1559
- "disabled",
1560
- "enabled"
1561
- ]
1562
- },
1563
- "replyInThread": {
1564
- "type": "string",
1565
- "enum": [
1566
- "disabled",
1567
- "enabled"
1568
- ]
1569
- }
1570
- },
1571
- "additionalProperties": false
1572
- }
1573
- },
1574
- "historyLimit": {
1575
- "type": "integer",
1576
- "minimum": 0,
1577
- "maximum": 9007199254740991
1578
- },
1579
- "dmHistoryLimit": {
1580
- "type": "integer",
1581
- "minimum": 0,
1582
- "maximum": 9007199254740991
1583
- },
1584
- "dms": {
1585
- "type": "object",
1586
- "propertyNames": {
1587
- "type": "string"
1588
- },
1589
- "additionalProperties": {
1590
- "type": "object",
1591
- "properties": {
1592
- "enabled": {
1593
- "type": "boolean"
1594
- },
1595
- "systemPrompt": {
1596
- "type": "string"
1597
- }
1598
- },
1599
- "additionalProperties": false
1600
- }
1601
- },
1602
- "textChunkLimit": {
1603
- "type": "integer",
1604
- "exclusiveMinimum": 0,
1605
- "maximum": 9007199254740991
1606
- },
1607
- "chunkMode": {
1608
- "type": "string",
1609
- "enum": [
1610
- "length",
1611
- "newline"
1612
- ]
1613
- },
1614
- "blockStreaming": {
1615
- "type": "boolean"
1616
- },
1617
- "blockStreamingCoalesce": {
1618
- "type": "object",
1619
- "properties": {
1620
- "enabled": {
1621
- "type": "boolean"
1622
- },
1623
- "minDelayMs": {
1624
- "type": "integer",
1625
- "exclusiveMinimum": 0,
1626
- "maximum": 9007199254740991
1627
- },
1628
- "maxDelayMs": {
1629
- "type": "integer",
1630
- "exclusiveMinimum": 0,
1631
- "maximum": 9007199254740991
1632
- }
1633
- },
1634
- "additionalProperties": false
1635
- },
1636
- "mediaMaxMb": {
1637
- "type": "number",
1638
- "exclusiveMinimum": 0
1639
- },
1640
- "httpTimeoutMs": {
1641
- "type": "integer",
1642
- "exclusiveMinimum": 0,
1643
- "maximum": 300000
1644
- },
1645
- "heartbeat": {
1646
- "type": "object",
1647
- "properties": {
1648
- "visibility": {
1649
- "type": "string",
1650
- "enum": [
1651
- "visible",
1652
- "hidden"
1653
- ]
1654
- },
1655
- "intervalMs": {
1656
- "type": "integer",
1657
- "exclusiveMinimum": 0,
1658
- "maximum": 9007199254740991
1659
- }
1660
- },
1661
- "additionalProperties": false
1662
- },
1663
- "renderMode": {
1664
- "type": "string",
1665
- "enum": [
1666
- "auto",
1667
- "raw",
1668
- "card"
1669
- ]
1670
- },
1671
- "streaming": {
1672
- "type": "boolean"
1673
- },
1674
- "tools": {
1675
- "type": "object",
1676
- "properties": {
1677
- "doc": {
1678
- "type": "boolean"
1679
- },
1680
- "chat": {
1681
- "type": "boolean"
1682
- },
1683
- "wiki": {
1684
- "type": "boolean"
1685
- },
1686
- "drive": {
1687
- "type": "boolean"
1688
- },
1689
- "perm": {
1690
- "type": "boolean"
1691
- },
1692
- "scopes": {
1693
- "type": "boolean"
1694
- }
1695
- },
1696
- "additionalProperties": false
1697
- },
1698
- "actions": {
1699
- "type": "object",
1700
- "properties": {
1701
- "reactions": {
1702
- "type": "boolean"
1703
- }
1704
- },
1705
- "additionalProperties": false
1706
- },
1707
- "replyInThread": {
1708
- "type": "string",
1709
- "enum": [
1710
- "disabled",
1711
- "enabled"
1712
- ]
1713
- },
1714
- "reactionNotifications": {
1715
- "type": "string",
1716
- "enum": [
1717
- "off",
1718
- "own",
1719
- "all"
1720
- ]
1721
- },
1722
- "typingIndicator": {
1723
- "type": "boolean"
1724
- },
1725
- "resolveSenderNames": {
1726
- "type": "boolean"
1727
- },
1728
- "tts": {
1729
- "type": "object",
1730
- "properties": {
1731
- "auto": {
1732
- "type": "string",
1733
- "enum": [
1734
- "off",
1735
- "always",
1736
- "inbound",
1737
- "tagged"
1738
- ]
1739
- },
1740
- "enabled": {
1741
- "type": "boolean"
1742
- },
1743
- "mode": {
1744
- "type": "string",
1745
- "enum": [
1746
- "final",
1747
- "all"
1748
- ]
1749
- },
1750
- "provider": {
1751
- "type": "string"
1752
- },
1753
- "persona": {
1754
- "type": "string"
1755
- },
1756
- "personas": {
1757
- "type": "object",
1758
- "propertyNames": {
1759
- "type": "string"
1760
- },
1761
- "additionalProperties": {
1762
- "type": "object",
1763
- "propertyNames": {
1764
- "type": "string"
1765
- },
1766
- "additionalProperties": {}
1767
- }
1768
- },
1769
- "summaryModel": {
1770
- "type": "string"
1771
- },
1772
- "modelOverrides": {
1773
- "type": "object",
1774
- "propertyNames": {
1775
- "type": "string"
1776
- },
1777
- "additionalProperties": {}
1778
- },
1779
- "providers": {
1780
- "type": "object",
1781
- "propertyNames": {
1782
- "type": "string"
1783
- },
1784
- "additionalProperties": {
1785
- "type": "object",
1786
- "propertyNames": {
1787
- "type": "string"
1788
- },
1789
- "additionalProperties": {}
1790
- }
1791
- },
1792
- "prefsPath": {
1793
- "type": "string"
1794
- },
1795
- "maxTextLength": {
1796
- "type": "integer",
1797
- "minimum": 1,
1798
- "maximum": 9007199254740991
1799
- },
1800
- "timeoutMs": {
1801
- "type": "integer",
1802
- "minimum": 1000,
1803
- "maximum": 120000
1804
- }
1805
- },
1806
- "additionalProperties": false
1807
- },
1808
- "groupSessionScope": {
1809
- "type": "string",
1810
- "enum": [
1811
- "group",
1812
- "group_sender",
1813
- "group_topic",
1814
- "group_topic_sender"
1815
- ]
1816
- },
1817
- "topicSessionMode": {
1818
- "type": "string",
1819
- "enum": [
1820
- "disabled",
1821
- "enabled"
1822
- ]
1823
- }
1824
- },
1825
- "additionalProperties": false
1826
- }
1827
- }
1828
- },
1829
- "required": [
1830
- "domain",
1831
- "connectionMode",
1832
- "webhookPath",
1833
- "dmPolicy",
1834
- "groupPolicy",
1835
- "reactionNotifications",
1836
- "typingIndicator",
1837
- "resolveSenderNames"
1838
- ],
1839
- "additionalProperties": false
1840
- },
1841
- "label": "Feishu",
1842
- "description": "飞书/Lark enterprise messaging with doc/wiki/drive tools."
1843
- }
1844
179
  }
1845
180
  }