botmux 2.104.0 → 2.105.0

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 (329) 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/relay.d.ts +2 -2
  13. package/dist/adapters/cli/relay.js +2 -2
  14. package/dist/adapters/cli/seed.d.ts +2 -2
  15. package/dist/adapters/cli/seed.js +2 -2
  16. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  17. package/dist/adapters/cli/shared-hints.js +1 -0
  18. package/dist/adapters/cli/shared-hints.js.map +1 -1
  19. package/dist/bot-registry.d.ts +65 -1
  20. package/dist/bot-registry.d.ts.map +1 -1
  21. package/dist/bot-registry.js +145 -0
  22. package/dist/bot-registry.js.map +1 -1
  23. package/dist/cli/send-dispatch.d.ts +44 -0
  24. package/dist/cli/send-dispatch.d.ts.map +1 -1
  25. package/dist/cli/send-dispatch.js +79 -0
  26. package/dist/cli/send-dispatch.js.map +1 -1
  27. package/dist/cli/vc-agent.d.ts +2 -0
  28. package/dist/cli/vc-agent.d.ts.map +1 -0
  29. package/dist/cli/vc-agent.js +331 -0
  30. package/dist/cli/vc-agent.js.map +1 -0
  31. package/dist/cli.d.ts.map +1 -1
  32. package/dist/cli.js +106 -24
  33. package/dist/cli.js.map +1 -1
  34. package/dist/config.d.ts +8 -0
  35. package/dist/config.d.ts.map +1 -1
  36. package/dist/config.js +13 -1
  37. package/dist/config.js.map +1 -1
  38. package/dist/core/auto-start.d.ts +2 -2
  39. package/dist/core/auto-start.js +2 -2
  40. package/dist/core/command-handler.d.ts.map +1 -1
  41. package/dist/core/command-handler.js +2 -1
  42. package/dist/core/command-handler.js.map +1 -1
  43. package/dist/core/dashboard-events.d.ts +5 -0
  44. package/dist/core/dashboard-events.d.ts.map +1 -1
  45. package/dist/core/dashboard-events.js.map +1 -1
  46. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  47. package/dist/core/dashboard-ipc-server.js +47 -2
  48. package/dist/core/dashboard-ipc-server.js.map +1 -1
  49. package/dist/core/idle-worker-sweeper.d.ts +1 -1
  50. package/dist/core/idle-worker-sweeper.js +1 -1
  51. package/dist/core/passthrough-commands.d.ts.map +1 -1
  52. package/dist/core/passthrough-commands.js +1 -0
  53. package/dist/core/passthrough-commands.js.map +1 -1
  54. package/dist/core/scheduler.d.ts +12 -0
  55. package/dist/core/scheduler.d.ts.map +1 -1
  56. package/dist/core/scheduler.js +67 -7
  57. package/dist/core/scheduler.js.map +1 -1
  58. package/dist/core/session-discovery.js +1 -1
  59. package/dist/core/session-discovery.js.map +1 -1
  60. package/dist/core/session-manager.d.ts.map +1 -1
  61. package/dist/core/session-manager.js +33 -7
  62. package/dist/core/session-manager.js.map +1 -1
  63. package/dist/core/trigger-session.d.ts.map +1 -1
  64. package/dist/core/trigger-session.js +78 -23
  65. package/dist/core/trigger-session.js.map +1 -1
  66. package/dist/core/worker-pool.d.ts +4 -1
  67. package/dist/core/worker-pool.d.ts.map +1 -1
  68. package/dist/core/worker-pool.js +4 -0
  69. package/dist/core/worker-pool.js.map +1 -1
  70. package/dist/core/zellij-adopt-discovery.js +1 -1
  71. package/dist/core/zellij-adopt-discovery.js.map +1 -1
  72. package/dist/daemon.d.ts +121 -0
  73. package/dist/daemon.d.ts.map +1 -1
  74. package/dist/daemon.js +2644 -2
  75. package/dist/daemon.js.map +1 -1
  76. package/dist/dashboard/federated-group-core.js +1 -1
  77. package/dist/dashboard/federated-group-core.js.map +1 -1
  78. package/dist/dashboard/federation-api.js +1 -1
  79. package/dist/dashboard/schedule-card-model.d.ts +4 -3
  80. package/dist/dashboard/schedule-card-model.d.ts.map +1 -1
  81. package/dist/dashboard/schedule-card-model.js +5 -4
  82. package/dist/dashboard/schedule-card-model.js.map +1 -1
  83. package/dist/dashboard/settings-write-applier.d.ts +37 -3
  84. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  85. package/dist/dashboard/settings-write-applier.js +63 -0
  86. package/dist/dashboard/settings-write-applier.js.map +1 -1
  87. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  88. package/dist/dashboard/web/i18n.js +28 -0
  89. package/dist/dashboard/web/i18n.js.map +1 -1
  90. package/dist/dashboard/web/insights.js +19 -19
  91. package/dist/dashboard/web/insights.js.map +1 -1
  92. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  93. package/dist/dashboard/web/overview-page.js +7 -4
  94. package/dist/dashboard/web/overview-page.js.map +1 -1
  95. package/dist/dashboard/web/schedules-page.d.ts +1 -1
  96. package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
  97. package/dist/dashboard/web/schedules-page.js +7 -3
  98. package/dist/dashboard/web/schedules-page.js.map +1 -1
  99. package/dist/dashboard/web/sessions.js +2 -2
  100. package/dist/dashboard/web/settings-page.d.ts +9 -0
  101. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  102. package/dist/dashboard/web/settings-page.js +132 -43
  103. package/dist/dashboard/web/settings-page.js.map +1 -1
  104. package/dist/dashboard/web/store.d.ts +6 -0
  105. package/dist/dashboard/web/store.d.ts.map +1 -1
  106. package/dist/dashboard/web/store.js +18 -1
  107. package/dist/dashboard/web/store.js.map +1 -1
  108. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  109. package/dist/dashboard/webhook-routes.js +24 -0
  110. package/dist/dashboard/webhook-routes.js.map +1 -1
  111. package/dist/dashboard-web/app.js +3 -3
  112. package/dist/dashboard-web/chunks/{bot-defaults-page-Z36I5CKM.js → bot-defaults-page-3OIY7N76.js} +1 -1
  113. package/dist/dashboard-web/chunks/{chunk-2BBCKWNO.js → chunk-BNEXMNQD.js} +3 -3
  114. package/dist/dashboard-web/chunks/{chunk-QDKIUULH.js → chunk-DKKOGZCG.js} +1 -1
  115. package/dist/dashboard-web/chunks/chunk-LXIK7OUJ.js +1 -0
  116. package/dist/dashboard-web/chunks/{chunk-BAMNP73K.js → chunk-VFCACTRF.js} +1 -1
  117. package/dist/dashboard-web/chunks/{connectors-I3MGERCM.js → connectors-VDOAKUW3.js} +1 -1
  118. package/dist/dashboard-web/chunks/{groups-page-DTP2L4FQ.js → groups-page-CX5AN4XG.js} +1 -1
  119. package/dist/dashboard-web/chunks/{insights-page-FNI24WYF.js → insights-page-DOMRL4S6.js} +1 -1
  120. package/dist/dashboard-web/chunks/overview-page-AZBAXVZ7.js +1 -0
  121. package/dist/dashboard-web/chunks/{roles-page-A5DZ7Q6U.js → roles-page-3FEAH6S4.js} +1 -1
  122. package/dist/dashboard-web/chunks/schedules-CTQEA7IE.js +1 -0
  123. package/dist/dashboard-web/chunks/{sessions-YJ735IH4.js → sessions-LVZCXO2Z.js} +1 -1
  124. package/dist/dashboard-web/chunks/{sessions-page-2REIJ56C.js → sessions-page-NHBJDSBC.js} +1 -1
  125. package/dist/dashboard-web/chunks/settings-page-CRDIHRNE.js +2 -0
  126. package/dist/dashboard-web/chunks/{skills-page-ZCCLHWMJ.js → skills-page-VUG3EPWX.js} +1 -1
  127. package/dist/dashboard-web/chunks/{team-federation-page-4FCGO3WW.js → team-federation-page-ZKL3YMGN.js} +1 -1
  128. package/dist/dashboard-web/chunks/{workflows-KFJ7O57L.js → workflows-4BYQQBFP.js} +1 -1
  129. package/dist/dashboard-web/index.html +1 -1
  130. package/dist/dashboard-web/style.css +111 -16
  131. package/dist/dashboard.js +196 -2
  132. package/dist/dashboard.js.map +1 -1
  133. package/dist/global-config.d.ts +30 -0
  134. package/dist/global-config.d.ts.map +1 -1
  135. package/dist/global-config.js +64 -1
  136. package/dist/global-config.js.map +1 -1
  137. package/dist/i18n/en.d.ts.map +1 -1
  138. package/dist/i18n/en.js +10 -7
  139. package/dist/i18n/en.js.map +1 -1
  140. package/dist/i18n/zh.d.ts.map +1 -1
  141. package/dist/i18n/zh.js +10 -7
  142. package/dist/i18n/zh.js.map +1 -1
  143. package/dist/im/lark/card-builder.d.ts +1 -1
  144. package/dist/im/lark/card-builder.js +1 -1
  145. package/dist/im/lark/card-handler.d.ts +3 -0
  146. package/dist/im/lark/card-handler.d.ts.map +1 -1
  147. package/dist/im/lark/card-handler.js +8 -0
  148. package/dist/im/lark/card-handler.js.map +1 -1
  149. package/dist/im/lark/client.d.ts +1 -0
  150. package/dist/im/lark/client.d.ts.map +1 -1
  151. package/dist/im/lark/client.js +19 -0
  152. package/dist/im/lark/client.js.map +1 -1
  153. package/dist/im/lark/event-dispatcher.d.ts +10 -0
  154. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  155. package/dist/im/lark/event-dispatcher.js +100 -21
  156. package/dist/im/lark/event-dispatcher.js.map +1 -1
  157. package/dist/im/lark/grant-command.d.ts +1 -1
  158. package/dist/im/lark/grant-command.js +1 -1
  159. package/dist/im/lark/workflow-slash-command.js +4 -0
  160. package/dist/im/lark/workflow-slash-command.js.map +1 -1
  161. package/dist/mir-prompt.d.ts +16 -0
  162. package/dist/mir-prompt.d.ts.map +1 -0
  163. package/dist/mir-prompt.js +170 -0
  164. package/dist/mir-prompt.js.map +1 -0
  165. package/dist/mir-runner.js +1 -149
  166. package/dist/mir-runner.js.map +1 -1
  167. package/dist/platform/bind.d.ts.map +1 -1
  168. package/dist/platform/bind.js +3 -11
  169. package/dist/platform/bind.js.map +1 -1
  170. package/dist/platform/binding.d.ts +4 -5
  171. package/dist/platform/binding.d.ts.map +1 -1
  172. package/dist/platform/binding.js +0 -11
  173. package/dist/platform/binding.js.map +1 -1
  174. package/dist/platform/tunnel-client.d.ts.map +1 -1
  175. package/dist/platform/tunnel-client.js +37 -28
  176. package/dist/platform/tunnel-client.js.map +1 -1
  177. package/dist/services/deployment-identity.d.ts +1 -1
  178. package/dist/services/deployment-identity.d.ts.map +1 -1
  179. package/dist/services/deployment-identity.js +1 -1
  180. package/dist/services/deployment-identity.js.map +1 -1
  181. package/dist/services/doc-subs-store.js +1 -1
  182. package/dist/services/team-board-store.js +1 -1
  183. package/dist/services/team-board-store.js.map +1 -1
  184. package/dist/services/trigger-types.d.ts +2 -1
  185. package/dist/services/trigger-types.d.ts.map +1 -1
  186. package/dist/services/trigger-types.js +11 -2
  187. package/dist/services/trigger-types.js.map +1 -1
  188. package/dist/services/vc-meeting-runtime-store.d.ts +55 -0
  189. package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -0
  190. package/dist/services/vc-meeting-runtime-store.js +313 -0
  191. package/dist/services/vc-meeting-runtime-store.js.map +1 -0
  192. package/dist/services/voice/index.d.ts +6 -1
  193. package/dist/services/voice/index.d.ts.map +1 -1
  194. package/dist/services/voice/index.js +12 -5
  195. package/dist/services/voice/index.js.map +1 -1
  196. package/dist/services/voice/sami.js +1 -1
  197. package/dist/setup/lark-scopes.json +5 -0
  198. package/dist/setup/verify-permissions.d.ts +6 -0
  199. package/dist/setup/verify-permissions.d.ts.map +1 -1
  200. package/dist/setup/verify-permissions.js +17 -0
  201. package/dist/setup/verify-permissions.js.map +1 -1
  202. package/dist/skills/definitions.d.ts.map +1 -1
  203. package/dist/skills/definitions.js +10 -0
  204. package/dist/skills/definitions.js.map +1 -1
  205. package/dist/utils/daemon-discovery.d.ts +2 -0
  206. package/dist/utils/daemon-discovery.d.ts.map +1 -1
  207. package/dist/utils/daemon-discovery.js +2 -0
  208. package/dist/utils/daemon-discovery.js.map +1 -1
  209. package/dist/utils/timezone.d.ts +51 -0
  210. package/dist/utils/timezone.d.ts.map +1 -0
  211. package/dist/utils/timezone.js +110 -0
  212. package/dist/utils/timezone.js.map +1 -0
  213. package/dist/vc-agent/cards.d.ts +47 -0
  214. package/dist/vc-agent/cards.d.ts.map +1 -0
  215. package/dist/vc-agent/cards.js +489 -0
  216. package/dist/vc-agent/cards.js.map +1 -0
  217. package/dist/vc-agent/meeting-state.d.ts +39 -0
  218. package/dist/vc-agent/meeting-state.d.ts.map +1 -0
  219. package/dist/vc-agent/meeting-state.js +186 -0
  220. package/dist/vc-agent/meeting-state.js.map +1 -0
  221. package/dist/vc-agent/normalizer.d.ts +13 -0
  222. package/dist/vc-agent/normalizer.d.ts.map +1 -0
  223. package/dist/vc-agent/normalizer.js +411 -0
  224. package/dist/vc-agent/normalizer.js.map +1 -0
  225. package/dist/vc-agent/polling-source.d.ts +36 -0
  226. package/dist/vc-agent/polling-source.d.ts.map +1 -0
  227. package/dist/vc-agent/polling-source.js +129 -0
  228. package/dist/vc-agent/polling-source.js.map +1 -0
  229. package/dist/vc-agent/push-source.d.ts +13 -0
  230. package/dist/vc-agent/push-source.d.ts.map +1 -0
  231. package/dist/vc-agent/push-source.js +109 -0
  232. package/dist/vc-agent/push-source.js.map +1 -0
  233. package/dist/vc-agent/realtime/audio-source.d.ts +6 -0
  234. package/dist/vc-agent/realtime/audio-source.d.ts.map +1 -0
  235. package/dist/vc-agent/realtime/audio-source.js +17 -0
  236. package/dist/vc-agent/realtime/audio-source.js.map +1 -0
  237. package/dist/vc-agent/realtime/endpoint.d.ts +6 -0
  238. package/dist/vc-agent/realtime/endpoint.d.ts.map +1 -0
  239. package/dist/vc-agent/realtime/endpoint.js +25 -0
  240. package/dist/vc-agent/realtime/endpoint.js.map +1 -0
  241. package/dist/vc-agent/realtime/errors.d.ts +9 -0
  242. package/dist/vc-agent/realtime/errors.d.ts.map +1 -0
  243. package/dist/vc-agent/realtime/errors.js +17 -0
  244. package/dist/vc-agent/realtime/errors.js.map +1 -0
  245. package/dist/vc-agent/realtime/events.d.ts +24 -0
  246. package/dist/vc-agent/realtime/events.d.ts.map +1 -0
  247. package/dist/vc-agent/realtime/events.js +190 -0
  248. package/dist/vc-agent/realtime/events.js.map +1 -0
  249. package/dist/vc-agent/realtime/frontier.d.ts +34 -0
  250. package/dist/vc-agent/realtime/frontier.d.ts.map +1 -0
  251. package/dist/vc-agent/realtime/frontier.js +40 -0
  252. package/dist/vc-agent/realtime/frontier.js.map +1 -0
  253. package/dist/vc-agent/realtime/index.d.ts +11 -0
  254. package/dist/vc-agent/realtime/index.d.ts.map +1 -0
  255. package/dist/vc-agent/realtime/index.js +11 -0
  256. package/dist/vc-agent/realtime/index.js.map +1 -0
  257. package/dist/vc-agent/realtime/pacer.d.ts +21 -0
  258. package/dist/vc-agent/realtime/pacer.d.ts.map +1 -0
  259. package/dist/vc-agent/realtime/pacer.js +80 -0
  260. package/dist/vc-agent/realtime/pacer.js.map +1 -0
  261. package/dist/vc-agent/realtime/protobuf.d.ts +33 -0
  262. package/dist/vc-agent/realtime/protobuf.d.ts.map +1 -0
  263. package/dist/vc-agent/realtime/protobuf.js +159 -0
  264. package/dist/vc-agent/realtime/protobuf.js.map +1 -0
  265. package/dist/vc-agent/realtime/protocol.d.ts +4 -0
  266. package/dist/vc-agent/realtime/protocol.d.ts.map +1 -0
  267. package/dist/vc-agent/realtime/protocol.js +59 -0
  268. package/dist/vc-agent/realtime/protocol.js.map +1 -0
  269. package/dist/vc-agent/realtime/session.d.ts +39 -0
  270. package/dist/vc-agent/realtime/session.d.ts.map +1 -0
  271. package/dist/vc-agent/realtime/session.js +221 -0
  272. package/dist/vc-agent/realtime/session.js.map +1 -0
  273. package/dist/vc-agent/realtime/transport.d.ts +23 -0
  274. package/dist/vc-agent/realtime/transport.d.ts.map +1 -0
  275. package/dist/vc-agent/realtime/transport.js +112 -0
  276. package/dist/vc-agent/realtime/transport.js.map +1 -0
  277. package/dist/vc-agent/realtime/types.d.ts +84 -0
  278. package/dist/vc-agent/realtime/types.d.ts.map +1 -0
  279. package/dist/vc-agent/realtime/types.js +5 -0
  280. package/dist/vc-agent/realtime/types.js.map +1 -0
  281. package/dist/vc-agent/types.d.ts +142 -0
  282. package/dist/vc-agent/types.d.ts.map +1 -0
  283. package/dist/vc-agent/types.js +2 -0
  284. package/dist/vc-agent/types.js.map +1 -0
  285. package/dist/worker.js +3 -3
  286. package/dist/worker.js.map +1 -1
  287. package/dist/workflows/attempt-resume.d.ts +4 -0
  288. package/dist/workflows/attempt-resume.d.ts.map +1 -1
  289. package/dist/workflows/attempt-resume.js +2 -0
  290. package/dist/workflows/attempt-resume.js.map +1 -1
  291. package/dist/workflows/attempt-terminal.d.ts +4 -0
  292. package/dist/workflows/attempt-terminal.d.ts.map +1 -1
  293. package/dist/workflows/attempt-terminal.js.map +1 -1
  294. package/dist/workflows/daemon-spawn.d.ts.map +1 -1
  295. package/dist/workflows/daemon-spawn.js +7 -0
  296. package/dist/workflows/daemon-spawn.js.map +1 -1
  297. package/dist/workflows/events/payloads.d.ts +32 -0
  298. package/dist/workflows/events/payloads.d.ts.map +1 -1
  299. package/dist/workflows/events/payloads.js +4 -0
  300. package/dist/workflows/events/payloads.js.map +1 -1
  301. package/dist/workflows/events/schema.d.ts +56 -0
  302. package/dist/workflows/events/schema.d.ts.map +1 -1
  303. package/dist/workflows/runtime.d.ts +4 -0
  304. package/dist/workflows/runtime.d.ts.map +1 -1
  305. package/dist/workflows/runtime.js.map +1 -1
  306. package/dist/workflows/spawn-policy.d.ts +14 -0
  307. package/dist/workflows/spawn-policy.d.ts.map +1 -0
  308. package/dist/workflows/spawn-policy.js +9 -0
  309. package/dist/workflows/spawn-policy.js.map +1 -0
  310. package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
  311. package/dist/workflows/v3/bot-resolve.js +4 -0
  312. package/dist/workflows/v3/bot-resolve.js.map +1 -1
  313. package/dist/workflows/v3/cli-run.d.ts.map +1 -1
  314. package/dist/workflows/v3/cli-run.js +4 -0
  315. package/dist/workflows/v3/cli-run.js.map +1 -1
  316. package/dist/workflows/v3/contract.d.ts +9 -3
  317. package/dist/workflows/v3/contract.d.ts.map +1 -1
  318. package/dist/workflows/v3/contract.js +3 -3
  319. package/dist/workflows/v3/contract.js.map +1 -1
  320. package/dist/workflows/v3/ephemeral-pool.d.ts.map +1 -1
  321. package/dist/workflows/v3/ephemeral-pool.js +2 -0
  322. package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
  323. package/dist/workflows/v3/runtime.js +1 -1
  324. package/dist/workflows/v3/runtime.js.map +1 -1
  325. package/package.json +1 -1
  326. package/dist/dashboard-web/chunks/chunk-76J7PNZI.js +0 -1
  327. package/dist/dashboard-web/chunks/overview-page-EHCZJBWY.js +0 -1
  328. package/dist/dashboard-web/chunks/schedules-RSXALJU4.js +0 -1
  329. package/dist/dashboard-web/chunks/settings-page-XKFTXTDE.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../src/vc-agent/normalizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { NormalizedVcMeetingBatch } from './types.js';
2
+ export interface LarkCliRunOptions {
3
+ profile?: string;
4
+ }
5
+ export interface FetchMeetingEventsOptions extends LarkCliRunOptions {
6
+ meetingId: string;
7
+ pageToken?: string;
8
+ pageSize?: number;
9
+ pageAll?: boolean;
10
+ start?: string;
11
+ end?: string;
12
+ }
13
+ export interface JoinMeetingOptions extends LarkCliRunOptions {
14
+ meetingNumber: string;
15
+ password?: string;
16
+ }
17
+ export interface SendMeetingMessageOptions extends LarkCliRunOptions {
18
+ meetingId: string;
19
+ text: string;
20
+ uuid?: string;
21
+ }
22
+ export declare function runLarkCliJson(args: string[]): unknown;
23
+ export declare function assertLarkCliJsonOk(raw: unknown, context: string): void;
24
+ export declare function extractMeetingIdFromJoin(raw: unknown): string | undefined;
25
+ export declare function joinMeetingAsBot(opts: JoinMeetingOptions): {
26
+ meetingId: string;
27
+ raw: unknown;
28
+ };
29
+ export declare function fetchMeetingEventsAsBot(opts: FetchMeetingEventsOptions): {
30
+ raw: unknown;
31
+ batch: NormalizedVcMeetingBatch;
32
+ };
33
+ export declare function sendMeetingTextMessageAsBot(opts: SendMeetingMessageOptions): {
34
+ raw: unknown;
35
+ };
36
+ //# sourceMappingURL=polling-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polling-source.d.ts","sourceRoot":"","sources":["../../src/vc-agent/polling-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAcD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAWtD;AAUD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAavE;AAuBD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQzE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAgB9F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,yBAAyB,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,CAmB1H;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,yBAAyB,GAAG;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAmB7F"}
@@ -0,0 +1,129 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { normalizeVcMeetingEvents } from './normalizer.js';
3
+ function parseCliJson(stdout) {
4
+ const trimmed = stdout.trim();
5
+ if (!trimmed)
6
+ return {};
7
+ try {
8
+ return JSON.parse(trimmed);
9
+ }
10
+ catch {
11
+ const objectStart = trimmed.search(/[\[{]/);
12
+ if (objectStart >= 0)
13
+ return JSON.parse(trimmed.slice(objectStart));
14
+ throw new Error('lark-cli returned non-JSON output');
15
+ }
16
+ }
17
+ export function runLarkCliJson(args) {
18
+ const result = spawnSync('lark-cli', args, {
19
+ encoding: 'utf-8',
20
+ maxBuffer: 10 * 1024 * 1024,
21
+ });
22
+ if (result.status !== 0) {
23
+ const stderr = result.stderr?.trim();
24
+ const stdout = result.stdout?.trim();
25
+ throw new Error(`lark-cli ${args.join(' ')} failed: ${stderr || stdout || `exit ${result.status}`}`);
26
+ }
27
+ return parseCliJson(result.stdout ?? '');
28
+ }
29
+ function firstErrorString(...values) {
30
+ for (const v of values) {
31
+ if (typeof v === 'string' && v.trim())
32
+ return v.trim();
33
+ if (typeof v === 'number' && Number.isFinite(v))
34
+ return String(v);
35
+ }
36
+ return undefined;
37
+ }
38
+ export function assertLarkCliJsonOk(raw, context) {
39
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
40
+ return;
41
+ const obj = raw;
42
+ if (obj.ok !== false)
43
+ return;
44
+ const message = firstErrorString(obj.error, obj.message, obj.msg, obj.error_msg, obj.code, obj.error_code);
45
+ throw new Error(`${context} failed: ${message ?? 'lark-cli returned ok=false'}`);
46
+ }
47
+ function withProfile(args, profile) {
48
+ return profile ? [...args, '--profile', profile] : args;
49
+ }
50
+ function getPath(obj, path) {
51
+ let cur = obj;
52
+ for (const part of path.split('.')) {
53
+ if (!cur || typeof cur !== 'object' || Array.isArray(cur))
54
+ return undefined;
55
+ cur = cur[part];
56
+ }
57
+ return cur;
58
+ }
59
+ function firstString(...values) {
60
+ for (const v of values) {
61
+ if (typeof v === 'string' && v.trim())
62
+ return v.trim();
63
+ if (typeof v === 'number' && Number.isFinite(v))
64
+ return String(v);
65
+ }
66
+ return undefined;
67
+ }
68
+ export function extractMeetingIdFromJoin(raw) {
69
+ return firstString(getPath(raw, 'meeting.id'), getPath(raw, 'data.meeting.id'), getPath(raw, 'data.id'), getPath(raw, 'id'), getPath(raw, 'meeting_id'));
70
+ }
71
+ export function joinMeetingAsBot(opts) {
72
+ const args = withProfile([
73
+ 'vc',
74
+ '+meeting-join',
75
+ '--as',
76
+ 'bot',
77
+ '--meeting-number',
78
+ opts.meetingNumber,
79
+ '--format',
80
+ 'json',
81
+ ...(opts.password ? ['--password', opts.password] : []),
82
+ ], opts.profile);
83
+ const raw = runLarkCliJson(args);
84
+ const meetingId = extractMeetingIdFromJoin(raw);
85
+ if (!meetingId)
86
+ throw new Error('meeting join succeeded but response did not contain meeting.id');
87
+ return { meetingId, raw };
88
+ }
89
+ export function fetchMeetingEventsAsBot(opts) {
90
+ const args = withProfile([
91
+ 'vc',
92
+ '+meeting-events',
93
+ '--as',
94
+ 'bot',
95
+ '--meeting-id',
96
+ opts.meetingId,
97
+ '--page-size',
98
+ String(opts.pageSize ?? 100),
99
+ ...(opts.pageToken ? ['--page-token', opts.pageToken] : []),
100
+ ...(opts.start ? ['--start', opts.start] : []),
101
+ ...(opts.end ? ['--end', opts.end] : []),
102
+ ...(opts.pageAll ?? true ? ['--page-all'] : []),
103
+ '--format',
104
+ 'json',
105
+ ], opts.profile);
106
+ const raw = runLarkCliJson(args);
107
+ return { raw, batch: normalizeVcMeetingEvents(raw, { meetingId: opts.meetingId, source: 'polling' }) };
108
+ }
109
+ export function sendMeetingTextMessageAsBot(opts) {
110
+ const args = withProfile([
111
+ 'vc',
112
+ '+meeting-message-send',
113
+ '--as',
114
+ 'bot',
115
+ '--meeting-id',
116
+ opts.meetingId,
117
+ '--msg-type',
118
+ 'text',
119
+ '--text',
120
+ opts.text,
121
+ ...(opts.uuid ? ['--uuid', opts.uuid] : []),
122
+ '--format',
123
+ 'json',
124
+ ], opts.profile);
125
+ const raw = runLarkCliJson(args);
126
+ assertLarkCliJsonOk(raw, 'meeting text message send');
127
+ return { raw };
128
+ }
129
+ //# sourceMappingURL=polling-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polling-source.js","sourceRoot":"","sources":["../../src/vc-agent/polling-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { VcMeetingPushContext, VcMeetingPushEventKind } from './types.js';
2
+ export declare const VC_BOT_MEETING_INVITED_EVENT = "vc.bot.meeting_invited_v1";
3
+ export declare const VC_BOT_MEETING_ACTIVITY_EVENT = "vc.bot.meeting_activity_v1";
4
+ export declare const VC_BOT_MEETING_ENDED_EVENT = "vc.bot.meeting_ended_v1";
5
+ export declare const VC_PARTICIPANT_MEETING_JOINED_EVENT = "vc.meeting.participant_meeting_joined_v1";
6
+ export type VcMeetingPushEventType = typeof VC_BOT_MEETING_INVITED_EVENT | typeof VC_BOT_MEETING_ACTIVITY_EVENT | typeof VC_BOT_MEETING_ENDED_EVENT | typeof VC_PARTICIPANT_MEETING_JOINED_EVENT;
7
+ export declare function parseVcMeetingPushEvent(input: {
8
+ data: unknown;
9
+ larkAppId: string;
10
+ kind: VcMeetingPushEventKind;
11
+ eventType: VcMeetingPushEventType;
12
+ }): VcMeetingPushContext;
13
+ //# sourceMappingURL=push-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push-source.d.ts","sourceRoot":"","sources":["../../src/vc-agent/push-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAgB,MAAM,YAAY,CAAC;AAE7F,eAAO,MAAM,4BAA4B,8BAA8B,CAAC;AACxE,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AAC1E,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,mCAAmC,6CAA6C,CAAC;AAE9F,MAAM,MAAM,sBAAsB,GAC9B,OAAO,4BAA4B,GACnC,OAAO,6BAA6B,GACpC,OAAO,0BAA0B,GACjC,OAAO,mCAAmC,CAAC;AAqH/C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,SAAS,EAAE,sBAAsB,CAAC;CACnC,GAAG,oBAAoB,CAUvB"}
@@ -0,0 +1,109 @@
1
+ export const VC_BOT_MEETING_INVITED_EVENT = 'vc.bot.meeting_invited_v1';
2
+ export const VC_BOT_MEETING_ACTIVITY_EVENT = 'vc.bot.meeting_activity_v1';
3
+ export const VC_BOT_MEETING_ENDED_EVENT = 'vc.bot.meeting_ended_v1';
4
+ export const VC_PARTICIPANT_MEETING_JOINED_EVENT = 'vc.meeting.participant_meeting_joined_v1';
5
+ function isRecord(v) {
6
+ return !!v && typeof v === 'object' && !Array.isArray(v);
7
+ }
8
+ function getPath(obj, path) {
9
+ let cur = obj;
10
+ for (const part of path.split('.')) {
11
+ if (!isRecord(cur))
12
+ return undefined;
13
+ cur = cur[part];
14
+ }
15
+ return cur;
16
+ }
17
+ function firstString(...values) {
18
+ for (const v of values) {
19
+ if (typeof v === 'string' && v.trim())
20
+ return v.trim();
21
+ if (typeof v === 'number' && Number.isFinite(v))
22
+ return String(v);
23
+ }
24
+ return undefined;
25
+ }
26
+ function parseTimeMs(...values) {
27
+ for (const v of values) {
28
+ if (typeof v === 'number' && Number.isFinite(v)) {
29
+ return v < 10_000_000_000 ? Math.floor(v * 1000) : Math.floor(v);
30
+ }
31
+ if (typeof v === 'string' && v.trim()) {
32
+ const s = v.trim();
33
+ if (/^\d+$/.test(s)) {
34
+ const n = Number(s);
35
+ if (Number.isFinite(n))
36
+ return n < 10_000_000_000 ? Math.floor(n * 1000) : Math.floor(n);
37
+ }
38
+ const parsed = Date.parse(s);
39
+ if (Number.isFinite(parsed))
40
+ return parsed;
41
+ }
42
+ }
43
+ return undefined;
44
+ }
45
+ function eventBody(data) {
46
+ return getPath(data, 'event') ?? getPath(data, 'data.event') ?? data;
47
+ }
48
+ function firstActivityMeeting(data) {
49
+ const candidates = [
50
+ getPath(data, 'event.meeting_actitivty_items'),
51
+ getPath(data, 'event.meeting_activity_items'),
52
+ getPath(data, 'data.event.meeting_actitivty_items'),
53
+ getPath(data, 'data.event.meeting_activity_items'),
54
+ getPath(data, 'meeting_actitivty_items'),
55
+ getPath(data, 'meeting_activity_items'),
56
+ ];
57
+ for (const c of candidates) {
58
+ if (!Array.isArray(c))
59
+ continue;
60
+ for (const item of c) {
61
+ const meeting = getPath(item, 'meeting');
62
+ if (isRecord(meeting))
63
+ return meeting;
64
+ }
65
+ }
66
+ return undefined;
67
+ }
68
+ function meetingRefFromPush(data) {
69
+ const body = eventBody(data);
70
+ const meeting = getPath(body, 'meeting') ?? getPath(data, 'meeting') ?? firstActivityMeeting(data) ?? body;
71
+ const id = firstString(getPath(meeting, 'id'), getPath(meeting, 'meeting_id'), getPath(body, 'meeting_id'), getPath(data, 'meeting_id'), getPath(data, 'event.meeting_id'), getPath(data, 'data.event.meeting_id'));
72
+ return {
73
+ id: id ?? '',
74
+ ...(firstString(getPath(meeting, 'meeting_no'), getPath(meeting, 'meetingNo'), getPath(body, 'meeting_no')) ? {
75
+ meetingNo: firstString(getPath(meeting, 'meeting_no'), getPath(meeting, 'meetingNo'), getPath(body, 'meeting_no')),
76
+ } : {}),
77
+ ...(firstString(getPath(meeting, 'topic'), getPath(meeting, 'title'), getPath(meeting, 'meeting_title')) ? {
78
+ topic: firstString(getPath(meeting, 'topic'), getPath(meeting, 'title'), getPath(meeting, 'meeting_title')),
79
+ } : {}),
80
+ ...(parseTimeMs(getPath(meeting, 'start_time'), getPath(meeting, 'startTime'), getPath(meeting, 'start_time_ms')) !== undefined ? {
81
+ startTimeMs: parseTimeMs(getPath(meeting, 'start_time'), getPath(meeting, 'startTime'), getPath(meeting, 'start_time_ms')),
82
+ } : {}),
83
+ ...(firstString(getPath(meeting, 'host_user.open_id'), getPath(meeting, 'host.open_id')) ? {
84
+ hostOpenId: firstString(getPath(meeting, 'host_user.open_id'), getPath(meeting, 'host.open_id')),
85
+ } : {}),
86
+ ...(firstString(getPath(meeting, 'host_user.user_name'), getPath(meeting, 'host_user.name'), getPath(meeting, 'host.name')) ? {
87
+ hostName: firstString(getPath(meeting, 'host_user.user_name'), getPath(meeting, 'host_user.name'), getPath(meeting, 'host.name')),
88
+ } : {}),
89
+ };
90
+ }
91
+ function eventIdFromPush(data) {
92
+ return firstString(getPath(data, 'header.event_id'), getPath(data, 'event_id'), getPath(data, 'uuid'), getPath(data, 'event.event_id'), getPath(data, 'data.event.event_id'));
93
+ }
94
+ function occurredAtFromPush(data) {
95
+ const body = eventBody(data);
96
+ return parseTimeMs(getPath(data, 'header.create_time'), getPath(data, 'header.event_time'), getPath(body, 'event_time'), getPath(body, 'timestamp'), getPath(body, 'time'), getPath(body, 'create_time'));
97
+ }
98
+ export function parseVcMeetingPushEvent(input) {
99
+ return {
100
+ larkAppId: input.larkAppId,
101
+ kind: input.kind,
102
+ eventType: input.eventType,
103
+ ...(eventIdFromPush(input.data) ? { eventId: eventIdFromPush(input.data) } : {}),
104
+ meeting: meetingRefFromPush(input.data),
105
+ ...(occurredAtFromPush(input.data) !== undefined ? { occurredAtMs: occurredAtFromPush(input.data) } : {}),
106
+ raw: input.data,
107
+ };
108
+ }
109
+ //# sourceMappingURL=push-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push-source.js","sourceRoot":"","sources":["../../src/vc-agent/push-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type Pcm } from '../../services/voice/audio.js';
2
+ import { type SplitPcmFrameOptions } from './pacer.js';
3
+ import type { RealtimeVoiceFrameBatch } from './types.js';
4
+ export declare function pcmToRealtimeVoiceFrameBatch(pcm: Pcm, opts?: SplitPcmFrameOptions): RealtimeVoiceFrameBatch;
5
+ export declare function synthesizeRealtimeVoiceFrameBatch(larkAppId: string | undefined, text: string, opts?: SplitPcmFrameOptions): Promise<RealtimeVoiceFrameBatch>;
6
+ //# sourceMappingURL=audio-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-source.d.ts","sourceRoot":"","sources":["../../../src/vc-agent/realtime/audio-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,GAAG,EACR,IAAI,GAAE,oBAAyB,GAC9B,uBAAuB,CAQzB;AAED,wBAAsB,iCAAiC,CACrD,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAGlC"}
@@ -0,0 +1,17 @@
1
+ import { pcmDurationMs } from '../../services/voice/audio.js';
2
+ import { synthesizeVoicePcmForMessage } from '../../services/voice/index.js';
3
+ import { splitPcmIntoRealtimeFrames } from './pacer.js';
4
+ export function pcmToRealtimeVoiceFrameBatch(pcm, opts = {}) {
5
+ const split = splitPcmIntoRealtimeFrames(pcm, opts);
6
+ return {
7
+ pcm,
8
+ format: split.format,
9
+ frames: split.frames,
10
+ durationMs: pcmDurationMs(pcm),
11
+ };
12
+ }
13
+ export async function synthesizeRealtimeVoiceFrameBatch(larkAppId, text, opts = {}) {
14
+ const pcm = await synthesizeVoicePcmForMessage(larkAppId, text);
15
+ return pcmToRealtimeVoiceFrameBatch(pcm, opts);
16
+ }
17
+ //# sourceMappingURL=audio-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-source.js","sourceRoot":"","sources":["../../../src/vc-agent/realtime/audio-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAY,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAA6B,MAAM,YAAY,CAAC;AAGnF,MAAM,UAAU,4BAA4B,CAC1C,GAAQ,EACR,OAA6B,EAAE;IAE/B,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO;QACL,GAAG;QACH,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,SAA6B,EAC7B,IAAY,EACZ,OAA6B,EAAE;IAE/B,MAAM,GAAG,GAAG,MAAM,4BAA4B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAChE,OAAO,4BAA4B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface RealtimeEndpointResult {
2
+ websocketUrl: string;
3
+ raw: unknown;
4
+ }
5
+ export declare function fetchRealtimeVoiceEndpoint(larkAppId: string, meetingId: string): Promise<RealtimeEndpointResult>;
6
+ //# sourceMappingURL=endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/vc-agent/realtime/endpoint.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;CACd;AASD,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC,CAiBjC"}
@@ -0,0 +1,25 @@
1
+ import { getBotClient } from '../../bot-registry.js';
2
+ import { larkGet } from '../../im/lark/client.js';
3
+ function firstString(...values) {
4
+ for (const value of values) {
5
+ if (typeof value === 'string' && value.trim())
6
+ return value.trim();
7
+ }
8
+ return undefined;
9
+ }
10
+ export async function fetchRealtimeVoiceEndpoint(larkAppId, meetingId) {
11
+ if (!meetingId.trim())
12
+ throw new Error('meetingId is required for VC realtime endpoint');
13
+ const client = getBotClient(larkAppId);
14
+ const res = await larkGet(client, '/open-apis/vc/v1/realtime/endpoint', {
15
+ meeting_id: meetingId,
16
+ });
17
+ if (res?.code !== 0) {
18
+ throw new Error(`failed to fetch VC realtime endpoint: ${res?.msg ?? 'unknown'} (code=${res?.code ?? '?'})`);
19
+ }
20
+ const websocketUrl = firstString(res?.data?.websocket_url, res?.data?.websocketUrl, res?.data?.ws_url, res?.data?.url);
21
+ if (!websocketUrl)
22
+ throw new Error('VC realtime endpoint response did not contain websocket_url');
23
+ return { websocketUrl, raw: res };
24
+ }
25
+ //# sourceMappingURL=endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/vc-agent/realtime/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAOlD,SAAS,WAAW,CAAC,GAAG,MAAiB;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAAiB,EACjB,SAAiB;IAEjB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,oCAAoC,EAAE;QACtE,UAAU,EAAE,SAAS;KACtB,CAAC,CAAC;IACH,IAAI,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,EAAE,GAAG,IAAI,SAAS,UAAU,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;IAC/G,CAAC;IACD,MAAM,YAAY,GAAG,WAAW,CAC9B,GAAG,EAAE,IAAI,EAAE,aAAa,EACxB,GAAG,EAAE,IAAI,EAAE,YAAY,EACvB,GAAG,EAAE,IAAI,EAAE,MAAM,EACjB,GAAG,EAAE,IAAI,EAAE,GAAG,CACf,CAAC;IACF,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAClG,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const REALTIME_VOICE_PROTO_NOT_CONFIGURED = "proto_not_configured";
2
+ export declare const REALTIME_VOICE_TRANSPORT_NOT_CONFIGURED = "transport_not_configured";
3
+ export declare class RealtimeVoiceNotConfiguredError extends Error {
4
+ readonly code: string;
5
+ constructor(code: string, message: string);
6
+ }
7
+ export declare function protoNotConfigured(detail: string): never;
8
+ export declare function transportNotConfigured(): never;
9
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/vc-agent/realtime/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mCAAmC,yBAAyB,CAAC;AAC1E,eAAO,MAAM,uCAAuC,6BAA6B,CAAC;AAElF,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAKxD;AAED,wBAAgB,sBAAsB,IAAI,KAAK,CAK9C"}
@@ -0,0 +1,17 @@
1
+ export const REALTIME_VOICE_PROTO_NOT_CONFIGURED = 'proto_not_configured';
2
+ export const REALTIME_VOICE_TRANSPORT_NOT_CONFIGURED = 'transport_not_configured';
3
+ export class RealtimeVoiceNotConfiguredError extends Error {
4
+ code;
5
+ constructor(code, message) {
6
+ super(message);
7
+ this.name = 'RealtimeVoiceNotConfiguredError';
8
+ this.code = code;
9
+ }
10
+ }
11
+ export function protoNotConfigured(detail) {
12
+ throw new RealtimeVoiceNotConfiguredError(REALTIME_VOICE_PROTO_NOT_CONFIGURED, `VC realtime voice protobuf is not configured: ${detail}`);
13
+ }
14
+ export function transportNotConfigured() {
15
+ throw new RealtimeVoiceNotConfiguredError(REALTIME_VOICE_TRANSPORT_NOT_CONFIGURED, 'VC realtime voice WebSocket transport is not configured.');
16
+ }
17
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/vc-agent/realtime/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mCAAmC,GAAG,sBAAsB,CAAC;AAC1E,MAAM,CAAC,MAAM,uCAAuC,GAAG,0BAA0B,CAAC;AAElF,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,IAAI,+BAA+B,CACvC,mCAAmC,EACnC,iDAAiD,MAAM,EAAE,CAC1D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,IAAI,+BAA+B,CACvC,uCAAuC,EACvC,0DAA0D,CAC3D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { DecodedRealtimeServerEvent, RealtimeVoiceAudioFormat, RealtimeVoiceFrame } from './types.js';
2
+ export declare const CLIENT_EVENT_SESSION_CREATE = "session.create";
3
+ export declare const CLIENT_EVENT_AUDIO_UPSTREAM_APPEND = "audio.upstream.append";
4
+ export declare const CLIENT_EVENT_AUDIO_UPSTREAM_CLEAR = "audio.upstream.clear";
5
+ export declare const CLIENT_EVENT_SESSION_CLOSE = "session.close";
6
+ export declare const SERVER_EVENT_SESSION_CREATED = "session.created";
7
+ export declare const SERVER_EVENT_AUDIO_DOWNSTREAM_DELTA = "audio.downstream.delta";
8
+ export declare const SERVER_EVENT_SESSION_CLOSED = "session.closed";
9
+ export declare const SERVER_EVENT_ERROR = "error";
10
+ export declare const CLIENT_CLOSE_REASON_USER_LEFT = 1;
11
+ export interface EncodedRealtimeClientEvent {
12
+ eventId: string;
13
+ payload: Buffer;
14
+ }
15
+ export interface EncodeClientEventOptions {
16
+ eventId?: string;
17
+ createdAt?: string;
18
+ }
19
+ export declare function encodeSessionCreateEvent(format: RealtimeVoiceAudioFormat, opts?: EncodeClientEventOptions): EncodedRealtimeClientEvent;
20
+ export declare function encodeAudioFrameEvent(frame: RealtimeVoiceFrame, sessionId: bigint, opts?: EncodeClientEventOptions): EncodedRealtimeClientEvent;
21
+ export declare function encodeAudioUpstreamClearEvent(sessionId: bigint, opts?: EncodeClientEventOptions): EncodedRealtimeClientEvent;
22
+ export declare function encodeSessionCloseEvent(sessionId: bigint, opts?: EncodeClientEventOptions): EncodedRealtimeClientEvent;
23
+ export declare function decodeServerEvent(data: Buffer): DecodedRealtimeServerEvent;
24
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/vc-agent/realtime/events.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAC5D,eAAO,MAAM,kCAAkC,0BAA0B,CAAC;AAC1E,eAAO,MAAM,iCAAiC,yBAAyB,CAAC;AACxE,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAE1D,eAAO,MAAM,4BAA4B,oBAAoB,CAAC;AAC9D,eAAO,MAAM,mCAAmC,2BAA2B,CAAC;AAC5E,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAC5D,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2DD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,EAChC,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAY5B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAY5B;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAS5B;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAY5B;AA+CD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CAuD1E"}