@pinecall/room 0.1.2 → 0.1.4

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 (87) hide show
  1. package/README.md +44 -6
  2. package/dist/code.d.ts +14 -0
  3. package/dist/code.d.ts.map +1 -0
  4. package/dist/code.js +46 -0
  5. package/dist/code.js.map +1 -0
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/karaoke.d.ts +1 -1
  9. package/dist/karaoke.d.ts.map +1 -1
  10. package/dist/karaoke.js +2 -1
  11. package/dist/karaoke.js.map +1 -1
  12. package/dist/log/backoff.d.ts +11 -0
  13. package/dist/log/backoff.d.ts.map +1 -0
  14. package/dist/log/backoff.js +30 -0
  15. package/dist/log/backoff.js.map +1 -0
  16. package/dist/log/fold.d.ts +2 -1
  17. package/dist/log/fold.d.ts.map +1 -1
  18. package/dist/log/fold.js +4 -1
  19. package/dist/log/fold.js.map +1 -1
  20. package/dist/log/follow.d.ts.map +1 -1
  21. package/dist/log/follow.js +5 -21
  22. package/dist/log/follow.js.map +1 -1
  23. package/dist/react/index.d.ts +1 -1
  24. package/dist/react/index.d.ts.map +1 -1
  25. package/dist/react/index.js +5 -2
  26. package/dist/react/index.js.map +1 -1
  27. package/dist/reading.d.ts +11 -0
  28. package/dist/reading.d.ts.map +1 -0
  29. package/dist/reading.js +18 -0
  30. package/dist/reading.js.map +1 -0
  31. package/dist/room.d.ts +15 -5
  32. package/dist/room.d.ts.map +1 -1
  33. package/dist/room.js +45 -22
  34. package/dist/room.js.map +1 -1
  35. package/dist/rows.d.ts +1 -1
  36. package/dist/rows.d.ts.map +1 -1
  37. package/dist/rows.js +1 -0
  38. package/dist/rows.js.map +1 -1
  39. package/dist/server/index.d.ts +22 -1
  40. package/dist/server/index.d.ts.map +1 -1
  41. package/dist/server/index.js +15 -1
  42. package/dist/server/index.js.map +1 -1
  43. package/dist/wire/codec.d.ts +22 -0
  44. package/dist/wire/codec.d.ts.map +1 -0
  45. package/dist/wire/codec.js +23 -0
  46. package/dist/wire/codec.js.map +1 -0
  47. package/dist/wire/defs.d.ts +302 -0
  48. package/dist/wire/defs.d.ts.map +1 -0
  49. package/dist/wire/defs.js +171 -0
  50. package/dist/wire/defs.js.map +1 -0
  51. package/dist/wire/envelope.d.ts +17 -0
  52. package/dist/wire/envelope.d.ts.map +1 -0
  53. package/dist/wire/envelope.js +16 -0
  54. package/dist/wire/envelope.js.map +1 -0
  55. package/dist/wire/events-call.d.ts +422 -0
  56. package/dist/wire/events-call.d.ts.map +1 -0
  57. package/dist/wire/events-call.js +182 -0
  58. package/dist/wire/events-call.js.map +1 -0
  59. package/dist/wire/events.d.ts +923 -0
  60. package/dist/wire/events.d.ts.map +1 -0
  61. package/dist/wire/events.js +292 -0
  62. package/dist/wire/events.js.map +1 -0
  63. package/dist/wire/metrics.d.ts +366 -0
  64. package/dist/wire/metrics.d.ts.map +1 -0
  65. package/dist/wire/metrics.js +269 -0
  66. package/dist/wire/metrics.js.map +1 -0
  67. package/dist/wire/reduce.d.ts +12 -0
  68. package/dist/wire/reduce.d.ts.map +1 -0
  69. package/dist/wire/reduce.js +375 -0
  70. package/dist/wire/reduce.js.map +1 -0
  71. package/dist/wire/registry.d.ts +1395 -0
  72. package/dist/wire/registry.d.ts.map +1 -0
  73. package/dist/wire/registry.js +81 -0
  74. package/dist/wire/registry.js.map +1 -0
  75. package/dist/wire/rest.d.ts +18 -0
  76. package/dist/wire/rest.d.ts.map +1 -0
  77. package/dist/wire/rest.js +14 -0
  78. package/dist/wire/rest.js.map +1 -0
  79. package/dist/wire/room.d.ts +106 -0
  80. package/dist/wire/room.d.ts.map +1 -0
  81. package/dist/wire/room.js +73 -0
  82. package/dist/wire/room.js.map +1 -0
  83. package/dist/wire/state.d.ts +915 -0
  84. package/dist/wire/state.d.ts.map +1 -0
  85. package/dist/wire/state.js +189 -0
  86. package/dist/wire/state.js.map +1 -0
  87. package/package.json +3 -3
@@ -0,0 +1,366 @@
1
+ /** The metrics livekit reports for a turn and a model, as the runtime writes them. */
2
+ import { z } from "zod";
3
+ /** Which model and provider produced a block. livekit's Metadata, nested exactly as it nests it. */
4
+ export declare const MetadataSchema: z.ZodObject<{
5
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
6
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
7
+ }, z.core.$strict>;
8
+ /**
9
+ * One LLM request, measured by the session's llm node. Two arrive for one reply when a tool ran in
10
+ * between; they share the speech_id.
11
+ */
12
+ export declare const LLMMetricsSchema: z.ZodObject<{
13
+ type: z.ZodLiteral<"llm_metrics">;
14
+ label: z.ZodString;
15
+ request_id: z.ZodString;
16
+ timestamp: z.ZodNumber;
17
+ duration: z.ZodNumber;
18
+ ttft: z.ZodNumber;
19
+ cancelled: z.ZodBoolean;
20
+ completion_tokens: z.ZodInt;
21
+ prompt_tokens: z.ZodInt;
22
+ prompt_cached_tokens: z.ZodInt;
23
+ cache_creation_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
24
+ reasoning_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
25
+ total_tokens: z.ZodInt;
26
+ tokens_per_second: z.ZodNumber;
27
+ speech_id: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
28
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
29
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
30
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
31
+ }, z.core.$strict>>>>;
32
+ }, z.core.$strict>;
33
+ /**
34
+ * One speech-to-text request, measured by the session's stt node. A streaming STT reports one per
35
+ * connection segment, with duration 0.
36
+ */
37
+ export declare const STTMetricsSchema: z.ZodObject<{
38
+ type: z.ZodLiteral<"stt_metrics">;
39
+ label: z.ZodString;
40
+ request_id: z.ZodString;
41
+ timestamp: z.ZodNumber;
42
+ duration: z.ZodNumber;
43
+ audio_duration: z.ZodNumber;
44
+ input_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
45
+ output_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
46
+ streamed: z.ZodBoolean;
47
+ acquire_time: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
48
+ connection_reused: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
49
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
50
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
51
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
52
+ }, z.core.$strict>>>>;
53
+ }, z.core.$strict>;
54
+ /**
55
+ * One text-to-speech request, measured by the session's tts node. One reply may produce several,
56
+ * one per sentence segment.
57
+ */
58
+ export declare const TTSMetricsSchema: z.ZodObject<{
59
+ type: z.ZodLiteral<"tts_metrics">;
60
+ label: z.ZodString;
61
+ request_id: z.ZodString;
62
+ timestamp: z.ZodNumber;
63
+ ttfb: z.ZodNumber;
64
+ duration: z.ZodNumber;
65
+ audio_duration: z.ZodNumber;
66
+ cancelled: z.ZodBoolean;
67
+ characters_count: z.ZodInt;
68
+ input_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
69
+ output_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
70
+ streamed: z.ZodBoolean;
71
+ acquire_time: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
72
+ connection_reused: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
73
+ segment_id: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
74
+ speech_id: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
75
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
76
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
77
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
78
+ }, z.core.$strict>>>>;
79
+ }, z.core.$strict>;
80
+ /**
81
+ * The voice activity detector's health, reported about once a second while it runs. Not a per-turn
82
+ * measure.
83
+ */
84
+ export declare const VADMetricsSchema: z.ZodObject<{
85
+ type: z.ZodLiteral<"vad_metrics">;
86
+ label: z.ZodString;
87
+ timestamp: z.ZodNumber;
88
+ idle_time: z.ZodNumber;
89
+ inference_duration_total: z.ZodNumber;
90
+ inference_count: z.ZodInt;
91
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
92
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
93
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
94
+ }, z.core.$strict>>>>;
95
+ }, z.core.$strict>;
96
+ /** How long the session took to decide that the caller had finished. One per user turn. */
97
+ export declare const EOUMetricsSchema: z.ZodObject<{
98
+ type: z.ZodLiteral<"eou_metrics">;
99
+ timestamp: z.ZodNumber;
100
+ end_of_utterance_delay: z.ZodNumber;
101
+ transcription_delay: z.ZodNumber;
102
+ on_user_turn_completed_delay: z.ZodNumber;
103
+ speech_id: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
104
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
105
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
106
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
107
+ }, z.core.$strict>>>>;
108
+ }, z.core.$strict>;
109
+ /**
110
+ * One prediction by the end-of-turn model. It listens to the audio and says whether the caller is
111
+ * done.
112
+ */
113
+ export declare const EOTInferenceMetricsSchema: z.ZodObject<{
114
+ type: z.ZodLiteral<"eot_inference_metrics">;
115
+ timestamp: z.ZodNumber;
116
+ total_duration: z.ZodNumber;
117
+ detection_delay: z.ZodNumber;
118
+ prediction_duration: z.ZodNumber;
119
+ num_requests: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
120
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
121
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
122
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
123
+ }, z.core.$strict>>>>;
124
+ }, z.core.$strict>;
125
+ /**
126
+ * The interruption detector's latest inference and its running counts. Reported when the detector
127
+ * runs, not per turn.
128
+ */
129
+ export declare const InterruptionMetricsSchema: z.ZodObject<{
130
+ type: z.ZodLiteral<"interruption_metrics">;
131
+ timestamp: z.ZodNumber;
132
+ total_duration: z.ZodNumber;
133
+ prediction_duration: z.ZodNumber;
134
+ detection_delay: z.ZodNumber;
135
+ num_interruptions: z.ZodInt;
136
+ num_backchannels: z.ZodInt;
137
+ num_requests: z.ZodInt;
138
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
139
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
140
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
141
+ }, z.core.$strict>>>>;
142
+ }, z.core.$strict>;
143
+ /** Of a realtime model's cached input, how much was audio, text or image. */
144
+ export declare const RealtimeCachedTokenDetailsSchema: z.ZodObject<{
145
+ audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
146
+ text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
147
+ image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
148
+ }, z.core.$strict>;
149
+ /** What a realtime model read, by kind, with the cached part broken out. */
150
+ export declare const RealtimeInputTokenDetailsSchema: z.ZodObject<{
151
+ audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
152
+ text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
153
+ image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
154
+ cached_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
155
+ cached_tokens_details: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
156
+ audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
157
+ text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
158
+ image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
159
+ }, z.core.$strict>>>>;
160
+ }, z.core.$strict>;
161
+ /** What a realtime model produced, by kind. */
162
+ export declare const RealtimeOutputTokenDetailsSchema: z.ZodObject<{
163
+ text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
164
+ audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
165
+ image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
166
+ }, z.core.$strict>;
167
+ /**
168
+ * One response from a speech-to-speech model, which replaces STT, LLM and TTS at once. Pinecall's
169
+ * default pipeline never emits it; a realtime provider would.
170
+ */
171
+ export declare const RealtimeModelMetricsSchema: z.ZodObject<{
172
+ type: z.ZodLiteral<"realtime_model_metrics">;
173
+ label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
174
+ request_id: z.ZodString;
175
+ timestamp: z.ZodNumber;
176
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
177
+ session_duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
178
+ ttft: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
179
+ cancelled: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
180
+ input_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
181
+ output_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
182
+ total_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
183
+ tokens_per_second: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
184
+ input_token_details: z.ZodObject<{
185
+ audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
186
+ text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
187
+ image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
188
+ cached_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
189
+ cached_tokens_details: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
190
+ audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
191
+ text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
192
+ image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
193
+ }, z.core.$strict>>>>;
194
+ }, z.core.$strict>;
195
+ output_token_details: z.ZodObject<{
196
+ text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
197
+ audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
198
+ image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
199
+ }, z.core.$strict>;
200
+ acquire_time: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
201
+ connection_reused: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
202
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
203
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
204
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
205
+ }, z.core.$strict>>>>;
206
+ }, z.core.$strict>;
207
+ /**
208
+ * Timing of a video avatar worker, when one is in the chain. No Pinecall channel has one today;
209
+ * carried because the library measures it.
210
+ */
211
+ export declare const AvatarMetricsSchema: z.ZodObject<{
212
+ type: z.ZodLiteral<"avatar_metrics">;
213
+ timestamp: z.ZodNumber;
214
+ playback_latency: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
215
+ session_started_time: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodNumber>>>;
216
+ avatar_joined_time: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodNumber>>>;
217
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodObject<{
218
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
219
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodNullable<z.ZodString>>>;
220
+ }, z.core.$strict>>>>;
221
+ }, z.core.$strict>;
222
+ /** Which model handled one leg of a turn. livekit's MetricsMetadata, as it sits on the ChatMessage. */
223
+ export declare const TurnMetadataSchema: z.ZodObject<{
224
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
225
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
226
+ }, z.core.$strict>;
227
+ /**
228
+ * What the session measured about the caller's turn. livekit stamps it on the user ChatMessage;
229
+ * every field is optional, since a text session has no speech to time.
230
+ */
231
+ export declare const UserTurnMetricsSchema: z.ZodObject<{
232
+ started_speaking_at: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
233
+ stopped_speaking_at: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
234
+ transcription_delay: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
235
+ end_of_turn_delay: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
236
+ on_user_turn_completed_delay: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
237
+ stt_metadata: z.ZodOptional<z.ZodNullable<z.ZodObject<{
238
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
239
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
240
+ }, z.core.$strict>>>;
241
+ }, z.core.$strict>;
242
+ /**
243
+ * What the session measured about the agent's reply. livekit stamps it on the assistant
244
+ * ChatMessage; every field is optional, since a text session has no audio to time.
245
+ */
246
+ export declare const AgentTurnMetricsSchema: z.ZodObject<{
247
+ started_speaking_at: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
248
+ stopped_speaking_at: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
249
+ llm_node_ttft: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
250
+ llm_node_tps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
251
+ llm_node_ttfs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
252
+ tts_node_ttfb: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
253
+ playback_latency: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
254
+ e2e_latency: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
255
+ provider_request_ids: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
256
+ llm_metadata: z.ZodOptional<z.ZodNullable<z.ZodObject<{
257
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
258
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
259
+ }, z.core.$strict>>>;
260
+ tts_metadata: z.ZodOptional<z.ZodNullable<z.ZodObject<{
261
+ model_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
262
+ model_provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
263
+ }, z.core.$strict>>>;
264
+ }, z.core.$strict>;
265
+ /**
266
+ * Everything one LLM consumed over the call. One row per provider and model, as livekit's usage
267
+ * collector sums it.
268
+ */
269
+ export declare const LLMModelUsageSchema: z.ZodObject<{
270
+ type: z.ZodLiteral<"llm_usage">;
271
+ provider: z.ZodString;
272
+ model: z.ZodString;
273
+ input_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
274
+ input_cached_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
275
+ input_cache_creation_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
276
+ input_audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
277
+ input_cached_audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
278
+ input_text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
279
+ input_cached_text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
280
+ input_image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
281
+ input_cached_image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
282
+ output_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
283
+ output_audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
284
+ output_text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
285
+ output_reasoning_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
286
+ session_duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
287
+ }, z.core.$strict>;
288
+ /** Everything one TTS consumed over the call. */
289
+ export declare const TTSModelUsageSchema: z.ZodObject<{
290
+ type: z.ZodLiteral<"tts_usage">;
291
+ provider: z.ZodString;
292
+ model: z.ZodString;
293
+ input_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
294
+ output_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
295
+ characters_count: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
296
+ audio_duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
297
+ }, z.core.$strict>;
298
+ /** Everything one STT consumed over the call. */
299
+ export declare const STTModelUsageSchema: z.ZodObject<{
300
+ type: z.ZodLiteral<"stt_usage">;
301
+ provider: z.ZodString;
302
+ model: z.ZodString;
303
+ input_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
304
+ output_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
305
+ audio_duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
306
+ }, z.core.$strict>;
307
+ /** How often the interruption detector was asked over the call. */
308
+ export declare const InterruptionModelUsageSchema: z.ZodObject<{
309
+ type: z.ZodLiteral<"interruption_usage">;
310
+ provider: z.ZodString;
311
+ model: z.ZodString;
312
+ total_requests: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
313
+ }, z.core.$strict>;
314
+ /** How often the end-of-turn model was asked over the call. */
315
+ export declare const EOTModelUsageSchema: z.ZodObject<{
316
+ type: z.ZodLiteral<"eot_usage">;
317
+ provider: z.ZodString;
318
+ model: z.ZodString;
319
+ total_requests: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
320
+ }, z.core.$strict>;
321
+ /** One usage row, told apart by its type tag. */
322
+ export declare const ModelUsageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
323
+ type: z.ZodLiteral<"llm_usage">;
324
+ provider: z.ZodString;
325
+ model: z.ZodString;
326
+ input_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
327
+ input_cached_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
328
+ input_cache_creation_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
329
+ input_audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
330
+ input_cached_audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
331
+ input_text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
332
+ input_cached_text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
333
+ input_image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
334
+ input_cached_image_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
335
+ output_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
336
+ output_audio_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
337
+ output_text_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
338
+ output_reasoning_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
339
+ session_duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
340
+ }, z.core.$strict>, z.ZodObject<{
341
+ type: z.ZodLiteral<"tts_usage">;
342
+ provider: z.ZodString;
343
+ model: z.ZodString;
344
+ input_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
345
+ output_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
346
+ characters_count: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
347
+ audio_duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
348
+ }, z.core.$strict>, z.ZodObject<{
349
+ type: z.ZodLiteral<"stt_usage">;
350
+ provider: z.ZodString;
351
+ model: z.ZodString;
352
+ input_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
353
+ output_tokens: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
354
+ audio_duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
355
+ }, z.core.$strict>, z.ZodObject<{
356
+ type: z.ZodLiteral<"interruption_usage">;
357
+ provider: z.ZodString;
358
+ model: z.ZodString;
359
+ total_requests: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
360
+ }, z.core.$strict>, z.ZodObject<{
361
+ type: z.ZodLiteral<"eot_usage">;
362
+ provider: z.ZodString;
363
+ model: z.ZodString;
364
+ total_requests: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
365
+ }, z.core.$strict>], "type">;
366
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/wire/metrics.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oGAAoG;AACpG,eAAO,MAAM,cAAc;;;kBAGzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;kBAiB3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;kBAa3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;kBAkB3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;kBAQ3B,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB;;;;;;;;;;;kBAQ3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;kBAQpC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;kBAUpC,CAAC;AAEH,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC;;;;kBAI3C,CAAC;AAEH,4EAA4E;AAC5E,eAAO,MAAM,+BAA+B;;;;;;;;;;kBAM1C,CAAC;AAEH,+CAA+C;AAC/C,eAAO,MAAM,gCAAgC;;;;kBAI3C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkBrC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;kBAO9B,CAAC;AAEH,uGAAuG;AACvG,eAAO,MAAM,kBAAkB;;;kBAG7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;kBAOhC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;kBAYjC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;kBAkB9B,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,mBAAmB;;;;;;;;kBAQ9B,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,mBAAmB;;;;;;;kBAO9B,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,4BAA4B;;;;;kBAKvC,CAAC;AAEH,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB;;;;;kBAK9B,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAmJ,CAAC"}
@@ -0,0 +1,269 @@
1
+ /** The metrics livekit reports for a turn and a model, as the runtime writes them. */
2
+ import { z } from "zod";
3
+ /** Which model and provider produced a block. livekit's Metadata, nested exactly as it nests it. */
4
+ export const MetadataSchema = z.strictObject({
5
+ model_name: z.string().nullable().nullish(),
6
+ model_provider: z.string().nullable().nullish(),
7
+ });
8
+ /**
9
+ * One LLM request, measured by the session's llm node. Two arrive for one reply when a tool ran in
10
+ * between; they share the speech_id.
11
+ */
12
+ export const LLMMetricsSchema = z.strictObject({
13
+ type: z.literal("llm_metrics"),
14
+ label: z.string(),
15
+ request_id: z.string(),
16
+ timestamp: z.number(),
17
+ duration: z.number(),
18
+ ttft: z.number(),
19
+ cancelled: z.boolean(),
20
+ completion_tokens: z.int(),
21
+ prompt_tokens: z.int(),
22
+ prompt_cached_tokens: z.int(),
23
+ cache_creation_tokens: z.int().nullish(),
24
+ reasoning_tokens: z.int().nullish(),
25
+ total_tokens: z.int(),
26
+ tokens_per_second: z.number(),
27
+ speech_id: z.string().nullable().nullish(),
28
+ metadata: MetadataSchema.nullable().nullish(),
29
+ });
30
+ /**
31
+ * One speech-to-text request, measured by the session's stt node. A streaming STT reports one per
32
+ * connection segment, with duration 0.
33
+ */
34
+ export const STTMetricsSchema = z.strictObject({
35
+ type: z.literal("stt_metrics"),
36
+ label: z.string(),
37
+ request_id: z.string(),
38
+ timestamp: z.number(),
39
+ duration: z.number(),
40
+ audio_duration: z.number(),
41
+ input_tokens: z.int().nullish(),
42
+ output_tokens: z.int().nullish(),
43
+ streamed: z.boolean(),
44
+ acquire_time: z.number().nullish(),
45
+ connection_reused: z.boolean().nullish(),
46
+ metadata: MetadataSchema.nullable().nullish(),
47
+ });
48
+ /**
49
+ * One text-to-speech request, measured by the session's tts node. One reply may produce several,
50
+ * one per sentence segment.
51
+ */
52
+ export const TTSMetricsSchema = z.strictObject({
53
+ type: z.literal("tts_metrics"),
54
+ label: z.string(),
55
+ request_id: z.string(),
56
+ timestamp: z.number(),
57
+ ttfb: z.number(),
58
+ duration: z.number(),
59
+ audio_duration: z.number(),
60
+ cancelled: z.boolean(),
61
+ characters_count: z.int(),
62
+ input_tokens: z.int().nullish(),
63
+ output_tokens: z.int().nullish(),
64
+ streamed: z.boolean(),
65
+ acquire_time: z.number().nullish(),
66
+ connection_reused: z.boolean().nullish(),
67
+ segment_id: z.string().nullable().nullish(),
68
+ speech_id: z.string().nullable().nullish(),
69
+ metadata: MetadataSchema.nullable().nullish(),
70
+ });
71
+ /**
72
+ * The voice activity detector's health, reported about once a second while it runs. Not a per-turn
73
+ * measure.
74
+ */
75
+ export const VADMetricsSchema = z.strictObject({
76
+ type: z.literal("vad_metrics"),
77
+ label: z.string(),
78
+ timestamp: z.number(),
79
+ idle_time: z.number(),
80
+ inference_duration_total: z.number(),
81
+ inference_count: z.int(),
82
+ metadata: MetadataSchema.nullable().nullish(),
83
+ });
84
+ /** How long the session took to decide that the caller had finished. One per user turn. */
85
+ export const EOUMetricsSchema = z.strictObject({
86
+ type: z.literal("eou_metrics"),
87
+ timestamp: z.number(),
88
+ end_of_utterance_delay: z.number(),
89
+ transcription_delay: z.number(),
90
+ on_user_turn_completed_delay: z.number(),
91
+ speech_id: z.string().nullable().nullish(),
92
+ metadata: MetadataSchema.nullable().nullish(),
93
+ });
94
+ /**
95
+ * One prediction by the end-of-turn model. It listens to the audio and says whether the caller is
96
+ * done.
97
+ */
98
+ export const EOTInferenceMetricsSchema = z.strictObject({
99
+ type: z.literal("eot_inference_metrics"),
100
+ timestamp: z.number(),
101
+ total_duration: z.number(),
102
+ detection_delay: z.number(),
103
+ prediction_duration: z.number(),
104
+ num_requests: z.int().nullish(),
105
+ metadata: MetadataSchema.nullable().nullish(),
106
+ });
107
+ /**
108
+ * The interruption detector's latest inference and its running counts. Reported when the detector
109
+ * runs, not per turn.
110
+ */
111
+ export const InterruptionMetricsSchema = z.strictObject({
112
+ type: z.literal("interruption_metrics"),
113
+ timestamp: z.number(),
114
+ total_duration: z.number(),
115
+ prediction_duration: z.number(),
116
+ detection_delay: z.number(),
117
+ num_interruptions: z.int(),
118
+ num_backchannels: z.int(),
119
+ num_requests: z.int(),
120
+ metadata: MetadataSchema.nullable().nullish(),
121
+ });
122
+ /** Of a realtime model's cached input, how much was audio, text or image. */
123
+ export const RealtimeCachedTokenDetailsSchema = z.strictObject({
124
+ audio_tokens: z.int().nullish(),
125
+ text_tokens: z.int().nullish(),
126
+ image_tokens: z.int().nullish(),
127
+ });
128
+ /** What a realtime model read, by kind, with the cached part broken out. */
129
+ export const RealtimeInputTokenDetailsSchema = z.strictObject({
130
+ audio_tokens: z.int().nullish(),
131
+ text_tokens: z.int().nullish(),
132
+ image_tokens: z.int().nullish(),
133
+ cached_tokens: z.int().nullish(),
134
+ cached_tokens_details: RealtimeCachedTokenDetailsSchema.nullable().nullish(),
135
+ });
136
+ /** What a realtime model produced, by kind. */
137
+ export const RealtimeOutputTokenDetailsSchema = z.strictObject({
138
+ text_tokens: z.int().nullish(),
139
+ audio_tokens: z.int().nullish(),
140
+ image_tokens: z.int().nullish(),
141
+ });
142
+ /**
143
+ * One response from a speech-to-speech model, which replaces STT, LLM and TTS at once. Pinecall's
144
+ * default pipeline never emits it; a realtime provider would.
145
+ */
146
+ export const RealtimeModelMetricsSchema = z.strictObject({
147
+ type: z.literal("realtime_model_metrics"),
148
+ label: z.string().nullish(),
149
+ request_id: z.string(),
150
+ timestamp: z.number(),
151
+ duration: z.number().nullish(),
152
+ session_duration: z.number().nullish(),
153
+ ttft: z.number().nullish(),
154
+ cancelled: z.boolean().nullish(),
155
+ input_tokens: z.int().nullish(),
156
+ output_tokens: z.int().nullish(),
157
+ total_tokens: z.int().nullish(),
158
+ tokens_per_second: z.number().nullish(),
159
+ input_token_details: RealtimeInputTokenDetailsSchema,
160
+ output_token_details: RealtimeOutputTokenDetailsSchema,
161
+ acquire_time: z.number().nullish(),
162
+ connection_reused: z.boolean().nullish(),
163
+ metadata: MetadataSchema.nullable().nullish(),
164
+ });
165
+ /**
166
+ * Timing of a video avatar worker, when one is in the chain. No Pinecall channel has one today;
167
+ * carried because the library measures it.
168
+ */
169
+ export const AvatarMetricsSchema = z.strictObject({
170
+ type: z.literal("avatar_metrics"),
171
+ timestamp: z.number(),
172
+ playback_latency: z.number().nullish(),
173
+ session_started_time: z.number().nullable().nullish(),
174
+ avatar_joined_time: z.number().nullable().nullish(),
175
+ metadata: MetadataSchema.nullable().nullish(),
176
+ });
177
+ /** Which model handled one leg of a turn. livekit's MetricsMetadata, as it sits on the ChatMessage. */
178
+ export const TurnMetadataSchema = z.strictObject({
179
+ model_name: z.string().nullish(),
180
+ model_provider: z.string().nullish(),
181
+ });
182
+ /**
183
+ * What the session measured about the caller's turn. livekit stamps it on the user ChatMessage;
184
+ * every field is optional, since a text session has no speech to time.
185
+ */
186
+ export const UserTurnMetricsSchema = z.strictObject({
187
+ started_speaking_at: z.number().nullish(),
188
+ stopped_speaking_at: z.number().nullish(),
189
+ transcription_delay: z.number().nullish(),
190
+ end_of_turn_delay: z.number().nullish(),
191
+ on_user_turn_completed_delay: z.number().nullish(),
192
+ stt_metadata: TurnMetadataSchema.nullish(),
193
+ });
194
+ /**
195
+ * What the session measured about the agent's reply. livekit stamps it on the assistant
196
+ * ChatMessage; every field is optional, since a text session has no audio to time.
197
+ */
198
+ export const AgentTurnMetricsSchema = z.strictObject({
199
+ started_speaking_at: z.number().nullish(),
200
+ stopped_speaking_at: z.number().nullish(),
201
+ llm_node_ttft: z.number().nullish(),
202
+ llm_node_tps: z.number().nullish(),
203
+ llm_node_ttfs: z.number().nullish(),
204
+ tts_node_ttfb: z.number().nullish(),
205
+ playback_latency: z.number().nullish(),
206
+ e2e_latency: z.number().nullish(),
207
+ provider_request_ids: z.array(z.string()).nullish(),
208
+ llm_metadata: TurnMetadataSchema.nullish(),
209
+ tts_metadata: TurnMetadataSchema.nullish(),
210
+ });
211
+ /**
212
+ * Everything one LLM consumed over the call. One row per provider and model, as livekit's usage
213
+ * collector sums it.
214
+ */
215
+ export const LLMModelUsageSchema = z.strictObject({
216
+ type: z.literal("llm_usage"),
217
+ provider: z.string(),
218
+ model: z.string(),
219
+ input_tokens: z.int().nullish(),
220
+ input_cached_tokens: z.int().nullish(),
221
+ input_cache_creation_tokens: z.int().nullish(),
222
+ input_audio_tokens: z.int().nullish(),
223
+ input_cached_audio_tokens: z.int().nullish(),
224
+ input_text_tokens: z.int().nullish(),
225
+ input_cached_text_tokens: z.int().nullish(),
226
+ input_image_tokens: z.int().nullish(),
227
+ input_cached_image_tokens: z.int().nullish(),
228
+ output_tokens: z.int().nullish(),
229
+ output_audio_tokens: z.int().nullish(),
230
+ output_text_tokens: z.int().nullish(),
231
+ output_reasoning_tokens: z.int().nullish(),
232
+ session_duration: z.number().nullish(),
233
+ });
234
+ /** Everything one TTS consumed over the call. */
235
+ export const TTSModelUsageSchema = z.strictObject({
236
+ type: z.literal("tts_usage"),
237
+ provider: z.string(),
238
+ model: z.string(),
239
+ input_tokens: z.int().nullish(),
240
+ output_tokens: z.int().nullish(),
241
+ characters_count: z.int().nullish(),
242
+ audio_duration: z.number().nullish(),
243
+ });
244
+ /** Everything one STT consumed over the call. */
245
+ export const STTModelUsageSchema = z.strictObject({
246
+ type: z.literal("stt_usage"),
247
+ provider: z.string(),
248
+ model: z.string(),
249
+ input_tokens: z.int().nullish(),
250
+ output_tokens: z.int().nullish(),
251
+ audio_duration: z.number().nullish(),
252
+ });
253
+ /** How often the interruption detector was asked over the call. */
254
+ export const InterruptionModelUsageSchema = z.strictObject({
255
+ type: z.literal("interruption_usage"),
256
+ provider: z.string(),
257
+ model: z.string(),
258
+ total_requests: z.int().nullish(),
259
+ });
260
+ /** How often the end-of-turn model was asked over the call. */
261
+ export const EOTModelUsageSchema = z.strictObject({
262
+ type: z.literal("eot_usage"),
263
+ provider: z.string(),
264
+ model: z.string(),
265
+ total_requests: z.int().nullish(),
266
+ });
267
+ /** One usage row, told apart by its type tag. */
268
+ export const ModelUsageSchema = z.discriminatedUnion("type", [LLMModelUsageSchema, TTSModelUsageSchema, STTModelUsageSchema, InterruptionModelUsageSchema, EOTModelUsageSchema]);
269
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/wire/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** Folds a log into its State, entry by entry, as the runtime's reducer does. */
2
+ import { type Entry } from "./envelope.js";
3
+ import { type State } from "./state.js";
4
+ /** Fold every entry, in the order given, into the state an empty log starts from. */
5
+ export declare function reduce(entries: Iterable<Entry>): State;
6
+ /** The state of an empty log: nothing known, every list empty, status idle. */
7
+ export declare function initialState(): State;
8
+ /** Error code recorded for an entry the reader cannot decode. */
9
+ export declare const UNREADABLE = "unreadable";
10
+ /** Fold one entry in and return the state to continue with. */
11
+ export declare function apply(state: State, entry: Entry): State;
12
+ //# sourceMappingURL=reduce.d.ts.map