@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,437 @@
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/services/settings.py
6
+ import { logger } from "../utils/logger.js";
7
+ import { isGiven, NOT_GIVEN } from "../utils/types.js";
8
+ // In a settings object `NOT_GIVEN` means "this field was not included in the
9
+ // delta": distinct from `null`, which is a valid stored value typically meaning
10
+ // "this service doesn't support this field". Every delta field defaults to it so
11
+ // deltas stay sparse and `applyUpdate` can skip untouched fields. It must
12
+ // never appear in a store-mode object — see `validateComplete()`.
13
+ /** Convert a snake_case key to camelCase (`voice_id` → `voiceId`). */
14
+ function snakeToCamel(key) {
15
+ return key.replace(/_([a-z0-9])/g, (_, c) => c.toUpperCase());
16
+ }
17
+ /**
18
+ * Python `==` for settings values: structural equality for arrays, plain
19
+ * objects and class instances (dataclasses compare field by field).
20
+ */
21
+ export function settingsValuesEqual(a, b) {
22
+ if (a === b)
23
+ return true;
24
+ if (typeof a === "number" && typeof b === "number")
25
+ return a === b;
26
+ if (a === null || b === null || typeof a !== "object" || typeof b !== "object")
27
+ return false;
28
+ if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
29
+ return false;
30
+ if (Array.isArray(a)) {
31
+ const bb = b;
32
+ return a.length === bb.length && a.every((v, i) => settingsValuesEqual(v, bb[i]));
33
+ }
34
+ if (a instanceof Map) {
35
+ const bb = b;
36
+ if (a.size !== bb.size)
37
+ return false;
38
+ for (const [k, v] of a) {
39
+ if (!bb.has(k) || !settingsValuesEqual(v, bb.get(k)))
40
+ return false;
41
+ }
42
+ return true;
43
+ }
44
+ if (a instanceof Set) {
45
+ const bb = b;
46
+ return a.size === bb.size && [...a].every((v) => bb.has(v));
47
+ }
48
+ if (ArrayBuffer.isView(a)) {
49
+ const aa = a;
50
+ const bb = b;
51
+ if (aa.length !== bb.length)
52
+ return false;
53
+ for (let i = 0; i < aa.length; i++)
54
+ if (aa[i] !== bb[i])
55
+ return false;
56
+ return true;
57
+ }
58
+ if (a instanceof Date)
59
+ return a.getTime() === b.getTime();
60
+ const ka = Object.keys(a);
61
+ const kb = Object.keys(b);
62
+ if (ka.length !== kb.length)
63
+ return false;
64
+ const ra = a;
65
+ const rb = b;
66
+ return ka.every((k) => Object.hasOwn(rb, k) && settingsValuesEqual(ra[k], rb[k]));
67
+ }
68
+ /** `copy.deepcopy` for settings values. Keeps prototypes and the `NOT_GIVEN` singleton. */
69
+ function deepCopy(value, memo = new Map()) {
70
+ if (value === null || typeof value !== "object")
71
+ return value;
72
+ if (value === NOT_GIVEN)
73
+ return value;
74
+ if (memo.has(value))
75
+ return memo.get(value);
76
+ if (Array.isArray(value)) {
77
+ const out = [];
78
+ memo.set(value, out);
79
+ for (const v of value)
80
+ out.push(deepCopy(v, memo));
81
+ return out;
82
+ }
83
+ if (value instanceof Map) {
84
+ const out = new Map();
85
+ memo.set(value, out);
86
+ for (const [k, v] of value)
87
+ out.set(deepCopy(k, memo), deepCopy(v, memo));
88
+ return out;
89
+ }
90
+ if (value instanceof Set) {
91
+ const out = new Set();
92
+ memo.set(value, out);
93
+ for (const v of value)
94
+ out.add(deepCopy(v, memo));
95
+ return out;
96
+ }
97
+ if (value instanceof Date)
98
+ return new Date(value.getTime());
99
+ if (ArrayBuffer.isView(value)) {
100
+ return value.slice();
101
+ }
102
+ const out = Object.create(Object.getPrototypeOf(value));
103
+ memo.set(value, out);
104
+ for (const key of Object.keys(value)) {
105
+ out[key] = deepCopy(value[key], memo);
106
+ }
107
+ return out;
108
+ }
109
+ /**
110
+ * Base class for runtime-updatable service settings.
111
+ *
112
+ * These settings capture the subset of a service's configuration that can be
113
+ * changed **while the pipeline is running** (e.g. switching the model or
114
+ * changing the voice). They are *not* meant to capture every constructor
115
+ * parameter — only those that support live updates via
116
+ * `*UpdateSettingsFrame`.
117
+ *
118
+ * Every AI service type (LLM, TTS, STT) extends this with its own fields.
119
+ * Each instance operates in one of two modes (see module docs):
120
+ *
121
+ * - **Store mode** (`this._settings`): holds the full current state. Every
122
+ * field must be a real value — `NOT_GIVEN` is never valid. Use `null` for
123
+ * inherited fields the service doesn't support. Enforced at runtime by
124
+ * `validateComplete()`.
125
+ * - **Delta mode** (`*UpdateSettingsFrame`): a sparse update. Only fields the
126
+ * caller wants to change are set; all others stay at the default
127
+ * `NOT_GIVEN` and are skipped by `applyUpdate()`.
128
+ *
129
+ * - `model`: the model identifier used by the service. Set to `null` in
130
+ * store mode if the service has no model concept.
131
+ * - `extra`: overflow dict for service-specific keys that don't map to a
132
+ * declared field.
133
+ */
134
+ export class ServiceSettings {
135
+ // -- common fields -------------------------------------------------------
136
+ /**
137
+ * AI model identifier (e.g. `"gpt-4o"`, `"eleven_flash_v2_5"`).
138
+ *
139
+ * Defaults to `NOT_GIVEN` for delta mode. In store mode, set to a model
140
+ * string or `null` if the service has no model concept.
141
+ */
142
+ model = NOT_GIVEN;
143
+ /** Catch-all for service-specific keys that have no declared field. */
144
+ extra = {};
145
+ // -- class-level configuration -------------------------------------------
146
+ /**
147
+ * Map of alternative key names to canonical field names.
148
+ *
149
+ * For example `{ voice_id: "voice" }` lets callers use either spelling.
150
+ * Subclasses should override this as needed.
151
+ */
152
+ static _aliases = {};
153
+ constructor(options = {}) {
154
+ if (options.extra !== undefined)
155
+ this.extra = options.extra;
156
+ this._assignOptions(options);
157
+ }
158
+ /**
159
+ * Copy the given options onto the declared fields of this object. A key
160
+ * that is `undefined` leaves its field at `NOT_GIVEN`. Settings subclasses
161
+ * that declare fields call this at the end of their constructor (see the
162
+ * module docs).
163
+ */
164
+ _assignOptions(options) {
165
+ const self = this;
166
+ for (const [key, value] of Object.entries(options)) {
167
+ if (key === "extra" || value === undefined)
168
+ continue;
169
+ if (Object.hasOwn(this, key))
170
+ self[key] = value;
171
+ }
172
+ }
173
+ /** Names of the declared fields (`dataclasses.fields()`), without `extra`. */
174
+ _fieldNames() {
175
+ return Object.keys(this).filter((name) => name !== "extra");
176
+ }
177
+ // -- public API ----------------------------------------------------------
178
+ /**
179
+ * Return a dict of only the fields that are not `NOT_GIVEN`.
180
+ *
181
+ * Primarily useful for delta-mode objects to inspect which fields were set.
182
+ * For a store-mode object this returns all declared fields (since none
183
+ * should be `NOT_GIVEN`).
184
+ *
185
+ * Skips the `extra` field itself but merges its entries into the returned
186
+ * dict at the top level.
187
+ *
188
+ * @returns Dictionary mapping field names to their provided values.
189
+ */
190
+ givenFields() {
191
+ const result = {};
192
+ const self = this;
193
+ for (const name of this._fieldNames()) {
194
+ const val = self[name];
195
+ if (isGiven(val))
196
+ result[name] = val;
197
+ }
198
+ Object.assign(result, this.extra);
199
+ return result;
200
+ }
201
+ /**
202
+ * Merge a delta-mode object into this store-mode object.
203
+ *
204
+ * Only fields in `delta` that are **given** (i.e. not `NOT_GIVEN`) are
205
+ * considered. A field is "changed" if its new value differs from the
206
+ * current value.
207
+ *
208
+ * The `extra` dicts are merged: keys present in the delta overwrite keys in
209
+ * the target.
210
+ *
211
+ * @param delta A delta-mode settings object of the same type.
212
+ * @returns A dict mapping each changed field name to its **pre-update**
213
+ * value. Use `Object.keys(changed)` for the set of names, or index with
214
+ * `changed.field` to inspect the old value.
215
+ *
216
+ * @example
217
+ * // store-mode object (all fields given)
218
+ * const current = new TTSSettings({ voice: "alice", language: "en" });
219
+ * // delta-mode object (only voice is set)
220
+ * const delta = new TTSSettings({ voice: "bob" });
221
+ * const changed = current.applyUpdate(delta);
222
+ * // changed == { voice: "alice" }
223
+ * // current.voice == "bob", current.language == "en"
224
+ */
225
+ applyUpdate(delta) {
226
+ const changed = {};
227
+ const self = this;
228
+ const other = delta;
229
+ for (const name of this._fieldNames()) {
230
+ const newVal = Object.hasOwn(other, name) ? other[name] : NOT_GIVEN;
231
+ if (!isGiven(newVal))
232
+ continue;
233
+ const oldVal = self[name];
234
+ if (!settingsValuesEqual(oldVal, newVal)) {
235
+ self[name] = newVal;
236
+ changed[name] = oldVal;
237
+ }
238
+ }
239
+ // Merge extra
240
+ for (const [key, newVal] of Object.entries(delta.extra)) {
241
+ const oldVal = Object.hasOwn(this.extra, key) ? this.extra[key] : NOT_GIVEN;
242
+ if (!settingsValuesEqual(oldVal, newVal)) {
243
+ this.extra[key] = newVal;
244
+ changed[key] = oldVal;
245
+ }
246
+ }
247
+ return changed;
248
+ }
249
+ /**
250
+ * Build a **delta-mode** settings object from a plain dictionary.
251
+ *
252
+ * The returned object is a delta: only the keys present in `settings` are
253
+ * set; all other fields remain `NOT_GIVEN`.
254
+ *
255
+ * Keys are matched to fields by name. Keys listed in `_aliases` are
256
+ * translated to their canonical name first. A snake_case key also matches
257
+ * its camelCase field (`system_instruction` → `systemInstruction`), so dicts
258
+ * written with upstream's spelling keep working. Any remaining
259
+ * unrecognized keys are placed into `extra`.
260
+ *
261
+ * @param settings A dictionary of setting names to values.
262
+ * @returns A new delta-mode settings instance.
263
+ *
264
+ * @example
265
+ * const delta = TTSSettings.fromMapping({ voice_id: "alice", speed: 1.2 });
266
+ * // delta.voice == "alice" (via alias)
267
+ * // delta.language is NOT_GIVEN (not in the dict)
268
+ * // delta.extra == { speed: 1.2 }
269
+ */
270
+ static fromMapping(settings) {
271
+ const cls = ServiceSettings;
272
+ const fieldNames = new Set(new cls()._fieldNames());
273
+ const kwargs = {};
274
+ const extra = {};
275
+ for (const [key, value] of Object.entries(settings)) {
276
+ // Resolve aliases first
277
+ const canonical = cls._aliases[key] ?? key;
278
+ if (fieldNames.has(canonical)) {
279
+ kwargs[canonical] = value;
280
+ }
281
+ else if (fieldNames.has(snakeToCamel(canonical))) {
282
+ kwargs[snakeToCamel(canonical)] = value;
283
+ }
284
+ else {
285
+ extra[key] = value;
286
+ }
287
+ }
288
+ const instance = new cls(kwargs);
289
+ instance.extra = extra;
290
+ return instance;
291
+ }
292
+ /**
293
+ * Check that this is a valid store-mode object (no `NOT_GIVEN` fields).
294
+ *
295
+ * Called automatically by `AIService.start()` to catch fields that a service
296
+ * forgot to initialize in its constructor. Can also be called manually after
297
+ * constructing a store-mode settings object.
298
+ *
299
+ * Logs an error naming every uninitialized field. Failure to initialize all
300
+ * fields may or may not cause runtime issues — it depends on whether and how
301
+ * the service actually reads the field — but it indicates a deviation from
302
+ * expectations and should be fixed.
303
+ */
304
+ validateComplete() {
305
+ const self = this;
306
+ const missing = this._fieldNames().filter((name) => !isGiven(self[name]));
307
+ if (missing.length > 0) {
308
+ const names = missing.join(", ");
309
+ logger.error(`${this.constructor.name}: the following fields are NOT_GIVEN: ${names}. ` +
310
+ "All settings fields should be initialized in the service's " +
311
+ "constructor (use null for unsupported fields).");
312
+ }
313
+ }
314
+ /**
315
+ * Return a deep copy of this settings instance.
316
+ *
317
+ * @returns A new settings object with the same field values.
318
+ */
319
+ copy() {
320
+ return deepCopy(this);
321
+ }
322
+ }
323
+ /**
324
+ * Runtime-updatable settings for image generation services.
325
+ *
326
+ * Used in both store and delta mode — see `ServiceSettings`.
327
+ *
328
+ * - `model`: image generation model identifier.
329
+ */
330
+ export class ImageGenSettings extends ServiceSettings {
331
+ }
332
+ /**
333
+ * Runtime-updatable settings for vision services.
334
+ *
335
+ * Used in both store and delta mode — see `ServiceSettings`.
336
+ *
337
+ * - `model`: vision model identifier.
338
+ */
339
+ export class VisionSettings extends ServiceSettings {
340
+ }
341
+ /**
342
+ * Runtime-updatable settings for LLM services.
343
+ *
344
+ * Used in both store and delta mode — see `ServiceSettings`.
345
+ *
346
+ * These fields are common across LLM providers. Not every provider supports
347
+ * every field; in store mode, set unsupported fields to `null` (e.g. a
348
+ * service that doesn't support `seed` should initialize it as `seed: null`).
349
+ *
350
+ * - `model`: LLM model identifier.
351
+ * - `systemInstruction`: system instruction/prompt for the model.
352
+ * - `temperature`: sampling temperature.
353
+ * - `maxTokens`: maximum tokens to generate.
354
+ * - `topP`: nucleus sampling probability.
355
+ * - `topK`: top-k sampling parameter.
356
+ * - `frequencyPenalty`: frequency penalty.
357
+ * - `presencePenalty`: presence penalty.
358
+ * - `seed`: random seed for reproducibility.
359
+ * - `filterIncompleteUserTurns`: enable LLM-based turn completion detection.
360
+ * Set by `LLMTurnCompletionUserTurnStopStrategy` over an
361
+ * `LLMUpdateSettingsFrame`; application code configures it through
362
+ * `FilterIncompleteUserTurnStrategies` instead.
363
+ * - `userTurnCompletionConfig`: configuration for turn completion behavior
364
+ * when `filterIncompleteUserTurns` is enabled. Set by the user turn
365
+ * strategy, like `filterIncompleteUserTurns`.
366
+ * - `useProviderThinkingDefault`: whether a model with no thinking configured
367
+ * runs at its provider's default. Defaults to false.
368
+ */
369
+ export class LLMSettings extends ServiceSettings {
370
+ systemInstruction = NOT_GIVEN;
371
+ temperature = NOT_GIVEN;
372
+ maxTokens = NOT_GIVEN;
373
+ topP = NOT_GIVEN;
374
+ topK = NOT_GIVEN;
375
+ frequencyPenalty = NOT_GIVEN;
376
+ presencePenalty = NOT_GIVEN;
377
+ seed = NOT_GIVEN;
378
+ // Upstream deprecates setting these from application code (1.7.0), but the
379
+ // user turn strategy still drives turn completion through them.
380
+ filterIncompleteUserTurns = NOT_GIVEN;
381
+ userTurnCompletionConfig = NOT_GIVEN;
382
+ useProviderThinkingDefault = NOT_GIVEN;
383
+ constructor(options = {}) {
384
+ super(options);
385
+ this._assignOptions(options);
386
+ }
387
+ }
388
+ /**
389
+ * Runtime-updatable settings for TTS services.
390
+ *
391
+ * Used in both store and delta mode — see `ServiceSettings`.
392
+ *
393
+ * In store mode, set unsupported fields to `null` (e.g. `language: null` if
394
+ * the service doesn't expose a language setting).
395
+ *
396
+ * - `model`: TTS model identifier.
397
+ * - `voice`: voice identifier or name.
398
+ * - `language`: language for speech synthesis. The union type reflects the
399
+ * *input* side: callers may pass a `Language` value or a raw string in a
400
+ * delta. However, the **stored** value (in store mode) is always a
401
+ * service-specific string or `null` — `TTSService._updateSettings` converts
402
+ * `Language` values via `languageToServiceLanguage()` before writing, and
403
+ * constructors do the same at construction time.
404
+ */
405
+ export class TTSSettings extends ServiceSettings {
406
+ voice = NOT_GIVEN;
407
+ language = NOT_GIVEN;
408
+ static _aliases = { voice_id: "voice", voiceId: "voice" };
409
+ constructor(options = {}) {
410
+ super(options);
411
+ this._assignOptions(options);
412
+ }
413
+ }
414
+ /**
415
+ * Runtime-updatable settings for STT services.
416
+ *
417
+ * Used in both store and delta mode — see `ServiceSettings`.
418
+ *
419
+ * In store mode, set unsupported fields to `null` (e.g. `language: null` if
420
+ * the service auto-detects language).
421
+ *
422
+ * - `model`: STT model identifier.
423
+ * - `language`: language for speech recognition. The union type reflects the
424
+ * *input* side: callers may pass a `Language` value or a raw string in a
425
+ * delta. However, the **stored** value (in store mode) is always a
426
+ * service-specific string or `null` — `STTService._updateSettings` converts
427
+ * `Language` values via `languageToServiceLanguage()` before writing, and
428
+ * constructors do the same at construction time.
429
+ */
430
+ export class STTSettings extends ServiceSettings {
431
+ language = NOT_GIVEN;
432
+ constructor(options = {}) {
433
+ super(options);
434
+ this._assignOptions(options);
435
+ }
436
+ }
437
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
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/services/simli/__init__.py
6
+ export {};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
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/services/smallest/__init__.py
6
+ export {};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
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/services/soniox/__init__.py
6
+ export {};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
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/services/speechify/__init__.py
6
+ export {};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
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/services/speechmatics/__init__.py
6
+ export {};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,62 @@
1
+ /**
2
+ * STT service latency defaults.
3
+ *
4
+ * This module contains P99 time-to-final-segment (TTFS) latency values for
5
+ * STT services. TTFS measures the time from when speech ends to when the
6
+ * final transcript is received.
7
+ *
8
+ * These values are used by turn stop strategies to optimize timing. Each STT
9
+ * service publishes its latency via STTMetadataFrame at pipeline start.
10
+ *
11
+ * All built-in values were measured with `VADParams.stopSecs=0.2`, the
12
+ * recommended default. If you change `stopSecs`, re-run the benchmark with
13
+ * your VAD settings and pass the measured value to your STT service
14
+ * constructor.
15
+ *
16
+ * To measure latency for your specific deployment (region, network
17
+ * conditions, self-hosted instances), use the STT benchmark tool:
18
+ * https://github.com/pipecat-ai/stt-benchmark
19
+ *
20
+ * Run the TTFS benchmark for your service and configuration, then pass the
21
+ * measured value to your STT service constructor:
22
+ *
23
+ * @example
24
+ * const stt = new DeepgramSTTService({ apiKey: "...", ttfsP99Latency: 0.45 });
25
+ *
26
+ * Turn-based STT services (e.g. `CartesiaTurnsSTTService`,
27
+ * `DeepgramFluxSTTService`) have no meaningful TTFS metric — the server
28
+ * defines the turn boundary directly, so there is no separate "speech end →
29
+ * final transcript" interval to measure. Those services override the
30
+ * `STTService.supportsTtfs` property to return false rather than supplying a
31
+ * constant here.
32
+ */
33
+ export declare const DEFAULT_TTFS_P99: number;
34
+ export declare const ASSEMBLYAI_TTFS_P99: number;
35
+ export declare const ASSEMBLYAI_SYNC_TTFS_P99: number;
36
+ export declare const AWS_TRANSCRIBE_TTFS_P99: number;
37
+ export declare const AZURE_TTFS_P99: number;
38
+ export declare const CARTESIA_TTFS_P99: number;
39
+ export declare const DEEPGRAM_TTFS_P99: number;
40
+ export declare const DEEPGRAM_SAGEMAKER_TTFS_P99: number;
41
+ export declare const ELEVENLABS_TTFS_P99: number;
42
+ export declare const ELEVENLABS_REALTIME_TTFS_P99: number;
43
+ export declare const FAL_TTFS_P99: number;
44
+ export declare const GEMINI_TTFS_P99: number;
45
+ export declare const GLADIA_TTFS_P99: number;
46
+ export declare const GOOGLE_TTFS_P99: number;
47
+ export declare const GRADIUM_TTFS_P99: number;
48
+ export declare const GROQ_TTFS_P99: number;
49
+ export declare const META_TTFS_P99: number;
50
+ export declare const MISTRAL_TTFS_P99: number;
51
+ export declare const OPENAI_TTFS_P99: number;
52
+ export declare const OPENAI_REALTIME_TTFS_P99: number;
53
+ export declare const SARVAM_TTFS_P99: number;
54
+ export declare const SARVAM_REALTIME_TTFS_P99: number;
55
+ export declare const SMALLEST_TTFS_P99: number;
56
+ export declare const SONIOX_TTFS_P99: number;
57
+ export declare const SPEECHMATICS_TTFS_P99: number;
58
+ export declare const XAI_TTFS_P99: number;
59
+ export declare const TOGETHER_TTFS_P99: number;
60
+ export declare const NVIDIA_TTFS_P99: number;
61
+ export declare const WHISPER_TTFS_P99: number;
62
+ //# sourceMappingURL=stt_latency.d.ts.map
@@ -0,0 +1,71 @@
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/services/stt_latency.py
6
+ /**
7
+ * STT service latency defaults.
8
+ *
9
+ * This module contains P99 time-to-final-segment (TTFS) latency values for
10
+ * STT services. TTFS measures the time from when speech ends to when the
11
+ * final transcript is received.
12
+ *
13
+ * These values are used by turn stop strategies to optimize timing. Each STT
14
+ * service publishes its latency via STTMetadataFrame at pipeline start.
15
+ *
16
+ * All built-in values were measured with `VADParams.stopSecs=0.2`, the
17
+ * recommended default. If you change `stopSecs`, re-run the benchmark with
18
+ * your VAD settings and pass the measured value to your STT service
19
+ * constructor.
20
+ *
21
+ * To measure latency for your specific deployment (region, network
22
+ * conditions, self-hosted instances), use the STT benchmark tool:
23
+ * https://github.com/pipecat-ai/stt-benchmark
24
+ *
25
+ * Run the TTFS benchmark for your service and configuration, then pass the
26
+ * measured value to your STT service constructor:
27
+ *
28
+ * @example
29
+ * const stt = new DeepgramSTTService({ apiKey: "...", ttfsP99Latency: 0.45 });
30
+ *
31
+ * Turn-based STT services (e.g. `CartesiaTurnsSTTService`,
32
+ * `DeepgramFluxSTTService`) have no meaningful TTFS metric — the server
33
+ * defines the turn boundary directly, so there is no separate "speech end →
34
+ * final transcript" interval to measure. Those services override the
35
+ * `STTService.supportsTtfs` property to return false rather than supplying a
36
+ * constant here.
37
+ */
38
+ // Conservative fallback for services without measured values
39
+ export const DEFAULT_TTFS_P99 = 1.0;
40
+ // Measured P99 TTFS latency values (in seconds)
41
+ export const ASSEMBLYAI_TTFS_P99 = 0.42;
42
+ export const ASSEMBLYAI_SYNC_TTFS_P99 = 0.65;
43
+ export const AWS_TRANSCRIBE_TTFS_P99 = 1.9;
44
+ export const AZURE_TTFS_P99 = 1.8;
45
+ export const CARTESIA_TTFS_P99 = 0.81;
46
+ export const DEEPGRAM_TTFS_P99 = 0.35;
47
+ export const DEEPGRAM_SAGEMAKER_TTFS_P99 = 0.35;
48
+ export const ELEVENLABS_TTFS_P99 = 2.01;
49
+ export const ELEVENLABS_REALTIME_TTFS_P99 = 0.41;
50
+ export const FAL_TTFS_P99 = 2.07;
51
+ export const GEMINI_TTFS_P99 = 0.6;
52
+ export const GLADIA_TTFS_P99 = 1.49;
53
+ export const GOOGLE_TTFS_P99 = 1.57;
54
+ export const GRADIUM_TTFS_P99 = 0.62;
55
+ export const GROQ_TTFS_P99 = 1.54;
56
+ export const META_TTFS_P99 = 1.92;
57
+ export const MISTRAL_TTFS_P99 = 1.89;
58
+ export const OPENAI_TTFS_P99 = 2.01;
59
+ export const OPENAI_REALTIME_TTFS_P99 = 1.66;
60
+ export const SARVAM_TTFS_P99 = 1.17;
61
+ // Provisional until benchmarked against the realtime endpoint.
62
+ export const SARVAM_REALTIME_TTFS_P99 = 1.0;
63
+ export const SMALLEST_TTFS_P99 = 1.59;
64
+ export const SONIOX_TTFS_P99 = 0.35;
65
+ export const SPEECHMATICS_TTFS_P99 = 0.74;
66
+ export const XAI_TTFS_P99 = 2.14;
67
+ export const TOGETHER_TTFS_P99 = 1.0;
68
+ // These services run locally and should be replaced with measured values
69
+ export const NVIDIA_TTFS_P99 = DEFAULT_TTFS_P99;
70
+ export const WHISPER_TTFS_P99 = DEFAULT_TTFS_P99;
71
+ //# sourceMappingURL=stt_latency.js.map