@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,95 @@
1
+ /** Version triple reported by the Krisp SDK. */
2
+ export interface KrispSdkVersion {
3
+ major: number;
4
+ minor: number;
5
+ patch: number;
6
+ }
7
+ /** The subset of the `krisp_audio` SDK surface this module uses. */
8
+ export interface KrispAudioSdk {
9
+ SamplingRate: Record<string, unknown>;
10
+ FrameDuration: Record<string, unknown>;
11
+ LogLevel: {
12
+ Off: unknown;
13
+ } & Record<string, unknown>;
14
+ getVersion(): KrispSdkVersion;
15
+ globalInit(...args: unknown[]): void;
16
+ }
17
+ /**
18
+ * Install the Krisp SDK binding used by this module.
19
+ *
20
+ * STUB SUPPORT: there is no bundled binding; until one is installed every
21
+ * SDK call throws.
22
+ */
23
+ export declare function setKrispAudioSdk(sdk: KrispAudioSdk): void;
24
+ export declare const KRISP_SAMPLE_RATES: ReadonlyMap<number, unknown>;
25
+ export declare const KRISP_FRAME_DURATIONS: ReadonlyMap<number, unknown>;
26
+ /**
27
+ * Convert integer sample rate to Krisp SDK enum value.
28
+ *
29
+ * @param sampleRate Sample rate in Hz (e.g., 16000, 24000, 48000).
30
+ * @returns Corresponding Krisp SDK SampleRate enum value.
31
+ * @throws Error if the sample rate is not supported by Krisp SDK.
32
+ */
33
+ export declare function intToKrispSampleRate(sampleRate: number): unknown;
34
+ /**
35
+ * Convert integer frame duration to Krisp SDK enum value.
36
+ *
37
+ * @param frameDurationMs Frame duration in milliseconds (e.g., 10, 20, 30).
38
+ * @returns Corresponding Krisp SDK FrameDuration enum value.
39
+ * @throws Error if the frame duration is not supported by Krisp SDK.
40
+ */
41
+ export declare function intToKrispFrameDuration(frameDurationMs: number): unknown;
42
+ /** Whether the installed krisp_audio build uses nanobind bindings (>= 1.11.0). */
43
+ export declare function krispSdkUsesNanobindBindings(): boolean;
44
+ /**
45
+ * Singleton manager for Krisp VIVA SDK with reference counting.
46
+ *
47
+ * The SDK's global state is shared by every Krisp session in the process, so
48
+ * it is initialized once, on first use, and left up for the life of the
49
+ * process: destroying it while any session is still alive leaves that session
50
+ * reading freed memory, and there is no point in the process where every
51
+ * session is known to be gone. The reference count tracks how many components
52
+ * hold the SDK; it does not decide when to tear it down.
53
+ *
54
+ * (Upstream guards the state with a threading lock; JavaScript runs these
55
+ * synchronous methods atomically, so no lock is needed.)
56
+ */
57
+ export declare class KrispVivaSDKManager {
58
+ protected static _initialized: boolean;
59
+ protected static _referenceCount: number;
60
+ /** Callback for Krisp SDK licensing errors. */
61
+ protected static _licenseCallback(error: unknown, errorMessage: unknown): void;
62
+ /** Callback for Krisp SDK logging. */
63
+ protected static _logCallback(logMessage: unknown, logLevel: unknown): void;
64
+ /**
65
+ * Acquire a reference to the SDK (initializes if needed).
66
+ *
67
+ * Call this before creating Krisp sessions.
68
+ *
69
+ * @param apiKey Krisp SDK API key. If empty, falls back to the
70
+ * KRISP_VIVA_API_KEY environment variable. Only the key of the caller that
71
+ * initializes the SDK is used.
72
+ * @throws If SDK initialization fails (propagated from krisp_audio).
73
+ */
74
+ static acquire(apiKey?: string): void;
75
+ /**
76
+ * Release a reference to the SDK.
77
+ *
78
+ * Call this once the caller's Krisp sessions are gone. Releasing the last
79
+ * reference does not tear the SDK down; see the class docs.
80
+ */
81
+ static release(): void;
82
+ /**
83
+ * Get the current reference count.
84
+ *
85
+ * @returns Current number of active references to the SDK.
86
+ */
87
+ static getReferenceCount(): number;
88
+ /**
89
+ * Check if the SDK is currently initialized.
90
+ *
91
+ * @returns True if SDK is initialized, false otherwise.
92
+ */
93
+ static isInitialized(): boolean;
94
+ }
95
+ //# sourceMappingURL=krisp_instance.d.ts.map
@@ -0,0 +1,229 @@
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/audio/krisp_instance.py
6
+ /**
7
+ * Krisp Instance manager for pipecat audio.
8
+ *
9
+ * PORTING NOTE: the Krisp VIVA SDK (`krisp_audio`) has no edge-compatible
10
+ * JavaScript binding. The module's logic is ported against the
11
+ * `KrispAudioSdk` interface below, but the default SDK is a stub whose calls
12
+ * throw "not ported yet". A runtime-specific package can provide the real
13
+ * binding with `setKrispAudioSdk()`.
14
+ */
15
+ import { logger } from "../utils/logger.js";
16
+ function notPorted() {
17
+ throw new Error("krisp_audio is not ported yet");
18
+ }
19
+ // Placeholder SDK: the enum members are their own names, every call throws.
20
+ const STUB_KRISP_AUDIO = {
21
+ SamplingRate: {
22
+ Sr8000Hz: "Sr8000Hz",
23
+ Sr16000Hz: "Sr16000Hz",
24
+ Sr24000Hz: "Sr24000Hz",
25
+ Sr32000Hz: "Sr32000Hz",
26
+ Sr44100Hz: "Sr44100Hz",
27
+ Sr48000Hz: "Sr48000Hz",
28
+ },
29
+ FrameDuration: {
30
+ Fd10ms: "Fd10ms",
31
+ Fd15ms: "Fd15ms",
32
+ Fd20ms: "Fd20ms",
33
+ Fd30ms: "Fd30ms",
34
+ Fd32ms: "Fd32ms",
35
+ },
36
+ LogLevel: { Off: "Off" },
37
+ getVersion: notPorted,
38
+ globalInit: notPorted,
39
+ };
40
+ let krispAudio = STUB_KRISP_AUDIO;
41
+ // Krisp SDK SamplingRate enum member for each sample rate (Hz)
42
+ const SAMPLE_RATE_MEMBERS = [
43
+ [8000, "Sr8000Hz"],
44
+ [16000, "Sr16000Hz"],
45
+ [24000, "Sr24000Hz"],
46
+ [32000, "Sr32000Hz"],
47
+ [44100, "Sr44100Hz"],
48
+ [48000, "Sr48000Hz"],
49
+ ];
50
+ // Krisp SDK FrameDuration enum member for each frame duration (ms)
51
+ const FRAME_DURATION_MEMBERS = [
52
+ [10, "Fd10ms"],
53
+ [15, "Fd15ms"],
54
+ [20, "Fd20ms"],
55
+ [30, "Fd30ms"],
56
+ [32, "Fd32ms"],
57
+ ];
58
+ const sampleRates = new Map();
59
+ const frameDurations = new Map();
60
+ // Upstream builds these maps from the krisp_audio enums at import time; here
61
+ // they are rebuilt whenever an SDK binding is installed.
62
+ function buildKrispMaps() {
63
+ sampleRates.clear();
64
+ for (const [rate, member] of SAMPLE_RATE_MEMBERS) {
65
+ sampleRates.set(rate, krispAudio.SamplingRate[member]);
66
+ }
67
+ frameDurations.clear();
68
+ for (const [duration, member] of FRAME_DURATION_MEMBERS) {
69
+ frameDurations.set(duration, krispAudio.FrameDuration[member]);
70
+ }
71
+ }
72
+ buildKrispMaps();
73
+ /**
74
+ * Install the Krisp SDK binding used by this module.
75
+ *
76
+ * STUB SUPPORT: there is no bundled binding; until one is installed every
77
+ * SDK call throws.
78
+ */
79
+ export function setKrispAudioSdk(sdk) {
80
+ krispAudio = sdk;
81
+ buildKrispMaps();
82
+ }
83
+ // Mapping of sample rates (Hz) to Krisp SDK SamplingRate enums
84
+ export const KRISP_SAMPLE_RATES = sampleRates;
85
+ // Mapping of frame durations (ms) to Krisp SDK FrameDuration enums
86
+ export const KRISP_FRAME_DURATIONS = frameDurations;
87
+ /**
88
+ * Convert integer sample rate to Krisp SDK enum value.
89
+ *
90
+ * @param sampleRate Sample rate in Hz (e.g., 16000, 24000, 48000).
91
+ * @returns Corresponding Krisp SDK SampleRate enum value.
92
+ * @throws Error if the sample rate is not supported by Krisp SDK.
93
+ */
94
+ export function intToKrispSampleRate(sampleRate) {
95
+ if (!KRISP_SAMPLE_RATES.has(sampleRate)) {
96
+ const supportedRates = [...KRISP_SAMPLE_RATES.keys()].sort((a, b) => a - b).join(", ");
97
+ throw new Error(`Unsupported sample rate: ${sampleRate} Hz. Supported rates: ${supportedRates} Hz`);
98
+ }
99
+ return KRISP_SAMPLE_RATES.get(sampleRate);
100
+ }
101
+ /**
102
+ * Convert integer frame duration to Krisp SDK enum value.
103
+ *
104
+ * @param frameDurationMs Frame duration in milliseconds (e.g., 10, 20, 30).
105
+ * @returns Corresponding Krisp SDK FrameDuration enum value.
106
+ * @throws Error if the frame duration is not supported by Krisp SDK.
107
+ */
108
+ export function intToKrispFrameDuration(frameDurationMs) {
109
+ if (!KRISP_FRAME_DURATIONS.has(frameDurationMs)) {
110
+ const supportedDurations = [...KRISP_FRAME_DURATIONS.keys()].sort((a, b) => a - b).join(", ");
111
+ throw new Error(`Unsupported frame duration: ${frameDurationMs} ms. ` +
112
+ `Supported durations: ${supportedDurations} ms`);
113
+ }
114
+ return KRISP_FRAME_DURATIONS.get(frameDurationMs);
115
+ }
116
+ // Krisp SDK switched its Python bindings from pybind11 to nanobind starting in
117
+ // 1.11.0. Among other things, this changed the noise suppression level
118
+ // argument from int to float and requires writable (not just readable) ndarray
119
+ // input.
120
+ const NANOBIND_SDK_VERSION = [1, 11, 0];
121
+ /** Whether the installed krisp_audio build uses nanobind bindings (>= 1.11.0). */
122
+ export function krispSdkUsesNanobindBindings() {
123
+ const version = krispAudio.getVersion();
124
+ const v = [version.major, version.minor, version.patch];
125
+ for (let i = 0; i < 3; i++) {
126
+ if (v[i] !== NANOBIND_SDK_VERSION[i]) {
127
+ return v[i] > NANOBIND_SDK_VERSION[i];
128
+ }
129
+ }
130
+ return true;
131
+ }
132
+ function getEnv(name) {
133
+ return globalThis.process?.env?.[name];
134
+ }
135
+ /**
136
+ * Singleton manager for Krisp VIVA SDK with reference counting.
137
+ *
138
+ * The SDK's global state is shared by every Krisp session in the process, so
139
+ * it is initialized once, on first use, and left up for the life of the
140
+ * process: destroying it while any session is still alive leaves that session
141
+ * reading freed memory, and there is no point in the process where every
142
+ * session is known to be gone. The reference count tracks how many components
143
+ * hold the SDK; it does not decide when to tear it down.
144
+ *
145
+ * (Upstream guards the state with a threading lock; JavaScript runs these
146
+ * synchronous methods atomically, so no lock is needed.)
147
+ */
148
+ export class KrispVivaSDKManager {
149
+ static _initialized = false;
150
+ static _referenceCount = 0;
151
+ /** Callback for Krisp SDK licensing errors. */
152
+ static _licenseCallback(error, errorMessage) {
153
+ logger.error(`Krisp licensing error: ${error} - ${errorMessage}`);
154
+ }
155
+ /** Callback for Krisp SDK logging. */
156
+ static _logCallback(logMessage, logLevel) {
157
+ logger.info(`[${logLevel}] ${logMessage}`);
158
+ }
159
+ /**
160
+ * Acquire a reference to the SDK (initializes if needed).
161
+ *
162
+ * Call this before creating Krisp sessions.
163
+ *
164
+ * @param apiKey Krisp SDK API key. If empty, falls back to the
165
+ * KRISP_VIVA_API_KEY environment variable. Only the key of the caller that
166
+ * initializes the SDK is used.
167
+ * @throws If SDK initialization fails (propagated from krisp_audio).
168
+ */
169
+ static acquire(apiKey = "") {
170
+ // Initialize the SDK once per process.
171
+ if (!KrispVivaSDKManager._initialized) {
172
+ try {
173
+ const key = apiKey || getEnv("KRISP_VIVA_API_KEY") || "";
174
+ try {
175
+ // New SDK signature (requires license key)
176
+ krispAudio.globalInit("", key, KrispVivaSDKManager._licenseCallback, KrispVivaSDKManager._logCallback, krispAudio.LogLevel.Off);
177
+ }
178
+ catch (e) {
179
+ if (!(e instanceof TypeError))
180
+ throw e;
181
+ // Old SDK signature (no license key)
182
+ krispAudio.globalInit("", KrispVivaSDKManager._logCallback, krispAudio.LogLevel.Off);
183
+ }
184
+ }
185
+ catch (e) {
186
+ logger.error(`Krisp SDK initialization failed: ${e}`);
187
+ throw e;
188
+ }
189
+ // Set before anything else that could fail: a flag that claims the SDK
190
+ // is down while it is up would let a second globalInit() re-seat global
191
+ // state that live sessions still point at.
192
+ KrispVivaSDKManager._initialized = true;
193
+ const SDK_VERSION = krispAudio.getVersion();
194
+ logger.debug(`Krisp Audio Python SDK initialized - Version: ` +
195
+ `${SDK_VERSION.major}.${SDK_VERSION.minor}.${SDK_VERSION.patch}`);
196
+ }
197
+ KrispVivaSDKManager._referenceCount += 1;
198
+ logger.debug(`Krisp SDK reference count: ${KrispVivaSDKManager._referenceCount}`);
199
+ }
200
+ /**
201
+ * Release a reference to the SDK.
202
+ *
203
+ * Call this once the caller's Krisp sessions are gone. Releasing the last
204
+ * reference does not tear the SDK down; see the class docs.
205
+ */
206
+ static release() {
207
+ if (KrispVivaSDKManager._referenceCount > 0) {
208
+ KrispVivaSDKManager._referenceCount -= 1;
209
+ logger.debug(`Krisp SDK reference count: ${KrispVivaSDKManager._referenceCount}`);
210
+ }
211
+ }
212
+ /**
213
+ * Get the current reference count.
214
+ *
215
+ * @returns Current number of active references to the SDK.
216
+ */
217
+ static getReferenceCount() {
218
+ return KrispVivaSDKManager._referenceCount;
219
+ }
220
+ /**
221
+ * Check if the SDK is currently initialized.
222
+ *
223
+ * @returns True if SDK is initialized, false otherwise.
224
+ */
225
+ static isInitialized() {
226
+ return KrispVivaSDKManager._initialized;
227
+ }
228
+ }
229
+ //# sourceMappingURL=krisp_instance.js.map
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Base audio mixer for output transport integration.
3
+ *
4
+ * Provides the abstract base class for audio mixers that can be integrated
5
+ * with output transports to mix incoming audio with generated audio from the
6
+ * mixer.
7
+ */
8
+ import type { MixerControlFrame } from "../../frames/frames.ts";
9
+ /**
10
+ * Base class for output transport audio mixers.
11
+ *
12
+ * If an audio mixer is provided to the output transport it will be used to
13
+ * mix the audio frames coming into to the transport with the audio generated
14
+ * from the mixer. There are control frames to update mixer settings or to
15
+ * enable or disable the mixer at runtime.
16
+ */
17
+ export declare abstract class BaseAudioMixer {
18
+ /**
19
+ * Initialize the mixer when the output transport starts.
20
+ *
21
+ * This will be called from the output transport when the transport is
22
+ * started. It can be used to initialize the mixer. The output transport
23
+ * sample rate is provided so the mixer can adjust to that sample rate.
24
+ *
25
+ * @param sampleRate The sample rate of the output transport in Hz.
26
+ */
27
+ abstract start(sampleRate: number): Promise<void>;
28
+ /**
29
+ * Clean up the mixer when the output transport stops.
30
+ *
31
+ * This will be called from the output transport when the transport is
32
+ * stopping.
33
+ */
34
+ abstract stop(): Promise<void>;
35
+ /**
36
+ * Process mixer control frames from the transport.
37
+ *
38
+ * This will be called when the output transport receives a
39
+ * MixerControlFrame.
40
+ *
41
+ * @param frame The mixer control frame to process.
42
+ */
43
+ abstract processFrame(frame: MixerControlFrame): Promise<void>;
44
+ /**
45
+ * Mix transport audio with mixer-generated audio.
46
+ *
47
+ * This is called with the audio that is about to be sent from the output
48
+ * transport and that should be mixed with the mixer audio if the mixer is
49
+ * enabled.
50
+ *
51
+ * @param audio Raw audio bytes from the transport to mix.
52
+ * @returns Mixed audio bytes combining transport and mixer audio.
53
+ */
54
+ abstract mix(audio: Uint8Array): Promise<Uint8Array>;
55
+ }
56
+ //# sourceMappingURL=base_audio_mixer.d.ts.map
@@ -0,0 +1,16 @@
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/audio/mixers/base_audio_mixer.py
6
+ /**
7
+ * Base class for output transport audio mixers.
8
+ *
9
+ * If an audio mixer is provided to the output transport it will be used to
10
+ * mix the audio frames coming into to the transport with the audio generated
11
+ * from the mixer. There are control frames to update mixer settings or to
12
+ * enable or disable the mixer at runtime.
13
+ */
14
+ export class BaseAudioMixer {
15
+ }
16
+ //# sourceMappingURL=base_audio_mixer.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/audio/mixers/__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,46 @@
1
+ /**
2
+ * Base audio resampler interface for Pipecat.
3
+ *
4
+ * Defines the abstract base class for audio resampling implementations,
5
+ * providing a common interface for converting audio between different sample
6
+ * rates.
7
+ */
8
+ /** SOXR resampling quality presets, from fastest (QQ) to highest quality (VHQ). */
9
+ export type SoxrQuality = "QQ" | "LQ" | "MQ" | "HQ" | "VHQ";
10
+ /**
11
+ * Abstract base class for audio resampling implementations.
12
+ *
13
+ * Defines the interface that all audio resampling implementations must
14
+ * follow, providing a standardized way to convert audio data between
15
+ * different sample rates.
16
+ */
17
+ export declare abstract class BaseAudioResampler {
18
+ /**
19
+ * Resamples the given audio data to a different sample rate.
20
+ *
21
+ * @param audio The audio data to be resampled, as raw bytes.
22
+ * @param inRate The original sample rate of the audio data in Hz.
23
+ * @param outRate The desired sample rate for the output audio in Hz.
24
+ * @returns The resampled audio data as raw bytes.
25
+ */
26
+ abstract resample(audio: Uint8Array, inRate: number, outRate: number): Promise<Uint8Array>;
27
+ /**
28
+ * Emit any audio still held internally and reset the resampler.
29
+ *
30
+ * Streaming resamplers keep recently seen input in their filter, so the
31
+ * tail of a stream is only emitted once more audio arrives. Call this at
32
+ * the end of a continuous stream to collect that tail and start clean.
33
+ *
34
+ * @returns The remaining resampled audio as raw bytes, empty if the
35
+ * resampler holds nothing.
36
+ */
37
+ flush(): Promise<Uint8Array>;
38
+ /**
39
+ * Discard any audio still held internally and reset the resampler.
40
+ *
41
+ * Use this when a stream is abandoned rather than finished (e.g. after an
42
+ * interruption), so its leftover tail doesn't leak into the next stream.
43
+ */
44
+ reset(): Promise<void>;
45
+ }
46
+ //# sourceMappingURL=base_audio_resampler.d.ts.map
@@ -0,0 +1,35 @@
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/audio/resamplers/base_audio_resampler.py
6
+ /**
7
+ * Abstract base class for audio resampling implementations.
8
+ *
9
+ * Defines the interface that all audio resampling implementations must
10
+ * follow, providing a standardized way to convert audio data between
11
+ * different sample rates.
12
+ */
13
+ export class BaseAudioResampler {
14
+ /**
15
+ * Emit any audio still held internally and reset the resampler.
16
+ *
17
+ * Streaming resamplers keep recently seen input in their filter, so the
18
+ * tail of a stream is only emitted once more audio arrives. Call this at
19
+ * the end of a continuous stream to collect that tail and start clean.
20
+ *
21
+ * @returns The remaining resampled audio as raw bytes, empty if the
22
+ * resampler holds nothing.
23
+ */
24
+ async flush() {
25
+ return new Uint8Array(0);
26
+ }
27
+ /**
28
+ * Discard any audio still held internally and reset the resampler.
29
+ *
30
+ * Use this when a stream is abandoned rather than finished (e.g. after an
31
+ * interruption), so its leftover tail doesn't leak into the next stream.
32
+ */
33
+ async reset() { }
34
+ }
35
+ //# sourceMappingURL=base_audio_resampler.js.map
@@ -0,0 +1,60 @@
1
+ import type { SoxrQuality } from "./base_audio_resampler.ts";
2
+ /** Options of a streaming resampler (as `soxr.ResampleStream(...)`). */
3
+ export interface ResamplerStreamOptions {
4
+ inRate: number;
5
+ outRate: number;
6
+ numChannels: number;
7
+ quality: SoxrQuality;
8
+ }
9
+ /** A stateful streaming resampler; stands in for `soxr.ResampleStream`. */
10
+ export interface ResamplerStream {
11
+ /**
12
+ * Resample a chunk of interleaved samples, keeping the filter history for
13
+ * the next chunk. With `last` the audio held in the filter is appended and
14
+ * the stream starts over.
15
+ */
16
+ resampleChunk<T extends Int16Array | Float32Array>(chunk: T, last?: boolean): T;
17
+ /** Discard the filter history (`soxr.ResampleStream.clear()`). */
18
+ clear(): void;
19
+ /** Free any native/WASM state. Optional. */
20
+ destroy?(): void;
21
+ }
22
+ /**
23
+ * A resampling engine. Structurally identical to what
24
+ * `createSoxrCompatibleEngine()` from `@pipedog/resampler-wasm` returns.
25
+ */
26
+ export interface ResamplerEngine {
27
+ /** Stands in for `soxr.resample(audio, in_rate, out_rate, quality=...)` (mono). */
28
+ resample<T extends Int16Array | Float32Array>(audio: T, inRate: number, outRate: number, quality: SoxrQuality): T;
29
+ /** Stands in for `soxr.ResampleStream(in_rate=, out_rate=, num_channels=, quality=)`. */
30
+ createStream(options: ResamplerStreamOptions): ResamplerStream;
31
+ }
32
+ type EngineLoader = () => Promise<ResamplerEngine>;
33
+ /**
34
+ * Install the engine every SOXR resampler uses from now on (streams already
35
+ * created keep theirs). Pass `null` to go back to the default
36
+ * (`@pipedog/resampler-wasm`, with the pure-TypeScript fallback).
37
+ */
38
+ export declare function setResamplerEngine(engine: ResamplerEngine | null): void;
39
+ /**
40
+ * The engine in use, loading the default one on first call.
41
+ *
42
+ * Resolves to the injected engine if there is one, else the WASM engine, else
43
+ * (after one warning) the pure-TypeScript fallback. Never rejects.
44
+ */
45
+ export declare function getResamplerEngine(): Promise<ResamplerEngine>;
46
+ /**
47
+ * The engine in use, without loading anything: the injected engine, else the
48
+ * default one if it has finished loading, else `null`. Lets synchronous code
49
+ * (e.g. `soxrResample`) use the engine once `getResamplerEngine()` resolved.
50
+ */
51
+ export declare function getLoadedResamplerEngine(): ResamplerEngine | null;
52
+ /**
53
+ * Replace how the default engine is loaded and forget the loaded one. For
54
+ * tests (e.g. simulating a WASM load failure).
55
+ *
56
+ * @internal
57
+ */
58
+ export declare function _resetResamplerEngineForTests(loader?: EngineLoader): void;
59
+ export {};
60
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1,89 @@
1
+ // Copyright (c) 2026, pipedog contributors
2
+ // SPDX-License-Identifier: BSD-2-Clause
3
+ /**
4
+ * The resampling engine behind `SOXRAudioResampler` and
5
+ * `SOXRStreamAudioResampler`.
6
+ *
7
+ * Upstream calls python-soxr (`soxr.resample()` and `soxr.ResampleStream`).
8
+ * Here those calls go through a small engine interface, so the actual
9
+ * implementation can be swapped:
10
+ *
11
+ * - By default the engine is `@pipedog/resampler-wasm` (rubato windowed sinc
12
+ * compiled to WebAssembly), loaded lazily on first use. On Cloudflare
13
+ * Workers the package's "workerd" export condition imports the `.wasm` as a
14
+ * module (workerd forbids compiling WASM from bytes); elsewhere it is
15
+ * fetched/read next to the package and instantiated asynchronously.
16
+ * - If the WASM engine cannot be loaded, core logs one warning and falls back
17
+ * to a pure-TypeScript windowed-sinc engine (`sinc_engine.ts`).
18
+ * - Applications can inject their own engine (for example a native libsoxr
19
+ * binding) with `setResamplerEngine()`.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { setResamplerEngine } from "@pipedog/core/audio/resamplers/engine";
24
+ * setResamplerEngine(myNativeSoxrEngine);
25
+ * ```
26
+ */
27
+ import { logger } from "../../utils/logger.js";
28
+ import { createSincResamplerEngine } from "./sinc_engine.js";
29
+ /** Load `@pipedog/resampler-wasm` and wrap it in the soxr-shaped interface. */
30
+ async function loadWasmEngine() {
31
+ const wasm = await import("@pipedog/resampler-wasm");
32
+ return wasm.createSoxrCompatibleEngine(await wasm.initResampler());
33
+ }
34
+ let injected = null;
35
+ let loaded = null;
36
+ let loading = null;
37
+ let defaultLoader = loadWasmEngine;
38
+ /**
39
+ * Install the engine every SOXR resampler uses from now on (streams already
40
+ * created keep theirs). Pass `null` to go back to the default
41
+ * (`@pipedog/resampler-wasm`, with the pure-TypeScript fallback).
42
+ */
43
+ export function setResamplerEngine(engine) {
44
+ injected = engine;
45
+ }
46
+ /**
47
+ * The engine in use, loading the default one on first call.
48
+ *
49
+ * Resolves to the injected engine if there is one, else the WASM engine, else
50
+ * (after one warning) the pure-TypeScript fallback. Never rejects.
51
+ */
52
+ export async function getResamplerEngine() {
53
+ if (injected)
54
+ return injected;
55
+ if (loaded)
56
+ return loaded;
57
+ loading ??= defaultLoader().then((engine) => {
58
+ loaded = engine;
59
+ return engine;
60
+ }, (e) => {
61
+ const reason = e instanceof Error ? e.message : String(e);
62
+ logger.warning(`Could not load the WASM resampler (@pipedog/resampler-wasm): ${reason}. ` +
63
+ "Falling back to the pure-TypeScript windowed-sinc resampler (lower quality, slower).");
64
+ loaded = createSincResamplerEngine();
65
+ return loaded;
66
+ });
67
+ return injected ?? (await loading);
68
+ }
69
+ /**
70
+ * The engine in use, without loading anything: the injected engine, else the
71
+ * default one if it has finished loading, else `null`. Lets synchronous code
72
+ * (e.g. `soxrResample`) use the engine once `getResamplerEngine()` resolved.
73
+ */
74
+ export function getLoadedResamplerEngine() {
75
+ return injected ?? loaded;
76
+ }
77
+ /**
78
+ * Replace how the default engine is loaded and forget the loaded one. For
79
+ * tests (e.g. simulating a WASM load failure).
80
+ *
81
+ * @internal
82
+ */
83
+ export function _resetResamplerEngineForTests(loader = loadWasmEngine) {
84
+ injected = null;
85
+ loaded = null;
86
+ loading = null;
87
+ defaultLoader = loader;
88
+ }
89
+ //# sourceMappingURL=engine.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/audio/resamplers/__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,10 @@
1
+ /**
2
+ * Resampy-based audio resampler implementation.
3
+ *
4
+ * PORTING NOTE: upstream's only export, `ResampyResampler`, is deprecated
5
+ * (since 1.2.0, removed in 2.0.0) and is not ported. Use
6
+ * `SOXRAudioResampler`, `createFileResampler()` or `createStreamResampler()`
7
+ * instead.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=resampy_resampler.d.ts.map