botmux 2.104.0 → 2.105.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 (339) hide show
  1. package/README.en.md +10 -10
  2. package/README.md +10 -10
  3. package/dist/adapters/backend/sandbox.d.ts +5 -1
  4. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  5. package/dist/adapters/backend/sandbox.js +54 -5
  6. package/dist/adapters/backend/sandbox.js.map +1 -1
  7. package/dist/adapters/backend/tmux-pipe-backend.d.ts +1 -1
  8. package/dist/adapters/backend/tmux-pipe-backend.js +1 -1
  9. package/dist/adapters/backend/zellij-observe-backend.d.ts +1 -1
  10. package/dist/adapters/backend/zellij-observe-backend.js +1 -1
  11. package/dist/adapters/cli/claude-code.d.ts +1 -1
  12. package/dist/adapters/cli/read-isolation.d.ts +2 -1
  13. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  14. package/dist/adapters/cli/read-isolation.js +51 -4
  15. package/dist/adapters/cli/read-isolation.js.map +1 -1
  16. package/dist/adapters/cli/relay.d.ts +2 -2
  17. package/dist/adapters/cli/relay.js +2 -2
  18. package/dist/adapters/cli/seed.d.ts +2 -2
  19. package/dist/adapters/cli/seed.js +2 -2
  20. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  21. package/dist/adapters/cli/shared-hints.js +1 -0
  22. package/dist/adapters/cli/shared-hints.js.map +1 -1
  23. package/dist/bot-registry.d.ts +65 -1
  24. package/dist/bot-registry.d.ts.map +1 -1
  25. package/dist/bot-registry.js +145 -0
  26. package/dist/bot-registry.js.map +1 -1
  27. package/dist/cli/send-dispatch.d.ts +44 -0
  28. package/dist/cli/send-dispatch.d.ts.map +1 -1
  29. package/dist/cli/send-dispatch.js +79 -0
  30. package/dist/cli/send-dispatch.js.map +1 -1
  31. package/dist/cli/vc-agent.d.ts +2 -0
  32. package/dist/cli/vc-agent.d.ts.map +1 -0
  33. package/dist/cli/vc-agent.js +331 -0
  34. package/dist/cli/vc-agent.js.map +1 -0
  35. package/dist/cli.d.ts.map +1 -1
  36. package/dist/cli.js +125 -24
  37. package/dist/cli.js.map +1 -1
  38. package/dist/config.d.ts +8 -0
  39. package/dist/config.d.ts.map +1 -1
  40. package/dist/config.js +13 -1
  41. package/dist/config.js.map +1 -1
  42. package/dist/core/auto-start.d.ts +2 -2
  43. package/dist/core/auto-start.js +2 -2
  44. package/dist/core/command-handler.d.ts.map +1 -1
  45. package/dist/core/command-handler.js +2 -1
  46. package/dist/core/command-handler.js.map +1 -1
  47. package/dist/core/dashboard-events.d.ts +5 -0
  48. package/dist/core/dashboard-events.d.ts.map +1 -1
  49. package/dist/core/dashboard-events.js.map +1 -1
  50. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  51. package/dist/core/dashboard-ipc-server.js +47 -2
  52. package/dist/core/dashboard-ipc-server.js.map +1 -1
  53. package/dist/core/idle-worker-sweeper.d.ts +1 -1
  54. package/dist/core/idle-worker-sweeper.js +1 -1
  55. package/dist/core/passthrough-commands.d.ts.map +1 -1
  56. package/dist/core/passthrough-commands.js +1 -0
  57. package/dist/core/passthrough-commands.js.map +1 -1
  58. package/dist/core/scheduler.d.ts +12 -0
  59. package/dist/core/scheduler.d.ts.map +1 -1
  60. package/dist/core/scheduler.js +67 -7
  61. package/dist/core/scheduler.js.map +1 -1
  62. package/dist/core/session-discovery.js +1 -1
  63. package/dist/core/session-discovery.js.map +1 -1
  64. package/dist/core/session-manager.d.ts +1 -1
  65. package/dist/core/session-manager.d.ts.map +1 -1
  66. package/dist/core/session-manager.js +55 -10
  67. package/dist/core/session-manager.js.map +1 -1
  68. package/dist/core/trigger-session.d.ts.map +1 -1
  69. package/dist/core/trigger-session.js +78 -23
  70. package/dist/core/trigger-session.js.map +1 -1
  71. package/dist/core/types.d.ts +3 -3
  72. package/dist/core/types.d.ts.map +1 -1
  73. package/dist/core/worker-pool.d.ts +8 -1
  74. package/dist/core/worker-pool.d.ts.map +1 -1
  75. package/dist/core/worker-pool.js +31 -9
  76. package/dist/core/worker-pool.js.map +1 -1
  77. package/dist/core/zellij-adopt-discovery.js +1 -1
  78. package/dist/core/zellij-adopt-discovery.js.map +1 -1
  79. package/dist/daemon.d.ts +121 -0
  80. package/dist/daemon.d.ts.map +1 -1
  81. package/dist/daemon.js +2644 -2
  82. package/dist/daemon.js.map +1 -1
  83. package/dist/dashboard/federated-group-core.js +1 -1
  84. package/dist/dashboard/federated-group-core.js.map +1 -1
  85. package/dist/dashboard/federation-api.js +1 -1
  86. package/dist/dashboard/schedule-card-model.d.ts +4 -3
  87. package/dist/dashboard/schedule-card-model.d.ts.map +1 -1
  88. package/dist/dashboard/schedule-card-model.js +5 -4
  89. package/dist/dashboard/schedule-card-model.js.map +1 -1
  90. package/dist/dashboard/settings-write-applier.d.ts +37 -3
  91. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  92. package/dist/dashboard/settings-write-applier.js +63 -0
  93. package/dist/dashboard/settings-write-applier.js.map +1 -1
  94. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  95. package/dist/dashboard/web/i18n.js +28 -0
  96. package/dist/dashboard/web/i18n.js.map +1 -1
  97. package/dist/dashboard/web/insights.js +19 -19
  98. package/dist/dashboard/web/insights.js.map +1 -1
  99. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  100. package/dist/dashboard/web/overview-page.js +7 -4
  101. package/dist/dashboard/web/overview-page.js.map +1 -1
  102. package/dist/dashboard/web/schedules-page.d.ts +1 -1
  103. package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
  104. package/dist/dashboard/web/schedules-page.js +7 -3
  105. package/dist/dashboard/web/schedules-page.js.map +1 -1
  106. package/dist/dashboard/web/sessions.js +2 -2
  107. package/dist/dashboard/web/settings-page.d.ts +9 -0
  108. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  109. package/dist/dashboard/web/settings-page.js +132 -43
  110. package/dist/dashboard/web/settings-page.js.map +1 -1
  111. package/dist/dashboard/web/store.d.ts +6 -0
  112. package/dist/dashboard/web/store.d.ts.map +1 -1
  113. package/dist/dashboard/web/store.js +18 -1
  114. package/dist/dashboard/web/store.js.map +1 -1
  115. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  116. package/dist/dashboard/webhook-routes.js +24 -0
  117. package/dist/dashboard/webhook-routes.js.map +1 -1
  118. package/dist/dashboard-web/app.js +3 -3
  119. package/dist/dashboard-web/chunks/{bot-defaults-page-Z36I5CKM.js → bot-defaults-page-3OIY7N76.js} +1 -1
  120. package/dist/dashboard-web/chunks/{chunk-2BBCKWNO.js → chunk-BNEXMNQD.js} +3 -3
  121. package/dist/dashboard-web/chunks/{chunk-QDKIUULH.js → chunk-DKKOGZCG.js} +1 -1
  122. package/dist/dashboard-web/chunks/chunk-LXIK7OUJ.js +1 -0
  123. package/dist/dashboard-web/chunks/{chunk-BAMNP73K.js → chunk-VFCACTRF.js} +1 -1
  124. package/dist/dashboard-web/chunks/{connectors-I3MGERCM.js → connectors-VDOAKUW3.js} +1 -1
  125. package/dist/dashboard-web/chunks/{groups-page-DTP2L4FQ.js → groups-page-CX5AN4XG.js} +1 -1
  126. package/dist/dashboard-web/chunks/{insights-page-FNI24WYF.js → insights-page-DOMRL4S6.js} +1 -1
  127. package/dist/dashboard-web/chunks/overview-page-AZBAXVZ7.js +1 -0
  128. package/dist/dashboard-web/chunks/{roles-page-A5DZ7Q6U.js → roles-page-3FEAH6S4.js} +1 -1
  129. package/dist/dashboard-web/chunks/schedules-CTQEA7IE.js +1 -0
  130. package/dist/dashboard-web/chunks/{sessions-YJ735IH4.js → sessions-LVZCXO2Z.js} +1 -1
  131. package/dist/dashboard-web/chunks/{sessions-page-2REIJ56C.js → sessions-page-NHBJDSBC.js} +1 -1
  132. package/dist/dashboard-web/chunks/settings-page-CRDIHRNE.js +2 -0
  133. package/dist/dashboard-web/chunks/{skills-page-ZCCLHWMJ.js → skills-page-VUG3EPWX.js} +1 -1
  134. package/dist/dashboard-web/chunks/{team-federation-page-4FCGO3WW.js → team-federation-page-ZKL3YMGN.js} +1 -1
  135. package/dist/dashboard-web/chunks/{workflows-KFJ7O57L.js → workflows-4BYQQBFP.js} +1 -1
  136. package/dist/dashboard-web/index.html +1 -1
  137. package/dist/dashboard-web/style.css +111 -16
  138. package/dist/dashboard.js +196 -2
  139. package/dist/dashboard.js.map +1 -1
  140. package/dist/global-config.d.ts +30 -0
  141. package/dist/global-config.d.ts.map +1 -1
  142. package/dist/global-config.js +64 -1
  143. package/dist/global-config.js.map +1 -1
  144. package/dist/i18n/en.d.ts.map +1 -1
  145. package/dist/i18n/en.js +10 -7
  146. package/dist/i18n/en.js.map +1 -1
  147. package/dist/i18n/zh.d.ts.map +1 -1
  148. package/dist/i18n/zh.js +10 -7
  149. package/dist/i18n/zh.js.map +1 -1
  150. package/dist/im/lark/card-builder.d.ts +1 -1
  151. package/dist/im/lark/card-builder.js +1 -1
  152. package/dist/im/lark/card-handler.d.ts +3 -0
  153. package/dist/im/lark/card-handler.d.ts.map +1 -1
  154. package/dist/im/lark/card-handler.js +8 -0
  155. package/dist/im/lark/card-handler.js.map +1 -1
  156. package/dist/im/lark/client.d.ts +1 -0
  157. package/dist/im/lark/client.d.ts.map +1 -1
  158. package/dist/im/lark/client.js +19 -0
  159. package/dist/im/lark/client.js.map +1 -1
  160. package/dist/im/lark/event-dispatcher.d.ts +10 -0
  161. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  162. package/dist/im/lark/event-dispatcher.js +100 -21
  163. package/dist/im/lark/event-dispatcher.js.map +1 -1
  164. package/dist/im/lark/grant-command.d.ts +1 -1
  165. package/dist/im/lark/grant-command.js +1 -1
  166. package/dist/im/lark/workflow-slash-command.js +4 -0
  167. package/dist/im/lark/workflow-slash-command.js.map +1 -1
  168. package/dist/mir-prompt.d.ts +16 -0
  169. package/dist/mir-prompt.d.ts.map +1 -0
  170. package/dist/mir-prompt.js +170 -0
  171. package/dist/mir-prompt.js.map +1 -0
  172. package/dist/mir-runner.js +1 -149
  173. package/dist/mir-runner.js.map +1 -1
  174. package/dist/platform/bind.d.ts.map +1 -1
  175. package/dist/platform/bind.js +3 -11
  176. package/dist/platform/bind.js.map +1 -1
  177. package/dist/platform/binding.d.ts +4 -5
  178. package/dist/platform/binding.d.ts.map +1 -1
  179. package/dist/platform/binding.js +0 -11
  180. package/dist/platform/binding.js.map +1 -1
  181. package/dist/platform/tunnel-client.d.ts.map +1 -1
  182. package/dist/platform/tunnel-client.js +37 -28
  183. package/dist/platform/tunnel-client.js.map +1 -1
  184. package/dist/services/deployment-identity.d.ts +1 -1
  185. package/dist/services/deployment-identity.d.ts.map +1 -1
  186. package/dist/services/deployment-identity.js +1 -1
  187. package/dist/services/deployment-identity.js.map +1 -1
  188. package/dist/services/doc-subs-store.js +1 -1
  189. package/dist/services/team-board-store.js +1 -1
  190. package/dist/services/team-board-store.js.map +1 -1
  191. package/dist/services/trigger-types.d.ts +2 -1
  192. package/dist/services/trigger-types.d.ts.map +1 -1
  193. package/dist/services/trigger-types.js +11 -2
  194. package/dist/services/trigger-types.js.map +1 -1
  195. package/dist/services/vc-meeting-runtime-store.d.ts +55 -0
  196. package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -0
  197. package/dist/services/vc-meeting-runtime-store.js +313 -0
  198. package/dist/services/vc-meeting-runtime-store.js.map +1 -0
  199. package/dist/services/voice/index.d.ts +6 -1
  200. package/dist/services/voice/index.d.ts.map +1 -1
  201. package/dist/services/voice/index.js +12 -5
  202. package/dist/services/voice/index.js.map +1 -1
  203. package/dist/services/voice/sami.js +1 -1
  204. package/dist/setup/lark-scopes.json +5 -0
  205. package/dist/setup/verify-permissions.d.ts +6 -0
  206. package/dist/setup/verify-permissions.d.ts.map +1 -1
  207. package/dist/setup/verify-permissions.js +17 -0
  208. package/dist/setup/verify-permissions.js.map +1 -1
  209. package/dist/skills/definitions.d.ts.map +1 -1
  210. package/dist/skills/definitions.js +10 -0
  211. package/dist/skills/definitions.js.map +1 -1
  212. package/dist/types.d.ts +4 -0
  213. package/dist/types.d.ts.map +1 -1
  214. package/dist/utils/daemon-discovery.d.ts +2 -0
  215. package/dist/utils/daemon-discovery.d.ts.map +1 -1
  216. package/dist/utils/daemon-discovery.js +2 -0
  217. package/dist/utils/daemon-discovery.js.map +1 -1
  218. package/dist/utils/timezone.d.ts +51 -0
  219. package/dist/utils/timezone.d.ts.map +1 -0
  220. package/dist/utils/timezone.js +110 -0
  221. package/dist/utils/timezone.js.map +1 -0
  222. package/dist/vc-agent/cards.d.ts +47 -0
  223. package/dist/vc-agent/cards.d.ts.map +1 -0
  224. package/dist/vc-agent/cards.js +489 -0
  225. package/dist/vc-agent/cards.js.map +1 -0
  226. package/dist/vc-agent/meeting-state.d.ts +39 -0
  227. package/dist/vc-agent/meeting-state.d.ts.map +1 -0
  228. package/dist/vc-agent/meeting-state.js +186 -0
  229. package/dist/vc-agent/meeting-state.js.map +1 -0
  230. package/dist/vc-agent/normalizer.d.ts +13 -0
  231. package/dist/vc-agent/normalizer.d.ts.map +1 -0
  232. package/dist/vc-agent/normalizer.js +411 -0
  233. package/dist/vc-agent/normalizer.js.map +1 -0
  234. package/dist/vc-agent/polling-source.d.ts +36 -0
  235. package/dist/vc-agent/polling-source.d.ts.map +1 -0
  236. package/dist/vc-agent/polling-source.js +129 -0
  237. package/dist/vc-agent/polling-source.js.map +1 -0
  238. package/dist/vc-agent/push-source.d.ts +13 -0
  239. package/dist/vc-agent/push-source.d.ts.map +1 -0
  240. package/dist/vc-agent/push-source.js +109 -0
  241. package/dist/vc-agent/push-source.js.map +1 -0
  242. package/dist/vc-agent/realtime/audio-source.d.ts +6 -0
  243. package/dist/vc-agent/realtime/audio-source.d.ts.map +1 -0
  244. package/dist/vc-agent/realtime/audio-source.js +17 -0
  245. package/dist/vc-agent/realtime/audio-source.js.map +1 -0
  246. package/dist/vc-agent/realtime/endpoint.d.ts +6 -0
  247. package/dist/vc-agent/realtime/endpoint.d.ts.map +1 -0
  248. package/dist/vc-agent/realtime/endpoint.js +25 -0
  249. package/dist/vc-agent/realtime/endpoint.js.map +1 -0
  250. package/dist/vc-agent/realtime/errors.d.ts +9 -0
  251. package/dist/vc-agent/realtime/errors.d.ts.map +1 -0
  252. package/dist/vc-agent/realtime/errors.js +17 -0
  253. package/dist/vc-agent/realtime/errors.js.map +1 -0
  254. package/dist/vc-agent/realtime/events.d.ts +24 -0
  255. package/dist/vc-agent/realtime/events.d.ts.map +1 -0
  256. package/dist/vc-agent/realtime/events.js +190 -0
  257. package/dist/vc-agent/realtime/events.js.map +1 -0
  258. package/dist/vc-agent/realtime/frontier.d.ts +34 -0
  259. package/dist/vc-agent/realtime/frontier.d.ts.map +1 -0
  260. package/dist/vc-agent/realtime/frontier.js +40 -0
  261. package/dist/vc-agent/realtime/frontier.js.map +1 -0
  262. package/dist/vc-agent/realtime/index.d.ts +11 -0
  263. package/dist/vc-agent/realtime/index.d.ts.map +1 -0
  264. package/dist/vc-agent/realtime/index.js +11 -0
  265. package/dist/vc-agent/realtime/index.js.map +1 -0
  266. package/dist/vc-agent/realtime/pacer.d.ts +21 -0
  267. package/dist/vc-agent/realtime/pacer.d.ts.map +1 -0
  268. package/dist/vc-agent/realtime/pacer.js +80 -0
  269. package/dist/vc-agent/realtime/pacer.js.map +1 -0
  270. package/dist/vc-agent/realtime/protobuf.d.ts +33 -0
  271. package/dist/vc-agent/realtime/protobuf.d.ts.map +1 -0
  272. package/dist/vc-agent/realtime/protobuf.js +159 -0
  273. package/dist/vc-agent/realtime/protobuf.js.map +1 -0
  274. package/dist/vc-agent/realtime/protocol.d.ts +4 -0
  275. package/dist/vc-agent/realtime/protocol.d.ts.map +1 -0
  276. package/dist/vc-agent/realtime/protocol.js +59 -0
  277. package/dist/vc-agent/realtime/protocol.js.map +1 -0
  278. package/dist/vc-agent/realtime/session.d.ts +39 -0
  279. package/dist/vc-agent/realtime/session.d.ts.map +1 -0
  280. package/dist/vc-agent/realtime/session.js +221 -0
  281. package/dist/vc-agent/realtime/session.js.map +1 -0
  282. package/dist/vc-agent/realtime/transport.d.ts +23 -0
  283. package/dist/vc-agent/realtime/transport.d.ts.map +1 -0
  284. package/dist/vc-agent/realtime/transport.js +112 -0
  285. package/dist/vc-agent/realtime/transport.js.map +1 -0
  286. package/dist/vc-agent/realtime/types.d.ts +84 -0
  287. package/dist/vc-agent/realtime/types.d.ts.map +1 -0
  288. package/dist/vc-agent/realtime/types.js +5 -0
  289. package/dist/vc-agent/realtime/types.js.map +1 -0
  290. package/dist/vc-agent/types.d.ts +142 -0
  291. package/dist/vc-agent/types.d.ts.map +1 -0
  292. package/dist/vc-agent/types.js +2 -0
  293. package/dist/vc-agent/types.js.map +1 -0
  294. package/dist/worker.js +8 -5
  295. package/dist/worker.js.map +1 -1
  296. package/dist/workflows/attempt-resume.d.ts +4 -0
  297. package/dist/workflows/attempt-resume.d.ts.map +1 -1
  298. package/dist/workflows/attempt-resume.js +2 -0
  299. package/dist/workflows/attempt-resume.js.map +1 -1
  300. package/dist/workflows/attempt-terminal.d.ts +4 -0
  301. package/dist/workflows/attempt-terminal.d.ts.map +1 -1
  302. package/dist/workflows/attempt-terminal.js.map +1 -1
  303. package/dist/workflows/daemon-spawn.d.ts.map +1 -1
  304. package/dist/workflows/daemon-spawn.js +7 -0
  305. package/dist/workflows/daemon-spawn.js.map +1 -1
  306. package/dist/workflows/definition.d.ts +14 -14
  307. package/dist/workflows/events/payloads.d.ts +40 -8
  308. package/dist/workflows/events/payloads.d.ts.map +1 -1
  309. package/dist/workflows/events/payloads.js +4 -0
  310. package/dist/workflows/events/payloads.js.map +1 -1
  311. package/dist/workflows/events/schema.d.ts +508 -452
  312. package/dist/workflows/events/schema.d.ts.map +1 -1
  313. package/dist/workflows/runtime.d.ts +4 -0
  314. package/dist/workflows/runtime.d.ts.map +1 -1
  315. package/dist/workflows/runtime.js.map +1 -1
  316. package/dist/workflows/spawn-policy.d.ts +14 -0
  317. package/dist/workflows/spawn-policy.d.ts.map +1 -0
  318. package/dist/workflows/spawn-policy.js +9 -0
  319. package/dist/workflows/spawn-policy.js.map +1 -0
  320. package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
  321. package/dist/workflows/v3/bot-resolve.js +4 -0
  322. package/dist/workflows/v3/bot-resolve.js.map +1 -1
  323. package/dist/workflows/v3/cli-run.d.ts.map +1 -1
  324. package/dist/workflows/v3/cli-run.js +4 -0
  325. package/dist/workflows/v3/cli-run.js.map +1 -1
  326. package/dist/workflows/v3/contract.d.ts +9 -3
  327. package/dist/workflows/v3/contract.d.ts.map +1 -1
  328. package/dist/workflows/v3/contract.js +3 -3
  329. package/dist/workflows/v3/contract.js.map +1 -1
  330. package/dist/workflows/v3/ephemeral-pool.d.ts.map +1 -1
  331. package/dist/workflows/v3/ephemeral-pool.js +2 -0
  332. package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
  333. package/dist/workflows/v3/runtime.js +1 -1
  334. package/dist/workflows/v3/runtime.js.map +1 -1
  335. package/package.json +1 -1
  336. package/dist/dashboard-web/chunks/chunk-76J7PNZI.js +0 -1
  337. package/dist/dashboard-web/chunks/overview-page-EHCZJBWY.js +0 -1
  338. package/dist/dashboard-web/chunks/schedules-RSXALJU4.js +0 -1
  339. package/dist/dashboard-web/chunks/settings-page-XKFTXTDE.js +0 -2
@@ -0,0 +1,489 @@
1
+ function escapeMd(text) {
2
+ return String(text ?? '')
3
+ .replace(/&/g, '&')
4
+ .replace(/</g, '&lt;')
5
+ .replace(/>/g, '&gt;')
6
+ .replace(/\\/g, '\\\\')
7
+ .replace(/`/g, '\\`')
8
+ .replace(/\*/g, '\\*')
9
+ .replace(/_/g, '\\_')
10
+ .replace(/\[/g, '\\[')
11
+ .replace(/\]/g, '\\]')
12
+ .replace(/\(/g, '\\(')
13
+ .replace(/\)/g, '\\)');
14
+ }
15
+ function meetingTitle(meeting) {
16
+ return meeting.topic?.trim() || meeting.meetingNo || meeting.id || '飞书会议';
17
+ }
18
+ function baseLines(input) {
19
+ const lines = [
20
+ `**会议**:${escapeMd(meetingTitle(input.meeting))}`,
21
+ ];
22
+ if (input.meeting.meetingNo)
23
+ lines.push(`**会议号**:${escapeMd(input.meeting.meetingNo)}`);
24
+ if (input.meeting.id)
25
+ lines.push(`**meeting.id**:\`${escapeMd(input.meeting.id)}\``);
26
+ return lines;
27
+ }
28
+ function statusBody(input) {
29
+ const lines = baseLines(input);
30
+ if (input.status === 'pending') {
31
+ return {
32
+ template: 'blue',
33
+ title: '会议监听确认',
34
+ body: [
35
+ '收到一个会议邀请。是否让 bot 入会并创建/使用监听群同步会中消息?',
36
+ '',
37
+ ...lines,
38
+ ].join('\n'),
39
+ };
40
+ }
41
+ if (input.status === 'started') {
42
+ return {
43
+ template: 'green',
44
+ title: '会议监听已开始',
45
+ body: [
46
+ 'bot 已入会,监听群同步已开启。',
47
+ '',
48
+ ...lines,
49
+ ...(input.listenerChatId ? [`**监听群**:\`${escapeMd(input.listenerChatId)}\``] : []),
50
+ ].join('\n'),
51
+ };
52
+ }
53
+ if (input.status === 'declined') {
54
+ return {
55
+ template: 'grey',
56
+ title: '已跳过会议监听',
57
+ body: ['本次会议不会让 bot 入会。', '', ...lines].join('\n'),
58
+ };
59
+ }
60
+ if (input.status === 'expired') {
61
+ return {
62
+ template: 'grey',
63
+ title: '会议监听确认已过期',
64
+ body: ['会议邀请已过期或会议已结束,未执行入会。', '', ...lines].join('\n'),
65
+ };
66
+ }
67
+ return {
68
+ template: 'red',
69
+ title: '会议监听启动失败',
70
+ body: [
71
+ input.error ? `失败原因:${escapeMd(input.error)}` : '启动失败,请查看 daemon 日志。',
72
+ '',
73
+ ...lines,
74
+ ].join('\n'),
75
+ };
76
+ }
77
+ export function buildVcMeetingConfirmCard(input) {
78
+ const { template, title, body } = statusBody(input);
79
+ const actions = input.status === 'pending'
80
+ ? [
81
+ {
82
+ tag: 'button',
83
+ text: { tag: 'plain_text', content: '开始监听' },
84
+ type: 'primary',
85
+ value: {
86
+ action: 'vc_meeting_confirm',
87
+ meeting_id: input.meeting.id,
88
+ meeting_no: input.meeting.meetingNo ?? '',
89
+ target_open_id: input.targetOpenId,
90
+ nonce: input.nonce,
91
+ },
92
+ },
93
+ {
94
+ tag: 'button',
95
+ text: { tag: 'plain_text', content: '跳过' },
96
+ type: 'default',
97
+ value: {
98
+ action: 'vc_meeting_decline',
99
+ meeting_id: input.meeting.id,
100
+ target_open_id: input.targetOpenId,
101
+ nonce: input.nonce,
102
+ },
103
+ },
104
+ ]
105
+ : [];
106
+ const card = {
107
+ config: { wide_screen_mode: true },
108
+ header: {
109
+ title: { tag: 'plain_text', content: title },
110
+ template,
111
+ },
112
+ elements: [
113
+ { tag: 'markdown', content: body },
114
+ ...(actions.length ? [{ tag: 'action', actions }] : []),
115
+ ],
116
+ };
117
+ return JSON.stringify(card);
118
+ }
119
+ function consumerCandidateLabel(candidate) {
120
+ return candidate.label?.trim() || candidate.larkAppId;
121
+ }
122
+ function consumerCandidateOptionLabel(candidate) {
123
+ return consumerCandidateLabel(candidate).slice(0, 60);
124
+ }
125
+ function consumerSyncIntervalLabel(ms) {
126
+ if (!ms || !Number.isFinite(ms))
127
+ return '默认';
128
+ const seconds = Math.round(ms / 1000);
129
+ return `${seconds} 秒`;
130
+ }
131
+ const CONSUMER_SYNC_INTERVAL_INPUT_NAME = 'vc_meeting_custom_interval_seconds';
132
+ function consumerSyncIntervalCustomDefault(ms) {
133
+ if (!ms || !Number.isFinite(ms))
134
+ return '';
135
+ const presetMs = new Set([15_000, 30_000, 60_000, 90_000]);
136
+ if (presetMs.has(ms))
137
+ return '';
138
+ return String(Math.round(ms / 1000));
139
+ }
140
+ function consumerStatusBody(input) {
141
+ const lines = baseLines({ meeting: input.meeting, status: 'pending', targetOpenId: '', nonce: '' });
142
+ if (input.status === 'pending') {
143
+ const defaultLabel = input.defaultMode === 'listenOnly'
144
+ ? '只监听消息'
145
+ : input.candidates.find(c => c.larkAppId === input.defaultAgentAppId)?.label || input.defaultAgentAppId || '默认 agent';
146
+ const stagedModeLabel = input.stagedMode === 'agent'
147
+ ? (input.stagedAgentLabel || 'agent')
148
+ : input.stagedMode === 'listenOnly' ? '只监听消息' : undefined;
149
+ return {
150
+ template: 'blue',
151
+ title: '会议处理方式',
152
+ body: [
153
+ '选择处理方式和同步间隔后点击"确认"生效;完全不操作会按默认设置执行。',
154
+ '',
155
+ ...lines,
156
+ `**默认**:${escapeMd(defaultLabel)}`,
157
+ `**同步间隔**:${escapeMd(consumerSyncIntervalLabel(input.stagedIntervalMs ?? input.syncIntervalMs))}${input.stagedIntervalMs ? '(待确认)' : ''}`,
158
+ '**自定义间隔**:可填写 10-3600 秒,点击"确认"时会覆盖预设。',
159
+ ...(stagedModeLabel ? [`**当前选择**:${escapeMd(stagedModeLabel)}(待确认)`] : []),
160
+ ].join('\n'),
161
+ };
162
+ }
163
+ if (input.status === 'listenOnly') {
164
+ return {
165
+ template: 'grey',
166
+ title: '仅同步会议消息',
167
+ body: [
168
+ '本次会议只同步字幕、聊天和参会变化,不启用 agent 处理。',
169
+ ...(input.error ? [`选择 agent 失败,已回退只监听:${escapeMd(input.error)}`] : []),
170
+ '',
171
+ ...lines,
172
+ ].join('\n'),
173
+ };
174
+ }
175
+ if (input.status === 'processing') {
176
+ return {
177
+ template: 'blue',
178
+ title: '会议处理设置中',
179
+ body: [
180
+ '已收到确认,正在应用本次会议处理设置。',
181
+ '完成后卡片会自动更新,请不要重复点击。',
182
+ '',
183
+ ...lines,
184
+ ].join('\n'),
185
+ };
186
+ }
187
+ if (input.status === 'agent') {
188
+ return {
189
+ template: 'green',
190
+ title: '会议 agent 已启用',
191
+ body: [
192
+ `本次会议将交给 ${escapeMd(input.selectedAgentLabel || input.selectedAgentAppId || 'agent')} 处理。`,
193
+ `同步间隔:${escapeMd(consumerSyncIntervalLabel(input.syncIntervalMs))}`,
194
+ '',
195
+ ...lines,
196
+ ].join('\n'),
197
+ };
198
+ }
199
+ if (input.status === 'expired') {
200
+ return {
201
+ template: 'grey',
202
+ title: '会议处理选择已失效',
203
+ body: ['选择已过期或会议已结束。', '', ...lines].join('\n'),
204
+ };
205
+ }
206
+ return {
207
+ template: 'red',
208
+ title: '会议处理设置失败',
209
+ body: [input.error ? `失败原因:${escapeMd(input.error)}` : '设置失败,请查看 daemon 日志。', '', ...lines].join('\n'),
210
+ };
211
+ }
212
+ export function buildVcMeetingConsumerCard(input) {
213
+ const { template, title, body } = consumerStatusBody(input);
214
+ const elements = [
215
+ { tag: 'markdown', content: body },
216
+ ];
217
+ if (input.status === 'pending') {
218
+ elements.push(...(input.candidates.length > 0 ? [{
219
+ tag: 'select_static',
220
+ placeholder: { tag: 'plain_text', content: '选择 agent' },
221
+ width: 'fill',
222
+ initial_option: input.stagedMode === 'agent' ? input.stagedAgentAppId : undefined,
223
+ behaviors: vcMeetingConsumerCallback({
224
+ action: 'vc_meeting_consumer_stage',
225
+ stage_kind: 'agent',
226
+ meeting_id: input.meeting.id,
227
+ nonce: input.nonce,
228
+ }),
229
+ options: input.candidates.map(candidate => ({
230
+ text: { tag: 'plain_text', content: consumerCandidateOptionLabel(candidate) },
231
+ value: candidate.larkAppId,
232
+ })),
233
+ }] : []), {
234
+ tag: 'select_static',
235
+ placeholder: { tag: 'plain_text', content: '同步间隔' },
236
+ width: 'fill',
237
+ initial_option: consumerSyncIntervalPresetValue(input.stagedIntervalMs ?? input.syncIntervalMs),
238
+ behaviors: vcMeetingConsumerCallback({
239
+ action: 'vc_meeting_consumer_stage',
240
+ stage_kind: 'interval',
241
+ meeting_id: input.meeting.id,
242
+ nonce: input.nonce,
243
+ }),
244
+ options: [
245
+ { text: { tag: 'plain_text', content: '15 秒' }, value: '15000' },
246
+ { text: { tag: 'plain_text', content: '30 秒' }, value: '30000' },
247
+ { text: { tag: 'plain_text', content: '60 秒' }, value: '60000' },
248
+ { text: { tag: 'plain_text', content: '90 秒' }, value: '90000' },
249
+ ],
250
+ }, {
251
+ tag: 'form',
252
+ name: 'vc_meeting_consumer_confirm_form',
253
+ elements: [
254
+ {
255
+ tag: 'input',
256
+ name: CONSUMER_SYNC_INTERVAL_INPUT_NAME,
257
+ label: { tag: 'plain_text', content: '自定义同步间隔(秒)' },
258
+ placeholder: { tag: 'plain_text', content: '例如 45,范围 10-3600' },
259
+ default_value: consumerSyncIntervalCustomDefault(input.stagedIntervalMs ?? input.syncIntervalMs),
260
+ },
261
+ {
262
+ tag: 'button',
263
+ name: 'vc_meeting_consumer_confirm_submit',
264
+ text: { tag: 'plain_text', content: '确认' },
265
+ type: 'primary_filled',
266
+ width: 'fill',
267
+ action_type: 'form_submit',
268
+ value: {
269
+ action: 'vc_meeting_consumer_confirm',
270
+ meeting_id: input.meeting.id,
271
+ nonce: input.nonce,
272
+ },
273
+ },
274
+ ],
275
+ }, {
276
+ tag: 'button',
277
+ text: { tag: 'plain_text', content: '只监听消息' },
278
+ type: 'default',
279
+ behaviors: vcMeetingConsumerCallback({
280
+ action: 'vc_meeting_consumer_stage',
281
+ stage_kind: 'listenOnly',
282
+ meeting_id: input.meeting.id,
283
+ nonce: input.nonce,
284
+ }),
285
+ }, {
286
+ tag: 'button',
287
+ text: { tag: 'plain_text', content: '使用默认设置' },
288
+ type: 'default',
289
+ behaviors: vcMeetingConsumerCallback({
290
+ action: 'vc_meeting_consumer_select',
291
+ consumer_mode: 'default',
292
+ meeting_id: input.meeting.id,
293
+ nonce: input.nonce,
294
+ }),
295
+ });
296
+ }
297
+ const card = {
298
+ schema: '2.0',
299
+ config: {
300
+ update_multi: true,
301
+ width_mode: 'default',
302
+ },
303
+ header: {
304
+ title: { tag: 'plain_text', content: title },
305
+ template,
306
+ },
307
+ body: {
308
+ direction: 'vertical',
309
+ padding: '12px 12px 16px 12px',
310
+ vertical_spacing: 'medium',
311
+ elements,
312
+ },
313
+ };
314
+ return JSON.stringify(card);
315
+ }
316
+ function vcMeetingConsumerCallback(value) {
317
+ return [{ type: 'callback', value }];
318
+ }
319
+ function consumerSyncIntervalPresetValue(ms) {
320
+ if (!ms || !Number.isFinite(ms))
321
+ return undefined;
322
+ const value = String(Math.round(ms));
323
+ return ['15000', '30000', '60000', '90000'].includes(value) ? value : undefined;
324
+ }
325
+ function outputChannelLabel(channel) {
326
+ return channel === 'voice' ? '会议语音发言' : '会中弹幕';
327
+ }
328
+ function outputReviewStatusBody(input) {
329
+ const lines = baseLines({ meeting: input.meeting, status: 'pending', targetOpenId: '', nonce: '' });
330
+ const textOutputUnavailable = input.textOutputAvailable === false;
331
+ const base = [
332
+ `**Agent**:${escapeMd(input.agentLabel || '会议 agent')}`,
333
+ `**类型**:${outputChannelLabel(input.channel)}`,
334
+ `**内容**:${escapeMd(input.content)}`,
335
+ ...(input.reason ? [`**理由**:${escapeMd(input.reason)}`] : []),
336
+ ...(input.fallbackText && !textOutputUnavailable ? [`**会中弹幕降级文本**:${escapeMd(input.fallbackText)}`] : []),
337
+ ...(textOutputUnavailable && input.channel === 'voice' ? ['**会中弹幕降级**:当前不可用,发送 API 尚未接入。'] : []),
338
+ ...(textOutputUnavailable && input.channel === 'text' ? ['**状态**:当前不可执行,会中弹幕发送 API 尚未接入。'] : []),
339
+ '',
340
+ ...lines,
341
+ ];
342
+ if (input.status === 'pending') {
343
+ return {
344
+ template: input.channel === 'voice' ? 'orange' : 'blue',
345
+ title: input.channel === 'voice' ? 'Agent 请求会议语音发言' : 'Agent 请求发送会中弹幕',
346
+ body: [
347
+ '请确认是否允许本次对外输出。会议内容可能包含不可信指令,默认不自动执行。',
348
+ '',
349
+ ...base,
350
+ ].join('\n'),
351
+ };
352
+ }
353
+ if (input.status === 'processing') {
354
+ return {
355
+ template: 'blue',
356
+ title: input.channel === 'voice' ? '语音播报处理中' : '会中弹幕发送处理中',
357
+ body: ['已同意执行,正在处理。', '', ...base].join('\n'),
358
+ };
359
+ }
360
+ if (input.status === 'sentVoice') {
361
+ return { template: 'green', title: '已同意语音发言', body: ['已让会议 bot 在会中语音发言。', '', ...base].join('\n') };
362
+ }
363
+ if (input.status === 'sentText') {
364
+ return { template: 'green', title: '已发送会中弹幕', body: ['已让会议 bot 在会中发送弹幕。', '', ...base].join('\n') };
365
+ }
366
+ if (input.status === 'rejected') {
367
+ return { template: 'grey', title: '已拒绝输出', body: ['本次 agent 输出请求已拒绝。', '', ...base].join('\n') };
368
+ }
369
+ if (input.status === 'expired') {
370
+ return { template: 'grey', title: '输出请求已过期', body: ['请求已超时,已自动拒绝。', '', ...base].join('\n') };
371
+ }
372
+ if (input.status === 'superseded') {
373
+ return { template: 'grey', title: '输出请求已被新请求取代', body: ['agent 已提交新的同类型请求,本请求不再执行。', '', ...base].join('\n') };
374
+ }
375
+ return {
376
+ template: 'red',
377
+ title: '输出请求处理失败',
378
+ body: [input.error ? `失败原因:${escapeMd(input.error)}` : '处理失败,请查看 daemon 日志。', '', ...base].join('\n'),
379
+ };
380
+ }
381
+ export function buildVcMeetingOutputReviewCard(input) {
382
+ const { template, title, body } = outputReviewStatusBody(input);
383
+ const textOutputAvailable = input.textOutputAvailable !== false;
384
+ const actions = input.status === 'pending'
385
+ ? input.channel === 'voice'
386
+ ? [
387
+ {
388
+ tag: 'button',
389
+ text: { tag: 'plain_text', content: '同意语音' },
390
+ type: 'primary',
391
+ value: {
392
+ action: 'vc_meeting_output_review',
393
+ decision: 'approve_voice',
394
+ meeting_id: input.meeting.id,
395
+ request_id: input.requestId,
396
+ nonce: input.nonce,
397
+ },
398
+ },
399
+ ...(textOutputAvailable ? [{
400
+ tag: 'button',
401
+ text: { tag: 'plain_text', content: '改发会中弹幕' },
402
+ type: 'default',
403
+ value: {
404
+ action: 'vc_meeting_output_review',
405
+ decision: 'send_text',
406
+ meeting_id: input.meeting.id,
407
+ request_id: input.requestId,
408
+ nonce: input.nonce,
409
+ },
410
+ }] : []),
411
+ {
412
+ tag: 'button',
413
+ text: { tag: 'plain_text', content: '拒绝' },
414
+ type: 'danger',
415
+ value: {
416
+ action: 'vc_meeting_output_review',
417
+ decision: 'reject',
418
+ meeting_id: input.meeting.id,
419
+ request_id: input.requestId,
420
+ nonce: input.nonce,
421
+ },
422
+ },
423
+ ]
424
+ : textOutputAvailable ? [
425
+ {
426
+ tag: 'button',
427
+ text: { tag: 'plain_text', content: '发送会中弹幕' },
428
+ type: 'primary',
429
+ value: {
430
+ action: 'vc_meeting_output_review',
431
+ decision: 'send_text',
432
+ meeting_id: input.meeting.id,
433
+ request_id: input.requestId,
434
+ nonce: input.nonce,
435
+ },
436
+ },
437
+ {
438
+ tag: 'button',
439
+ text: { tag: 'plain_text', content: '本场自动会中弹幕' },
440
+ type: 'default',
441
+ value: {
442
+ action: 'vc_meeting_output_review',
443
+ decision: 'allow_text_and_send',
444
+ meeting_id: input.meeting.id,
445
+ request_id: input.requestId,
446
+ nonce: input.nonce,
447
+ },
448
+ },
449
+ {
450
+ tag: 'button',
451
+ text: { tag: 'plain_text', content: '拒绝' },
452
+ type: 'danger',
453
+ value: {
454
+ action: 'vc_meeting_output_review',
455
+ decision: 'reject',
456
+ meeting_id: input.meeting.id,
457
+ request_id: input.requestId,
458
+ nonce: input.nonce,
459
+ },
460
+ },
461
+ ] : [
462
+ {
463
+ tag: 'button',
464
+ text: { tag: 'plain_text', content: '拒绝' },
465
+ type: 'danger',
466
+ value: {
467
+ action: 'vc_meeting_output_review',
468
+ decision: 'reject',
469
+ meeting_id: input.meeting.id,
470
+ request_id: input.requestId,
471
+ nonce: input.nonce,
472
+ },
473
+ },
474
+ ]
475
+ : [];
476
+ const card = {
477
+ config: { wide_screen_mode: true },
478
+ header: {
479
+ title: { tag: 'plain_text', content: title },
480
+ template,
481
+ },
482
+ elements: [
483
+ { tag: 'markdown', content: body },
484
+ ...(actions.length ? [{ tag: 'action', actions }] : []),
485
+ ],
486
+ };
487
+ return JSON.stringify(card);
488
+ }
489
+ //# sourceMappingURL=cards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards.js","sourceRoot":"","sources":["../../src/vc-agent/cards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { NormalizedVcMeetingItem, NormalizedVcTranscriptItem, VcMeetingIngestResult, VcMeetingRef, VcMeetingSource, VcMeetingSessionState, VcMeetingStatePayload, VcTranscriptStateEntry } from './types.js';
2
+ export declare function createVcMeetingSessionState(input: {
3
+ meeting: VcMeetingRef;
4
+ source?: VcMeetingSource;
5
+ attentionTargetOpenId?: string;
6
+ notificationChatId?: string;
7
+ }): VcMeetingSessionState;
8
+ export declare function beginVcIngestionPass(state: VcMeetingSessionState, now?: Date): void;
9
+ export declare const beginVcPollingPass: typeof beginVcIngestionPass;
10
+ export declare function applyDropOnSeenMeetingItem(state: VcMeetingSessionState, item: Exclude<NormalizedVcMeetingItem, NormalizedVcTranscriptItem>, opts?: {
11
+ recentLimit?: number;
12
+ }): {
13
+ accepted: boolean;
14
+ };
15
+ export declare function upsertTranscriptMeetingItem(state: VcMeetingSessionState, item: NormalizedVcTranscriptItem, opts?: {
16
+ now?: Date;
17
+ recentLimit?: number;
18
+ transcriptLimit?: number;
19
+ }): {
20
+ changed: boolean;
21
+ entry: VcTranscriptStateEntry;
22
+ };
23
+ export declare function ingestNormalizedVcMeetingItems(state: VcMeetingSessionState, items: NormalizedVcMeetingItem[], opts?: {
24
+ now?: Date;
25
+ recentLimit?: number;
26
+ transcriptLimit?: number;
27
+ }): VcMeetingIngestResult;
28
+ export declare function collectStableTranscriptItems(state: VcMeetingSessionState, opts?: {
29
+ stabilizePollWindows?: number;
30
+ stabilizeMs?: number;
31
+ now?: Date;
32
+ markFlushed?: boolean;
33
+ }): NormalizedVcTranscriptItem[];
34
+ export declare function markVcTranscriptItemsFlushed(state: VcMeetingSessionState, items: NormalizedVcTranscriptItem[]): void;
35
+ export declare function buildVcMeetingStatePayload(state: VcMeetingSessionState, items: NormalizedVcMeetingItem[], page?: {
36
+ pageToken?: string;
37
+ hasMore?: boolean;
38
+ }): VcMeetingStatePayload;
39
+ //# sourceMappingURL=meeting-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-state.d.ts","sourceRoot":"","sources":["../../src/vc-agent/meeting-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,qBAAqB,CAgBxB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,GAAE,IAAiB,GAAG,IAAI,CAG/F;AAED,eAAO,MAAM,kBAAkB,6BAAuB,CAAC;AAQvD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,OAAO,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,EAClE,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CASvB;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,0BAA0B,EAChC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GACxE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,CAkCrD;AAoBD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,uBAAuB,EAAE,EAChC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GACxE,qBAAqB,CAoBvB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,qBAAqB,EAC5B,IAAI,GAAE;IAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACpG,0BAA0B,EAAE,CA8B9B;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,0BAA0B,EAAE,GAClC,IAAI,CAQN;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,uBAAuB,EAAE,EAChC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,qBAAqB,CAwBvB"}