@pipedog/core 0.0.0 → 0.2.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 (736) hide show
  1. package/LICENSE +25 -0
  2. package/NOTICE +9 -0
  3. package/dist/adapters/base_llm_adapter.d.ts +266 -0
  4. package/dist/adapters/base_llm_adapter.js +489 -0
  5. package/dist/adapters/index.d.ts +2 -0
  6. package/dist/adapters/index.js +8 -0
  7. package/dist/adapters/schemas/direct_function.d.ts +202 -0
  8. package/dist/adapters/schemas/direct_function.js +302 -0
  9. package/dist/adapters/schemas/function_schema.d.ts +67 -0
  10. package/dist/adapters/schemas/function_schema.js +72 -0
  11. package/dist/adapters/schemas/index.d.ts +2 -0
  12. package/dist/adapters/schemas/index.js +8 -0
  13. package/dist/adapters/schemas/tools_schema.d.ts +57 -0
  14. package/dist/adapters/schemas/tools_schema.js +79 -0
  15. package/dist/adapters/services/index.d.ts +2 -0
  16. package/dist/adapters/services/index.js +8 -0
  17. package/dist/adapters/services/open_ai_adapter.d.ts +147 -0
  18. package/dist/adapters/services/open_ai_adapter.js +250 -0
  19. package/dist/audio/dtmf/dtmf_data.d.ts +3 -0
  20. package/dist/audio/dtmf/dtmf_data.js +22 -0
  21. package/dist/audio/dtmf/index.d.ts +2 -0
  22. package/dist/audio/dtmf/index.js +8 -0
  23. package/dist/audio/dtmf/types.d.ts +31 -0
  24. package/dist/audio/dtmf/types.js +35 -0
  25. package/dist/audio/dtmf/utils.d.ts +13 -0
  26. package/dist/audio/dtmf/utils.js +62 -0
  27. package/dist/audio/filters/base_audio_filter.d.ts +51 -0
  28. package/dist/audio/filters/base_audio_filter.js +17 -0
  29. package/dist/audio/filters/index.d.ts +2 -0
  30. package/dist/audio/filters/index.js +8 -0
  31. package/dist/audio/index.d.ts +2 -0
  32. package/dist/audio/index.js +8 -0
  33. package/dist/audio/krisp_instance.d.ts +95 -0
  34. package/dist/audio/krisp_instance.js +229 -0
  35. package/dist/audio/mixers/base_audio_mixer.d.ts +56 -0
  36. package/dist/audio/mixers/base_audio_mixer.js +16 -0
  37. package/dist/audio/mixers/index.d.ts +2 -0
  38. package/dist/audio/mixers/index.js +8 -0
  39. package/dist/audio/resamplers/base_audio_resampler.d.ts +46 -0
  40. package/dist/audio/resamplers/base_audio_resampler.js +35 -0
  41. package/dist/audio/resamplers/engine.d.ts +60 -0
  42. package/dist/audio/resamplers/engine.js +89 -0
  43. package/dist/audio/resamplers/index.d.ts +2 -0
  44. package/dist/audio/resamplers/index.js +8 -0
  45. package/dist/audio/resamplers/resampy_resampler.d.ts +10 -0
  46. package/dist/audio/resamplers/resampy_resampler.js +15 -0
  47. package/dist/audio/resamplers/sinc_engine.d.ts +10 -0
  48. package/dist/audio/resamplers/sinc_engine.js +235 -0
  49. package/dist/audio/resamplers/soxr_resampler.d.ts +58 -0
  50. package/dist/audio/resamplers/soxr_resampler.js +79 -0
  51. package/dist/audio/resamplers/soxr_stream_resampler.d.ts +78 -0
  52. package/dist/audio/resamplers/soxr_stream_resampler.js +159 -0
  53. package/dist/audio/turn/base_turn_analyzer.d.ts +84 -0
  54. package/dist/audio/turn/base_turn_analyzer.js +61 -0
  55. package/dist/audio/turn/index.d.ts +2 -0
  56. package/dist/audio/turn/index.js +8 -0
  57. package/dist/audio/turn/smart_turn/_whisper_features.d.ts +30 -0
  58. package/dist/audio/turn/smart_turn/_whisper_features.js +225 -0
  59. package/dist/audio/turn/smart_turn/base_smart_turn.d.ts +94 -0
  60. package/dist/audio/turn/smart_turn/base_smart_turn.js +239 -0
  61. package/dist/audio/turn/smart_turn/local_smart_turn_v3.d.ts +76 -0
  62. package/dist/audio/turn/smart_turn/local_smart_turn_v3.js +151 -0
  63. package/dist/audio/utils.d.ts +224 -0
  64. package/dist/audio/utils.js +634 -0
  65. package/dist/audio/vad/data/index.d.ts +2 -0
  66. package/dist/audio/vad/data/index.js +8 -0
  67. package/dist/audio/vad/index.d.ts +2 -0
  68. package/dist/audio/vad/index.js +8 -0
  69. package/dist/audio/vad/vad_analyzer.d.ts +134 -0
  70. package/dist/audio/vad/vad_analyzer.js +249 -0
  71. package/dist/audio/vad/vad_controller.d.ts +143 -0
  72. package/dist/audio/vad/vad_controller.js +228 -0
  73. package/dist/audio/volume.d.ts +38 -0
  74. package/dist/audio/volume.js +75 -0
  75. package/dist/bus/adapters/base.d.ts +35 -0
  76. package/dist/bus/adapters/base.js +19 -0
  77. package/dist/bus/adapters/index.d.ts +10 -0
  78. package/dist/bus/adapters/index.js +15 -0
  79. package/dist/bus/adapters/llm_context_adapter.d.ts +36 -0
  80. package/dist/bus/adapters/llm_context_adapter.js +82 -0
  81. package/dist/bus/adapters/tools_schema_adapter.d.ts +25 -0
  82. package/dist/bus/adapters/tools_schema_adapter.js +70 -0
  83. package/dist/bus/bridge_processor.d.ts +111 -0
  84. package/dist/bus/bridge_processor.js +166 -0
  85. package/dist/bus/bus.d.ts +110 -0
  86. package/dist/bus/bus.js +200 -0
  87. package/dist/bus/index.d.ts +22 -0
  88. package/dist/bus/index.js +27 -0
  89. package/dist/bus/local/async_queue.d.ts +12 -0
  90. package/dist/bus/local/async_queue.js +21 -0
  91. package/dist/bus/local/index.d.ts +3 -0
  92. package/dist/bus/local/index.js +8 -0
  93. package/dist/bus/messages.d.ts +378 -0
  94. package/dist/bus/messages.js +357 -0
  95. package/dist/bus/network/index.d.ts +16 -0
  96. package/dist/bus/network/index.js +21 -0
  97. package/dist/bus/queue.d.ts +27 -0
  98. package/dist/bus/queue.js +51 -0
  99. package/dist/bus/serializers/base.d.ts +25 -0
  100. package/dist/bus/serializers/base.js +14 -0
  101. package/dist/bus/serializers/index.d.ts +9 -0
  102. package/dist/bus/serializers/index.js +14 -0
  103. package/dist/bus/serializers/json.d.ts +77 -0
  104. package/dist/bus/serializers/json.js +367 -0
  105. package/dist/bus/subscriber.d.ts +46 -0
  106. package/dist/bus/subscriber.js +27 -0
  107. package/dist/bus/ui/index.d.ts +3 -0
  108. package/dist/bus/ui/index.js +8 -0
  109. package/dist/bus/ui/messages.d.ts +186 -0
  110. package/dist/bus/ui/messages.js +171 -0
  111. package/dist/classifiers/base_classifier.d.ts +263 -0
  112. package/dist/classifiers/base_classifier.js +346 -0
  113. package/dist/classifiers/cloudflare/clef/classifier.d.ts +70 -0
  114. package/dist/classifiers/cloudflare/clef/classifier.js +204 -0
  115. package/dist/classifiers/cloudflare/clef/client.d.ts +104 -0
  116. package/dist/classifiers/cloudflare/clef/client.js +234 -0
  117. package/dist/classifiers/cloudflare/clef/index.d.ts +2 -0
  118. package/dist/classifiers/cloudflare/clef/index.js +8 -0
  119. package/dist/classifiers/cloudflare/index.d.ts +2 -0
  120. package/dist/classifiers/cloudflare/index.js +8 -0
  121. package/dist/classifiers/http_client.d.ts +70 -0
  122. package/dist/classifiers/http_client.js +161 -0
  123. package/dist/classifiers/index.d.ts +2 -0
  124. package/dist/classifiers/index.js +8 -0
  125. package/dist/classifiers/jev/classifier.d.ts +8 -0
  126. package/dist/classifiers/jev/classifier.js +13 -0
  127. package/dist/classifiers/jev/client.d.ts +8 -0
  128. package/dist/classifiers/jev/client.js +13 -0
  129. package/dist/classifiers/jev/index.d.ts +2 -0
  130. package/dist/classifiers/jev/index.js +8 -0
  131. package/dist/classifiers/llm/classifier.d.ts +72 -0
  132. package/dist/classifiers/llm/classifier.js +304 -0
  133. package/dist/classifiers/llm/index.d.ts +2 -0
  134. package/dist/classifiers/llm/index.js +8 -0
  135. package/dist/classifiers/openai/decisions/classifier.d.ts +77 -0
  136. package/dist/classifiers/openai/decisions/classifier.js +241 -0
  137. package/dist/classifiers/openai/decisions/client.d.ts +108 -0
  138. package/dist/classifiers/openai/decisions/client.js +234 -0
  139. package/dist/classifiers/openai/decisions/index.d.ts +2 -0
  140. package/dist/classifiers/openai/decisions/index.js +8 -0
  141. package/dist/classifiers/openai/index.d.ts +2 -0
  142. package/dist/classifiers/openai/index.js +8 -0
  143. package/dist/classifiers/typesafe/index.d.ts +2 -0
  144. package/dist/classifiers/typesafe/index.js +8 -0
  145. package/dist/classifiers/typesafe/jev/classifier.d.ts +70 -0
  146. package/dist/classifiers/typesafe/jev/classifier.js +220 -0
  147. package/dist/classifiers/typesafe/jev/client.d.ts +105 -0
  148. package/dist/classifiers/typesafe/jev/client.js +233 -0
  149. package/dist/classifiers/typesafe/jev/index.d.ts +2 -0
  150. package/dist/classifiers/typesafe/jev/index.js +8 -0
  151. package/dist/clocks/base_clock.d.ts +13 -0
  152. package/dist/clocks/base_clock.js +14 -0
  153. package/dist/clocks/index.d.ts +2 -0
  154. package/dist/clocks/index.js +8 -0
  155. package/dist/clocks/system_clock.d.ts +15 -0
  156. package/dist/clocks/system_clock.js +25 -0
  157. package/dist/frames/frames.d.ts +2533 -0
  158. package/dist/frames/frames.js +2485 -0
  159. package/dist/frames/index.d.ts +2 -0
  160. package/dist/frames/index.js +8 -0
  161. package/dist/frames/protobufs/frames_pb2.d.ts +229 -0
  162. package/dist/frames/protobufs/frames_pb2.js +466 -0
  163. package/dist/index.d.ts +11 -0
  164. package/dist/index.js +56 -0
  165. package/dist/metrics/index.d.ts +2 -0
  166. package/dist/metrics/index.js +8 -0
  167. package/dist/metrics/metrics.d.ts +276 -0
  168. package/dist/metrics/metrics.js +254 -0
  169. package/dist/observers/base_observer.d.ts +173 -0
  170. package/dist/observers/base_observer.js +151 -0
  171. package/dist/observers/error_observer.d.ts +75 -0
  172. package/dist/observers/error_observer.js +87 -0
  173. package/dist/observers/function_call_observer.d.ts +157 -0
  174. package/dist/observers/function_call_observer.js +222 -0
  175. package/dist/observers/index.d.ts +2 -0
  176. package/dist/observers/index.js +8 -0
  177. package/dist/observers/loggers/debug_log_observer.d.ts +91 -0
  178. package/dist/observers/loggers/debug_log_observer.js +228 -0
  179. package/dist/observers/loggers/index.d.ts +2 -0
  180. package/dist/observers/loggers/index.js +8 -0
  181. package/dist/observers/loggers/llm_log_observer.d.ts +24 -0
  182. package/dist/observers/loggers/llm_log_observer.js +110 -0
  183. package/dist/observers/loggers/metrics_log_observer.d.ts +85 -0
  184. package/dist/observers/loggers/metrics_log_observer.js +186 -0
  185. package/dist/observers/loggers/transcription_log_observer.d.ts +23 -0
  186. package/dist/observers/loggers/transcription_log_observer.js +74 -0
  187. package/dist/observers/service_metrics_observer.d.ts +168 -0
  188. package/dist/observers/service_metrics_observer.js +236 -0
  189. package/dist/observers/speaking_observer.d.ts +104 -0
  190. package/dist/observers/speaking_observer.js +150 -0
  191. package/dist/observers/startup_timing_observer.d.ts +221 -0
  192. package/dist/observers/startup_timing_observer.js +365 -0
  193. package/dist/observers/turn_tracking_observer.d.ts +78 -0
  194. package/dist/observers/turn_tracking_observer.js +189 -0
  195. package/dist/observers/user_bot_latency_observer.d.ts +411 -0
  196. package/dist/observers/user_bot_latency_observer.js +974 -0
  197. package/dist/pipeline/base_pipeline.d.ts +49 -0
  198. package/dist/pipeline/base_pipeline.js +101 -0
  199. package/dist/pipeline/capabilities.d.ts +76 -0
  200. package/dist/pipeline/capabilities.js +97 -0
  201. package/dist/pipeline/index.d.ts +2 -0
  202. package/dist/pipeline/index.js +8 -0
  203. package/dist/pipeline/job_context.d.ts +317 -0
  204. package/dist/pipeline/job_context.js +450 -0
  205. package/dist/pipeline/job_decorator.d.ts +54 -0
  206. package/dist/pipeline/job_decorator.js +92 -0
  207. package/dist/pipeline/llm_switcher.d.ts +84 -0
  208. package/dist/pipeline/llm_switcher.js +107 -0
  209. package/dist/pipeline/llm_with_backend.d.ts +435 -0
  210. package/dist/pipeline/llm_with_backend.js +806 -0
  211. package/dist/pipeline/parallel_pipeline.d.ts +83 -0
  212. package/dist/pipeline/parallel_pipeline.js +200 -0
  213. package/dist/pipeline/pipeline.d.ts +126 -0
  214. package/dist/pipeline/pipeline.js +196 -0
  215. package/dist/pipeline/service_switcher.d.ts +287 -0
  216. package/dist/pipeline/service_switcher.js +509 -0
  217. package/dist/pipeline/sync_parallel_pipeline.d.ts +192 -0
  218. package/dist/pipeline/sync_parallel_pipeline.js +387 -0
  219. package/dist/pipeline/worker.d.ts +821 -0
  220. package/dist/pipeline/worker.js +1656 -0
  221. package/dist/pipeline/worker_observer.d.ts +131 -0
  222. package/dist/pipeline/worker_observer.js +274 -0
  223. package/dist/pipeline/worker_ready_decorator.d.ts +45 -0
  224. package/dist/pipeline/worker_ready_decorator.js +76 -0
  225. package/dist/processors/aggregators/async_tool_messages.d.ts +146 -0
  226. package/dist/processors/aggregators/async_tool_messages.js +291 -0
  227. package/dist/processors/aggregators/dtmf_aggregator.d.ts +61 -0
  228. package/dist/processors/aggregators/dtmf_aggregator.js +144 -0
  229. package/dist/processors/aggregators/gated.d.ts +43 -0
  230. package/dist/processors/aggregators/gated.js +86 -0
  231. package/dist/processors/aggregators/gated_llm_context.d.ts +42 -0
  232. package/dist/processors/aggregators/gated_llm_context.js +86 -0
  233. package/dist/processors/aggregators/index.d.ts +2 -0
  234. package/dist/processors/aggregators/index.js +8 -0
  235. package/dist/processors/aggregators/llm_context.d.ts +370 -0
  236. package/dist/processors/aggregators/llm_context.js +580 -0
  237. package/dist/processors/aggregators/llm_context_summarizer.d.ts +219 -0
  238. package/dist/processors/aggregators/llm_context_summarizer.js +447 -0
  239. package/dist/processors/aggregators/llm_response.d.ts +37 -0
  240. package/dist/processors/aggregators/llm_response.js +71 -0
  241. package/dist/processors/aggregators/llm_response_universal.d.ts +966 -0
  242. package/dist/processors/aggregators/llm_response_universal.js +2394 -0
  243. package/dist/processors/aggregators/llm_text_processor.d.ts +53 -0
  244. package/dist/processors/aggregators/llm_text_processor.js +102 -0
  245. package/dist/processors/aggregators/sentence.d.ts +39 -0
  246. package/dist/processors/aggregators/sentence.js +69 -0
  247. package/dist/processors/async_generator.d.ts +42 -0
  248. package/dist/processors/async_generator.js +76 -0
  249. package/dist/processors/audio/audio_buffer_processor.d.ts +241 -0
  250. package/dist/processors/audio/audio_buffer_processor.js +565 -0
  251. package/dist/processors/audio/index.d.ts +2 -0
  252. package/dist/processors/audio/index.js +8 -0
  253. package/dist/processors/audio/vad_processor.d.ts +67 -0
  254. package/dist/processors/audio/vad_processor.js +103 -0
  255. package/dist/processors/consumer_processor.d.ts +49 -0
  256. package/dist/processors/consumer_processor.js +85 -0
  257. package/dist/processors/filters/frame_filter.d.ts +39 -0
  258. package/dist/processors/filters/frame_filter.js +52 -0
  259. package/dist/processors/filters/function_filter.d.ts +59 -0
  260. package/dist/processors/filters/function_filter.js +78 -0
  261. package/dist/processors/filters/identity_filter.d.ts +33 -0
  262. package/dist/processors/filters/identity_filter.js +37 -0
  263. package/dist/processors/filters/index.d.ts +2 -0
  264. package/dist/processors/filters/index.js +8 -0
  265. package/dist/processors/filters/null_filter.d.ts +34 -0
  266. package/dist/processors/filters/null_filter.js +47 -0
  267. package/dist/processors/filters/wake_notifier_filter.d.ts +48 -0
  268. package/dist/processors/filters/wake_notifier_filter.js +49 -0
  269. package/dist/processors/frame_processor.d.ts +360 -0
  270. package/dist/processors/frame_processor.js +932 -0
  271. package/dist/processors/frameworks/index.d.ts +2 -0
  272. package/dist/processors/frameworks/index.js +8 -0
  273. package/dist/processors/frameworks/rtvi/frames.d.ts +241 -0
  274. package/dist/processors/frameworks/rtvi/frames.js +259 -0
  275. package/dist/processors/frameworks/rtvi/index.d.ts +6 -0
  276. package/dist/processors/frameworks/rtvi/index.js +11 -0
  277. package/dist/processors/frameworks/rtvi/models.d.ts +1741 -0
  278. package/dist/processors/frameworks/rtvi/models.js +1807 -0
  279. package/dist/processors/frameworks/rtvi/observer.d.ts +340 -0
  280. package/dist/processors/frameworks/rtvi/observer.js +1113 -0
  281. package/dist/processors/frameworks/rtvi/processor.d.ts +182 -0
  282. package/dist/processors/frameworks/rtvi/processor.js +676 -0
  283. package/dist/processors/idle_frame_processor.d.ts +44 -0
  284. package/dist/processors/idle_frame_processor.js +86 -0
  285. package/dist/processors/index.d.ts +2 -0
  286. package/dist/processors/index.js +8 -0
  287. package/dist/processors/logger.d.ts +42 -0
  288. package/dist/processors/logger.js +87 -0
  289. package/dist/processors/metrics/frame_processor_metrics.d.ts +172 -0
  290. package/dist/processors/metrics/frame_processor_metrics.js +372 -0
  291. package/dist/processors/metrics/index.d.ts +2 -0
  292. package/dist/processors/metrics/index.js +8 -0
  293. package/dist/processors/producer_processor.d.ts +68 -0
  294. package/dist/processors/producer_processor.js +78 -0
  295. package/dist/processors/text_transformer.d.ts +30 -0
  296. package/dist/processors/text_transformer.js +48 -0
  297. package/dist/registry/index.d.ts +3 -0
  298. package/dist/registry/index.js +8 -0
  299. package/dist/registry/registry.d.ts +69 -0
  300. package/dist/registry/registry.js +149 -0
  301. package/dist/registry/types.d.ts +47 -0
  302. package/dist/registry/types.js +39 -0
  303. package/dist/serializers/base_serializer.d.ts +94 -0
  304. package/dist/serializers/base_serializer.js +82 -0
  305. package/dist/serializers/index.d.ts +2 -0
  306. package/dist/serializers/index.js +8 -0
  307. package/dist/services/ai_service.d.ts +145 -0
  308. package/dist/services/ai_service.js +262 -0
  309. package/dist/services/anthropic/index.d.ts +2 -0
  310. package/dist/services/anthropic/index.js +7 -0
  311. package/dist/services/assemblyai/index.d.ts +2 -0
  312. package/dist/services/assemblyai/index.js +7 -0
  313. package/dist/services/asyncai/index.d.ts +2 -0
  314. package/dist/services/asyncai/index.js +7 -0
  315. package/dist/services/aws/index.d.ts +2 -0
  316. package/dist/services/aws/index.js +7 -0
  317. package/dist/services/azure/index.d.ts +2 -0
  318. package/dist/services/azure/index.js +7 -0
  319. package/dist/services/baseten/index.d.ts +2 -0
  320. package/dist/services/baseten/index.js +7 -0
  321. package/dist/services/bland/index.d.ts +2 -0
  322. package/dist/services/bland/index.js +7 -0
  323. package/dist/services/camb/index.d.ts +2 -0
  324. package/dist/services/camb/index.js +7 -0
  325. package/dist/services/cartesia/index.d.ts +2 -0
  326. package/dist/services/cartesia/index.js +7 -0
  327. package/dist/services/cerebras/index.d.ts +2 -0
  328. package/dist/services/cerebras/index.js +7 -0
  329. package/dist/services/crusoe/index.d.ts +2 -0
  330. package/dist/services/crusoe/index.js +7 -0
  331. package/dist/services/deepgram/index.d.ts +2 -0
  332. package/dist/services/deepgram/index.js +7 -0
  333. package/dist/services/deepseek/index.d.ts +2 -0
  334. package/dist/services/deepseek/index.js +7 -0
  335. package/dist/services/elevenlabs/index.d.ts +2 -0
  336. package/dist/services/elevenlabs/index.js +7 -0
  337. package/dist/services/fal/index.d.ts +2 -0
  338. package/dist/services/fal/index.js +7 -0
  339. package/dist/services/fireworks/index.d.ts +2 -0
  340. package/dist/services/fireworks/index.js +7 -0
  341. package/dist/services/fish/index.d.ts +2 -0
  342. package/dist/services/fish/index.js +7 -0
  343. package/dist/services/funasr/index.d.ts +3 -0
  344. package/dist/services/funasr/index.js +8 -0
  345. package/dist/services/gladia/index.d.ts +2 -0
  346. package/dist/services/gladia/index.js +7 -0
  347. package/dist/services/google/index.d.ts +2 -0
  348. package/dist/services/google/index.js +7 -0
  349. package/dist/services/gradium/index.d.ts +2 -0
  350. package/dist/services/gradium/index.js +7 -0
  351. package/dist/services/grok/index.d.ts +2 -0
  352. package/dist/services/grok/index.js +7 -0
  353. package/dist/services/groq/index.d.ts +2 -0
  354. package/dist/services/groq/index.js +7 -0
  355. package/dist/services/heygen/index.d.ts +2 -0
  356. package/dist/services/heygen/index.js +7 -0
  357. package/dist/services/hume/index.d.ts +2 -0
  358. package/dist/services/hume/index.js +7 -0
  359. package/dist/services/image_service.d.ts +52 -0
  360. package/dist/services/image_service.js +60 -0
  361. package/dist/services/inception/index.d.ts +2 -0
  362. package/dist/services/inception/index.js +7 -0
  363. package/dist/services/index.d.ts +2 -0
  364. package/dist/services/index.js +8 -0
  365. package/dist/services/inworld/index.d.ts +2 -0
  366. package/dist/services/inworld/index.js +7 -0
  367. package/dist/services/keenable/index.d.ts +2 -0
  368. package/dist/services/keenable/index.js +7 -0
  369. package/dist/services/kokoro/index.d.ts +2 -0
  370. package/dist/services/kokoro/index.js +7 -0
  371. package/dist/services/llm_service.d.ts +1106 -0
  372. package/dist/services/llm_service.js +2231 -0
  373. package/dist/services/mem0/index.d.ts +2 -0
  374. package/dist/services/mem0/index.js +7 -0
  375. package/dist/services/meta/index.d.ts +2 -0
  376. package/dist/services/meta/index.js +7 -0
  377. package/dist/services/minimax/index.d.ts +2 -0
  378. package/dist/services/minimax/index.js +7 -0
  379. package/dist/services/mistral/index.d.ts +2 -0
  380. package/dist/services/mistral/index.js +7 -0
  381. package/dist/services/moondream/index.d.ts +2 -0
  382. package/dist/services/moondream/index.js +7 -0
  383. package/dist/services/moonshine/index.d.ts +2 -0
  384. package/dist/services/moonshine/index.js +7 -0
  385. package/dist/services/nebius/index.d.ts +2 -0
  386. package/dist/services/nebius/index.js +7 -0
  387. package/dist/services/neuphonic/index.d.ts +2 -0
  388. package/dist/services/neuphonic/index.js +7 -0
  389. package/dist/services/novita/index.d.ts +2 -0
  390. package/dist/services/novita/index.js +7 -0
  391. package/dist/services/nvidia/index.d.ts +2 -0
  392. package/dist/services/nvidia/index.js +11 -0
  393. package/dist/services/ollama/index.d.ts +2 -0
  394. package/dist/services/ollama/index.js +7 -0
  395. package/dist/services/openai/index.d.ts +2 -0
  396. package/dist/services/openai/index.js +7 -0
  397. package/dist/services/openclaw/index.d.ts +14 -0
  398. package/dist/services/openclaw/index.js +19 -0
  399. package/dist/services/openrouter/index.d.ts +2 -0
  400. package/dist/services/openrouter/index.js +7 -0
  401. package/dist/services/perplexity/index.d.ts +2 -0
  402. package/dist/services/perplexity/index.js +7 -0
  403. package/dist/services/piper/index.d.ts +2 -0
  404. package/dist/services/piper/index.js +7 -0
  405. package/dist/services/pocket_tts/index.d.ts +2 -0
  406. package/dist/services/pocket_tts/index.js +7 -0
  407. package/dist/services/qwen/index.d.ts +2 -0
  408. package/dist/services/qwen/index.js +7 -0
  409. package/dist/services/resembleai/index.d.ts +2 -0
  410. package/dist/services/resembleai/index.js +7 -0
  411. package/dist/services/rime/index.d.ts +2 -0
  412. package/dist/services/rime/index.js +7 -0
  413. package/dist/services/sambanova/index.d.ts +2 -0
  414. package/dist/services/sambanova/index.js +7 -0
  415. package/dist/services/sarvam/index.d.ts +2 -0
  416. package/dist/services/sarvam/index.js +7 -0
  417. package/dist/services/settings.d.ts +356 -0
  418. package/dist/services/settings.js +437 -0
  419. package/dist/services/simli/index.d.ts +2 -0
  420. package/dist/services/simli/index.js +7 -0
  421. package/dist/services/smallest/index.d.ts +2 -0
  422. package/dist/services/smallest/index.js +7 -0
  423. package/dist/services/soniox/index.d.ts +2 -0
  424. package/dist/services/soniox/index.js +7 -0
  425. package/dist/services/speechify/index.d.ts +2 -0
  426. package/dist/services/speechify/index.js +7 -0
  427. package/dist/services/speechmatics/index.d.ts +2 -0
  428. package/dist/services/speechmatics/index.js +7 -0
  429. package/dist/services/stt_latency.d.ts +62 -0
  430. package/dist/services/stt_latency.js +71 -0
  431. package/dist/services/stt_service.d.ts +601 -0
  432. package/dist/services/stt_service.js +1044 -0
  433. package/dist/services/tavus/index.d.ts +2 -0
  434. package/dist/services/tavus/index.js +7 -0
  435. package/dist/services/together/index.d.ts +2 -0
  436. package/dist/services/together/index.js +7 -0
  437. package/dist/services/tts_service.d.ts +909 -0
  438. package/dist/services/tts_service.js +2018 -0
  439. package/dist/services/ultravox/index.d.ts +2 -0
  440. package/dist/services/ultravox/index.js +9 -0
  441. package/dist/services/vision_service.d.ts +56 -0
  442. package/dist/services/vision_service.js +62 -0
  443. package/dist/services/websocket_service.d.ts +213 -0
  444. package/dist/services/websocket_service.js +654 -0
  445. package/dist/services/whisper/index.d.ts +2 -0
  446. package/dist/services/whisper/index.js +9 -0
  447. package/dist/services/xai/index.d.ts +2 -0
  448. package/dist/services/xai/index.js +9 -0
  449. package/dist/services/xtts/index.d.ts +2 -0
  450. package/dist/services/xtts/index.js +9 -0
  451. package/dist/tests/index.d.ts +2 -0
  452. package/dist/tests/index.js +8 -0
  453. package/dist/tests/utils.d.ts +123 -0
  454. package/dist/tests/utils.js +212 -0
  455. package/dist/transcriptions/index.d.ts +2 -0
  456. package/dist/transcriptions/index.js +8 -0
  457. package/dist/transcriptions/language.d.ts +376 -0
  458. package/dist/transcriptions/language.js +543 -0
  459. package/dist/transports/base_input.d.ts +149 -0
  460. package/dist/transports/base_input.js +338 -0
  461. package/dist/transports/base_output.d.ts +432 -0
  462. package/dist/transports/base_output.js +1231 -0
  463. package/dist/transports/base_transport.d.ts +223 -0
  464. package/dist/transports/base_transport.js +167 -0
  465. package/dist/transports/daily/index.d.ts +2 -0
  466. package/dist/transports/daily/index.js +9 -0
  467. package/dist/transports/heygen/index.d.ts +2 -0
  468. package/dist/transports/heygen/index.js +9 -0
  469. package/dist/transports/index.d.ts +2 -0
  470. package/dist/transports/index.js +8 -0
  471. package/dist/transports/lemonslice/index.d.ts +2 -0
  472. package/dist/transports/lemonslice/index.js +9 -0
  473. package/dist/transports/livekit/index.d.ts +2 -0
  474. package/dist/transports/livekit/index.js +9 -0
  475. package/dist/transports/local/index.d.ts +2 -0
  476. package/dist/transports/local/index.js +9 -0
  477. package/dist/transports/moq/index.d.ts +2 -0
  478. package/dist/transports/moq/index.js +9 -0
  479. package/dist/transports/smallwebrtc/index.d.ts +2 -0
  480. package/dist/transports/smallwebrtc/index.js +9 -0
  481. package/dist/transports/tavus/index.d.ts +2 -0
  482. package/dist/transports/tavus/index.js +9 -0
  483. package/dist/transports/video_in_sampler.d.ts +157 -0
  484. package/dist/transports/video_in_sampler.js +258 -0
  485. package/dist/transports/vonage/index.d.ts +2 -0
  486. package/dist/transports/vonage/index.js +9 -0
  487. package/dist/transports/websocket/index.d.ts +2 -0
  488. package/dist/transports/websocket/index.js +9 -0
  489. package/dist/transports/whatsapp/index.d.ts +2 -0
  490. package/dist/transports/whatsapp/index.js +9 -0
  491. package/dist/turns/eager_end_of_turn_mixin.d.ts +70 -0
  492. package/dist/turns/eager_end_of_turn_mixin.js +122 -0
  493. package/dist/turns/empty_user_turn.d.ts +55 -0
  494. package/dist/turns/empty_user_turn.js +53 -0
  495. package/dist/turns/index.d.ts +2 -0
  496. package/dist/turns/index.js +8 -0
  497. package/dist/turns/speculation_gate.d.ts +169 -0
  498. package/dist/turns/speculation_gate.js +294 -0
  499. package/dist/turns/types.d.ts +33 -0
  500. package/dist/turns/types.js +35 -0
  501. package/dist/turns/user_idle_controller.d.ts +94 -0
  502. package/dist/turns/user_idle_controller.js +187 -0
  503. package/dist/turns/user_mute/always_user_mute_strategy.d.ts +15 -0
  504. package/dist/turns/user_mute/always_user_mute_strategy.js +29 -0
  505. package/dist/turns/user_mute/base_user_mute_strategy.d.ts +39 -0
  506. package/dist/turns/user_mute/base_user_mute_strategy.js +45 -0
  507. package/dist/turns/user_mute/first_speech_user_mute_strategy.d.ts +28 -0
  508. package/dist/turns/user_mute/first_speech_user_mute_strategy.js +52 -0
  509. package/dist/turns/user_mute/function_call_user_mute_strategy.d.ts +25 -0
  510. package/dist/turns/user_mute/function_call_user_mute_strategy.js +50 -0
  511. package/dist/turns/user_mute/index.d.ts +6 -0
  512. package/dist/turns/user_mute/index.js +11 -0
  513. package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.d.ts +43 -0
  514. package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.js +76 -0
  515. package/dist/turns/user_start/base_user_turn_start_strategy.d.ts +135 -0
  516. package/dist/turns/user_start/base_user_turn_start_strategy.js +134 -0
  517. package/dist/turns/user_start/external_user_turn_start_strategy.d.ts +45 -0
  518. package/dist/turns/user_start/external_user_turn_start_strategy.js +64 -0
  519. package/dist/turns/user_start/index.d.ts +8 -0
  520. package/dist/turns/user_start/index.js +16 -0
  521. package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.d.ts +133 -0
  522. package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.js +243 -0
  523. package/dist/turns/user_start/min_words_user_turn_start_strategy.d.ts +60 -0
  524. package/dist/turns/user_start/min_words_user_turn_start_strategy.js +102 -0
  525. package/dist/turns/user_start/transcription_user_turn_start_strategy.d.ts +29 -0
  526. package/dist/turns/user_start/transcription_user_turn_start_strategy.js +43 -0
  527. package/dist/turns/user_start/vad_user_turn_start_strategy.d.ts +20 -0
  528. package/dist/turns/user_start/vad_user_turn_start_strategy.js +31 -0
  529. package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.d.ts +141 -0
  530. package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.js +238 -0
  531. package/dist/turns/user_stop/base_user_turn_stop_strategy.d.ts +174 -0
  532. package/dist/turns/user_stop/base_user_turn_stop_strategy.js +170 -0
  533. package/dist/turns/user_stop/deferred_user_turn_stop_strategy.d.ts +81 -0
  534. package/dist/turns/user_stop/deferred_user_turn_stop_strategy.js +107 -0
  535. package/dist/turns/user_stop/eager_match_policy.d.ts +36 -0
  536. package/dist/turns/user_stop/eager_match_policy.js +50 -0
  537. package/dist/turns/user_stop/eager_user_turn_stop_strategy.d.ts +84 -0
  538. package/dist/turns/user_stop/eager_user_turn_stop_strategy.js +154 -0
  539. package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.d.ts +45 -0
  540. package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.js +55 -0
  541. package/dist/turns/user_stop/external_user_turn_stop_strategy.d.ts +115 -0
  542. package/dist/turns/user_stop/external_user_turn_stop_strategy.js +205 -0
  543. package/dist/turns/user_stop/index.d.ts +10 -0
  544. package/dist/turns/user_stop/index.js +15 -0
  545. package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.d.ts +44 -0
  546. package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.js +59 -0
  547. package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.d.ts +140 -0
  548. package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.js +303 -0
  549. package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.d.ts +135 -0
  550. package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.js +332 -0
  551. package/dist/turns/user_turn_completion_mixin.d.ts +147 -0
  552. package/dist/turns/user_turn_completion_mixin.js +591 -0
  553. package/dist/turns/user_turn_controller.d.ts +134 -0
  554. package/dist/turns/user_turn_controller.js +335 -0
  555. package/dist/turns/user_turn_processor.d.ts +87 -0
  556. package/dist/turns/user_turn_processor.js +180 -0
  557. package/dist/turns/user_turn_strategies.d.ts +187 -0
  558. package/dist/turns/user_turn_strategies.js +222 -0
  559. package/dist/utils/async_tool_cancellation.d.ts +35 -0
  560. package/dist/utils/async_tool_cancellation.js +78 -0
  561. package/dist/utils/asyncio/index.d.ts +2 -0
  562. package/dist/utils/asyncio/index.js +7 -0
  563. package/dist/utils/asyncio/task_manager.d.ts +49 -0
  564. package/dist/utils/asyncio/task_manager.js +105 -0
  565. package/dist/utils/base_object.d.ts +76 -0
  566. package/dist/utils/base_object.js +154 -0
  567. package/dist/utils/context/aggregated_frame_sequencer.d.ts +491 -0
  568. package/dist/utils/context/aggregated_frame_sequencer.js +803 -0
  569. package/dist/utils/context/audio_context_manager.d.ts +131 -0
  570. package/dist/utils/context/audio_context_manager.js +233 -0
  571. package/dist/utils/context/index.d.ts +2 -0
  572. package/dist/utils/context/index.js +7 -0
  573. package/dist/utils/context/llm_context_summarization.d.ts +258 -0
  574. package/dist/utils/context/llm_context_summarization.js +511 -0
  575. package/dist/utils/context/text_segment_map.d.ts +611 -0
  576. package/dist/utils/context/text_segment_map.js +1132 -0
  577. package/dist/utils/context/word_completion_tracker.d.ts +273 -0
  578. package/dist/utils/context/word_completion_tracker.js +441 -0
  579. package/dist/utils/context/word_timestamp_tracker.d.ts +72 -0
  580. package/dist/utils/context/word_timestamp_tracker.js +98 -0
  581. package/dist/utils/deprecation.d.ts +28 -0
  582. package/dist/utils/deprecation.js +75 -0
  583. package/dist/utils/env.d.ts +38 -0
  584. package/dist/utils/env.js +62 -0
  585. package/dist/utils/errors.d.ts +75 -0
  586. package/dist/utils/errors.js +202 -0
  587. package/dist/utils/file_resolver.d.ts +126 -0
  588. package/dist/utils/file_resolver.js +314 -0
  589. package/dist/utils/file_storage.d.ts +115 -0
  590. package/dist/utils/file_storage.js +178 -0
  591. package/dist/utils/frame_queue.d.ts +36 -0
  592. package/dist/utils/frame_queue.js +66 -0
  593. package/dist/utils/http.d.ts +39 -0
  594. package/dist/utils/http.js +53 -0
  595. package/dist/utils/image.d.ts +14 -0
  596. package/dist/utils/image.js +63 -0
  597. package/dist/utils/index.d.ts +2 -0
  598. package/dist/utils/index.js +8 -0
  599. package/dist/utils/jpeg_encoder.d.ts +14 -0
  600. package/dist/utils/jpeg_encoder.js +315 -0
  601. package/dist/utils/log_config.d.ts +34 -0
  602. package/dist/utils/log_config.js +76 -0
  603. package/dist/utils/logger.d.ts +40 -0
  604. package/dist/utils/logger.js +91 -0
  605. package/dist/utils/mixin.d.ts +14 -0
  606. package/dist/utils/mixin.js +63 -0
  607. package/dist/utils/network.d.ts +73 -0
  608. package/dist/utils/network.js +90 -0
  609. package/dist/utils/security/allowed_origins.d.ts +16 -0
  610. package/dist/utils/security/allowed_origins.js +34 -0
  611. package/dist/utils/security/index.d.ts +2 -0
  612. package/dist/utils/security/index.js +7 -0
  613. package/dist/utils/security/redaction.d.ts +27 -0
  614. package/dist/utils/security/redaction.js +123 -0
  615. package/dist/utils/security/ssrf.d.ts +79 -0
  616. package/dist/utils/security/ssrf.js +327 -0
  617. package/dist/utils/shared.d.ts +35 -0
  618. package/dist/utils/shared.js +136 -0
  619. package/dist/utils/startup.d.ts +17 -0
  620. package/dist/utils/startup.js +130 -0
  621. package/dist/utils/string.d.ts +116 -0
  622. package/dist/utils/string.js +460 -0
  623. package/dist/utils/sync/base_notifier.d.ts +25 -0
  624. package/dist/utils/sync/base_notifier.js +16 -0
  625. package/dist/utils/sync/event_notifier.d.ts +38 -0
  626. package/dist/utils/sync/event_notifier.js +51 -0
  627. package/dist/utils/sync/index.d.ts +2 -0
  628. package/dist/utils/sync/index.js +7 -0
  629. package/dist/utils/text/alnum_utils.d.ts +109 -0
  630. package/dist/utils/text/alnum_utils.js +262 -0
  631. package/dist/utils/text/base_text_aggregator.d.ts +146 -0
  632. package/dist/utils/text/base_text_aggregator.js +102 -0
  633. package/dist/utils/text/base_text_filter.d.ts +54 -0
  634. package/dist/utils/text/base_text_filter.js +50 -0
  635. package/dist/utils/text/index.d.ts +2 -0
  636. package/dist/utils/text/index.js +7 -0
  637. package/dist/utils/text/markdown_text_filter.d.ts +147 -0
  638. package/dist/utils/text/markdown_text_filter.js +522 -0
  639. package/dist/utils/text/markup_utils.d.ts +54 -0
  640. package/dist/utils/text/markup_utils.js +156 -0
  641. package/dist/utils/text/pattern_pair_aggregator.d.ts +251 -0
  642. package/dist/utils/text/pattern_pair_aggregator.js +478 -0
  643. package/dist/utils/text/phonemes.d.ts +60 -0
  644. package/dist/utils/text/phonemes.js +172 -0
  645. package/dist/utils/text/simple_text_aggregator.d.ts +135 -0
  646. package/dist/utils/text/simple_text_aggregator.js +254 -0
  647. package/dist/utils/text/skip_tags_aggregator.d.ts +85 -0
  648. package/dist/utils/text/skip_tags_aggregator.js +147 -0
  649. package/dist/utils/text/transforms/acronyms.d.ts +21 -0
  650. package/dist/utils/text/transforms/acronyms.js +31 -0
  651. package/dist/utils/text/transforms/currency.d.ts +16 -0
  652. package/dist/utils/text/transforms/currency.js +56 -0
  653. package/dist/utils/text/transforms/dates.d.ts +18 -0
  654. package/dist/utils/text/transforms/dates.js +102 -0
  655. package/dist/utils/text/transforms/email.d.ts +17 -0
  656. package/dist/utils/text/transforms/email.js +35 -0
  657. package/dist/utils/text/transforms/index.d.ts +37 -0
  658. package/dist/utils/text/transforms/index.js +42 -0
  659. package/dist/utils/text/transforms/numbers.d.ts +25 -0
  660. package/dist/utils/text/transforms/numbers.js +59 -0
  661. package/dist/utils/text/transforms/percentages.d.ts +16 -0
  662. package/dist/utils/text/transforms/percentages.js +32 -0
  663. package/dist/utils/text/transforms/phone.d.ts +21 -0
  664. package/dist/utils/text/transforms/phone.js +39 -0
  665. package/dist/utils/text/transforms/pronunciations.d.ts +65 -0
  666. package/dist/utils/text/transforms/pronunciations.js +112 -0
  667. package/dist/utils/text/transforms/replacements.d.ts +39 -0
  668. package/dist/utils/text/transforms/replacements.js +46 -0
  669. package/dist/utils/text/transforms/strip_markdown.d.ts +25 -0
  670. package/dist/utils/text/transforms/strip_markdown.js +60 -0
  671. package/dist/utils/text/transforms/units.d.ts +22 -0
  672. package/dist/utils/text/transforms/units.js +81 -0
  673. package/dist/utils/text/transforms/voice_formatter.d.ts +86 -0
  674. package/dist/utils/text/transforms/voice_formatter.js +98 -0
  675. package/dist/utils/text/unicode_digits.d.ts +3 -0
  676. package/dist/utils/text/unicode_digits.js +34 -0
  677. package/dist/utils/text/word_timestamp_utils.d.ts +26 -0
  678. package/dist/utils/text/word_timestamp_utils.js +52 -0
  679. package/dist/utils/time.d.ts +13 -0
  680. package/dist/utils/time.js +31 -0
  681. package/dist/utils/tracing/index.d.ts +3 -0
  682. package/dist/utils/tracing/index.js +8 -0
  683. package/dist/utils/tracing/service_attributes.d.ts +198 -0
  684. package/dist/utils/tracing/service_attributes.js +434 -0
  685. package/dist/utils/tracing/service_decorators.d.ts +214 -0
  686. package/dist/utils/tracing/service_decorators.js +1662 -0
  687. package/dist/utils/tracing/setup.d.ts +107 -0
  688. package/dist/utils/tracing/setup.js +160 -0
  689. package/dist/utils/tracing/tracing_context.d.ts +55 -0
  690. package/dist/utils/tracing/tracing_context.js +97 -0
  691. package/dist/utils/tracing/turn_trace_observer.d.ts +95 -0
  692. package/dist/utils/tracing/turn_trace_observer.js +233 -0
  693. package/dist/utils/types.d.ts +80 -0
  694. package/dist/utils/types.js +108 -0
  695. package/dist/utils/utils.d.ts +5 -0
  696. package/dist/utils/utils.js +22 -0
  697. package/dist/utils/yaml.d.ts +179 -0
  698. package/dist/utils/yaml.js +556 -0
  699. package/dist/version.d.ts +3 -0
  700. package/dist/version.js +7 -0
  701. package/dist/workers/base_worker.d.ts +772 -0
  702. package/dist/workers/base_worker.js +1298 -0
  703. package/dist/workers/index.d.ts +2 -0
  704. package/dist/workers/index.js +8 -0
  705. package/dist/workers/llm/backend_llm_worker.d.ts +552 -0
  706. package/dist/workers/llm/backend_llm_worker.js +1055 -0
  707. package/dist/workers/llm/index.d.ts +6 -0
  708. package/dist/workers/llm/index.js +11 -0
  709. package/dist/workers/llm/llm_context_worker.d.ts +66 -0
  710. package/dist/workers/llm/llm_context_worker.js +72 -0
  711. package/dist/workers/llm/llm_worker.d.ts +180 -0
  712. package/dist/workers/llm/llm_worker.js +323 -0
  713. package/dist/workers/llm/tool_decorator.d.ts +68 -0
  714. package/dist/workers/llm/tool_decorator.js +60 -0
  715. package/dist/workers/proxy/index.d.ts +3 -0
  716. package/dist/workers/proxy/index.js +9 -0
  717. package/dist/workers/proxy/websocket/client.d.ts +110 -0
  718. package/dist/workers/proxy/websocket/client.js +196 -0
  719. package/dist/workers/proxy/websocket/index.d.ts +3 -0
  720. package/dist/workers/proxy/websocket/index.js +10 -0
  721. package/dist/workers/runner.d.ts +268 -0
  722. package/dist/workers/runner.js +489 -0
  723. package/dist/workers/ui/index.d.ts +22 -0
  724. package/dist/workers/ui/index.js +27 -0
  725. package/dist/workers/ui/ui_event_decorator.d.ts +43 -0
  726. package/dist/workers/ui/ui_event_decorator.js +75 -0
  727. package/dist/workers/ui/ui_job_context.d.ts +12 -0
  728. package/dist/workers/ui/ui_job_context.js +17 -0
  729. package/dist/workers/ui/ui_prompts.d.ts +21 -0
  730. package/dist/workers/ui/ui_prompts.js +41 -0
  731. package/dist/workers/ui/ui_tools.d.ts +32 -0
  732. package/dist/workers/ui/ui_tools.js +112 -0
  733. package/dist/workers/ui/ui_worker.d.ts +571 -0
  734. package/dist/workers/ui/ui_worker.js +1156 -0
  735. package/package.json +61 -3
  736. package/README.md +0 -5
@@ -0,0 +1,367 @@
1
+ // Copyright (c) 2024-2026, Daily
2
+ // Copyright (c) 2026, pipedog contributors
3
+ // SPDX-License-Identifier: BSD-2-Clause
4
+ //
5
+ // Ported from pipecat: src/pipecat/bus/serializers/json.py
6
+ /**
7
+ * JSON-based bus message serializer with pluggable type adapters.
8
+ *
9
+ * PORTING NOTES (the wire format is upstream's, so TS and Python workers can
10
+ * share a network bus):
11
+ *
12
+ * - Python tags a typed value with its fully qualified class name
13
+ * (`"pipecat.frames.frames.TextFrame"`) and resolves it back with
14
+ * `importlib`. JavaScript has neither module names on classes nor dynamic
15
+ * synchronous imports, so classes are resolved through a registry
16
+ * (`registerSerializableType()`). Every class exported by
17
+ * `frames/frames.ts`, `bus/messages.ts` and `bus/ui/messages.ts` is
18
+ * registered under its upstream name, along with the other Pipecat types
19
+ * bus messages carry. An instance of an unregistered class is skipped with
20
+ * the "unserializable type" warning.
21
+ * - Dataclass field names travel in snake_case, as upstream sends them;
22
+ * class fields are camelCase in TS and are converted both ways. Keys of
23
+ * plain dicts are sent unchanged.
24
+ * - `as const` enums are plain values in TS, so a value can't say which enum
25
+ * it belongs to. Fields holding a (non-string) upstream `Enum` are declared
26
+ * with `registerEnumField()` so they are tagged as upstream tags them
27
+ * (`BusFrameMessage.direction` is declared by default). Class-based enums
28
+ * (`ErrorCategory`) are recognized on their own. `StrEnum` values are plain
29
+ * strings on both sides.
30
+ * - Pydantic models and dataclasses are both plain classes in TS and are
31
+ * serialized the same way (fields set to null are left out).
32
+ * - On deserialization the decoded fields are passed to the class's options
33
+ * constructor and then assigned to the instance, which covers upstream's
34
+ * `init=False` fields.
35
+ */
36
+ import { FunctionSchema } from "../../adapters/schemas/function_schema.js";
37
+ import { ToolsSchema } from "../../adapters/schemas/tools_schema.js";
38
+ import * as frames from "../../frames/frames.js";
39
+ import * as metrics from "../../metrics/metrics.js";
40
+ import { LLMContext, LLMSpecificMessage } from "../../processors/aggregators/llm_context.js";
41
+ import { FrameDirection } from "../../processors/frame_processor.js";
42
+ import * as registryTypes from "../../registry/types.js";
43
+ import { ErrorCategory } from "../../utils/errors.js";
44
+ import { logger } from "../../utils/logger.js";
45
+ import { LLMContextAdapter, ToolsSchemaAdapter } from "../adapters/index.js";
46
+ import * as messages from "../messages.js";
47
+ import { BusFrameMessage } from "../messages.js";
48
+ import * as uiMessages from "../ui/messages.js";
49
+ import { MessageSerializer } from "./base.js";
50
+ // Upstream's `_resolve_type` resolves any importable name; here, the registry.
51
+ const typesByName = new Map();
52
+ const namesByType = new Map();
53
+ // Fields that hold a value of an `as const` enum, by the class declaring them.
54
+ const enumFields = new Map();
55
+ /**
56
+ * Register a type under its fully qualified (upstream) name, so it can be
57
+ * tagged on serialization and resolved on deserialization.
58
+ *
59
+ * @param qualifiedName Dotted path like `"pipecat.frames.frames.TextFrame"`.
60
+ * @param type The class, or the `as const` enum object.
61
+ */
62
+ export function registerSerializableType(qualifiedName, type) {
63
+ typesByName.set(qualifiedName, type);
64
+ namesByType.set(type, qualifiedName);
65
+ }
66
+ /**
67
+ * Declare that a class field holds a value of an `as const` enum, so the
68
+ * value is tagged with the enum's name as upstream tags an `Enum` member.
69
+ * The enum must be registered with `registerSerializableType()`.
70
+ *
71
+ * @param type The class declaring the field (subclasses inherit it).
72
+ * @param field The field's (camelCase) name.
73
+ * @param enumType The enum object.
74
+ */
75
+ export function registerEnumField(type, field, enumType) {
76
+ let fields = enumFields.get(type);
77
+ if (!fields) {
78
+ fields = new Map();
79
+ enumFields.set(type, fields);
80
+ }
81
+ fields.set(field, enumType);
82
+ }
83
+ function isClass(value) {
84
+ return typeof value === "function" && /^class[\s{]/.test(Function.prototype.toString.call(value));
85
+ }
86
+ function registerModule(prefix, namespace) {
87
+ for (const [name, value] of Object.entries(namespace)) {
88
+ if (isClass(value) && !namesByType.has(value)) {
89
+ registerSerializableType(`${prefix}.${name}`, value);
90
+ }
91
+ }
92
+ }
93
+ let defaultsRegistered = false;
94
+ function registerDefaultTypes() {
95
+ if (defaultsRegistered) {
96
+ return;
97
+ }
98
+ defaultsRegistered = true;
99
+ registerModule("pipecat.frames.frames", frames);
100
+ registerModule("pipecat.bus.messages", messages);
101
+ registerModule("pipecat.bus.ui.messages", uiMessages);
102
+ registerModule("pipecat.metrics.metrics", metrics);
103
+ registerModule("pipecat.registry.types", registryTypes);
104
+ registerSerializableType("pipecat.processors.aggregators.llm_context.LLMContext", LLMContext);
105
+ registerSerializableType("pipecat.processors.aggregators.llm_context.LLMSpecificMessage", LLMSpecificMessage);
106
+ registerSerializableType("pipecat.adapters.schemas.tools_schema.ToolsSchema", ToolsSchema);
107
+ registerSerializableType("pipecat.adapters.schemas.function_schema.FunctionSchema", FunctionSchema);
108
+ registerSerializableType("pipecat.processors.frame_processor.FrameDirection", FrameDirection);
109
+ // ErrorCategory has a private constructor, so it is not a `Ctor` to the type checker.
110
+ registerSerializableType("pipecat.utils.errors.ErrorCategory", ErrorCategory);
111
+ registerEnumField(BusFrameMessage, "direction", FrameDirection);
112
+ }
113
+ function camelToSnake(name) {
114
+ return name.replace(/([a-z0-9])([A-Z])/g, "$1_$2").toLowerCase();
115
+ }
116
+ function snakeToCamel(name) {
117
+ return name.replace(/([a-z0-9])_([a-z0-9])/g, (_m, a, b) => a + b.toUpperCase());
118
+ }
119
+ function bytesToBase64(data) {
120
+ let binary = "";
121
+ const chunk = 0x8000;
122
+ for (let i = 0; i < data.length; i += chunk) {
123
+ binary += String.fromCharCode(...data.subarray(i, i + chunk));
124
+ }
125
+ return btoa(binary);
126
+ }
127
+ function base64ToBytes(encoded) {
128
+ const binary = atob(encoded);
129
+ const bytes = new Uint8Array(binary.length);
130
+ for (let i = 0; i < binary.length; i++) {
131
+ bytes[i] = binary.charCodeAt(i);
132
+ }
133
+ return bytes;
134
+ }
135
+ function isJsonNative(value) {
136
+ return (value === null ||
137
+ value === undefined ||
138
+ typeof value === "string" ||
139
+ typeof value === "number" ||
140
+ typeof value === "boolean");
141
+ }
142
+ function isPlainObject(value) {
143
+ if (typeof value !== "object" || value === null) {
144
+ return false;
145
+ }
146
+ const proto = Object.getPrototypeOf(value);
147
+ return proto === Object.prototype || proto === null;
148
+ }
149
+ /** A class-based enum (static members with `name`, plus `values()` and `fromValue()`). */
150
+ function isClassEnum(type) {
151
+ const ctor = type;
152
+ return typeof ctor?.values === "function" && typeof ctor?.fromValue === "function";
153
+ }
154
+ /** The `as const` enum declared for `field` on `type` or one of its bases. */
155
+ function enumFieldType(type, field) {
156
+ let proto = type.prototype;
157
+ while (proto && proto !== Object.prototype) {
158
+ const found = enumFields.get(proto.constructor)?.get(field);
159
+ if (found) {
160
+ return found;
161
+ }
162
+ proto = Object.getPrototypeOf(proto);
163
+ }
164
+ return undefined;
165
+ }
166
+ /**
167
+ * Serialize bus messages as JSON with pluggable type adapters.
168
+ *
169
+ * Handles JSON-native types, enums, bytes, dataclasses, and any type with a
170
+ * registered `TypeAdapter` (e.g. `LLMContext`, `ToolsSchema`). Adapters for
171
+ * common Pipecat types are registered by default. Additional type adapters
172
+ * can be registered via `registerAdapter()`.
173
+ *
174
+ * @example
175
+ * const serializer = new JSONMessageSerializer();
176
+ *
177
+ * const data = serializer.serialize(message);
178
+ * const restored = serializer.deserialize(data);
179
+ */
180
+ export class JSONMessageSerializer extends MessageSerializer {
181
+ _adapters;
182
+ /** Create a serializer with default adapters for `LLMContext` and `ToolsSchema`. */
183
+ constructor() {
184
+ super();
185
+ registerDefaultTypes();
186
+ this._adapters = new Map([
187
+ [LLMContext, new LLMContextAdapter()],
188
+ [ToolsSchema, new ToolsSchemaAdapter()],
189
+ ]);
190
+ }
191
+ /**
192
+ * Register a type adapter.
193
+ *
194
+ * @param type The type to handle.
195
+ * @param adapter The adapter that serializes/deserializes instances of this type.
196
+ */
197
+ registerAdapter(type, adapter) {
198
+ this._adapters.set(type, adapter);
199
+ }
200
+ /**
201
+ * Convert a bus message to JSON bytes.
202
+ *
203
+ * @param message The bus message to serialize.
204
+ * @returns UTF-8 encoded JSON bytes.
205
+ */
206
+ serialize(message) {
207
+ const data = this._serializeValue(message);
208
+ return new TextEncoder().encode(JSON.stringify(data));
209
+ }
210
+ /**
211
+ * Reconstruct a bus message from JSON bytes.
212
+ *
213
+ * @param data The JSON bytes produced by `serialize()`.
214
+ * @returns The reconstructed `BusMessage`, or null if deserialization fails.
215
+ */
216
+ deserialize(data) {
217
+ const text = typeof data === "string" ? data : new TextDecoder().decode(data);
218
+ const payload = JSON.parse(text);
219
+ return this._deserializeValue(payload);
220
+ }
221
+ /** Recursively serialize a value to a JSON-compatible representation. */
222
+ _serializeValue(value) {
223
+ if (isJsonNative(value)) {
224
+ return value ?? null;
225
+ }
226
+ if (isClassEnum(value.constructor)) {
227
+ const name = namesByType.get(value.constructor);
228
+ if (name !== undefined) {
229
+ return { __type__: name, __data__: value.name };
230
+ }
231
+ }
232
+ if (isPlainObject(value)) {
233
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, this._serializeValue(v)]));
234
+ }
235
+ if (value instanceof Map) {
236
+ return Object.fromEntries([...value.entries()].map(([k, v]) => [String(k), this._serializeValue(v)]));
237
+ }
238
+ if (Array.isArray(value)) {
239
+ return value.map((v) => this._serializeValue(v));
240
+ }
241
+ if (value instanceof Uint8Array) {
242
+ return { __type__: "bytes", __data__: bytesToBase64(value) };
243
+ }
244
+ if (typeof value === "function") {
245
+ return null;
246
+ }
247
+ const type = value.constructor;
248
+ const typeName = namesByType.get(type);
249
+ const adapter = this._findAdapter(type);
250
+ if (adapter !== null && typeName !== undefined) {
251
+ return {
252
+ __type__: typeName,
253
+ __data__: adapter.serialize(value, (v) => this._serializeValue(v)),
254
+ };
255
+ }
256
+ if (typeof value === "object" && typeName !== undefined) {
257
+ const fields = {};
258
+ for (const [key, v] of Object.entries(value)) {
259
+ if (v === null || v === undefined) {
260
+ continue;
261
+ }
262
+ const enumType = enumFieldType(type, key);
263
+ const serialized = enumType ? this._serializeEnum(enumType, v) : this._serializeValue(v);
264
+ if (serialized !== null) {
265
+ fields[camelToSnake(key)] = serialized;
266
+ }
267
+ }
268
+ return { __type__: typeName, __data__: fields };
269
+ }
270
+ logger.warning(`JSONMessageSerializer: skipping field with unserializable type ${type?.name ?? typeof value}`);
271
+ return null;
272
+ }
273
+ /** Tag a value of an `as const` enum with its member name. */
274
+ _serializeEnum(enumType, value) {
275
+ const typeName = namesByType.get(enumType);
276
+ const member = Object.entries(enumType).find(([, v]) => v === value)?.[0];
277
+ if (typeName === undefined || member === undefined) {
278
+ return this._serializeValue(value);
279
+ }
280
+ return { __type__: typeName, __data__: member };
281
+ }
282
+ /** Recursively deserialize a value from its JSON representation. */
283
+ _deserializeValue(value) {
284
+ if (isJsonNative(value)) {
285
+ return value;
286
+ }
287
+ if (Array.isArray(value)) {
288
+ return value.map((v) => this._deserializeValue(v));
289
+ }
290
+ if (isPlainObject(value)) {
291
+ if ("__type__" in value && "__data__" in value) {
292
+ return this._deserializeTyped(value.__type__, value.__data__);
293
+ }
294
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, this._deserializeValue(v)]));
295
+ }
296
+ return value;
297
+ }
298
+ /** Deserialize a tagged value using its fully qualified type name. */
299
+ _deserializeTyped(typeName, data) {
300
+ if (typeName === "bytes") {
301
+ return base64ToBytes(data);
302
+ }
303
+ const type = resolveType(typeName);
304
+ if (type === null) {
305
+ logger.warning(`JSONMessageSerializer: could not resolve type ${typeName}`);
306
+ return null;
307
+ }
308
+ if (!isClass(type)) {
309
+ // An `as const` enum: look the member up by name.
310
+ return enumMember(type, typeName, data);
311
+ }
312
+ if (isClassEnum(type)) {
313
+ return enumMember(type, typeName, data);
314
+ }
315
+ const adapter = this._findAdapter(type);
316
+ if (adapter !== null) {
317
+ return adapter.deserialize(data, (v) => this._deserializeValue(v), type);
318
+ }
319
+ if (isPlainObject(data)) {
320
+ const fields = {};
321
+ for (const [key, value] of Object.entries(data)) {
322
+ fields[snakeToCamel(key)] = this._deserializeValue(value);
323
+ }
324
+ const Concrete = type;
325
+ const obj = new Concrete({ ...fields });
326
+ for (const [key, value] of Object.entries(fields)) {
327
+ obj[key] = value;
328
+ }
329
+ return obj;
330
+ }
331
+ logger.warning(`JSONMessageSerializer: no adapter registered for type ${typeName}`);
332
+ return null;
333
+ }
334
+ /** Find an adapter for a type, checking parent classes through the prototype chain. */
335
+ _findAdapter(type) {
336
+ let proto = type?.prototype ?? null;
337
+ while (proto && proto !== Object.prototype) {
338
+ const adapter = this._adapters.get(proto.constructor);
339
+ if (adapter) {
340
+ return adapter;
341
+ }
342
+ proto = Object.getPrototypeOf(proto);
343
+ }
344
+ return null;
345
+ }
346
+ }
347
+ /** The enum member called `name`, as Python's `cls[name]` (which raises KeyError). */
348
+ function enumMember(type, typeName, name) {
349
+ if (!Object.hasOwn(type, name)) {
350
+ throw new Error(`${typeName} has no member '${name}'`);
351
+ }
352
+ return type[name];
353
+ }
354
+ /**
355
+ * Resolve a fully qualified type name to its class.
356
+ *
357
+ * @param qualifiedName Dotted path like `"pipecat.frames.frames.TextFrame"`.
358
+ * @returns The resolved class (or enum), or null if it cannot be found.
359
+ */
360
+ function resolveType(qualifiedName) {
361
+ const index = qualifiedName.lastIndexOf(".");
362
+ if (index <= 0) {
363
+ return null;
364
+ }
365
+ return typesByName.get(qualifiedName) ?? null;
366
+ }
367
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1,46 @@
1
+ /** Bus subscriber mixin for receiving messages from a WorkerBus. */
2
+ import { type Ctor } from "../utils/mixin.ts";
3
+ import type { BusMessage } from "./messages.ts";
4
+ /**
5
+ * An object that receives messages from a `WorkerBus`.
6
+ *
7
+ * Implementors override `onBusMessage()` to handle incoming messages.
8
+ * Concrete subscribers must provide a `name` property (typically inherited
9
+ * from `BaseObject`).
10
+ */
11
+ export interface BusSubscriber extends BusSubscriberMethods {
12
+ /** Unique name identifying this subscriber on the bus. */
13
+ readonly name: string;
14
+ }
15
+ /** The members the `BusSubscriber` mixin provides (the base supplies `name`). */
16
+ export interface BusSubscriberMethods {
17
+ /**
18
+ * Whether this subscriber should be handed this message.
19
+ *
20
+ * Checked by the bus before every delivery. Returning false drops the
21
+ * message for this subscriber alone; others still receive it. Subscribers
22
+ * that take everything, which is the default, need not override this.
23
+ *
24
+ * @param message The bus message about to be delivered.
25
+ * @returns Whether to deliver the message.
26
+ */
27
+ acceptsBusMessage(message: BusMessage): boolean;
28
+ /**
29
+ * Handle an incoming bus message.
30
+ *
31
+ * Only called for messages `acceptsBusMessage` allowed.
32
+ *
33
+ * @param message The bus message to handle.
34
+ */
35
+ onBusMessage(message: BusMessage): Promise<void>;
36
+ }
37
+ /**
38
+ * Mixin for objects that receive messages from a `WorkerBus`:
39
+ * `class BaseWorker(BaseObject, BusSubscriber)` →
40
+ * `class BaseWorker extends BusSubscriber(BaseObject)`.
41
+ *
42
+ * The base class provides `name` (upstream's `name` property raises
43
+ * `NotImplementedError` and is always supplied by `BaseObject`).
44
+ */
45
+ export declare const BusSubscriber: import("../utils/mixin.ts").Mixin<<B extends Ctor>(base: B) => B & Ctor<BusSubscriberMethods>, BusSubscriber>;
46
+ //# sourceMappingURL=subscriber.d.ts.map
@@ -0,0 +1,27 @@
1
+ // Copyright (c) 2024-2026, Daily
2
+ // Copyright (c) 2026, pipedog contributors
3
+ // SPDX-License-Identifier: BSD-2-Clause
4
+ //
5
+ // Ported from pipecat: src/pipecat/bus/subscriber.py
6
+ /** Bus subscriber mixin for receiving messages from a WorkerBus. */
7
+ import { defineMixin } from "../utils/mixin.js";
8
+ /**
9
+ * Mixin for objects that receive messages from a `WorkerBus`:
10
+ * `class BaseWorker(BaseObject, BusSubscriber)` →
11
+ * `class BaseWorker extends BusSubscriber(BaseObject)`.
12
+ *
13
+ * The base class provides `name` (upstream's `name` property raises
14
+ * `NotImplementedError` and is always supplied by `BaseObject`).
15
+ */
16
+ export const BusSubscriber = defineMixin("BusSubscriber", (Base) => {
17
+ class BusSubscriberMixin extends Base {
18
+ /** See `BusSubscriber.acceptsBusMessage`. Accepts everything by default. */
19
+ acceptsBusMessage(_message) {
20
+ return true;
21
+ }
22
+ /** See `BusSubscriber.onBusMessage`. Does nothing by default. */
23
+ async onBusMessage(_message) { }
24
+ }
25
+ return BusSubscriberMixin;
26
+ });
27
+ //# sourceMappingURL=subscriber.js.map
@@ -0,0 +1,3 @@
1
+ /** UI bus carriers exchanged between `PipelineWorker` and `UIWorker`. */
2
+ export { BusUICommandMessage, BusUIDataMessage, BusUIEventMessage, BusUIJobCompletedMessage, BusUIJobGroupCompletedMessage, BusUIJobGroupStartedMessage, BusUIJobUpdateMessage, UI_CANCEL_JOB_GROUP_EVENT_NAME, UI_SNAPSHOT_EVENT_NAME, } from "./messages.ts";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ // Copyright (c) 2024-2026, Daily
2
+ // Copyright (c) 2026, pipedog contributors
3
+ // SPDX-License-Identifier: BSD-2-Clause
4
+ //
5
+ // Ported from pipecat: src/pipecat/bus/ui/__init__.py
6
+ /** UI bus carriers exchanged between `PipelineWorker` and `UIWorker`. */
7
+ export { BusUICommandMessage, BusUIDataMessage, BusUIEventMessage, BusUIJobCompletedMessage, BusUIJobGroupCompletedMessage, BusUIJobGroupStartedMessage, BusUIJobUpdateMessage, UI_CANCEL_JOB_GROUP_EVENT_NAME, UI_SNAPSHOT_EVENT_NAME, } from "./messages.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Bus carriers for the UI Worker protocol.
3
+ *
4
+ * These classes are the on-the-bus shape that a UI worker (see `workers/ui`)
5
+ * and the client-facing worker exchange. They are NOT the on-the-wire format
6
+ * the client sees: the client-facing worker translates between the two, in
7
+ * whichever format its own client speaks.
8
+ *
9
+ * For example, `PipelineWorker` with RTVI enabled republishes inbound client
10
+ * messages onto the bus in `onUiMessage` and turns outbound carriers into
11
+ * RTVI frames in `onBusMessage`; the wire types it produces live in
12
+ * `processors/frameworks/rtvi/models` (`UIEventMessage`, `UICommandMessage`,
13
+ * `UIJobGroupMessage`, ...).
14
+ *
15
+ * All carriers subclass `BusUIDataMessage`, which a client-facing worker
16
+ * dispatches on to pick the outbound ones out of its bus traffic.
17
+ *
18
+ * - `BusUIEventMessage` and `BusUICommandMessage` carry client events and
19
+ * server commands respectively.
20
+ * - `BusUIJobGroupStartedMessage`, `BusUIJobUpdateMessage`,
21
+ * `BusUIJobCompletedMessage`, and `BusUIJobGroupCompletedMessage` carry the
22
+ * four phases of a user-facing job group's lifecycle (see `UIWorker`).
23
+ *
24
+ * The carriers live in the `bus` layer (rather than alongside `UIWorker`)
25
+ * because both `PipelineWorker` (in `pipeline`) and `UIWorker` (in
26
+ * `workers`) reference them, and `pipeline` must not import from `workers`.
27
+ */
28
+ import { BusDataMessage, type BusMessageOptions } from "../messages.ts";
29
+ /**
30
+ * The `eventName` of the client's accessibility snapshot on the bus. A
31
+ * client-facing worker republishes a `ui-snapshot` wire message as a
32
+ * `BusUIEventMessage` with this name, and `UIWorker` keeps the payload as its
33
+ * latest snapshot. The leading double underscore keeps app-defined
34
+ * `@ui_event` names from colliding with it.
35
+ */
36
+ export declare const UI_SNAPSHOT_EVENT_NAME = "__ui_snapshot";
37
+ /**
38
+ * The `eventName` of the client's request to cancel a job group. A
39
+ * client-facing worker republishes a `ui-cancel-job-group` wire message as a
40
+ * `BusUIEventMessage` with this name, and the worker that dispatched the
41
+ * group turns it into a cancel request.
42
+ */
43
+ export declare const UI_CANCEL_JOB_GROUP_EVENT_NAME = "__cancel_job_group";
44
+ /**
45
+ * Base for all UI Worker protocol bus carriers.
46
+ *
47
+ * A client-facing worker dispatches on this type to translate a worker's
48
+ * outbound UI carriers into its client's wire format, so every UI bus message
49
+ * below subclasses it.
50
+ */
51
+ export declare class BusUIDataMessage extends BusDataMessage {
52
+ }
53
+ export interface BusUIEventMessageOptions extends BusMessageOptions {
54
+ /** App-defined event name. */
55
+ eventName?: string;
56
+ /** App-defined payload. Schemaless by design. */
57
+ payload?: unknown;
58
+ }
59
+ /**
60
+ * A UI event sent from the client to a server-side worker.
61
+ *
62
+ * Emitted by the client-facing worker when the client dispatches an event via
63
+ * `PipecatClient.sendUIEvent(event, payload)`. `UIWorker` subclasses dispatch
64
+ * these to `@ui_event(name)` handlers.
65
+ */
66
+ export declare class BusUIEventMessage extends BusUIDataMessage {
67
+ eventName: string;
68
+ payload: unknown;
69
+ constructor(options: BusUIEventMessageOptions);
70
+ }
71
+ export interface BusUICommandMessageOptions extends BusMessageOptions {
72
+ /** App-defined command name. */
73
+ commandName?: string;
74
+ /** App-defined payload (already a plain object by the time it lands on the bus). */
75
+ payload?: unknown;
76
+ }
77
+ /**
78
+ * A UI command sent from a server-side worker to the client.
79
+ *
80
+ * Published by `UIWorker.sendCommand(name, payload)`. The client-facing
81
+ * worker translates it into a command on its client's wire format; over RTVI
82
+ * that is an `RTVIUICommandFrame({ command: commandName, payload })` pushed
83
+ * through the pipeline.
84
+ */
85
+ export declare class BusUICommandMessage extends BusUIDataMessage {
86
+ commandName: string;
87
+ payload: unknown;
88
+ constructor(options: BusUICommandMessageOptions);
89
+ }
90
+ export interface BusUIJobGroupStartedMessageOptions extends BusMessageOptions {
91
+ /** Shared job-group identifier for the group. */
92
+ jobId?: string;
93
+ /** Names of the workers the work was dispatched to. */
94
+ workers?: string[] | null;
95
+ /** Optional human-readable label for the group. */
96
+ label?: string | null;
97
+ /** Whether the client may request cancellation. */
98
+ cancellable?: boolean;
99
+ /** Epoch milliseconds when the group started. */
100
+ at?: number;
101
+ }
102
+ /**
103
+ * A user-facing job group has been dispatched.
104
+ *
105
+ * Published by a `UIWorker` as it dispatches the group. The client-facing
106
+ * worker forwards it as a `ui-job-group` envelope with
107
+ * `kind = "group_started"`.
108
+ */
109
+ export declare class BusUIJobGroupStartedMessage extends BusUIDataMessage {
110
+ jobId: string;
111
+ workers: string[] | null;
112
+ label: string | null;
113
+ cancellable: boolean;
114
+ at: number;
115
+ constructor(options: BusUIJobGroupStartedMessageOptions);
116
+ }
117
+ export interface BusUIJobUpdateMessageOptions extends BusMessageOptions {
118
+ /** The shared job-group identifier. */
119
+ jobId?: string;
120
+ /** The worker that produced the update. */
121
+ workerName?: string;
122
+ /** The worker's update payload, forwarded verbatim. */
123
+ data?: unknown;
124
+ /** Epoch milliseconds when the update was emitted on the bus. */
125
+ at?: number;
126
+ }
127
+ /**
128
+ * Per-worker progress for a user-facing job group.
129
+ *
130
+ * Forwarded by a `UIWorker` whenever a worker of one of its job groups emits
131
+ * a `BusJobUpdateMessage`. The client-facing worker forwards it as a
132
+ * `ui-job-group` envelope with `kind = "job_update"`.
133
+ */
134
+ export declare class BusUIJobUpdateMessage extends BusUIDataMessage {
135
+ jobId: string;
136
+ workerName: string;
137
+ data: unknown;
138
+ at: number;
139
+ constructor(options: BusUIJobUpdateMessageOptions);
140
+ }
141
+ export interface BusUIJobCompletedMessageOptions extends BusMessageOptions {
142
+ /** The shared job-group identifier. */
143
+ jobId?: string;
144
+ /** The worker that produced the response. */
145
+ workerName?: string;
146
+ /** Completion status as a string (`JobStatus` value). */
147
+ status?: string;
148
+ /** The worker's response payload. */
149
+ response?: unknown;
150
+ /** Epoch milliseconds when the response was received. */
151
+ at?: number;
152
+ }
153
+ /**
154
+ * A worker in a user-facing job group has completed.
155
+ *
156
+ * Forwarded by a `UIWorker` when a worker of one of its job groups reaches a
157
+ * terminal state. The client-facing worker forwards it as a `ui-job-group`
158
+ * envelope with `kind = "job_completed"`.
159
+ */
160
+ export declare class BusUIJobCompletedMessage extends BusUIDataMessage {
161
+ jobId: string;
162
+ workerName: string;
163
+ status: string;
164
+ response: unknown;
165
+ at: number;
166
+ constructor(options: BusUIJobCompletedMessageOptions);
167
+ }
168
+ export interface BusUIJobGroupCompletedMessageOptions extends BusMessageOptions {
169
+ /** The shared job-group identifier. */
170
+ jobId?: string;
171
+ /** Epoch milliseconds when the group completed. */
172
+ at?: number;
173
+ }
174
+ /**
175
+ * A user-facing job group has completed.
176
+ *
177
+ * Published by a `UIWorker` once every worker in the group has finished, or
178
+ * the group was cancelled. The client-facing worker forwards it as a
179
+ * `ui-job-group` envelope with `kind = "group_completed"`.
180
+ */
181
+ export declare class BusUIJobGroupCompletedMessage extends BusUIDataMessage {
182
+ jobId: string;
183
+ at: number;
184
+ constructor(options: BusUIJobGroupCompletedMessageOptions);
185
+ }
186
+ //# sourceMappingURL=messages.d.ts.map