@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,69 @@
1
+ import type { WorkerReadyData } from "./types.ts";
2
+ export type WatchHandler = (data: WorkerReadyData) => Promise<unknown>;
3
+ /**
4
+ * Tracks all known workers across local and remote runners.
5
+ *
6
+ * Owned by a runner and shared with its workers. Organizes workers into
7
+ * local (this runner) and remote (other runners) so they are easy to
8
+ * distinguish. Deduplication is built in: each worker name is
9
+ * registered at most once.
10
+ *
11
+ * Notifications use a targeted watch mechanism: call
12
+ * `watch(workerName, handler)` to be notified when a specific worker
13
+ * registers.
14
+ */
15
+ export declare class WorkerRegistry {
16
+ protected _runnerName: string;
17
+ protected _localWorkers: Map<string, WorkerReadyData>;
18
+ protected _remoteWorkers: Map<string, Map<string, WorkerReadyData>>;
19
+ protected _watches: Map<string, WatchHandler[]>;
20
+ /**
21
+ * Initialize the WorkerRegistry.
22
+ *
23
+ * @param runnerName Name of the runner that owns this registry.
24
+ */
25
+ constructor(runnerName: string);
26
+ /** The name of the runner that owns this registry. */
27
+ get runnerName(): string;
28
+ /** Names of workers registered under this runner. */
29
+ get localWorkers(): string[];
30
+ /** Names of workers registered under remote runners. */
31
+ get remoteWorkers(): string[];
32
+ /**
33
+ * Look up a registered worker by name.
34
+ *
35
+ * @param workerName The worker name to look up.
36
+ * @returns The worker's `WorkerReadyData`, or null if not found.
37
+ */
38
+ get(workerName: string): WorkerReadyData | null;
39
+ /** Whether a worker with this name is registered (Python's `in`). */
40
+ has(workerName: string): boolean;
41
+ /**
42
+ * Watch for a specific worker's registration.
43
+ *
44
+ * Idempotent: registering the same `(workerName, handler)` pair more than
45
+ * once is a no-op (otherwise the handler would fire multiple times when the
46
+ * worker registers — e.g. when a parent both calls `addWorkers(child)`
47
+ * (which auto-watches) and declares a `workerReady({ name: child.name })`
48
+ * handler that the framework also installs).
49
+ *
50
+ * If the worker is already registered, the handler fires immediately.
51
+ *
52
+ * @param workerName The worker name to watch for.
53
+ * @param handler Async callable invoked with the worker's data.
54
+ */
55
+ watch(workerName: string, handler: WatchHandler): Promise<void>;
56
+ /**
57
+ * Register a worker. Returns true if the worker was new.
58
+ *
59
+ * If the worker is already registered, this is a no-op and returns false.
60
+ * Otherwise the worker is added and watchers are notified.
61
+ *
62
+ * @param workerData Information about the worker to register.
63
+ * @returns True if the worker was newly registered, false if already known.
64
+ */
65
+ register(workerData: WorkerReadyData): Promise<boolean>;
66
+ /** Notify watchers of a new registration. */
67
+ protected _notify(workerData: WorkerReadyData): Promise<void>;
68
+ }
69
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1,149 @@
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/registry/registry.py
6
+ /** Shared registry for tracking known workers across runners. */
7
+ import { logger } from "../utils/logger.js";
8
+ /**
9
+ * Tracks all known workers across local and remote runners.
10
+ *
11
+ * Owned by a runner and shared with its workers. Organizes workers into
12
+ * local (this runner) and remote (other runners) so they are easy to
13
+ * distinguish. Deduplication is built in: each worker name is
14
+ * registered at most once.
15
+ *
16
+ * Notifications use a targeted watch mechanism: call
17
+ * `watch(workerName, handler)` to be notified when a specific worker
18
+ * registers.
19
+ */
20
+ export class WorkerRegistry {
21
+ _runnerName;
22
+ _localWorkers = new Map();
23
+ _remoteWorkers = new Map();
24
+ _watches = new Map();
25
+ /**
26
+ * Initialize the WorkerRegistry.
27
+ *
28
+ * @param runnerName Name of the runner that owns this registry.
29
+ */
30
+ constructor(runnerName) {
31
+ this._runnerName = runnerName;
32
+ }
33
+ /** The name of the runner that owns this registry. */
34
+ get runnerName() {
35
+ return this._runnerName;
36
+ }
37
+ /** Names of workers registered under this runner. */
38
+ get localWorkers() {
39
+ return [...this._localWorkers.keys()];
40
+ }
41
+ /** Names of workers registered under remote runners. */
42
+ get remoteWorkers() {
43
+ const result = [];
44
+ for (const workers of this._remoteWorkers.values()) {
45
+ result.push(...workers.keys());
46
+ }
47
+ return result;
48
+ }
49
+ /**
50
+ * Look up a registered worker by name.
51
+ *
52
+ * @param workerName The worker name to look up.
53
+ * @returns The worker's `WorkerReadyData`, or null if not found.
54
+ */
55
+ get(workerName) {
56
+ const local = this._localWorkers.get(workerName);
57
+ if (local) {
58
+ return local;
59
+ }
60
+ for (const workers of this._remoteWorkers.values()) {
61
+ const remote = workers.get(workerName);
62
+ if (remote) {
63
+ return remote;
64
+ }
65
+ }
66
+ return null;
67
+ }
68
+ /** Whether a worker with this name is registered (Python's `in`). */
69
+ has(workerName) {
70
+ return this.get(workerName) !== null;
71
+ }
72
+ /**
73
+ * Watch for a specific worker's registration.
74
+ *
75
+ * Idempotent: registering the same `(workerName, handler)` pair more than
76
+ * once is a no-op (otherwise the handler would fire multiple times when the
77
+ * worker registers — e.g. when a parent both calls `addWorkers(child)`
78
+ * (which auto-watches) and declares a `workerReady({ name: child.name })`
79
+ * handler that the framework also installs).
80
+ *
81
+ * If the worker is already registered, the handler fires immediately.
82
+ *
83
+ * @param workerName The worker name to watch for.
84
+ * @param handler Async callable invoked with the worker's data.
85
+ */
86
+ async watch(workerName, handler) {
87
+ let handlers = this._watches.get(workerName);
88
+ if (!handlers) {
89
+ handlers = [];
90
+ this._watches.set(workerName, handlers);
91
+ }
92
+ if (handlers.includes(handler)) {
93
+ return;
94
+ }
95
+ handlers.push(handler);
96
+ const existing = this.get(workerName);
97
+ if (existing) {
98
+ await handler(existing);
99
+ }
100
+ }
101
+ /**
102
+ * Register a worker. Returns true if the worker was new.
103
+ *
104
+ * If the worker is already registered, this is a no-op and returns false.
105
+ * Otherwise the worker is added and watchers are notified.
106
+ *
107
+ * @param workerData Information about the worker to register.
108
+ * @returns True if the worker was newly registered, false if already known.
109
+ */
110
+ async register(workerData) {
111
+ const isLocal = workerData.runner === this._runnerName;
112
+ let target;
113
+ if (isLocal) {
114
+ target = this._localWorkers;
115
+ }
116
+ else {
117
+ let remote = this._remoteWorkers.get(workerData.runner);
118
+ if (!remote) {
119
+ remote = new Map();
120
+ this._remoteWorkers.set(workerData.runner, remote);
121
+ }
122
+ target = remote;
123
+ }
124
+ if (target.has(workerData.workerName)) {
125
+ return false;
126
+ }
127
+ // Warn if the same name exists on a different runner
128
+ const existing = this.get(workerData.workerName);
129
+ if (existing && existing.runner !== workerData.runner) {
130
+ logger.warning(`Worker '${workerData.workerName}' registered on both ` +
131
+ `'${existing.runner}' and '${workerData.runner}'`);
132
+ }
133
+ target.set(workerData.workerName, workerData);
134
+ const locality = isLocal ? "local" : workerData.runner;
135
+ logger.debug(`Worker '${workerData.workerName}' ready (${locality})`);
136
+ await this._notify(workerData);
137
+ return true;
138
+ }
139
+ /** Notify watchers of a new registration. */
140
+ async _notify(workerData) {
141
+ // Iterate the live list by index, as Python does: handlers appended
142
+ // during notification are visited too.
143
+ const handlers = this._watches.get(workerData.workerName) ?? [];
144
+ for (let i = 0; i < handlers.length; i++) {
145
+ await handlers[i](workerData);
146
+ }
147
+ }
148
+ }
149
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1,47 @@
1
+ /** Shared types for the worker registry. */
2
+ export interface WorkerRegistryEntryOptions {
3
+ /** The worker's name. */
4
+ name: string;
5
+ /** Name of the parent worker, or null for root tasks. */
6
+ parent?: string | null;
7
+ /** Whether the worker is currently active. */
8
+ active?: boolean;
9
+ /** Whether the worker is bridged. */
10
+ bridged?: boolean;
11
+ /** Unix timestamp when the worker became ready. */
12
+ startedAt?: number | null;
13
+ }
14
+ /** Information about a worker in a registry snapshot. */
15
+ export declare class WorkerRegistryEntry {
16
+ name: string;
17
+ parent: string | null;
18
+ active: boolean;
19
+ bridged: boolean;
20
+ startedAt: number | null;
21
+ constructor(options: WorkerRegistryEntryOptions);
22
+ }
23
+ export interface WorkerReadyDataOptions {
24
+ /** The name of the worker. */
25
+ workerName: string;
26
+ /** The name of the runner managing this worker. */
27
+ runner: string;
28
+ }
29
+ /** Information about a registered worker. */
30
+ export declare class WorkerReadyData {
31
+ workerName: string;
32
+ runner: string;
33
+ constructor(options: WorkerReadyDataOptions);
34
+ }
35
+ export interface WorkerErrorDataOptions {
36
+ /** The name of the worker that errored. */
37
+ workerName: string;
38
+ /** Description of the error. */
39
+ error: string;
40
+ }
41
+ /** Information about a worker error. */
42
+ export declare class WorkerErrorData {
43
+ workerName: string;
44
+ error: string;
45
+ constructor(options: WorkerErrorDataOptions);
46
+ }
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,39 @@
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/registry/types.py
6
+ /** Information about a worker in a registry snapshot. */
7
+ export class WorkerRegistryEntry {
8
+ name;
9
+ parent;
10
+ active;
11
+ bridged;
12
+ startedAt;
13
+ constructor(options) {
14
+ this.name = options.name;
15
+ this.parent = options.parent ?? null;
16
+ this.active = options.active ?? false;
17
+ this.bridged = options.bridged ?? false;
18
+ this.startedAt = options.startedAt ?? null;
19
+ }
20
+ }
21
+ /** Information about a registered worker. */
22
+ export class WorkerReadyData {
23
+ workerName;
24
+ runner;
25
+ constructor(options) {
26
+ this.workerName = options.workerName;
27
+ this.runner = options.runner;
28
+ }
29
+ }
30
+ /** Information about a worker error. */
31
+ export class WorkerErrorData {
32
+ workerName;
33
+ error;
34
+ constructor(options) {
35
+ this.workerName = options.workerName;
36
+ this.error = options.error;
37
+ }
38
+ }
39
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,94 @@
1
+ /** Frame serialization interfaces for Pipecat. */
2
+ import { type Frame } from "../frames/frames.ts";
3
+ import type { FrameProcessorSetup } from "../processors/frame_processor.ts";
4
+ import { BaseObject, type BaseObjectOptions } from "../utils/base_object.ts";
5
+ export interface FrameSerializerInputParamsOptions {
6
+ /**
7
+ * Whether to ignore RTVI protocol messages during serialization. Defaults
8
+ * to true to prevent RTVI messages from being sent to external transports.
9
+ */
10
+ ignoreRtviMessages?: boolean;
11
+ /**
12
+ * Seconds of inactivity after which the stream resampler clears its
13
+ * internal history to avoid audio artefacts from stale state. Set to `null`
14
+ * to never clear — recommended for telephony providers (e.g. Genesys) that
15
+ * have irregular gaps between audio chunks. Defaults to `0.2`.
16
+ */
17
+ resamplerClearAfterSecs?: number | null;
18
+ }
19
+ /**
20
+ * Base configuration parameters for FrameSerializer.
21
+ *
22
+ * - `ignoreRtviMessages`: whether to ignore RTVI protocol messages during
23
+ * serialization. Defaults to true to prevent RTVI messages from being sent
24
+ * to external transports.
25
+ * - `resamplerClearAfterSecs`: seconds of inactivity after which the stream
26
+ * resampler clears its internal history to avoid audio artefacts from stale
27
+ * state. Set to `null` to never clear — recommended for telephony providers
28
+ * (e.g. Genesys) that have irregular gaps between audio chunks. Defaults to
29
+ * `0.2`.
30
+ */
31
+ export declare class FrameSerializerInputParams {
32
+ ignoreRtviMessages: boolean;
33
+ resamplerClearAfterSecs: number | null;
34
+ constructor(options?: FrameSerializerInputParamsOptions);
35
+ }
36
+ export interface FrameSerializerOptions extends BaseObjectOptions {
37
+ /** Configuration parameters. */
38
+ params?: FrameSerializerInputParams | null;
39
+ }
40
+ /** Serialized frame data: a string or bytes. */
41
+ export type SerializedData = string | Uint8Array;
42
+ /**
43
+ * Abstract base class for frame serialization implementations.
44
+ *
45
+ * Defines the interface for converting frames to/from serialized formats
46
+ * for transmission or storage. Subclasses must implement the core
47
+ * serialize/deserialize methods.
48
+ */
49
+ export declare abstract class FrameSerializer extends BaseObject {
50
+ /** Upstream's nested `FrameSerializer.InputParams`. */
51
+ static InputParams: typeof FrameSerializerInputParams;
52
+ protected _params: FrameSerializerInputParams;
53
+ /**
54
+ * Initialize the FrameSerializer.
55
+ *
56
+ * @param options.params Configuration parameters. Other options (e.g.
57
+ * `name`) are passed to BaseObject.
58
+ */
59
+ constructor(options?: FrameSerializerOptions);
60
+ /**
61
+ * Check if a frame should be ignored during serialization.
62
+ *
63
+ * This method filters out RTVI protocol messages when `ignoreRtviMessages`
64
+ * is enabled. Subclasses can override this to add additional filtering
65
+ * logic.
66
+ *
67
+ * @param frame The frame to check.
68
+ * @returns True if the frame should be ignored, false otherwise.
69
+ */
70
+ shouldIgnoreFrame(frame: Frame): boolean;
71
+ /**
72
+ * Initialize the serializer with pipeline configuration.
73
+ *
74
+ * @param setup Configuration object containing setup parameters.
75
+ */
76
+ setup(_setup: FrameProcessorSetup | unknown): Promise<void>;
77
+ /**
78
+ * Convert a frame to its serialized representation.
79
+ *
80
+ * @param frame The frame to serialize.
81
+ * @returns Serialized frame data as string or bytes, or null when there is
82
+ * nothing to send for this frame: it isn't handled, or the serializer is
83
+ * buffering it and will emit it on a later call.
84
+ */
85
+ abstract serialize(frame: Frame): Promise<SerializedData | null>;
86
+ /**
87
+ * Convert serialized data back to a frame object.
88
+ *
89
+ * @param data Serialized frame data as string or bytes.
90
+ * @returns Reconstructed Frame object, or null if deserialization fails.
91
+ */
92
+ abstract deserialize(data: SerializedData): Promise<Frame | null>;
93
+ }
94
+ //# sourceMappingURL=base_serializer.d.ts.map
@@ -0,0 +1,82 @@
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/serializers/base_serializer.py
6
+ /** Frame serialization interfaces for Pipecat. */
7
+ import { OutputTransportMessageFrame, OutputTransportMessageUrgentFrame, } from "../frames/frames.js";
8
+ import * as RTVI from "../processors/frameworks/rtvi/models.js";
9
+ import { BaseObject } from "../utils/base_object.js";
10
+ /**
11
+ * Base configuration parameters for FrameSerializer.
12
+ *
13
+ * - `ignoreRtviMessages`: whether to ignore RTVI protocol messages during
14
+ * serialization. Defaults to true to prevent RTVI messages from being sent
15
+ * to external transports.
16
+ * - `resamplerClearAfterSecs`: seconds of inactivity after which the stream
17
+ * resampler clears its internal history to avoid audio artefacts from stale
18
+ * state. Set to `null` to never clear — recommended for telephony providers
19
+ * (e.g. Genesys) that have irregular gaps between audio chunks. Defaults to
20
+ * `0.2`.
21
+ */
22
+ export class FrameSerializerInputParams {
23
+ ignoreRtviMessages;
24
+ resamplerClearAfterSecs;
25
+ constructor(options = {}) {
26
+ this.ignoreRtviMessages = options.ignoreRtviMessages ?? true;
27
+ this.resamplerClearAfterSecs =
28
+ options.resamplerClearAfterSecs === undefined ? 0.2 : options.resamplerClearAfterSecs;
29
+ }
30
+ }
31
+ /**
32
+ * Abstract base class for frame serialization implementations.
33
+ *
34
+ * Defines the interface for converting frames to/from serialized formats
35
+ * for transmission or storage. Subclasses must implement the core
36
+ * serialize/deserialize methods.
37
+ */
38
+ export class FrameSerializer extends BaseObject {
39
+ /** Upstream's nested `FrameSerializer.InputParams`. */
40
+ static InputParams = FrameSerializerInputParams;
41
+ _params;
42
+ /**
43
+ * Initialize the FrameSerializer.
44
+ *
45
+ * @param options.params Configuration parameters. Other options (e.g.
46
+ * `name`) are passed to BaseObject.
47
+ */
48
+ constructor(options = {}) {
49
+ super(options);
50
+ this._params = options.params || new FrameSerializerInputParams();
51
+ }
52
+ /**
53
+ * Check if a frame should be ignored during serialization.
54
+ *
55
+ * This method filters out RTVI protocol messages when `ignoreRtviMessages`
56
+ * is enabled. Subclasses can override this to add additional filtering
57
+ * logic.
58
+ *
59
+ * @param frame The frame to check.
60
+ * @returns True if the frame should be ignored, false otherwise.
61
+ */
62
+ shouldIgnoreFrame(frame) {
63
+ if (this._params.ignoreRtviMessages &&
64
+ (frame instanceof OutputTransportMessageFrame ||
65
+ frame instanceof OutputTransportMessageUrgentFrame) &&
66
+ typeof frame.message === "object" &&
67
+ frame.message !== null &&
68
+ frame.message.label === RTVI.MESSAGE_LABEL) {
69
+ return true;
70
+ }
71
+ return false;
72
+ }
73
+ /**
74
+ * Initialize the serializer with pipeline configuration.
75
+ *
76
+ * @param setup Configuration object containing setup parameters.
77
+ */
78
+ // Typed `unknown` to keep BaseObject.setup's signature; callers pass a
79
+ // FrameProcessorSetup, as upstream does.
80
+ async setup(_setup) { }
81
+ }
82
+ //# sourceMappingURL=base_serializer.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# 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/serializers/__init__.py
6
+ // Upstream's `__init__.py` is empty: import the package's modules directly.
7
+ export {};
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,145 @@
1
+ import { CancelFrame, EndFrame, type Frame, type ServiceMetadataFrame, StartFrame } from "../frames/frames.ts";
2
+ import { FrameDirection, FrameProcessor, type FrameProcessorOptions, type FrameProcessorSetup } from "../processors/frame_processor.ts";
3
+ import type { TracingContext } from "../utils/tracing/tracing_context.ts";
4
+ import { ServiceSettings } from "./settings.ts";
5
+ export interface AIServiceOptions extends FrameProcessorOptions {
6
+ /** The runtime-updatable settings for the AI service. */
7
+ settings?: ServiceSettings | null;
8
+ }
9
+ /**
10
+ * Base class for all AI services.
11
+ *
12
+ * Provides common functionality for AI services including model management,
13
+ * settings handling, session properties, and frame processing lifecycle.
14
+ * Subclasses should implement specific AI functionality while leveraging
15
+ * this base infrastructure.
16
+ */
17
+ export declare class AIService extends FrameProcessor {
18
+ protected _settings: ServiceSettings;
19
+ protected _sessionProperties: Record<string, unknown>;
20
+ protected _tracingEnabled: boolean;
21
+ protected _tracingContext: TracingContext | null;
22
+ /**
23
+ * Initialize the AI service.
24
+ *
25
+ * @param options.settings The runtime-updatable settings for the AI service.
26
+ * Other options are passed to the parent FrameProcessor.
27
+ */
28
+ constructor(options?: AIServiceOptions);
29
+ /**
30
+ * The service's current settings, for reading.
31
+ *
32
+ * Change them with a `ServiceUpdateSettingsFrame`, so the service applies
33
+ * the change and its metrics keep the model in sync.
34
+ */
35
+ get settings(): ServiceSettings;
36
+ /**
37
+ * Sync the current AI model name (in `this._settings.model`) for usage in
38
+ * metrics.
39
+ *
40
+ * We don't store model name here because there's already a single source
41
+ * of truth for it in `this._settings.model`. This method is just for
42
+ * syncing the model name to the metrics data.
43
+ */
44
+ protected _syncModelNameToMetrics(): void;
45
+ /**
46
+ * The metadata frame this service broadcasts at start, or null.
47
+ *
48
+ * Override to return a populated `ServiceMetadataFrame` (or a subtype such
49
+ * as `STTMetadataFrame`) describing this service for downstream processors,
50
+ * for example the `userTurnStrategies` an STT with server-side end-of-turn
51
+ * detection recommends. Return null to broadcast nothing.
52
+ *
53
+ * @returns The metadata frame to broadcast, or null.
54
+ */
55
+ serviceMetadataFrame(): ServiceMetadataFrame | null;
56
+ /** Broadcast this service's metadata frame, if any. */
57
+ broadcastServiceMetadata(): Promise<void>;
58
+ /**
59
+ * Set up the service.
60
+ *
61
+ * @param setup Configuration object containing setup parameters.
62
+ */
63
+ setup(setup: FrameProcessorSetup): Promise<void>;
64
+ /**
65
+ * Start the AI service.
66
+ *
67
+ * Called when the service should begin processing. Subclasses should
68
+ * override this method to perform service-specific initialization.
69
+ *
70
+ * @param _frame The start frame containing initialization parameters.
71
+ */
72
+ start(_frame: StartFrame): Promise<void>;
73
+ /**
74
+ * Stop the AI service on a graceful end (`EndFrame`).
75
+ *
76
+ * Runs in frame order, after pending frames drain. Override for graceful
77
+ * shutdown behavior, such as flushing in-flight work before stopping.
78
+ *
79
+ * @param _frame The end frame.
80
+ */
81
+ stop(_frame: EndFrame): Promise<void>;
82
+ /**
83
+ * Cancel the AI service immediately (`CancelFrame`).
84
+ *
85
+ * Runs at once, ahead of any queued frames, to abort active work fast (for
86
+ * example, stop producing audio now). Override only for that time-sensitive
87
+ * subset.
88
+ *
89
+ * @param _frame The cancel frame.
90
+ */
91
+ cancel(_frame: CancelFrame): Promise<void>;
92
+ /**
93
+ * Apply a settings delta and return the changed fields.
94
+ *
95
+ * The delta is applied to `_settings` and a record mapping each changed
96
+ * field name to its **pre-update** value is returned. The `model` field is
97
+ * handled specially: when it changes, the model name is synced to metrics.
98
+ *
99
+ * Concrete services should override this method (calling `super`) to react
100
+ * to specific changed fields (e.g. reconnect on voice change).
101
+ *
102
+ * @param delta A delta-mode settings object.
103
+ * @returns Record mapping changed field names to their previous values.
104
+ */
105
+ protected _updateSettings(delta: ServiceSettings): Promise<Record<string, unknown>>;
106
+ /**
107
+ * Log a warning for settings changes that won't take effect at runtime.
108
+ *
109
+ * Convenience helper for `_updateSettings` overrides. Accepts any iterable
110
+ * of field names (an array, a set, a record's keys, etc.) or a record.
111
+ *
112
+ * @param unhandled Field names that changed but are not applied.
113
+ */
114
+ protected _warnUnhandledUpdatedSettings(unhandled: Iterable<string> | Record<string, unknown>): void;
115
+ /**
116
+ * Push a frame and broadcast service metadata once the service starts.
117
+ *
118
+ * @param frame The frame to push.
119
+ * @param direction The direction to push the frame.
120
+ */
121
+ pushFrame(frame: Frame, direction?: FrameDirection): Promise<void>;
122
+ /**
123
+ * Process frames and handle service lifecycle.
124
+ *
125
+ * Automatically handles StartFrame, EndFrame, and CancelFrame by calling
126
+ * the appropriate lifecycle methods.
127
+ *
128
+ * @param frame The frame to process.
129
+ * @param direction The direction of frame processing.
130
+ */
131
+ processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
132
+ /**
133
+ * Process frames from an async generator.
134
+ *
135
+ * Takes an async generator that yields frames and processes each one,
136
+ * handling error frames specially by pushing them as errors.
137
+ *
138
+ * @param generator An async generator that yields Frame objects or null.
139
+ */
140
+ processGenerator(generator: AsyncIterable<Frame | null | undefined>): Promise<void>;
141
+ protected _start(frame: StartFrame): Promise<void>;
142
+ protected _stop(frame: EndFrame): Promise<void>;
143
+ protected _cancel(frame: CancelFrame): Promise<void>;
144
+ }
145
+ //# sourceMappingURL=ai_service.d.ts.map