@gakr-gakr/feishu 0.1.0 → 0.1.1

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 (162) hide show
  1. package/autobot.plugin.json +1712 -47
  2. package/dist/accounts-jCa9kjvy.js +429 -0
  3. package/dist/api.js +2308 -0
  4. package/dist/app-registration-Uu34zR7u.js +184 -0
  5. package/dist/audio-preflight.runtime-CjE_NNMV.js +7 -0
  6. package/dist/channel-C00hSWyp.js +2115 -0
  7. package/dist/channel-entry.js +22 -0
  8. package/dist/channel-plugin-api.js +2 -0
  9. package/dist/channel.runtime-DEX6TnHE.js +729 -0
  10. package/dist/client-DEAbBmM7.js +157 -0
  11. package/dist/contract-api.js +9 -0
  12. package/dist/conversation-id-yoSjQsPw.js +139 -0
  13. package/dist/drive-Dm42BCF8.js +883 -0
  14. package/dist/index.js +68 -0
  15. package/dist/monitor-BqmwO9dX.js +60 -0
  16. package/dist/monitor.account-ibPfOvnb.js +5207 -0
  17. package/dist/monitor.state-DrU5ta-d.js +100 -0
  18. package/dist/probe-CWiduXMf.js +149 -0
  19. package/dist/rolldown-runtime-DUslC3ob.js +14 -0
  20. package/dist/runtime-Dww5ULtN.js +8 -0
  21. package/dist/runtime-api.js +14 -0
  22. package/dist/secret-contract-DPpUSCi_.js +119 -0
  23. package/dist/secret-contract-api.js +2 -0
  24. package/dist/security-audit-BOrdSSLZ.js +11 -0
  25. package/dist/security-audit-shared-BaNAdO3W.js +38 -0
  26. package/dist/security-contract-api.js +2 -0
  27. package/dist/send-B3JxZ2FW.js +1212 -0
  28. package/dist/session-conversation-mEiIXyP0.js +27 -0
  29. package/dist/session-key-api.js +2 -0
  30. package/dist/setup-api.js +2 -0
  31. package/dist/setup-entry.js +15 -0
  32. package/dist/subagent-hooks-CAV7GnMN.js +235 -0
  33. package/dist/subagent-hooks-api.js +23 -0
  34. package/dist/targets-D4CgskAP.js +48 -0
  35. package/dist/thread-bindings-CLbXblvA.js +222 -0
  36. package/package.json +17 -4
  37. package/api.ts +0 -32
  38. package/channel-entry.ts +0 -20
  39. package/channel-plugin-api.ts +0 -1
  40. package/contract-api.ts +0 -16
  41. package/index.ts +0 -82
  42. package/runtime-api.ts +0 -55
  43. package/secret-contract-api.ts +0 -5
  44. package/security-contract-api.ts +0 -1
  45. package/session-key-api.ts +0 -1
  46. package/setup-api.ts +0 -3
  47. package/setup-entry.ts +0 -13
  48. package/src/accounts.ts +0 -333
  49. package/src/agent-config.ts +0 -21
  50. package/src/app-registration.ts +0 -331
  51. package/src/approval-auth.ts +0 -25
  52. package/src/async.ts +0 -104
  53. package/src/audio-preflight.runtime.ts +0 -9
  54. package/src/bitable.ts +0 -762
  55. package/src/bot-content.ts +0 -485
  56. package/src/bot-runtime-api.ts +0 -12
  57. package/src/bot-sender-name.ts +0 -125
  58. package/src/bot.ts +0 -1703
  59. package/src/card-action.ts +0 -447
  60. package/src/card-interaction.ts +0 -159
  61. package/src/card-test-helpers.ts +0 -54
  62. package/src/card-ux-approval.ts +0 -65
  63. package/src/card-ux-launcher.ts +0 -121
  64. package/src/card-ux-shared.ts +0 -33
  65. package/src/channel-runtime-api.ts +0 -16
  66. package/src/channel.runtime.ts +0 -47
  67. package/src/channel.ts +0 -1423
  68. package/src/chat-schema.ts +0 -25
  69. package/src/chat.ts +0 -188
  70. package/src/client-timeout.ts +0 -42
  71. package/src/client.ts +0 -262
  72. package/src/comment-dispatcher-runtime-api.ts +0 -6
  73. package/src/comment-dispatcher.ts +0 -107
  74. package/src/comment-handler-runtime-api.ts +0 -3
  75. package/src/comment-handler.ts +0 -303
  76. package/src/comment-reaction.ts +0 -259
  77. package/src/comment-shared.ts +0 -406
  78. package/src/comment-target.ts +0 -44
  79. package/src/config-schema.ts +0 -335
  80. package/src/conversation-id.ts +0 -199
  81. package/src/dedup-runtime-api.ts +0 -1
  82. package/src/dedup.ts +0 -141
  83. package/src/dedupe-key.ts +0 -72
  84. package/src/directory.static.ts +0 -61
  85. package/src/directory.ts +0 -124
  86. package/src/doc-schema.ts +0 -182
  87. package/src/docx-batch-insert.ts +0 -223
  88. package/src/docx-color-text.ts +0 -154
  89. package/src/docx-table-ops.ts +0 -316
  90. package/src/docx-types.ts +0 -38
  91. package/src/docx.ts +0 -1596
  92. package/src/drive-schema.ts +0 -92
  93. package/src/drive.ts +0 -829
  94. package/src/dynamic-agent.ts +0 -143
  95. package/src/event-types.ts +0 -45
  96. package/src/external-keys.ts +0 -19
  97. package/src/lifecycle.test-support.ts +0 -220
  98. package/src/media.ts +0 -1105
  99. package/src/mention-target.types.ts +0 -5
  100. package/src/mention.ts +0 -114
  101. package/src/message-action-contract.ts +0 -13
  102. package/src/monitor-state-runtime-api.ts +0 -7
  103. package/src/monitor-transport-runtime-api.ts +0 -10
  104. package/src/monitor.account.ts +0 -492
  105. package/src/monitor.acp-init-failure.lifecycle.test-support.ts +0 -219
  106. package/src/monitor.bot-identity.ts +0 -86
  107. package/src/monitor.bot-menu-handler.ts +0 -165
  108. package/src/monitor.bot-menu.lifecycle.test-support.ts +0 -224
  109. package/src/monitor.broadcast.reply-once.lifecycle.test-support.ts +0 -264
  110. package/src/monitor.card-action.lifecycle.test-support.ts +0 -421
  111. package/src/monitor.comment-notice-handler.ts +0 -105
  112. package/src/monitor.comment.ts +0 -1386
  113. package/src/monitor.message-handler.ts +0 -350
  114. package/src/monitor.reaction.lifecycle.test-support.ts +0 -68
  115. package/src/monitor.startup.ts +0 -74
  116. package/src/monitor.state.ts +0 -170
  117. package/src/monitor.synthetic-error.ts +0 -18
  118. package/src/monitor.test-mocks.ts +0 -46
  119. package/src/monitor.transport.ts +0 -451
  120. package/src/monitor.ts +0 -100
  121. package/src/outbound-runtime-api.ts +0 -1
  122. package/src/outbound.ts +0 -785
  123. package/src/perm-schema.ts +0 -52
  124. package/src/perm.ts +0 -170
  125. package/src/pins.ts +0 -108
  126. package/src/policy.ts +0 -321
  127. package/src/post.ts +0 -275
  128. package/src/probe.ts +0 -166
  129. package/src/processing-claims.ts +0 -59
  130. package/src/qr-terminal.ts +0 -1
  131. package/src/reactions.ts +0 -123
  132. package/src/reasoning-preview.ts +0 -28
  133. package/src/reply-dispatcher-runtime-api.ts +0 -7
  134. package/src/reply-dispatcher.ts +0 -748
  135. package/src/runtime.ts +0 -9
  136. package/src/secret-contract.ts +0 -145
  137. package/src/secret-input.ts +0 -1
  138. package/src/security-audit-shared.ts +0 -69
  139. package/src/security-audit.ts +0 -1
  140. package/src/send-result.ts +0 -80
  141. package/src/send-target.ts +0 -35
  142. package/src/send.ts +0 -861
  143. package/src/sequential-key.ts +0 -28
  144. package/src/sequential-queue.ts +0 -86
  145. package/src/session-conversation.ts +0 -42
  146. package/src/session-route.ts +0 -48
  147. package/src/setup-core.ts +0 -51
  148. package/src/setup-surface.ts +0 -618
  149. package/src/streaming-card.ts +0 -571
  150. package/src/subagent-hooks.ts +0 -413
  151. package/src/targets.ts +0 -97
  152. package/src/thread-bindings.ts +0 -331
  153. package/src/tool-account.ts +0 -93
  154. package/src/tool-factory-test-harness.ts +0 -79
  155. package/src/tool-result.ts +0 -16
  156. package/src/tools-config.ts +0 -22
  157. package/src/types.ts +0 -106
  158. package/src/typing.ts +0 -214
  159. package/src/wiki-schema.ts +0 -69
  160. package/src/wiki.ts +0 -270
  161. package/subagent-hooks-api.ts +0 -31
  162. package/tsconfig.json +0 -16
@@ -3,7 +3,9 @@
3
3
  "activation": {
4
4
  "onStartup": false
5
5
  },
6
- "channels": ["feishu"],
6
+ "channels": [
7
+ "feishu"
8
+ ],
7
9
  "contracts": {
8
10
  "tools": [
9
11
  "feishu_app_scopes",
@@ -24,46 +26,158 @@
24
26
  },
25
27
  "toolMetadata": {
26
28
  "feishu_app_scopes": {
27
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
29
+ "configSignals": [
30
+ {
31
+ "rootPath": "channels.feishu",
32
+ "required": [
33
+ "appId",
34
+ "appSecret"
35
+ ]
36
+ }
37
+ ]
28
38
  },
29
39
  "feishu_bitable_create_app": {
30
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
40
+ "configSignals": [
41
+ {
42
+ "rootPath": "channels.feishu",
43
+ "required": [
44
+ "appId",
45
+ "appSecret"
46
+ ]
47
+ }
48
+ ]
31
49
  },
32
50
  "feishu_bitable_create_field": {
33
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
51
+ "configSignals": [
52
+ {
53
+ "rootPath": "channels.feishu",
54
+ "required": [
55
+ "appId",
56
+ "appSecret"
57
+ ]
58
+ }
59
+ ]
34
60
  },
35
61
  "feishu_bitable_create_record": {
36
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
62
+ "configSignals": [
63
+ {
64
+ "rootPath": "channels.feishu",
65
+ "required": [
66
+ "appId",
67
+ "appSecret"
68
+ ]
69
+ }
70
+ ]
37
71
  },
38
72
  "feishu_bitable_get_meta": {
39
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
73
+ "configSignals": [
74
+ {
75
+ "rootPath": "channels.feishu",
76
+ "required": [
77
+ "appId",
78
+ "appSecret"
79
+ ]
80
+ }
81
+ ]
40
82
  },
41
83
  "feishu_bitable_get_record": {
42
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
84
+ "configSignals": [
85
+ {
86
+ "rootPath": "channels.feishu",
87
+ "required": [
88
+ "appId",
89
+ "appSecret"
90
+ ]
91
+ }
92
+ ]
43
93
  },
44
94
  "feishu_bitable_list_fields": {
45
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
95
+ "configSignals": [
96
+ {
97
+ "rootPath": "channels.feishu",
98
+ "required": [
99
+ "appId",
100
+ "appSecret"
101
+ ]
102
+ }
103
+ ]
46
104
  },
47
105
  "feishu_bitable_list_records": {
48
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
106
+ "configSignals": [
107
+ {
108
+ "rootPath": "channels.feishu",
109
+ "required": [
110
+ "appId",
111
+ "appSecret"
112
+ ]
113
+ }
114
+ ]
49
115
  },
50
116
  "feishu_bitable_update_record": {
51
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
117
+ "configSignals": [
118
+ {
119
+ "rootPath": "channels.feishu",
120
+ "required": [
121
+ "appId",
122
+ "appSecret"
123
+ ]
124
+ }
125
+ ]
52
126
  },
53
127
  "feishu_chat": {
54
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
128
+ "configSignals": [
129
+ {
130
+ "rootPath": "channels.feishu",
131
+ "required": [
132
+ "appId",
133
+ "appSecret"
134
+ ]
135
+ }
136
+ ]
55
137
  },
56
138
  "feishu_doc": {
57
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
139
+ "configSignals": [
140
+ {
141
+ "rootPath": "channels.feishu",
142
+ "required": [
143
+ "appId",
144
+ "appSecret"
145
+ ]
146
+ }
147
+ ]
58
148
  },
59
149
  "feishu_drive": {
60
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
150
+ "configSignals": [
151
+ {
152
+ "rootPath": "channels.feishu",
153
+ "required": [
154
+ "appId",
155
+ "appSecret"
156
+ ]
157
+ }
158
+ ]
61
159
  },
62
160
  "feishu_perm": {
63
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
161
+ "configSignals": [
162
+ {
163
+ "rootPath": "channels.feishu",
164
+ "required": [
165
+ "appId",
166
+ "appSecret"
167
+ ]
168
+ }
169
+ ]
64
170
  },
65
171
  "feishu_wiki": {
66
- "configSignals": [{ "rootPath": "channels.feishu", "required": ["appId", "appSecret"] }]
172
+ "configSignals": [
173
+ {
174
+ "rootPath": "channels.feishu",
175
+ "required": [
176
+ "appId",
177
+ "appSecret"
178
+ ]
179
+ }
180
+ ]
67
181
  }
68
182
  },
69
183
  "channelEnvVars": {
@@ -74,7 +188,9 @@
74
188
  "FEISHU_ENCRYPT_KEY"
75
189
  ]
76
190
  },
77
- "skills": ["./skills"],
191
+ "skills": [
192
+ "./skills"
193
+ ],
78
194
  "configSchema": {
79
195
  "type": "object",
80
196
  "additionalProperties": true,
@@ -85,31 +201,66 @@
85
201
  "properties": {
86
202
  "source": {
87
203
  "type": "string",
88
- "enum": ["env", "file", "exec"]
204
+ "enum": [
205
+ "env",
206
+ "file",
207
+ "exec"
208
+ ]
89
209
  },
90
- "provider": { "type": "string" },
91
- "id": { "type": "string" }
210
+ "provider": {
211
+ "type": "string"
212
+ },
213
+ "id": {
214
+ "type": "string"
215
+ }
92
216
  },
93
- "required": ["source", "provider", "id"]
217
+ "required": [
218
+ "source",
219
+ "provider",
220
+ "id"
221
+ ]
94
222
  },
95
223
  "secretInput": {
96
- "anyOf": [{ "type": "string", "minLength": 1 }, { "$ref": "#/$defs/secretRef" }]
224
+ "anyOf": [
225
+ {
226
+ "type": "string",
227
+ "minLength": 1
228
+ },
229
+ {
230
+ "$ref": "#/$defs/secretRef"
231
+ }
232
+ ]
97
233
  },
98
234
  "account": {
99
235
  "type": "object",
100
236
  "additionalProperties": true,
101
237
  "properties": {
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" },
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
+ },
108
256
  "domain": {
109
257
  "anyOf": [
110
258
  {
111
259
  "type": "string",
112
- "enum": ["feishu", "lark"]
260
+ "enum": [
261
+ "feishu",
262
+ "lark"
263
+ ]
113
264
  },
114
265
  {
115
266
  "type": "string",
@@ -119,34 +270,65 @@
119
270
  },
120
271
  "connectionMode": {
121
272
  "type": "string",
122
- "enum": ["websocket", "webhook"]
273
+ "enum": [
274
+ "websocket",
275
+ "webhook"
276
+ ]
123
277
  },
124
278
  "renderMode": {
125
279
  "type": "string",
126
- "enum": ["auto", "raw", "card"]
280
+ "enum": [
281
+ "auto",
282
+ "raw",
283
+ "card"
284
+ ]
285
+ },
286
+ "streaming": {
287
+ "type": "boolean"
288
+ },
289
+ "blockStreaming": {
290
+ "type": "boolean"
127
291
  },
128
- "streaming": { "type": "boolean" },
129
- "blockStreaming": { "type": "boolean" },
130
292
  "replyInThread": {
131
293
  "type": "string",
132
- "enum": ["disabled", "enabled"]
294
+ "enum": [
295
+ "disabled",
296
+ "enabled"
297
+ ]
133
298
  },
134
- "typingIndicator": { "type": "boolean" }
299
+ "typingIndicator": {
300
+ "type": "boolean"
301
+ }
135
302
  }
136
303
  }
137
304
  },
138
305
  "properties": {
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" },
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
+ },
145
324
  "domain": {
146
325
  "anyOf": [
147
326
  {
148
327
  "type": "string",
149
- "enum": ["feishu", "lark"]
328
+ "enum": [
329
+ "feishu",
330
+ "lark"
331
+ ]
150
332
  },
151
333
  {
152
334
  "type": "string",
@@ -156,19 +338,35 @@
156
338
  },
157
339
  "connectionMode": {
158
340
  "type": "string",
159
- "enum": ["websocket", "webhook"]
341
+ "enum": [
342
+ "websocket",
343
+ "webhook"
344
+ ]
160
345
  },
161
346
  "renderMode": {
162
347
  "type": "string",
163
- "enum": ["auto", "raw", "card"]
348
+ "enum": [
349
+ "auto",
350
+ "raw",
351
+ "card"
352
+ ]
353
+ },
354
+ "streaming": {
355
+ "type": "boolean"
356
+ },
357
+ "blockStreaming": {
358
+ "type": "boolean"
164
359
  },
165
- "streaming": { "type": "boolean" },
166
- "blockStreaming": { "type": "boolean" },
167
360
  "replyInThread": {
168
361
  "type": "string",
169
- "enum": ["disabled", "enabled"]
362
+ "enum": [
363
+ "disabled",
364
+ "enabled"
365
+ ]
366
+ },
367
+ "typingIndicator": {
368
+ "type": "boolean"
170
369
  },
171
- "typingIndicator": { "type": "boolean" },
172
370
  "accounts": {
173
371
  "type": "object",
174
372
  "additionalProperties": {
@@ -176,5 +374,1472 @@
176
374
  }
177
375
  }
178
376
  }
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
+ }
179
1844
  }
180
1845
  }