@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,434 @@
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/utils/tracing/service_attributes.py
6
+ /** Python `isinstance(value, (str, int, float, bool))`. */
7
+ function isPrimitive(value) {
8
+ return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
9
+ }
10
+ /** Convert a camelCase name back to upstream's snake_case (`voiceId` → `voice_id`). */
11
+ export function _camelToSnake(name) {
12
+ return name.replace(/[A-Z]/g, (c) => `_${c.toLowerCase()}`);
13
+ }
14
+ /** Set every primitive extra keyword argument (keys not in `known`) as an attribute. */
15
+ function setExtraAttributes(span, options, known) {
16
+ for (const [key, value] of Object.entries(options)) {
17
+ if (known.has(key))
18
+ continue;
19
+ if (isPrimitive(value)) {
20
+ span.setAttribute(key, value);
21
+ }
22
+ }
23
+ }
24
+ /** Set the primitive given fields of `settings` as `settings.<key>` attributes. */
25
+ function setSettingsAttributes(span, settings) {
26
+ // Use givenFields() defensively in case a service doesn't initialize all settings.
27
+ if (settings) {
28
+ for (const [key, value] of Object.entries(settings.givenFields())) {
29
+ if (isPrimitive(value)) {
30
+ span.setAttribute(`settings.${_camelToSnake(key)}`, value);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ /**
36
+ * Extract the standardized gen_ai.provider.name value from a service class name.
37
+ *
38
+ * Source:
39
+ * https://github.com/open-telemetry/semantic-conventions-genai/blob/main/docs/registry/attributes/gen-ai.md
40
+ *
41
+ * Uses standard OTel names where possible, with special case mappings for
42
+ * service names that don't follow the pattern.
43
+ *
44
+ * @param serviceName The service class name to extract provider name from.
45
+ * @returns The standardized gen_ai.provider.name value.
46
+ */
47
+ export function _getProviderNameFromServiceName(serviceName) {
48
+ const SPECIAL_CASE_MAPPINGS = {
49
+ // AWS
50
+ AWSBedrockLLMService: "aws.bedrock",
51
+ // Azure
52
+ AzureLLMService: "azure.ai.openai",
53
+ // Google
54
+ GoogleLLMService: "gcp.gemini",
55
+ GoogleVertexLLMService: "gcp.vertex_ai",
56
+ // Others
57
+ GrokLLMService: "x_ai",
58
+ MistralLLMService: "mistral_ai",
59
+ };
60
+ if (Object.hasOwn(SPECIAL_CASE_MAPPINGS, serviceName)) {
61
+ return SPECIAL_CASE_MAPPINGS[serviceName];
62
+ }
63
+ let provider;
64
+ if (serviceName.endsWith("LLMService")) {
65
+ provider = serviceName.slice(0, -10).toLowerCase();
66
+ }
67
+ else {
68
+ provider = serviceName.toLowerCase();
69
+ }
70
+ return provider;
71
+ }
72
+ const TTS_KNOWN = new Set([
73
+ "serviceName",
74
+ "model",
75
+ "voiceId",
76
+ "text",
77
+ "settings",
78
+ "characterCount",
79
+ "operationName",
80
+ "ttfb",
81
+ ]);
82
+ /**
83
+ * Add TTS-specific attributes to a span.
84
+ *
85
+ * @param span The span to add attributes to.
86
+ * @param options The TTS attributes; any other key is added as an attribute.
87
+ */
88
+ export function addTtsSpanAttributes(span, options) {
89
+ const operationName = options.operationName ?? "tts";
90
+ // Add standard attributes
91
+ span.setAttribute("gen_ai.provider.name", options.serviceName.replaceAll("TTSService", "").toLowerCase());
92
+ span.setAttribute("gen_ai.request.model", options.model);
93
+ span.setAttribute("gen_ai.operation.name", operationName);
94
+ span.setAttribute("gen_ai.output.type", "speech");
95
+ span.setAttribute("voice_id", options.voiceId);
96
+ // Add optional attributes
97
+ if (options.text) {
98
+ span.setAttribute("text", options.text);
99
+ }
100
+ if (options.characterCount !== null && options.characterCount !== undefined) {
101
+ span.setAttribute("metrics.character_count", options.characterCount);
102
+ }
103
+ if (options.ttfb !== null && options.ttfb !== undefined) {
104
+ span.setAttribute("metrics.ttfb", options.ttfb);
105
+ }
106
+ setSettingsAttributes(span, options.settings);
107
+ // Add any additional keyword arguments as attributes
108
+ setExtraAttributes(span, options, TTS_KNOWN);
109
+ }
110
+ const STT_KNOWN = new Set([
111
+ "serviceName",
112
+ "model",
113
+ "operationName",
114
+ "transcript",
115
+ "isFinal",
116
+ "language",
117
+ "userId",
118
+ "settings",
119
+ "vadEnabled",
120
+ "ttfb",
121
+ ]);
122
+ /**
123
+ * Add STT-specific attributes to a span.
124
+ *
125
+ * @param span The span to add attributes to.
126
+ * @param options The STT attributes; any other key is added as an attribute.
127
+ */
128
+ export function addSttSpanAttributes(span, options) {
129
+ const operationName = options.operationName ?? "stt";
130
+ // Add standard attributes
131
+ span.setAttribute("gen_ai.provider.name", options.serviceName.replaceAll("STTService", "").toLowerCase());
132
+ span.setAttribute("gen_ai.request.model", options.model);
133
+ span.setAttribute("gen_ai.operation.name", operationName);
134
+ span.setAttribute("vad_enabled", options.vadEnabled ?? false);
135
+ // Add optional attributes
136
+ if (options.transcript) {
137
+ span.setAttribute("transcript", options.transcript);
138
+ }
139
+ if (options.isFinal !== null && options.isFinal !== undefined) {
140
+ span.setAttribute("is_final", options.isFinal);
141
+ }
142
+ if (options.language) {
143
+ span.setAttribute("language", options.language);
144
+ }
145
+ if (options.userId) {
146
+ span.setAttribute("user_id", options.userId);
147
+ }
148
+ if (options.ttfb !== null && options.ttfb !== undefined) {
149
+ span.setAttribute("metrics.ttfb", options.ttfb);
150
+ }
151
+ setSettingsAttributes(span, options.settings);
152
+ // Add any additional keyword arguments as attributes
153
+ setExtraAttributes(span, options, STT_KNOWN);
154
+ }
155
+ const LLM_KNOWN = new Set([
156
+ "serviceName",
157
+ "model",
158
+ "stream",
159
+ "messages",
160
+ "output",
161
+ "tools",
162
+ "toolCount",
163
+ "toolChoice",
164
+ "systemInstructions",
165
+ "parameters",
166
+ "extraParameters",
167
+ "ttfb",
168
+ ]);
169
+ const GEN_AI_REQUEST_PARAMETERS = new Set([
170
+ "temperature",
171
+ "max_tokens",
172
+ "max_completion_tokens",
173
+ "top_p",
174
+ "top_k",
175
+ "frequency_penalty",
176
+ "presence_penalty",
177
+ "seed",
178
+ ]);
179
+ /**
180
+ * Add LLM-specific attributes to a span.
181
+ *
182
+ * @param span The span to add attributes to.
183
+ * @param options The LLM attributes; any other key is added as an attribute.
184
+ * Keys of `parameters` may be camelCase settings names; they are converted
185
+ * to snake_case attribute names.
186
+ */
187
+ export function addLlmSpanAttributes(span, options) {
188
+ // Add standard attributes
189
+ span.setAttribute("gen_ai.provider.name", _getProviderNameFromServiceName(options.serviceName));
190
+ span.setAttribute("gen_ai.request.model", options.model);
191
+ span.setAttribute("gen_ai.operation.name", "chat");
192
+ span.setAttribute("gen_ai.output.type", "text");
193
+ span.setAttribute("stream", options.stream ?? true);
194
+ // Add optional attributes
195
+ if (options.messages) {
196
+ span.setAttribute("input", options.messages);
197
+ }
198
+ if (options.output) {
199
+ span.setAttribute("output", options.output);
200
+ }
201
+ if (options.tools) {
202
+ span.setAttribute("tools", options.tools);
203
+ }
204
+ if (options.toolCount !== null && options.toolCount !== undefined) {
205
+ span.setAttribute("tool_count", options.toolCount);
206
+ }
207
+ if (options.toolChoice) {
208
+ span.setAttribute("tool_choice", options.toolChoice);
209
+ }
210
+ if (options.systemInstructions) {
211
+ span.setAttribute("gen_ai.system_instructions", options.systemInstructions);
212
+ }
213
+ if (options.ttfb !== null && options.ttfb !== undefined) {
214
+ span.setAttribute("metrics.ttfb", options.ttfb);
215
+ }
216
+ // Add parameters if provided
217
+ if (options.parameters) {
218
+ for (const [rawKey, value] of Object.entries(options.parameters)) {
219
+ if (isPrimitive(value)) {
220
+ const key = _camelToSnake(rawKey);
221
+ if (GEN_AI_REQUEST_PARAMETERS.has(key)) {
222
+ span.setAttribute(`gen_ai.request.${key}`, value);
223
+ }
224
+ else {
225
+ span.setAttribute(`param.${key}`, value);
226
+ }
227
+ }
228
+ }
229
+ }
230
+ // Add extra parameters if provided
231
+ if (options.extraParameters) {
232
+ for (const [key, value] of Object.entries(options.extraParameters)) {
233
+ if (isPrimitive(value)) {
234
+ span.setAttribute(`extra.${key}`, value);
235
+ }
236
+ }
237
+ }
238
+ // Add any additional keyword arguments as attributes
239
+ setExtraAttributes(span, options, LLM_KNOWN);
240
+ }
241
+ function isObject(value) {
242
+ return typeof value === "object" && value !== null;
243
+ }
244
+ const GEMINI_KNOWN = new Set([
245
+ "serviceName",
246
+ "model",
247
+ "operationName",
248
+ "voiceId",
249
+ "language",
250
+ "modalities",
251
+ "settings",
252
+ "tools",
253
+ "toolsSerialized",
254
+ "transcript",
255
+ "isInput",
256
+ "textOutput",
257
+ "audioDataSize",
258
+ ]);
259
+ /** An enum member upstream (`.value`); a plain string in TS. */
260
+ function enumValue(value) {
261
+ return isObject(value) && "value" in value ? value.value : value;
262
+ }
263
+ /**
264
+ * Add Gemini Live specific attributes to a span.
265
+ *
266
+ * @param span The span to add attributes to.
267
+ * @param options The Gemini Live attributes; any other key is added as an attribute.
268
+ */
269
+ export function addGeminiLiveSpanAttributes(span, options) {
270
+ // Add standard attributes
271
+ span.setAttribute("gen_ai.provider.name", "gcp.gemini");
272
+ span.setAttribute("gen_ai.request.model", options.model);
273
+ span.setAttribute("gen_ai.operation.name", options.operationName);
274
+ span.setAttribute("service.operation", options.operationName);
275
+ // Add optional attributes
276
+ if (options.voiceId) {
277
+ span.setAttribute("voice_id", options.voiceId);
278
+ }
279
+ if (options.language) {
280
+ span.setAttribute("language", options.language);
281
+ }
282
+ if (options.modalities) {
283
+ span.setAttribute("modalities", options.modalities);
284
+ }
285
+ if (options.transcript) {
286
+ span.setAttribute("transcript", options.transcript);
287
+ if (options.isInput !== null && options.isInput !== undefined) {
288
+ span.setAttribute("transcript.is_input", options.isInput);
289
+ }
290
+ }
291
+ if (options.textOutput) {
292
+ span.setAttribute("text_output", options.textOutput);
293
+ }
294
+ if (options.audioDataSize !== null && options.audioDataSize !== undefined) {
295
+ span.setAttribute("audio.data_size_bytes", options.audioDataSize);
296
+ }
297
+ const tools = options.tools;
298
+ if (tools && tools.length > 0) {
299
+ span.setAttribute("tools.count", tools.length);
300
+ span.setAttribute("tools.available", true);
301
+ // Add individual tool names for easier filtering
302
+ const toolNames = [];
303
+ for (const tool of tools) {
304
+ if (isObject(tool) && "name" in tool) {
305
+ const toolName = tool.name;
306
+ if (toolName !== null && toolName !== undefined) {
307
+ toolNames.push(String(toolName));
308
+ }
309
+ }
310
+ }
311
+ if (toolNames.length > 0) {
312
+ span.setAttribute("tools.names", toolNames.join(","));
313
+ }
314
+ }
315
+ if (options.toolsSerialized) {
316
+ span.setAttribute("tools.definitions", options.toolsSerialized);
317
+ }
318
+ // Use givenFields() defensively in case a service doesn't initialize all settings.
319
+ if (options.settings) {
320
+ for (const [key, value] of Object.entries(options.settings.givenFields())) {
321
+ if (isPrimitive(value)) {
322
+ span.setAttribute(`settings.${_camelToSnake(key)}`, value);
323
+ }
324
+ else if (key === "vad" && value) {
325
+ // Handle VAD settings specially
326
+ if (isObject(value)) {
327
+ if ("disabled" in value && value.disabled !== null && value.disabled !== undefined) {
328
+ span.setAttribute("settings.vad.disabled", value.disabled);
329
+ }
330
+ if ("startSensitivity" in value && value.startSensitivity) {
331
+ span.setAttribute("settings.vad.start_sensitivity", String(enumValue(value.startSensitivity)));
332
+ }
333
+ if ("endSensitivity" in value && value.endSensitivity) {
334
+ span.setAttribute("settings.vad.end_sensitivity", String(enumValue(value.endSensitivity)));
335
+ }
336
+ }
337
+ }
338
+ }
339
+ }
340
+ // Add any additional keyword arguments as attributes
341
+ setExtraAttributes(span, options, GEMINI_KNOWN);
342
+ }
343
+ const OPENAI_REALTIME_KNOWN = new Set([
344
+ "serviceName",
345
+ "model",
346
+ "operationName",
347
+ "sessionProperties",
348
+ "transcript",
349
+ "isInput",
350
+ "contextMessages",
351
+ "functionCalls",
352
+ "tools",
353
+ "toolsSerialized",
354
+ "audioDataSize",
355
+ ]);
356
+ /**
357
+ * Add OpenAI Realtime specific attributes to a span.
358
+ *
359
+ * @param span The span to add attributes to.
360
+ * @param options The OpenAI Realtime attributes; any other key is added as an attribute.
361
+ */
362
+ export function addOpenaiRealtimeSpanAttributes(span, options) {
363
+ // Add standard attributes
364
+ span.setAttribute("gen_ai.provider.name", "openai");
365
+ span.setAttribute("gen_ai.request.model", options.model);
366
+ span.setAttribute("gen_ai.operation.name", options.operationName);
367
+ span.setAttribute("service.operation", options.operationName);
368
+ // Add optional attributes
369
+ if (options.transcript) {
370
+ span.setAttribute("transcript", options.transcript);
371
+ if (options.isInput !== null && options.isInput !== undefined) {
372
+ span.setAttribute("transcript.is_input", options.isInput);
373
+ }
374
+ }
375
+ if (options.contextMessages) {
376
+ span.setAttribute("input", options.contextMessages);
377
+ }
378
+ if (options.audioDataSize !== null && options.audioDataSize !== undefined) {
379
+ span.setAttribute("audio.data_size_bytes", options.audioDataSize);
380
+ }
381
+ const tools = options.tools;
382
+ if (tools && tools.length > 0) {
383
+ span.setAttribute("tools.count", tools.length);
384
+ span.setAttribute("tools.available", true);
385
+ // Add individual tool names for easier filtering
386
+ const toolNames = [];
387
+ for (const tool of tools) {
388
+ if (isObject(tool) && "name" in tool) {
389
+ toolNames.push(String(tool.name));
390
+ }
391
+ else if (isObject(tool) && isObject(tool.function) && "name" in tool.function) {
392
+ toolNames.push(String(tool.function.name));
393
+ }
394
+ }
395
+ if (toolNames.length > 0) {
396
+ span.setAttribute("tools.names", toolNames.join(","));
397
+ }
398
+ }
399
+ if (options.toolsSerialized) {
400
+ span.setAttribute("tools.definitions", options.toolsSerialized);
401
+ }
402
+ const functionCalls = options.functionCalls;
403
+ if (functionCalls && functionCalls.length > 0) {
404
+ span.setAttribute("function_calls.count", functionCalls.length);
405
+ const call = functionCalls[0];
406
+ if (isObject(call) && "name" in call) {
407
+ span.setAttribute("function_calls.first_name", String(call.name));
408
+ }
409
+ }
410
+ // Add session properties if provided
411
+ if (options.sessionProperties) {
412
+ for (const [key, value] of Object.entries(options.sessionProperties)) {
413
+ if (isPrimitive(value)) {
414
+ span.setAttribute(`session.${key}`, value);
415
+ }
416
+ else if (key === "turn_detection" && value !== null && value !== undefined) {
417
+ if (typeof value === "boolean") {
418
+ span.setAttribute("session.turn_detection.enabled", value);
419
+ }
420
+ else if (isObject(value)) {
421
+ span.setAttribute("session.turn_detection.enabled", true);
422
+ for (const [tdKey, tdValue] of Object.entries(value)) {
423
+ if (isPrimitive(tdValue)) {
424
+ span.setAttribute(`session.turn_detection.${tdKey}`, tdValue);
425
+ }
426
+ }
427
+ }
428
+ }
429
+ }
430
+ }
431
+ // Add any additional keyword arguments as attributes
432
+ setExtraAttributes(span, options, OPENAI_REALTIME_KNOWN);
433
+ }
434
+ //# sourceMappingURL=service_attributes.js.map
@@ -0,0 +1,214 @@
1
+ import { type OtelContext, type OtelSpan } from "./setup.ts";
2
+ type Service = any;
3
+ /** A decorator returned by the `traced*` functions. */
4
+ export type TracedMethodDecorator = (value: any, context?: any, descriptor?: PropertyDescriptor) => any;
5
+ /**
6
+ * Get the model name from a service instance.
7
+ *
8
+ * This is a bit of a mess — there were multiple places a model name could live.
9
+ * Soon, `this._settings` should be the only source of truth about model name.
10
+ * In fact...it might already be the case, but juuuuust to be safe, we'll
11
+ * check all the places we used to store it.
12
+ */
13
+ export declare function _getModelName(service: Service): string;
14
+ /**
15
+ * Get the current turn's tracing context if available.
16
+ *
17
+ * @param service The service instance.
18
+ * @returns The turn context, or null if unavailable.
19
+ */
20
+ export declare function _getTurnContext(service: Service): OtelContext | null;
21
+ /**
22
+ * Get the parent service span context (internal use only).
23
+ *
24
+ * This looks for the service span that was created when the service was initialized,
25
+ * or falls back to the conversation context if available.
26
+ *
27
+ * @param service The service instance.
28
+ * @returns The parent service context, or null if unavailable.
29
+ */
30
+ export declare function _getParentServiceContext(service: Service): OtelContext | null;
31
+ /**
32
+ * Resolve the effective system instruction for tracing (internal use only).
33
+ *
34
+ * System instructions can live on the LLM service (`settings.systemInstruction`,
35
+ * the norm — and the composed source of truth, see
36
+ * `LLMService._composeSystemInstruction`) or be supplied as an initial
37
+ * system message in the context. The service setting takes priority,
38
+ * matching service behavior.
39
+ *
40
+ * @param service The LLM service instance.
41
+ * @param context The universal `LLMContext`, or null.
42
+ * @returns The system instruction text, or null if none is present.
43
+ */
44
+ export declare function _getSystemInstruction(service: Service, context: Service): string | null;
45
+ /**
46
+ * Add token usage metrics to a span (internal use only).
47
+ *
48
+ * @param span The span to add token metrics to.
49
+ * @param tokenUsage A dict (snake_case keys) or `LLMTokenUsage` object
50
+ * containing token usage information.
51
+ */
52
+ export declare function _addTokenUsageToSpan(span: OtelSpan, tokenUsage: unknown): void;
53
+ /**
54
+ * Add STT usage metrics to a span (internal use only).
55
+ *
56
+ * @param span The span to add usage metrics to.
57
+ * @param usage `STTUsage` object with audio seconds.
58
+ */
59
+ export declare function _addSttUsageToSpan(span: OtelSpan, usage: Service): void;
60
+ export interface TracedOptions {
61
+ /** Custom span name. */
62
+ name?: string | null;
63
+ }
64
+ /**
65
+ * Trace TTS service methods with TTS-specific attributes.
66
+ *
67
+ * Automatically captures and records:
68
+ *
69
+ * - Service name and model information
70
+ * - Voice ID and settings
71
+ * - Character count and text content
72
+ * - Performance metrics like TTFB
73
+ *
74
+ * The span is scoped to the full synthesis operation, from
75
+ * `createAudioContext` until `TTSStoppedFrame` (or `removeAudioContext` as a
76
+ * safety net), so TTFB and any other runtime-computed metrics land on the
77
+ * correct span even when audio chunks are delivered after `runTts` returns
78
+ * (e.g. WebSocket streaming TTS services).
79
+ *
80
+ * Works with both async functions and generators.
81
+ *
82
+ * @example
83
+ * class MyTTSService extends TTSService {
84
+ * @tracedTts
85
+ * async *runTts(text: string, contextId: string) { ... }
86
+ * }
87
+ *
88
+ * @param func The TTS method to trace (when used as `@tracedTts`).
89
+ * @param options.name Custom span name. Defaults to service type and class name.
90
+ * @returns Wrapped method with TTS-specific tracing, or a decorator when
91
+ * called with options.
92
+ */
93
+ export declare function tracedTts(options?: TracedOptions): TracedMethodDecorator;
94
+ export declare function tracedTts(func: any, context?: any, descriptor?: PropertyDescriptor): any;
95
+ /**
96
+ * Apply `tracedTts` to `owner[attrName]` without decorator syntax.
97
+ *
98
+ * Equivalent to upstream's class-definition-time `__set_name__` hook: wraps
99
+ * `owner.setup` so the audio-context patches install on every instance, and
100
+ * replaces the method with its traced wrapper.
101
+ *
102
+ * @example
103
+ * class MyTTSService extends TTSService {
104
+ * async *runTts(text: string, contextId: string) { ... }
105
+ * static {
106
+ * installTracedTts(this.prototype, "runTts");
107
+ * }
108
+ * }
109
+ */
110
+ export declare function installTracedTts(owner: object, attrName: string, _options?: TracedOptions): void;
111
+ /**
112
+ * Trace STT service methods with transcription attributes.
113
+ *
114
+ * Automatically captures and records:
115
+ *
116
+ * - Service name and model information
117
+ * - Transcription text and final status
118
+ * - Language information
119
+ * - Performance metrics like TTFB
120
+ * - Usage metrics (audio seconds) when the service reports them via
121
+ * `startSttUsageMetrics`
122
+ *
123
+ * The span is scoped to one STT segment, from `VADUserStartedSpeakingFrame`
124
+ * (or the first `TranscriptionFrame` when VAD did not fire, e.g. whispered
125
+ * speech) until a finalized `TranscriptionFrame`. Multiple finalized
126
+ * transcripts in a single user turn produce multiple sequential spans, each
127
+ * anchored at the point speech for that segment began. `metrics.ttfb` is read
128
+ * after the base `pushFrame` runs `stopTtfbMetrics` for the finalized frame,
129
+ * so the value is correct for the closing span.
130
+ *
131
+ * @param func The STT method to trace (when used as `@tracedStt`).
132
+ * @param options.name Custom span name. Defaults to function name.
133
+ * @returns The original method unchanged. The decorator's class-level work is
134
+ * to install a `pushFrame` wrapper on the owning class (or, as a TC39
135
+ * decorator, on each instance) that owns the span lifetime.
136
+ */
137
+ export declare function tracedStt(options?: TracedOptions): TracedMethodDecorator;
138
+ export declare function tracedStt(func: any, context?: any, descriptor?: PropertyDescriptor): any;
139
+ /**
140
+ * Apply `tracedStt` to `owner` without decorator syntax.
141
+ *
142
+ * Equivalent to upstream's class-definition-time `__set_name__` hook: wraps
143
+ * `pushFrame`, `stopTtfbMetrics` and `startSttUsageMetrics` so VAD,
144
+ * transcription, and finalization events drive the span lifecycle. The
145
+ * decorated method itself runs unchanged.
146
+ *
147
+ * @example
148
+ * class MySTTService extends STTService {
149
+ * static {
150
+ * installTracedStt(this.prototype, "_handleTranscription");
151
+ * }
152
+ * }
153
+ */
154
+ export declare function installTracedStt(owner: object, _attrName?: string, _options?: TracedOptions): void;
155
+ /**
156
+ * Trace LLM service methods with LLM-specific attributes.
157
+ *
158
+ * Automatically captures and records:
159
+ *
160
+ * - Service name and model information
161
+ * - Context content and messages
162
+ * - Tool configurations
163
+ * - Token usage metrics
164
+ * - Performance metrics like TTFB
165
+ * - Aggregated output text
166
+ *
167
+ * @param func The LLM method to trace (when used as `@tracedLlm`).
168
+ * @param options.name Custom span name. Defaults to service type and class name.
169
+ * @returns Wrapped method with LLM-specific tracing, or a decorator when
170
+ * called with options.
171
+ */
172
+ export declare function tracedLlm(options?: TracedOptions): TracedMethodDecorator;
173
+ export declare function tracedLlm(func: any, context?: any, descriptor?: PropertyDescriptor): any;
174
+ /**
175
+ * Get the AUDIO token count from a Gemini modality breakdown, if reported.
176
+ *
177
+ * Duck-typed (`entry.modality` / `entry.tokenCount`) so this module doesn't
178
+ * depend on Google types. Gemini omits modalities with no tokens (and omits
179
+ * the list entirely when there is no breakdown), so absence means "not
180
+ * reported" rather than zero.
181
+ *
182
+ * @param details A modality breakdown from usage metadata, e.g. `promptTokensDetails`.
183
+ * @returns The AUDIO token count, or null if not reported.
184
+ */
185
+ export declare function _geminiAudioModalityTokens(details: unknown): number | null;
186
+ /**
187
+ * Trace Gemini Live service methods with operation-specific attributes.
188
+ *
189
+ * This decorator automatically captures relevant information based on the operation type:
190
+ *
191
+ * - llm_setup: Configuration, tools definitions, and system instructions
192
+ * - llm_tool_call: Function call information
193
+ * - llm_tool_result: Function execution results
194
+ * - llm_response: Complete LLM response with usage and output
195
+ *
196
+ * @param operation The operation name (matches the event type being handled).
197
+ * @returns A decorator that wraps the method with Gemini Live specific tracing.
198
+ */
199
+ export declare function tracedGeminiLive(operation: string): TracedMethodDecorator;
200
+ /**
201
+ * Trace OpenAI Realtime service methods with operation-specific attributes.
202
+ *
203
+ * This decorator automatically captures relevant information based on the operation type:
204
+ *
205
+ * - llm_setup: Session configuration and tools
206
+ * - llm_request: Context and input messages
207
+ * - llm_response: Usage metadata, output, and function calls
208
+ *
209
+ * @param operation The operation name (matches the event type being handled).
210
+ * @returns A decorator that wraps the method with OpenAI Realtime specific tracing.
211
+ */
212
+ export declare function tracedOpenaiRealtime(operation: string): TracedMethodDecorator;
213
+ export {};
214
+ //# sourceMappingURL=service_decorators.d.ts.map