@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,53 @@
1
+ /**
2
+ * LLM text processor module for processing and aggregating raw LLM output text.
3
+ *
4
+ * This processor will convert LLMTextFrames into AggregatedTextFrames based on
5
+ * the configured text aggregator. Using the customizable aggregator, it
6
+ * provides functionality to handle or manipulate LLM text frames before they
7
+ * are sent to other components such as TTS services or context aggregators. It
8
+ * can be used to pre-aggregate and categorize, modify, or filter direct output
9
+ * tokens from the LLM.
10
+ */
11
+ import { type Frame, InterruptionFrame, LLMTextFrame } from "../../frames/frames.ts";
12
+ import type { BaseTextAggregator } from "../../utils/text/base_text_aggregator.ts";
13
+ import { type FrameDirection, FrameProcessor, type FrameProcessorOptions } from "../frame_processor.ts";
14
+ export interface LLMTextProcessorOptions extends FrameProcessorOptions {
15
+ /**
16
+ * An optional text aggregator to use for processing LLM text frames. By
17
+ * default, a SimpleTextAggregator aggregating by sentence will be used.
18
+ */
19
+ textAggregator?: BaseTextAggregator | null;
20
+ }
21
+ /**
22
+ * A processor for handling or manipulating LLM text frames before they are processed further.
23
+ *
24
+ * This processor will convert LLMTextFrames into AggregatedTextFrames based on
25
+ * the configured text aggregator. Using the customizable aggregator, it
26
+ * provides functionality to handle or manipulate LLM text frames before they
27
+ * are sent to other components such as TTS services or context aggregators. It
28
+ * can be used to pre-aggregate and categorize, modify, or filter direct output
29
+ * tokens from the LLM.
30
+ */
31
+ export declare class LLMTextProcessor extends FrameProcessor {
32
+ protected _textAggregator: BaseTextAggregator;
33
+ /**
34
+ * Initialize the LLM text processor.
35
+ *
36
+ * TODO: Allow transformations per text type or all (and deprecate the TTS filters).
37
+ */
38
+ constructor(options?: LLMTextProcessorOptions);
39
+ /**
40
+ * Process an LLMTextFrames using the aggregator to generate AggregatedTextFrames.
41
+ *
42
+ * @param frame The frame to process.
43
+ * @param direction The direction of frame flow in the pipeline.
44
+ */
45
+ processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
46
+ /** Handle interruptions by resetting the text aggregator. */
47
+ protected _handleInterruption(_: InterruptionFrame): Promise<void>;
48
+ /** Reset the internal state of the text processor and its aggregator. */
49
+ reset(): Promise<void>;
50
+ protected _handleLlmText(inFrame: LLMTextFrame): Promise<void>;
51
+ protected _handleLlmEnd(skipTts?: boolean | null): Promise<void>;
52
+ }
53
+ //# sourceMappingURL=llm_text_processor.d.ts.map
@@ -0,0 +1,102 @@
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/processors/aggregators/llm_text_processor.py
6
+ /**
7
+ * LLM text processor module for processing and aggregating raw LLM output text.
8
+ *
9
+ * This processor will convert LLMTextFrames into AggregatedTextFrames based on
10
+ * the configured text aggregator. Using the customizable aggregator, it
11
+ * provides functionality to handle or manipulate LLM text frames before they
12
+ * are sent to other components such as TTS services or context aggregators. It
13
+ * can be used to pre-aggregate and categorize, modify, or filter direct output
14
+ * tokens from the LLM.
15
+ */
16
+ import { AggregatedTextFrame, EndFrame, InterruptionFrame, LLMFullResponseEndFrame, LLMTextFrame, } from "../../frames/frames.js";
17
+ import { PatternMatch } from "../../utils/text/pattern_pair_aggregator.js";
18
+ import { SimpleTextAggregator } from "../../utils/text/simple_text_aggregator.js";
19
+ import { FrameProcessor, } from "../frame_processor.js";
20
+ /**
21
+ * A processor for handling or manipulating LLM text frames before they are processed further.
22
+ *
23
+ * This processor will convert LLMTextFrames into AggregatedTextFrames based on
24
+ * the configured text aggregator. Using the customizable aggregator, it
25
+ * provides functionality to handle or manipulate LLM text frames before they
26
+ * are sent to other components such as TTS services or context aggregators. It
27
+ * can be used to pre-aggregate and categorize, modify, or filter direct output
28
+ * tokens from the LLM.
29
+ */
30
+ export class LLMTextProcessor extends FrameProcessor {
31
+ _textAggregator;
32
+ /**
33
+ * Initialize the LLM text processor.
34
+ *
35
+ * TODO: Allow transformations per text type or all (and deprecate the TTS filters).
36
+ */
37
+ constructor(options = {}) {
38
+ super(options);
39
+ this._textAggregator = options.textAggregator || new SimpleTextAggregator();
40
+ }
41
+ /**
42
+ * Process an LLMTextFrames using the aggregator to generate AggregatedTextFrames.
43
+ *
44
+ * @param frame The frame to process.
45
+ * @param direction The direction of frame flow in the pipeline.
46
+ */
47
+ async processFrame(frame, direction) {
48
+ await super.processFrame(frame, direction);
49
+ if (frame instanceof InterruptionFrame) {
50
+ await this._handleInterruption(frame);
51
+ await this.pushFrame(frame, direction);
52
+ }
53
+ else if (frame instanceof LLMTextFrame) {
54
+ await this._handleLlmText(frame);
55
+ }
56
+ else if (frame instanceof LLMFullResponseEndFrame) {
57
+ await this._handleLlmEnd(frame.skipTts);
58
+ await this.pushFrame(frame, direction);
59
+ }
60
+ else if (frame instanceof EndFrame) {
61
+ await this._handleLlmEnd();
62
+ await this.pushFrame(frame, direction);
63
+ }
64
+ else {
65
+ await this.pushFrame(frame, direction);
66
+ }
67
+ }
68
+ /** Handle interruptions by resetting the text aggregator. */
69
+ async _handleInterruption(_) {
70
+ await this._textAggregator.handleInterruption();
71
+ }
72
+ /** Reset the internal state of the text processor and its aggregator. */
73
+ async reset() {
74
+ await this._textAggregator.reset();
75
+ }
76
+ async _handleLlmText(inFrame) {
77
+ for await (const aggregation of this._textAggregator.aggregate(inFrame.text)) {
78
+ const outFrame = new AggregatedTextFrame({
79
+ text: aggregation.text,
80
+ textType: aggregation.type,
81
+ rawText: aggregation instanceof PatternMatch ? aggregation.fullMatch : aggregation.text,
82
+ });
83
+ outFrame.appendToContext = true;
84
+ outFrame.skipTts = inFrame.skipTts;
85
+ await this.pushFrame(outFrame);
86
+ }
87
+ }
88
+ async _handleLlmEnd(skipTts = null) {
89
+ // Flush any remaining text
90
+ const remaining = await this._textAggregator.flush();
91
+ if (remaining) {
92
+ const outFrame = new AggregatedTextFrame({
93
+ text: remaining.text,
94
+ textType: remaining.type,
95
+ rawText: remaining instanceof PatternMatch ? remaining.fullMatch : remaining.text,
96
+ });
97
+ outFrame.skipTts = skipTts;
98
+ await this.pushFrame(outFrame);
99
+ }
100
+ }
101
+ }
102
+ //# sourceMappingURL=llm_text_processor.js.map
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Text sentence aggregation processor for Pipecat.
3
+ *
4
+ * This module provides a frame processor that accumulates text frames into
5
+ * complete sentences, only outputting when a sentence-ending pattern is
6
+ * detected.
7
+ */
8
+ import { type Frame } from "../../frames/frames.ts";
9
+ import { type FrameDirection, FrameProcessor } from "../frame_processor.ts";
10
+ /**
11
+ * Aggregates text frames into complete sentences.
12
+ *
13
+ * This processor accumulates incoming text frames until a sentence-ending
14
+ * pattern is detected, then outputs the complete sentence as a single frame.
15
+ * Useful for ensuring downstream processors receive coherent, complete
16
+ * sentences rather than fragmented text.
17
+ *
18
+ * Frame input/output:
19
+ *
20
+ * TextFrame("Hello,") -> None
21
+ * TextFrame(" world.") -> TextFrame("Hello, world.")
22
+ */
23
+ export declare class SentenceAggregator extends FrameProcessor {
24
+ protected _aggregation: string;
25
+ /**
26
+ * Initialize the sentence aggregator.
27
+ *
28
+ * Sets up internal state for accumulating text frames into complete sentences.
29
+ */
30
+ constructor();
31
+ /**
32
+ * Process incoming frames and aggregate text into complete sentences.
33
+ *
34
+ * @param frame The incoming frame to process.
35
+ * @param direction The direction of frame flow in the pipeline.
36
+ */
37
+ processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
38
+ }
39
+ //# sourceMappingURL=sentence.d.ts.map
@@ -0,0 +1,69 @@
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/processors/aggregators/sentence.py
6
+ /**
7
+ * Text sentence aggregation processor for Pipecat.
8
+ *
9
+ * This module provides a frame processor that accumulates text frames into
10
+ * complete sentences, only outputting when a sentence-ending pattern is
11
+ * detected.
12
+ */
13
+ import { EagerTranscriptionFrame, EndFrame, InterimTranscriptionFrame, TextFrame, } from "../../frames/frames.js";
14
+ import { matchEndofsentence } from "../../utils/string.js";
15
+ import { FrameProcessor } from "../frame_processor.js";
16
+ /**
17
+ * Aggregates text frames into complete sentences.
18
+ *
19
+ * This processor accumulates incoming text frames until a sentence-ending
20
+ * pattern is detected, then outputs the complete sentence as a single frame.
21
+ * Useful for ensuring downstream processors receive coherent, complete
22
+ * sentences rather than fragmented text.
23
+ *
24
+ * Frame input/output:
25
+ *
26
+ * TextFrame("Hello,") -> None
27
+ * TextFrame(" world.") -> TextFrame("Hello, world.")
28
+ */
29
+ export class SentenceAggregator extends FrameProcessor {
30
+ _aggregation = "";
31
+ /**
32
+ * Initialize the sentence aggregator.
33
+ *
34
+ * Sets up internal state for accumulating text frames into complete sentences.
35
+ */
36
+ constructor() {
37
+ super();
38
+ }
39
+ /**
40
+ * Process incoming frames and aggregate text into complete sentences.
41
+ *
42
+ * @param frame The incoming frame to process.
43
+ * @param direction The direction of frame flow in the pipeline.
44
+ */
45
+ async processFrame(frame, direction) {
46
+ await super.processFrame(frame, direction);
47
+ // We ignore interim and eager (provisional) transcriptions at this point.
48
+ if (frame instanceof InterimTranscriptionFrame || frame instanceof EagerTranscriptionFrame) {
49
+ return;
50
+ }
51
+ if (frame instanceof TextFrame) {
52
+ this._aggregation += frame.text;
53
+ if (matchEndofsentence(this._aggregation)) {
54
+ await this.pushFrame(new TextFrame({ text: this._aggregation }));
55
+ this._aggregation = "";
56
+ }
57
+ }
58
+ else if (frame instanceof EndFrame) {
59
+ if (this._aggregation) {
60
+ await this.pushFrame(new TextFrame({ text: this._aggregation }));
61
+ }
62
+ await this.pushFrame(frame);
63
+ }
64
+ else {
65
+ await this.pushFrame(frame, direction);
66
+ }
67
+ }
68
+ }
69
+ //# sourceMappingURL=sentence.js.map
@@ -0,0 +1,42 @@
1
+ /** Async generator processor for frame serialization and streaming. */
2
+ import { Queue } from "@pipedog/asyncio";
3
+ import { type Frame } from "../frames/frames.ts";
4
+ import type { FrameSerializer } from "../serializers/base_serializer.ts";
5
+ import { type FrameDirection, FrameProcessor, type FrameProcessorOptions } from "./frame_processor.ts";
6
+ export interface AsyncGeneratorProcessorOptions extends FrameProcessorOptions {
7
+ /** The frame serializer to use for converting frames to data. */
8
+ serializer: FrameSerializer;
9
+ }
10
+ /**
11
+ * A frame processor that serializes frames and provides them via async generator.
12
+ *
13
+ * This processor passes frames through unchanged while simultaneously
14
+ * serializing them and making the serialized data available through an async
15
+ * generator interface. Useful for streaming frame data to external consumers
16
+ * while maintaining the normal frame processing pipeline.
17
+ */
18
+ export declare class AsyncGeneratorProcessor extends FrameProcessor {
19
+ protected _serializer: FrameSerializer;
20
+ protected _dataQueue: Queue<unknown>;
21
+ /**
22
+ * Initialize the async generator processor.
23
+ *
24
+ * @param options.serializer The frame serializer to use for converting frames to data.
25
+ */
26
+ constructor(options: AsyncGeneratorProcessorOptions);
27
+ /**
28
+ * Process frames by passing them through and queuing serialized data.
29
+ *
30
+ * @param frame The frame to process.
31
+ * @param direction The direction of frame flow in the pipeline.
32
+ */
33
+ processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
34
+ /**
35
+ * Generate serialized frame data asynchronously.
36
+ *
37
+ * Yields serialized frame data from the internal queue until a termination
38
+ * signal (null) is received.
39
+ */
40
+ generator(): AsyncGenerator<unknown, void, unknown>;
41
+ }
42
+ //# sourceMappingURL=async_generator.d.ts.map
@@ -0,0 +1,76 @@
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/processors/async_generator.py
6
+ /** Async generator processor for frame serialization and streaming. */
7
+ import { Queue } from "@pipedog/asyncio";
8
+ import { CancelFrame, EndFrame } from "../frames/frames.js";
9
+ import { FrameProcessor, } from "./frame_processor.js";
10
+ /**
11
+ * A frame processor that serializes frames and provides them via async generator.
12
+ *
13
+ * This processor passes frames through unchanged while simultaneously
14
+ * serializing them and making the serialized data available through an async
15
+ * generator interface. Useful for streaming frame data to external consumers
16
+ * while maintaining the normal frame processing pipeline.
17
+ */
18
+ export class AsyncGeneratorProcessor extends FrameProcessor {
19
+ _serializer;
20
+ _dataQueue = new Queue();
21
+ /**
22
+ * Initialize the async generator processor.
23
+ *
24
+ * @param options.serializer The frame serializer to use for converting frames to data.
25
+ */
26
+ constructor(options) {
27
+ super(options);
28
+ this._serializer = options.serializer;
29
+ }
30
+ /**
31
+ * Process frames by passing them through and queuing serialized data.
32
+ *
33
+ * @param frame The frame to process.
34
+ * @param direction The direction of frame flow in the pipeline.
35
+ */
36
+ async processFrame(frame, direction) {
37
+ await super.processFrame(frame, direction);
38
+ await this.pushFrame(frame, direction);
39
+ if (frame instanceof CancelFrame || frame instanceof EndFrame) {
40
+ await this._dataQueue.put(null);
41
+ }
42
+ else {
43
+ const data = await this._serializer.serialize(frame);
44
+ if (isTruthy(data)) {
45
+ await this._dataQueue.put(data);
46
+ }
47
+ }
48
+ }
49
+ /**
50
+ * Generate serialized frame data asynchronously.
51
+ *
52
+ * Yields serialized frame data from the internal queue until a termination
53
+ * signal (null) is received.
54
+ */
55
+ async *generator() {
56
+ let running = true;
57
+ while (running) {
58
+ const data = await this._dataQueue.get();
59
+ running = data !== null;
60
+ if (isTruthy(data)) {
61
+ yield data;
62
+ }
63
+ }
64
+ }
65
+ }
66
+ /** Python truthiness for serialized data: empty strings and byte arrays are falsy. */
67
+ function isTruthy(data) {
68
+ if (data === null || data === undefined)
69
+ return false;
70
+ if (typeof data === "string")
71
+ return data.length > 0;
72
+ if (data instanceof Uint8Array)
73
+ return data.length > 0;
74
+ return Boolean(data);
75
+ }
76
+ //# sourceMappingURL=async_generator.js.map
@@ -0,0 +1,241 @@
1
+ import type { BaseAudioResampler } from "../../audio/resamplers/base_audio_resampler.ts";
2
+ import { type Frame, InputAudioRawFrame, OutputAudioRawFrame } from "../../frames/frames.ts";
3
+ import { type FrameDirection, FrameProcessor, type FrameProcessorOptions, type FrameProcessorSetup } from "../frame_processor.ts";
4
+ /**
5
+ * A growable byte buffer, standing in for Python's `bytearray`: appends are
6
+ * amortized and the buffer is mutated in place.
7
+ */
8
+ export declare class ByteBuffer {
9
+ #private;
10
+ get length(): number;
11
+ /** Append `bytes` to the buffer. */
12
+ extend(bytes: Uint8Array): void;
13
+ /** Append `count` zero bytes (silence) to the buffer. */
14
+ extendZeros(count: number): void;
15
+ /** Drop the first `count` bytes. */
16
+ discardFront(count: number): void;
17
+ /** A copy of the buffer's contents (Python `bytes(buffer)`). */
18
+ bytes(): Uint8Array;
19
+ }
20
+ /** Options for TurnAudioData. */
21
+ export interface TurnAudioDataOptions {
22
+ /** The turn this audio belongs to. */
23
+ turnNumber: number;
24
+ /**
25
+ * Everything the speaker said during the turn, as raw PCM, with the pauses
26
+ * between their runs of speech left out.
27
+ */
28
+ audio: Uint8Array;
29
+ /** Sample rate of the audio in Hz. */
30
+ sampleRate: number;
31
+ /** Number of channels in the audio. */
32
+ numChannels: number;
33
+ }
34
+ /**
35
+ * One speaker's audio for one conversation turn.
36
+ *
37
+ * - `turnNumber`: the turn this audio belongs to.
38
+ * - `audio`: everything the speaker said during the turn, as raw PCM, with
39
+ * the pauses between their runs of speech left out.
40
+ * - `sampleRate`: sample rate of the audio in Hz.
41
+ * - `numChannels`: number of channels in the audio.
42
+ */
43
+ export declare class TurnAudioData {
44
+ turnNumber: number;
45
+ audio: Uint8Array;
46
+ sampleRate: number;
47
+ numChannels: number;
48
+ constructor(options: TurnAudioDataOptions);
49
+ }
50
+ export interface AudioBufferProcessorOptions extends FrameProcessorOptions {
51
+ /** Desired output sample rate. If null, uses source rate. */
52
+ sampleRate?: number | null;
53
+ /** Number of channels (1 for mono, 2 for stereo). Defaults to 1. */
54
+ numChannels?: number;
55
+ /** Size of buffer before triggering events. 0 for no buffering. */
56
+ bufferSize?: number;
57
+ /** Whether turn audio event handlers should be triggered. */
58
+ enableTurnAudio?: boolean;
59
+ /**
60
+ * Whether to start recording automatically when the pipeline starts,
61
+ * without requiring a call to `startRecording()` or an
62
+ * `AudioBufferStartRecordingFrame`.
63
+ */
64
+ autoStartRecording?: boolean;
65
+ }
66
+ /**
67
+ * Processes and buffers audio frames from both input (user) and output (bot)
68
+ * sources.
69
+ *
70
+ * This processor manages audio buffering and synchronization, providing both
71
+ * merged and track-specific audio access through event handlers. It supports
72
+ * various audio configurations including sample rate conversion and
73
+ * mono/stereo output.
74
+ *
75
+ * Events:
76
+ *
77
+ * - on_audio_data: triggered when bufferSize is reached, providing merged audio
78
+ * - on_track_audio_data: triggered when bufferSize is reached, providing
79
+ * separate tracks
80
+ * - on_user_turn_audio: triggered when a turn ends, providing a
81
+ * TurnAudioData with everything the user said during it
82
+ * - on_bot_turn_audio: triggered when a turn ends, providing a TurnAudioData
83
+ * with everything the bot said during it
84
+ * - on_recording_started: triggered when recording starts (state transitions
85
+ * to active)
86
+ * - on_recording_stopped: triggered after recording stops and the final audio
87
+ * has been emitted
88
+ *
89
+ * Audio handling:
90
+ *
91
+ * - Mono output (numChannels=1): user and bot audio are mixed
92
+ * - Stereo output (numChannels=2): user audio on left, bot audio on right
93
+ * - Automatic resampling of incoming audio to match desired sampleRate
94
+ * - Silence insertion for non-continuous audio streams
95
+ * - Buffer synchronization between user and bot audio
96
+ */
97
+ export declare class AudioBufferProcessor extends FrameProcessor {
98
+ protected _initSampleRate: number | null;
99
+ protected _sampleRate: number;
100
+ protected _audioBufferSize1s: number;
101
+ protected _numChannels: number;
102
+ protected _bufferSize: number;
103
+ protected _enableTurnAudio: boolean;
104
+ protected _autoStartRecording: boolean;
105
+ protected _userAudioBuffer: ByteBuffer;
106
+ protected _botAudioBuffer: ByteBuffer;
107
+ protected _userSpeaking: boolean;
108
+ protected _botSpeaking: boolean;
109
+ protected _userTurnAudioBuffer: ByteBuffer;
110
+ protected _botTurnAudioBuffer: ByteBuffer;
111
+ protected _userTurnAudio: ByteBuffer;
112
+ protected _botTurnAudio: ByteBuffer;
113
+ protected _turnTrackerAttached: boolean;
114
+ protected _recording: boolean;
115
+ protected _inputResampler: BaseAudioResampler;
116
+ protected _outputResampler: BaseAudioResampler;
117
+ protected _lastUserBufferUpdateTime: number | null;
118
+ protected _lastBotBufferUpdateTime: number | null;
119
+ /**
120
+ * Initialize the audio buffer processor.
121
+ *
122
+ * @param options.sampleRate Desired output sample rate. If null, uses
123
+ * source rate.
124
+ * @param options.numChannels Number of channels (1 for mono, 2 for stereo).
125
+ * Defaults to 1.
126
+ * @param options.bufferSize Size of buffer before triggering events. 0 for
127
+ * no buffering.
128
+ * @param options.enableTurnAudio Whether turn audio event handlers should
129
+ * be triggered.
130
+ * @param options.autoStartRecording Whether to start recording
131
+ * automatically when the pipeline starts, without requiring a call to
132
+ * `startRecording()` or an `AudioBufferStartRecordingFrame`. Other options
133
+ * are passed to the parent class.
134
+ */
135
+ constructor(options?: AudioBufferProcessorOptions);
136
+ /** Current sample rate of the audio processor, in Hz. */
137
+ get sampleRate(): number;
138
+ /** Number of channels in the audio output (1 for mono, 2 for stereo). */
139
+ get numChannels(): number;
140
+ /**
141
+ * Check if either user or bot audio buffers contain data.
142
+ *
143
+ * @returns True if either buffer contains audio data.
144
+ */
145
+ hasAudio(): boolean;
146
+ /**
147
+ * Merge user and bot audio buffers into a single audio stream.
148
+ *
149
+ * For mono output, audio is mixed. For stereo output, user audio is placed
150
+ * on the left channel and bot audio on the right channel.
151
+ *
152
+ * @returns Mixed audio data as bytes.
153
+ */
154
+ mergeAudioBuffers(): Uint8Array;
155
+ /**
156
+ * Set up the processor.
157
+ *
158
+ * @param setup Configuration object containing setup parameters.
159
+ */
160
+ setup(setup: FrameProcessorSetup): Promise<void>;
161
+ /**
162
+ * Start recording audio from both user and bot.
163
+ *
164
+ * Initializes recording state, resets audio buffers and triggers the
165
+ * `on_recording_started` event. Does nothing when recording is already
166
+ * active.
167
+ */
168
+ startRecording(): Promise<void>;
169
+ /**
170
+ * Stop recording and trigger final audio data handlers.
171
+ *
172
+ * Calls audio handlers with any remaining buffered audio before stopping,
173
+ * then triggers the `on_recording_stopped` event. Does nothing when
174
+ * recording is not active.
175
+ */
176
+ stopRecording(): Promise<void>;
177
+ /**
178
+ * Process incoming audio frames and manage audio buffers.
179
+ *
180
+ * @param frame The frame to process.
181
+ * @param direction The direction of frame flow in the pipeline.
182
+ */
183
+ processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
184
+ /** Process audio frames for recording. */
185
+ protected _processRecording(frame: Frame): Promise<void>;
186
+ /**
187
+ * Pad buffer with silence if it's behind the target position.
188
+ *
189
+ * This ensures both buffers stay synchronized by padding the lagging
190
+ * buffer before new audio is added to the other buffer.
191
+ *
192
+ * @param buffer The buffer to potentially pad.
193
+ * @param targetPosition The position (in bytes) the buffer should reach.
194
+ */
195
+ protected _syncBufferToPosition(buffer: ByteBuffer, targetPosition: number): void;
196
+ /**
197
+ * Insert silence into a buffer when a wall-clock gap is detected.
198
+ *
199
+ * Called before adding new audio to a buffer. Compares the elapsed
200
+ * wall-clock time since the buffer was last written against the duration
201
+ * of the incoming frame. Any excess time (e.g., a muted mic or an idle
202
+ * period between bot utterances) is filled with silence so the recorded
203
+ * utterances remain temporally separated.
204
+ *
205
+ * @param buffer The audio buffer to pad (user or bot).
206
+ * @param lastUpdateTime Monotonic time of the last write to this buffer, or
207
+ * null if the buffer has never been written.
208
+ * @param now Current monotonic time.
209
+ * @param frameBytes Byte length of the incoming (resampled) audio frame.
210
+ */
211
+ protected _fillBufferSilenceGap(buffer: ByteBuffer, lastUpdateTime: number | null, now: number, frameBytes: number): void;
212
+ /** Process frames for turn-based audio recording. */
213
+ protected _processTurnRecording(frame: Frame, resampledAudio?: Uint8Array | null): Promise<void>;
214
+ /** Emit turn audio when the pipeline's turn tracker ends a turn. */
215
+ protected _attachTurnTracker(): void;
216
+ /** Fold the user's finished run of speech into the current turn. */
217
+ protected _endUserRun(): void;
218
+ /** Fold the bot's finished run of speech into the current turn. */
219
+ protected _endBotRun(): void;
220
+ /** Report each speaker's audio for a turn that just ended. */
221
+ protected _emitTurnAudio(turnNumber: number): Promise<void>;
222
+ /** Call the audio data event handlers with buffered audio. */
223
+ protected _callOnAudioDataHandler(): Promise<void>;
224
+ /** Check if a buffer contains audio data. */
225
+ protected _bufferHasAudio(buffer: ByteBuffer | null): boolean;
226
+ /** Reset recording state and buffers. */
227
+ protected _resetRecording(clearTurnAudio?: boolean): void;
228
+ /** Reset all audio buffers to empty state. */
229
+ protected _resetAllAudioBuffers(clearTurnAudio?: boolean): void;
230
+ /** Clear user and bot buffers while preserving turn buffers and timestamps. */
231
+ protected _resetPrimaryAudioBuffers(): void;
232
+ /** Clear user and bot turn buffers while preserving primary buffers and timestamps. */
233
+ protected _resetTurnAudioBuffers(): void;
234
+ /** Pad the shorter track with silence so both tracks stay in sync. */
235
+ protected _alignTrackBuffers(): void;
236
+ /** Resample audio frame to the target sample rate. */
237
+ protected _resampleInputAudio(frame: InputAudioRawFrame): Promise<Uint8Array>;
238
+ /** Resample audio frame to the target sample rate. */
239
+ protected _resampleOutputAudio(frame: OutputAudioRawFrame): Promise<Uint8Array>;
240
+ }
241
+ //# sourceMappingURL=audio_buffer_processor.d.ts.map