@pipedog/core 0.0.0 → 0.1.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 (698) 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/index.d.ts +2 -0
  42. package/dist/audio/resamplers/index.js +8 -0
  43. package/dist/audio/resamplers/resampy_resampler.d.ts +10 -0
  44. package/dist/audio/resamplers/resampy_resampler.js +15 -0
  45. package/dist/audio/resamplers/soxr_resampler.d.ts +54 -0
  46. package/dist/audio/resamplers/soxr_resampler.js +69 -0
  47. package/dist/audio/resamplers/soxr_stream_resampler.d.ts +75 -0
  48. package/dist/audio/resamplers/soxr_stream_resampler.js +146 -0
  49. package/dist/audio/turn/base_turn_analyzer.d.ts +84 -0
  50. package/dist/audio/turn/base_turn_analyzer.js +61 -0
  51. package/dist/audio/turn/index.d.ts +2 -0
  52. package/dist/audio/turn/index.js +8 -0
  53. package/dist/audio/turn/smart_turn/_whisper_features.d.ts +30 -0
  54. package/dist/audio/turn/smart_turn/_whisper_features.js +225 -0
  55. package/dist/audio/turn/smart_turn/base_smart_turn.d.ts +94 -0
  56. package/dist/audio/turn/smart_turn/base_smart_turn.js +239 -0
  57. package/dist/audio/turn/smart_turn/local_smart_turn_v3.d.ts +76 -0
  58. package/dist/audio/turn/smart_turn/local_smart_turn_v3.js +143 -0
  59. package/dist/audio/utils.d.ts +224 -0
  60. package/dist/audio/utils.js +634 -0
  61. package/dist/audio/vad/data/index.d.ts +2 -0
  62. package/dist/audio/vad/data/index.js +8 -0
  63. package/dist/audio/vad/index.d.ts +2 -0
  64. package/dist/audio/vad/index.js +8 -0
  65. package/dist/audio/vad/vad_analyzer.d.ts +126 -0
  66. package/dist/audio/vad/vad_analyzer.js +211 -0
  67. package/dist/audio/vad/vad_controller.d.ts +143 -0
  68. package/dist/audio/vad/vad_controller.js +228 -0
  69. package/dist/audio/volume.d.ts +38 -0
  70. package/dist/audio/volume.js +75 -0
  71. package/dist/bus/adapters/base.d.ts +35 -0
  72. package/dist/bus/adapters/base.js +19 -0
  73. package/dist/bus/adapters/index.d.ts +10 -0
  74. package/dist/bus/adapters/index.js +15 -0
  75. package/dist/bus/adapters/llm_context_adapter.d.ts +36 -0
  76. package/dist/bus/adapters/llm_context_adapter.js +82 -0
  77. package/dist/bus/adapters/tools_schema_adapter.d.ts +25 -0
  78. package/dist/bus/adapters/tools_schema_adapter.js +70 -0
  79. package/dist/bus/bridge_processor.d.ts +111 -0
  80. package/dist/bus/bridge_processor.js +166 -0
  81. package/dist/bus/bus.d.ts +110 -0
  82. package/dist/bus/bus.js +200 -0
  83. package/dist/bus/index.d.ts +22 -0
  84. package/dist/bus/index.js +27 -0
  85. package/dist/bus/local/async_queue.d.ts +12 -0
  86. package/dist/bus/local/async_queue.js +21 -0
  87. package/dist/bus/local/index.d.ts +3 -0
  88. package/dist/bus/local/index.js +8 -0
  89. package/dist/bus/messages.d.ts +378 -0
  90. package/dist/bus/messages.js +357 -0
  91. package/dist/bus/network/index.d.ts +16 -0
  92. package/dist/bus/network/index.js +21 -0
  93. package/dist/bus/queue.d.ts +27 -0
  94. package/dist/bus/queue.js +51 -0
  95. package/dist/bus/serializers/base.d.ts +25 -0
  96. package/dist/bus/serializers/base.js +14 -0
  97. package/dist/bus/serializers/index.d.ts +9 -0
  98. package/dist/bus/serializers/index.js +14 -0
  99. package/dist/bus/serializers/json.d.ts +77 -0
  100. package/dist/bus/serializers/json.js +367 -0
  101. package/dist/bus/subscriber.d.ts +46 -0
  102. package/dist/bus/subscriber.js +27 -0
  103. package/dist/bus/ui/index.d.ts +3 -0
  104. package/dist/bus/ui/index.js +8 -0
  105. package/dist/bus/ui/messages.d.ts +186 -0
  106. package/dist/bus/ui/messages.js +171 -0
  107. package/dist/classifiers/base_classifier.d.ts +263 -0
  108. package/dist/classifiers/base_classifier.js +346 -0
  109. package/dist/classifiers/cloudflare/clef/classifier.d.ts +70 -0
  110. package/dist/classifiers/cloudflare/clef/classifier.js +204 -0
  111. package/dist/classifiers/cloudflare/clef/client.d.ts +104 -0
  112. package/dist/classifiers/cloudflare/clef/client.js +234 -0
  113. package/dist/classifiers/cloudflare/clef/index.d.ts +2 -0
  114. package/dist/classifiers/cloudflare/clef/index.js +8 -0
  115. package/dist/classifiers/cloudflare/index.d.ts +2 -0
  116. package/dist/classifiers/cloudflare/index.js +8 -0
  117. package/dist/classifiers/http_client.d.ts +70 -0
  118. package/dist/classifiers/http_client.js +161 -0
  119. package/dist/classifiers/index.d.ts +2 -0
  120. package/dist/classifiers/index.js +8 -0
  121. package/dist/classifiers/jev/classifier.d.ts +8 -0
  122. package/dist/classifiers/jev/classifier.js +13 -0
  123. package/dist/classifiers/jev/client.d.ts +8 -0
  124. package/dist/classifiers/jev/client.js +13 -0
  125. package/dist/classifiers/jev/index.d.ts +2 -0
  126. package/dist/classifiers/jev/index.js +8 -0
  127. package/dist/classifiers/llm/classifier.d.ts +72 -0
  128. package/dist/classifiers/llm/classifier.js +304 -0
  129. package/dist/classifiers/llm/index.d.ts +2 -0
  130. package/dist/classifiers/llm/index.js +8 -0
  131. package/dist/classifiers/openai/decisions/classifier.d.ts +77 -0
  132. package/dist/classifiers/openai/decisions/classifier.js +241 -0
  133. package/dist/classifiers/openai/decisions/client.d.ts +108 -0
  134. package/dist/classifiers/openai/decisions/client.js +234 -0
  135. package/dist/classifiers/openai/decisions/index.d.ts +2 -0
  136. package/dist/classifiers/openai/decisions/index.js +8 -0
  137. package/dist/classifiers/openai/index.d.ts +2 -0
  138. package/dist/classifiers/openai/index.js +8 -0
  139. package/dist/classifiers/typesafe/index.d.ts +2 -0
  140. package/dist/classifiers/typesafe/index.js +8 -0
  141. package/dist/classifiers/typesafe/jev/classifier.d.ts +70 -0
  142. package/dist/classifiers/typesafe/jev/classifier.js +220 -0
  143. package/dist/classifiers/typesafe/jev/client.d.ts +105 -0
  144. package/dist/classifiers/typesafe/jev/client.js +233 -0
  145. package/dist/classifiers/typesafe/jev/index.d.ts +2 -0
  146. package/dist/classifiers/typesafe/jev/index.js +8 -0
  147. package/dist/clocks/base_clock.d.ts +13 -0
  148. package/dist/clocks/base_clock.js +14 -0
  149. package/dist/clocks/index.d.ts +2 -0
  150. package/dist/clocks/index.js +8 -0
  151. package/dist/clocks/system_clock.d.ts +15 -0
  152. package/dist/clocks/system_clock.js +25 -0
  153. package/dist/frames/frames.d.ts +2533 -0
  154. package/dist/frames/frames.js +2485 -0
  155. package/dist/frames/index.d.ts +2 -0
  156. package/dist/frames/index.js +8 -0
  157. package/dist/frames/protobufs/frames_pb2.d.ts +229 -0
  158. package/dist/frames/protobufs/frames_pb2.js +466 -0
  159. package/dist/index.d.ts +11 -0
  160. package/dist/index.js +56 -0
  161. package/dist/metrics/index.d.ts +2 -0
  162. package/dist/metrics/index.js +8 -0
  163. package/dist/metrics/metrics.d.ts +276 -0
  164. package/dist/metrics/metrics.js +254 -0
  165. package/dist/observers/base_observer.d.ts +173 -0
  166. package/dist/observers/base_observer.js +151 -0
  167. package/dist/observers/error_observer.d.ts +75 -0
  168. package/dist/observers/error_observer.js +87 -0
  169. package/dist/observers/function_call_observer.d.ts +157 -0
  170. package/dist/observers/function_call_observer.js +222 -0
  171. package/dist/observers/index.d.ts +2 -0
  172. package/dist/observers/index.js +8 -0
  173. package/dist/observers/loggers/debug_log_observer.d.ts +91 -0
  174. package/dist/observers/loggers/debug_log_observer.js +228 -0
  175. package/dist/observers/loggers/index.d.ts +2 -0
  176. package/dist/observers/loggers/index.js +8 -0
  177. package/dist/observers/loggers/llm_log_observer.d.ts +24 -0
  178. package/dist/observers/loggers/llm_log_observer.js +110 -0
  179. package/dist/observers/loggers/metrics_log_observer.d.ts +85 -0
  180. package/dist/observers/loggers/metrics_log_observer.js +186 -0
  181. package/dist/observers/loggers/transcription_log_observer.d.ts +23 -0
  182. package/dist/observers/loggers/transcription_log_observer.js +74 -0
  183. package/dist/observers/service_metrics_observer.d.ts +168 -0
  184. package/dist/observers/service_metrics_observer.js +236 -0
  185. package/dist/observers/speaking_observer.d.ts +104 -0
  186. package/dist/observers/speaking_observer.js +150 -0
  187. package/dist/observers/startup_timing_observer.d.ts +221 -0
  188. package/dist/observers/startup_timing_observer.js +365 -0
  189. package/dist/observers/turn_tracking_observer.d.ts +78 -0
  190. package/dist/observers/turn_tracking_observer.js +189 -0
  191. package/dist/observers/user_bot_latency_observer.d.ts +411 -0
  192. package/dist/observers/user_bot_latency_observer.js +974 -0
  193. package/dist/pipeline/base_pipeline.d.ts +49 -0
  194. package/dist/pipeline/base_pipeline.js +101 -0
  195. package/dist/pipeline/capabilities.d.ts +76 -0
  196. package/dist/pipeline/capabilities.js +97 -0
  197. package/dist/pipeline/index.d.ts +2 -0
  198. package/dist/pipeline/index.js +8 -0
  199. package/dist/pipeline/job_context.d.ts +317 -0
  200. package/dist/pipeline/job_context.js +450 -0
  201. package/dist/pipeline/job_decorator.d.ts +54 -0
  202. package/dist/pipeline/job_decorator.js +92 -0
  203. package/dist/pipeline/llm_switcher.d.ts +84 -0
  204. package/dist/pipeline/llm_switcher.js +107 -0
  205. package/dist/pipeline/llm_with_backend.d.ts +435 -0
  206. package/dist/pipeline/llm_with_backend.js +806 -0
  207. package/dist/pipeline/parallel_pipeline.d.ts +83 -0
  208. package/dist/pipeline/parallel_pipeline.js +200 -0
  209. package/dist/pipeline/pipeline.d.ts +126 -0
  210. package/dist/pipeline/pipeline.js +196 -0
  211. package/dist/pipeline/service_switcher.d.ts +287 -0
  212. package/dist/pipeline/service_switcher.js +509 -0
  213. package/dist/pipeline/sync_parallel_pipeline.d.ts +192 -0
  214. package/dist/pipeline/sync_parallel_pipeline.js +387 -0
  215. package/dist/pipeline/worker.d.ts +814 -0
  216. package/dist/pipeline/worker.js +1639 -0
  217. package/dist/pipeline/worker_observer.d.ts +131 -0
  218. package/dist/pipeline/worker_observer.js +274 -0
  219. package/dist/pipeline/worker_ready_decorator.d.ts +45 -0
  220. package/dist/pipeline/worker_ready_decorator.js +76 -0
  221. package/dist/processors/aggregators/async_tool_messages.d.ts +146 -0
  222. package/dist/processors/aggregators/async_tool_messages.js +291 -0
  223. package/dist/processors/aggregators/dtmf_aggregator.d.ts +61 -0
  224. package/dist/processors/aggregators/dtmf_aggregator.js +144 -0
  225. package/dist/processors/aggregators/gated.d.ts +43 -0
  226. package/dist/processors/aggregators/gated.js +86 -0
  227. package/dist/processors/aggregators/gated_llm_context.d.ts +42 -0
  228. package/dist/processors/aggregators/gated_llm_context.js +86 -0
  229. package/dist/processors/aggregators/index.d.ts +2 -0
  230. package/dist/processors/aggregators/index.js +8 -0
  231. package/dist/processors/aggregators/llm_context.d.ts +370 -0
  232. package/dist/processors/aggregators/llm_context.js +580 -0
  233. package/dist/processors/aggregators/llm_context_summarizer.d.ts +219 -0
  234. package/dist/processors/aggregators/llm_context_summarizer.js +447 -0
  235. package/dist/processors/aggregators/llm_response.d.ts +37 -0
  236. package/dist/processors/aggregators/llm_response.js +71 -0
  237. package/dist/processors/aggregators/llm_response_universal.d.ts +966 -0
  238. package/dist/processors/aggregators/llm_response_universal.js +2394 -0
  239. package/dist/processors/aggregators/llm_text_processor.d.ts +53 -0
  240. package/dist/processors/aggregators/llm_text_processor.js +102 -0
  241. package/dist/processors/aggregators/sentence.d.ts +39 -0
  242. package/dist/processors/aggregators/sentence.js +69 -0
  243. package/dist/processors/async_generator.d.ts +42 -0
  244. package/dist/processors/async_generator.js +76 -0
  245. package/dist/processors/audio/audio_buffer_processor.d.ts +241 -0
  246. package/dist/processors/audio/audio_buffer_processor.js +565 -0
  247. package/dist/processors/audio/index.d.ts +2 -0
  248. package/dist/processors/audio/index.js +8 -0
  249. package/dist/processors/audio/vad_processor.d.ts +67 -0
  250. package/dist/processors/audio/vad_processor.js +103 -0
  251. package/dist/processors/consumer_processor.d.ts +49 -0
  252. package/dist/processors/consumer_processor.js +85 -0
  253. package/dist/processors/filters/frame_filter.d.ts +39 -0
  254. package/dist/processors/filters/frame_filter.js +52 -0
  255. package/dist/processors/filters/function_filter.d.ts +59 -0
  256. package/dist/processors/filters/function_filter.js +78 -0
  257. package/dist/processors/filters/identity_filter.d.ts +33 -0
  258. package/dist/processors/filters/identity_filter.js +37 -0
  259. package/dist/processors/filters/index.d.ts +2 -0
  260. package/dist/processors/filters/index.js +8 -0
  261. package/dist/processors/filters/null_filter.d.ts +34 -0
  262. package/dist/processors/filters/null_filter.js +47 -0
  263. package/dist/processors/filters/wake_notifier_filter.d.ts +48 -0
  264. package/dist/processors/filters/wake_notifier_filter.js +49 -0
  265. package/dist/processors/frame_processor.d.ts +360 -0
  266. package/dist/processors/frame_processor.js +932 -0
  267. package/dist/processors/frameworks/index.d.ts +2 -0
  268. package/dist/processors/frameworks/index.js +8 -0
  269. package/dist/processors/frameworks/rtvi/frames.d.ts +241 -0
  270. package/dist/processors/frameworks/rtvi/frames.js +259 -0
  271. package/dist/processors/frameworks/rtvi/index.d.ts +6 -0
  272. package/dist/processors/frameworks/rtvi/index.js +11 -0
  273. package/dist/processors/frameworks/rtvi/models.d.ts +1741 -0
  274. package/dist/processors/frameworks/rtvi/models.js +1807 -0
  275. package/dist/processors/frameworks/rtvi/observer.d.ts +340 -0
  276. package/dist/processors/frameworks/rtvi/observer.js +1113 -0
  277. package/dist/processors/frameworks/rtvi/processor.d.ts +182 -0
  278. package/dist/processors/frameworks/rtvi/processor.js +676 -0
  279. package/dist/processors/idle_frame_processor.d.ts +44 -0
  280. package/dist/processors/idle_frame_processor.js +86 -0
  281. package/dist/processors/index.d.ts +2 -0
  282. package/dist/processors/index.js +8 -0
  283. package/dist/processors/logger.d.ts +42 -0
  284. package/dist/processors/logger.js +87 -0
  285. package/dist/processors/metrics/frame_processor_metrics.d.ts +172 -0
  286. package/dist/processors/metrics/frame_processor_metrics.js +372 -0
  287. package/dist/processors/metrics/index.d.ts +2 -0
  288. package/dist/processors/metrics/index.js +8 -0
  289. package/dist/processors/producer_processor.d.ts +68 -0
  290. package/dist/processors/producer_processor.js +78 -0
  291. package/dist/processors/text_transformer.d.ts +30 -0
  292. package/dist/processors/text_transformer.js +48 -0
  293. package/dist/registry/index.d.ts +3 -0
  294. package/dist/registry/index.js +8 -0
  295. package/dist/registry/registry.d.ts +69 -0
  296. package/dist/registry/registry.js +149 -0
  297. package/dist/registry/types.d.ts +47 -0
  298. package/dist/registry/types.js +39 -0
  299. package/dist/serializers/base_serializer.d.ts +94 -0
  300. package/dist/serializers/base_serializer.js +82 -0
  301. package/dist/serializers/index.d.ts +2 -0
  302. package/dist/serializers/index.js +8 -0
  303. package/dist/services/ai_service.d.ts +145 -0
  304. package/dist/services/ai_service.js +262 -0
  305. package/dist/services/anthropic/index.d.ts +2 -0
  306. package/dist/services/anthropic/index.js +7 -0
  307. package/dist/services/assemblyai/index.d.ts +2 -0
  308. package/dist/services/assemblyai/index.js +7 -0
  309. package/dist/services/asyncai/index.d.ts +2 -0
  310. package/dist/services/asyncai/index.js +7 -0
  311. package/dist/services/aws/index.d.ts +2 -0
  312. package/dist/services/aws/index.js +7 -0
  313. package/dist/services/azure/index.d.ts +2 -0
  314. package/dist/services/azure/index.js +7 -0
  315. package/dist/services/baseten/index.d.ts +2 -0
  316. package/dist/services/baseten/index.js +7 -0
  317. package/dist/services/bland/index.d.ts +2 -0
  318. package/dist/services/bland/index.js +7 -0
  319. package/dist/services/camb/index.d.ts +2 -0
  320. package/dist/services/camb/index.js +7 -0
  321. package/dist/services/cartesia/index.d.ts +2 -0
  322. package/dist/services/cartesia/index.js +7 -0
  323. package/dist/services/cerebras/index.d.ts +2 -0
  324. package/dist/services/cerebras/index.js +7 -0
  325. package/dist/services/crusoe/index.d.ts +2 -0
  326. package/dist/services/crusoe/index.js +7 -0
  327. package/dist/services/deepgram/index.d.ts +2 -0
  328. package/dist/services/deepgram/index.js +7 -0
  329. package/dist/services/deepseek/index.d.ts +2 -0
  330. package/dist/services/deepseek/index.js +7 -0
  331. package/dist/services/elevenlabs/index.d.ts +2 -0
  332. package/dist/services/elevenlabs/index.js +7 -0
  333. package/dist/services/fal/index.d.ts +2 -0
  334. package/dist/services/fal/index.js +7 -0
  335. package/dist/services/fireworks/index.d.ts +2 -0
  336. package/dist/services/fireworks/index.js +7 -0
  337. package/dist/services/fish/index.d.ts +2 -0
  338. package/dist/services/fish/index.js +7 -0
  339. package/dist/services/funasr/index.d.ts +3 -0
  340. package/dist/services/funasr/index.js +8 -0
  341. package/dist/services/gladia/index.d.ts +2 -0
  342. package/dist/services/gladia/index.js +7 -0
  343. package/dist/services/google/index.d.ts +2 -0
  344. package/dist/services/google/index.js +7 -0
  345. package/dist/services/gradium/index.d.ts +2 -0
  346. package/dist/services/gradium/index.js +7 -0
  347. package/dist/services/grok/index.d.ts +2 -0
  348. package/dist/services/grok/index.js +7 -0
  349. package/dist/services/groq/index.d.ts +2 -0
  350. package/dist/services/groq/index.js +7 -0
  351. package/dist/services/heygen/index.d.ts +2 -0
  352. package/dist/services/heygen/index.js +7 -0
  353. package/dist/services/hume/index.d.ts +2 -0
  354. package/dist/services/hume/index.js +7 -0
  355. package/dist/services/image_service.d.ts +52 -0
  356. package/dist/services/image_service.js +60 -0
  357. package/dist/services/inception/index.d.ts +2 -0
  358. package/dist/services/inception/index.js +7 -0
  359. package/dist/services/index.d.ts +2 -0
  360. package/dist/services/index.js +8 -0
  361. package/dist/services/inworld/index.d.ts +2 -0
  362. package/dist/services/inworld/index.js +7 -0
  363. package/dist/services/keenable/index.d.ts +2 -0
  364. package/dist/services/keenable/index.js +7 -0
  365. package/dist/services/kokoro/index.d.ts +2 -0
  366. package/dist/services/kokoro/index.js +7 -0
  367. package/dist/services/llm_service.d.ts +1106 -0
  368. package/dist/services/llm_service.js +2231 -0
  369. package/dist/services/mem0/index.d.ts +2 -0
  370. package/dist/services/mem0/index.js +7 -0
  371. package/dist/services/meta/index.d.ts +2 -0
  372. package/dist/services/meta/index.js +7 -0
  373. package/dist/services/minimax/index.d.ts +2 -0
  374. package/dist/services/minimax/index.js +7 -0
  375. package/dist/services/mistral/index.d.ts +2 -0
  376. package/dist/services/mistral/index.js +7 -0
  377. package/dist/services/moondream/index.d.ts +2 -0
  378. package/dist/services/moondream/index.js +7 -0
  379. package/dist/services/moonshine/index.d.ts +2 -0
  380. package/dist/services/moonshine/index.js +7 -0
  381. package/dist/services/nebius/index.d.ts +2 -0
  382. package/dist/services/nebius/index.js +7 -0
  383. package/dist/services/neuphonic/index.d.ts +2 -0
  384. package/dist/services/neuphonic/index.js +7 -0
  385. package/dist/services/novita/index.d.ts +2 -0
  386. package/dist/services/novita/index.js +7 -0
  387. package/dist/services/nvidia/index.d.ts +2 -0
  388. package/dist/services/nvidia/index.js +11 -0
  389. package/dist/services/ollama/index.d.ts +2 -0
  390. package/dist/services/ollama/index.js +7 -0
  391. package/dist/services/openai/index.d.ts +2 -0
  392. package/dist/services/openai/index.js +7 -0
  393. package/dist/services/openclaw/index.d.ts +14 -0
  394. package/dist/services/openclaw/index.js +19 -0
  395. package/dist/services/openrouter/index.d.ts +2 -0
  396. package/dist/services/openrouter/index.js +7 -0
  397. package/dist/services/perplexity/index.d.ts +2 -0
  398. package/dist/services/perplexity/index.js +7 -0
  399. package/dist/services/piper/index.d.ts +2 -0
  400. package/dist/services/piper/index.js +7 -0
  401. package/dist/services/pocket_tts/index.d.ts +2 -0
  402. package/dist/services/pocket_tts/index.js +7 -0
  403. package/dist/services/qwen/index.d.ts +2 -0
  404. package/dist/services/qwen/index.js +7 -0
  405. package/dist/services/resembleai/index.d.ts +2 -0
  406. package/dist/services/resembleai/index.js +7 -0
  407. package/dist/services/rime/index.d.ts +2 -0
  408. package/dist/services/rime/index.js +7 -0
  409. package/dist/services/sambanova/index.d.ts +2 -0
  410. package/dist/services/sambanova/index.js +7 -0
  411. package/dist/services/sarvam/index.d.ts +2 -0
  412. package/dist/services/sarvam/index.js +7 -0
  413. package/dist/services/settings.d.ts +356 -0
  414. package/dist/services/settings.js +437 -0
  415. package/dist/services/simli/index.d.ts +2 -0
  416. package/dist/services/simli/index.js +7 -0
  417. package/dist/services/smallest/index.d.ts +2 -0
  418. package/dist/services/smallest/index.js +7 -0
  419. package/dist/services/soniox/index.d.ts +2 -0
  420. package/dist/services/soniox/index.js +7 -0
  421. package/dist/services/speechify/index.d.ts +2 -0
  422. package/dist/services/speechify/index.js +7 -0
  423. package/dist/services/speechmatics/index.d.ts +2 -0
  424. package/dist/services/speechmatics/index.js +7 -0
  425. package/dist/services/stt_latency.d.ts +62 -0
  426. package/dist/services/stt_latency.js +71 -0
  427. package/dist/services/stt_service.d.ts +601 -0
  428. package/dist/services/stt_service.js +1044 -0
  429. package/dist/services/tavus/index.d.ts +2 -0
  430. package/dist/services/tavus/index.js +7 -0
  431. package/dist/services/together/index.d.ts +2 -0
  432. package/dist/services/together/index.js +7 -0
  433. package/dist/services/tts_service.d.ts +909 -0
  434. package/dist/services/tts_service.js +2018 -0
  435. package/dist/services/ultravox/index.d.ts +2 -0
  436. package/dist/services/ultravox/index.js +9 -0
  437. package/dist/services/vision_service.d.ts +56 -0
  438. package/dist/services/vision_service.js +62 -0
  439. package/dist/services/websocket_service.d.ts +213 -0
  440. package/dist/services/websocket_service.js +654 -0
  441. package/dist/services/whisper/index.d.ts +2 -0
  442. package/dist/services/whisper/index.js +9 -0
  443. package/dist/services/xai/index.d.ts +2 -0
  444. package/dist/services/xai/index.js +9 -0
  445. package/dist/services/xtts/index.d.ts +2 -0
  446. package/dist/services/xtts/index.js +9 -0
  447. package/dist/tests/index.d.ts +2 -0
  448. package/dist/tests/index.js +8 -0
  449. package/dist/tests/utils.d.ts +123 -0
  450. package/dist/tests/utils.js +212 -0
  451. package/dist/transcriptions/index.d.ts +2 -0
  452. package/dist/transcriptions/index.js +8 -0
  453. package/dist/transcriptions/language.d.ts +376 -0
  454. package/dist/transcriptions/language.js +543 -0
  455. package/dist/transports/base_input.d.ts +149 -0
  456. package/dist/transports/base_input.js +338 -0
  457. package/dist/transports/base_output.d.ts +432 -0
  458. package/dist/transports/base_output.js +1231 -0
  459. package/dist/transports/base_transport.d.ts +223 -0
  460. package/dist/transports/base_transport.js +167 -0
  461. package/dist/transports/daily/index.d.ts +2 -0
  462. package/dist/transports/daily/index.js +9 -0
  463. package/dist/transports/heygen/index.d.ts +2 -0
  464. package/dist/transports/heygen/index.js +9 -0
  465. package/dist/transports/index.d.ts +2 -0
  466. package/dist/transports/index.js +8 -0
  467. package/dist/transports/lemonslice/index.d.ts +2 -0
  468. package/dist/transports/lemonslice/index.js +9 -0
  469. package/dist/transports/livekit/index.d.ts +2 -0
  470. package/dist/transports/livekit/index.js +9 -0
  471. package/dist/transports/local/index.d.ts +2 -0
  472. package/dist/transports/local/index.js +9 -0
  473. package/dist/transports/moq/index.d.ts +2 -0
  474. package/dist/transports/moq/index.js +9 -0
  475. package/dist/transports/smallwebrtc/index.d.ts +2 -0
  476. package/dist/transports/smallwebrtc/index.js +9 -0
  477. package/dist/transports/tavus/index.d.ts +2 -0
  478. package/dist/transports/tavus/index.js +9 -0
  479. package/dist/transports/video_in_sampler.d.ts +157 -0
  480. package/dist/transports/video_in_sampler.js +258 -0
  481. package/dist/transports/vonage/index.d.ts +2 -0
  482. package/dist/transports/vonage/index.js +9 -0
  483. package/dist/transports/websocket/index.d.ts +2 -0
  484. package/dist/transports/websocket/index.js +9 -0
  485. package/dist/transports/whatsapp/index.d.ts +2 -0
  486. package/dist/transports/whatsapp/index.js +9 -0
  487. package/dist/turns/eager_end_of_turn_mixin.d.ts +70 -0
  488. package/dist/turns/eager_end_of_turn_mixin.js +122 -0
  489. package/dist/turns/empty_user_turn.d.ts +55 -0
  490. package/dist/turns/empty_user_turn.js +53 -0
  491. package/dist/turns/index.d.ts +2 -0
  492. package/dist/turns/index.js +8 -0
  493. package/dist/turns/speculation_gate.d.ts +169 -0
  494. package/dist/turns/speculation_gate.js +294 -0
  495. package/dist/turns/types.d.ts +33 -0
  496. package/dist/turns/types.js +35 -0
  497. package/dist/turns/user_idle_controller.d.ts +94 -0
  498. package/dist/turns/user_idle_controller.js +187 -0
  499. package/dist/turns/user_mute/always_user_mute_strategy.d.ts +15 -0
  500. package/dist/turns/user_mute/always_user_mute_strategy.js +29 -0
  501. package/dist/turns/user_mute/base_user_mute_strategy.d.ts +39 -0
  502. package/dist/turns/user_mute/base_user_mute_strategy.js +45 -0
  503. package/dist/turns/user_mute/first_speech_user_mute_strategy.d.ts +28 -0
  504. package/dist/turns/user_mute/first_speech_user_mute_strategy.js +52 -0
  505. package/dist/turns/user_mute/function_call_user_mute_strategy.d.ts +25 -0
  506. package/dist/turns/user_mute/function_call_user_mute_strategy.js +50 -0
  507. package/dist/turns/user_mute/index.d.ts +6 -0
  508. package/dist/turns/user_mute/index.js +11 -0
  509. package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.d.ts +43 -0
  510. package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.js +76 -0
  511. package/dist/turns/user_start/base_user_turn_start_strategy.d.ts +135 -0
  512. package/dist/turns/user_start/base_user_turn_start_strategy.js +134 -0
  513. package/dist/turns/user_start/external_user_turn_start_strategy.d.ts +45 -0
  514. package/dist/turns/user_start/external_user_turn_start_strategy.js +64 -0
  515. package/dist/turns/user_start/index.d.ts +8 -0
  516. package/dist/turns/user_start/index.js +16 -0
  517. package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.d.ts +133 -0
  518. package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.js +243 -0
  519. package/dist/turns/user_start/min_words_user_turn_start_strategy.d.ts +60 -0
  520. package/dist/turns/user_start/min_words_user_turn_start_strategy.js +102 -0
  521. package/dist/turns/user_start/transcription_user_turn_start_strategy.d.ts +29 -0
  522. package/dist/turns/user_start/transcription_user_turn_start_strategy.js +43 -0
  523. package/dist/turns/user_start/vad_user_turn_start_strategy.d.ts +20 -0
  524. package/dist/turns/user_start/vad_user_turn_start_strategy.js +31 -0
  525. package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.d.ts +141 -0
  526. package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.js +238 -0
  527. package/dist/turns/user_stop/base_user_turn_stop_strategy.d.ts +174 -0
  528. package/dist/turns/user_stop/base_user_turn_stop_strategy.js +170 -0
  529. package/dist/turns/user_stop/deferred_user_turn_stop_strategy.d.ts +81 -0
  530. package/dist/turns/user_stop/deferred_user_turn_stop_strategy.js +107 -0
  531. package/dist/turns/user_stop/eager_match_policy.d.ts +36 -0
  532. package/dist/turns/user_stop/eager_match_policy.js +50 -0
  533. package/dist/turns/user_stop/eager_user_turn_stop_strategy.d.ts +84 -0
  534. package/dist/turns/user_stop/eager_user_turn_stop_strategy.js +154 -0
  535. package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.d.ts +45 -0
  536. package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.js +55 -0
  537. package/dist/turns/user_stop/external_user_turn_stop_strategy.d.ts +115 -0
  538. package/dist/turns/user_stop/external_user_turn_stop_strategy.js +205 -0
  539. package/dist/turns/user_stop/index.d.ts +10 -0
  540. package/dist/turns/user_stop/index.js +15 -0
  541. package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.d.ts +44 -0
  542. package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.js +59 -0
  543. package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.d.ts +140 -0
  544. package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.js +303 -0
  545. package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.d.ts +135 -0
  546. package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.js +332 -0
  547. package/dist/turns/user_turn_completion_mixin.d.ts +147 -0
  548. package/dist/turns/user_turn_completion_mixin.js +591 -0
  549. package/dist/turns/user_turn_controller.d.ts +134 -0
  550. package/dist/turns/user_turn_controller.js +335 -0
  551. package/dist/turns/user_turn_processor.d.ts +87 -0
  552. package/dist/turns/user_turn_processor.js +180 -0
  553. package/dist/turns/user_turn_strategies.d.ts +187 -0
  554. package/dist/turns/user_turn_strategies.js +222 -0
  555. package/dist/utils/async_tool_cancellation.d.ts +35 -0
  556. package/dist/utils/async_tool_cancellation.js +78 -0
  557. package/dist/utils/asyncio/index.d.ts +2 -0
  558. package/dist/utils/asyncio/index.js +7 -0
  559. package/dist/utils/asyncio/task_manager.d.ts +49 -0
  560. package/dist/utils/asyncio/task_manager.js +105 -0
  561. package/dist/utils/base_object.d.ts +76 -0
  562. package/dist/utils/base_object.js +154 -0
  563. package/dist/utils/context/aggregated_frame_sequencer.d.ts +491 -0
  564. package/dist/utils/context/aggregated_frame_sequencer.js +803 -0
  565. package/dist/utils/context/audio_context_manager.d.ts +131 -0
  566. package/dist/utils/context/audio_context_manager.js +233 -0
  567. package/dist/utils/context/index.d.ts +2 -0
  568. package/dist/utils/context/index.js +7 -0
  569. package/dist/utils/context/llm_context_summarization.d.ts +258 -0
  570. package/dist/utils/context/llm_context_summarization.js +511 -0
  571. package/dist/utils/context/text_segment_map.d.ts +611 -0
  572. package/dist/utils/context/text_segment_map.js +1132 -0
  573. package/dist/utils/context/word_completion_tracker.d.ts +273 -0
  574. package/dist/utils/context/word_completion_tracker.js +441 -0
  575. package/dist/utils/context/word_timestamp_tracker.d.ts +72 -0
  576. package/dist/utils/context/word_timestamp_tracker.js +98 -0
  577. package/dist/utils/deprecation.d.ts +28 -0
  578. package/dist/utils/deprecation.js +75 -0
  579. package/dist/utils/env.d.ts +38 -0
  580. package/dist/utils/env.js +62 -0
  581. package/dist/utils/errors.d.ts +75 -0
  582. package/dist/utils/errors.js +202 -0
  583. package/dist/utils/file_resolver.d.ts +126 -0
  584. package/dist/utils/file_resolver.js +314 -0
  585. package/dist/utils/file_storage.d.ts +99 -0
  586. package/dist/utils/file_storage.js +100 -0
  587. package/dist/utils/frame_queue.d.ts +36 -0
  588. package/dist/utils/frame_queue.js +66 -0
  589. package/dist/utils/http.d.ts +39 -0
  590. package/dist/utils/http.js +53 -0
  591. package/dist/utils/image.d.ts +15 -0
  592. package/dist/utils/image.js +30 -0
  593. package/dist/utils/index.d.ts +2 -0
  594. package/dist/utils/index.js +8 -0
  595. package/dist/utils/log_config.d.ts +34 -0
  596. package/dist/utils/log_config.js +76 -0
  597. package/dist/utils/logger.d.ts +40 -0
  598. package/dist/utils/logger.js +91 -0
  599. package/dist/utils/mixin.d.ts +14 -0
  600. package/dist/utils/mixin.js +63 -0
  601. package/dist/utils/network.d.ts +73 -0
  602. package/dist/utils/network.js +90 -0
  603. package/dist/utils/security/allowed_origins.d.ts +16 -0
  604. package/dist/utils/security/allowed_origins.js +34 -0
  605. package/dist/utils/security/index.d.ts +2 -0
  606. package/dist/utils/security/index.js +7 -0
  607. package/dist/utils/security/redaction.d.ts +27 -0
  608. package/dist/utils/security/redaction.js +123 -0
  609. package/dist/utils/security/ssrf.d.ts +79 -0
  610. package/dist/utils/security/ssrf.js +327 -0
  611. package/dist/utils/shared.d.ts +35 -0
  612. package/dist/utils/shared.js +136 -0
  613. package/dist/utils/startup.d.ts +17 -0
  614. package/dist/utils/startup.js +130 -0
  615. package/dist/utils/string.d.ts +116 -0
  616. package/dist/utils/string.js +460 -0
  617. package/dist/utils/sync/base_notifier.d.ts +25 -0
  618. package/dist/utils/sync/base_notifier.js +16 -0
  619. package/dist/utils/sync/event_notifier.d.ts +38 -0
  620. package/dist/utils/sync/event_notifier.js +51 -0
  621. package/dist/utils/sync/index.d.ts +2 -0
  622. package/dist/utils/sync/index.js +7 -0
  623. package/dist/utils/text/alnum_utils.d.ts +109 -0
  624. package/dist/utils/text/alnum_utils.js +262 -0
  625. package/dist/utils/text/base_text_aggregator.d.ts +146 -0
  626. package/dist/utils/text/base_text_aggregator.js +102 -0
  627. package/dist/utils/text/base_text_filter.d.ts +54 -0
  628. package/dist/utils/text/base_text_filter.js +50 -0
  629. package/dist/utils/text/index.d.ts +2 -0
  630. package/dist/utils/text/index.js +7 -0
  631. package/dist/utils/text/markdown_text_filter.d.ts +147 -0
  632. package/dist/utils/text/markdown_text_filter.js +522 -0
  633. package/dist/utils/text/markup_utils.d.ts +54 -0
  634. package/dist/utils/text/markup_utils.js +156 -0
  635. package/dist/utils/text/pattern_pair_aggregator.d.ts +251 -0
  636. package/dist/utils/text/pattern_pair_aggregator.js +478 -0
  637. package/dist/utils/text/phonemes.d.ts +60 -0
  638. package/dist/utils/text/phonemes.js +172 -0
  639. package/dist/utils/text/simple_text_aggregator.d.ts +135 -0
  640. package/dist/utils/text/simple_text_aggregator.js +254 -0
  641. package/dist/utils/text/skip_tags_aggregator.d.ts +85 -0
  642. package/dist/utils/text/skip_tags_aggregator.js +147 -0
  643. package/dist/utils/text/transforms/pronunciations.d.ts +65 -0
  644. package/dist/utils/text/transforms/pronunciations.js +111 -0
  645. package/dist/utils/text/word_timestamp_utils.d.ts +26 -0
  646. package/dist/utils/text/word_timestamp_utils.js +52 -0
  647. package/dist/utils/time.d.ts +13 -0
  648. package/dist/utils/time.js +31 -0
  649. package/dist/utils/tracing/index.d.ts +3 -0
  650. package/dist/utils/tracing/index.js +8 -0
  651. package/dist/utils/tracing/service_attributes.d.ts +198 -0
  652. package/dist/utils/tracing/service_attributes.js +434 -0
  653. package/dist/utils/tracing/service_decorators.d.ts +214 -0
  654. package/dist/utils/tracing/service_decorators.js +1662 -0
  655. package/dist/utils/tracing/setup.d.ts +95 -0
  656. package/dist/utils/tracing/setup.js +110 -0
  657. package/dist/utils/tracing/tracing_context.d.ts +55 -0
  658. package/dist/utils/tracing/tracing_context.js +97 -0
  659. package/dist/utils/tracing/turn_trace_observer.d.ts +90 -0
  660. package/dist/utils/tracing/turn_trace_observer.js +219 -0
  661. package/dist/utils/types.d.ts +80 -0
  662. package/dist/utils/types.js +108 -0
  663. package/dist/utils/utils.d.ts +5 -0
  664. package/dist/utils/utils.js +22 -0
  665. package/dist/utils/yaml.d.ts +64 -0
  666. package/dist/utils/yaml.js +41 -0
  667. package/dist/version.d.ts +3 -0
  668. package/dist/version.js +7 -0
  669. package/dist/workers/base_worker.d.ts +772 -0
  670. package/dist/workers/base_worker.js +1298 -0
  671. package/dist/workers/index.d.ts +2 -0
  672. package/dist/workers/index.js +8 -0
  673. package/dist/workers/llm/backend_llm_worker.d.ts +552 -0
  674. package/dist/workers/llm/backend_llm_worker.js +1055 -0
  675. package/dist/workers/llm/index.d.ts +6 -0
  676. package/dist/workers/llm/index.js +11 -0
  677. package/dist/workers/llm/llm_context_worker.d.ts +66 -0
  678. package/dist/workers/llm/llm_context_worker.js +72 -0
  679. package/dist/workers/llm/llm_worker.d.ts +180 -0
  680. package/dist/workers/llm/llm_worker.js +323 -0
  681. package/dist/workers/llm/tool_decorator.d.ts +68 -0
  682. package/dist/workers/llm/tool_decorator.js +60 -0
  683. package/dist/workers/runner.d.ts +268 -0
  684. package/dist/workers/runner.js +489 -0
  685. package/dist/workers/ui/index.d.ts +22 -0
  686. package/dist/workers/ui/index.js +27 -0
  687. package/dist/workers/ui/ui_event_decorator.d.ts +43 -0
  688. package/dist/workers/ui/ui_event_decorator.js +75 -0
  689. package/dist/workers/ui/ui_job_context.d.ts +12 -0
  690. package/dist/workers/ui/ui_job_context.js +17 -0
  691. package/dist/workers/ui/ui_prompts.d.ts +21 -0
  692. package/dist/workers/ui/ui_prompts.js +41 -0
  693. package/dist/workers/ui/ui_tools.d.ts +32 -0
  694. package/dist/workers/ui/ui_tools.js +112 -0
  695. package/dist/workers/ui/ui_worker.d.ts +571 -0
  696. package/dist/workers/ui/ui_worker.js +1156 -0
  697. package/package.json +46 -3
  698. package/README.md +0 -5
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Base observer classes for monitoring frame flow in the Pipecat pipeline.
3
+ *
4
+ * Provides the foundation for observing frame transfers between processors
5
+ * without modifying the pipeline structure. Observers can be used for logging,
6
+ * debugging, analytics, and monitoring pipeline behavior.
7
+ */
8
+ import type { Frame } from "../frames/frames.ts";
9
+ import type { FrameDirection, FrameProcessor } from "../processors/frame_processor.ts";
10
+ import { BaseObject, type BaseObjectOptions } from "../utils/base_object.ts";
11
+ export interface FrameProcessedOptions {
12
+ /** The processor processing the frame. */
13
+ processor: FrameProcessor;
14
+ /** The frame being processed. */
15
+ frame: Frame;
16
+ /** The direction of the frame (e.g., downstream or upstream). */
17
+ direction: FrameDirection;
18
+ /** The time when the frame was pushed, based on the pipeline clock. */
19
+ timestamp: number;
20
+ }
21
+ /**
22
+ * Event data for frame processing in the pipeline.
23
+ *
24
+ * Represents an event where a frame is being processed by a processor. This
25
+ * data structure is typically used by observers to track the flow of frames
26
+ * through the pipeline for logging, debugging, or analytics purposes.
27
+ *
28
+ * - `processor`: the processor processing the frame.
29
+ * - `frame`: the frame being processed.
30
+ * - `direction`: the direction of the frame (e.g., downstream or upstream).
31
+ * - `timestamp`: the time when the frame was pushed, based on the pipeline clock.
32
+ */
33
+ export declare class FrameProcessed {
34
+ processor: FrameProcessor;
35
+ frame: Frame;
36
+ direction: FrameDirection;
37
+ timestamp: number;
38
+ constructor(options: FrameProcessedOptions);
39
+ }
40
+ export interface FramePushedOptions {
41
+ /** The processor sending the frame. */
42
+ source: FrameProcessor;
43
+ /** The processor receiving the frame. */
44
+ destination: FrameProcessor;
45
+ /** The frame being transferred. */
46
+ frame: Frame;
47
+ /** The direction of the transfer (e.g., downstream or upstream). */
48
+ direction: FrameDirection;
49
+ /** The time when the frame was pushed, based on the pipeline clock. */
50
+ timestamp: number;
51
+ /** Whether this is the first time the frame is pushed. Defaults to true. */
52
+ firstPush?: boolean;
53
+ }
54
+ /**
55
+ * Event data for frame transfers between processors in the pipeline.
56
+ *
57
+ * Represents an event where a frame is pushed from one processor to another
58
+ * within the pipeline. This data structure is typically used by observers
59
+ * to track the flow of frames through the pipeline for logging, debugging,
60
+ * or analytics purposes.
61
+ *
62
+ * - `source`: the processor sending the frame.
63
+ * - `destination`: the processor receiving the frame.
64
+ * - `frame`: the frame being transferred.
65
+ * - `direction`: the direction of the transfer (e.g., downstream or upstream).
66
+ * - `timestamp`: the time when the frame was pushed, based on the pipeline clock.
67
+ * - `firstPush`: whether this is the first time the frame is pushed. A frame
68
+ * is pushed again by every processor that passes it along.
69
+ */
70
+ export declare class FramePushed {
71
+ source: FrameProcessor;
72
+ destination: FrameProcessor;
73
+ frame: Frame;
74
+ direction: FrameDirection;
75
+ timestamp: number;
76
+ firstPush: boolean;
77
+ constructor(options: FramePushedOptions);
78
+ }
79
+ export interface ProcessorSetUpOptions {
80
+ /** The processor that was set up. */
81
+ processor: FrameProcessor;
82
+ /** When the processor's `setup()` began. */
83
+ startedAtNs: number;
84
+ /** When the processor's `setup()` returned. */
85
+ finishedAtNs: number;
86
+ }
87
+ /**
88
+ * Event data for a processor having been set up.
89
+ *
90
+ * Processors are set up concurrently and before any frame flows, so this is
91
+ * what a timing observer measures the work a processor does to get ready by.
92
+ * The times come from `monotonicNs()`, since the pipeline clock only starts
93
+ * once the pipeline does.
94
+ *
95
+ * - `processor`: the processor that was set up.
96
+ * - `startedAtNs`: when the processor's `setup()` began.
97
+ * - `finishedAtNs`: when the processor's `setup()` returned.
98
+ */
99
+ export declare class ProcessorSetUp {
100
+ processor: FrameProcessor;
101
+ startedAtNs: number;
102
+ finishedAtNs: number;
103
+ constructor(options: ProcessorSetUpOptions);
104
+ }
105
+ export interface BaseObserverOptions extends BaseObjectOptions {
106
+ /**
107
+ * Whether to observe every push of a frame, rather than only its first.
108
+ * Defaults to true.
109
+ */
110
+ observeEveryPush?: boolean;
111
+ }
112
+ /**
113
+ * Base class for pipeline frame observers.
114
+ *
115
+ * Observers can view all frames that flow through the pipeline without
116
+ * needing to inject processors into the pipeline structure. This enables
117
+ * non-intrusive monitoring capabilities such as frame logging, debugging,
118
+ * performance analysis, and analytics collection.
119
+ *
120
+ * A frame is pushed again by every processor that passes it along, and by
121
+ * default an observer observes every push. An observer that handles a frame
122
+ * once, such as one that reports the moment a frame represents, is created
123
+ * with `observeEveryPush: false` and is told about a frame only when it
124
+ * is first pushed.
125
+ */
126
+ export declare class BaseObserver extends BaseObject {
127
+ protected _observeEveryPush: boolean;
128
+ constructor(options?: BaseObserverOptions);
129
+ /** Whether the observer observes every push of a frame, not only the first. */
130
+ get observeEveryPush(): boolean;
131
+ /**
132
+ * Handle the event when a frame is being processed by a processor.
133
+ *
134
+ * Subclasses implement this to define specific behavior (e.g., logging,
135
+ * monitoring, debugging) when a frame is being processed by a processor.
136
+ *
137
+ * @param data The event data containing details about the frame processing.
138
+ */
139
+ onProcessFrame(_data: FrameProcessed): Promise<void>;
140
+ /**
141
+ * Handle the event when a frame is pushed from one processor to another.
142
+ *
143
+ * Subclasses implement this to define specific behavior (e.g., logging,
144
+ * monitoring, debugging) when a frame is transferred through the pipeline.
145
+ *
146
+ * A frame is pushed again by every processor that passes it along, so
147
+ * this is called once per hop, with `data.firstPush` set on the first
148
+ * one. An observer created with `observeEveryPush: false` is only
149
+ * called for that first push.
150
+ *
151
+ * @param data The event data containing details about the frame transfer.
152
+ */
153
+ onPushFrame(_data: FramePushed): Promise<void>;
154
+ /**
155
+ * Handle the event when a processor has been set up.
156
+ *
157
+ * A processor connects and does its other slow start-up work here, so
158
+ * this is where that cost can be measured. Processors are set up
159
+ * concurrently, so these arrive in the order they finish rather than in
160
+ * pipeline order.
161
+ *
162
+ * @param data The event data containing details about the processor setup.
163
+ */
164
+ onProcessorSetup(_data: ProcessorSetUp): Promise<void>;
165
+ /**
166
+ * Called when the pipeline has fully started.
167
+ *
168
+ * Fired after the `StartFrame` has been processed by all processors in the
169
+ * pipeline, including nested `ParallelPipeline` branches.
170
+ */
171
+ onPipelineStarted(): Promise<void>;
172
+ }
173
+ //# sourceMappingURL=base_observer.d.ts.map
@@ -0,0 +1,151 @@
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/observers/base_observer.py
6
+ import { BaseObject } from "../utils/base_object.js";
7
+ /**
8
+ * Event data for frame processing in the pipeline.
9
+ *
10
+ * Represents an event where a frame is being processed by a processor. This
11
+ * data structure is typically used by observers to track the flow of frames
12
+ * through the pipeline for logging, debugging, or analytics purposes.
13
+ *
14
+ * - `processor`: the processor processing the frame.
15
+ * - `frame`: the frame being processed.
16
+ * - `direction`: the direction of the frame (e.g., downstream or upstream).
17
+ * - `timestamp`: the time when the frame was pushed, based on the pipeline clock.
18
+ */
19
+ export class FrameProcessed {
20
+ processor;
21
+ frame;
22
+ direction;
23
+ timestamp;
24
+ constructor(options) {
25
+ this.processor = options.processor;
26
+ this.frame = options.frame;
27
+ this.direction = options.direction;
28
+ this.timestamp = options.timestamp;
29
+ }
30
+ }
31
+ /**
32
+ * Event data for frame transfers between processors in the pipeline.
33
+ *
34
+ * Represents an event where a frame is pushed from one processor to another
35
+ * within the pipeline. This data structure is typically used by observers
36
+ * to track the flow of frames through the pipeline for logging, debugging,
37
+ * or analytics purposes.
38
+ *
39
+ * - `source`: the processor sending the frame.
40
+ * - `destination`: the processor receiving the frame.
41
+ * - `frame`: the frame being transferred.
42
+ * - `direction`: the direction of the transfer (e.g., downstream or upstream).
43
+ * - `timestamp`: the time when the frame was pushed, based on the pipeline clock.
44
+ * - `firstPush`: whether this is the first time the frame is pushed. A frame
45
+ * is pushed again by every processor that passes it along.
46
+ */
47
+ export class FramePushed {
48
+ source;
49
+ destination;
50
+ frame;
51
+ direction;
52
+ timestamp;
53
+ firstPush;
54
+ constructor(options) {
55
+ this.source = options.source;
56
+ this.destination = options.destination;
57
+ this.frame = options.frame;
58
+ this.direction = options.direction;
59
+ this.timestamp = options.timestamp;
60
+ this.firstPush = options.firstPush ?? true;
61
+ }
62
+ }
63
+ /**
64
+ * Event data for a processor having been set up.
65
+ *
66
+ * Processors are set up concurrently and before any frame flows, so this is
67
+ * what a timing observer measures the work a processor does to get ready by.
68
+ * The times come from `monotonicNs()`, since the pipeline clock only starts
69
+ * once the pipeline does.
70
+ *
71
+ * - `processor`: the processor that was set up.
72
+ * - `startedAtNs`: when the processor's `setup()` began.
73
+ * - `finishedAtNs`: when the processor's `setup()` returned.
74
+ */
75
+ export class ProcessorSetUp {
76
+ processor;
77
+ startedAtNs;
78
+ finishedAtNs;
79
+ constructor(options) {
80
+ this.processor = options.processor;
81
+ this.startedAtNs = options.startedAtNs;
82
+ this.finishedAtNs = options.finishedAtNs;
83
+ }
84
+ }
85
+ /**
86
+ * Base class for pipeline frame observers.
87
+ *
88
+ * Observers can view all frames that flow through the pipeline without
89
+ * needing to inject processors into the pipeline structure. This enables
90
+ * non-intrusive monitoring capabilities such as frame logging, debugging,
91
+ * performance analysis, and analytics collection.
92
+ *
93
+ * A frame is pushed again by every processor that passes it along, and by
94
+ * default an observer observes every push. An observer that handles a frame
95
+ * once, such as one that reports the moment a frame represents, is created
96
+ * with `observeEveryPush: false` and is told about a frame only when it
97
+ * is first pushed.
98
+ */
99
+ export class BaseObserver extends BaseObject {
100
+ _observeEveryPush;
101
+ constructor(options = {}) {
102
+ super(options);
103
+ this._observeEveryPush = options.observeEveryPush ?? true;
104
+ }
105
+ /** Whether the observer observes every push of a frame, not only the first. */
106
+ get observeEveryPush() {
107
+ return this._observeEveryPush;
108
+ }
109
+ /**
110
+ * Handle the event when a frame is being processed by a processor.
111
+ *
112
+ * Subclasses implement this to define specific behavior (e.g., logging,
113
+ * monitoring, debugging) when a frame is being processed by a processor.
114
+ *
115
+ * @param data The event data containing details about the frame processing.
116
+ */
117
+ async onProcessFrame(_data) { }
118
+ /**
119
+ * Handle the event when a frame is pushed from one processor to another.
120
+ *
121
+ * Subclasses implement this to define specific behavior (e.g., logging,
122
+ * monitoring, debugging) when a frame is transferred through the pipeline.
123
+ *
124
+ * A frame is pushed again by every processor that passes it along, so
125
+ * this is called once per hop, with `data.firstPush` set on the first
126
+ * one. An observer created with `observeEveryPush: false` is only
127
+ * called for that first push.
128
+ *
129
+ * @param data The event data containing details about the frame transfer.
130
+ */
131
+ async onPushFrame(_data) { }
132
+ /**
133
+ * Handle the event when a processor has been set up.
134
+ *
135
+ * A processor connects and does its other slow start-up work here, so
136
+ * this is where that cost can be measured. Processors are set up
137
+ * concurrently, so these arrive in the order they finish rather than in
138
+ * pipeline order.
139
+ *
140
+ * @param data The event data containing details about the processor setup.
141
+ */
142
+ async onProcessorSetup(_data) { }
143
+ /**
144
+ * Called when the pipeline has fully started.
145
+ *
146
+ * Fired after the `StartFrame` has been processed by all processors in the
147
+ * pipeline, including nested `ParallelPipeline` branches.
148
+ */
149
+ async onPipelineStarted() { }
150
+ }
151
+ //# sourceMappingURL=base_observer.js.map
@@ -0,0 +1,75 @@
1
+ import { ErrorCategory } from "../utils/errors.ts";
2
+ import { BaseObserver, type BaseObserverOptions, type FramePushed } from "./base_observer.ts";
3
+ export interface ErrorEventOptions {
4
+ /** What went wrong, in the words of the processor that failed. */
5
+ message: string;
6
+ /**
7
+ * Why it failed, drawn from `ErrorCategory` and independent of the provider
8
+ * that failed: rejected credentials, an unreachable service, a malformed
9
+ * request and so on.
10
+ */
11
+ category: ErrorCategory;
12
+ /**
13
+ * The name of the exception behind the failure, where one caused it.
14
+ * Failures group by this where a message, carrying the particulars of a
15
+ * single occurrence, is too specific to group by.
16
+ */
17
+ exceptionType?: string | null;
18
+ /** The name of the processor that raised the error. */
19
+ processor: string;
20
+ /**
21
+ * Whether that processor can still do its job. A processor that can't keeps
22
+ * failing for as long as it is given work, so this separates a bad minute
23
+ * from the end of a capability.
24
+ */
25
+ processorUsable: boolean;
26
+ /** Unix timestamp of the failure. */
27
+ timestamp: number;
28
+ }
29
+ /** One failure, as the processor that raised it described it. */
30
+ export declare class ErrorEvent {
31
+ message: string;
32
+ category: ErrorCategory;
33
+ exceptionType: string | null;
34
+ processor: string;
35
+ processorUsable: boolean;
36
+ timestamp: number;
37
+ constructor(options: ErrorEventOptions);
38
+ }
39
+ export interface ErrorObserverOptions extends Omit<BaseObserverOptions, "observeEveryPush"> {
40
+ /**
41
+ * Reads the current time in seconds. Supplying one lets a test place
42
+ * failures without waiting. Defaults to `time()`.
43
+ */
44
+ timeSource?: () => number;
45
+ }
46
+ /**
47
+ * Reports each error a pipeline raises, once, where it is raised.
48
+ *
49
+ * An error is reported at its origin rather than where it ends up, and named
50
+ * for the processor that raised it rather than the one that passed it along.
51
+ *
52
+ * Events:
53
+ *
54
+ * - on_error(observer, event): Emitted for each error, as an `ErrorEvent`.
55
+ *
56
+ * @example
57
+ * const observer = new ErrorObserver();
58
+ *
59
+ * observer.eventHandler("on_error", async (observer, event: ErrorEvent) => {
60
+ * logger.info(JSON.stringify(event));
61
+ * });
62
+ */
63
+ export declare class ErrorObserver extends BaseObserver {
64
+ protected _now: () => number;
65
+ constructor(options?: ErrorObserverOptions);
66
+ /**
67
+ * Report an error frame.
68
+ *
69
+ * The first push of an error comes from the processor that failed.
70
+ *
71
+ * @param data Frame push event containing the frame and direction.
72
+ */
73
+ onPushFrame(data: FramePushed): Promise<void>;
74
+ }
75
+ //# sourceMappingURL=error_observer.d.ts.map
@@ -0,0 +1,87 @@
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/observers/error_observer.py
6
+ /**
7
+ * Observer reporting the failures a pipeline runs into.
8
+ *
9
+ * Errors travel upstream from the processor that raised them, and not all of
10
+ * them reach the end of that journey: a processor that answers for a failure
11
+ * itself — a service switcher that fails over to its next service, say —
12
+ * stops the error there. This observer reads each error where it is raised,
13
+ * so a session's failure history holds the ones that were recovered from as
14
+ * well as the ones that surfaced.
15
+ */
16
+ import { time } from "@pipedog/asyncio";
17
+ import { ErrorFrame } from "../frames/frames.js";
18
+ import { ErrorCategory } from "../utils/errors.js";
19
+ import { BaseObserver } from "./base_observer.js";
20
+ /** One failure, as the processor that raised it described it. */
21
+ export class ErrorEvent {
22
+ message;
23
+ category;
24
+ exceptionType;
25
+ processor;
26
+ processorUsable;
27
+ timestamp;
28
+ constructor(options) {
29
+ this.message = options.message;
30
+ this.category = options.category;
31
+ this.exceptionType = options.exceptionType ?? null;
32
+ this.processor = options.processor;
33
+ this.processorUsable = options.processorUsable;
34
+ this.timestamp = options.timestamp;
35
+ }
36
+ }
37
+ /**
38
+ * Reports each error a pipeline raises, once, where it is raised.
39
+ *
40
+ * An error is reported at its origin rather than where it ends up, and named
41
+ * for the processor that raised it rather than the one that passed it along.
42
+ *
43
+ * Events:
44
+ *
45
+ * - on_error(observer, event): Emitted for each error, as an `ErrorEvent`.
46
+ *
47
+ * @example
48
+ * const observer = new ErrorObserver();
49
+ *
50
+ * observer.eventHandler("on_error", async (observer, event: ErrorEvent) => {
51
+ * logger.info(JSON.stringify(event));
52
+ * });
53
+ */
54
+ export class ErrorObserver extends BaseObserver {
55
+ _now;
56
+ constructor(options = {}) {
57
+ super({ ...options, observeEveryPush: false });
58
+ this._now = options.timeSource ?? time;
59
+ this._registerEventHandler("on_error");
60
+ }
61
+ /**
62
+ * Report an error frame.
63
+ *
64
+ * The first push of an error comes from the processor that failed.
65
+ *
66
+ * @param data Frame push event containing the frame and direction.
67
+ */
68
+ async onPushFrame(data) {
69
+ const frame = data.frame;
70
+ if (!(frame instanceof ErrorFrame)) {
71
+ return;
72
+ }
73
+ // An error assembled by hand rather than reported through `pushError`
74
+ // arrives without the processor and category that method settles, so
75
+ // attribute it to the processor pushing it and report its cause as unknown.
76
+ const processor = frame.processor ?? data.source;
77
+ await this._callEventHandler("on_error", new ErrorEvent({
78
+ message: frame.error,
79
+ category: frame.category ?? ErrorCategory.UNKNOWN,
80
+ exceptionType: frame.exception ? frame.exception.constructor.name : null,
81
+ processor: processor.name,
82
+ processorUsable: processor.isUsable,
83
+ timestamp: this._now(),
84
+ }));
85
+ }
86
+ }
87
+ //# sourceMappingURL=error_observer.js.map
@@ -0,0 +1,157 @@
1
+ import { type Frame } from "../frames/frames.ts";
2
+ import { BaseObserver, type BaseObserverOptions, type FramePushed } from "./base_observer.ts";
3
+ /**
4
+ * Where a function call has got to.
5
+ *
6
+ * A call starts when the LLM asks for it and is in progress once it is
7
+ * running, which are two moments rather than one: calls run one at a time
8
+ * unless the service was built to run them in parallel, so a call can wait
9
+ * in between, and a call still waiting when the conversation moves on never
10
+ * runs at all. A call settles in one of four ways: it returned, its handler
11
+ * raised, it ran past its deadline, or it was cancelled — by an
12
+ * interruption, or by the LLM asking for it.
13
+ */
14
+ export declare const FunctionCallEventKind: {
15
+ readonly STARTED: "function_call_started";
16
+ readonly IN_PROGRESS: "function_call_in_progress";
17
+ readonly COMPLETED: "function_call_completed";
18
+ readonly FAILED: "function_call_failed";
19
+ readonly TIMED_OUT: "function_call_timed_out";
20
+ readonly CANCELLED: "function_call_cancelled";
21
+ };
22
+ export type FunctionCallEventKind = (typeof FunctionCallEventKind)[keyof typeof FunctionCallEventKind];
23
+ export interface FunctionCallEventOptions {
24
+ /** What happened to the call. */
25
+ kind: FunctionCallEventKind;
26
+ /** The name of the function. */
27
+ functionName: string;
28
+ /** The LLM's identifier for this call, unique within a conversation. */
29
+ toolCallId: string;
30
+ /** Unix timestamp of the moment. */
31
+ timestamp: number;
32
+ /**
33
+ * Identifies the calls the LLM asked for in one response, which run
34
+ * together. Set when the call goes in progress.
35
+ */
36
+ groupId?: string | null;
37
+ /**
38
+ * Whether the conversation waited for this call. A call that doesn't block
39
+ * is answered later through a developer message, while the LLM carries on
40
+ * talking. Set when the call goes in progress.
41
+ */
42
+ blocking?: boolean | null;
43
+ /**
44
+ * What the LLM passed to the function, when the observer is reporting
45
+ * arguments. Set both when the call starts and when it goes in progress,
46
+ * since a call can be reported at either moment without the other.
47
+ */
48
+ arguments?: unknown;
49
+ /**
50
+ * When the call started, on the moment it goes in progress, so the wait
51
+ * between the two reads from one record.
52
+ */
53
+ startedAt?: number | null;
54
+ /**
55
+ * When the call went in progress, on the moment that settles it, so the
56
+ * time it ran reads from one record.
57
+ */
58
+ inProgressAt?: number | null;
59
+ /** What the handler returned, when the observer is reporting results. */
60
+ result?: unknown;
61
+ /** What went wrong, on a call whose handler raised. */
62
+ error?: string | null;
63
+ }
64
+ /**
65
+ * One moment in the life of a function call.
66
+ *
67
+ * The moments that open a call describe it; the moment that settles it
68
+ * describes what became of it. Each names the call, so they read as a
69
+ * sequence without any of them repeating the others.
70
+ */
71
+ export declare class FunctionCallEvent {
72
+ kind: FunctionCallEventKind;
73
+ functionName: string;
74
+ toolCallId: string;
75
+ timestamp: number;
76
+ groupId: string | null;
77
+ blocking: boolean | null;
78
+ arguments: unknown;
79
+ startedAt: number | null;
80
+ inProgressAt: number | null;
81
+ result: unknown;
82
+ error: string | null;
83
+ constructor(options: FunctionCallEventOptions);
84
+ }
85
+ export interface FunctionCallObserverOptions extends Omit<BaseObserverOptions, "observeEveryPush"> {
86
+ /** Whether to report the arguments a call was made with. Defaults to true. */
87
+ includeArguments?: boolean;
88
+ /** Whether to report what a call returned. Defaults to false. */
89
+ includeResults?: boolean;
90
+ /**
91
+ * Reads the current time in seconds. Supplying one lets a test place
92
+ * moments without waiting. Defaults to `time()`.
93
+ */
94
+ timeSource?: () => number;
95
+ }
96
+ /**
97
+ * Reports each function call a conversation makes, from start to outcome.
98
+ *
99
+ * A call is reported at each moment it reaches rather than summarized once
100
+ * it is over, because the moments can be far apart and a call need not reach
101
+ * all of them: one waiting its turn to run is dropped if the conversation
102
+ * moves on, and one the conversation doesn't wait for can settle long after
103
+ * the turn that asked for it.
104
+ *
105
+ * Arguments and results are where a call holds whatever the conversation was
106
+ * about, so each is a choice: arguments travel by default, being small and
107
+ * the reason a call is worth reading at all, and results do not, being
108
+ * whatever a provider decided to return.
109
+ *
110
+ * Events:
111
+ *
112
+ * - on_function_call_event(observer, event): Emitted for each moment, as a
113
+ * `FunctionCallEvent`.
114
+ *
115
+ * @example
116
+ * const observer = new FunctionCallObserver();
117
+ *
118
+ * observer.eventHandler("on_function_call_event", async (observer, event: FunctionCallEvent) => {
119
+ * logger.info(JSON.stringify(event));
120
+ * });
121
+ */
122
+ export declare class FunctionCallObserver extends BaseObserver {
123
+ protected _includeArguments: boolean;
124
+ protected _includeResults: boolean;
125
+ protected _now: () => number;
126
+ protected _startedAt: Map<string, number>;
127
+ protected _inProgressAt: Map<string, number>;
128
+ constructor(options?: FunctionCallObserverOptions);
129
+ /**
130
+ * Report the moment a frame represents.
131
+ *
132
+ * @param data Frame push event containing the frame and direction.
133
+ */
134
+ onPushFrame(data: FramePushed): Promise<void>;
135
+ /**
136
+ * Build the moments a frame represents.
137
+ *
138
+ * One frame reports one moment, except the frame starting the calls an LLM
139
+ * response asked for, which reports one for each of them.
140
+ *
141
+ * @param frame The frame being pushed.
142
+ * @returns The moments, or an empty list if this frame is not part of a
143
+ * function call's life.
144
+ */
145
+ protected _asEvents(frame: Frame): FunctionCallEvent[];
146
+ /**
147
+ * Record the end of a call, naming when it began running if that is known.
148
+ *
149
+ * A call that began before the observer was watching settles without that
150
+ * moment rather than borrowing one from another call.
151
+ */
152
+ protected _settles(kind: FunctionCallEventKind, functionName: string, toolCallId: string, options?: {
153
+ result?: unknown;
154
+ error?: string | null;
155
+ }): FunctionCallEvent[];
156
+ }
157
+ //# sourceMappingURL=function_call_observer.d.ts.map