From 7a35afec686fa44e4037742c47b7a7f91eb4a25f Mon Sep 17 00:00:00 2001 From: David Elner Date: Sun, 18 Oct 2026 22:27:23 -0400 Subject: [PATCH 1/5] Added: Audio instrumentation for LiveKit cascade mode --- .changeset/solid-donuts-drop.md | 5 + e2e/config/pr-comment-scenarios.json | 15 + ...e04ee0db55759c4f0ca7ca181a8444f29d5847.bin | Bin 0 -> 206400 bytes .../livekit-v1-latest-order.cassette.json | 1721 ++++++++++++++ ...bed88a67959f022f2975055939ba23aa40913d.bin | Bin 0 -> 201600 bytes ...f914ba97d5c3581878e7ff0fd35b94e78feac3.bin | Bin 0 -> 223200 bytes .../livekit-v1-latest-recovered.cassette.json | 1899 ++++++++++++++++ ...d3cbe895067775db0591ee1e08ea2ab97e27bc.bin | Bin 0 -> 259200 bytes ...-v1-latest-streaming-cascade.cassette.json | 1725 ++++++++++++++ ...v1-latest-streaming-cascade.websocket.json | 1144 ++++++++++ ...6d3bb6d6907c13d4ce6f1b01f1c6fe66722194.bin | Bin 0 -> 122400 bytes .../livekit-v1-order.cassette.json | 1718 ++++++++++++++ ...4d73793ea36e7689e5bf7e1a713ad5c1129ea5.bin | Bin 0 -> 180000 bytes ...f48e65f4fad3b69a895d1cb172e3ff62565f02.bin | Bin 0 -> 196800 bytes .../livekit-v1-recovered.cassette.json | 1899 ++++++++++++++++ ...7830679ce74e559daf26c7bc5d40bd6acae648.bin | Bin 0 -> 240000 bytes ...livekit-v1-streaming-cascade.cassette.json | 1726 ++++++++++++++ ...ivekit-v1-streaming-cascade.websocket.json | 1155 ++++++++++ .../livekit-v1-audio.span-tree.json | 359 +++ .../livekit-v1-audio.span-tree.txt | 296 +++ .../livekit-v1-disabled.span-tree.json | 273 +++ .../livekit-v1-disabled.span-tree.txt | 210 ++ .../livekit-v1-interrupted.span-tree.json | 671 ++++++ .../livekit-v1-interrupted.span-tree.txt | 582 +++++ .../livekit-v1-latest-audio.span-tree.json | 359 +++ .../livekit-v1-latest-audio.span-tree.txt | 296 +++ .../livekit-v1-latest-disabled.span-tree.json | 273 +++ .../livekit-v1-latest-disabled.span-tree.txt | 210 ++ ...vekit-v1-latest-interrupted.span-tree.json | 671 ++++++ ...ivekit-v1-latest-interrupted.span-tree.txt | 582 +++++ .../livekit-v1-latest-order.span-tree.json | 676 ++++++ .../livekit-v1-latest-order.span-tree.txt | 587 +++++ ...livekit-v1-latest-recovered.span-tree.json | 1006 ++++++++ .../livekit-v1-latest-recovered.span-tree.txt | 890 ++++++++ ...v1-latest-streaming-cascade.span-tree.json | 831 +++++++ ...-v1-latest-streaming-cascade.span-tree.txt | 730 ++++++ .../livekit-v1-order.span-tree.json | 676 ++++++ .../livekit-v1-order.span-tree.txt | 587 +++++ .../livekit-v1-recovered.span-tree.json | 1006 ++++++++ .../livekit-v1-recovered.span-tree.txt | 890 ++++++++ ...ivekit-v1-streaming-cascade.span-tree.json | 831 +++++++ ...livekit-v1-streaming-cascade.span-tree.txt | 730 ++++++ .../assertions.test.ts | 53 + .../livekit-instrumentation/assertions.ts | 132 ++ .../livekit-instrumentation/automatic.mjs | 142 ++ .../fixtures/README.md | 3 + .../fixtures/order-24khz.pcm | Bin 0 -> 172800 bytes .../livekit-instrumentation/package.json | 23 + .../livekit-instrumentation/pnpm-lock.yaml | 2024 +++++++++++++++++ .../livekit-instrumentation/scenario.mjs | 322 +++ .../livekit-instrumentation/scenario.test.ts | 734 ++++++ .../websocket-cassette.mjs | 219 ++ .../livekit-instrumentation/worker.mjs | 14 + js/package.json | 5 + js/src/audio/README.md | 43 + js/src/audio/audio-worker.ts | 46 + js/src/audio/buffers.ts | 60 + js/src/audio/exporter.test.ts | 282 +++ js/src/audio/exporter.ts | 61 + js/src/audio/fixtures/counting-codec.mjs | 8 + js/src/audio/index.ts | 6 + js/src/audio/pcm.test.ts | 107 + js/src/audio/pcm.ts | 141 ++ js/src/audio/publisher.ts | 133 ++ js/src/audio/recorder.test.ts | 309 +++ js/src/audio/recorder.ts | 288 +++ js/src/audio/recording.test.ts | 185 ++ js/src/audio/recording.ts | 107 + js/src/audio/segment.test.ts | 55 + js/src/audio/segment.ts | 118 + js/src/audio/selections.test.ts | 68 + js/src/audio/selections.ts | 64 + js/src/audio/timeline.ts | 23 + js/src/audio/voice-publisher.ts | 49 + js/src/audio/voice.test.ts | 170 ++ js/src/audio/voice.ts | 43 + js/src/audio/worker.test.ts | 53 + js/src/audio/worker.ts | 128 ++ js/src/auto-instrumentations/configs/all.ts | 5 + .../auto-instrumentations/configs/livekit.ts | 63 + js/src/imports.test.ts | 11 +- js/src/instrumentation/braintrust-plugin.ts | 23 + js/src/instrumentation/config.ts | 5 + js/src/instrumentation/livekit/audio.ts | 8 + .../instrumentation/livekit/capture-state.ts | 70 + .../instrumentation/livekit/capture.test.ts | 368 +++ js/src/instrumentation/livekit/capture.ts | 83 + .../livekit/node/audio-options.test.ts | 64 + .../livekit/node/audio-options.ts | 25 + js/src/instrumentation/livekit/node/auto.ts | 105 + js/src/instrumentation/livekit/options.ts | 9 + js/src/instrumentation/livekit/playback.ts | 295 +++ .../instrumentation/livekit/processor.test.ts | 639 ++++++ js/src/instrumentation/livekit/processor.ts | 702 ++++++ .../instrumentation/livekit/relationships.ts | 71 + js/src/instrumentation/livekit/runtime.ts | 137 ++ js/src/instrumentation/livekit/schema.ts | 174 ++ js/src/instrumentation/livekit/speech.ts | 132 ++ js/src/instrumentation/livekit/types.ts | 42 + js/src/instrumentation/livekit/wrap.ts | 91 + .../plugins/livekit-channels.ts | 40 + .../instrumentation/plugins/livekit-plugin.ts | 104 + js/src/instrumentation/registry.ts | 20 +- js/src/node/config.ts | 4 + js/src/span-origin.ts | 1 + js/tsup.config.ts | 30 +- 106 files changed, 36760 insertions(+), 8 deletions(-) create mode 100644 .changeset/solid-donuts-drop.md create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-order.cassette.blobs/de150e425fc4cbc47fcd174020e04ee0db55759c4f0ca7ca181a8444f29d5847.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-order.cassette.json create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/3749808ddea87d9af00f9fcd4fbed88a67959f022f2975055939ba23aa40913d.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/80bce2b7603b863a773cf80bc0f914ba97d5c3581878e7ff0fd35b94e78feac3.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.json create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.blobs/45057717a88ef704629c6da591d3cbe895067775db0591ee1e08ea2ab97e27bc.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.json create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.websocket.json create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-order.cassette.blobs/932a6111abe4cbfa2e175f9ba46d3bb6d6907c13d4ce6f1b01f1c6fe66722194.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-order.cassette.json create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-recovered.cassette.blobs/7d9135323fd455ab76a579b0ab4d73793ea36e7689e5bf7e1a713ad5c1129ea5.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-recovered.cassette.blobs/f1169e6c46641ae906aa1ee671f48e65f4fad3b69a895d1cb172e3ff62565f02.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-recovered.cassette.json create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-streaming-cascade.cassette.blobs/fd25a59c58e493a5cccaff311b7830679ce74e559daf26c7bc5d40bd6acae648.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-streaming-cascade.cassette.json create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-streaming-cascade.websocket.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json create mode 100644 e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt create mode 100644 e2e/scenarios/livekit-instrumentation/assertions.test.ts create mode 100644 e2e/scenarios/livekit-instrumentation/assertions.ts create mode 100644 e2e/scenarios/livekit-instrumentation/automatic.mjs create mode 100644 e2e/scenarios/livekit-instrumentation/fixtures/README.md create mode 100644 e2e/scenarios/livekit-instrumentation/fixtures/order-24khz.pcm create mode 100644 e2e/scenarios/livekit-instrumentation/package.json create mode 100644 e2e/scenarios/livekit-instrumentation/pnpm-lock.yaml create mode 100644 e2e/scenarios/livekit-instrumentation/scenario.mjs create mode 100644 e2e/scenarios/livekit-instrumentation/scenario.test.ts create mode 100644 e2e/scenarios/livekit-instrumentation/websocket-cassette.mjs create mode 100644 e2e/scenarios/livekit-instrumentation/worker.mjs create mode 100644 js/src/audio/README.md create mode 100644 js/src/audio/audio-worker.ts create mode 100644 js/src/audio/buffers.ts create mode 100644 js/src/audio/exporter.test.ts create mode 100644 js/src/audio/exporter.ts create mode 100644 js/src/audio/fixtures/counting-codec.mjs create mode 100644 js/src/audio/index.ts create mode 100644 js/src/audio/pcm.test.ts create mode 100644 js/src/audio/pcm.ts create mode 100644 js/src/audio/publisher.ts create mode 100644 js/src/audio/recorder.test.ts create mode 100644 js/src/audio/recorder.ts create mode 100644 js/src/audio/recording.test.ts create mode 100644 js/src/audio/recording.ts create mode 100644 js/src/audio/segment.test.ts create mode 100644 js/src/audio/segment.ts create mode 100644 js/src/audio/selections.test.ts create mode 100644 js/src/audio/selections.ts create mode 100644 js/src/audio/timeline.ts create mode 100644 js/src/audio/voice-publisher.ts create mode 100644 js/src/audio/voice.test.ts create mode 100644 js/src/audio/voice.ts create mode 100644 js/src/audio/worker.test.ts create mode 100644 js/src/audio/worker.ts create mode 100644 js/src/auto-instrumentations/configs/livekit.ts create mode 100644 js/src/instrumentation/livekit/audio.ts create mode 100644 js/src/instrumentation/livekit/capture-state.ts create mode 100644 js/src/instrumentation/livekit/capture.test.ts create mode 100644 js/src/instrumentation/livekit/capture.ts create mode 100644 js/src/instrumentation/livekit/node/audio-options.test.ts create mode 100644 js/src/instrumentation/livekit/node/audio-options.ts create mode 100644 js/src/instrumentation/livekit/node/auto.ts create mode 100644 js/src/instrumentation/livekit/options.ts create mode 100644 js/src/instrumentation/livekit/playback.ts create mode 100644 js/src/instrumentation/livekit/processor.test.ts create mode 100644 js/src/instrumentation/livekit/processor.ts create mode 100644 js/src/instrumentation/livekit/relationships.ts create mode 100644 js/src/instrumentation/livekit/runtime.ts create mode 100644 js/src/instrumentation/livekit/schema.ts create mode 100644 js/src/instrumentation/livekit/speech.ts create mode 100644 js/src/instrumentation/livekit/types.ts create mode 100644 js/src/instrumentation/livekit/wrap.ts create mode 100644 js/src/instrumentation/plugins/livekit-channels.ts create mode 100644 js/src/instrumentation/plugins/livekit-plugin.ts diff --git a/.changeset/solid-donuts-drop.md b/.changeset/solid-donuts-drop.md new file mode 100644 index 000000000..af9ff3bbf --- /dev/null +++ b/.changeset/solid-donuts-drop.md @@ -0,0 +1,5 @@ +--- +"braintrust": minor +--- + +feat: add automatic LiveKit Agents cascade tracing with speech transcripts, model and tool spans, usage, and opt-in WAV recordings. Include shared bounded recording and segmentation utilities, with playback selections published after attachment upload. No audio extension is required; recording remains disabled by default. diff --git a/e2e/config/pr-comment-scenarios.json b/e2e/config/pr-comment-scenarios.json index f6a06afae..881bd68f6 100644 --- a/e2e/config/pr-comment-scenarios.json +++ b/e2e/config/pr-comment-scenarios.json @@ -936,5 +936,20 @@ "label": "v1 latest" } ] + }, + { + "scenarioDirName": "livekit-instrumentation", + "label": "LiveKit cascade instrumentation and WAV recording (streaming STT, tools, interruption recovery; automatic and manual)", + "metadataScenario": "livekit-instrumentation", + "variants": [ + { + "variantKey": "livekit-v1", + "label": "v1.9 pinned" + }, + { + "variantKey": "livekit-v1-latest", + "label": "v1.9 latest" + } + ] } ] diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-order.cassette.blobs/de150e425fc4cbc47fcd174020e04ee0db55759c4f0ca7ca181a8444f29d5847.bin b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-order.cassette.blobs/de150e425fc4cbc47fcd174020e04ee0db55759c4f0ca7ca181a8444f29d5847.bin new file mode 100644 index 0000000000000000000000000000000000000000..8cd2d6aaf649ff698504391a228b5f776e0f2aae GIT binary patch literal 206400 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�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 literal 0 HcmV?d00001 diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/80bce2b7603b863a773cf80bc0f914ba97d5c3581878e7ff0fd35b94e78feac3.bin b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/80bce2b7603b863a773cf80bc0f914ba97d5c3581878e7ff0fd35b94e78feac3.bin new file mode 100644 index 0000000000000000000000000000000000000000..79afd29da340ca9385bf9b49eda00f1aaa938860 GIT binary patch literal 223200 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 z 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 i(JO_Ga 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 XomUTX}bms4j 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 Ezh&zm7XSbN literal 0 HcmV?d00001 diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.json b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.json new file mode 100644 index 000000000..878ad6682 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.json @@ -0,0 +1,1725 @@ +{ + "entries": [ + { + "callIndex": 0, + "id": "ca41920661a27eb5", + "matchKey": "GET api.openai.com/v1/models", + "recordedAt": "2026-10-09T05:25:34.806Z", + "request": { + "body": { + "kind": "empty" + }, + "headers": {}, + "method": "GET", + "url": "https://api.openai.com/v1/models" + }, + "response": { + "body": { + "kind": "json", + "value": { + "data": [ + { + "created": 1712601677, + "id": "gpt-4-turbo-2024-04-09", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1772654062, + "id": "gpt-5.4-2026-03-05", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1706048358, + "id": "gpt-3.5-turbo-0125", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1754426384, + "id": "gpt-5-nano", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1762988221, + "id": "gpt-5.1-codex", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1773451123, + "id": "gpt-5.4-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1742251791, + "id": "o1-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1782254706, + "id": "gpt-realtime-2.1-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1756271773, + "id": "gpt-realtime-2025-08-28", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1732734466, + "id": "omni-moderation-2024-09-26", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1785168034, + "id": "gpt-live-transcribe", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1782228658, + "id": "gpt-5.6-luna", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1681940951, + "id": "tts-1", + "object": "model", + "owned_by": "openai-internal", + "shutdown_date": null + }, + { + "created": 1754425928, + "id": "gpt-5-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1754425867, + "id": "gpt-5-mini-2025-08-07", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1744133506, + "id": "o4-mini-2025-04-16", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1731689265, + "id": "omni-moderation-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1778006032, + "id": "gpt-realtime-2", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759514629, + "id": "gpt-5-search-api", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1776839241, + "id": "gpt-5.5-2026-04-23", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1776894349, + "id": "gpt-5.5-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765610545, + "id": "gpt-4o-mini-transcribe-2025-03-20", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1756256146, + "id": "gpt-audio-2025-08-28", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1756271701, + "id": "gpt-realtime", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1699046015, + "id": "tts-1-hd", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1771461469, + "id": "gpt-realtime-1.5", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765343983, + "id": "gpt-5.2-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1754073306, + "id": "gpt-5-chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1739331543, + "id": "gpt-4o-2024-11-20", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1750865219, + "id": "o3-deep-research-2025-06-26", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1762800673, + "id": "gpt-5.1", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1677532384, + "id": "whisper-1", + "object": "model", + "owned_by": "openai-internal", + "shutdown_date": "2027-02-26" + }, + { + "created": 1759469822, + "id": "gpt-5-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1778012060, + "id": "gpt-realtime-whisper", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765610407, + "id": "gpt-4o-mini-transcribe-2025-12-15", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759469707, + "id": "gpt-5-pro-2025-10-06", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1782228018, + "id": "gpt-5.6-sol", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1749166761, + "id": "o3-pro-2025-06-10", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1777704602, + "id": "chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1772659657, + "id": "gpt-5.4-pro-2026-03-05", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1777950216, + "id": "gpt-realtime-translate", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1773451076, + "id": "gpt-5.4-mini-2026-03-17", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1754075360, + "id": "gpt-5-2025-08-07", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1699053241, + "id": "tts-1-1106", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765343959, + "id": "gpt-5.2-pro-2025-12-11", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759512137, + "id": "gpt-audio-mini-2025-10-06", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1776894470, + "id": "gpt-5.5-pro-2026-04-23", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1772659601, + "id": "gpt-5.4-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765612007, + "id": "gpt-realtime-mini-2025-12-15", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1742403959, + "id": "gpt-4o-mini-tts", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1763671532, + "id": "gpt-5.1-codex-max", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1741391161, + "id": "gpt-4o-mini-search-preview", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1712361441, + "id": "gpt-4-turbo", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1748475349, + "id": "o3-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1722814719, + "id": "gpt-4o-2024-08-06", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1749840121, + "id": "o3-deep-research", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1744225308, + "id": "o3", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1741390858, + "id": "gpt-4o-mini-search-preview-2025-03-11", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1692634615, + "id": "babbage-002", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-28" + }, + { + "created": 1705953180, + "id": "text-embedding-3-large", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1715368132, + "id": "gpt-4o-2024-05-13", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1750798887, + "id": "gpt-4o-transcribe-diarize", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-02-26" + }, + { + "created": 1757527818, + "id": "gpt-5-codex", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1762800353, + "id": "gpt-5.1-2025-11-13", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1686588896, + "id": "gpt-4-0613", + "object": "model", + "owned_by": "openai", + "shutdown_date": "2026-10-23" + }, + { + "created": 1771905534, + "id": "gpt-4o-search-preview", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1699053533, + "id": "tts-1-hd-1106", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1772691852, + "id": "gpt-5.4", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1749685485, + "id": "o4-mini-deep-research", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1771905621, + "id": "gpt-4o-search-preview-2025-03-11", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1705948997, + "id": "text-embedding-3-small", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744321707, + "id": "gpt-4.1-nano", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1776399795, + "id": "gpt-image-2", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1683758102, + "id": "gpt-3.5-turbo-16k", + "object": "model", + "owned_by": "openai-internal", + "shutdown_date": null + }, + { + "created": 1671217299, + "id": "text-embedding-ada-002", + "object": "model", + "owned_by": "openai-internal", + "shutdown_date": null + }, + { + "created": 1782254687, + "id": "gpt-realtime-2.1", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744316542, + "id": "gpt-4.1", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1776824847, + "id": "gpt-5.5", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759708615, + "id": "sora-2", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-24" + }, + { + "created": 1764030620, + "id": "gpt-image-1.5", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-01" + }, + { + "created": 1738010200, + "id": "o3-mini-2025-01-31", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1771550885, + "id": "gpt-audio-1.5", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744133301, + "id": "o3-2025-04-16", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1772236571, + "id": "gpt-5.3-chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-08-10" + }, + { + "created": 1765313028, + "id": "gpt-5.2-2025-12-11", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765925279, + "id": "chatgpt-image-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-01" + }, + { + "created": 1677610602, + "id": "gpt-3.5-turbo", + "object": "model", + "owned_by": "openai", + "shutdown_date": "2026-10-23" + }, + { + "created": 1759517133, + "id": "gpt-realtime-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1758845821, + "id": "gpt-image-1-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-01" + }, + { + "created": 1782228459, + "id": "gpt-5.6-terra", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1694122472, + "id": "gpt-3.5-turbo-instruct-0914", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744318173, + "id": "gpt-4.1-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1721172741, + "id": "gpt-4o-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765344352, + "id": "gpt-5.2-chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-08-10" + }, + { + "created": 1776399994, + "id": "gpt-image-2-2026-04-21", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1742068596, + "id": "gpt-4o-mini-transcribe", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-02-26" + }, + { + "created": 1741377021, + "id": "computer-use-preview-2025-03-11", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1692901427, + "id": "gpt-3.5-turbo-instruct", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-28" + }, + { + "created": 1759708663, + "id": "sora-2-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-24" + }, + { + "created": 1754425777, + "id": "gpt-5", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1785168027, + "id": "gpt-transcribe", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744321025, + "id": "gpt-4.1-nano-2025-04-14", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1692634301, + "id": "davinci-002", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-28" + }, + { + "created": 1737146383, + "id": "o3-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1773450870, + "id": "gpt-5.4-nano", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765760008, + "id": "gpt-audio-mini-2025-12-15", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1750866121, + "id": "o4-mini-deep-research-2025-06-26", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1742251504, + "id": "o1-pro-2025-03-19", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1762547951, + "id": "gpt-5.1-chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1734326976, + "id": "o1-2024-12-17", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1765610837, + "id": "gpt-4o-mini-tts-2025-12-15", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1745517030, + "id": "gpt-image-1", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1756339249, + "id": "gpt-audio", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1770537915, + "id": "gpt-5.3-codex", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1760043960, + "id": "gpt-5-search-api-2025-10-14", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1766164985, + "id": "gpt-5.2-codex", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1759512027, + "id": "gpt-audio-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1744317547, + "id": "gpt-4.1-mini-2025-04-14", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1754426303, + "id": "gpt-5-nano-2025-08-07", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1734655677, + "id": "computer-use-preview", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1744225351, + "id": "o4-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1763007109, + "id": "gpt-5.1-codex-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1742068463, + "id": "gpt-4o-transcribe", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-02-26" + }, + { + "created": 1715367049, + "id": "gpt-4o", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744315746, + "id": "gpt-4.1-2025-04-14", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1721172717, + "id": "gpt-4o-mini-2024-07-18", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1698959748, + "id": "gpt-3.5-turbo-1106", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-28" + }, + { + "created": 1788851010, + "id": "gpt-image-2.5-sunburst-2026-09-08", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765610731, + "id": "gpt-4o-mini-tts-2025-03-20", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1765313051, + "id": "gpt-5.2", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1734375816, + "id": "o1", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1773450837, + "id": "gpt-5.4-nano-2026-03-17", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1789406102, + "id": "gpt-6-luna", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1790552874, + "id": "gpt-6.1-sol", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1789405937, + "id": "gpt-6-sol", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1788563147, + "id": "gpt-image-2.5-flare", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1788563162, + "id": "gpt-image-2.5-sunburst", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1788851006, + "id": "gpt-image-2.5-flare-2026-09-08", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1687882411, + "id": "gpt-4", + "object": "model", + "owned_by": "openai", + "shutdown_date": "2026-10-23" + }, + { + "created": 1788889407, + "id": "gpt-live-1", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1787853604, + "id": "gpt-6-astra", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1716329250, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvl6lN", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336369, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbI2Q:ckpt-step-390", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331110, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPmgCG", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716330832, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIKb5", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362623, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac3tn7:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336302, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWxd8", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1713573280, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyeDN8:ckpt-step-90", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853777, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErO3L", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336351, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJmyv:ckpt-step-380", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329249, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvlWn2:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336369, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbj09:ckpt-step-195", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1713573280, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyefHN:ckpt-step-80", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716330832, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIfx5:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333310, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFxEO", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716339335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYRGkA", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362498, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2l8E:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336352, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJSe8", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853777, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErmVj:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9tlM:ckpt-step-80", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715851953, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRlAx:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716339335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYRyU2:ckpt-step-380", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362498, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2Nvc:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331343, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTXyGA:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716332961, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStddp1:ckpt-step-360", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329249, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvli2C:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336302, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWMsA:ckpt-step-380", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333026, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSug5k7:ckpt-step-190", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331343, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTX8uk:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716332961, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStdzjn:ckpt-step-180", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336351, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJgKG:ckpt-step-190", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329241, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdpE3:ckpt-step-60", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362498, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2g2t", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331110, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPmMV8:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716339335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYQIXR:ckpt-step-190", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1713573281, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyegS7", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331344, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTXTUN", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362078, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTGp2X", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333026, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSug3RE", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9zAB", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331110, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPl83J:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336302, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWVsA:ckpt-step-190", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329241, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdrgP", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853272, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6iZg1:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715851953, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRzXm:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362078, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTG7lD:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716332961, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStdh74", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329241, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdKr0:ckpt-step-80", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716330832, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIu9M:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336369, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbTRx", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853777, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErVBb:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715851954, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRXjc", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333026, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSugSr3:ckpt-step-380", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853272, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6irTy", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362078, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTGd3R:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333309, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFKKN:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362623, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac3rrg", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9HqT:ckpt-step-90", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333309, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFcrA:ckpt-step-400", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362623, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac38GU:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853272, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6i40V:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + } + ], + "object": "list" + } + }, + "headers": { + "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", + "alt-svc": "h3=\":443\"; ma=86400", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a47af727db3d64b3-ORD", + "content-encoding": "gzip", + "content-type": "application/json", + "date": "Fri, 09 Oct 2026 05:25:34 GMT", + "openai-processing-ms": "664", + "openai-version": "2020-10-01", + "server": "cloudflare", + "set-cookie": "[REDACTED]", + "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "x-content-type-options": "nosniff", + "x-openai-proxy-wasm": "v0.1", + "x-request-id": "f8b26e3c-e36d-4eca-9526-bf01f54c85ab" + }, + "status": 200 + } + }, + { + "callIndex": 0, + "id": "d6ce4a8f0acd5cf1", + "matchKey": "POST api.openai.com/v1/chat/completions", + "recordedAt": "2026-10-09T05:25:41.424Z", + "request": { + "body": { + "kind": "json", + "value": { + "messages": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Where is my order, DMO1042?", + "role": "user" + } + ], + "model": "gpt-4.1-nano", + "parallel_tool_calls": true, + "stream": true, + "stream_options": { + "include_usage": true + }, + "tools": [ + { + "function": { + "description": "Look up an order delivery status.", + "name": "lookup_order", + "parameters": { + "additionalProperties": false, + "properties": { + "order_id": { + "type": "string" + } + }, + "required": ["order_id"], + "type": "object" + } + }, + "type": "function" + } + ] + } + }, + "headers": {}, + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions" + }, + "response": { + "body": { + "chunks": [ + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null,\"tool_calls\":[{\"index\":0,\"id\":\"call_4tFPyMMP6FxlSRzxe4Akq7st\",\"type\":\"function\",\"function\":{\"name\":\"lookup_order\",\"arguments\":\"\"}}],\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"fO\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"{\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"S36jfgWKL7gPd\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"order\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"ZCMsCHlaQzs\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"_id\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"MQZWuIVu7IKm2\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\":\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"LzMFG8SVwIJ\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"DM\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"gzGHLZES1aYNlq\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"O\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"kCj4BHZisOMgRqG\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"104\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"ybfCPb1MQP8T7\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"2\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"yH0WWNsXHP7Pp3K\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\"}\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"c98U8nORZnTpZ\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"usage\":null,\"obfuscation\":\"Q7q1pu3cV3iSuX\"}", + "data: {\"id\":\"chatcmpl-EWxOvm3bLXWq38TBFGNV2rN9ayzfR\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[],\"usage\":{\"prompt_tokens\":82,\"completion_tokens\":18,\"total_tokens\":100,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"alG5GSI4\"}", + "data: [DONE]" + ], + "kind": "sse" + }, + "headers": { + "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", + "alt-svc": "h3=\":443\"; ma=86400", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a47af7512c4860b7-ORD", + "content-type": "text/event-stream; charset=utf-8", + "date": "Fri, 09 Oct 2026 05:25:41 GMT", + "openai-organization": "braintrust-data", + "openai-processing-ms": "221", + "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", + "openai-version": "2020-10-01", + "server": "cloudflare", + "set-cookie": "[REDACTED]", + "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "x-content-type-options": "nosniff", + "x-openai-proxy-wasm": "v0.1", + "x-ratelimit-limit-requests": "30000", + "x-ratelimit-limit-tokens": "150000000", + "x-ratelimit-remaining-requests": "29999", + "x-ratelimit-remaining-tokens": "149999955", + "x-ratelimit-reset-requests": "2ms", + "x-ratelimit-reset-tokens": "0s", + "x-request-id": "req_a1fb2a33ff9e4bd0bfb59bd12f0b90de" + }, + "status": 200 + } + }, + { + "callIndex": 1, + "id": "f2c4f1e9b2773f21", + "matchKey": "POST api.openai.com/v1/chat/completions", + "recordedAt": "2026-10-09T05:25:41.786Z", + "request": { + "body": { + "kind": "json", + "value": { + "messages": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Where is my order, DMO1042?", + "role": "user" + }, + { + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"DMO1042\"}", + "name": "lookup_order" + }, + "id": "call_4tFPyMMP6FxlSRzxe4Akq7st", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"DMO1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_4tFPyMMP6FxlSRzxe4Akq7st" + } + ], + "model": "gpt-4.1-nano", + "parallel_tool_calls": true, + "stream": true, + "stream_options": { + "include_usage": true + }, + "tool_choice": "auto", + "tools": [ + { + "function": { + "description": "Look up an order delivery status.", + "name": "lookup_order", + "parameters": { + "additionalProperties": false, + "properties": { + "order_id": { + "type": "string" + } + }, + "required": ["order_id"], + "type": "object" + } + }, + "type": "function" + } + ] + } + }, + "headers": {}, + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions" + }, + "response": { + "body": { + "chunks": [ + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"5xqTnyY7\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Your\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"7I6Nr0\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" order\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"IwiI\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" D\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"8x8YC5qX\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"MO\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"g1jcwwAw\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"104\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"GTBdwsc\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"2\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"dAQoVWt4U\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" is\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"JiazkBO\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" scheduled\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" for\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"g5xH4s\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" delivery\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"k\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" on\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"i8YM7Mn\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Friday\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"YR1\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"gRhhjxzSy\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"usage\":null,\"obfuscation\":\"NgPI\"}", + "data: {\"id\":\"chatcmpl-EWxOvMZ2FuTikghXQvpV8d7sFGg2Q\",\"object\":\"chat.completion.chunk\",\"created\":1791523541,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[],\"usage\":{\"prompt_tokens\":127,\"completion_tokens\":14,\"total_tokens\":141,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"h30w63b\"}", + "data: [DONE]" + ], + "kind": "sse" + }, + "headers": { + "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", + "alt-svc": "h3=\":443\"; ma=86400", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a47af7560f2760b7-ORD", + "content-type": "text/event-stream; charset=utf-8", + "date": "Fri, 09 Oct 2026 05:25:41 GMT", + "openai-organization": "braintrust-data", + "openai-processing-ms": "173", + "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", + "openai-version": "2020-10-01", + "server": "cloudflare", + "set-cookie": "[REDACTED]", + "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "x-content-type-options": "nosniff", + "x-openai-proxy-wasm": "v0.1", + "x-ratelimit-limit-requests": "30000", + "x-ratelimit-limit-tokens": "150000000", + "x-ratelimit-remaining-requests": "29998", + "x-ratelimit-remaining-tokens": "149999835", + "x-ratelimit-reset-requests": "4ms", + "x-ratelimit-reset-tokens": "0s", + "x-request-id": "req_37aa54d9bf0940a7b6814585d5036b57" + }, + "status": 200 + } + }, + { + "callIndex": 0, + "id": "42549d83c0e5c904", + "matchKey": "POST api.openai.com/v1/audio/speech", + "recordedAt": "2026-10-09T05:25:43.026Z", + "request": { + "body": { + "kind": "json", + "value": { + "input": "Your order DMO1042 is scheduled for delivery on Friday.", + "model": "gpt-4o-mini-tts", + "response_format": "pcm", + "speed": 1, + "voice": "alloy" + } + }, + "headers": {}, + "method": "POST", + "url": "https://api.openai.com/v1/audio/speech" + }, + "response": { + "body": { + "contentType": "audio/pcm", + "kind": "binary", + "path": "livekit-v1-latest-streaming-cascade.cassette.blobs/45057717a88ef704629c6da591d3cbe895067775db0591ee1e08ea2ab97e27bc.bin", + "sha256": "45057717a88ef704629c6da591d3cbe895067775db0591ee1e08ea2ab97e27bc" + }, + "headers": { + "access-control-expose-headers": "X-Request-ID, CF-Ray", + "alt-svc": "h3=\":443\"; ma=86400", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a47af75858a660b7-ORD", + "content-type": "audio/pcm", + "date": "Fri, 09 Oct 2026 05:25:42 GMT", + "openai-organization": "braintrust-data", + "openai-processing-ms": "397", + "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", + "openai-version": "2020-10-01", + "server": "cloudflare", + "set-cookie": "[REDACTED]", + "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "x-content-type-options": "nosniff", + "x-openai-proxy-wasm": "v0.1", + "x-ratelimit-limit-requests": "30000", + "x-ratelimit-limit-tokens": "150000000", + "x-ratelimit-remaining-requests": "29999", + "x-ratelimit-remaining-tokens": "149999987", + "x-ratelimit-reset-requests": "2ms", + "x-ratelimit-reset-tokens": "0s", + "x-request-id": "req_51dce28339204692badca5d47e560342" + }, + "status": 200 + } + } + ], + "meta": { + "createdAt": "2026-10-09T05:25:54.072Z" + } +} diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.websocket.json b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.websocket.json new file mode 100644 index 000000000..c9f5b3092 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.websocket.json @@ -0,0 +1,1144 @@ +[ + { + "direction": "send", + "message": { + "type": "session.update", + "session": { + "type": "transcription", + "audio": { + "input": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "transcription": { + "model": "gpt-4o-mini-transcribe", + "language": "en" + }, + "turn_detection": { + "type": "server_vad", + "threshold": 0.5, + "prefix_padding_ms": 600, + "silence_duration_ms": 350 + } + } + } + } + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "BQAEAAUABAAFAAMABgADAAQABgADAAUABQADAAUABQADAAYABAAFAAYABAAFAAcABAAFAAcABQAHAAcABgAGAAcABgAHAAcABwAHAAgABgAJAAcABgAKAAYACQAHAAgABwAJAAcACQAHAAkACAAHAAoABgAMAAUACgAGAAoABwAJAAgACAAJAAgACQAJAAkABwAJAAkACAAIAAoABgALAAcACQAIAAkACAAHAAkABgALAAYACAAHAAkABgAIAAkABQAKAAUACAAHAAcABgAIAAYABwAHAAcABQAJAAUACAAHAAcABwAIAAUABwAIAAUABwAIAAgABwAKAAcACAAKAAcADAAIAAsACwAKAAsADAALAA0ACwAOAAwAEAAKABAADQANABAADQAPAA4ADwAPABAADwARAA8AEgAQABIAEQATABAAFAARABQAEQAUABMAEgATABMAFAATABUAEwAUABYAEwAWABQAFAAVABYAEgAVABUAEQATABUADgAXABAAEAATABAADgATAA4ADAAUAAoADwAQAAkAEAAMAAoADgANAAgAEAAKAAoAEAAIAAwADQALAAkAEAAIAAsAEAAGABAADAAJABAACQAMAA4ADAAMABIACwAPABIACwASABAAEAASABcADgAZABMAFQAWABgAEwAdABYAGwAbABoAGgAeABsAHAAgAB0AIAAhAB4AIwAhAB8AJQAgACIAJAAgACQAIgAjACAAJQAgACIAIgAgACIAHwAhAB8AIQAcACQAGgAgAB0AHQAZAB8AGAAaABwAFQAcABcAFwAVABoAEgAYABYAEgAWABQAFQAUABgAEQAWABYAEAAYABEAFAATABYAEgAWABQAEQAXABIAEwAXABIAFgATABUAFAAUABQAEgAWABEAFQAUABEAFQASABMAEgASABIAEgARABMAEwARABcADwAWABEAFAASABUAEQAVABcADwAXABMAEQASABQAEQAVABQAEQATABMADwARABMADAAVAA0ADgARAAwADgALAA8ABwATAAIAEAAFAAwABAALAAQABwAIAAIABgAGAAEABAAEAAMAAwAEAAIAAwAEAAEABgAAAAgABAADAAkAAgAKAAIADAADABIAAgAQAAoADAAOAA4AEAAQABcADgAaABMAGAAYABkAGAAgABsAHwAhAB8AIgAlACEAJwAnACYAKwAoACwALAAuAC0AMAAxAC4ANAAxADMANAA0ADMANwA0ADUANwA1ADcANgA2ADgANwA2ADgAOAA2ADoANQA4ADcANwA1ADgANQA0ADgAMQA4ADIANAAyADUALgA3AC8AMgAzADAAMQAyAC8AMgAxAC4AMgAwAC8AMQAvAC8AMQAuAC8AMAAuAC4AMAAuAC8AMAAuAC0AMQAsAC4ALgAsAC4ALQAsAC0ALQAsACwAKwAsACsALAAoACwAJwArACUAKgAjACkAIQAmACIAIQAiAB8AIAAeAB4AGwAeABYAHQAYABUAGAAXABEAFQASABAAEgANAA4ADwAKAAsACgALAAUACgAEAAcAAwAHAAAACAD+/wUA//8CAP7/AQD+//7////9//v////6//z//P/7//r//P/8//z//f/7//7/AAD8/wEAAAAAAAEAAwACAAYABAAEAAkABwAIAAoACgAMAA0ADQAPABIAEAATABMAFQAUABYAFgAYABcAFwAZABgAGAAaABcAGQAaABgAGQAXABYAGQAWABUAGAAUABQAFAASABMAEwAQABEAEQANAA8ADAAMAAsADAAIAAsACAAJAAcABgAFAAcAAgAEAAUAAgADAAIAAgAAAAQAAAACAAEAAQAAAAMA//8CAAIAAQACAAQAAgAFAAUABQAKAAcACgAMAAwADQAPABIAEAAWABMAGAAZABoAHAAdACAAHwAkACMAJgAnACgAKgArAC0ALQAxADAAMgAyADMAMgA1ADYANAA4ADUAOAA2ADkANQA4ADYAOAA2ADgANgA1ADYAMwA1ADQAMwAyADQAMQAzADAAMQAxADEALgAxAC0AMAAuAC8ALQAvAC0ALgAuAC0ALQAuAC0AKwAuACoAKwArACoAKAAoACcAJQAnACMAIgAjACAAHwAgABsAHgAcABkAGQAZABQAFgAUABAAEwAMAA4ACwAKAAcACAACAAQAAQD+////+//5//j/9//z//H/8f/r/+v/5//m/+P/3//e/9r/2P/V/9P/zf/O/8j/x//E/8L/vf+//7n/uP+2/7T/sf+x/63/q/+t/6f/qf+n/6X/pP+k/6D/o/+g/57/of+d/5v/oP+a/53/nf+c/53/n/+f/5//o/+i/6T/p/+n/63/qv+0/7D/uP+3/77/v//D/8n/y//R/9P/2f/b/+H/5//o//H/9P/7/wAABgAMABIAGQAfACgALgA0AD0AQwBKAFMAVwBhAGcAbgB0AHwAgQCIAI8AlACbAKAAqACqALMAtAC8AL4AxADFAMoAzQDPANMA0gDWANUA1gDWANYA1QDUANMA0QDPAMwAywDGAMMAvwC7ALYAswCqAKkAoACcAJYAkACJAIQAfgB2AHIAagBkAF4AVwBQAEoARAA7ADgALQApACEAGgATAAwAAwD9//b/6//k/9r/0f/G/7//sP+p/5z/kP+G/3n/bf9g/1X/Rv88/yz/IP8T/wP/+P7n/t3+y/7B/rD+o/6V/oX+ef5p/l3+Tv5C/jT+J/4b/g3+A/72/ev94P3U/cr9wP22/a/9pP2g/Zb9kv2M/Yj9g/2B/X/9fv1+/YH9g/2H/Y39k/2c/af9s/3A/dH94v32/Q3+If49/lX+c/6S/rL+1f76/iD/SP9y/5v/x//0/yAAUAB9AK8A3gAOAUABbgGiAdEBAwIyAmECjQK5AuMCCAMuA1IDcgOTA7ADzQPlA/0DEAQeBCwENwQ/BEUESgRLBEsETAREBEEENQQrBBwEDQT9A+kD2QPDA64DlgN+A2QDRwMrAwsD7wLOArICkQJ0AlQCNgIWAvgB2QG+AZ4BhgFmAU0BMgEaAQIB7QDZAMUAswCkAJEAhQB0AGkAWgBOAEMANwAqACEAEwAGAPv/6v/c/8v/u/+o/5P/gf9l/1H/Nf8Z//7+3/7A/qD+ff5e/jj+Gf7y/dH9rP2K/WT9Pv0b/fL8z/yn/IP8W/w2/A/85vvB+5j7cvtK+yL7" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "receive", + "message": { + "type": "session.created", + "event_id": "event_EWxOoKIzB3dEdjIu9COE8", + "session": { + "type": "transcription", + "object": "realtime.transcription_session", + "id": "sess_EWxOoqEJNKO3hWIrJswjU", + "expires_at": 1791527134, + "audio": { + "input": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "transcription": null, + "noise_reduction": null, + "turn_detection": { + "type": "server_vad", + "threshold": 0.5, + "prefix_padding_ms": 300, + "silence_duration_ms": 200 + } + } + }, + "include": null + } + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "receive", + "message": { + "type": "session.updated", + "event_id": "event_EWxOoo7ZuVe3PXQM3BelO", + "session": { + "type": "transcription", + "object": "realtime.transcription_session", + "id": "sess_EWxOoqEJNKO3hWIrJswjU", + "expires_at": 1791527134, + "audio": { + "input": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "transcription": { + "model": "gpt-4o-mini-transcribe", + "language": "en", + "prompt": null + }, + "noise_reduction": null, + "turn_detection": { + "type": "server_vad", + "threshold": 0.5, + "prefix_padding_ms": 600, + "silence_duration_ms": 350 + } + } + }, + "include": null + } + } + }, + { + "direction": "receive", + "message": { + "type": "input_audio_buffer.speech_started", + "event_id": "event_EWxOogEkbGSG85bnHJ2Sq", + "audio_start_ms": 0, + "item_id": "item_EWxOoCATgZHb8inLTjM1f" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "2QCfAFT8QgS/ASf9CAaFBYYG+AJ5AdAFHA45Cu7+mAhDDvoGlAyVC1YF+gspE8cKNw3xDKwMHRMIDycJgA7GFOQLtg8ZE3cLKxNAEXsQoBAiDbEVOxI3CggQ8Q/2FG0P9wQMFM0WjwOZDp0Vyg2HA+INLhRMBwsIIQrHCI8SawRbAf0GKQ7BC7n6+gX1Bk7+vQ45/5T9/wIr/IgNwvyM9ooEqfkaDMX9eO1TCT73vvufAYL/a/s86UoQ7vk+7QANf+4Z+Tz7CvkC/Z7yFvlh+IP2jf+q8wbvcffS9z72xvLcA2HsneUoBJH1O/Uf7frtLvus/cfx7Oa38+YBTeyD6iAFIvBE6Ur5OPRl+e70LelU8ucB2fw75s/nywMMAibwxOwU77oGovhe67Lx3f9x+mf4gfGS8JID9fsO8Kn4mviA/g383vFK/MT76PTDBVL5mvVU/hX7AAAFA4z4+vk//IgJ0AKv92D80QpOBPz9jQTeBDsCRAnHBMIHygdSB90IPQh3C9wK8wotBqQKzQlrD08QMwVhC58UpwvlCJUP/Qi3EMgLUwSUFZkJaAeZE8oKKAueDecL7wv7CSgNnAvEDC8EaAtREncHsQMOD+sMswjRCrEFUApEC8QGhARfB/IOV/4MCW8P4ADdBJcCbQYwEcz8Gvn9CrcNHP3D/d0GKQl7ANn62w2x+jr7nQWx/58BagCN/6v5jwXkADb74QDN/eYBPvXl/7oD5+qBC5YDJOdhATwAmQB39if1GQbV7KwAswHO5c0G2vQA9xIJYfCB8HT7JvpbAAf4iepa72UPQfja6R72VPNCBxwFIOCt84EIFvTD/ovtFO4wCpP22/dP7DD5vwmx66n26vph7E4KFfr26Ej7k/n4/mz5su+Q9RcBr/0B8xjzzf2J/Fj7U/Oj/Sv+2/ns+cLvYwKmBYz3qu/B/hsDm/zRCHjtZ/fmEHf8CvItCZr76v15B6H58Anh/8/+BgFyAvsG7Qm7+ugEcQrE+w0LlAgfBrcIbPlADrIOoAQJBy0HX/xEERETV/mgD4MFqf+sGtT/HgPMGJ7/tgdLB50KyhGX+6sLlgm7DSYHwQADFlIDTQA7CqMGERZc/yDzhxu6DLb/kxAx/hIADhQOChD9IQROA2MK2w6R8+cDdQ64/+ACnwQ49oYOPwe1+E4AyPVXElkKH+6b/bz7rg8pBenv1PoN/CoR2u7f+4cTSutEAmwDG+7rB+EIa+gl9SQMIgWI9PbvvvurBxgDG+hF9zANyPXt88b/svt09OQFEPMD8DMRH++57mkOaPHP9YcCovud+NbyYQTG/Tb2hO5vAIAJYPaT7DT/5fYqAGMMluTA95QPWu5x+u0EKfYH9Vv9J/iP/rEFvO11+jIG+PNbAGUDOPEO9SALQv+06zQLXwHD6r0JCv6Q+dsGfPWR/e0HCvSvCQr8SfRLAccBPgez/rz3Ngaw+wQBswVi/+X7pAKzAZUGRAhG8tMInwbUAS0I2f2J+toHERR59LQAEwoEAoQQif30/vsJOAh9Bi8ItfxSAQkUPv3g/Q0WL//K/F8LtglABMwIrf4LA5gC+wYVEHr+Cf6iCCP/dRXfBP/xiwjGDbL6lxJY+QH4ZRZE/yP+8wzOAMj/0A+k87f+FxFP/WsE7/vOAqEDCwUmArz8GQl3/oUF7AO29+8GHf7XANsBov04Ccf2SAPxBrj99P/L+xsEx/nbBPkCtuxpCjcG7PQNDDr5xu4FEov+WP7i+dL2nQSm9+QC3PsC94ELmfqP84f70A+z8Qz7HgyW53j+Yg308IoChP/C6QwRZAQV7EUDy/RNAQAM2+o8A/T4fvrlCKj5QvWh/N0Gofzz7U8GxfUS/40Fp/g786/5aw8D/Mv3tAWU7CL8Dwp4/TD2QgMl9pHvuxPW/trvygM18bEGsQK/+GDzCgma/m/xpgKw+goCewc38f3wqRUR+D/2xQVO6oQJlQv/73/3QfnXCVIB0PAdAtP8GfkGAGD6QQdX+kf+mgYm6XUBBQwK9w0EHf4i9NEFIP0q+rkI/gAJ91f1lwrH+YX/3Q499H33a/0NBi0Ocfv09PP5lAqrAIoF6f/Y8RsE1AMg/TcLUgbE8ZX67AtvCFgDcv638bYGgQX+AZgHuPcO/UUBnQbOCMD5oACfBEMDcQQ+AJj8gwyXBMD+XgNz/lwH2AkSAKsEjQA3BGQLCgF0//oJ7Q5Q/O7/hQKXCj8Yk/oF/yYIZQEQEpAMG/ztDF/7hQZVFPz/gwVNBUEGwQ/7Bvv62AmmBtUPgwoO+sAImQauA7IJxgSpCIEFyP6QBLwHQg1GCJb9FQHXBIQENQVWA08GoP9n+lwKHAS9/OwC+gRFADEEngiF8if96gbC9tIEF/9h9B0CIvfiAMAL/vf2/Wf32fcb8pwDQg2T8nHxI/U3+wkH2Ppc9S75cfeQ9/36KfoY9//xkfiV+Nz4sfui8nv0jf0R+GP9C/Yg7qj4w/Pn/Yn9p/HA9kjyLvXK+QX6XPwK8WHy9fbq9YH+IvfO8nr6hvRZ8gf38PWs+aT5//Q4+In22Pfe9DL1//iz9xn2ofg39kn3RPg99lH7JPcY+Qz73/VO+Tf5dPm3/vT6c/kM+0H5L/0SAJX/lf/F/6D+D//SACsA5QLmA5ICPAOuBZIEIgWJBr8K0Qg1CDAKswgNCvMM1QteDfAKugx7Dc4PVw79DtUQgg9zDjMQchD5EDUSrBBhD50RvQ/qEWsS2Q4JEFkQmg5kEfEQwBCWD3oQaRBDD3IOfw6IDowLZA1ZDosLqw2BDJkM9wydCfsK7AuvCaAGqAiWCGkH1Qf3BjoHmwbZBg0FuwNmBmwEFATqBGECFQP9AjkCOAADArwBdP9dAVv/lgCL/9H9Lf2XAFH8Fv2h/o368fqm+jX8mfrN+qL5ovg2+a/3UPfv9+j3r/U/9qPzi/LB9Z703PTU9X/0BvUe8xTzxPIz893zSPJX87Xxn/Ay84jyQPH/8R7ydvGQ8rrxBvEK8hjxnfA08Sjxv/HZ8dbxSPNT8wfzDPMd8pDxlfKu8q/yZ/No82/0YfSG9NT0/fR19in3+vb89tT2Qvj0+BX5nvkr+rn6Rvsz/I/8gf0i/j7+z/4k/8L/xQAQAVwBuQHJAoMD2gOWBHAFHQamBhcHMQdFCKsIiwnZCckJ+AnbClYLYAtIDGkMHA3VDQENyQ23DYsN" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "3A0BDt8NIw51DqUOew4ND5wPIA9eD2EPoA+jDx0Oew54DhAOZw0zDbcN0Q1jDUsNbg3XDD8MmwzbC1oLmgqQCl8KgQkICXgIpwgRCG0HRAcCBwMHYQaqBSUFvwR5A80CUQNiA+oC/AFDAb4AMwBY/z3/Ff/Y/sb+ff1Y/Sv9Kvys+zn7sfp4+gf6JfkW+Tr5Z/j/9yX4qPcQ99v2VPb49X/1PvV59KbzDvTU81LzfPNO8znz6fIS8j7y/PEk8XTxSPGB8YTxCfF88Xbx0/Cn8avx4/EJ8pTx1fEs8lnybPIA8/7y+fKR8y/0FPRD9Ln0wvR99Xj1J/Yv94X3IPip+GH5S/ry+n/75/uT/Aj98P2V/rr+WP9RAK4AzQEJA9ADpgRUBc0F6QauB1QI9AhrCUYKggpeC2gL5AufDL8MlQ3bDUcOtg4DD3APsQ+eD8EPuw+8D/YPLxDkD+cPQBAWEFQQdxAKEE0QOhClD8sPXA/ADvQOfQ4xDhsOtg3DDZoNNw0WDcIMiQwoDIILPQvQCmAKCQqGCd4ISQgWCLsHcQceB7YG8wWtBe0E3gNaAzoDhwLkAY0B/QB0AAQAfP8b/4X+If7D/RP9rvxE/LL7Svuv+kX68vmS+eH46fhz+AT4pPdL9/P2dfb89bX1cfUX9dP0nfTo86bze/MZ8xfzvfKB8vnxyvGm8TbxvvCX8K/wYvCJ8ITw6u/d7/7vp+9W7ynvxe6g7vbuz+6c7sTu3+6n7nruS+4/7nrufO6F7s/uWO/Q7wHwd/CR8S/y4/Lg87X0nPWy9kH3T/hY+T/6Xvt5/Iv9gf5o/6IA2QG3AvMDOAVhBtEHwgiVCaUKXwsaDN0McQ1nDiYPrQ8oEFcQihDzEAkRLBErEVcRlxGyEagRhRFHEUoRLhEsEVwRMRFIEUYR9RCxEHoQIBDaD84Ppw+ID1MP9g7eDoMOJg4FDtoNsw3CDUgNOA1gDfkMvgyTDEgM1gt5Cx4LmwooCoAJFgl+CPoHsgcyB6YGVgaTBcsERASiA/ICqQIWAmwB+gCdAAIAZ//w/mf+0/1n/fX8wfxD/JP7LPuw+l/6t/kT+d74gvjV92X3DPfK9pP2UfYL9sX1RvXd9Kb0jPTt86/zYvPw8qPySfLh8Y/xPPGS8Fzw4u9U7/zujO5s7iPu/e3o7aHtau1J7QntDu3g7KTswuzF7K/stux07EbsmexO7EvsjOzG7AntiO0O7sPumO+B8NfxCPNN9ML11PbW9+348/kX+yr8Of2C/s7/IAFXAqED6QQPBlQHcwjFCQ0LMAxGDVsOdQ98EEcR/BGHEj0TqROUE8MT9BMTFB0UIhRdFGYUXxR8FEoU/xP6E54TrBOZE1ATOhMnE/cSrhI7Et4RmREJEX8QPhAUEJEPLw/2DqIOMA7GDYcNQw3fDIgMLwzSC2MLDQuzCiwKmAkVCW0IzwcnB2YG5QWQBfgEjQQRBKsD+wI/As8B9wAxAL//IP+q/gf+iv0U/YX8+Pti+9L6YPrT+Wj58fhb+Pn3t/ch94v2IPay9S31FPWn9H/0YfT986HzX/Pt8pTyU/Lt8a3xWPH68LrwW/Dq72fvxu5/7h3ul+0n7eTsvOyG7JvsfuxY7EvsLOzt673rguss6yDr8+rn6s3q5urk6tPq3Or56j3riOsV7Nrs6e1J79/wR/KG8+/0yfXb9iX4JPla+sj7I/25/gMAKwGHArkD9ARDBnYHGgmBCvcLmw0SD7YQCRISEyUU8hStFT4WghbKFu0W7xb0FrUWfxacFn0WWxY3FuAVkhWhFXgVchWyFWYVOxUWFX8U6BMTE0oSlRHMEDcQvw8mD4wOEg6wDTINtAyGDFQMPQwADKQLbQs1C8sKQQrMCTUJvggQCJEHFQdmBuoFgAUfBb4EUATlA44DRwOGAgkCbQHSAEoAxv9W/wn/cv7P/Vb9e/yp+xT7cvoB+qv5S/kT+bD4Ufjr94f3KPeq9kb2NfYI9sn1q/Wg9Uv1GPWb9E305vNn8xHz1fKK8lTyFPK78YXxG/GZ8ALwh+8k74PuOO7Z7XTt+OyO7GnsDOyY62PrEuu96m/qOOor6iTqB+oj6hPq3+nL6Zfpb+me6Rbq5epL7ALuwe978fbyx/OU9DT18vUP9zv4iflU+xr9kP7n/xYBMwJPA2kE0QV6B08J9gqlDHQO2A84EV0SZxM7FMgUSxXoFQkWQxaaFpsWnRaSFnkWQhboFVYV9RTrFOgUUBXMFRAWKhYkFp4V9xRRFGwTvRIwEtURUBHMEEQQfw/JDhQOUw3zDIQMUQxODDAMJAwUDAMM3At5CxMLVwpjCawI9wd5Bw4HsAaUBiIGngUDBVkEwQMxA7wCbQL6AZsBRQG2AE4A4f80/87+S/6a/Qz9aPz6+3z7Cvuf+i76yPlZ+fD4mvg8+AP42/eZ93b3fPdY9zX3+PaI9jv24fVu9Qf13/Sd9EH0DfS38zLzr/I68sXxQPGi8Crwve86777uQu7U7Ujt2uyI7ETs5+tc6xfrzOol6vXprelc6XzpWekj6Q/p1ui46MHor+gR6bPpnupR7PXtxu9t8X7ydPMf9KH0u/WY9r33ZPkH+/n8nf7B/ysBewKKA+kEaAZDCAAKpAuSDR0PVBDFEdES8BOuFCQVuBXyFeoV1hXpFeoV9BUMFhsW6RWpFTcVvBTPFAsVWRXTFRIWHRbvFW8V7BRYFKwTOBOZEhYSfRGvEB8QSw+dDuoNEw2jDDgMqwusC5ULWAuEC7cLtAuDCz4LkwrYCTgJMwh/B/0GNgaoBRoFJARjA5ICsgFgAf0ArwCtAJ4AegBVAC0A7/9s//b+e/7Z/Tz9iPzW+zP7lfrj+WT5xfhu+CX4zffG94r3bvej94f31/fo97v38PfK95f3g/c59//24/Zt9jf26vVM9dT0ZvTi82TzEPO48k/y5/F98RDxnPAm8KfvVO/r7l7u2e1T7crsU+z/65zrRusD67Hqe+pK6v7p2umP6Tjp4uhu6CLoI+iX6LrpTetq7b7vdPHB8sXzEPSV9D/1APZl99r4d/px/PT9Nf+CAIABcgKwAxIF6Ab7CM8Kmgx8DuoPKRGBEn0TVRQuFYUVyRX1FbsV7xU5FiQWYRZiFvoVkhUYFZgUeRTHFCEVeRXGFboVdxUpFbsUWxQxFOkTbBP9EkYSUxGPENgP7A5fDq8NVw0yDasM" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "5A1EDsIMIApcB3kEFAKpALj/aP/OADACrwOwBOUEWAM9AvsAhgCrASQDUgXlBnwIPApGC5YNoA/1EBcSGhJKET4QMA+0DeQMGwzMCxkLQwt6CvMI/gaOA9b/m/wj+QD46vdE+Kz63ftm/Zf+X/9S//f/tf+r//r/bAFlA9AFZQiTCfUI4QeWBZQDEQPHAngD0QO2AlIAtP0c+7/63vu3/BL+wv0t/Vn8Bvya+/L6wPoW+8r7v/4kAZUDmwTBA90Bpv/r/mv/LwH5AjkE6wPRAggCYgANAPP/sv+t/0wAcwDZAAUBhAAj/1v+W/2l/fr9/P5//yn/nf6p/Tv7TfiZ9oT08vXf+KH80//2AGX/MPzW93/1ePQl9VP2z/fu90z44Plh+ub7X/wo+3v52PhW+If5m/oN+/L5N/k5+b37zv8ABXkHpwfgBJAAW/2H+4H8sv2v//4A5wExA14E3ARLBDcC8v9f/ZT8ofyA/fv9C/6k/Sv9b/3L/oIAdQLtA4IEBARSA0QCbQHWAEEB6gGiA8cFzAdfCdsJdQkUCCsGvARPA8wCpgK8ArwC7wL3AusCpQJJAkoBhgC//w3/l/5J/uj9Dv6K/pD/2QD5AeMCPQNyA6ADAgRVBGUEbQQvBEgEwASFBU8GwwbFBhcGGAXdA50CbwGAAMf/JP/Z/sT+5f4M///+qv4q/qz9c/11/Zz9yP34/R7+g/4Z//f/6QDJAVoChQJaAiUCFgJKAnACeQIUAmgBwABKACkAUABcAF4AFACB/9T+1P3Q/Pf7bvtt+8T7TPy4/Oz8OP1m/c39CP4m/hr+O/6a/jT/xf8eABcAAAADADcAmgAbAVEBYwEQAZ8AGgCh/zL/rf5F/sb9Vf0X/fv8If1f/bL92v3D/aT9Yv1B/XX9tf0U/lj+ff6L/p/+6v55/xkA1QBmAagBuQFuAd0AWADl/9j/AABjAI4AfwA7AMX/c/9V/x3/5f7C/pT+ov7R/gD/Gv8Y/w//Bf8a/zL/Xf+U/9X/FwBlAKQA7wApAV4BmgGxAcsBxQGhAYsBcwFOAUsBIQHuAKoAawBNACEAFQADANL/0P+i/4L/b/9c/03/VP9s/5b/v//p/woAJgBHAHMAkwCyAMEA2QDXAP8AIAEWASABBgHgANQAsQCgAJQAdwBOACAA8//b/7z/sf+e/5P/g/94/3L/Zf9u/3f/c/+T/7H/wP/7/wgAEAAIAPf/4v/h/9n/+v8aAC4ASQBOAE4ARQBGACoACQD6/9z/xf/B/77/r/+5/7n/qv+1/6b/u/++/7//v/+v/53/m/+Y/6//yP/g/+D/3f/Q/8T/y//g//T/HQAuADYAPAA4ADYAMAAjACEAFgAcACMAKQAoACcAJwAdABAADAAQAAgABADw/8z/vv+y/7b/xP/Z//P/6P/y/+H/0P/X/9j/7P/9/wkAHAAgAC8AKgAdAB0AEgADAP3/9f/x/+b/5f/m/+b/AAABAAAABAD+//b/6v/k/93/2v/o/+z/9v8GAA0AJQAoADkAPwApAC0AGwAHAAIA/v/4//X/7v/2//z/EgAaAB0AHQATAAAA+P/0//z/CQASAB8AJAAtADYAOgBIAEIAMwA7ACUAHwAhACEAJQAhABcADQALAAgACQD4/+3/2f/F/73/vf/J/+D/4f/h/+H/4f/i//T/7//z//X/BAAHABsAIgAnACcAJQAmACwAPABSAFoAWwBOADMAFwAHAPL/6f/j/9n/3P/c/+P/7P/0/wAA+P/y/+b/2v/X/9j/5P/l/+T/6f/o//j/DgAZADAANQA+ADoAMwAxADIALgAtAB8AEQAMAPj////z/+j/4f/M/8D/qf+b/5f/i/+U/47/j/+h/63/vP/N/8//1v/F/8L/wf/A/9b/5v/2/wAACQAAAP//+f/4//f/9v/s/97/zf/C/8L/wP/M/8//1f/S/9H/y//K/9T/1f/a/9z/6v/0////CgATABcAFAATABgAGwAkAC8AKgA3AC8AKQAuAC4ALwAqACAAHAARAAQABgAHAA0AHAAeACwAKAAsACYAIwAmAB4AHwAlAB4AIQAbABYAFwAQABMAFgAZABMAEwANAA8AEQAYACwAOgBEAEEALwAjAAsAAgD+/wUAHgAoADkASQBHAEgAOgAuABcABgD+//X/9P/s/+//5v/u//X//v8TAB0AIgAdAA8ABwD7//3/BgAIABgAIAAnACYAJQAmACgAGgAgABwAEAAXAAUA+f/w/9f/0//I/8v/2v/J/87/xv/C/8D/xP/d/+L/9//7/wQA/////wgA9P8CAPT//v/z//P////7/wsAEQAMABkADwAUAAwACQAXAAMABgAOAAwAIAAXADMAGgAhAAkA+v8EAAQAIAAfAC4APwAyAEIAPgBGAEYAPgBPAD8AQwBHAD4ATwBIAFkAUQBUAF0ARwBKAEEAPwA2ADcARABDAEgATwBDAEIAMAAwAB4AFgAgAB0AIgAiACMAHgASABYACwARAA4AEwAHAP7/+f/0/+//9//4/wEA+P/3/+//4v/e/9P/0v/K/8z/wf/G/8f/y//I/8b/x//A/8L/uP+3/7P/r/+m/6D/pP+n/6r/rP+s/6v/nf+j/6L/nP+i/6T/rP+r/6v/q/+k/6b/pv+r/7H/tP+9/7X/sv+v/6L/n/+f/6H/n/+g/6P/oP+o/6//tv+3/8L/yf/H/8//x//N/8H/yv/H/8T/zv/V/9f/2//i/+T/5P/p//P/9v/4//T/8//w/+r/7//q//H/9v/+//3/AQACAP////8AAAIABAAHAAwAEgASABwAHAAgACUAJwAuAC8AMAAtAC0ALQAnACgAIgAnACQAIQAkABsAGQAbAB0AIQApADAAJwApACAAHQAZABoAIgAjADQAOQBAAEAAQgA+AD0ALwAvACIAIgAlAB8AJAAmACcAKAApACAAFAANAAsABgD//wAA+////wAABAAKAAQACAAAAAEA/f8AAP//9f/6//n/8//z//H/AAD4//3/+v/0/+3/5P/p/9//2//b/9T/zv/N/87/0f/V/9z/2//d/9v/0//N/8T/v//D/8P/zv/L/9z/2v/h/9v/1f/L/8n/yf/G/8P/y//M/9n/2P/e/+j/5v/m/+L/3v/Z/9L/1P/c/+L/7f/2//n//v/4/+v/3//Y/9v/3P/j/+v/7v/q/+//" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "6f/4//X//P8FAAsABQAFAAMACAAKABIAGgAZABkAHwASABIADAAFAAUABQANABMAEwAXABUAGAASABYADgAXABMAFwAYABcAIQAiACYAKQAtADAAMQAyADAALQAtACQALAAkACoALQApADEALwArADAAKAAyACcAKAAiACEAHwAgAB0AIgAkACoALAAvAC0AKwAiAB8AGgASABkAFAAWACMAHgAnACoAKAAqACYAJAAcABcAEwASABAAGAAVABsAGQAkABcAFgAOAAoAAgD+//v//P/5/wYAAQAKAAMAAgADAP3/AQAAAAEA//8GAP//AAAIAAIABAAOAAsADgAKAA0ACQAKAAsACQAHAAYABQAEAAAABQADAAgACgAQAA0ACgAJAAsABAAEAAIABAADAAQABAAEAAAA/v/6//f/9f/v/+//9f/u//v/9P/5//r/+f/9//r/8v/5/+z/8f/5//D/9P/3//j/9v/2//b/9P/p//X/6P/j/+b/3P/e/93/2//c/9j/2P/d/9r/3f/k/9//4//t/+n/6//s/+j/6//n/+v/8P/w//T/+P/v//T/6P/s/+b/7v/m/+b/6f/j/+z/5//t/+v/7f/v/+7/6//y/+n/6v/s/+n/7f/u//X/+f/4/wAA+P8BAAIAAQABAAoAAgAKAAoADQAMAAgABwAHAAAABAD+/wUABQAFAAUABAAEAAUACgAJAAgADAAHABAADgATABYAFwAiABwAJQAmACUAIwAnACMAJAAhACEAIQAkAB4AHQAVABUAFQAPABMAEwAUABYAEAAUABEADgARAA8AFQAYABkAGAAXABgAFAARABMADQAUAA8AEwAPAAsACwAKABEADgAPABEAFAAPABAACQAKAAwADwAOAA8ADgARAAwABQAKAAUABwAFAAUABgAIAAYADAABAAYA//8GAAUABAAHAAQAAAD///v/+P////f/+f/+//n/+f/0//P/8P/v//L/8f/t//X/7v/u/+z/5//l/+T/4//q/+b/4v/i/+H/3//f/9//5P/e/+P/3//e/9z/2P/a/9f/2f/f/93/4P/m/+P/4v/l/+L/4v/h/+X/3f/f/9//3//d/+r/5P/s/+r/7//x//H/7v/0//T/9v/7//v/+P/9/////v8CAAAABAAAAAAAAgADAAAAAAAFAAQABQADAAcAAwAFAAcABAAGAAUACAALAAcABwAHAAEABwAGAAYADQAFAA8ADQAMABQAEAALABEACQAQAAgADAAUAA0ADAAXABAABwAWABAADAALABQAEgAKABQAEAAOABMAFgASABIADAAQAAgADQARAAsADwATABEAEAASABAADgAKAA8ACwALAAwADgALAAsABwAHAAQABQAIAAgABwAOAAYABQAHAAEAAwAAAAAA//////j/+v/7//z//P8AAPj//v/6//r/9f/3//T/9f/3//j/9f/4//X/9f/2//P/8P/v/+3/8v/z/+3/8v/w//D/8P/u//L/9f/1//L/8f/x//D/8v/0//f/9f/7//P//P/3//z/+f/9//v////2//n/8//3//H/8//2//P//P/6//j/+P/3//H/8f/3//j/+v/7//3//P/1//3/AAD9/wAAAQD8//7/+v/5//r/9//9//z/AAAAAAQAAQAAAP3/AwAAAAkAAAAAAAEAAQAAAAEABgALAA8ADQAUABUAFwAWABgAFgAcABoAHQATABkAFwAWABsAGgAYABoAFwAbAB4AGQAbABwAHAAYABoAGgAcAB0AHQAbABwAHQAcACIAHQAeAB0AGgAdABwAGgAZABsAFgATABUAFgARABIAEgAMAAoABgAFAAUAAAAAAP//+//7////+P/3//b/9//2//f/9P/z//T/8P/v/+//7f/s//H/6//y/+3/7//y//D/7//w//D/9P/z//P/8f/w//L/7//w/+7/7v/s/+r/7//0/+//9P/z//X/9v/w//n/9f/2//n/9v/4//z/+v/7//f/+f/+//n/+//9//v//f/4/////v/3/wAA/P/+/wAA+f////n/+v8AAPv/+/8FAP3/AAACAPz/AAD8/wMAAAD9/wIAAAADAAMA/f8BAP////8BAP7//v8AAP3///8CAPz/AAACAAAAAAD9//z/+v/8//n////8//7//P/+//z/AgD9/wAABAABAAIAAAAAAAMAAAACAAAA//8AAPv//P/8//f/9//4//P/9v/5//X/9P/4//v/9v/4//f/8//4//n/7//0/+z/8P/z/+3/9f/v//H/9v/t//X/9f/v//X/9v/4//P/8//2//n/9//7//7//v/+//7//P/+/////f8DAP3/AAD9//v////8//v//P/9//r////6//r/+v/7//r/9//6//n/+//9//v//P/8/wAAAAD8/wAAAQD+/wQAAAAAAAYAAQAEAAYAAgAIAAcACgAKAAYACwAJAA0ADAALAA0AEgANABUAFQAUABkAFgAaACAAHAAiACAAJAApACYAKAAmACcAKQAoACYAKQAmACMAJAAfACIAGwAcABgAGgAYABIAFgAPABAAEAAGAA0ADgAIAA0ACgAJAAwACAAMAAsACAALAAUACAAIAAIAAgABAAAA/f/4//r/9v/1//n/7v/y//L/5f/v/+r/6P/v/+X/7f/p/+r/8v/q//X/8//x//f/9v/5//3/+f8DAP7///8JAAAADAAKAAsAFAAPABcAFwARABcAEwAUAAwACQAFAP//+P/3/+3/6//p/+H/5f/l/+n/7//v//3/+P8EAAwAFAAeACUAHgAnACgAJQAiABYAEwADAPr/9P/j/+P/0//W/9L/yv/Z/9f/6/8EAAYAHwAyAEAAUABzAHsAjwCZAJgAnACaAJIAgAB2AGUASAA8ABoADgAEAOr/7f/Y/8//4v/L/9//8f/g/woA//8VADEAKABKAEoARABkAEUAYABXAEYATAAtACoAOgAeADkAMwAiAEkAJgBHAFEAPgB2AFYAWQBtADUAOAAxAAAACgDc/7b/pv9n/0//Mv///vj+0P6v/qP+cP5q/kj+M/4l/vv9/P3S/cb9q/2J/Xb9Xf1T/Sf9Mv0G/fn84Pyy/Kj8f/xv/Fr8PPw//BD8IPwF/BP8JvwZ/DP8PvxP/In8u/zt/Fr9kv36/XL+xv58/+v/nAA+AcgB" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "VP9M/z7/Mf8w/zn/PP9R/2b/f/+W/6H/pP+o/57/o/+c/53/pf+k/7r/vf/X/+D/4//j/9f/zP+1/57/jf+D/4L/i/+e/7L/0v/i//T/AQAAAAoA/f///wUABgAeACUAPQBMAFwAZABjAGAAUgA/ADsAIQAtACIANwA9AFgAXQBuAG8AbgBvAHAAbgB4AHkAfgCEAIQAjgCOAJgAkwCJAIoAcABwAGMAawBpAIIAiQCkALIAugC4ALkApwCfAI0AhACKAIYAowCtAM0A2QDjAOcA1ADLALIAnQCQAIoAhQCaAKIAtADOAMUAzgC9AKYAjgBzAGYAUwBoAGwAkQCwAMoA4ADnAOIAyQCxAI4AdwBiAF0AZgB5AJAAowCzAKsApQCFAHEATAA6ACoAMQA7AE8AZgB3AH4AfQBtAF4ASgA3ACwAJgAnACsANAA9AEAAQgBEADcALgAaAAoA+//0/+j/7f/s//3/AwAOAA8ADwACAPf/4//O/8L/rP+u/6r/rf+3/7f/x//C/9H/yf/P/8j/x//G/8H/u/++/7v/wv/J/8//1v/R/8X/v/+i/5v/gf97/2n/Z/9n/2H/cP9t/33/gf+M/5T/mP+f/53/of+f/6T/pP+u/7H/vf+7/8f/wv/B/8L/tP+6/6z/rP+h/6H/l/+d/5n/pf+n/63/vP/C/9H/2P/V/+D/0v/e/9b/4P/q//L/AgAGAAUACgD0//3/5//r/+T/4P/s/+X//f///xMAGwAhACQAHgAZABEACQD5/wEA9v8BABAAFAArACkAKAAmABQADAACAAAACAAXADAARgBZAG0AawBsAGQATwBEADkAKgA0ADUAQwBOAFMAXABUAEkAOgAiABMAAwD7//7/BgAOACEALwA1AEAAOAA2ADAAIQAjABkAHwAuADUASQBUAFcAZABRAFMAQgA1ADUAHwAjAB4AJgAwADkAQgBBAEMAMwAyACQAHQAPABcAFgAkACgALwA6ADkAOgA5ACkAJwAdABMAEgAPABAAEgAYABgAHAATAA0ABQD5//T/7P/n/+j/6f/q/+n/7//x//L/9f/w/+j/8v/i//L/6v/6//n//f8AAPj//v/x//D/5P/e/9n/2f/W/9z/1f/n/+H/5P/f/9X/1//H/9L/yP/W/9j/6f/r//f/+//6////+v/4//P/7//t/+3/7v/p/+//9P/y//X/8//4//b/8//u/+v/7P/p/+n/9P/z/wQABQAUABkAEwAXAA8AEAAJABEACwAcABAAIwAeACQAJAAhACEAHQAWABAACAABAAUA/v8MAAoAEgAYABIAHgAMABQACgANAAwADAAVABgAJQAtAC4AOAA3ADYAMgAqACoAIwAoACkAMAAyADgAOAA9ADMANAAxACQAIwAiACEAKQAzADYAQQA8ADwANwAwACwAIQAjABkAIgAkACkALwAzADoAOwA6ADQALAArACMAHwAmACIAKgApADEALQAxACEAKgAcABYAGAARABMAFwAZABkAIQAVABQADAAGAAAA/P/9//z/+v8AAPj//f/9//b//P/z//L/8P/o/+T/4//b/+X/4f/q/+r/7f/z/+//6//0/+P/6P/n/+H/4v/l/+P/6v/s/+r/8f/p/+7/7f/i/+b/5P/d/+b/3P/l/+D/5P/k/+P/6P/f/+H/1//P/9P/yf/I/8r/zP/I/8v/yv/D/8v/w//J/8f/yP/I/8v/yv/R/8//0f/S/9D/zf/S/83/0f/T/9z/1//f/9n/4P/b/9n/1//W/87/z//K/8v/zf/K/9L/zP/R/9T/yP/M/8n/wv/K/8P/x//J/8z/0v/Q/9r/z//W/9T/yf/X/8T/0P/S/8z/0//V/9b/3P/b/9z/3P/Z/9j/1f/Y/9b/1//c/97/4f/i/+T/5P/f/+X/3//p/+P/6v/o/+j/6//r/+n/6//n/+f/5//h/+T/3//j/9//4v/n/+b/6f/p/+3/5//q/+T/6v/h/+r/6//k//T/6//x//H/8f/x//T/8f/1//X/9f/7//r/+P/7//P/9v/y//P/8P/w//L/6//w/+//7P/1/+v/8//v/+r/7P/n/+n/6P/r/+3/6//x/+z/7P/r/+r/6//k/+j/5P/i/+b/6P/p/+v/7f/t/+//7P/l/+b/4P/h/+P/3//n/+T/5//p/+r/5v/l/+b/3v/c/9v/1//c/9v/4P/i/+P/5f/g/+P/2v/Z/9n/1f/U/9f/1//g/9v/4P/n/97/5f/f/9//3v/d/9b/4P/Y/+L/3v/m/+n/6P/o/+f/6P/i/+T/4P/h/93/4v/h/+L/6P/l/+n/4//i/97/3v/e/97/3f/l/+T/5f/t/+T/8f/j/+r/4v/k/+H/4P/i/+H/4//n/+X/6P/q/+b/5v/m/+L/4//j/+T/5//l/+n/7P/p/+//6P/q/+r/4v/l/+X/5f/j/+z/5P/u/+v/6//r/+r/5v/l/+j/3v/p/+L/5//o/+f/7f/q/+z/6v/q/+n/6f/o/+z/5//r/+3/6v/u/+3/8f/x//L/8v/w//H/7P/u//H/7P/y/+3/9P/t//H/8P/s//T/6//x/+3/7f/x//H/8P/3//L/9v/z//H/9//s//j/7//0//T/8P/4//D/+f/x//v/7//5//P/8//3//X/9v/9//v/+/8CAPz/AQAAAP//AAABAAAAAAACAAQABgAFAAwABQAQAAcACgAQAAUAEAAMAA0ADwAQABIAEQAUABMAEwAUABYAEgAWABUAFQAXABUAGQAZABoAHQAdABwAGwAdAB4AHAAcAB0AHgAeAB8AHAAjACAAHwAmACEAHwAkACAAIwAmACIAKgAnACsAKwArACoAKgAnACoAJgAoACgAJgAsACMAKQAqACUAJwAlACUAHwAkACAAIAAfACAAHwAgACEAIAAhAB0AIAAdAB8AHAAcABwAHAAaAB0AHgAZACAAFgAcABgAFwAcABcAGAAYABgAFwAXABcAEgAWABQAEgAVABAAFAAOABQACwAPAA8ADAARAAwADQAPAAsACQAOAAwACgAOAAoABwAPAAYACgAKAAYABwAKAAcABgAIAAEAAgAHAAAAAwAEAAAABwACAAQAAwACAAQAAAAAAAIA/f8CAP3//v8CAP7/AAABAP3/AAD9///////7//3/+v/+//v//P8AAPn////7//r/" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "/f/7//z/+//9/wAA+//+//3///////7/AAD///z/AQD8/wEAAAD7/wcA+P8BAAIA+v8EAPv/AAABAP3/AQAAAAAA//8GAAAABAAEAAQABAAGAAkABAAMAAUADAAJAA0ACwAQAA0AEwAPABEAEgARABUADwAbABEAGwATAB0AFgAcABwAGQAgABkAHgAdACIAHAAjACUAHAAnACUAIgAoACMAKwAiACsAKQAmAC0AKgAtAC4ALQAqADIAKwAvAC8ALAAxAC4ALgA0ADAALgA0ADEALwAzADEAMAA0ADAAMgA1ADEANAAzADIAMgAzADIALwAzADIALwA2AC0ANQAyADEAMQAzADEAMgAwADIAMQAxAC8AMQAxADEAMAAyADAAMQAtADIALgAuADAALAAtAC0ALAAsACwALQAmAC4AJQAnACUAJwAjACMAJQAfACEAHwAeAB4AHAAZABkAGQAWABcAFgASABQADwASAAwAEAAIAAwACAAGAAoAAgAIAAIAAgADAAAAAAD9/wAA+P////j/9//+//P/9//5//H/9f/z/+//9P/w/+3/8//p//D/7f/q/+7/7P/p/+v/6f/m/+//5P/s/+n/6P/s/+n/6P/r/+v/5f/s/+j/6f/o/+3/5v/u/+v/6P/v/+v/6v/v/+7/6//z/+z/9P/x//H/8//0//X/9f/3//j/+P/7//v/+/////v/AQD//wAAAgD+/wYAAAAEAAcABAAKAAcACQAJAAsACgANAA0ADAAOAA4AEQAMABMAEAAPABMADwAUABIADwAXAA8AEgAVAA8AFgARABQAFAAPABYAEAAQABUADwAQABgADQAUABIAFAAOABcADQASABcACwAUABQADAAYAA4AEgARAA8AEQARAA8AEAARAA0ADwAOAA4ADQAOAAsADAANAAoADQAKAAsACgALAAwACQAKAAkABwAKAAYACAAKAAYAAwAKAAMABwAFAAMAAwAEAAMAAAAEAAAAAgD//wAAAQD9/wAA///9//3//f/4////+P/6//r/+f/3//j/9v/2//j/8f/3/+//8f/2/+z/8P/x/+z/8v/r/+//6v/t/+n/6v/r/+f/6P/p/+b/6f/l/+b/5f/l/+X/4f/l/+H/4v/h/+D/3//e/+L/2//e/+L/2P/h/9r/2//d/9v/2f/f/9r/3P/d/9v/2//c/9z/3P/e/9v/3P/f/9v/2//d/97/3P/f/93/4P/e/+D/3//g/+L/3f/k/+L/4v/k/+T/5P/l/+j/5f/n/+v/5P/t/+j/6//q/+7/6//u//H/6//z//D/8P/z//H/8v/0//T/9P/3//b/+f/5//v/+//8//3//P//////AAAAAAEAAgADAAUABQAFAAgABgAJAAsABgARAAoADAARAA0ADwATAA4AFAAUABEAFQAaABIAGgAaABYAGwAcABgAGwAgABYAHwAdAB8AHgAhAB8AHwAjACAAIAAiACIAIgAiACQAIwAiACUAJAAiACUAIwAlACIAJAAhACcAHwAmACIAIwAkACEAIQAlACEAHwAlAB8AIgAgACEAIAAhACAAIQAeACAAHgAdACEAGgAfAB0AFwAeABkAGwAaABkAGQAYABgAFwATABoAEgAXABYAEwAUABIAEwASABIAEAAUABAADwAPAA0AEgAKABEADAALAA0ACwALAAoACwAIAAwABwAKAAgACQAGAAkABgAIAAsAAAAKAAUABAAHAAUAAgAIAAIABAAFAAUAAQADAAMAAQACAAAABAAAAAEAAQAAAAIAAAD9/wUA+v8DAAAA/v8AAAAAAAAAAAMA+/8FAAAAAAACAAEAAAADAAQA/f8IAAAAAQAHAAEAAAAKAAEABAAHAAIACQAEAAkABAANAAgACQALAAoACwAMAA0ADQARAA0AEAASAA8AEgATABUAEgAbABMAGQAZABcAHgAXACAAGgAeACEAHAAjACEAIwAjACgAJQAlACgAKgAnACsALQAlADMAKAAtADAAKwAxAC8AMgAxADQAMAA3ADUAMwA5ADMAOgA3ADgAPAA2AD4AOgA/AD8APABEAD0AQgBBAEEAQgBFAEMAQgBFAEIARQBIAEEASQBEAEcASgBEAEkASgBJAEkASwBJAEkATgBIAE4ATABNAE0ATQBNAE0ATgBPAE0ATgBRAE0ATwBQAE4AUABPAE8ATQBQAE0ATwBPAE0ATwBOAFAATQBNAE4ATABOAEsATQBOAEoATQBJAE0ASQBLAEkASABKAEUARgBHAEMARABDAEMAQgBAAEEAPgBAAD8APAA+ADwAPAA8ADwANwA6ADoAMgA6ADQAMwA0ADYALAA3ADAALQA0ACoAMQArAC4AKgAsACsAKAAqACgAJQAqACEAKAAlACMAIQAlAB8AHwAiABwAHwAgABYAIgAXAB0AGQAYAB0AFAAXABkAFQARABcAEAAVABMAEAAWAA4AEgASAA8ADwASAA0AEAAQAAwAEQAOAAwAEAALAA4ADgANAA4ADgAKAA8ADQAMAA0ADgAOAAwADwALABAACgAPAA0ADAAPAA0ADwAOAA4ADwANABEACwASAA0ADwAQABAADwATABAAEQAVAA4AFQARABYAEwAYABMAGQAYABYAHAAXABwAGQAfABkAHAAhABsAIAAkAB4AJAAjACMAJQAkACcAJgAoACkAJwArACoALAArAC8ALAAxAC4ALwA2ACwANgAxADMANQA1ADcANAA6ADMAOQA4ADkAOgA5ADsAOQA8ADsAPQA8AD8APQBAAD0AQAA+AEIAPwBAAEIAQgBCAEIAQQBFAEIAQwBFAEQAQQBGAEQAQwBGAEEARgBCAEYAQwBFAEYARABFAEcAQwBJAEQARABJAEEASABHAEUARgBHAEYARQBGAEUARABFAEQARQBEAEQARABEAEIARABDAEQARAA+AEUAQQA+AEQAPgBBAEEAPQBAAD4APQA/ADwAOwA9ADsAOgA6ADsANgA6ADoANAA4ADYANQA1ADUAMwAzADQAMAAzADAALwAyAC4ALQAwACwAKwAuACgAKQAuACQAKwAnACcAIwAmACUAIgAmAB4AIwAjACAAHwAiAB0AIQAeAB4AHAAeAB0AGwAcABwAGQAdABkAFgAcABgAFgAdABQAFwAXABQAFwAWABUAEgAZABEAEwAZAA0AGAAQABMA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "EwASABMADwAUABEAEgAQABEAEQAPABEADwAQAA0AEQAMABEADQAKABQABQAQAA8ACAAQAAkADQAOAAoACwAOAAoACQAQAAcADgALAAsACgAMAA4ABwAPAAoACgANAAwACQAOAAsADQANAAoADwALAA8ACwAQAA0ADAANABAADAASAA0ADgASAA4ADwARABQACwAWABIADQAUABMADwATABIAFgAPABYAFAARABgAEgAVABcAEwAUABkAFAAXABgAEwAcABUAFgAbABgAFwAbABgAGQAaABkAGgAcABkAGwAdABsAHAAcABsAHQAeAB0AGwAgABwAHAAhABsAIAAgABwAIAAeACAAHwAeACEAHwAhAB8AHwAjACAAIQAjACIAIwAfACcAIQAiACcAIQAlACYAIgAnACYAJgAjACsAIwAnACcAJgAnACcAKAApACUAKAAnACkAKAAkACkAKAAmACkAKQAlACoAJgAnACcAKQAlACcAJgAlACgAIwAsACEAJgAoACIAJwAkACYAIwApACIAIwApACIAJQAlACQAIwAnACIAJQAmACEAJwAiACYAJAAjACQAJQAiACMAJgAfACcAIwAjACQAIQAnACEAIwAkACUAIgAlACUAIwAkACUAIwAmACUAJAAmACUAJAAmACcAJQApACMAKgAnACMAKgAlACkAJwAoACkAJwArACYAKAAqACcAKgAqACkAKAApACsAJgArACkAKQApACoAJwApACsAJgAqACkAJwAoACgAKQAkACoAJwAkACcAIwAoACMAJAAlACMAIgAjACEAIwAhACAAIQAfAB8AHwAbACIAGgAbACAAFwAbABsAGQAYABsAFAAZABwAEAAaABYAEwAZABMAFAAUABQAEQATABIADgAUAA8AEAAPABAADwAQAA0ADQAPAA4ADQAMAA4ACwAOAAwACwANAAkADQALAAkACgAMAAkABgAMAAYACwAJAAYACQAHAAkABQAIAAYABgAHAAYABwAFAAUABwAFAAQABgADAAYAAwAEAAQABAACAAQAAgADAAQAAAAHAAAAAAAJAP3/AwADAAAABAAAAAIAAAADAAIAAAAFAAAAAgABAAIAAwABAAMAAAAEAAQAAAAGAAIAAwAEAAMAAgAFAAUAAQAHAAYAAwAHAAYABQAIAAgABQAJAAkABwAKAAoACQALAA0ACQAOAAwACgARAAwADQAQAA0AEAARABAAEAATABIAEQAVABIAEgAWABUAFAAWABcAFgAYABgAGAAaABwAGAAdABoAHQAcAB8AHAAfACEAGgAlAB0AIAAjAB4AJAAgACUAIgAkACMAJQAlACUAJwAkACkAJAApACYAKQApACgAKgAqACsAKwAsACwAKwAvACwALAAxAC0ALgAxAC8ALwAzAC0ANAAxADEAMwA1ADEANQA1ADEANgAzADQANAA4ADAANQA2ADMANQA1ADIANgA0ADMANQAwADYAMgA0ADIANAAyADUAMQAxADIAMQAzAC8AMAAuADIALAAvADAAKgAyACoAKgAwACkAKgAuACcAKwAoACgAKAAqACYAJgAqACIAJwAlACIAJgAiACEAHwAiAB8AHwAgAB4AHwAaAB4AHAAZAB0AGAAZABoAGgATABsAFQAUABgAEQAWABQAEwARABIAEgAOABQADQAPAA8ADQAOAAsADgAKAA8ACAAMAAoACgAJAAoACQALAAoABwAJAAsABQALAAcACAAJAAcABwAHAAkABgAGAAkACAAFAAgABwAFAAkABAAIAAcABQAFAAoAAQAKAAYAAwAHAAYABgAHAAkABAAJAAcACAAIAAkACAAJAAwAAwAPAAcACQANAAoACgAOAAwADAAOAA4ADgANABIACgAWAA8AEAAUAA8AFAASABQAEgAWABMAEwAYABQAFQAYABcAFQAdABUAGgAaABgAGwAaABsAGgAbAB0AGwAfABwAIAAcACIAHwAdACIAIQAfACQAIAAgACYAHwAlACMAIwAmACMAIwAmACUAIwAoACUAJQApACMAKAAmACcAJwAlACgAJgAqACcAKAArACcAKwApACkAKQArACgAKwAmACsAKAAsACcAKwAoACkAKwAmACwAKQAqACkAKQArACgAKgApACoAKgAoACkAKAAoACkAKAAoACkAJgAqACUAJgAmACcAJQAmACYAIgAnACMAIwAlACIAIgAkACEAIQAgACEAHwAfAB4AIAAfAB4AHQAeAB0AHAAcABsAGwAdABcAGgAYABgAFwAXABgAFwAUABYAGAARABkAEwATABQAFAASABMADwATABMADgAUAA4ADgARABAACQATAA0ACgASAAYAEAAJAAwACQAMAAoACAAMAAUACQAJAAUACQAHAAYABgAIAAQABAAJAAEACAADAAEABwABAAQAAQADAAQAAAAAAAQAAQD//wQA//8BAAIAAAACAAAAAgD//wIA/f8CAAAAAAABAP//AQD+/wEAAAAAAAEA//8AAAEA//8AAAMAAAD//wMA//8EAAAAAgACAAMAAQADAAUAAQAEAAUABQAEAAYABgAFAAkAAwAKAAYABwAJAAcABwALAAcACQALAAcADQAHAA0ACwAMAAoADgAMAAsAEAALAA8ADgAQAA4ADgATAA4AEQATAA8AEQAUABIAEgAVABEAEwAUABQAEwAVABQAFQASABgAEwAaABMAFwAZABQAGgAWABUAGQAZABcAGQAZABYAHAAXABkAGwAYABwAGAAbABkAHAAYAB4AGQAdABoAHgAaAB8AHAAbACAAHQAfAB8AHQAhAB0AIAAiAB4AHwAiAB0AIgAhAB0AIwAfACAAIQAgAB8AIwAfACAAIwAgACEAIQAkAB0AIwAiACEAIQAhACEAIQAjAB8AIQAiAB4AIQAeAB8AIQAhABwAIAAeAB4AIQAbAB0AHwAYAB8AGwAbAB0AGgAaABoAGQAaABcAGQAXABUAFwAVABYAEgAVABMAEgAQABQAEQAPABEADQAQAA4ADwAOAAoADgANAAsADAAKAAwACQALAAYACQAJAAMACQAIAAIABgAGAAIABgAFAAAABAAEAAEAAwACAAAABAABAAEAAAABAAQA//8BAAMAAAADAAAA//8AAAIA+/8EAPz//v8AAPz/AAD+//z//P8AAPn///8AAPj/AAD7//v/" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "/f/8//3/+v/9//z//f/4//z//P/7//z/+v/7//v//P/4//7/+v/4/wAA9P/8////9//9//v/+f////r/+f8AAPn/+/8AAPj/AAD9//3//P/+////+v8AAP7//P/+///////8/wEA/////wAAAAD//wEA//8BAAAAAQAAAAIAAwAEAAAABgADAAMAAwAFAAYAAwAFAAQABAAEAAgAAgAFAAUABQACAAcABAADAAcABAAEAAUABgABAAgAAwAHAAYAAwAJAAMABgAFAAcAAwAIAAYABAAGAAUABgAGAAcABgAJAAcACQAGAAkACQALAAgACQANAAkACgAOAAkACwARAAcADwALAA0ADQAMAA0ADgAMAA0ADQAQAAoAEgALABEADwALABEAEAALABIADQAPABIADQATAA0AEwAPABMADwATABEAEgARABAAEQASAA4AEgAQABEAEAAOABAAEQANABEAEAAKABEACwALAA0ADQAHAA0ABwAGAA0AAQAOAAEABgAFAAIAAQADAAAA//8EAPv//f8CAPj//v/9//f//f/5//b/+v/6//T/+v/0//X/9//0//L/+P/v//P/9f/t//T/8v/w//H/8P/u//L/7v/v//D/7f/x/+z/8P/s/+7/7v/t//D/6//v/+3/6//v/+z/7f/x/+r/7//x/+j/7//v/+n/8P/r/+7/7f/y/+n/8P/v/+r/9P/r/+7/7//r//D/7v/t/+//7//u//D/7f/u//L/6//w//D/7f/u//H/7//w//L/8f/v//H/8f/y//L/8f/y//P/9f/y//f/8//2//b/9//2//j/+v/0//3/9f/7//r/+f/8//r//v/7/////P/9/wMA+/8CAP//AgABAAIAAwAAAAcAAwADAAcAAQAIAAYABQAHAAgABQAJAAcAAwAKAAYACgAEAAcABwAFAAkABAAGAAUABQADAAcAAAAHAAEAAAADAAAAAQAAAP3//f/+//r//P/3//j/9//z//X/8v/x/+//7//u/+j/6//n/+b/6P/h/+D/5f/c/97/3v/b/9z/2f/b/9T/2P/b/9H/2P/U/9P/1P/S/9P/0v/S/9T/z//T/9P/0v/S/9f/0v/W/9L/1//Y/9f/1//Y/9v/2//a/97/2//e/+L/2f/k/+D/4f/n/9//5f/q/+T/6f/r/+v/7f/s/+7/8f/v//T/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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "YPdn93P3hfeV9633xPfc9wH4HfhH+G74m/jP+Ab5P/mD+cj5E/pi+rf6CPtp+8L7I/yJ/O38WP3G/Tb+qP4f/5b/EACMAAYBggH9AXoC9AJtA+sDYATdBFMFyAU9BrEGIgeOB/sHYQjGCCkJgwndCTMKfwrMCg4LSwuGC7UL4gsIDCkMRAxcDGwMdAx5DHcMbwxiDFAMOAwcDAAM2Qu0C4ULVQsgC+cKrApuCioK6QmfCVoJDQnGCHYIKAjbB4cHOQflBpEGPQbmBZMFOAXjBIYEMwTXA4MDKwPTAn0CJQLQAXwBJwHWAIEANQDk/5f/Sv/9/q3+Y/4W/s/9gv1A/fX8sfxs/Cb83/ue+1f7GfvV+pb6WPoZ+uD5pflt+Tf5AvnO+Jz4avg9+Az44fe094/3Y/dD9yL3BPfo9s/2t/ai9o72fvZu9mD2UvZN9j72P/Y49jf2NvY69jv2RPZL9lL2WvZm9m/2gfaP9qP2ufbM9uD2+fYQ9zD3Tvdy95b3vvfh9w/4Ovhq+KP42vgU+VT5lPnc+SD6bfq9+g/7Z/vA+xv8ffzd/EL9qf0R/oH+7f5h/9f/TADFAD4BuAEzAq8CKQOhAxwEkAQJBX0F8wVlBtkGRwe1Bx4IhAjpCEgJogn9CVAKoArrCi8LcAuqC98LDAw0DFgMdAyKDJ4MqAyyDLkMtwy0DKoMnAyHDG8MUQwvDAkM4QuxC4ILTgsWC9wKnQpeChYK0QmICToJ6giWCEQI7QeXBzwH4waHBi4G0gV1BRkFugRcBP4DngNCA+ICgwIiAsUBaAEJAa0AUgD5/6L/Sv/z/p3+Rv7x/Z79Sv36/Kz8XfwQ/MT7ePss++X6nPpZ+hf61vmZ+Vz5JPnt+Lf4hfhT+CT4+PfM96X3evda9zb3F/f69t32yPax9pz2jPZ69m/2ZvZV9lX2TPZL9kn2SfZO9lH2V/Zf9mf2c/aB9o/2o/a59s725vb89hf3KfdH92D3e/ea97L3z/fs9wv4LfhO+HX4l/i8+OX4C/k2+WX5kfnG+fX5Kvph+p361voX+1b7mvvi+yr8c/zF/BP9Z/28/Rf+cv7S/jj/mP8AAGoA1ABBAa8BHQKLAvcCZgPQAzwEpwQQBXgF3wVGBqoGDAdvB8wHJwh8CNIIIAluCbgJ9wk8CnUKqgrfCgcLMgtTC3ELhwucC6oLtgvBC8MLxAvFC7oLsQudC4oLcAtVCzgLEwvwCskKoApzCkQKEQrZCaQJZwkrCesIrQhrCCcI4wecB1AHCAe4Bm4GHwbQBX8FLgXaBIgEMwTgA4oDNgPeAosCMwLbAYYBMAHZAIsAOADl/5j/Rv/3/qn+Wf4P/sH9eP0w/ef8ofxd/Bf82fuV+1v7G/vf+qX6avo4+gD6zPmc+Wf5OvkL+dz4s/iD+F/4OfgW+Pb31ve695z3gvdr91L3Qfcq9x73D/cF9wD3+Pb59vT29vb69vr2BPcM9xX3H/cv9zn3S/dZ92z3fPeS96j3vPfU9+n3/vcW+Cn4Qvhc+Hj4lfix+ND47/gT+Tf5WvmB+ab5z/n7+Sn6VfqM+r369Pot+2X7ovvl+yP8Z/yv/Pb8RP2V/eH9Ov6R/un+SP+n/wUAZgDJAC0BlAH0AVsCvgIjA4YD5wNHBKsEBgVoBcUFHgZ5BtEGJQd6B8cHGAhfCKoI6wgtCWoJnwnVCQYKLgpYCnkKlAqtCsMK1grjCvIK9Ar3CvYK8wrsCuAK0Qq9CqYKiwptCkwKKAoDCtwJrwmGCVIJJwnzCLsIighMCBMI1weUB1QHFgfOBowGRgb6BbkFaQUeBdUEiQQ7BPADnQNTA/0CtQJiAhQCyQF3AS4B3ACTAEYA+f+2/2P/Hf/T/ov+Pv76/a39bP0j/eL8o/xg/CX86fuv+3T7QvsJ+9r6p/p2+kn6HPrt+cf5nvl3+Vr5MfkZ+fn43/jH+Kz4mfiE+HL4Y/ha+E34SPg/+Dz4OPg6+Dn4QPhG+E74WPhk+Gr4e/iG+Jb4p/i5+M/45Pj8+Bb5KflF+V35dfmT+bD5y/nt+QP6JPpB+l76f/qj+r/65PoF+yX7TPtw+5b7v/vk+wz8Nvxf/Iv8t/zp/Bj9Sv19/a/94/0W/lH+hv68/gH/Mv92/7L/7/82AHAAtAD1ADgBfAG+AQQCRgKQAtACGQNeA6ED5gMsBGwErwTuBC0FaQWmBd0FEwZIBnsGqQbZBgEHLQdOB3IHjweuB8wH3wf4BwgIFQgnCC8IOAhDCEQIRwhFCEIIOQgxCCcIGQgNCPcH5wfOB7gHoAeBB2oHTAcqBxEH5gbGBpsGeQZIBh4G7gW+BY0FVgUkBe0EtwSBBEAEBgTCA4YDPQP/ArUCdQIsAugBowFfARQB1QCLAEYABAC+/3z/O//3/rj+d/46/vn9vv1//Ub9B/3O/JX8Xvwo/PT7wvuR+2D7MvsG+976tPqR+mj6Sfoo+gb67fnM+bn5nfmL+Xb5YvlW+UX5O/k0+Sr5Jfki+R/5Hfkj+SP5K/ky+Tr5RPlO+Vr5Z/lw+YL5jfmg+az5wPnV+ef5/fkT+iv6P/pW+m36hvqe+rn61Prt+gv7IvtA+1j7dfuS+677y/vq+wj8JfxG/Gb8hvyt/M388vwW/Tv9ZP2I/bD92P0A/iv+Uv6C/qz+2f4K/zf/aP+Z/8r/+/8sAF4AjwC+APUAIQFXAYcBugHsAR4CTwKBArYC5QIXA0oDeQOtA9sDDAQ9BGcElQTFBO0EGQVABWkFjgW0BdQF+QUXBjUGTwZsBoAGlQaqBrwGzQbcBukG8wb8BgAHAwcIBwUHBAf/BvcG7wbhBtYGwwayBp8GhwZwBlYGOwYdBgAG3wW+BZoFcwVMBSEF9gTJBJsEawQ8BA4E2wOrA3UDRgMMA9kCnwJpAjIC9QG9AYEBRQEJAc8AlgBZACkA7f+6/33/Sv8U/93+rP54/kT+FP7h/bf9if1h/Tb9Ef3t/Mj8pfyJ/GX8Tfww/BT8/Pvl+8r7tPuj+5D7f/tx+2H7W/tN+0T7Pfs4+zL7L/sv+yr7Lvsu+zH7Nfs8+0D7SPtS+1j7Yvts+3P7ffuI+5H7nfuq+7b7xfvP++L78PsB/A/8Ifww/ED8Uvxi/G/8gfyO/KD8rfy//NP84fz3/Ab9Gf0q/Tv9TP1f/XD9gv2T/ar9vP3S/eb9+f0Q/iL+OP5O/mP+ef6Q/qj+" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "gQ4bDggNXgyNC0sKbAkqBy8FhwNQAbIBCAK5AcYC9QDm/sr9H/zi+6T7d/s4/Hn8/fw6/cD8QfzI+876c/uX/Pb8yP7F/2j/YQD//wP///9GAA0BaQIGA84DdwREBCkFJAXWA8QDGgM8AwwFJwaiBkUGaATuAtcBJQGcAQgCAQLEAXEAZ/8L/sj8pPs7+gL51/dL95L2I/bH9YDzaPEr74XtgOwE7H7reeqn6Y7oFufo5fzjSuJj4aHhkOHn4PnfJ98B3iDeF9023N/b69oA25Dc/9wa3A3fst9N4C7k4OKw4FHiPeH242zqru1k8Wfyv/Ap8OXvJPPy+Af+GgKhA6sEGQVkBhcJuwr2DI0PghLwFX0ZGxyTG1EbxhqcGpMdiSApI2MlniWlJfMjlCI+Iq8hqiLbI2wkCCWhJE0jOCE7H/UceRtsG3wbgxurGlIZDhfCFCcTWhGiD/UOhQ0aDHALlgoQCvsIiQcWBSAC/wC3/1QA8gG9ATsBtf/O/Gv77vr/+sT70vy6/Pb8B/1K/CH8zPt1+8/7F/w3/V7+6/4/AHoAsP/O/1b/a/+eAPYB1wKvA58EzwTHBE8E5gJCAp8C9QOZBdwGkgYEBcIDGQIRAW4BmAEPAvsBKwEgAJ/+P/13/Ar73fn0+LT3bPc39yT2U/QY8vbvwu4P7ivtkOzs6wjq+uhL51DlXuSw49nikuIC4hrhdOAr37/d19213ILcVtxf3Kvbttsi3Dvbx9xf3k3g9ePb48Ti5uGu3wfixOcr7DTxZvOf8QHwle9o8V/1+PtrAHYCnwWGBVoGGgmMCVULLg72EM8UjRmRG94b4xtWGnMaJR2fH8Mi/iTqJIwklCMLI/QiPSPOI6cjiiPTI/AiGiKwIJMfLR6uHGUcCRt3GvwZJBhyFmYUaxLMEAkQ/g4ZDUMMYQo6CSYJ7geIBvMEcgICAVMA3P+AAL8AOgBC/zf9+/ub+6b7Gfyz/Mj8Cf1j/Zv9l/0I/YX82Pxb/cr+cACOAFgBeAETAacBogHbAasCkAOZBLYEwQQWBT4FrAXgBcwEhwQfBUcFcQYaBrIEsAPhAt0CkQLkAU0CPAEsACL/3/xN/Gb85fpX+rv4yvZG9rH17vR68+/wcu7X7OPswOy/6/3qK+lp5+vlX+Q44+nineKt4s/hPuDl3sjdT9393EzcoNyP3J7cjdxS3FXbFduO3N7eauEg5dfjTeJD4nng/uJO6DXtMfLx84/yM/Hf78ryafdS/e0BBgRsBW4GrAeqCQkL1wxQD2MSGBaKGf8bRxz4G58bUxueHYEgJiMVJT4lbyQrIxEjFSOaIt4ihyI7ItYi5yJCIo4gWR5KHNcaMxqcGU8ZmBgHF0wVphMNEiAQqg4vDTULcQqTCSMJegkRCIUGQAR0AYwAff9P/5wA6AADAWYAJv4n/FT63/n++nD8VP4//03/Uf4V/YP7Zvtw/Kr9RACNASgCZwKxAXQB+gDQABsCJwN0BKYF2AU5BuYFqgVVBbAEfgRCBI0E1gW5Bs8GlAVnA2YCYgGSAagBjAHmAKL/lP5m/eX7L/vV+cv43veM9k/1cPQ/8+Dxf/Do7qPtGO0e7Nvq2OjL5k/lUuR55MXkMOS545/iduD+3hDdG9t13ATdRN293nnc7NoL2mrZedol2rHdh96P39PjWuNa4VfiFOCe4cjnhOtF8bz06vOA8/bx5/FZ99n8LALgBkgIZwjTCQQLzwxFDw0RNxTZFxocvR+HH5kfUR5eHSEfyCFgJGcn6SeIJyQmayTlI7gjyyMGJMgjzyKdIhEirSDuH08dMRsxGnEYpBfvFtEVFBViE8ARUA/kDH0L3wnRCGUIVAetBm8GuwS5AvYAyf65/ar+EP8s/5v/Z/7R/Lz7lfqx+nf77fz5/SX+uP7b/X/9TP72/eT+l/9DAGQBlQIlA1cDcQNfAx4EXwRsBF0FVgUpBv8GKgeZBwEHAAZ/BdsEFgXMBUgGzQYmBhAEKAIcARMBWQE5AY8A/v6x/bD81/uA+iL5ifcu9pP1KfU69KvyJ/FU77ntkuxD673qQ+on6ejn9eX74/risuKQ4j3i2uF54P7eBd6l3Crb59tM21fcdNx32/Dawdlo2brZtNrI2kffHeM55KjlOuNN3wrgruLK6KnwkPXk9vb1h/PS8r711Pq0AAYGrglVCk8MnA1GDu0Q7RG+E2AXbhuAHwMisyInIfsf5B9gIXUkBycWKR0p4ifQJgckVCO8IwwjLCTiJPUjhSPJIXMfAh1qGvIYpBcWF58X7BbtFRkU3xA7DbcKWAkQCJwInQgpB3oGRwU4A4QBDADP/cz8GP1Y/Yr+/P8b/9T9lvvS+Xj5ivoD/Un+L/9I//P+zv7y/tn/EQDjAF0ChALCA98ETATaBegFtgXGBn0G4QZSB4kH7AdFCL0IywgMCJcHYwatBd0FQAZhBp0G1wXxA/YCTQEeAD//D/+t/i7+/v19/Bf7U/ly9un0HfTh8m7z5/Lz8OrvL+3+6k/qoej85+bm6uU85jvkpeMH4rfgQ+Bq3jPevNx23M3c0dyv2z/bHtmA2PDYytjg2dfZn9gX2z7c/N0t417je+HJ4bHgz+Cx5+XtfvNy91b3DvV888/1hPmqAJMGDQrYDAcOJQ94EF8RZxIlFOQX/RtwIDMkVSSTI5chUiB+IZMktydBKlUqGCmEJhEl6iSRJAMl6iNXIuIg3x9SICAfhx46HNAYThaDE7cS8RINE54SABE4DlAKgweiBcQEUAVWBY8FAwV9A/oBSP8B/cT7WPuW/MH+VgBzATUApf3L+w363fpZ/FP/+gGRA0cEXQO8ASIBjQF0Av0DLAaEB3MJyQn6CZkJGQhGCPsHFgiWCbQJOQo3C3UKqQnfCJcGJwbTBisGYwbTBXQE7wMEA5sC/gFNAA/+kPza+qz6kPud+mT5lvcu9Mryw/FF8QHxT/Dz7vPsN+vf6H/oF+gJ53zm9uSm46fiauHU4CXgCN+53sfdftzs28fatNl02VnaO9nl2L3Ygdb11nnXbdjY2MHchOB54tXlBeQI30ffXuDH5TPwhfcS+wf8Kfgc9b/1ZPkDAU8JbQ+xEYMTLxJTEp8TVhToFpsaHx+BJDAoaSm/JjEk1SEmIfEjDCdDKv4rNCspKR8lKiJXIHsfCSAYIHAgOx+UHZQcKBk1FroTYRBZD3EPOg+gDw0P" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "OgA/AEIAQABFAEwARgBJAEsATQBNAEwATwBNAEkATABHAEYAQwA7AD8AMQAzADEAJAAmABwAHAAUABAADAANAAcABAAIAAEACgAFAAoACwAPABQAFQAeACIAKwAtADUAOgBAAEQATQBNAFQAWgBZAGEAXQBrAGMAawBoAG8AawBxAHIAdAB3AHgAfAB+AIMAggCFAIoAhwCIAJEAjACOAJIAkgCPAJQAkgCSAJMAkQCTAI4AkwCHAJMAjACIAIwAhgCJAIQAgwCBAIMAewCAAHkAdwB2AHQAcQBxAGoAaQBmAGAAYABbAFUAVABRAEwARgBIAEAAOwA/ADQAOAA0ACwAMQApACkAJQAjACEAIQAfABcAGgAXABUAEwAUAA8ADgAJAA4ABwAHAAYABQAFAAMAAQAAAAEAAgD9/wIAAAD9//7////6/wAA+//9//r/+f/4//f/8//w/+7/6//q/+L/5P/a/9v/1P/R/8z/0P/F/8b/w/+//8H/uv+//7n/uf+8/7T/uP+3/7f/s/+7/7H/sf+5/7D/rv+0/6r/q/+q/6f/qP+n/6P/pf+f/6P/nv+g/6H/of+k/6P/qf+m/7H/sf+3/7f/vf/F/8P/zP/M/9L/1f/V/97/2//f/+b/4//r/+//6//2//f/+v8BAAEACgANAA0AHQAYAB4AJQAjACoALwArADYAMQA5ADcANgA9ADYAPQA7ADkAQAA1AEIAOgBBAEIARQBKAEoATwBRAFoAWQBhAGUAZwBrAHEAdwBxAH0AewB5AH0AfwB/AH8AfACCAHkAewB8AHgAeAB1AHQAdABvAHUAbgBtAHMAaQBsAG0AZQBoAGIAZgBdAGAAXABUAF4ATwBUAFIATQBQAE0ATgBJAE4ATgBKAE8ASABPAEoASgBKAEgARQBGAD4APgA5ADQANgAqACsAIAAgABoAEwARAAcABQAAAPz/9v/4/+z/5//s/+D/5P/c/9j/1//S/9L/y//L/8f/xf+9/7//uv+2/7b/sv+z/6r/qv+l/6T/oP+f/5r/m/+T/5b/j/+P/43/if+L/4P/hP+I/33/gP+B/3z/gf98/3//fP99/4D/e/+A/3z/gP9+/4H/g/+B/4L/hf+I/4v/if+S/47/k/+W/5X/nf+b/6D/oP+i/6n/pP+p/6n/qf+r/63/p/+u/67/qf+u/6z/q/+t/6z/rv+u/7H/sP+6/7b/u/++/8H/x//J/8//0f/Y/93/3f/p/+r/6//2//b/+f8DAAEACAANABEAEgAaAB4AHQAqACYAMAAxADgAOwA/AEYARABOAFEAUwBbAFkAYQBiAGYAaABtAG4AdgBzAHoAfAB/AIMAggCKAIcAjwCPAJEAlgCXAJkAnACcAKAAnQCmAKIAogCsAKEAqACpAKcAqACrAKMArQCkAKYApgCnAKAApACgAJkAnQCWAJUAkQCUAIQAjQCGAIEAgQB9AHgAeAB0AG8AcABlAGsAYQBiAFoAWgBSAFIASQBEAEAAOgA2AC0ALQAiACEAGgASABEABwAIAP3//f/6//H/7//u/+b/5v/e/9v/1//V/8//zf/M/8L/xv+//7v/u/+0/7L/qv+v/6f/qP+i/6H/n/+a/5z/mf+X/5b/kv+R/5H/kP+I/43/hv+F/4X/gP+A/3//fv95/3X/ev9w/3n/c/9w/3b/cP90/3H/dv90/3j/d/94/3v/fv98/4X/gv+I/4v/iv+O/5P/kP+Y/5f/mf+c/5z/nv+e/6T/of+k/6f/qf+n/6r/r/+s/7X/sv+2/7n/vf+6/8f/vv/M/8n/yv/Q/9D/1//S/9//1P/g/97/4f/k/+L/5v/n/+3/5P/y/+z/8P/2//P/9//5/wAA//8FAAYADQALABYAEQAdACAAHAAoACEALQApAC8AMAAvADQAMgA2ADQANgA3ADgANwA+ADcAPQBAADsARAA/AEQARABGAEcARgBMAEcATQBHAE8ATABHAE8ASABJAEoARwBCAEsAPQBFAD0APgBAADkAOgA3ADcAMwA2ADIALwA0ACoAMAAtACsAKQAoACcAIwAmABwAIQAeABYAGwAUABMADwAOAAkACwACAAUAAAABAPz//v/5//r/+v/z//v/8P/3//T/8P/z/+//7//x/+3/7f/q/+n/5f/m/+P/4f/g/97/2P/d/9P/1//R/9P/0//O/9L/y//P/9D/zf/P/9D/zv/R/9H/zv/Q/9H/z//R/9L/0f/Y/9H/1v/X/9P/2f/Y/9f/3f/d/9n/4P/c/9//3v/g/+D/3v/d/9v/4v/V/+T/1//b/9r/1//X/9T/0//T/9b/zP/V/8z/1f/O/9j/y//b/9X/0//j/9L/6P/Z/+f/5P/n/+//6f/2/+3/9v/1//T/+f/5//j/+f/9//j/+/////n/AAD8//3/BAD8/wYA//8CAAkA/v8FAAQABQD//wkA//8CAAQA/P8CAPz/AAD6//3/+P/8//n/+v/6//X/+//4//f/+v/1//n/9//4//b/+P/y//j/9P/w//b/7v/x/+3/7P/q/+n/4f/l/+H/3f/d/93/2P/X/9f/1f/T/9f/zv/Z/9H/1v/U/9f/1f/a/9n/2v/d/93/3//c/+b/3v/m/+P/4//n/+H/6f/h/+n/5P/q/+b/6P/s/+b/6//r/+n/7//r//T/7P/1//P/9P/2//z/8/8AAPv//f8AAAEA/v8KAAAACgAOAAMAEgAMAAoAFgASABQAGwAYABkAIgAZACIAIwAfACkAIQAoACYAKQAkAC0AJgApACkAJQAmACgAJwAjACwAJQAoACgAJgAtACUAKgAuACsALAAxADEAMwA4ADUAPAA7AEAAPQBFAEQASQBKAEsATwBPAFEAUABZAE4AWQBVAFQAVwBWAFMAWABUAFMAUgBTAE4AUQBNAE4ASwBOAEoASgBIAEgARgBDAEMAPwA6AD0ANgA2ADIALwArACgAJAAjAB0AHQAZABQAFwANABIABwAJAAgAAAABAAIA+f/9//n/7v/1/+r/7P/o/+H/4v/d/9r/1v/T/9P/zv/Q/8b/yv/M/8L/yP/J/8L/xv/F/8X/xf/G/8H/x//C/8X/wv/C/8P/w//B/8D/wP+9/8H/uv+8/77/uf++/7j/uP+5/7z/s//B/7f/u/+9/7v/w/+7/8T/vf/G/8D/x//L/8L/z//F/8v/" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "yP/O/87/y//T/87/0//R/9H/2//T/9r/2v/a/97/4f/b/+f/4//a//T/2P/r/+7/4v/u/+r/6//w/+7/7f/2//D/8//8/+//AQD7/wAAAQAEAAkABQATAA0AFwAZABkAIQAeACYAKQApAC0AMAAvADYAMQA9ADcAPgA6AEEAQQBFAEAASgBGAEwATABQAFQAUABVAFYAVgBVAF8AWABcAF8AYABaAGEAYABcAGgAXQBlAGIAZABhAGgAZgBnAGkAZgBwAGUAbgBoAG4AagBuAHAAaABxAGsAbgBtAGwAaQBtAGoAaABoAGYAZABkAGIAXQBjAFoAWQBgAFIAWQBZAFAAVQBQAFAATgBNAEwASwBKAEcARgBJAD8ASwA+AEUAQAA5AEEAOwA0ADsAMwAyADIALgAwACcALwAlACkAIwAkAB4AJAAbAB4AGwAbABUAGAAVABcADgAVAAwADwAMAAsACQADAAoA//8BAAAA///3////9P/y//3/6//7/+3/8v/y/+z/7v/w/+z/7f/w/+v/6v/z/+j/7P/v/+b/7P/r/+b/6P/q/+H/6f/f/+P/4v/e/97/4v/Z/9v/4f/V/+L/2//e/97/3f/e/+H/3v/j/+b/4v/p/+b/6P/o/+7/6v/v//T/6v/3//L/8f/3//j/8//+//f/+/8AAPn//P8AAPr/AAD//wAAAAADAP3/AgAAAP3/BQD9///////5////+//+//n//v/6//z/+f/8//3/+f8AAPz////9/wAAAAD//wMAAQAAAAQAAwADAAgAAAAJAAUABQAIAAoABAAMAAcACQAKAAwADQAIABIACQAMABIABgARAAsADwAJAA8ACQAKABMABQAQAAYADwAKAAwADQAIABAADwAMAA8ADgATABEAEQATABMAFAAUABcADQAWABIAFAANAA8ADAAKAAwAAgAHAPz/AAD2//v/7//3/+r/6v/r/+P/5f/e/97/2P/b/9X/2f/R/9X/0f/P/9D/zf/M/8v/yv/K/8P/yP+//8H/wf+6/7X/vP+v/7X/sP+t/63/qv+s/6b/p/+v/6H/q/+p/6j/q/+r/6z/sP+t/7j/sf+0/7v/tf+4/8H/uf/B/7z/wf/D/8X/wf/H/8j/x//M/8r/zf/P/9T/zf/Z/9T/1v/e/9X/3P/h/93/4P/j/+P/4v/h/+T/4f/k/+P/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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "uQvPB8EEwQF//+n9f/00/pz/uwF1A4cFYgdkCcoLpQ09D7wPdg/oDjQOIA71DeENdA21DH4MqQwQDv4PdRLWFBoXRxllG7MdyB+XIbEiviLnITkg6B0KG7wXoBM+D4UK+QXmAUX+KfuD+HX2GfXB9FT1wvbb+FL79f3MAI4DfwYkCZwLlw3fDqUPnw8UDyEOygxVC98JZggMBwAGwwT7AzMDvALdAgMDdwPfA/QDBwSiAxkDKQL8AHf/tP2/+6b5Z/d59SDzZ/HO79vuA+9V73LwY/GO8jf02PUa+CP6y/vJ/M78JPwx+y762/h49071NfME8Rvvy+3A7Bjsnutk607rq+sB7ITsvezl7PXs9ewU7dzsZ+yP64Dqculx6IfnguaT5ankBeSM41jjIOPs4sjijeKU4rri4eLX4rTi7uGl4T/hH+Hu4VjicORs5i/qFe+W9E/75wD8BhUMuBFSF9Ac1SH0JGUm9yXkI9whPx+PHFkZvRSOD1kKqgXaAtgAt/8k/4b+Iv+1AFcDwQa/CQkMtw3bDigQkhE8EikS7xAeD88NDw2CDbAOFxCmEUsTLBUWGIIbUR/IIkUl1CZ2JxMnGyYZJGgh3x2nGQkVJBCACzsHlQOJAC/+rPz6+038PP3M/qMAkwJ7BDwGzQcGCTQK1gpBCzcLjAq1CasI/gfTBxgItwg6CbEJEwq7CqkLAQ0qDs8O1Q7jDWIMfAoaCMcFDAMQAAr91vlZ9yX1m/OR8uDxIPLf8mD0TvY6+A76cfuB/DH9mv3A/XP91vzg+yn6o/jW9or10/RD9Cz0D/Q19Fr0t/Qk9WD1n/VI9QH1WvSi85ryJ/F+733twOtF6hTpI+hz57LmGOb15QLmZOYV55Dn5ec56BLoH+iS5zvnoOY45srlUOVp5ITjm+KW4Wbh7ODo4FPg198Y36/eht6B3jzfv99W4hTlMur18Cv4WAB1BpIMWRFzFpMbwx9kI9ojlyLMHu4ZxBX8ETwP+QszCHUEHQGb/8r/LAE3AzQFigYfCK0J5gsQDmIPeg9ZDv8MSQyeDDMNlw2mDXINRw5aEP4TZhgBHbwgcCOCJQgnRSgrKc8oMSc2JBcgUBtrFtARyg1aCrwHrwWSBCEEIgSaBN8EdAUvBiUHKQi+CJYI3geqBoEFiAQiBPEDPQTYBL4FVgcuCTkLaQ1MD2ARJROoFE0VwBRrE0cR9g53DNoJ6wYABOwAJv7++3X6Bfrn+XL6CPuY+4f8Bf2y/ev91v2t/Sb91fyS/NT7VvtG+q/5f/kB+tn6zPtk/KL8mfyh/KL8svyI/OT7uvrI+K72jPTi8njxFPCf7i3tTOzn607sFu3Q7V/ub+6G7mnupe6Q7hruEe2D6/bplehK53Pm5eRg5KbjauPq4xHkvuRx5S7m4eZd54bnQOcr5oLl4uP64o7h/t9F3pjcWduQ2ifbBNtj3ejeseEl5wXsTvS4/DYEYwt/DzIUWRdQGuQdAx6zHUobkxbtEkMPFAwvC+cIWQfwBa0EagXEBsAINgoWCw8LEgvKCjgL/Qo+CrQI6AYfBpIHGwrRDe4QZxPqFXsY7xuGH/0iNyU2Jv0lPCTbInogeB6LHAYaAxjxFdoT8hFRENIOwg3HDDwMgAsxC40K8whqB3gFWwTVA5ADMgOOAvUBzQE4ApMDJwUgBwcJAgv7DOkOmBCSEakRExFOEDYPTQ7ZDCILSQl0Bw4GKAX2BFAFYgUpBWwENANIAn4BjwCY/5H+Of1L/KT79Poc+/v6jftk/I/9B/8ZABwBIAEtAcMAkgAXAGn/Zf4X/Yr7EPqY+KT3bvd39233KveV9v31CPbc9ev1R/U69P/ykPFt8IjveO7e7ZjsK+yj63Hrj+tC6+XqrupY6jzq5+mJ6eDo9OdD50TmPuWH5EnjweIw4griMuJx4m/ixuKW4uniEuNR49biHuKV4J/emt0n3IrcUNxm3VHfduFV5ynuqPa6AOkHHg7VEtAUhhjOGXUb4xpKGBAUaA/oCpwIswf9BwMIRQhRCI0JVAtnDY4Ogw5UDcELlgrTCX8JiAgtBwsGYwUpBz8KkA4UE4oWwRlBHL4eVyF7I9Mk+SSaI00hiB70G/gZLBjkFqAV8BS1FLIU/BSjFAYUrRIhEVEPHQ20CroHWQSSAVj/l/76/jsADQLwA8kFvAdnCfsKDgyEDI8MfAzoC7MLDQuhCpEKXQoBC48LOAyxDIAM1QstCysKUwkpCCYGFgQMAm0A2/+F/0L/lv46/s/9yP08/oH+9f4m/2r/Wv+s/wEAPQBbABsAnv8Z/5b+e/5Q/lD+6/3q/Nv7rvo7+hX63vlW+UL48PbI9ez0ZPSZ8wDz5/EH8XHwFfA88E7wqu897zzuWe2c7IrrbeqK6YLoCuif54Hnq+dc57Xn5+YU513mauZ/5SPlhuOu4hbi9+DA4U3h8+Fh4oji2eLG4i7i0OEU4Enfr96i3afeKd5i35Lh1+Pq6UDwjfifAYsIig17ERQTaxUVF9IXABcXFKkQxQyICtcJNwrVCpALyAvDDHAOERBiEesQZw9CDVQL3wnxCPkHGgeUBgcHqQjlC2EQlBSeGDMb4hwQHsoe4R6vHoIdChywGrAZcRm7GTQajxrVGhQbVxuBG/gakxnzFsgTPBDsDIAKDwhyBjgFMQRcBOwE/wWHB3QINAlZCTgJ+QiTCP8HeAfgBr4GQQdLCGEJhwpfCyQMNw0QDtsO0A41DgcNfQtlCh0J4AdSBm0EpQJTAXQALAAXAP3/CADR//b/lP+v/zb/7v7I/hv+lP0c/Yn8rvzW/DD9sv3n/Vj+sP62/t/+DP5z/Rv8S/ve+a34f/dX9t/1svWE9cj1g/Ut9ab0hPPT8tHx4/BT8CbvQ+6G7djsZOxM7JXrD+t66o/pNulj6Czoheft5unm3eU65oHlJeVm5N3j9uJq4uThWuGD4XThLOIQ4kXiDuLH4XDh9eDZ30zfIt6g3rTez99l4WPjo+fo67f0sPqyAzYJQQyVD2wPvRCnEMEQ+A6kDXcLIApCCg8L8QzLDlYQWxEDEjISvRHnEMwO1AzNCj0Jogg0CLAI/whKCmAMxw4gEgsVghcpGf8ZURoDGrEZJRnbGMIYDBmJGTwa+hq1G0scoxyxHCkcYxvkGeQXhxXNEjwQyQ2dCwkKdAjDB0IHIweSBxgIjwgWCSMJ9gg+CJQH" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "NwZEB3wHwwjxCSAKIAsMDL0Miw3jDSEPtg+yD60QaRHDEc4RWRIkExQTOhPOE0QURhRIFJsUrBSKFEUUURT6EyoUshOJE3MTJBO4EhsTZxKYEWoRaREPEdIPXw+1D78O3w2cDX8NzAyhC08MXAvlCWIKlAm7CHoI2QfMB64GsAUIBsMEWwWGA7cCZgMlArgBnAEo//kAYAAY/bH+Nv9W/Gf92/uc/Hb7qPls/M/4O/m7+ZT5vfjG9QP5hfh99Yv2XPfQ9Yr02fbz9fjzZ/RF9Vf1JvNQ89r18fHG8+TzRPIo9kvyuPAe9yLz1vIT9XvzePL19Xb1y/G78i33zvNh79326fcV8Nzxgfnj9ZD0qvR48Hn68Pll7qrwdfy+9RT1/fFN9Wf8BfN59EX3nvi49NT5T/Oq9rr7d/XB9o340/is+pv2ofcu/e72KPgX/vT3Yvhm/dP5IPrE/FD7a/sk+wH+Fv1U/Bv8OAAi/kP9PwBP/2P/bwGcAYAAOAKmAw0DXgKuBFsGDAXqBQEHtgYfCYAJyAd8CmcLSApIDJgMRQwODigNBA5DD1MObBCcDt0QshC7DwQR8xGBDusRdhKpDhAQlBKSEMsP6Q4iEbIQbQ92DmkPtA+6DesNNw5fDTgNJgtVDroKggobDVIJsgr9CXYJrQgLCNcK1gUZBv4IpAa9BkECpAf3Bo8AiwWqA9YBWQR1ApP/2gJFAKkC9/4Z/UABHP4r//z9UfghAjP+xvaQ/jn8BPtK/Tb2Nf6Z9/P5LfzR9UP5rPgT/IT35PMf+lf+//B19zH///EB8xoBafVq74j6Pvyn9Dfyofjg9431cPRa+wXv9Pfa+s3xi/lU81fysAD07y312vkj8JL/HvT674z5gfmP+K/wQPb1+sP6BvHZ+ITy+wCA9mbxDPxH+OH43/ZB+HH3HPht/W34cvKL/Pv+EvNo/BP4zPgm/hj3aPk0/A/5F/zW+8b1AADA+nj5iP0Q+TYB2/189bMCGgER91v+/wJ//YT81f9SADgBzwCR/tQDW/9+A0gC0AAMBa8Efv8ECUUELwHlCiQGnQOWCFAJ+wewBkkIgwsOCxEHJgnCDdIM0AdFC9oLPA9YDFEGUhB/D2gHdRGVDW4IFhAnDpsKCw7uC5cMLA7kCi8Oogj0C7UP4QeVCsoNeQkyCqMJfgnWC00HaQi5B1cH2wydAm0FqwupAXsHOgZdAhEKyv57BkcGa/wZB6IFm/tNAnYG7P5b/2X/b/6BB1v8vPgaAo0B1v+A9yf8+AGH+jsD5fGR+9IKUPBv9EUIDvgU9+75nPq/AHPxoPjPAh7z7O90CC/5Fe05/Dz+RPk08tMBXPEY9VYIheyR8oEEDPGY9lIAaeyG/jgA6ej1Aof14/bQAdfss/rS/BH1KP577SMACv3L8pH5c/UXA+H67+biBZn/tekCBeD1nPbw92b/Tf058Ib5MAD+9yn3oPj5/8n4Efa//4P5R/tQ+u7/KflR9qAF1vlF+gr5Fv//AVn6g/js/x4Dnvyg+QD/RAN2Aaf/y/dMBB0GzftZ/VsG2gGw/hgBsgY2AUgCYQLBBNoBvwRsBrD/AAgnBaUBMgyiBeP+ggiZDnj+wAijCqYALw6BBX8E5Q4FBOMIsAxRBFgHrQ3fB7UFvQvAB9UHuQ3aAxYIhA4VBWUKFQgbB3QK/AcgB0sI0ghICTMFggh8CD0J+wEKDI0HDQCyDHwHw/90CBYGigQ2CFgAYgIXDLj/qANeBGkDlgPgAFYEp/7RAsUGavwS/mMBLgk9+Bn6xA1L+RX3iAaM/fX+/PrQ+M8G1f1x9o0ACPhoAyf/ue37Bgz6Hfs2+6gABvcb9loHuPox7vsFlPNtAKb8Q/I2/pn47Pzy/NLwhwEx+Ib3Cfs4/Z7ypP9T/TbtoABGAfLwE/od+fP8Pf1t80zuXg5C9CLwOwm07b742wtO8eXsNwap/wD0Y/ei+AsBuv5681D2bP8DA373+vBj/3AKvO559UsDiQDD8l4Ct/5e790Fwv1C/Kf2Af23BTD6DPfHBP76n/o+Ahn4ngg+9wf2NA0I+xP6LgJ3+BUHYQD8+if9zgD/BdsAJPr++uQLaQTp84IEEgY8AOD///2BCJj+bAAkCcn/RP3SBmEI4P6iA/IBBAPXCpr/qgKDA/8IoAdY/DQFfxCy+wUKHwSP/8IMTAMKCOUBQgQHDoQGKf9XBowLkQrp/M0FOAneCHAMX/hEBk4XYfyzAaIHDgf2DMj8zQGlEcX9eAKTDSf7PAZWDyH+LP/iAcEO6QN59noItApy+wYGP/+X/roLogF0/dT7fgZoDWn1ZvmtCzMJNfNS+BYSs/ve72YQyfqp+3YEHvooBTf3zgUY++v78v3p+/4FgveQ+a8KM/TP++YEG/EQAagHMPO/7NAQDARA6I/9+QLjAhf7ru7V/10HY/SC+dz6ff3LAh/4FPhO/3z5fgFP/APzp/wcAoj/SfBu/S0Ea/f4+vD91vjR/fcA3/XA+VX7tQkd8Cv6pwHP+rQBS/JM/pgE0fMU/SEEvPLq/dMEQvJ9Awf25v4FBL/0LgBo+HUC2wHH9Bb7rgEw/2gCC/bT+BUH0AAZ+EgD1PxY+LoInQFh+LP/Hf7ZBLgEyvIrBrYERvqCB7cByPmDAzkLJP0J/8MG0gFjBQsELgOVBIn/5go0CEP6ywQkFEf8qf35DoAJowDjBsECnAsmDDD9BgWADdwLVgBTB9UGXAq9CA0HyP+PCOMQsAFaA88IrwcUBrgL2QAeAskKmgu4Adr9ywZ6DtoCLAONAFMERBBG/a39/wnt/u4JIASr9BgL+gs9+QL/8gHFBbgGI/ia/uIBH/+FC7T2aflhCHcDK/rKA2f89P36A5j8fQF5+IT69Ama/HD2TAKk/0YAYAIu8AYC9AAXA7T0b/PdDZ/5FvcgBDD7fffRBE39SffO+q4EP/oY+UUC9Pb5+KcKZPRw80sL6fD9/kQHSu0G/EECE/cJBdLxBfM1CNb7G/wP92X14gIzArPyOfZoBPsAaPBq/5r3/QIz+UvymwOm/Sb9/PfN94sB3/ni/1DwQwEeAejxdARU9gr+tAiL6g37vQj2/Bv1gvLeAqoB9/2n9cjzQQt6AVjvv/qVAWH8Bv/T9Tb49gR4AG77oPzo+bf/cAZv+SD3MwUZ/EkAP/wP+2QJu/vm+3gEEvzOBGEB9v6UAFMA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "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" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "k/+i/6//vf/P/+f/8/8DABUAJAApADYAMAA0ACkAKAAcAAsABgD2//j/6P/x/+z/7f/s//D/7//x/+v/6P/j/97/4P/h/+f/9P/9/woAFAAnADMAPABHAFAASQBZAE4AVwBOAFEATgBEAEgAPQA1ADEAIwAnAB4ALAAlADwAPwBPAFwAaQBoAIQAdwCOAIYAhACFAHkAfAByAHQAZwBjAFcATgBDADoANwAkADQAHwAvACoAMgAvADkANQA/ADQANQAwACwAMQApADAAMQA4AEQATQBUAGEAZgBnAHMAaQBoAGcAUwBaAEEAQQA1AC0AIgAeABsAEwAkAB8ALwA7AEYAUABcAGEAYgBiAFoAVABEADYAKgAeABQACwASAAwAGQAYACQAJAAwAC0AMQAqACcAJwAgACEAHwAeAB0AHgAfABsAHQAcAB0AHAAaABoAGAAbAB0AIgAoACsALQA5ADAANwAnACcAEwAOAAYA+P/4//D/7//t//D/6//x/+3/7f/o/+X/5v/d/+P/4//j/+j/7P/v//b/9//+//7/AgD3//r/8P/v/+T/5P/b/9T/z//K/7v/vf+v/63/rP+k/6f/qP+q/6//tv+7/73/wv/I/8j/y//P/8z/2P/W/+P/6f/w//j//v8DAAcACAAHAAEA+//1/+3/7f/n/+H/8v/r/wAABAAMABwAHgAnACoAMwA1ADkAPwA8AEEAPAA0ADMAJAAgAAsAAAD7/+j/7f/j/+j/8f/7/wYAFAAeACcAKgAsACoAJAAeABIACAAFAPr//P/4//P/+//6//v/AwAAAA4ADgARABcAFgAZABYAFQAMAAwAAwAAAP3/9f/z/+3/7f/r/+3/8v/1//f//v8AAAEACgACAAcABgD9/wAA9v/z//T/8//5//7/AwARABcAJwAvADYAPgA+AEMAOQA4ADEAJAAeABUADgALAAcABAACAAcABQAOABIAFAAYABwAIQAjACQAIQAlACEAHwAjABYAHQAVABQAFAAQABAACwAHAAQAAgD1//X/6//l/+H/2v/V/9X/2f/U/9r/3f/f/+f/7v/v//P/+//5////+v/9//j/8//y/+T/5P/X/9P/y//D/8X/wP+8/8P/vP/N/83/2f/d/+n/8P/4/wAAAgAIAAgADgAKAA8ACQAKAAoACQAHAAYABQADAAUABgAGAAgAEgAUABwAIAAuADUAPgBFAEUAUgBHAE8ATABIAEwARgBLAFAASwBPAEoATgBLAEsARwBNAEAASQA+AD4AOwA4ADQANgA0AC8ALwArACsAJQAnACAAHwAhABwAKAAgACgAJwAsAC4ALQAvACsALwAqACYAKAAjACIAIwAgACEAHgAhACEAIwAjACAAJAAkACEAIQAmACAAJgAlACQAKQAkACcAJgAlAB8AHwAaABwAFQAcABAAFwAUABEAFQAQABkAGQAcACAAIgAoACsAKwA1ADEAOAA0ADkANAAzACgALQAiAB8AHgAZABkAHQAbACMAJAAmACQAJwAjAB8AHQAaABYADwAJAAEA/P/2/+n/6f/j/97/3//b/9X/2f/R/9n/1f/Z/9n/2v/i/+D/4P/t/+D/6//r/+X/6P/l/+H/4v/c/9r/2//T/9n/3P/X/9z/4P/e/+n/4f/s/+f/7f/t/+//7v/v/+z/5//k/+P/3P/R/9H/yv/B/8X/vP+7/73/uf/C/8L/xf/M/83/1f/a/+D/4f/k/+T/4v/h/97/3P/c/93/2//Z/9n/2//a/97/4P/m/+j/7f/0//X/9//7//v/9v/8//r/7//0/+3/7P/t/+f/6//n/+z/6//u//T/7//z//P/6//w/+f/6//o/+L/4v/f/9v/3f/a/93/1//g/9z/5P/l/+T/6//n/+v/5//p/+f/6P/j/+n/5P/n/+n/6//s/+r/8f/v//L/8f/y//L/8f/u//D/7v/z//D/+v/6/wEAAQALAAsADwARABAAEAAKAAsACgAAAAUA/f/8//r/9f/3//n/+v///wQABwANABEAEgAWABAAFgAMAA4ABwABAP3/9v/v/+7/5//k/+H/4//e/97/3v/d/+H/4//m/+r/6f/u/+v/7f/r/+b/6//d/+X/3//a/9//3//e/+P/4v/m/+n/7P/q//L/7f/x//D/7P/u/+r/6v/s/+f/6v/i/+z/5v/n/+r/6f/s/+v/7//v//H/8v/x//H/7f/v/+v/7//p/+7/7f/z//D/8//9//P/+f/5//T/9v/y/+3/8//p/+7/6//x//X/9//+/wAAAwACAAYABAAAAP//+//3//P/9P/u//L/7v/w/+//9P/5//X///8BAAEABwAGAAcADgAHAA0ACQAKAAgABgAHAAMAAgADAAEAAwAGAAYACwANABMAGQAXAB4AIgAfACUAJAAiACUAIQAgACMAGgAcABoAGgAbAB4AHAAhACEAIwAjACcAJQAqACgAJwArACcALAAoACkALQAsACwAMgAsADEAMwAvADYAMQAzADgALwA3ADQANAA5ADQAOAA2ADMAMQAtAC8AJgApACEAJAAgABwAIwAbACIAIQAjACEAJQAmACgAKgArACoALQAmACkAKgAgACYAHgAeAB0AFQAaAA0AFgAMABEADwAMAA8AEgARABkAGwAiACcAKQAxADIAMgA3ADEAMwAyAC8ALAAsACoAKQAtACoALAAvACgALAAsACcALAArACkAKgAtACsAMAAtADEALwAvADIALQAtADAAKAAuACkAKQAqACQAKQAmACIAHwAgABsAGgAVABEAEAAKABAABgAQAAwADQAVABIAFAAZABcAGwAfAB4AJAAgACYAKAAkACkAIwAkACEAIgAdABsAGQAYABMAEAARAAkABwAFAAAAAAAAAP//AQD//wUABQAHABAAEAASABUAGAAWABkAGAAYABkAGAAWABcAFwAWABUAFgAZABcAGgAhABwAIAAiACEAJAAhACMAHwAkACAAHgAfAB0AGgAYABUAEAATABIADgATAA4AFAASABUAEgAVABUAFAAUABMADwAXAA8AEAAUAAoADwAOAAwADQAIAAgABgALAAYACAAFAAsACAAJAAsACAAJAAkABgAGAAcAAAAIAAAABAAHAAIACQAHAAkACAAIAA0ACgAHAAcABAAGAAMAAwAFAAMABwADAAgA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "BQAIAAoABQARAA4ADwAVABIAFwAWABkAGgAaABkAGwAcAB4AIAAeACUAGwAfAB4AGgAbABcAFwAXABAAFgAPABEAEgAVABYAGAAcAB8AIQAoACkAKgAuACoALQArACwAKAAqACkAJwAnACQAIwAjACQAHAAnABwAIQAdACMAHwAlACAAIQAiAB4AIAAfAB4AHgAcAB8AGQAdABwAGgAdABsAIgAbACYAIQAjACQAJwAiACYAIAAhACEAHQAcABsAGQAaABsAGwAeAB4AHAAgAB4AHgAfACIAHgAiACAAHwAjAB0AHQAcABkAGAAVABYADQARAA0ABwAQAAUACwAKAAgACwANAA0ACwAPAAsADQANAAkADQAOAA4ADwARAA8AEgASABMAFQAUABUAEwAVABIAFAAUABMAFwARABYAEQARAA4AEQALAAwADAAGAAYACQAAAAgAAAACAAQAAQABAAQAAAAAAP///v8AAPn////0//n/9//z//r/8//5//X/+f/7//j//v/8//7//v/+//3//v8BAPr////8//v//P/7//z//P/7//z//P/4//r/+P/2//f/+v/z//r/9//2/wAA+P8AAP//AAAEAAQABAAIAAcABgAKAAcACgAEAAwABAAKAAoABwAMAAsACgARABIAEAAZABcAHAAdAB8AIQAkACMAJgAnACcAJwAoACcAJwAnACYAKAAgACQAIQAdACEAHQAfACEAIgAiACUAJgAkACkAKAAqACwAKwAsACwALQAqAC8ALAAsAC4AKwAuAC8AKwA0AC0AMAAwAC4ALgAtAC0ALQAlAC0AJgAlACYAIwAiACYAIQAkACQAJwAkACgAJgAlACoAIwApACgAKAArAC0AKgAtAC0ALwAtACwALAAuACkALQArACoALAAqACoAKgArACsALQAsAC8ALQAyADAAMAAyAC8AMAAwAC4AMAAvAC4AKwAvACoALAArACcAKAArACkAJgApACgAJAAiACMAIwAcAB8AHwAaABwAGwAXAB4AFgAcABoAHgAaABwAGwAZABsAFgAZABMAFwAXABQAFgAZABcAHAAYABsAGwAYABgAFgAWABMAEQAUABAAEQARAAwAEgAOABAADwAQABAAEAARAA4AEQAOAA8ADQAOABEADQASAA4AEgASABMAFAAXABYAGwAZAB0AHAAeAB4AHwAhAB4AHwAgABsAGQAaABkAGgAYABoAHQAbACEAHgAjACIAIAAoACIAJAAmACEAJQAiACEAIgAdACMAHAAiABwAHwAaAB0AGgAaABkAGAAZABoAGgAbABkAHQAdABwAIQAfACEAIwAgACUAIwAlACMAJQAlACYAJwAnACUAKAAjACcAJQAiACIAJAAfACQAHwAkACIAIAAmACAAIwAkACMAJgAnACQAJwAqACYAKgAqACcAKgApACkAJwAtACUAKgAsACoALAArACsAKgAtACoAKgAtACsAKwAtACwALAApACwAKQAmACoAJgAoACUAJAAjACYAIAAjACEAHwAlABwAIgAhAB8AHwAhACEAIwAhACIAIgAiACIAIwAfACIAIAAfACEAIAAeAB8AGAAdABwAGgAaABoAGgAaABsAGgAYAB4AGAAdABsAGAAaABUAGAAXABQAFQAWABMAFQASABIAFgARABUAFAASABUAFwAUABYAGAAWABoAGAAdABoAHgAdACAAIAAkACMAIAAjACMAHgAjAB8AHAAhABoAHAAcABsAHAAaABwAGgAaABkAGwAYABgAGQAYABcAFwAUABYAEwAZABIAFwATABcAFgAVABcAEwAXABUAFwAVABYAFAAVABcAEQAYABQAEgAZABIAFAAVABQAEgAUABQAFAATABUAEwAWABcAFAAXABcAFgAYABcAGQAYABgAGAAaABkAGQAbABkAGwAgABkAHwAeAB0AIwAfACEAIgAgACUAIAAkACQAIwAiACUAHwAfACEAIAAfACEAIwAeACgAIQAmACcAJQAoACYAJwAnACUAJAAlACQAIQAmACIAJgAkACcAJwAjACsAJQAqACgAJgAsACQAKQAmACcAJAApACMAJgAiACQAJQAjACIAJQAiACQAKgAgACoAJwApACoAKwAsACkALQAqAC0ALAAsAC0ALAAtACwALAAsACoAKQAsACcAKwApACkALAApACsALAArACwALAAsACwAKgAsACsAKAAqACsAKQAtACkALgAwAC8AMgAxADQAMgA3ADQANQA3ADUANAA3ADIANAAyADMAMgAzADIAMgA0ADIAMQAwADEAMAAuAC4ALAAtACsAKQArACgAJwAnACkAJQApACgAKAAoACkAKgApACkAKwArAC0AKgAtACsAKQAwACYALgAtACsALgAsACwAKgArACoAKwAqACgALAArACsAKQAsACwAKwAoACwAJwAkACcAJAAkACEAIgAhAB8AHgAcABwAGQAcABkAGwAaABsAHAAcABwAHgAbAB0AHQAaAB0AGQAXABsAFgAXABYAFwAXABQAGAAWABYAFQAWABYAFQAWABUAFwAVABQAGAARABgAEwAVABUAFQAYABcAFwAcABkAHQAfABwAIgAfACIAIQAkACAAJgAjACQAJwAmACYAJgAqACQAKAApACcAKgAqACwALQAsADMAMAA0ADYANgA3ADwANwA9ADwAOwA8AD4AOwA8ADsAPQA+ADkAPQA8ADkAPAA8ADoAOgA7ADcAOgA5ADYAOQA2ADgANQA2ADUANwA2ADYANgA5ADQAOgA4ADwAOQA8AD0APAA+AD8APABBADwAPgBAAD4AOgA+ADoAOgA8ADcAOwA3ADoAOAA5ADkAOQA5ADoAOgA8ADgAOAA9ADQAOgA7ADgAPAA7ADwAOwA+ADsAOwA8ADsAPAA5ADsAOwA7ADsAOwA7ADoAPAA2AD0AOAA3ADwANwA7ADsAOgA7ADgAOQA5ADcANgA0ADMANAAvADMALgAwADEALAAtACwAKQAqACgAJgAkACYAIgAlACEAIwAjACAAIAAhAB0AHQAfABkAGwAaABYAGgAVABgAFAAYABcAFgAZABQAGAAYABQAFAAWABIAFQATABMAEgARABMAEAAQABAADwARAA8ADwARABAADwAUAA4AEQAPAA8AEQARABMADgAYABAAEwAYABAAGAASABQA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "FQARABUADgASABEAEAAPABIAEQAQABMAEAAUABAAEwASABIAEgAPABMADQAQABEADAARAA0ADwAPAAwADAANAAoACgAMAAgACwAKAAsACQAMAA0ABwAMAAkACQANAAoACwANAA0ADQAPAA4AEAAOABAADwAQABAAEAAMABUADgATABMAEgAUABUAFAAWABcAFQAYABgAFQAaABcAFwAXABYAGgAWABsAGAAYAB0AGQAcAB0AGgAZAB8AGAAfABsAGwAfABwAHQAgAB0AGwAfAB0AHAAdABsAHQAbAB4AHgAdACEAGwAhABsAHgAgABsAGwAeAB0AGwAhABwAHgAjAB4AHwAiAB0AHwAdAB4AHAAcABoAGQAeABgAHAAfABwAHAAdABwAHgAaAB0AGwAaAB8AGgAeAB0AHgAdACEAHgAeACEAHgAeACIAHgAjACEAIQAlACQAIgAkACQAJgAkACUAJQAjACUAIgAiACIAIgAgACEAHgAgACAAHQAgAB0AHwAdAB0AIQAdACAAIAAhACAAIQAiACEAIAAhACEAIgAhACEAIgAjACEAIwAjACMAIgAjACIAIgAhACEAIQAfACEAHwAhAB4AIAAiACAAIQAhACMAIQAhACMAIgAiACIAIQAjACQAIwAmACMAJAAmACUAJAAoACMAKAAnACIAKwAjACkAJwAmACkAJQAqACQAJgApACYAKgAoACkAKQAnACgAJgAoACUAJwAlACYAJgAkACYAJQAmACQAJAAkACMAJQAhACQAJQAfACIAHwAhAB4AHwAgABsAHwAeAB0AHQAbAB8AGwAdABwAGQAaABkAFwAWABUAEwATABUAEgARABEAEwARAA8AEQARABAAEgAQABIAEgAQABIAEQAQABQADwATABIAFAAUABUAEwAWABIAFgAUABQAFQATABUAEwARABcAEQAUABIAFAAVABQAFQASABcAEAASABQAEgARABQAEwAVABMAEQAXABEAEgAXAA8AFgAVABIAGAAWABcAFQAWABQAFgASABMAFAAQABIAEAASABAAEgARABAAEgAPABAAEwAPAA8AFAAPABMAEQATABMAEAAUAA0AEgAPABAADwAPABAADwAOAA4ADAAPAA0ADgAOABAAEAAQABEAEgASABIAFgATABYAFAAVABYAFgAVABYAFAAWABMAGQAUABYAFwAYABgAFwAbABoAGwAbABsAHQAaAB0AGQAbAB8AGAAeAB4AHQAeAB0AHgAeAB4AHwAhAB4AJAAgACIAIwAhACIAJAAkACQAIwAkACUAIgAnACEAJQAkACEAKAAhACUAJQAlACYAJQAmACUAKAAkACYAJwApACYAKgAoACkAJwApACgAJwAmACYAJwAnACQAJgAnACQAKAAnACYAKAAmACgAJwAmACUAJgAkACYAIgAoACAAJgAkACMAJQAhACYAIwAlACUAIwAkACMAIgAjACEAIgAfACIAIAAhABwAIwAfAB4AIQAdACAAIAAfACAAHwAhAB0AHwAeABwAHAAcABwAGQAcABcAFwAZABIAFQASABEAEwARABAAEQAOABIADgASABAAEgAWABMAEwAZABIAFwAXABQAFQAVABQAFgAVABEAFQAQABQAFQAPABUAFAARABgADgAXABMAEgAVABMAEwAUABMAEgARABcAEQARABUAEwASABYAEwAUABUAEgAVABUAFAAXABQAFgAYABYAGQAaABkAGQAZABkAGAAaABoAGgAaABgAHQAbAB4AGwAeAB4AHQAhACAAIAAiACAAIAAhACMAHgAiACEAIgAiACAAIgAgACMAIQAkACYAIgAmACUAIgAoACIAJAAnACEAJAAmACIAJQAkACUAIgAmACIAJgAkACMAJQAkACYAJAAkACYAJgAkACcAJwAnACcAKQAoACgAKgAqACgAKQAoACgAKQAnACgAKAAqACcAKgAqACkAKwAtACsAKwAsACgALQAmACoAKgAmACsAJwApACgAJgAnACkAJgAoACkAJgAoACkAJgAnACUAJgAjACYAIgAhACIAHwAeACAAHAAdABoAGwAXABgAFgAVABgAFQAYABYAFQAXABUAFQAUABMAFQAPABQAEAAQABEAEQATABEAEgAUABMAFQATABYAEwAZABQAFwAYABcAFwAYABcAFwAUABoAFAAVABcAEwAWABQAFAAVABQAFQAVABcAFAAWABQAFwAUABYAFQAYABQAFQAbABMAFwAXABUAFwAXABIAGwATABcAFQAXABgAFwAYABgAGwAYABoAGQAZABgAGgAYABgAGQAXABsAFgAaABcAGAAcABYAGwAbABkAHQAbABsAHgAZABwAGgAcABoAHAAcABsAHAAcABsAHAAdABsAHAAbAB0AHgAbAB0AIAAbACAAHgAdACAAHQAdACEAHQAeACAAHgAfACEAHQAgACAAHgAgACAAHwAiACAAHgAkAB8AJAAhACIAIwAhACMAIwAhACMAIgAhACUAIAAjACYAHgAlACIAIQAmACEAJQAjACIAIwAhACQAHwAiAB8AIwAfAB4AJAAdACEAIQAfACAAIAAgACEAHwAiAB0AIgAcAB4AIgAZACIAGwAfAB4AGwAhABgAIQAaAB8AHAAeAB0AHgAeACAAHgAkACAAIQAjACMAIgAjACMAIAAkACEAIQAiACMAIQAjACIAIwAmACEAIwAmACIAJAAmACMAJAAoACMAKAAlACcAJwAlACkAIwAlACcAIQAoACEAJQAmACAAJgAlACEAJQAkACMAIwAjACIAJAAiACUAHwAmACEAIQAlACAAIQAjACAAIAAjAB8AIwAgACEAJAAfACUAIgAkACIAJgAkACMAJQAlACMAIwAmACIAIgAlACIAIQAlACEAJAAiACMAIwAjACQAIwAlACQAJQAjACYAJAAjACUAJAAkACQAJQAjACYAIgAmACQAIwApACIAJgAmACMAJgAjACQAIgAmACEAIwAjACIAIgAhACIAHwAhACEAHwAjAB0AIgAfAB8AHgAgACAAHgAhAB8AHwAiAB0AIQAgAB0AIAAfAB4AHwAeAB0AHQAgAB0AHQAdAB4AHQAfAB4AHQAeAB8AHQAcACEAGQAeABwAGQAeABoAGwAcABsAGgAcAB0AGwAbABsAGwAcABsAGwAdABoAHgAcAB0A" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "GwAdAB0AGgAgABwAHAAeABsAHwAcAB4AHQAdABwAHQAdAB0AHQAaAB8AGQAbABwAGAAcABgAGgAcABYAGwAZABgAGAAbABkAGQAbABoAGQAbABsAGQAbABoAGwAaAB0AGQAcABwAHAAdABwAHAAdAB8AGgAiABsAHgAdACAAHAAhAB4AHgAiAB4AIAAeACIAHgAgACMAHQAhACEAHgAiAB4AIwAeACMAIQAhACEAIwAgACMAIAAhACEAIQAhAB8AHwAiAB4AHgAkAB0AHgAhAB4AHQAeAB8AHAAeABwAHQAeABsAGwAbABoAGQAaABkAFgAZABcAFQAZABUAFwAYABQAFgAXABYAFgAWABUAFgAWABQAFgAYABcAFgAaABcAFwAZABgAGgAaABsAGgAcAB4AGwAgAB4AHwAeACEAHwAgAB4AIQAeAB8AIAAeAB4AIQAcACAAHwAdAB8AIAAeACAAHgAfAB4AHgAfABsAIAAaAB4AHQAaACAAGQAeABkAHQAcABoAHQAcABwAHAAdABoAHAAeABgAHAAcABgAHAAZABoAHAAZABwAGwAYABwAGQAZABsAGgAZABsAGAAZABwAGQAdABsAGwAeABwAHAAfAB0AHQAfAB4AIAAcACIAHQAgACEAHQAiACAAHgAkACMAIQAmACIAJgAkACQAJgAmACUAJgAnACYAJwAnACcAJgAnACYAKQAlACcAJwAjACgAJAAlACgAJQAmACcAJgAlACYAJgAmACYAJQAmACYAJQAjACYAJAAjACUAIQAmACIAIgAnACEAIwAjACIAIQAhACEAIAAeACIAHQAeACAAGwAeAB8AGwAdAB0AHAAcABwAGgAbABwAFwAcABsAGgAcABwAGgAdABsAHgAeABwAHgAfABsAHgAeABsAHgAdABwAHAAeABwAHgAdAB4AHAAfAB8AHQAgAB4AHgAgAB0AHwAfAB4AHQAgAB8AHwAhAB0AHgAgAB8AHAAfAB4AHQAcAB4AHgAbAB0AHQAcAB0AGgAcAB0AGgAdABsAHgAbABwAGgAcABwAGAAeABcAHAAcABcAGQAcABcAHAAYABkAGgAYABcAGAAZABUAGAAZABYAGQAYABYAGQAXABgAFgAYABgAFgAYABYAFwAWABYAFAAVABcAEgAXABMAFQAWABMAFQAVABQAFgAUABYAFQAUABUAFgAWABUAFQAXABUAEwAWABUAFQAVABUAFQAVABYAFAAXABUAFAAYABUAFgAXABQAGAAWABUAFwAUABkAEwAYABQAFwAUABcAFgAWABcAFgAXABYAFwAXABQAGAAXABYAGQAWABgAGgAXABoAGQAbABkAGgAcABsAHAAcAB0AHQAcAB8AHQAdAB4AHwAdACAAHQAhACAAHQAiAB0AHwAfAB4AIQAgAB8AIAAjAB4AIgAhACAAIgAhACEAHwAkAB4AIAAkACEAIwAiACMAIQAkACEAIQAiACEAIAAiACAAIAAfACEAHgAbAB8AGwAfABoAGwAbABsAGQAbABkAGAAdABQAGAAaABUAGAAXABcAGQAWABgAGQAXABgAGgAWABoAGQAYABwAFwAbABkAFwAZABoAGgAZABsAGQAbABsAGwAZABwAGQAbABsAGQAaABcAGwAaABgAGAAbABgAGQAZABcAGwAYABoAGQAZABoAGgAaABoAGwAbABwAGwAeABoAHQAdABwAHQAfAB0AGwAfAB4AHAAfABsAHQAfABsAHQAeAB0AHAAcAB4AGwAcABsAHQAbABsAGwAbABkAGwAXABoAFwAbABUAGQAWABgAGAAWABgAFgAYABYAGAAWABYAFgAXABgAEwAZABYAFQAbABQAFgAZABYAFQAXABcAGAAUABkAFQAYABkAFgAZABkAGAAZABkAGwAbABsAGgAdABsAHAAdABwAHgAgABwAIQAfAB8AIgAeACEAIAAhACIAHwAjACAAIgAhACIAIAAfACEAIgAeACEAIQAcACUAHAAfACEAHQAgAB4AHgAgABwAHQAfABwAGwAdABsAHgAaAB4AHQAZACEAGgAgAB0AHgAiABwAIAAgAB8AHQAjAB4AIAAfAB8AIAAgAB8AHwAfAB8AJAAcACMAIAAiACEAIQAkACAAIwAhACQAIQAiACIAIQAjACAAIQAkAB8AIQAjACAAIgAhACAAIwAgACAAIQAhACAAIQAhACEAHwAgACEAHwAfACMAHQAjAB0AIgAhACEAJAAhACUAIQAlACIAIwAlACMAIgAlACEAJAAiACMAIgAjACIAIQAjACIAIQAiACEAIgAiACIAIAAkACEAHwAjACEAHwAiACIAHgAkACEAHwAiAB8AIgAfACAAHwAjACEAIQAjACEAIAAmAB4AJgAkACIAIwAlACMAIAAmACIAJAAjACEAJQAjACMAIgAjACQAIgAhACUAIAAeACEAHwAfAB0AHwAeABwAHQAcABoAGQAcABgAGgAZABkAGAAaABcAGQAXABcAFwAWABcAEwAUABcAEgAUABMAFAAUABEAFAATABIAEgATABMAEgATABQAFAATABIAFgAPABYAEgATABQAEgAVABMAEwAWABUAFgAYABUAGQAYABoAGgAdABkAHgAdAB0AIAAeACEAIAAkACAAIgAmACIAJgAmACYAKAAmACoAKAApACsAKQAsACwAKgAuAC0AKgAsAC0ALAAsACsALQAuACgALgArACkAKwAsACkAKQArACcAKAAqACYAKAAlACgAIwAmACQAJAAlACMAIgAmAB8AJAAiACQAIQAiACMAIgAjACIAIgAlACEAIwAlACIAIQAjACIAIQAkACAAJQAiACQAJAAjACUAJQAjACcAIwAqACMAJgAoACMAKAAoACcAKAApACgAKAAqACgAKQApACoAKgApACoAKgArACkAKgArACoAKwAoAC0AKQApACwAKQArACsAKQArACkAKAArACcAKQAoACcAKAAmACcAJAAlACYAIQAlACMAIgAiACIAIQAgACIAHwAiAB4AIAAhAB4AHgAgAB4AHQAhABoAHgAeABkAHwAaAB0AGAAcABoAGQAcABcAGQAbABcAFwAZABYAGQAXABgAFwAWABkAFgAWABgAFQAYABYAFQAZABUAFgAaABMAGAAWABYAFwAYABgAFQAcABYAFwAcABUAHAAYABsA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "GwAZAB0AGAAcABsAHAAaAB0AHAAaAB0AGgAcABsAHAAbABsAGwAZABwAFwAaABoAFgAbABYAGQAZABcAFwAYABYAFgAYABUAFgAXABYAFAAWABgAEgAXABMAFAAWABUAEwAWABQAEwAWABIAFAAVABMAEwAWABUAFAATABgAFAAXABUAFQAXABYAFwAXABsAEwAbABgAFQAbABcAGQAYABcAHAAXABsAGQAZABsAGgAaABwAGgAZAB4AGQAdABwAGwAfABsAGwAfABsAHAAdAB0AGgAdABoAHgAbABwAHgAbAB8AHAAeABsAHQAgABoAHQAeAB0AHgAfAB8AHgAiAB0AIQAfACAAIAAdACIAHwAhACAAHgAjAB4AIQAiACEAIAAgACMAIQAgACQAIQAjACQAIAAmACMAJAAjACYAJAAkACYAIwAmACUAJQAoACQAJgAnACYAJwAkACkAJwAmACgAJwAnACgAJQAoACYAKAAmACcAJQAnACYAJQApACEAJwAkACMAJgAiACUAIwAmACEAJAAkACIAIwAjACMAIwAjACIAIwAjACIAIwAiACQAIQAjACMAIgAkACIAIwAhACMAIwAjACIAIgAlACIAIwAiACYAIgAiACYAIQAlACMAIwAmACUAJQAmACUAJgAnACcAJQAqACQAKAApACQAKwAmACkAKQAoACoAJwAuACYAKQAsACgALAArACsALAAqACwAKAArACsAKgAqACwAKQAqACsAKQAqACkAKAAoACkAKAAlACkAKAAkACgAIQApACEAJgAkACEAJAAhACEAIgAgACEAHwAhAB4AIAAcACAAGwAcAB4AGQAbABwAGgAZABoAGgAaABkAFwAcABkAGAAcABcAGQAXABoAFwAZABsAFQAcABYAGQAZABkAGgAaABcAGwAZABoAGwAaABoAGgAYAB0AGgAZABkAGgAdABgAHAAZAB0AGAAaABwAGwAaABoAHAAbABwAGQAeABoAGQAeABcAHAAbABgAHQAaABwAGQAcABoAGwAbABoAHAAaABoAGwAcABsAGgAeABgAGwAdABgAHgAaABcAIQAXAB4AGQAcAB0AFwAfABgAHQAaABwAHAAbAB0AGgAeABsAGgAfABsAHgAdAB4AHwAdACAAHwAeACAAIAAfACEAHgAhACAAHwAiACAAHwAhAB8AJAAeACEAIgAhACMAHwAkACIAIgAjACIAIwAjACQAHwAkACUAHwAmACIAJAAiACMAJAAiACQAJAAmACMAKAAlACYAJwAlACcAJwApACkAJwAqACsAJwAtACgAKwArACkALwApAC0ALAAsAC0ALAAtACwALwArAC4ALgAvAC0ALwAuAC8ALgAvADEALQAvAC8ALwAyAC0ALwAxAC4AMAAxAC8AMAAwAC8AMQAvAC8ALgAvAC4ALQAyACkAMAAtACsALgArACwAKwAtACsAKwArACoAKQAqACgAKQAmACkAJwApACQAKQAoACYAJgAlACYAJQAmACQAJgAkACQAJQAkACQAIQAjACUAHwAnAB4AIgAjAB0AIgAdACAAHwAgAB0AHwAdAB4AHQAdAB0AGwAgABoAHAAfABoAHAAcABwAGwAcABoAHQAaABkAHAAXAB0AHAAXABwAGwAYAB0AFgAcABkAGAAbABgAGQAaABoAGAAYABwAFwAYABwAGAAZABoAGQAZABsAGAAcABsAGgAdABwAGwAfAB0AHAAiAB0AHgAgAB8AHgAhACIAHwAiACAAJAAjACMAIwAlACQAJAAlACUAJgAmACYAJAAnACgAIwAnACYAJQAoACUAJgAmACcAJQAoACgAJQAoACgAIwArACQAJQArACIAJgAoACQAKAAlACYAJQAlACYAJQAoACQAJgAlACYAJwAlACcAJwAlACcAJgAoACYAKgAnACkAKAArACcAKwApACkALAAoACsAKQArACsAKgAuACkALQAsACwALgAsACsAMQAoADAALQAqADEAKwAsAC4AKgAuAC0AKgAuACwAKgAtACsAKgAsACkAKgAoACoAKAAnACkAJQAnACYAJAAnACIAJgAiACEAIgAhACEAIAAfAB8AHwAfABwAHQAcABsAHgAZABwAGgAZABoAGQAbABgAGAAZABkAGAAZABgAGAAZABkAFwAaABcAGAAaABgAGAAYABoAGAAXABoAFwAaABgAFwAbABgAGgAbABoAGwAZABsAGwAZABsAGwAcABsAGgAfABsAHQAeABwAHwAdABoAIgAaACEAGwAeACAAHgAcACAAIAAdACMAHgAgACAAIQAhAB8AIAAhACEAIAAgACEAHwAjACAAHwAjACAAIAAjAB8AJAAfACIAHwAjAB8AIAAiAB8AIQAgACAAIAAhACAAHgAiAB8AHwAhAB4AIgAfAB8AIAAfACEAHQAgACEAHQAeACAAHQAdACAAHAAfAB8AHQAfAB4AHwAfAB8AGwAiAB0AHwAfAB0AIQAdAB8AHgAdAB8AHQAeAB8AGwAeACAAGwAeAB4AHAAgABwAHwAeAB4AHAAdAB8AGwAeABwAHwAcAB0AHgAaAB4AGwAcAB0AGgAdABwAGwAeABoAHQAaABoAHgAXACAAGQAdABwAGwAgABkAIAAaAB4AHAAeAB4AHAAgAB0AHQAiAB4AHwAhAB4AIgAgACEAHwAjACAAIQAhACMAIgAhACMAIgAlACIAIwAmACIAJQAmACIAJAAmACQAJgAmACQAJgAlACYAJAAlACYAIwAnACIAJgAmACMAJgAnACQAJgAmACUAJgAkACYAJQAlACUAIwAnACQAIwAoACIAJAAlACMAJQAkACMAJgAiACQAJAAkACQAJAAkACUAJQAlACQAJAAnACMAJAAoACMAJAAmACUAIwAlACQAJQAjACUAJAAkACQAJgAkACUAJQAjACYAJQAiACYAJAAiACUAJAAiACcAIQAkACMAIAAoAB8AIwAkACAAIwAiACEAIAAiACEAIAAiACEAIQAgACIAHwAgACEAHwAjAB0AIQAgAB8AHwAgACEAHAAjAB0AHQAiABsAIAAfABwAHQAeAB0AHQAeABsAHAAeABsAGwAbABsAHQAcABwAHAAbAB4AGwAaAB8AGAAdABsAGQAeABoAGgAdABoAGgAbABwAGgAbABsAGgAdABkAGwAeABgAHgAaAB0A" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "GwAdAB4AGgAeAB4AHAAeABsAHwAdAB0AHgAeAB0AHwAcACAAHgAbACIAGgAdACAAGgAfABwAHgAhABoAHgAfABwAHQAgAB0AHwAeAB0AHgAeACAAHAAfAB4AHgAeACEAHgAhACAAIQAiAB8AIQAhACIAHwAmACAAIQAhACQAIQAlACEAIgAlACIAIwAjACcAIQAkACYAIQAlACYAIgAlACQAJwAjACcAJQAkACcAJgAlACcAJgAkACgAJgAmACUAJAApACMAIwApACQAJAAmACUAJAAjACYAIwAlACMAIwAlACMAJAAiACIAIwAjACIAIAAjACIAHwAkAB8AIgAkAB4AIgAhACEAIAAgACIAIQAiAB8AIQAjACEAIQAkACIAIgAiACQAIgAjACQAIgAlACUAIgAnACUAJQAlACgAJQAlACUAKAAkACYAJwAmACUAKAAkACgAJgAkACcAJwAmACcAJwAmACYAJQAmACUAKQAjACYAJQAkACcAIQAoACEAJAAlACEAIwAkACIAIgAlACAAIQAmAB8AIgAiAB8AIQAgACAAIgAgACAAIgAdACEAIAAeACAAHwAeAB8AHgAcACEAHQAgAB0AHAAiABwAHgAgAB8AHQAgAB8AIAAdACIAHgAgACIAHQAiACEAHQAjACEAIAAkAB8AJAAiACAAIwAjACIAIwAkACMAJAAlACMAIwAlACIAJwAkACUAJgAiACgAIwAkACYAJAAmACUAJQAjACYAJQAkACYAIwAjACYAJAAiACUAJAAiACQAIgAlACIAIQAnACEAIwAjACIAIgAiACMAIgAgACQAHwAhACQAHgAiACMAHgAhACAAIwAgACEAHwAhACMAHAAjACEAHgAjACAAHwAhACAAIQAiACAAIAAiACAAIAAiACAAIgAhACAAIAAhACIAIgAgACIAHwAlACIAIQAjACEAIgAjACIAIgAkACEAIAAkACAAIwAjAB4AIQAhACIAHwAiACAAIAAfACEAIgAeACEAHgAhAB8AHgAeAB8AHgAfAB4AIAAcAB4AHQAeACEAGgAiABsAHQAjABgAHgAeABoAHwAbAB0AHAAcABwAGwAdABoAHAAbABoAHQAbABgAHAAaABwAGAAcABsAGAAdABkAGQAbABoAGAAbABwAFgAbABkAGAAcABgAGAAaABoAGgAZABoAGgAZABoAGQAbABkAGQAdABkAGAAcABgAGgAbABoAGQAcABoAGQAcABsAGQAdABsAGwAdABkAHgAcABsAHgAbAB8AGgAeAB0AHgAcACAAHQAeACAAGwAhAB0AHgAgABwAHwAeAB8AIAAeACAAIQAeACEAIAAhACEAIAAhACIAIwAhACIAIgAjACMAIwAjACMAIwAjACUAIgAoACMAIwAoACMAJQAmACMAKAAlACQAJwAnACUAJwAnACQAJwAmACcAJQApACMAJAArACUAJwApACYAJgApACUAJwAmACYAJgAnACYAJwAlACgAJQAhACcAJAAnACEAJAAjACUAIAAlACMAIAAmAB4AIAAlAB8AHwAjAB8AIQAfAB8AIAAhAB4AIQAhAB4AIgAfACEAHwAhAB4AGwAgACEAHgAeACIAHgAgAB8AIAAfACEAHQAhACEAIAAfAB4AIQAgAB8AHQAhAB8AIAAeAB8AIQAeACIAHQAfACAAIAAgACEAHwAhACMAHgAjAB8AIgAgACEAIAAlACIAHwAjACMAIAAlACAAIgAkACAAIwAiACMAIwAgACQAIwAjACMAJAAiACMAJAAiACQAIwAgACQAIAAlACEAIQAhACMAIgAhACYAIAAjACIAJAAjACIAIwAjACQAHgAmACMAHwAoACAAIwAlACQAIgAjACQAJQAhACcAIAAoACUAJAAnACMAJQAjACYAJQAlACUAIwAmACYAIwAlACUAIgApACIAJQAnACQAJgAlACYAJgAlACYAJQApACQAKQAkACkAJwAiACcAKAAjACcAJgAhACoAIwAkACUAJAAmACMAJAAmACMAIwAlACEAIwAkACEAJAAiACMAIgAgACMAIQAkACIAJAAlACIAIwAkACQAIwAlACQAIwAiACUAIwAkACIAJQAhACUAJQAiACYAJQAlACcAJQAnACQAJgAmACYAJwAmACYAJgAmACYAJgAoACQAJgApACMAJgAmACUAJgAlACUAJAAlACQAIwAlACMAIwAlACIAIwAhACQAIAAjAB8AJAAjACQAIwAjACcAIQAmACIAJAAlACQAIwAlACEAIwAhACQAIwAfACQAIwAfACUAIQAgACMAIwAkACAAIQAlACIAIAAlACEAIgAlACMAIAAkACQAIQAkACAAJAAiACIAIgAmACIAJAAlACIAIwAkACAAJQAlACIAJAAlACQAIgAnACMAJgAkACIAKAAmACYAJQAnACcAJgAjACsAJQAhACcAJAAkACYAJQAmACQAJgAkACYAIgAnACQAJQAlACUAJQAlACUAJgAlACYAJQAmACcAJQAkACgAJwAkACgAJgAoACMAJwAnACYAJgAnACgAJgAmACoAKAAmACkAKAAmACoAJAApACcAJQApACYAJgApACUAJwAoACUAKQAmACgAJwAoACUAKQAnACYAKwAlACoAJwAqACkAJgArACcAKgAqACsAKQArACwAKgAsACsALAAsAC0AKwAtACwALAAqAC8AKwAuACwALgAvACwALwAvACsALwAwAC8ALgAuAC0AMAAuAC8AMAAtADAALQAwAC4ALwAtAC8ALQAwAC0ALwAvAC8ALwAvADEAMAAxAC8AMAAxAC0AMAAxAC0ALQAuACwALgAtACwALgAsAC0AKwAtACoALAAqACoAKwAsACgAKQAsACYAKgApACoAKAAoACkAKAAqACgAKAAoACYAJgAiACYAJgAkACMAJQAkACMAJQAgACMAIwAeACMAIAAiAB8AIAAfAB8AHQAgABoAHgAbABkAGwAaABgAFgAZABgAFAAVABUAFgASABMAEgARABEADwARAAwAEQAPAA0ADQANAA8ACwANAAkADQALAAkACgAKAAcABwAHAAYABgAFAAIABQADAAQAAQAAAAEAAgAAAAAA/////wAA/v/9//7//v////z//P/9//v/+f/9//j/+//4//j/+f/4//j/9v/5//X/9//5//P/+P/2//T/" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "receive", + "message": { + "type": "input_audio_buffer.speech_stopped", + "event_id": "event_EWxOsbV1FyqScj6i3dtXw", + "audio_end_ms": 3712, + "item_id": "item_EWxOoCATgZHb8inLTjM1f" + } + }, + { + "direction": "receive", + "message": { + "type": "input_audio_buffer.committed", + "event_id": "event_EWxOsQCtIs2AMWvjNyHzf", + "previous_item_id": null, + "item_id": "item_EWxOoCATgZHb8inLTjM1f" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.added", + "event_id": "event_EWxOsuNGUKO2PYZ38wOJP", + "previous_item_id": null, + "item": { + "id": "item_EWxOoCATgZHb8inLTjM1f", + "type": "message", + "status": "completed", + "role": "user", + "content": [ + { + "type": "input_audio", + "transcript": null + } + ] + } + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.done", + "event_id": "event_EWxOsCqTeZTiJqO4fZ7F9", + "previous_item_id": null, + "item": { + "id": "item_EWxOoCATgZHb8inLTjM1f", + "type": "message", + "status": "completed", + "role": "user", + "content": [ + { + "type": "input_audio", + "transcript": null + } + ] + } + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOsLgYPQ9FR01fVTNLq", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": "Where", + "obfuscation": "9D3UCCJWcAQ" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOsAXb6Ko2oZftrFr80", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": " is", + "obfuscation": "9hRZ1l57oxBPN" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOsN3Sj0iWbehJ69Z4v", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": " my", + "obfuscation": "p3WzAADxKidf5" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOsj0BAnI9h5hPiNueV", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": " order", + "obfuscation": "hTG9kPPZod" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOsH27mZEsJlexsPDNY", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": ",", + "obfuscation": "LhmTMJxKWhlVaO7" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOsgchQK2jiwAGk4hoC", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": " D", + "obfuscation": "Lm8KupWpsFvSZ5" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOsSEdKy3Kfftj0mX3S", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": "MO", + "obfuscation": "gvutVsbm4JO7fd" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOsDB7JwPtojJVX381I", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": "104", + "obfuscation": "gyv3ZZHDB3EMO" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOstLKza7XBrhQXJrjR", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": "2", + "obfuscation": "bwIaaxZ5djcnS2G" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.delta", + "event_id": "event_EWxOsXO4metxJjblxQlcn", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "delta": "?", + "obfuscation": "VLwN9CZ7k1B7C3U" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "receive", + "message": { + "type": "conversation.item.input_audio_transcription.completed", + "event_id": "event_EWxOsZhuLIKkQ4Z4PEgfU", + "item_id": "item_EWxOoCATgZHb8inLTjM1f", + "content_index": 0, + "transcript": "Where is my order, DMO1042?", + "usage": { + "type": "tokens", + "total_tokens": 49, + "input_tokens": 37, + "input_token_details": { + "text_tokens": 1, + "audio_tokens": 36 + }, + "output_tokens": 12 + } + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "direction": "send", + "message": { + "type": "input_audio_buffer.append", + "audio": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + } +] diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-order.cassette.blobs/932a6111abe4cbfa2e175f9ba46d3bb6d6907c13d4ce6f1b01f1c6fe66722194.bin b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-order.cassette.blobs/932a6111abe4cbfa2e175f9ba46d3bb6d6907c13d4ce6f1b01f1c6fe66722194.bin new file mode 100644 index 0000000000000000000000000000000000000000..d02cbc97d94fb4ed0b467516b266ed37cb372743 GIT binary patch literal 122400 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

    Q=zb%8qX(Hc>o-f^n^KwZ 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

    qp@K?hh<+sBw?ssJ^|P)oHcw)HPJs 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

    tyS(N^A&6VSCi8yV%Q@uaNTzb$ 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 literal 0 HcmV?d00001 diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-order.cassette.json b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-order.cassette.json new file mode 100644 index 000000000..d30c61d7c --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-order.cassette.json @@ -0,0 +1,1718 @@ +{ + "entries": [ + { + "callIndex": 0, + "id": "0d3776eeb1283b4d", + "matchKey": "POST api.openai.com/v1/chat/completions", + "recordedAt": "2026-10-06T21:34:04.899Z", + "request": { + "body": { + "kind": "json", + "value": { + "messages": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + } + ], + "model": "gpt-4.1-nano", + "parallel_tool_calls": true, + "stream": true, + "stream_options": { + "include_usage": true + }, + "tools": [ + { + "function": { + "description": "Look up an order delivery status.", + "name": "lookup_order", + "parameters": { + "additionalProperties": false, + "properties": { + "order_id": { + "type": "string" + } + }, + "required": ["order_id"], + "type": "object" + } + }, + "type": "function" + } + ] + } + }, + "headers": {}, + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions" + }, + "response": { + "body": { + "chunks": [ + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null,\"tool_calls\":[{\"index\":0,\"id\":\"call_bENodbPAhcTV6SVZ3i3LTDEF\",\"type\":\"function\",\"function\":{\"name\":\"lookup_order\",\"arguments\":\"\"}}],\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"4e\"}", + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"{\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"in7GsZpgZYEL1\"}", + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"order\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"P71SBfsEsgD\"}", + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"_id\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"ia0Jaz7g7Ply5\"}", + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\":\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"2BF2qzUjCoR\"}", + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"104\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"maevostwEMgkd\"}", + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"2\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"vBz5SLjP9SctI1I\"}", + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\"}\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"5DJHjoymWpIip\"}", + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"usage\":null,\"obfuscation\":\"lsQvSMMkgb94SK\"}", + "data: {\"id\":\"chatcmpl-EW75QJZzDBZU62AHO9LqNFPyCFVzw\",\"object\":\"chat.completion.chunk\",\"created\":1791322444,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[],\"usage\":{\"prompt_tokens\":84,\"completion_tokens\":16,\"total_tokens\":100,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"UDAxyDYg\"}", + "data: [DONE]" + ], + "kind": "sse" + }, + "headers": { + "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", + "alt-svc": "h3=\":443\"; ma=86400", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a467c9bdbce8a0d5-ORD", + "content-type": "text/event-stream; charset=utf-8", + "date": "Tue, 06 Oct 2026 21:34:04 GMT", + "openai-organization": "braintrust-data", + "openai-processing-ms": "273", + "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", + "openai-version": "2020-10-01", + "server": "cloudflare", + "set-cookie": "[REDACTED]", + "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "x-content-type-options": "nosniff", + "x-openai-proxy-wasm": "v0.1", + "x-ratelimit-limit-requests": "30000", + "x-ratelimit-limit-tokens": "150000000", + "x-ratelimit-remaining-requests": "29999", + "x-ratelimit-remaining-tokens": "149999950", + "x-ratelimit-reset-requests": "2ms", + "x-ratelimit-reset-tokens": "0s", + "x-request-id": "req_df0ee1758adb40bc8465fe78720df5a9" + }, + "status": 200 + } + }, + { + "callIndex": 0, + "id": "ca41920661a27eb5", + "matchKey": "GET api.openai.com/v1/models", + "recordedAt": "2026-10-06T21:34:05.236Z", + "request": { + "body": { + "kind": "empty" + }, + "headers": {}, + "method": "GET", + "url": "https://api.openai.com/v1/models" + }, + "response": { + "body": { + "kind": "json", + "value": { + "data": [ + { + "created": 1766164985, + "id": "gpt-5.2-codex", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1698959748, + "id": "gpt-3.5-turbo-1106", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-28" + }, + { + "created": 1754426303, + "id": "gpt-5-nano-2025-08-07", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1759512027, + "id": "gpt-audio-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1765610731, + "id": "gpt-4o-mini-tts-2025-03-20", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1765313051, + "id": "gpt-5.2", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744317547, + "id": "gpt-4.1-mini-2025-04-14", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744315746, + "id": "gpt-4.1-2025-04-14", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1721172717, + "id": "gpt-4o-mini-2024-07-18", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1734655677, + "id": "computer-use-preview", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1744225351, + "id": "o4-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1744133506, + "id": "o4-mini-2025-04-16", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1739331543, + "id": "gpt-4o-2024-11-20", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1731689265, + "id": "omni-moderation-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1756271701, + "id": "gpt-realtime", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1699046015, + "id": "tts-1-hd", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1750865219, + "id": "o3-deep-research-2025-06-26", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1771461469, + "id": "gpt-realtime-1.5", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1778006032, + "id": "gpt-realtime-2", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759514629, + "id": "gpt-5-search-api", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1776839241, + "id": "gpt-5.5-2026-04-23", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1762800673, + "id": "gpt-5.1", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1734375816, + "id": "o1", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1773450837, + "id": "gpt-5.4-nano-2026-03-17", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1763007109, + "id": "gpt-5.1-codex-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1742068463, + "id": "gpt-4o-transcribe", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-02-26" + }, + { + "created": 1788563147, + "id": "gpt-image-2.5-flare", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1790552874, + "id": "gpt-6.1-sol", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1699053533, + "id": "tts-1-hd-1106", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759517133, + "id": "gpt-realtime-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1772691852, + "id": "gpt-5.4", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1750798887, + "id": "gpt-4o-transcribe-diarize", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-02-26" + }, + { + "created": 1757527818, + "id": "gpt-5-codex", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1758845821, + "id": "gpt-image-1-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-01" + }, + { + "created": 1764030620, + "id": "gpt-image-1.5", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-01" + }, + { + "created": 1762800353, + "id": "gpt-5.1-2025-11-13", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1749685485, + "id": "o4-mini-deep-research", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1771905621, + "id": "gpt-4o-search-preview-2025-03-11", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1738010200, + "id": "o3-mini-2025-01-31", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1773451076, + "id": "gpt-5.4-mini-2026-03-17", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1712361441, + "id": "gpt-4-turbo", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1748475349, + "id": "o3-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744321707, + "id": "gpt-4.1-nano", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1776399795, + "id": "gpt-image-2", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1772659601, + "id": "gpt-5.4-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765612007, + "id": "gpt-realtime-mini-2025-12-15", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1683758102, + "id": "gpt-3.5-turbo-16k", + "object": "model", + "owned_by": "openai-internal", + "shutdown_date": null + }, + { + "created": 1692634615, + "id": "babbage-002", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-28" + }, + { + "created": 1671217299, + "id": "text-embedding-ada-002", + "object": "model", + "owned_by": "openai-internal", + "shutdown_date": null + }, + { + "created": 1742403959, + "id": "gpt-4o-mini-tts", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1722814719, + "id": "gpt-4o-2024-08-06", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1749840121, + "id": "o3-deep-research", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1744225308, + "id": "o3", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1763671532, + "id": "gpt-5.1-codex-max", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1782254687, + "id": "gpt-realtime-2.1", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744316542, + "id": "gpt-4.1", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1776824847, + "id": "gpt-5.5", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1741390858, + "id": "gpt-4o-mini-search-preview-2025-03-11", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1705953180, + "id": "text-embedding-3-large", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1741391161, + "id": "gpt-4o-mini-search-preview", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1715368132, + "id": "gpt-4o-2024-05-13", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1789405937, + "id": "gpt-6-sol", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1686588896, + "id": "gpt-4-0613", + "object": "model", + "owned_by": "openai", + "shutdown_date": "2026-10-23" + }, + { + "created": 1771905534, + "id": "gpt-4o-search-preview", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1782228459, + "id": "gpt-5.6-terra", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1705948997, + "id": "text-embedding-3-small", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1771550885, + "id": "gpt-audio-1.5", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1694122472, + "id": "gpt-3.5-turbo-instruct-0914", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1787853604, + "id": "gpt-6-astra", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1762988221, + "id": "gpt-5.1-codex", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1677532384, + "id": "whisper-1", + "object": "model", + "owned_by": "openai-internal", + "shutdown_date": "2027-02-26" + }, + { + "created": 1773451123, + "id": "gpt-5.4-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759469822, + "id": "gpt-5-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1742251791, + "id": "o1-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1778012060, + "id": "gpt-realtime-whisper", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765343983, + "id": "gpt-5.2-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1754073306, + "id": "gpt-5-chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1788889407, + "id": "gpt-live-1", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765610407, + "id": "gpt-4o-mini-transcribe-2025-12-15", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1754075360, + "id": "gpt-5-2025-08-07", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1749166761, + "id": "o3-pro-2025-06-10", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1699053241, + "id": "tts-1-1106", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1776894349, + "id": "gpt-5.5-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759469707, + "id": "gpt-5-pro-2025-10-06", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1777704602, + "id": "chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765343959, + "id": "gpt-5.2-pro-2025-12-11", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765610545, + "id": "gpt-4o-mini-transcribe-2025-03-20", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1756256146, + "id": "gpt-audio-2025-08-28", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1772659657, + "id": "gpt-5.4-pro-2026-03-05", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1777950216, + "id": "gpt-realtime-translate", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1782228018, + "id": "gpt-5.6-sol", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759512137, + "id": "gpt-audio-mini-2025-10-06", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1776894470, + "id": "gpt-5.5-pro-2026-04-23", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1744133301, + "id": "o3-2025-04-16", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1762547951, + "id": "gpt-5.1-chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1772236571, + "id": "gpt-5.3-chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-08-10" + }, + { + "created": 1765313028, + "id": "gpt-5.2-2025-12-11", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1759708615, + "id": "sora-2", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-24" + }, + { + "created": 1765925279, + "id": "chatgpt-image-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-01" + }, + { + "created": 1744318173, + "id": "gpt-4.1-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1677610602, + "id": "gpt-3.5-turbo", + "object": "model", + "owned_by": "openai", + "shutdown_date": "2026-10-23" + }, + { + "created": 1721172741, + "id": "gpt-4o-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1788563162, + "id": "gpt-image-2.5-sunburst", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1788851006, + "id": "gpt-image-2.5-flare-2026-09-08", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1789406102, + "id": "gpt-6-luna", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1712601677, + "id": "gpt-4-turbo-2024-04-09", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1782254706, + "id": "gpt-realtime-2.1-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1681940951, + "id": "tts-1", + "object": "model", + "owned_by": "openai-internal", + "shutdown_date": null + }, + { + "created": 1754425928, + "id": "gpt-5-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1732734466, + "id": "omni-moderation-2024-09-26", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1754425867, + "id": "gpt-5-mini-2025-08-07", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1756271773, + "id": "gpt-realtime-2025-08-28", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1772654062, + "id": "gpt-5.4-2026-03-05", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1785168034, + "id": "gpt-live-transcribe", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1706048358, + "id": "gpt-3.5-turbo-0125", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1754426384, + "id": "gpt-5-nano", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1782228658, + "id": "gpt-5.6-luna", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1687882411, + "id": "gpt-4", + "object": "model", + "owned_by": "openai", + "shutdown_date": "2026-10-23" + }, + { + "created": 1788851010, + "id": "gpt-image-2.5-sunburst-2026-09-08", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1715367049, + "id": "gpt-4o", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1734326976, + "id": "o1-2024-12-17", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1765344352, + "id": "gpt-5.2-chat-latest", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-08-10" + }, + { + "created": 1765610837, + "id": "gpt-4o-mini-tts-2025-12-15", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1745517030, + "id": "gpt-image-1", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1692634301, + "id": "davinci-002", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-28" + }, + { + "created": 1776399994, + "id": "gpt-image-2-2026-04-21", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1742068596, + "id": "gpt-4o-mini-transcribe", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-02-26" + }, + { + "created": 1737146383, + "id": "o3-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1756339249, + "id": "gpt-audio", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1773450870, + "id": "gpt-5.4-nano", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1770537915, + "id": "gpt-5.3-codex", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1741377021, + "id": "computer-use-preview-2025-03-11", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1692901427, + "id": "gpt-3.5-turbo-instruct", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-28" + }, + { + "created": 1759708663, + "id": "sora-2-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-24" + }, + { + "created": 1754425777, + "id": "gpt-5", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1765760008, + "id": "gpt-audio-mini-2025-12-15", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1785168027, + "id": "gpt-transcribe", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1750866121, + "id": "o4-mini-deep-research-2025-06-26", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" + }, + { + "created": 1742251504, + "id": "o1-pro-2025-03-19", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1744321025, + "id": "gpt-4.1-nano-2025-04-14", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-10-23" + }, + { + "created": 1760043960, + "id": "gpt-5-search-api-2025-10-14", + "object": "model", + "owned_by": "system", + "shutdown_date": null + }, + { + "created": 1716362623, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac3rrg", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362623, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac3tn7:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362623, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac38GU:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362498, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2g2t", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362498, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2l8E:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362498, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2Nvc:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362078, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTGp2X", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362078, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTGd3R:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716362078, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTG7lD:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716339335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYRGkA", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716339335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYRyU2:ckpt-step-380", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716339335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYQIXR:ckpt-step-190", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336369, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbTRx", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336369, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbI2Q:ckpt-step-390", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336369, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbj09:ckpt-step-195", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336352, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJSe8", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336351, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJmyv:ckpt-step-380", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336351, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJgKG:ckpt-step-190", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336302, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWxd8", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336302, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWMsA:ckpt-step-380", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716336302, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWVsA:ckpt-step-190", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333310, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFxEO", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333309, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFcrA:ckpt-step-400", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333309, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFKKN:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333026, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSug3RE", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333026, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSugSr3:ckpt-step-380", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716333026, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSug5k7:ckpt-step-190", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716332961, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStdh74", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716332961, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStddp1:ckpt-step-360", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716332961, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStdzjn:ckpt-step-180", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331344, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTXTUN", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331343, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTX8uk:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331343, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTXyGA:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331110, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPmgCG", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331110, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPmMV8:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716331110, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPl83J:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716330832, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIKb5", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716330832, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIfx5:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716330832, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIu9M:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9zAB", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9HqT:ckpt-step-90", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9tlM:ckpt-step-80", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329250, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvl6lN", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329249, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvlWn2:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329249, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvli2C:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329241, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdrgP", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329241, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdKr0:ckpt-step-80", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1716329241, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdpE3:ckpt-step-60", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853777, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErO3L", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853777, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErVBb:ckpt-step-200", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853777, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErmVj:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853272, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6irTy", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853272, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6iZg1:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715853272, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6i40V:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715851954, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRXjc", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715851953, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRzXm:ckpt-step-100", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1715851953, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRlAx:ckpt-step-50", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1713573281, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyegS7", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1713573280, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyeDN8:ckpt-step-90", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + }, + { + "created": 1713573280, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyefHN:ckpt-step-80", + "object": "model", + "owned_by": "braintrust-data", + "shutdown_date": "2026-10-23" + } + ], + "object": "list" + } + }, + "headers": { + "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", + "alt-svc": "h3=\":443\"; ma=86400", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a467c9bdacbdb0fc-ORD", + "content-encoding": "gzip", + "content-type": "application/json", + "date": "Tue, 06 Oct 2026 21:34:05 GMT", + "openai-processing-ms": "773", + "openai-version": "2020-10-01", + "server": "cloudflare", + "set-cookie": "[REDACTED]", + "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "x-content-type-options": "nosniff", + "x-openai-proxy-wasm": "v0.1", + "x-request-id": "a5a92df1-c137-407c-83c3-e2270b10e391" + }, + "status": 200 + } + }, + { + "callIndex": 1, + "id": "5a3e2ff8c17e2a82", + "matchKey": "POST api.openai.com/v1/chat/completions", + "recordedAt": "2026-10-06T21:34:05.359Z", + "request": { + "body": { + "kind": "json", + "value": { + "messages": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "call_bENodbPAhcTV6SVZ3i3LTDEF", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_bENodbPAhcTV6SVZ3i3LTDEF" + } + ], + "model": "gpt-4.1-nano", + "parallel_tool_calls": true, + "stream": true, + "stream_options": { + "include_usage": true + }, + "tool_choice": "auto", + "tools": [ + { + "function": { + "description": "Look up an order delivery status.", + "name": "lookup_order", + "parameters": { + "additionalProperties": false, + "properties": { + "order_id": { + "type": "string" + } + }, + "required": ["order_id"], + "type": "object" + } + }, + "type": "function" + } + ] + } + }, + "headers": {}, + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions" + }, + "response": { + "body": { + "chunks": [ + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"YdaHGspd\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Your\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"9LEgkk\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" order\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"6EWv\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" will\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"o84o0\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" be\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"nwPqcNC\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" delivered\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" on\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"2BEwoof\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Friday\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"GhW\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"LtjUKHoVe\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"usage\":null,\"obfuscation\":\"yDtK\"}", + "data: {\"id\":\"chatcmpl-EW75RGTW8AKq9GNl3EXZ3aUluzncT\",\"object\":\"chat.completion.chunk\",\"created\":1791322445,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[],\"usage\":{\"prompt_tokens\":125,\"completion_tokens\":9,\"total_tokens\":134,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"TqZvv41f\"}", + "data: [DONE]" + ], + "kind": "sse" + }, + "headers": { + "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", + "alt-svc": "h3=\":443\"; ma=86400", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a467c9c10972b0fc-ORD", + "content-type": "text/event-stream; charset=utf-8", + "date": "Tue, 06 Oct 2026 21:34:05 GMT", + "openai-organization": "braintrust-data", + "openai-processing-ms": "210", + "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", + "openai-version": "2020-10-01", + "server": "cloudflare", + "set-cookie": "[REDACTED]", + "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "x-content-type-options": "nosniff", + "x-openai-proxy-wasm": "v0.1", + "x-ratelimit-limit-requests": "30000", + "x-ratelimit-limit-tokens": "150000000", + "x-ratelimit-remaining-requests": "29998", + "x-ratelimit-remaining-tokens": "149999835", + "x-ratelimit-reset-requests": "4ms", + "x-ratelimit-reset-tokens": "0s", + "x-request-id": "req_39b496187e054c85a5d9663612a9fb7a" + }, + "status": 200 + } + }, + { + "callIndex": 0, + "id": "394012231462416a", + "matchKey": "POST api.openai.com/v1/audio/speech", + "recordedAt": "2026-10-06T21:34:06.668Z", + "request": { + "body": { + "kind": "json", + "value": { + "input": "Your order will be delivered on Friday.", + "model": "gpt-4o-mini-tts", + "response_format": "pcm", + "speed": 1, + "voice": "alloy" + } + }, + "headers": {}, + "method": "POST", + "url": "https://api.openai.com/v1/audio/speech" + }, + "response": { + "body": { + "contentType": "audio/pcm", + "kind": "binary", + "path": "livekit-v1-order.cassette.blobs/932a6111abe4cbfa2e175f9ba46d3bb6d6907c13d4ce6f1b01f1c6fe66722194.bin", + "sha256": "932a6111abe4cbfa2e175f9ba46d3bb6d6907c13d4ce6f1b01f1c6fe66722194" + }, + "headers": { + "access-control-expose-headers": "X-Request-ID, CF-Ray", + "alt-svc": "h3=\":443\"; ma=86400", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a467c9c3ec54b0fc-ORD", + "content-type": "audio/pcm", + "date": "Tue, 06 Oct 2026 21:34:06 GMT", + "openai-organization": "braintrust-data", + "openai-processing-ms": "679", + "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", + "openai-version": "2020-10-01", + "server": "cloudflare", + "set-cookie": "[REDACTED]", + "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "x-content-type-options": "nosniff", + "x-openai-proxy-wasm": "v0.1", + "x-ratelimit-limit-requests": "30000", + "x-ratelimit-limit-tokens": "150000000", + "x-ratelimit-remaining-requests": "29999", + "x-ratelimit-remaining-tokens": "149999992", + "x-ratelimit-reset-requests": "2ms", + "x-ratelimit-reset-tokens": "0s", + "x-request-id": "req_fa3ed78c275f42a1b6b8ed4fc95e21be" + }, + "status": 200 + } + } + ], + "meta": { + "createdAt": "2026-10-06T21:34:03.764Z" + } +} diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-recovered.cassette.blobs/7d9135323fd455ab76a579b0ab4d73793ea36e7689e5bf7e1a713ad5c1129ea5.bin b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-recovered.cassette.blobs/7d9135323fd455ab76a579b0ab4d73793ea36e7689e5bf7e1a713ad5c1129ea5.bin new file mode 100644 index 0000000000000000000000000000000000000000..f60afb192343b96d4def4b1e30080ee3c6ae07dc GIT binary patch literal 180000 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%0DQUDVpT7WyPXY-aYI#6Ym^lKWF}6IIdgL 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

    iu{{^xaGIu-S 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 literal 0 HcmV?d00001 diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-recovered.cassette.blobs/f1169e6c46641ae906aa1ee671f48e65f4fad3b69a895d1cb172e3ff62565f02.bin b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-recovered.cassette.blobs/f1169e6c46641ae906aa1ee671f48e65f4fad3b69a895d1cb172e3ff62565f02.bin new file mode 100644 index 0000000000000000000000000000000000000000..1d65b924ed24334168b4bd6df53fc1a68cc6ffa5 GIT binary patch literal 196800 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 F>vUrcH%!S< zlGqh-*W=!`+}-kzcuD-!7DNm;N^Ll++o(xW!ak^E>uOh(MUn5!|rMZbu$na&s;5e}VRyI!?NaaQ_WyhwPCXXadE{zIRRS}ASG zH=)ru5n3KN!P`L*&{AiGE`(x3 z$3l3pI5;y{5}*W2fmUw!t@H*x5w3O4X-$4Bt6@;hlB(45tEF2?RuvB_9GBlRFD?67 zR&?gO^xJ9oQ)i}3OPZVPNQ9DHNo^DRB@Ir>Oq!bfcM3bTO^VPAr7F`mWtcO^=Z(w1 zX^~ZQsh2txJ_oUv{1W}hn!_C>`b%<8;Zi);9MWD46X|>FR~yPr>rK?C^ypX7-DA$g zAW@m7J^EjCT+Kj*NAgB+n>&wnnf52znW7;-gQFogv6yI0`0)WmJ>CuV* z3LiquhJPc6Q^V-{Sika42ro)UD!!->gnbV`Xy{{1G(9jKF{PPSn1-9im~6(?#$m=; zh6KG-KRNtoU75zCYLc&(Dn(R2gEN_N5gkAYCk+M^zJfgkS`9Za!=LRN;Tz%`>1F%I zdWZO&UX$;duhDziztRuvU7?Pldsq@i1{!q;FDA55e<01yAztFK*nm)GprwC=_ozG5 zS!Sm8c1TXv7!$NANTf0k62x2x@B6MH%bx583td!~r@ zS}0Jsl#{hb!?odg`W*(h;TPj6qslPdFvD;}|J9JG@1~y=A=f?7R;wl|b+TLH0fJ19 zgE1U!Pk8`cz?Gq{fw%sPK84>Dco~7`ZdSyUoUKAJ+ObJ=B z7eG%aCq$5imeQFAJXQTyPMO^@^p*&i@7H4OInAt-_sJ)WMP+?^5?UGK4r@5az}wAF5+sObNf4P@fv7UnDcVEf$MktddK4%6 zL(HPsK5?A5XR&8vjzrxvL55M`ceRIAT6qCjQ47b&ilsZL>nIaRKIkw}jw^6ImKUlG z?hK9#o)35f&jbAf(Sd9Jw*D}`$5-i_2()%MP!c#1yb-#DO~Xy#W{?B!;J!jWXgl;5 zA;)Kjwgm?Hwt18;xdU!Wv*Ptg-MpH~RUInFmaEF1TNac|EmjnLDDdZH<_dB?Wqr<^ znek8h8}lghyEIGMg*1CwO&XS_F~eqy*<wM0kyfcN5icJ+UHEio3 zSDbGe?j{$|26IHBak4L}>0y+JFZ$y~scFB-XZ+cir_YJF8@^e$B8;j%tWH#}R6Ld? zNC!%iMPG$o`182MtOEK~w1UDQ#Ste$tNfUEn`bt#cpBY1-1Q#2Z*4FG?@ro?UvFrmZ5{gWf4>KI)lq_$+*NdOd(t|mr>9TK{F-$)=U9Gm(SVAMHR~JeTseL&G!zjqlX*oFqasIUU!c@OC*Q4@bO_Z4dd<1}ig>?8GsX5nu` zJ%X(RnZ7Q*@7`D5slE>W0>3%1Jvc4&6Lt{)g=h&8P)~5rc@)^t+3*K&gZ(@49dC{Q z2Iwpb%?Nf0O!kig=Xjha;OgeQVSmy{w|VLrb$6qQE`1?w^74MWnmJebtNm?}uWbf#i!+ zCgT8G#ixl^$^6O^%`Dyfh$)6VW6<9KO_80m{=RBE>R9s zT$c%?xag%|H_yP~v!2rzqax%UX&AH+UmWs)yUMk`B<}?8Iv~G1^%;Pb>_R9TL%|L0 zK47UlPhLvd1njdDC|k&b$^A)v;5JYeF2Mf`%?`c_#QFRA#NOZCdtEb}E<4M9sF7{k z*f78DaLxRxh>H5sV9BW>e?e6qntLEyoK=#s4sa_BIQ3xK*tC{uWvLCR15>A_eg^VH zL&}uYSa4cQNOxyU&hh2#EMZm-tJ`BQ@XW_nk{{4p^FrbpB{OV?UTPW~l^tCfT@`&T zs!ycM_`AMNm#6Kj?xR>C?IL=^U&H;v?#6n_2&d0PeZcNuBAftq+C=_WRPj zHgGGV@|3yHc^qC^ASaYdd?x>lu4SrtaiXU(rn)e!A_6ioq7Fsp#YDy$V^_zli9P|= z@vZ(r_#a_$8dSAkzE`>$XyXe6pLr{|>Fn+-3*#F7CmM{tL>kFSq?Yg(;xHbDkwWpo zLxFLDbpb~3bnrvyBe;#~4c&)3kV`0osMpc?G%dX!J)VAz_6glfj2d7-(L*_zru?O5uv)Fr8FQ{mLrsXwR9PMe;-EHf(me16N4TjjNN3!4y+FLaZ1 zgEo&lL%c#!udR*v$(Rt;JGv&iSInfSzL8yw?;`f-TpF3mC?7AO3fJ)}*zcHP#!6ZN zH4^Dhz66V)jrcq)H@GwKs~-h2e3EC7M+B^my}%ca>5mTDvB7X>3ZGWPyuzi5c(R_V zu&}I%zm3|cFVXK}`o_w^my8yDATr8W8*xPUM$=B!Nxo6S5gp|RxPv%cb}qAl@fZCS zEeYLBy@$-8xJW^G9(02EfIGlRni1L+S{5n|{f&LWJ43VJ&7^DOR}?bUfG(sl=_lz= z>3`CD(+OGt+&@o7+LQl;>xowQjL_YH$tUzQIB(g9H^tdP4Zqf3uH9F2qAI3xZ+Upx z7R!i|^F{i?zw>+K1#&iLPtNjXl%&U`UouZJ_ch~bGk{d~C^ac{erg~^mg-Acmnut3 zPJf!g%o|p;sBA)=x>4t$V$aFp%>9A|a))Mv-Vn)-=@>_8!D(?b_E~g+sYw4xw_0OR zZj}awLwS4H2N~%!6Z#xsBAdzQNF!hvno0PvzF2;6Ou*{<>@|ZMRI9tIJIZ~~J<9Xa zHyOwc!%6jsm_g=F1e#)s%B1t?4@btuKyiaw+;1_aMM0b-))d{#)Ll=6y;r|hY>=K`O;<-}e57yKN~24`!3 z_#o*qnT+(HR-y~(_ZY93DwdFS58Q5o+ael=dX!uUt;O4f9R9&Rx#uU>TF2F zpaE*&)N|^XwY#d9RNbo(l)oyyQqsP7N8y$Hv^-|6A?I4wzRa^33)4rYw*ge0p7uJG zk~%Tvcye-5Q!+oBv+G;!r!1w!i|?;o51bG-Qbx(e?P}p z>G8TF-M4`+%QRPa_X-a%I|UySYDySAnlnncPu4{}H2ko!Q#2Y^*y2P>X8e$r<610^ zeHgXbxGMabCSI8-g~aUzKXY?fUl?xMZdx{)jlM@GqchO)=ty)8N<$A)uObI2$>a*s zN>T-^f*%5Zsy>h!7LtyVJ0oMMxhRvql|f=nVgJI(;XLKI*mqgonLX&e&|{QJ*oK2| zmtW=ey8;e{y)M97^-Xn)>l$i@0V~k2)hDWcs~M3=B!<$I||c$k;W{)M@WegJ(7ZbeMg3aSjff#Rr;HUxMu zuxLloXH*5!f)Y;70UlOKfSRv?*V%bEpVWh5Lmr}C=*JjbR)|I76q9=ZLdsWsS+)p25kuU>}WPQ8&LPZOtMW`Cw9ms+xRfrrrBMLIE4)3p-rBF#O3Wjs9vmP<>Xc_1O;3?LQI+bdr z3eaQdA@nG^5oM#ps4WpIuo_>3>!CBy-%uUY3;qXQPufrRQ&OoHX{Q)U)+Y8EP8LVU zJ;FJ}=CPs~uh9F5lXL*e#E@W&@3nip^OJpV)0)O?+kD$e>wIf&Lqx->`cHMHT3yZ1 zs+|={Wo4Fx;yZA9XBrweoHW?8oPlFVQO4 z644C#Uz&LlkBlp#hR0ZA+Qiahevg7p!}T3>F7*RNq2!6MFYi7(li7|j7I+UVrG?RM z(CTTe=ojg;=|cK>@MX%O<|3OYRB{G96WT~Hh#2Ap5e<(fsVN_jTj(o#9`iQ4J(tQG z!sGMiaygvmtagk~Xfh=O?D63tB=FiB>v`e2;2h~Z=hzHZ`+_~zeyr(4<5Qd3I;MVk zZGP3W3TNr|5?v9cU;?n+w#f<4PR&}IwKr3i<;m!txhJD0eNuY7Sz)H7jZec<`R2Fj z53<`ALgn4-VaHE_iO_T!gZo5GQm+nsY$!BAQIDhJqH;{<^v}XBDAT1e!f)Ka*olm; z^g^@`btuvWX-kQuw4+P`H!B9{1fCn(9_Z?O)Tf`2F9T&4Rs@S+8qEFak)k1lO~)v8jynyGMNJOt z()yV-yDKl1(JkMLrWOSA)Vb4h#%5P#{h2i;>u6TrtZ!KjnHMsTXN0BCHeXNUr%g$V zG#@ta&z9#uE^Svg(!L;&0kx!U<6IHHRVu}lQF(A03t_K$t18~48; zrXw;|OF>9FNu8#vH!!2t$0Wyc;&#L?jrN-+=?{m!05Vamf zJjQ&&7{Yi2xG;h~o7NrOh72Lc!bajNb}}?HbRcvd+eGBT%P4;8c=|EsHuh?61b>_USBg)}74G8EjxNJd_%dvMnVc z`C`gObLY&sLbzOI?c-U4XP{5m_rwv(F=12ny^N8Ow@gk`TO&_@Gfbm8CEY0az-i0; z6`cGo>NjxqS5xzmmB<{544gGp*!bWrU!}X&k7C`&;|cJs(`(9NnAxTHn=u ztL|1wDNnML7AF*i6`m=O6r9h$n{UbAp1&=BV7@1JUoMpM64*}8rX5cSB@avLnDkH5 z;FPQB^YZe_dNmYzM?l@_41r8`Pg@WXG`@_?Gf5*K8W4S7U6m?c&J~U4Rx&5jex;To zYGfAGPJIsiJ6obHsprUp;Vg_C=8R5%$pV;6wkP{;B@;0ZQmAwiE)ajtrykWWC@@gvZ63r3YlNELpN$be_M7 zGm@#Moj?|li{L)M&*}wq8TeWy5Hw;Heh@>khM+I7&|l;|@BYV;(b%m)Tf3v`bGe{w zj-_qM^kPBrt|C|A{X#)OUH;s>Yq`Fhp4nTnE@pVmv1$1!yOQrEbxVGdq)1E5Se`Gg z7;a+Zke`n?gWTT%T-#kTTp<&27ds%F#;Y&_w{f*#UrhK4Ve<*WY)ml?w& zUqlXy1Xfr5Qr!YgjB1=>r|g7uufzuKBjY5;C37UF#T!L+0xkb5r;+(PErC)Ey}{t% zB>zC)KVH7ChksNM$EL#XC=T>EGl}z>e;9Z_R7+^m7LrDhRA}X0;f!Tz&J?Cxan)FerU6V7vbH0ndz5O;IX?Th@M_D|qcDnllzJzYz z6EcgYT>rxKN94@NZ+gG(mBy~Xsb z&$*RNyXu!$TgnfYm6bZmdRD%#k=uTDy$|xq-5C#g1rnF?N!ay>Yla!dcZO)|aI6))#Ge5E{@P7n5GVT+*L#6Z{gM z0c+u(p`kyRDj2HMDY3MP+$x`K+=@rTr`_U{79NcrkxS z-m#pG*%vZnGLEIqPU)BY_xIAod*3BVVzWInvqWB(=N6MVOhRN--qoEk95d}RZ8MaF zleLT0f605uBE?EUBKIxx3u6<_fp(@g+lY*wL&`s3e(s$I8BUn1G=DcdPVy&!$G+7cO86)W^ zc`Dg29V*kvkIIHi3q{ZQWR8Y$0?C1%hKhX$JPq#g9-}Wca2v~pMp5`^3Vke#&2e!D z@}~+82}Xlke;>D+{gv6DUI`@aAQ>hTfM&Bv$4Q65pA4Hw58y>mEx5B?8_e-5e9zoF zoL8Fm*uoon)?KW*RCT0sbH(TKGv#f{SCvuA`jwWH%qW>wv;}A;{_G{0<>vmW-lWpR zZr>}u|D5DW=4Kx)>`^UtZ@>}eauK228qs7t8nrbNF&+rtrx~OCMMjmdMXLlXK9`rk zY0H_(PGF_7+AxJoBfX3|n=%&KAKKvk$?>WoR5i0~MsaH4Z-oiP%geH=HH{e_Be4v% zvNwq!`E}J;ZO5>`!&-zb(O%XZR=-qLC^5x-g+Y-kPmm9i&z1iw?<$X%XG;eGi@lhy z|Q1#^vxVy8>L%4(sLrZdUPY=} zU%9YiYI#PftK?eo!9q#F#JpZP!t6~MQRbtmqmnly%9EVmS0}O32WQW<^lylCW2AYk zsp7HPvHBiSeWLA=`wjDT57gb{*ClO5TESQT3Vu7j8~7*_JQwdIr!8v^{RuLLbQ?b# z?CWK@YHdsFiYwDCD~gK?WQBhepD*2AbGT9An+DrxB;Et@7WqikHubOS+o}c1#fnDx z8M#Y7Q_)GeR5e(AK=Y5Lt2Urnrn#rSuRJ3^BH;_zMXRw2{C*h4F)jzp$Va>*UZ)4+c!7V@`|5in0pYo9VEX;|XC z@78Z^5>F-%GW+u;mkqUs1+I}>a~ZO8THG)-@?F$L(^dWM@L0`h)f~ke=_Y9#$ux1Y zc!H=%xKS{cH=ZM5UPil-SL5^jbl0iI8FlHE&q_ZPZ7TRBKR5q;q1-~Ql+=41;{!ZW z1x?G@BwQmYlKn3KAj^~rq~9bvr4;!?#ZT%XVHx4O4Two@3K(i4wuiM=8|BgBGyJRU zO^i=eAvpo?56}PB)4`3ocDcuTXZZ1;lsE)OQ5?uksucB8H&W?T3$hAXjwq>{sJGBF zw6Sy+qaTCENTM$Vdct6&nsg76;{$>Tz5@3I$H>Oy`Zv{YD!i7LMSTmNgrEH}3vav;U%b2q0Ri<%@{Sfd zN@v&5o2L1)i9G5T)=K^IvVW`{=8X5r!rjh3G}J7fz(TsJtRGl$W8`6dAd6rY!USnt0$H7ELdS| z{=D4n*{w1i>1$H=CyNs2ejD;_?pO4CZsN5xS#E=6b3=dc3-|!*p~$8Fq;H5k7W+A7 zPINGmZa^YPI;y%#^|xZTT&(CKdm?=zc_o~{k7mnhCQ?jjzI%UT+q!cVK8vkTmS37{ z&PmRFmfxr7dTF4lr*(&GYw!g8E2?2(-1WlK;zUV~bcZZYo(q0#ZX0$oe7}CLkrH_w z-1@XIbu~-~zoOZtI3u3R>%$DEZh#}P{(i4}iIe0wWVhH4Id(aZx%}?8-c$aI!6{fi zu7TFVhe)T$ZzU2}RPHYxccZfO?EKOTJo5 zGWd+KruRk-&?#E!e$qnP!J4;fnr6BBvTC*RH~DkPe&GS`7RF8F3E}p?cfGY`)gGzH zD(O?0lJ_=uOWp$D_1B_&S53O@gu8q281$CXgwmNk*&)sc9$Qc&94qn4DwMgJVY*8Z z6AUMe4aUvJIfiKw#bHm?EJcxcFh7x%f(|0f2v(5gyWuWy_II{*Ryn2aIi4Kvc>jvP zQ}CZwH;jtk!_N_A&?r(T%CFSnwD*jWtfTB{oGdm6+~lwMmxb-I*N`9)P>c~2rKePOz?V2YWwlbaz z_=?rq>)}*=Q^fM{gs@+Lf22pXM731;LD5T5Axo4hB?pBL-XH8Nx*1spH-rqnGG~UZ zux?;go3be-zZ5DF^~hU((-$EDFF?Ta!CmgK$9>6~4kaWzAnt^+<(Q?nKq)R(TU5A&=f?lEo( z9EvF29sNM#OvB&dCBWO@pdww)mHj2{EA1%hFG&&&5@zsTvwvZnq%z3?{8(^{H^~{% z^re1D&EN`7X>xIN(X^uL#dAuJR=Vp3+n;*f7*3jjo?%R8x8u&{wdWt;PZG=!%Ebwi zTQXc8ucWCasxW1^vX>kNJcslCW|J6`sVhla@z>x4Jn!7vblNu48fLv}_1V5PwQ`y~ zMt|E7hIfJcke!sn)HvEUdLF~fw6L<-^_*nxa$Y*`Hm^VLEO!j2iX~zu(t1#jlVhQ` zp(uZ6_ZRyb+miZFjkT&LNDo4w4-2YzCJHLFFkKYfvx!Oim>_^*UivG z%4wEQa8uSvtq${qQFOPo8qH|cUBw02NJ)25CjSFBg43V1pV5Op3(Z1WQm(=*A~#s# zmATF}uBu;KO{#cb+QrhxvbFSjIlp>Y{qIc-&%NM#s1*`HpU;Zo?&4E~WYJX72hkqU zdeJ!18R2}PO|TmLQPxh7$6wDc=S}18VTTx3fxKfTrUm^Tp>s*&mj*$7RNalb7xgc# zi<_o9pL)6m7GbBMDdhdgA1H@zVzgskW`?tFv8q@P*sTGFjO32w-s2{7XK<-p7keyg z3xiBkAstC~@T0*iz9jcuU_I~BG`BI?w#hcprnT{H2dx>_v(`4&T~>C(>H66E^R@l! z?6uz7wGEBd1iQgIJ6I0SLOI|&`G0tN3-~Cm@BM#fcGe~CEbd8h=Y6htp73ew=jAuwcd2)*XA}2< zE>p1DKGif<`zQ}W$CFCbCv9lx8h(qk(1-2j5QHQP5%(2x>#i8^_Fauzxs-9r*W>!bytPkUDq0yLQ|Eo$k4_xPam(FrhBGcsim}wG&XfTbxTzz zWv-$N^$*cTD&T)-pV@!4n&9bjtJ+YhtMaTas~K!HIRdzFkt7yUd+4sJ*gPDUvIwdz8Q8n4(DWfF7VsQcj1>v|Ke-6{Rw% z+*CUJKSV{U3ZY)uLJw2yATP_C#L4`2){`l+Pqa6)FR-_EgfYF@Iou}xkT6@ED>ViO zAROujhI*!$Oy|>~%C^c_rJquuCAzV4pR$1}RW)1vMxCHuqP_(Se*#@e4MVKJ0Ere! zp)O9+!?+}93KQ8{+s(7dHrf1U^=r?pG9Y>!-$=zrb{X#KKp~V@x4|d?GL?kg?z9s3TX=0x6mk=y) zd?9b;8w*Q>aztiH;yI~1=pBC$`9xpx1er&AQ*EeW)Nj-x5CGOwtEnZ_D5@>xK_!!C z$r&J5%9i55f}xE`@`qO?ouFL_8+;#={yctJcN z{wE$3cYr^!0@qf&6DJB{2PnV3OO50;Ab7MRb`s@8OL7?$V)>+uPqLEl$xW!)c=Ql0 zab2Duhsm^TmI&ELZYqxiHDupUBFT06BnTmY;rIRJmU6UQM~;$PKwGvzJ_}MyV`3wb zM>K^R_7Pb?@+3u-kslCaH2~VoTf`(#Rldl(8x< zwcnVCMl@CkxGR1j^29>TIUO~4he#u|WL>fwbhf{tcGjRC){u+I31nN+6|HuJn1Fwi zjW+*HZY#S%&GJRMDV;*i?2-=P|Bs~%JWI6P7etFq@^Sf={968jnqUzp+8U&b1H@bK zM|{a9pf_|xJ?O|JoNo>V-Q)=(8)D=N=@G`j0_j(28ous;)t89750$%sE%GO{*IVTS zsF|zsJM;~bXh4i7_Mz`7z|ojW?j*01Z&1HaF=AGt^)%#dVl1dM7v*8N({IvA^ozOD zEW8#=|44_xCwV6&Nkx(!ckGTDZY>Xj$95YyEah@-Vlr`@$OSEAEJojBG6R|ijx>{* z3BKnp(8mN3c^F=72Nw(^z$v`EY!U#N+Kk^bH@PD>0uq3i3-0;Y~IpdxMlQk(@$~BL|Wl z$U0C@mw+R15VKTg+I50g0b@l#{CF+pxjUHgH{|ZPnG9`vU6CzBY#D?8uau|#2DgF zViR$gI7eK^JpGWkhjOptZucObc0Mtc7>3Vo3BryKcugcCZOXvmd5`nri|EI@p*CNK z`PRw&*@4fzjOU6+KcUe^&4|9lM3lV_t-71okGkEDalesR4l>DfVl>eoHQf|<;0u0$ zguBTCi|8qcKd0q?QPw8Z{s!=awnNQ(0vw`;@>`Ug1s0PXv?o2D*8eB@r!G+sHCm6T zi?JIHR+cxINJ=oFs^vlugW^$tZ!s#~;*Oo9qa?hSgXruMlv4?gkOed+C$-5*ACpk7 z0yHH(p3?(Q>*R2S5fQk;@qZ_m%Sq63`AMhZKp`r__{{`MDH)}v{3H{V;!~Z}GG}Q{ zDwP92*?!WYoMkIfvXkHxj61DMG=z?{8POcCMi{SA_>2JDy9;JNCpk{UUDZS}=Iqv!Y`|A9z3_q9S_tp422R`+G_y0di9)TL=@#)SID)CoNl9lsm|3_FO@RT}y zmXj^zB#cGij_RO=YybRO3vKehrw+yM0x=JIgEi&kOgUL?7L-;j=b|2yphu3AKcH@3 z$uECiZ&1shQOgOajXd044HUlw>g#_`jo?Hg=I3)aMZ357`Si{4T{FCzVBU>IJJvx> zJ1J@!%ui0TTQTOd6wH*LF~;8EdXM$}8{Wx8>sFu*oa8MDGoF*B=j7A5{Cp}WN6X1w z^TtSaQnH+MHy(dog0@e_J--3r>Mmx>E4Z%VyN9@YCu1rLj4WphI&0F|51fQ9FO(Dv zs#6s1y%Es{r+ytVlXOKKPkYSVjd9PR_#_kVfXBZr!2KrSew{V*19zH?d(B2|6{6Oh z%sS>LtIWwXa}v*7(4YMOuRkbi?j(;n$z|@SA5UCPewnlGog_dRt>Pr9 zrJ$U*sM&|8?R%J$o}r(7!iY@6@0@iZf#Rh_IZm>iJ1$R@;e)yi_}L?CVI4+jAo@!~ zjF0-L|5|t!=Y6Zux1H>@BD7`(N=v~j9c`C~-cpA8ao(|$yQcbCw#WaK7>*i5$zX;x_FOgaQ3^8Kl^q1&ss5~6`f2sC-u(R zKb$)JO>Wne*i&1v;s4&d+dC@pz2LYCLxV%FINW>8O(|eDCDjIY<2e z#)p$V_rG4@EYV3M48rB?*UrmXdN6+W`~ORJQX8Ffkdt~>gwnE5ZVK+xS=X8Pxe%pS zqn(``M<?W8oO7@9xt)YOCwI`vtaSD>XHT=^W&ZhZopZU90LkET);0HY zTsZ&2ir<*=6~G4ksXr=M4A1-sY?cC*jXYIQ$>&@P7NaGE(ihtuWbRk!8mr3B|}i>ewg)xP;S)!%~RnR@r{U9xc9!qFR&#i!2+2A>t_Nn z6ZXUySUcVDWUYU$_z|dcAM{lx5%dS{`~fVVlkz!OPKV{AupN%UO8F0S&};PFO7s_Z zv_*Z);=OUtzvB9XSc0A75@I!8bBLArj9+1m55qHcLraCDB_-UwvprHUcfH4IaS1z( zef2YU54^yxITR}Sj#6IQKTSYb}W(%TMO=687-_8L9p-ms{f z!=`VF{Xh#)J^F$WxC&POb=WyyQQNHSisz5OD$oUMKo{JHFY3zKH&XB%=V9rugIzaU zo+ZzK!fY${Mz=9*GjcTQXeX>sKUlWs$r7?NHJ|!UsTBPcyA^Q?4c(FMN-w7u)6?h` zbbq=je&!W+MJlLfOBJ0ENo}VtP=8R}C_8xxma!*!0yf%L*o&po3@HvIt;xboM7boe zEm_G?W>1HTrnzN@*-`zts-$vm#g+2-GJV;S(krFwOV5_ADW@yXRh_BHx2&_DV&@3p zk}4*uu4_+2&ELU2z|-j6(`TS>pkFsXz2EP?Mc!k)#(U(u?lC3k4cg_ZeF_oE=Q#c= zA|W|jh^^YP+_DqoGSPD0y4tqZp6m!=|K)}YS>kTFBm5z*^ibsv6{j|8o9g=OCmJRj zSC|&N^l+6yL-BOq?Jm3b^O)(;&%@1QgL|=?hZ~P*sxF8ah|*ow=+tABFBNKP0I^@n z6Q=QY)|YJo9#W8FyS<)0&9>6E0-Ba7wgt9vw#K$E)`rlGtTWH3@vBa)jIB6d=2|+s z_&Rj!)AGce)a?AM#HF6CAg$*15K)_Cm)bR^&Dcqb0jMhI~XB=~~Los&nd7ng`k)y7~IWhUP|ZQ-*20 z3k~Mi57(}4hu!YFmAECi9dw)ER^vL?HOYd{I&3|)XYS6#I`jGNq?_eq@I6&uD;_dFa z8<9!(^)cEJs-+5v*detLmUGomACQi%P<5QKD;#$nmzZ7bEv|tu6%>Sx#2qpKG`n9= zPrKDSG?&5fTBILjXlm?h>gv+bwHcxis@<=7{Np*=tJ-UmcY(Ls$Hgbv`&aLqUKO6{ z9tYhUyX|&)V=UC))~;4JR;Eywi8<0V;X0SYY;v@;N7<%Ye^?G#u3Hi+cGhjWPvrVvWFn_Pkth@yZ#WX1LmHBUS9%X4Wjp@5mV^chm*CjPd z8kbZjxo^t%)ae-wvR~$@iZ$i?s#n@(aaZMb%J#ZnU7C2d_5C-H3U!NETPvuJxy}Ma zJKe5xp>}d){qWF`X8{`DMV{|n-x*@He<(qt?YCSuSJiy0X=HwFzF;Y{ z2H58~JlSZSUH=D0RVm#9xNOfVgBvAd3UzvofzNqRT- z3Gi)z#d(VV4gYxmKmEP@=lYHFZR4}sYd4~vn!DUGMCyK5@1jddUwNJo&c!1p;ajr(yyd4$xD+?LsuA{&@7>Gf-$jMk~#U;w8fd{a^@6lFWFr& z&OF5NyKtX0sdM#jT<3Z%^V<{@7dkOwb*+rrf7dZY<<`kW4A+u~8=>EW#`%Bn9`A9| zC0@T+Q$_C~b0vX)#kw;S?9*&!>q={pbr)!T{T%a{DeNn*y)aGWpf#RC-lrZZ*3pNQ zi&gE_gEcYQSltHw34>_7>Y{SH;6B>(nb%Yw*0-(yf`FZY-GZJ38G{Rh76qLPoETv9 zbM@7G-}BJ8{b8D~AFElf97!FP9YPnb3Ddy-yS0NQ!aTj^mzoAO+iFIDxK?BFwkho0 z9V?lxY)8(8@54XlQ~2(DDW~SnGY1?_70Xle_3C4l`^$%v_9$*%STDbO?!@fpnd*$$ zX#uJKCNE0rpV&L$X#9})=J6lmvl4nHJxRHdZpmWv>J@J(pIr0F9xlX_tJDRCa<_Nh zZ3CF#GvOC%ovpLD?#Aeg(eI+k=%!ICYj25Y7wR7r?AOQZuG@8^q%BqTQ}l(patMEy z-Nh_%v~^5yoJKv3We0QZcz-ZzkBO_KR#?$$h_mE0Dpavn(TL8bwp z{0J{`IG5l^v-PtEfxVzJf34AhJm+pvS?k*7+7ldp>~L-h^p?p&FZgKP#eIUnd-Fcr zduF)f5O@taP*d0{{L9Cdo-5WA%`C{yo0nUieLkykCZGNzZB**a6awmCBC#fZT72=3 zV?P?k7sW44G^R99f0ET9|7`Ie6=%#NnQLOP;-l8zWsFx#|H9xi5$kI&s{30#q2A^C zJ?r18*CTpIRI}Q~h};k<;Ehk9=M5Jx!!AvL@(5Kbr-%)OJ=`w#Am)Tz2hIG)tY=qn zOZeKt5y1_F)zq*ih5qVEOs^1J87=QPW%l{GmdA?x@)6Utre}vM)DAGmJq=A;6k{=(1F+D#)1!Vke|TcVc{@ewXt=z$6zk+!Nzcj z(DQENZ}4UOMt%j~m){3gTOjMfggAzRbFt7GZ%H(_GOwyRQmv~FtMaX6$`i`^mgW}M zE&8v(kRP2pK6^uEm-N%A2a|^+zK&1&{^;w6FNfmX;^O0Ge%b!*YP@Um+7lWtVDw zg?bs?lbkHM3EtdiCdF~avDdN9QRA4#TxQndTxbf~r7;+w2f!Qd%3tL=a0gh5oy$}@ z{&uW&bawP}i~{X;jH9k2!G6fDw;uz2a;-JRa>4vd&CsgfDniPBDdq~?^ZI3HWVA^u zPbQO2#Ake0d<*YO-P& zDaavGM{$@Sa%MIYCwi|yLSApnw#Hxu?P8f?8DtSGJFFLMuN_{TLS%^}^cZb7Q-Q~o+1148gWTsKa`ePds+QD8ffcw3G?Y+w9=8lC@mu0S>9%}`=uDm_ zN0VcTPI5ajjK9Mq+X~Dts$Q1=S&~%vDUZwkJ@a51nesXDQhdx0)%WS&HhpdSHS9~= z=lY*VeSH0)?T4lBE8b^)Ed2c8`?!=-ne&QHRvfd=6blsd3fi7}y&tuAMRoG-4~<&EG)#~J5&Jqp|$u`DXSe)HIqjelu+x@maR z8I3+S2#cOkD><}lz)By3N3=_>p@VLW##fV~daatQV(2-Dg3AJ9a+J)-($}dzMndie8rL8`qD)Y;YWnW7M zmQbJHkHJdLQ*BT3>%zePeykdTZ)lth2t>v_7hnQD512($%;CHmUBt{P7HtKx6$W~XC4UFYz(_qLs|UbMEe zx!I>Wy0hN=A7Z>*NKT+*R6Es=G-|C$yHB%GJxQg2{{1j1%Wb6VLI~fPz3#YeGh2F? z_g43=s;GEgUQqU-^hC+J;!r4+mgcq1`8Ts=`s0+Cq>%~Vew_J!>Dx!}MNWL}|LxG1 z+_?8~A3slzYw%^**XQ4dCk19q%ijn*`*bNteZjcX>rBAv(2`nHqE<$qt>3$TTK$Na z9np{L?yWsL{FjhV{t@UAz1&!n)<_w)BMxM>wuk1ZdNtDbG$#c9I+I`>Tl1)rF27v* zr6ji0QC3=UvSx)%$DNVO==HkYu1mcl1BQocBgfTgP}e28QS`mKzen}0eHO8@7lX)v zhJFX39?A6T=#}R=#`BX$k^5t}L9V+@Ck?;r3e~rjFQ^b=zPOg7nRkc-Tw(Syw>S5& zOtl%9#e5@~r#7j6)28cX!+c{q;~n@kKB)&NE2tFWi!?}l&;P~!%I;+<91CHa@31$q z@3if+UbHMVKdknvsw_WNYABvra4k1KYk5ZNH2;*{No^7vCtQfX9DhH)al(^?Mu~kB z`y@V1_#A)vN6Gh*-v@qc|NY00wFv{#N9L|5ZD=aHiH!T~h z=mzP0S)~p(z4ut|n-Z8E(k^^q#GZ)Qh$i7>p>ZMOgWZEZ z1uXI3;+OBc()Y3NXWtmVMt%+aj`^PUY3(g}xVW7%9@m!Bsl)tDr)}$MYFBhE=~6f+Z*Y!Zwl#A{=B3PTaBGjrxR~ylzAWus+T=7< zdhhg+>08scr}azCOtQtd`5yJ9@#h1d;y?C``{PGRGN0GCGLA`5_As6CSs2nMa%t4M zx}EDL)Se%q4{I8}EhXR7yg&uEX6Zi8G>4L@|J)H3}S zSt!IZ+sxN0CYE$9EYDBKKU5f9I=t$-t+jZXzOHw3f8;&ee|lhpAh)1~ft~@k{KokH z3*M}+&oiG%zK8sB{C5Yu4qO#v4eA$c3jQTX8>sZ(2(|Yp*CvLU>O$(Mgm@l@+IG(} z)skjiXm8I(36z{i?w}v4=4!TSgAj{66O%j>dA)#@+{}1Ndx^JVu?fSm_$H2s{XiO54}8b^uJZNrFYpftTpv^r_&(4#;H&QuFWK#yv7xqz zPA5i+9GE43)_ygus&-eDm1mX5RPL(UWbRgGm^647Nm24oN5f!lTrm^jq9D6_8b<3HWxT?a6P30rXPM3O=-YFSXqAVF(ys;>z zaBlvT+_J2z87I z3%ghQGyhVlx-7Rgz6}GHhD;5q4xSxU*FVK~kIyCV$vzprC;dDFtwHaC6`{RCYJ!dg zD13kQWL>uESE?r~a^$|EhHJ!B+7?*`o99=Xss~gzsQJfI-_Ej~q-m5*m8d&!3~)W; z`pH!bp5`FaYh!=YI`BuQd0zDK54aw@I&5deQ}D^WBjQ7+2QhvLUf11*xwm+P|GYwne8%%WV}n?k^VUCS=#Wls5E2Rht!3s`6<_uuVJ^VO%UQc#qUip zB>AK^%wAM5zp4vUNKDsna_i>XAgEKw+|XGep8~J>o$-$HtmDzfBh&M5pJDzjgU^L} zM(85T!^yCxfi*s%?(Gf7RKJrq#CcpEJUUkU4&<`Y+P`7PdEEZZF`He)kZp zm9yzog_eFxjZ(Z&=x9zc2X%H0qw=Zz8QFoxO3S4B&a+2CB0o{tiWPLEvYG0LYMFYC zrb6>Y8>92mz0%&)_(F{#P}Rg6shwENH{B7bJy$J|-D?{ccMn`PI|^3Uv?@k@GX+O)JmsL$qUu4xxir>2}w)+TjI zypmWyv1{`1w4BVcf`=97ZQ1g5^&``B&n>foM!Zl0Hok(#@dBsS!yV&$WmK};rlfE&zvV27|)unLF8-I6TN zCub{4>E+01(noV$y#yQIz5lBL%)a8{wnntaYyqpU+$JW%dR*XGJzL3RB9+Hg>l?)W;n=dTuoM0 z-O9V=b8xb9rzER*Lh<3EuZ5O^Z~6Q3n&swa|B{uLaVvdKnk{ul>VK)XQro5VPD@I= zleRT2KlPW?uBpdT%2H>ir({gc+g&7Aw05)+Pb<$DN?q@GX?*wlzVhwkv&(BXVu@`Y z!LNSG>p+bSLe{lWHb4PkigaDjk5 zm7;h-e?cr}Z^a_20ojz`5J6QUzagfQj}f_goeqPBXt?qm9ZKJ${vzMYu~MWkl{*7J zaIQx56Y1a9yK{%e? zl4;M_n-Q8ZHQkurEiEM_J*7kP@5#4P@>2F?gy(!I=upwt`h{1}Hm$~`y~jk)WUo-K zeI9S!H@L2Iz3D2s&GEYETN*exYEj)JCc`H4gE|Q=wsZm1vCr&GJhqNp>jW=!Vc@HB+{tZ=ay!Cl= z^8U(8&mEdOAg5!tPuBO0>U5X%eQC|o)}_r$TbmY>-XTqs{x(fWTad9f^Vb}EzOwXw zRkmFeCMxb|a`bOpid;P0G;RZ3YPpVaY2murUE@{a`y}Xo*q~bKs55mQ*LII63ySxh z=RVyiVux#_XDVjV)k>{qlvb&mq3xzVMH?`qp5SIPO&u0H$!ur6gzwTkvOPUgRY$X0 zdsBBz|K8wYn&6V|x(d3SQC@qzyZgNJ`RX&;$KR*Dx7}--R|l`2NbY#qlk|*t4|UVJ z{B20kj#f*wUU7pgLd={yVk`GyR?SlEg3hs$+)u>Ho>FhI6KeaBL=k7eB<)HwbTg%m zZbdIbjou|kkyb5SiOw$mH&@3z(^nRbYW!wBE9;F%Pc!gc;yw z`TNpcu$G9TO@(I)))llXsLWrNU!M0Zw>am1_QEWWEZ592ncXwTX6mypWoBn~%}mU2 z&)Ac`GkryRo6L-?p?RH(&sD6kHsx27i&PhN0}L~awT<8OoAgU{E%kE^-%T6ck9wa7 z2n&@X{;3^O$6QMcKO1cJ^YZ%Ynr_^y|E7!5$LS9lznEUQRJgo1oi%LM#wmTMM^by? z0@n-ql#G~Fm%@#^fZD2PLSLb~DIX|rs_v@2wU=~l49|^}ixPQp@?A+c9vO;exn;Pm zaUbVVK*RF?5Lk!Jz+co{vhgHpydrPIduKZQ`j4oB!s5|6luxe*W zsfaHAEKZPE=`>AV+RN=A0@A6#7T{o$`L+(amj)ODmJj zxX!c_toxbn8$23$`g^wY_}6Wc%PT{GEZ`V^FKS}7^Ryr!X#dlQ>QU-9s!ggzV3Q0}YoRmk3oXMR+Eh)R`WZ4w^rL4f zzEh{EuT(FE6?5k}ta;5Sk{X_8-w1LNn%FtnszY3aK5;=gHM~$FJY6h}-6d>k% z6Edr0it(TcCyA-zOT>H+7p=mdLO$Pxzm9qP1G|G=z;0uYv)@@8OL796$!-F}^$BvD zF^(gkHZE}d1KoA1!=GseJFFp70*`SW$0d6!d!FrtZK`dQZ7^Pw@U@H0h;#S9to5v4 zEWcTzEUD%z<|F2xG zH~3CiD0Y$>%B`WH_?x<{cuYS*rhy4+SIvJoxx1nb)NR#qx?lAP`YuqzsEkvLXN~Db zt*M@=Jv37zO%qKsO`~DAb}{)tV{*?p*VxEdU^s604f&eF4F-dtH|tYiiJjKZ*EiOu z>Xtz>at4+{Jo3qfYm&gP8i+mbSJehpXH|)EwbEC4iVmVrDrzaNQ++50l=lnBUr4Ah zh;PJJM4yx*%3YBDl0lo=lSCxZ`*D8cXUKK zLLEL1gTv(Tb3}rMKF4vwQRZmJ9A`*&Hv5GQ#b;mQa&ThVmS4!fL_3@pdWfR<2IpEc zi8e@&d;$IMi=r2OoAyyIQKE(B>wD=t=$q^7>izW!eYWnZZoV#Bm#$rfEK#pC(>1P| zCs406gL3Dy>ac2ts*y@i-c!y6d*(Gpr;JROwG_{($&`_LMlL5iBTD`Yyrh#5FO-Q0 zks`{>SQ}e)%7&9H8(U>7&+6ld$c#TZ?)fWJ=b2s9J5wC zTRTSE8x+e%+EA^V)}hJKJk{*i%+xg1IFKoGg}Sv`rT(lsqgn^PTNmh+bYK8o!8Fey@~Gt@$=6J?^lKp)bPv=b+ZA&6gl2*pQRC`8hsR@f*Fks`s? zyf3a52P0#uMy!UmB~wVpD;wv(ACN8e8uHL>7d8oh3%iB?Fp}OQk7|)n0ZmN-W`_I1 zIbpLf5A69dXusA%3n5zY6;y&1XY4QeGdQ#Qlb?(;_x5}Qb~<*P{5jijCAWZ^&W*$C zH*P++jN8a2^3f>Tfx#?ZJc$@<&JYNxo@cb60RJtGEU8hBKzYX{8he! zj}j&c`-Im*ncyw97H1%~rci8;T&*;$+XQHc{sC>MnD8VUk<-clptcx{Y@h9rX-PsZ zwC(g;Xo=KNl#NvGP(H`{FhX@)Rju+z-qr5vj_MZb2I|3>dotB6G#fQnas31RTB7<- zBpx~)2-daPnq-pJj$M*WZaSGAjZKeS_GmAUjnx+U#_1nVv6x$u0ap(iwenruE+ zhF6Hp(<2J-AW<9Ij0ma;RZaGS9XVfqB!ysA&`5)!#+Ze8%ch9w`yr2#-y;9)9dWGK z5G3@*$cA}D%n><}l2XL4u#t|4$Hhw+P22J8O_1yMHCkvP#?mOLs?MWzoc}4sWML@I zdir5b%R^qQJ~$s^`Q~V|#X?V^2(<7JzMPB4?`#~wlYB7F&3?t{nL$_}oWbb)7x@Gx z@ek1w^O4i_5I<3ys*Q9<#c4`H^jGbl*$L;U$Eg>p zTdK#ZBEY*HO0JMi(k<-U{*rr>L5geiJ*8Q>K{kY!?|SuSHvyn zy9<4Uu0kfS;QMgB*saV?<{#wsJI{^T(q;kHK->J_h+?_u2Q_ z3+&nUBzr1OvIp92wl}t`w!X-d8jrlc=~mu4()K6vcShUFtg*HX+b%~o`&k%7bWt2u z4n%+7hIwd#YA@Kk%QgS#$_-y#X1kYr?((kd^T^xV>%MzE*LTLbhL`%bh9SmRrjD)= zAk}2Mj&+%7{HANExv4y_m0bbP6Sc$iWACwl|pk&vsDwK83cY>H+Xt1 z$dy>B*nli~ar6yn3_B`xR5tA4UD8=`Cr(Jqxjr1pU1Vpl#Y{NU*-^*d!8Y8w8M!pO zo6BoRWG~fQvMh_OtE{uEd6sa?ee)=DZ?kAVVR>MEZJT7b*o}@N`@i-u`)u0_Yq}-Y zavPZ-6U;4U-7xszcR!WNve- z@`HNV8~N9kRc)^xS+mpZYDu;jtq#k5OQ0nfQJ>9lx?ao&5al$Z>8o#Hd|~*c*Xi#; zw>(GR!MNOYrN<%f{(j*BzXjy@uk!uVtBw0>(?UaS}=SitFK8` zs_6(yPws&B$bvi(^QjREPx=zwPg$rOrt(l_E=dRP|Q1 z8riG%qZQkO0d68rNm{6EBN1OR7pu!OZVKng9b~H+9W&Q)&A!||4p}=}ITTp;wa#n_ z$eU2W?dD#>{_+A9aR_^fEoYOET~>m1w**lPl)WP&K3ZABtXnL0^DgtUnupb|pn`r4 z<@}{`zl#19$rZaQ6DtQ-EwAcT)wt?G<(IB_RwO8$pID8 zk9!-BaF5^JA0Ru;VZ#HRlb=$c-mUJfCe%|@|0-7_SIuW~9#K#3B%MI?)jTLy-y!p5 zZ>S14%0r1>@HlhSSH&dSM$b~-RZ^-}swJv))eQ6+CE9P6?uM?3t{G@@O;kJRo{D9# zSK>g@GEsM^?NmSND>;hrksl+=o`;aZ+xVx#ci3NJV8e%rk>U&C4r~Cm!1J`w2KjG_ z1y`|_sDny(t58o^&gXKyxhL!zwjbLKt=gY$#^y8r7`0vOO>Il9JjTf{7OQzDa;#<} z4|fOT;Qm&9w0dK8{c1mqv%;$0)xD}`S0`1!sIHHk+^=goBJ#7weAGf%4c0MM&Tf3x38sHdhfVj9 zCwBp^-%XEAM&t?|?^0z_nARDJb+opt`i8P2-B_`fszY_87E_yH%ikq$5*y{&(hji! zJeU89Q>9_@UgAB;QR(oxEu?$VVX$!O(^KeMbbaL-r4L9%R#lKX27KI6s`JWJ+6Okz zDXJ;86xk9lL06$89wP$(UwI|GwKR0vPX}SE-0?S)#H3r$G*(j7JS?^@nr{-COMp-39$>W4P;K_gv2*-V41) zdCBg%F6RtKwCmJnFvL56 z+M_jGG1N6KG2Sv}8Ox0-Q=##pahB1;_|&ipJG{Ec2YyB0LcdRU0N#wzYQ5?nJftm= zXZJev8Ev5vX$(b+0p5u3@_i^gta2@4FCh^7$QIOVWGp|f$cN^k6+MdHLEohB)9>Ju zx=!zb0wS6&QVdZPQq#fZe+d=$Ffs;yylYT|Sm8&S1WiU0_>tPeZk++od?pmyW1$n7 zg3sijFPQ?>#w}@~a80o1_T&FXWMB@W6AL&< z6A(>2+u@D8n#UcX%mbzl+XFg^MC`sl;#~fky%TJn7qDJ(5fd>Kw#^p%D0^?aWZPj2 zxBZJ2O0}GXf8)F*)6&WMz#4A5W&3Q)vwgSquzA`}Avg8{#3)x}%G_*UZ{LHQ=1O~#ZLe(}qKQY?|8^uXM>xzhM03R?)fdeSU5H-L z9oA90m)gr(QF}ypMsGAqz;`9On>`{uH6B538%=TgmD=;_b=b9;RLfL-)U`Ek+Oyh^ z$W(nmvqrr_byYb)Iav8dxm2}Ay;*ZXdqa0pzuwTr_}+*FY$nP0)_C0br!n04#?Z;| zOg}4uwLX+au3;`EQXR= zL*&469YL_fEAj-jS<#CAMjMcq`3*gszJqL``zbf-I5hjxB-wgu%DzsuVXs-`| z0B`|Tz6P9y=1`*(P`MPy!;nQjg6xZ!FgNlg)Hl!2{toE_^zmz}&3i1fFglpt#kQ7W(ji{EUL(hLv zo=-%Rm&tUj*`tt6A{g z+cbU+zn@>s_vdBq5WG4c*qLbSAY`{64eCe&>&dl459!ARaYgJrSY;QO(M(g=-F1=q z-iIm0X#K_U-97{3{e$f^vfiiLc$)`)%EeEMevWb4##()C<89Avzd%ni(echv3x2xa z5XZZW*~%PZ-Y_}HKsJf}%DTfsyudx@s=ziWg10H2E9O#>U#|vdbRO_ubmo8Ox4^66 zE&PT(utI7ktH>OxhjOcWpjM^dp#K2>pFhA4)&i&L+(>O?z#9?Q0FMc2PG|?Z7GA9A%O6C@kF(njmeqc7-lO zS5MzS@1rl$oz(rIYo~L;ct50VuYHHS-Z$Z;c&nPIG9vqglc}SphbsG|K zMW`>Rb(-dyV9i%}lC(H|xCvjYn|hYIQvHX<9lpUXI57{`PtmW^FW1k~ch&Q{i@Lg) zZQQhrH44o(bq6)6eyLimYKS!?SUH0}qDZDRh>K0a{Jjp*AI>q_gxUvHV?1>i8A|F< zY2*>GfVN@WHi4zxP4QU~NspvE(RRf$MFBOOf}(}&1HbxM{M8*YjVvSM@h^IU*zyOw zIFF#aoDB`-Y_K+Ff{xJ+J2;~ZsJv7S5=RZb=1WhdEmAA#2X+Js@h-fFGlW&RR^v5L zFbTKeYfpt=wKeC?DWSy)<2rI9xFy^yd~Jx?_X1{u2CRt%gottO#=7GCX#m@ut;5o6 zI&+p;1q+}xQl ze#flv4r}^m!(YZA(-2dLX}qzMfzxf!_S1A$Z&v*RHr5-}A~p8hn$DQvLy;#+rTJ6M zsBWm9sASb9b$?AT&S#(Ly6bo7SLoa6<8=LWY1&1|D8*~iG9T6z`}tU=i7HUNRT$+JPJa?o1k4i<*Ib)?R8ZZ1pVAVg`T;)ed~2 zk7O(Kmw2k2dPq$~Z)k$kSr>SZ_kh%sBR3&7fOeEf+=5+D1{TXx_$hCT^TjS=UvU}y z$wsNCv3mLU4=lQiO>Pw{@Q5Vhx|;Ow_L{Pcd-8N#3UrgdWK*?3(`*my= z?AL!V*O*Jp3;6lN+3`3(yNdp_1%K_z#xd)0k`{q^qam}9`NXtlFR}*AJ{yrQcLP@b zSoFnmHl9UH7T$^APr);HO3;WgVl&KRHh4r2!{@vc`Ye?=4dxwd$t>Wlz5ustC>cveU_U<&D?u?C3hzvRsxFld+cFiqgY95n>{9IfYqTz_XBTQK*Z z#!Rna+T-2x%v;zFpD=42M=LKu+iqk|!cPzYo9_x+$<_uta46QC4p@J}k(WG%`vvp= z0ayV#emK9KkLNYe%KR>D`F~u!1)P-C8#cVtu{*JoJF&Yg-5pW_q9P!OG>Ql)s2~Uy zA@N5=L`q3PC8ZS<1PLhxq?XuVo7(Q#j@g-guWOF`@_yeuzvr2!?i8m2dmPA^l$TyMQF{H_#b6LzG@bi5|2UsX}+`S1qbN8M+G3NqEX>L5*f&0FXz@-zmmTU(_$r0EA+ zPbc*Ocwm#2dz3qrXO&vj`>JHs3+fG^npE{Y^*;5->SxrU$b6?)4^;0`+u>OZ(N5BS zj~Kf-+HmbbWR2N?xP}!fhbl>V6n6XXfP45J{OMBVam7%@ZTVpNMOk;*U0~t8gxIE` z(odwnNeiVdWW#~x_lhh6(!>I(MS4Q=KJrk6g9f?-W$a7%)P6z~P6x>)__Q_w;cJG! z#<`*ld7^!RVX^gD9rzUB3Jf32H?aim55FMu;+22w^TP(D`IFM`B#6xc1_0Bh}- zq!aQa{2|>Bya=cCIP_neBuLT}=ypcw4e5T_8bmPam0v4wDpQn~@IO`=1 z=CGT0SO0_>uT>|gm#V7~b#hRtQvOfTLSaz!P;6K9LT-|uRDDsOsp@!mDMli0WxHxT zd{kel@>O3zwz#f&Mf)pw{w?iVZIpJSMyB}ye&U^~8LBa=H^2|ps`jdms(w~2h4nC1 zIa67n_)MWu97P;uU*vph2K(J$#MrzmpDOPSKmIORA5g#>(mHT}35cyyNvgp8AEH;- z1k{gwX!;&lYf@3K1?c|<)CJYu^X`IlJP@+{ztG&YU^Qb1SIv2@LQJF-mU$s_CoCw z#I5`f$d7NKk8b088+eKvfu*{j!dCm8CR1b7)@m+lKGwK257kG&v7^;maQR!B&f3M=-P&E+ zx3wzmmzsR_8|v$-3GiRsRQ?Nk$wJR=P#IN^l!rhqg^G2GR*E$F4vg4(Q$7~cIQc-i zTmDeC7(Mw~saCoSdF56?ql>Fw1#H5|`dt4>SlR~o75+Q$5x?*2?UOSH~!@Mb|$mLn(nU5q(> zzACG74Kh@k&VM%8%BS0x3HV|E<7nv#O`mq}NOY=dXmu zukq&B-bQ;nj!1x(-aovr)iw7O`S$wzz$S4U{pW8$lpF~RzahY|ORXOUB*wmyt&)FH zLqAD|LmD{`i^Oiw@!5s2Notu&xKKTv(5 zdP~&=($7xi1Z5Xxh|;KR1Xw?( znolte)dXqQAb-ods%y$ultIdW6t@FU7@_cXu1MhT* z{8`w?@5|njB}ltVS0gfMHn4{7BED`f&^WgN@$WUDZ(i}w@=K7nZh|kur}PCuOR^$s zv<)KCEoe#2;cM*g{ik*WEFUXs`qp@>??GlcglR9V7OT+?o~`y(okiSGGuX2JM5Oz! z%2So;m1fl1L`*LsCM>J+WaR>QcSluD23J&6EkefMFA(E05>YL`)|`TWYbQp{?m)DW z6jqk=(02akz3i33qd%nXbx1m!>MqtveZzgneNI>siv7>Set#F3iamf{vKWriUB}}>;oxb8R9xSNOzWC^sm7_WbuX_+Q7L{^6bQU)_;1om{byxnX?4VkXR+gzsKLHrb$SPNeWk1ahN`ZYyyI=}y@xoK66hVxYLdX2eyP5Q_#p|RjhaG-34+z~2t4`kBRcG( z>P?V2bE=I2G~EZ-+XB7X>s30`Uw&mc^wpHAF_2cCLG4_sd0dl&%-8p85~1C6t=$MN zch)LH_itSV6sQEpTC<)0z8Tq~Et!Z1&MMedcG6=t-W@8#{}S7cLU79cv`l-`$?O54cB z09R?FY!x!bSY*G!w{=v~QgRT{szs2jH-Nu=3CzqTusys8i^EM|x;F9OK>c(DaAZQ= zxw=2&rmB(J@RII-WL+bJRQeT{xT5xnRGWRjk>wKadD z)c;qr3az39I3b_con4Opf}*H+hTMEqDC$6+Wo>-dx0Y46hpm&E#|&U z;fJ7Z_Q@~EFQZJig9i-+56Y7v{fNvgA1>dFHqb=zreYSRLCA>l1PIET5czaOULx^Y*s5?U4$8aB^JRa@ewSU5`QR0pi+lbi{}EokF!?daf~C@`Z zx&Frf6kv4B^Nq(e$@dogd>{B;_w@r0ybi49b|}w1i2C~gkz@P3Dc)v?oB5^gK2VqM z)@`YKrLNMu0WnOW-YUd0HHXLkTkpT#2k;lgAv*6PZx?8eiIClsYBi7wK0}=pd7D6f zA5%A}Zc5$sx|xWKT3ojlI{cx!GtfQbabItp6Hi~@+l%P2NdHLxa_I4AV9hy!2)P45 zAU*<3zSiFtJ<}DS#mZZ zm%*>L7*>=VsZ1u96-ciECwsEA9egYy;5*%<6QmoY|H4Neg_hV~_N=UntQA^kTiHO_ zRJ4MVvUH3+a>Mu5Sgw#~$<8BI{!<{QkC%-?yP1Qwy9N=MTV$(c%dvkN=wq0yFYvaT zq4fmGilr&ib7=Ler5`|#>m;>GOM&aWPqF~APJ3V_7r=%?G~7c#vE7DvxrL~`L5N=t z0z&m+w6(W^;oA}Ty%oR-{skp72!5ZNzO|^gKJdzRMc?p&Zwq+QJ>NsvLVoov_YL+n zLG;%{lxr6Hjwr;X_4D=ch50hUr=}sYGY=ZydG9rErPp2eCai+z5o!1c@rGyXcGfLL z{m@Ey2q@?sVNE*WOY~*?GJJpfHlP)C^hKg~?1d+u@P)t!wcQ`*&jR*uHV~5k#M|wJ zKk<@36F#XZ*dvF)ANeNG-aY`o*bIq17C3K_K;N4Y^f~mjeXwl*0_)XL*hc?`C!`4e zPaE`_<``Gh90+bE*ghi z!vihhu5=@Cznh_6>wwJNRXS68495n@-bWpM1FX1Fvc|F+>22w0>_3h6TqM=XB4tfw zcJxUXpkZ~B7D!GYj&!zU1~MM6fc|(v5-mxBHvSJJ)Gd-PfS~;b#y$|~x;x&^A(2S3 zz%@1?+O{*05bxI?1J9oYti0!du-p@9dCy~gDy%Y#fTH&~;-Y84R@bk-aeXji@DgFM zI*PpC>rt(eS4VzbpKf`whl<^Uy?6)9su1789`0Tjrbi`t>hBa_0Y+`Ss-X@?|o$vq7 zf6RXiwN>t~g1tBg-h^BJ%c#lw*a}08z+9mJU4@KZ4zx%j1J?inQ3uq+cEC3r1Yg68 z;4(dd_SXTtrVqBJz(=_a7}&&+uEZ#-AmB#_Nu)rM4wH06l;w1^#`ThIkR!KBR!SDa zmNgz$(7`w|66;H__ZQ&JN5dW-gBEfL)|z8z#e0FIy%~1WCD0BgK+5SNaY=$Dwb1c1 zgB}H?LK4jiDh~1osi76O#L+&mo%Rk`NkSwwIOjG{p${P%dTG#H_}+;~Xhz#AhHM)j zK#5F*_p~5@sHuQgRvtjJBz`Z^R5PJ>UWJGLrvRGvD;T3;udfEhr-JV9!{V5Yl9Sh4 z>ziY&2J3nNrolj~9s>mIcj0;a1hhX362Qy#9pHhh_vfL;uOZIjA9!ZtVV|!A(!LFL z`&RJUcR?%f2DI*HKsm1hBYqz6qc0qFu5ICXa>qTSR$9y1*PHYU$O5;Tz?uP zTg!s9s23ObSw7nHTA(j>g#4qy6WhWswJ7K(JS!GGZX9Z35AgSALq3`ePPZ8E@;mI< z(U=cGqaO=o%o=DRe*vBE1Q4}T&@=1d(`*eYBieRQPzj^ z4bSso?*)|2CSX>sgJ0}0@O$sz9z;HU3%W6kwFhsWidqWAcQgTJrVd|2 zoZvzrkA}gzGXXN?=a@dkS~rZjDn>nD31FSFjQq$i5sEt!zg2>7l7W&O;PfpXcot^YE_en6WxN%y$U;db;!AnORlM_goP}J| zIC~H9NDrU{&Y?aMa2^qV5!8gYSK|6!`%t$w-t25qF7u-3m|X13BbHplSEVdIw06&9S#L5NwA6 z_jLlM;W(o)=%Wzz%5RUwe<_|v^jIRtn(@XGV51Vny}n)(sIMrzffMbf2IYJWC9@lp z@h#f_<^US(S?r6!U5FR`80fY{Atvr}HLPI<)Dh8@wJ5oCoOK4Jy9KRaC9d9t+Sv#C zJ`UPHhqiSUzV8r#HK z_u>sSC?#p29cJR%SkPe%>Xqod6@lY2)Q}Gxxio+=OdMoC=mf!fn26gg0j*S^9LNg= zT6{Umgb2?*lq`fWv_vhwQ-|}}LWq)21ascOh-Yh1X2cXGQZA9R?*^zU57a2b*(RK$ z$2UswZNy&oLIx!+ya{(up_LY)9>`fvgQ`zsx{9(*0*w*xz7TT`-YOIIByiMAP-4}X z%Wy0M<$MQqaURn7A1JL8sGCc;{tn(E0qraq$5XL<5UA-)+$9%x;~g_lIw=9Zas#D# z0oR>I&G72W|CKd)B&*BY2FKfi`y2#Kk|O!mSMWqWDH`vYgtE#*jaH$ot58JXUgL<7&jM6_`tVQ1qRc_>jLcne(YeAEgN>Am1x z4T$IDUP*Y;-N3iR;&}pBnrQ8%cp4G8Yj8Gs2&D%#XpQaK8+h+*aIQ35pM-jRfM*l= zpD5{7ctSl|js|aOMK97Ae2cjt+6J(s8=*DY(V~cRPfiHYAs~NYfK-42xlR0UftGIz zv|na>Xo3o|#6cahWMCGpK-#?A0$yd!%dmWU=$4;rlV{>&f1_Q-Z<#FDKTCO%B! zOlB@1n!X*J&<(C8kj=SGe0}D%XpApxhF+;Dcyc4`bK;l_N5gTH86lVxqAB<>|Cs@U z`1$0{Z6K{OR{^s&^u)}mJ$QF}lv=w$f8G)6o!~WOPKWMTV`hgAm^pR9+1+7zd*;81 z=XAmTPT1cC`+H%3A56@D@C=^8{1{#SyP_v>yPpZ~&*v55 zshx0V-d|*x;Il{_{HDf%uO!C~$2$3T6O@T43nI;jqtrw>u$)@r8bE5GT)5v3jCfKO z|5>i=iJbVig9?cw9~!`r55t+RKsmGgI5)v_m`8-=&8!Tp1F@f(OZZNa*he&eE=h~5 zpB8v}E0k@kz|`DI5x5`Ug=@^OAolQ>$R)y3V@qP$if`nS-^%Y} z32+i6#4|;C@MuG}1D2I2u_%;2B`M|t2uF#to;V4 zdpVKEh;n3Ei4tQCh?z%4ZLnOJtAg92JbA6C8S&p5`$cVuI^^AWZ=S=e8|aV!;^};6 z)(LBX@5YI5&M)SBb4gCn=)closj*z2&Rk>m3~~&XHcOi2E!M*V?SV_S2*4*`G6&X} zErj_NnDHYtAORTh&n*+q5XZ!l`5(*yJ|>Qlqlv3{CbN(5N@g7~1}3rHa8F7c4M%t$ z=Y~nFvu`8cG=YB_u;g9D8RC5A@!&J56EM$-Xx-vlY=LhfA7K6u{xjPQxdCTNk>m?c zCuY%M2|7{2q%c8&q(M?Q=~|ROx5U&yN30Rn0*~|T2C5b7q*2ad$$AraAZO!VvE)8+ zq~Uqu%m(@wt%5Zw>Y453X-x}$$d)1Ya@o+X8roLFcZ;%Mc?d4aGGQh)mKTpbJ;HLc z{(tuH7-@xPkxE2n87?`KdMF>W?wQqxG{o9sCKN$U+$K%2Rw-ACT4cSl_QjI9W?1L! zGf6pI<1E%G2@CmF$hBPZOrFF0@hnmt@5N^@%MNGpHpal)@m=_)%&jD{itx*skBAd{ zS(X_oL{JAyHxe^xfNO#>_|N+Lf2n|ULQ3FX*5gwyM#^evpAGGibtLFeP^5SV)=NV@ zFiR3kmNJegYnD1on%^MWn)o(;AHP{FMM;Q~V~Kee#`r^%BgK%9s^O{FtFj zib)ojDIM}_8YDkB0ss4IN@H5g%s|DmU{)DXKFndmnOS^DQ(PlW3GT(bP^4r**9|mJ zy5~BxkXf)~T|I3vqVkICUPor zCg$CG+QNcCXQHJsW0EpJccennqG(y7ZHd+;XqP$#+ZL?>^#O_}^)uI#A8n)-YqUFw zwp4+3A~YT9D9q19O{NNSgFeHoN~HlUt^`X?#h6N=Lo)9ibIvhW88ekpkEbRtCT2OJ zl_4LRBeT;nlN~il?xl84ZIZ{RS8~aWM>+V<4``g+qUOmxx&L>KS8|&Zui{BX*ipFtAT@wy*!uq=7077v*eShds3ei8YSOKWVaG^ z#JpFmGiunZF}^qJi`El<73+<8lS(mh$&z3>cmivzGfu3tVw4!`k4x4~AxfI%$#P~H z=VFW2K$bkW#9r=U9Wn1$HkQIxAkL@#Mbv%~&L?&7DS}e?RK7zAmgV^8+cVQ&gRac7 zAfIQCKo~Kla7! zd8s7|8JT$rg}hGrob~}~SF|=z18WOClX@uqIMjTFo=dHi+Og1Lsr7QE?#m^0Rc7Yu z8QA6;XX?e=M_rhjEHig;rVcA~p4UZ3)Z7Gl2|{ zy|85V$36isL~q#2x!ngdy%PPf>Khel7KVX4Yi(Ic6Ru z6*R$2U9eez0;mhJ1WEIhI)#?N{)`$PX@Z&G*ndWV5?BMGH)B6bdpCPr=IUeb%=TnM z4GI~ay|<7ig(fBBbJnvNZIbdNDS*~0_Hb;Ov@KIAYUuB{mw7!YS#qDSKyxY9xnHb{ z_RT(0$X4P`THMWmJCF`}FVY`nE=u}Bt|vV<&?5KHW=Nfa{V(NUuJi5r9Sw4__@@lU z-kh=yDU|YkL;0}GC_xm(te3oVc9X zo@upcupiN;A}kgxKkBfJL3@SkN!G zNC~8XcBp6O#cZ%r@?TH}m%?f(EQ_=-ib>eN8f;>G4`JDAgm>hdH^(=TQo;kXu(9w< z$;bFF?6#uS3JrqgMhRTl6 zNkGc>;-9%+>oHT(rY@}A5dOj%S&s6s|%epBk$)OD%zQq!e3|EY#6Gzn%< z<~Pex2FxW(`W198c(0(+hE_u^Px*>7+ZXe|vW(g41h?dpeF*yx@=a=J?9-`l3f)Xt z%-EvEB&d{2_D7^w(KB%mrv?i!uV(GC^>Z(!1z`sf`YfMDo0Jpp#ecyM*k6$YFax)+ zBk>!A9!6<~y#@OWHO^rRH=^c^C=a%4(u4v_1=dxd0TtG0)ew@X9OX$nfe+qRS`bJL z^ny|Yqb-9qK>DB$ho@3K^l{R6M_Qo%!Fr_(&)TQ#PTC+12pSRlNe|RpxW!|P z!4VQPy-oDj^DbQH-G%2|&;_OH2FaTG3w>9l31+zUV~g)j3k_+VemeSuscq61#c!vd zj2w?VPjE*A{#k0Agrvy!C3;bEC}BILG$Cq;b=pwB!tyMvqJk6ACqgN&!G_NMlKo~2 z%)-*$z!Uyo>$q5dy5!m1;*uPrIhN#OTo-p2PoX44>6kV*>iZ3Hk+2bv>X^HhbVxo* ziJ6>~en??cpAoq(v>TXKCosNX?wtuNiTi_hAnsq#~Zhb+KgKiFLMb z#>a@dY^-*r)T^jDd^#)ywd&T~SE4hdFV4uokyca2uTjD($mVz={ z;JKt&aZN){C*(zOJ&!i5iTjAJ5?}X}u7#v8G(Yx@!VlWuTX<^!B8MdhX7+iOF=Yl} z=cBI7*2)^Bby7sGsnC z8?4~MD$d?Q@GW6=WE*F{MOqa$QPJa&I|!Sikog-Ve)1FHJrw+gbw(;^h1#QUy$NRi zQ`TvakSQe#xmn2E%wA7jpBk+2tJ5D(9Z*;Xs1u|6W)aDAn_wI^r!Uxe4u>@7x;iPN|)omGsOU@S?Rf zXq63iQufY5lNWM;kPIljl7Fz*B_%NOf*KojJt0doijdNm@FY<7Vnh*ppdhT#CNJa` ztp490doK35{BQ6i2&spCoQOqY1RL#1+-jJ8=z0CvstHJLl;0@5iM#pHgL~1R^QQ>R z^Z+#2|Ao(kay=uQ7)2xKOz>=>4-0;03(yHmgPe@*(T!4bqtsY#LK75zU7;UQv!fOz zD1j6}%Ma~B9Z-9$S79v@RwG)I7^A_+h+a5On*wJMM?pJ7Z`c@U#o!uk8l3pgv$zyj z&?ePjg%H*&($X`a4$>2;hR^MYr;uVq%!Qzpr#d1feQE-Xz96koj;95JOIp?hhiZav zr>?;gAcmswWwC6i%~6gFLs_y96*>?5CsGNih3#K>S}1>zHYk-au8!U%A)iw^XIzbl zSA1#%Cw&NOIAwPFfG7!5;;F;gPyIf^Lq%zh6Qe9C?GDbRX5VVkX+Tt)B{!B-l13~P{QGNwn^4H_b>$OA}~A{IqN ze+d1L@)T>4eVni=u}@|nEx07VmXpv{DQA%T3hxHxM%EwOIm?s2Lm^>Gu*J5fM43zQ z&z8>mpft@N>rmK%xkkB_S`Aw;y@z61jlHzL3(p^=Z|pyo{ZsQFGgwo*o3!26Zsui=nPu8_g(3N9^-KZ0!p~ukwt;f%AFoVchu;?sp7#J%T6vg6-e1{X1fDf5G-K zOkAG8bQb>?0~ZBs-w=y4UL5(#(~`vkVME^8--KBYb@VX2#T}1mcq!@y%%R zdnl(A>?Kt(s-L30d-BzAm2a0vF*Hbx%qe)H^Am3VS|BZa6TL!?35)fvb>1v!4?EJgvDR4w=s< zcjB}8j7FG5Y!C0n_otS^SbcIN_EQZO7E%m*3rZFIei0d?{%>7^Z60H9rw**Kr(nN8 zE0hsyHmrx>>9j~0aTTQ!{wU7~3AgsYR=|-poc);j9HA+(AEtCd=}JiClum@c!!i|` zIdyjnp2LY>p#qhYld`?hi%So11Feu+7{gD`ya%*U5~zDh+U!Nydx~!oG8(^%Esz$b zAhaU#W7;&?PDoLiphiaVGnzjwuq5rKfl?n~DJV4+XK_>#&n53|SaO^|7VeXYJBe6; zV!Tl?_R#Ch@iFv*KlL@!=gzW|1==~km9|V;Cn;xf{2r~)l$hE;0%o7p9dm>JL}~b$ zKtIVCX7+=Wr|B{52Tx#MjCUD;`MJP9m;L^mp9y#kyJJZoabH~16=(Itl`mpM%^)Bd z4#tR>!N_{_3a%KAQCl22(+|(4?9Z6b=Abod614r>KxcNmKeb@WO^QHGRpWc}(G#Vj z&EEpIy@*j0$H1p|VtmR^7*oJe39B$-W*tTttiwoyl~`YcWTp5Bh(R+k zs&;by8yHbH9%J=JVVV#ab2k>__NLaqRX-hwdUG&xZyt~{=i#b(7=O2*{xcx%Ex{Ph z6&UHY7I)^D9QH7OqBpn*o_`zM>@n&s6C5E2yrKeiLR&VuM+x4XmTva4j5lEYafAbV zW)Ypj2o_Rs^la$m7+> z-LnewSJ=B0=gh?@z3D;Y@ti>cif9^;+iLLMPw=gm(JvlAsjo+QEUf=HP@<#j2VuNx zPmFf#P~WuPjmd~fTdx4#wBPSV-YWpG1J5Vj{}@=)F&J-p)&Dz2ckcj>El0pk10wZ{ zKz?Y6aj<%S5b~nr`%;jp=_c^(&H&ZwfbVA@nQa3a_EzMK--dC|yODe20FM3%Ook+k zhphqbd6d74e>m>76eDZTVVtGkABi#4v+<^9@$P1n-z*@Q#AAeNPmJc>Dv1Zu)-xDY zyj>bA4FMj-T-k0}j7%x-0;HMmFs{Eu9;SFfF;lTgaaxh8@G8QT-7sE%y7D7rsQL~# zCVP}yk!x}T(1jK$-vxePA7wM8MwzYn7YIW00%#h!@>B9<@}Y8rJW=*N#)ms)_c4-r zuv7_@?^zh_9FGx`eK4|d7pPELf6zY>-+tIP(pQZU*#qmcyla4QaldvRFjy}GOU+($ z4%kfY>TAI5=?a9Aoj^u*S3a&dTrsEOxe9Z|&s`94=QgBjP$Cq+_KcNxUv{z zCwN#^RTf;{xO{N=tn#1AW6LcSuLGskUopP&Vr6@v_BI2K*T9;GHQ&|t_aa+s-6r20 z|FHU=LCt`GV3VojGDW%Kp)yW&T)j;*SKB{W8*(vZwoa?xp^q?ZG58GQkRvtQ=m>o- zbaLqXp>vTbZCvPp(5A?mcE`BgIK$Z9SYu|rU2uVRpLUwIu{J^T9kNwctAACGSJwlf^JP^bO1UvIs|{Af0u!N7_MxmA z_-Gy=A0&ap9K$Hv|M@e4d3CtXQum2B6}VP=fjKv)`T_Dm{ZScNxwb-8u?VQ~%gX$v zYfBxaKLc?-#`B@a?D?yBMsY-Oa?zHe2}P}o$_wuoo+{j3xV3O?;VR7Q3O5yQDcphW z9ff-fcNHEk{H^d{;n~77h5r=B7A65tIXq1%iG z<97zLVWYmS{uEFQ{UJYv3=ffn90q2oJ@}UPbKur`HD`c{+Er7m-miX7-AY{sB)g43 z=jjR5qld~=sJ7@)7a`d;=7cCW?F@R!o;i$nRnFd?VRK;F6|G=3xZza&UvS z$Sk!P`4@ix;{R`T!;nF3nYR_tSUv-WTVl2bLrd21z;^LE4f$ld&$m{&r0T&j4v4k zbpO^Rt`bd&*Hhq0^IY?s_3ZI%@T^4Lz3mz4dDhd-)6UZjQ)~S9!k)>VuRMo5cRa?D zVYrK;bZ%*0>GHD1z>eQjF|YEis+rX@Yu44C@#fX_@_&h}lD(x{Wwr7#%Dt*mb$9K1 z!Rtc~p+0^#EH}OqDmQI6H8QU==bGDC-mrXPS!9`O8DnW}sWP85e`0QCzG<3mQkr&z zb_-23erR+V|29l9=na4Br|Mn$ySml7;X0k}ZpiwOS3-0l(ZOqiUkx?~Cu+BAr)ZmL zbC7}RGtEe3`tqwEsE-4k@_ir*wo+@6>+ZB_9grgo|gf=**KFR;8|12^T9RR|^RtNenTe?kYH`ps}w`|L8oosikQ>+=5DV96t9_AlR z{?NBW?;Bqo21cSshps|^S))gIJN)kbO`0~!2nVEdJ-|52|8 z(o|2iU0tb4Rb2!|+h)}=WLTT6ng(pQajKV)y~C-hQ6?!*BIn%%rCS*X^rV)+FnSx= zX+D>!WXq)0z%z)4Y;zK*06Y9<{~Dl2eT}SXdx4&r1x&quwPnCO{Q$T%@|t*HM$JRM zAyai4u)Su1YgYjmYA!O++^bkn5mj-s{C(s-xKuU=d1G#seo@*F0z)*iBg`rpSQ1&H zEGhD&dZIn2JbO_S?|6oJB2oUAicYMEj1Y|8tW75cQ%)OxjoumYYz$Y+vDvU?A`5`ZG&wWtnIBoS!&F$ns=LO zLq~_6F}5=9Fhm-5>s#pm&<)b1hkPB5atfAH(UA;DL)%d{^5HTxm3nOA6D*L2r7 zfR>xBeh5^(ILrxH%T`yY>(ybJR+_$=5x{1hjOh)m_0TvqIp9~5)Dra`Rd3Z5_lMkTx!Sy`dGUF(^V<|OM=qiB#nVgLmZ>YEs$Q(w>UH^d1oc4;@mgX{)z8kM#uYT%mI1mx;#!A(O} zg(QSD*1e_MjqDXs$PT$pAE&R?hcb_`p-P{vzpFo^|61QmAFCUKtVJC|HU@i8e_v=0 zt8b{%lsSqbWMvAKwM9Os89_Vi)BJ7yUm=6$J9Q=AP2Oj{A&^xL0WWI-Fz!C8oddb$ z-P&o$U)rHoTbomJvgR{n^&?lh2b{FOk>BAnWV{L~pIUaXw6tVG$-=W+{jzRU^B*`004-k#Mg>)Xt* z%q1Cl>GRX8pR9W_?uq@0@3HkszbBiYbWHca2=HlEqnzjS{wU~IY%2|^=uv&#`&zw2 zc3t_N_J*#^=rf-8FF6xIy-$qW2D0Poc zpAAhlXp!wTS^KiatBO@#P*@ae<-;&dlb-~t)-Q^Q%67;iGFr1h`%Ca2A=h>B`UJyG ziJo$U{6g!NlXxw)@-uIZi77mQlN zW!<+SZwEKkCaIUG-<}Q_0z`p4Dep|Aotr_Ko@xz`o))! zY$r&L07oTNQh+RXpCDgvKjcbVj#^q#H`3dv_Mht4s-%?%%ikz-mL_?&7JpPUt8ih# zKl#4AiFrx6opO_M-p#S+&X3os4$QY7wEM1=d z`jf=Rk&kCQI`}Z@L3P@zX)9Bor1VL7KlygjOG%+gos$+MMJ4AYcSw~!=<{fH`mL<< zc_l@S%kEYES?7_AQ~eaOF4Sq$JAVz&Y;?8Bv(2?FYg@K$wZG-BEv7a9z3JY@?HfHG z?sOK}_L)x_Pv{c0J=B{OD`at!ZP2oJ0!`-@BvYMavb0{7sJMeH(;b74g|yS3FpLQO z$JE%;&FZxtuyugkG$YL7IOb^S-0LiM4tAY)d0pe(OWiZvBix0qk6p>mYDZ4k8hfR6 zh-IxLmO$mWngg5S^%ECWxyr$WymWNvRZ~H>KYi(Dy z8Qkhxv!#uHj`+rT+7@A&uN$Gsmp_oqtsjLf>2b9!(1s^@pZBHI50hre+o)!18il0j zV?$S2cG)7rD#KPg+B)-{Ij)0ldw7fRWcTlGzx(I#Pb2zAE{Oana&%;Pq&>1MVqCHb%NA2(<6PYj+S95!d7QMXq-W4R;AXx7P5MUAGU*|CYt`=>eaHfRw($+~ zZR;QQmW~QXlrz$~!BH4?0B)FAvnzCwens#>wO3Iq?Hjbzmsy)oZLi9zuvZ*`{X zs=Qyt?TWcT_InK&n&XhcW)Y;Hx^hdox~xO#9naq4*NegnI~F{Xzcla1+)K!ryc#@Y zaK_B^kDs)AJo8b@hu*YSY3EWdC7(;0o%l;a#{H`JsqtOnB4Ve+%)Zz2UisbbcmKWf z^X>J~g|~LyD!X+cI{J3oyM1Dc<71MaJf4#4_YA7u;g3_)g$%b&3_shXx@FTghuVa- zz1ezE>mIGvG+P~2=e%n+=%wm7+4LYsU3krR6{E@)l)X^yta_!^UpFUcscf;TMM%0a z-_kbhk|W*ecNMyaM4XHGD&k`Jv+k{~p{}E@826I!^6-ffFGLt4+claJwW#sV#;2mb zZ}eA$-`&Oae%Lna`OrhU>l%r&M!GU+rN0L#iBRjhfh8?#oF>VbRqM4)|EdNPrkwgV`Kwh|)VKWpp8Lh? z!QVeD%+BAIJ0p8>=G^qPkKccooO&R6U*g^S+WWC_&&B1%c8PsH_GV0UOnB`7Vr_8? z<3_~IjeS05*InD44bkIob-TIZ#<$m9H~zd47Hy1qCt>`fmvilpIbcF-L4tvzi^I@UJ3|H!6;t7M|`r7mlRl;AfR~$;`U1syji?+*hfp8Cquy8YHh*N9olTiSvBqil#?e z$XeC4w6^@Ad3n=rjem-0lMM=L=D%L2s9OWX{=bkZWu|v~-JAaCdKWl;H1uD!zjxiB+T5ys70XLc z6t^sVoOd=yo&9O%Um3cLXETOpyqfVzMn?L=^utfG9v^xneUzCtGBqWs?0#O{>X_d5 zmfuadbN9}lcTV1M-VMF`?%n9S|J*%(_spH)w?{|sy|w$++tI(>uDNSY=<#5A&Z}hu z>)I+tgsiu$b8l_BqV>dfuT?A-?r_lmhL7)!`s-m8K2jFFFWpgr)ELr#fo8-Q>#yVn*^Ou6a{xPW!R^?$3!-d z8q_$sF}j(kTakadKXSZddk?vvazpK*dyJcnVWGL9Uz?hm*P4%-)t2AP!_EHC48tg0 zt|nUfKsHPAUj1X=y}BRjmO?+DDEU`5K`GaC4fchc(Dm0H39eV~QaGh1|Crj}DleC= zC|+04I`56#ZnhKA!d9`;>c$Tkad; zzl-f3+bDKx?1s1j@e%j$-=Ck*A~7T3FYs?^{IJ;0_YU1Iy!poUsDDRZZFc3|tFQjs z@y4jTss#5FRnf+prSdr;pP73*evHTkNZzexZ5nTOy=F1%IxEwInt7X6o-5g1lv;SP zII*;@a=5p7{T10u>c2t`7;E+y8<`T;&9ox;s-iOJkgsE1y7zmZJ}6Z>Re4x5M>i+5sZ|wb zbY6BoafUhdj_>SdTcu@~Wg+_8b~YU>75|2{a+=+~@cM|_h#$g>oH59Wc+&Whu0nG} z`KwGNxdj`mIcS5VgY3Lwu6kkchx%2<%NVTSH4ZV9hA6dZ${%I&pzgkPwfn0-sd|yf z)YVetAnIG&t;SOoUHN83@A5;Xn>~i2f%yqJ?`40OH8d+It83I^OH{N_B zy2;%RvDHa4A2%&nU6o$HMtxB?&g2aH$Xy*Vqft+HU;7y2J+(=8&Zn*UsA5KGswblK zez~Hiqi=Iicl3t3;9T7!!*Rn#-4*Qw^*gFH>L0XibnT6e&1U;xx25q1El0Gk>Xg#u zyDsNDj%#}j`H!;ga+~rib+h1ibY?>f<4?v;p%I~1j2+-6 z+M*u;i_Tg7vxX>KV%$yOW#31R@W5ScsHvLD(5LalgG)L%kRp$}xcO7@KZ^hlvUZ4N(_N&kQJNN3i zYv11ZGJ600jSswex2qo4kJ5ak?`3+$9`BI3B3zrTDMpJXO8UOPL#?ysh3em`hE$L8 z=J_s2XDBDALN!y>)vEdGJIeNodg%h7Y&DbiP&k8qhLzU4PGjWgrfXU*Yx_lqkd8Au z9BBJV%h#Jui@fJF+gqD|Gr#wYq;^!56^hR#Nh z;iTbt*xR-sqtF8FGWFZ47Rm{VY@lJUP^?p4QFTt*-7;m0s~-Wy?xW#kk6Jd3vbW8-TbyA`pa9BZuYvd@y5FAr8gej zoD>}s+co(@Mr_FpZzK6I&6VI7z29gwXPWdzYw%FT^q^;bE0Lpm5^__&SJ&JBQ_xPC zS>;rZQqNLFDmMbbIS-habJ3#=m#$Z|44xetW2<#lMt;!5)7;of+Pa|CgccD^pKBEF zIvQ4NZEY!ly>hzsd3%SjqhS}q`q{5QOS)*Bq(7_uMKwxs0lB_Y75}LB1fSGT3!Q3S zZ%wr6!rD86ohzIRQSbjaKXQgRz6>*jCE35XFSfhvw`>n=FWbJejvo zeNt&sJO@nVONun*P-Je))_kY!hpb$|+FEr}m0!L=wo?MHWBoV2v&cjG2M|tAd0+Bc zYxh;}uH1^i^PrNdqQZjGy!N@1b96aFvb$#IWL{6-`DDPOuOD1UyOcaE$&heAwmRne z-Ksl#@BDc?^iKZmZ|*4Wj=ocT+ZmmH^Oqa1T%UWr zH&@nQku+9}*4{8!tmmEIMYM=2YkalwipILe@~E#PgCown#yTfD{tg@Bc+UB;t5f)r z@O$o#uFt|8w(aKgMw7n3wwLORe2uJ;e6!+#YO}V3ZiX?(9E+W6Roe>+c@H#dG4v=Gu#7j1#hYfycb|6l)QUkhK~y2RQ(HJ?;nDlaU3v81`Dqi1^Y zwW6_*IL7CW%1+2^mbotd=Hrw{{ET7&daxBZqD()x>%+4Af1Day;L4yr`?6Uh($ zWxiNna?mHT2<2_{R?TtkXTb|$S30WRuB-qW|2L8+$dPCW`bqjkUaan-`_wqu;<2@I z7+vjLFS$CpIyn0{=Q#ceQ#&fd);mwQS46CDG&gE)RB5BMh%0Wd!)!lk*=SmXOuMh^ zdWXyk8KL_?|D4ef`bp@wp$WzpjBgqg`dhlex~sZ>^G6kcGZ{q7y0&j@7KIr^yc?RxUZi3RZ~arv?HW9P>9i2Wq?TFi$r_L#TteSG)BJD)}CZ%J;hyx#k!`BruG zzSuVsA3gjux2mXBg}uMHNH?MiF`n%e9{6i&^6m!(uwN=5hLKGnn zwMg9z8)>rYd*vR*G{s6qFJxN0A2Q7FS7<&mYM!=yW_iid#iBQ>%)`u6%}XpZtm(FO zVXd7jU68ecY=;Mr(oSO*E_WXO%+6m5I$dW4y6 zg;yw8eO48v>I*vEh%8%XSVwdcNl+>>oUTD`qmy-m>&^nh{|vGiWg-uWtY%Afc~yJl z9*(H6mn+JOO5#1q#k-5n6mBfol0Px8DrZ%;KlAsDdFdZK`Reh{kCs0yc+mF2p|o~s z@1;&oS&%$A>2~7y#Ip$x5_%_gN*b5)XPW8J#wYpd=^3{(BeMRd6H#_ zHP2dNJ!4&ForkqawktLRw2s^MNnxEGF^-p=mz;iQPuBofsq=FLcYNh|-ccTQChYUD zsbSN@wuYsJDI6Au+OaLHY1mr(PqxF>#g^XYDAS zKkuL7n+d<#lG-&jtE<;nt*QLF;t;$y-qI$eElTX3D@FYaZ{|14+m$maTbq@fk(j>n zNyo>^N5>xQNxK2tP+oF*Qc~i%gum}^jQ=Ih8h0wTQJf)u*8RbW{gbz)Y)WmDW=h+a zw&B6bheIAK(idm!$oe9uUEX^I?-%X%tSg&TnOi;HTUgiLA5;IfPVr-ye5zvUk2 zKILlS+V6bL*~8i1In4R8vzIf%neF)7vD@*T<1@!A4u9B&Fh|&advE(A+j?6g+c9fn z>j#!X^BD7W(^OMDJe#MC<%VEGn7$ySAXpZx*Y?$nQ;$AKIrwZ%cJ&B+GS*CuFpAhe~p0Le@?)z1k!?DAW z?&$BF?;PnI3j%LAS3EO0)PA!naVPeOF&+eRaH}YyJB7W&@x%+WzVn0JB#KQ zK3niO?~~m0?3r2DGe)LYK3?~z%frgF)2ZL2oK8NSbR{t@;oJL5`GUWH*x8UcRrF}x7XU0V}geWh|!#isHf%Pzvtn(0X| zzF0K5FsNW!-j6wDS;-vq3vLu$_Y{;~s8Cf~YV*BG z2#%Xw|9#MW=?n6^iu0=HHT$8Ttk8X}Pc`f^z8Weug_z8y7fc;YH%v#&-&;zo?d?8$ zM@PA1lk+9l7S}bG!>x5o-7@!mSG22>d%jy4zAwBud|brO5j!I;L@bGD67h4mHT+}u z9al5gJe1v1huv{BtXJ62_FCIW+j8qwOQpHgq(%UHjUn9dtbVHQSV&QDi{KBnOEins zGa&ia$TMVjq+!y|lF32e)^GD4L3TWQ-E8mq+COVfR4=aTT$x(_Q`w895hWoWPtmo) z-34v(FXq0LQ=fGx^P3D?`o+iF9@RWJnl?8zK6!uAhl$DrPrN+7I`-Gtv9Yx=YhqJk zo5puas7O4YEKPkib!%$Bw9K@ZAHMY1lKyk%{G8al{}t{k9#-;Q+0}}wssZp#Z$bpd zEVS1y(t+~7lnLtn+BZVp)-8n|6JuCt{L%QAF(kBQ=#QauOoPnREoIi;_RV4Y9Rr-_ zomN*%*ErXBOz*nhcD?Lc>e}Iw!zw!?ye520#Oa755sM;f!aoeJaW8TQyQ5trTq(|X zotGWs9A0p}X5f0!w!798%L(&slfl$7bguETp;F&hzf`v-0Ws;+aS87!M658kIbvwO()c#u&3%~R6%IOux^3$cWO9pzB#it5q71ZP{%C+Wv zk)_N0EB(1A6_37tSO(tKDJ3T9R^rWst@nSAUmf>(?D?4Ld*|+Ti8&gZ8owzqA-Qqt z<rAFU;0}4y2`xjKWqEc?epF7w+Ske{2<$@ z_(D~qUayS}*61ec*Bka4zX{ctMwk|uR+%=NdYY@vgRIAF^>&-13N7=Ivj^JZZdZ;= z=^pGJpta<3XcyT9I-y)OvKTMji9iO5s$+cqRi&GZ@R)=pF5?_9geAvP{+4n z3HBsgzV(U4XO1-6OdUhJ83!0X)o+E@UlYmpEIYK@0+76<(6<;Kl{e8@eZx?cV{=(E!SB0x9$RW5;)g~Zi)M%D;+J; z>;5NvY(!i{ZbVYVsfc$Y91;7%dxal&N4eL!Vjy?la!hkXIQ|H8hmEz*vn{lKW!V7l z{o&B9#+`?kCsJ9?*$!4F708ym+KmN2hqmml=_f_vC}e?H=8FFepuyx;wdVQbc0< z{Z;WN;`YU+#e5(0c1&E%h1eE4Nnh`4gVakU?RQ7~yv7|J?qblxM zxH`Ww_h`<->=9X0GTUXy(_hiN-fr=_GO{h9b~LPGq5xb)bwG1p>Vj~N_u zGIn^}@9|d?T#4u;TZs<24p< zYTdVfQ_x$|3G!jeUFuQV&LNe$XAIYk5|hbnv;1x8VclrGY*pF5vbpV<_A6nZK(j4& zu5z_>f9*ct{>#1I-P>K^TI=cszO}%mavyQG311t2Bz$xD98gl3`?`CH+v@(+<#kSR zUVyawYuLcB82jgTuWg*|sX+75pEL&H}ip^zGtTbK~x5s?=z4 zUEJN>DO=p#-Q8hvXK{Cj#idYp_q0jVcyjf7|KD^vQ>K9lH?Ka=IluF*rad@)eW+Xm zDvFKDGQs&FxG1&YVgA*;ExF%v?q{FR%F6tlk(+)XJv4n{`mBuJnJ2O;vd84a=1$9f zpZhlNZ_w@hSTw!FTUJt0UDdayqxEQAFUJK}xu+9=V&zdq%q8w6oPy@#pNO}DA)vPW zNNSM(RD`OUsHcF_);6s|7ooeRs9LzAkO zsFf-=sDBNVX{6u8H%05g+BA~igJ{kZ<3B;#(==EGrLx@^&>bhA`ltEgyzkuCTq~R{ z9s2s@x~;ah)}oq2me$pl%6%2h%RQwpO3oG^F4|GJsNg~V#k?E2$vIoHk7gBS7H6E# zxR-G;V}ItGtbW=1bK2%M&+U}=A+H^u{vx?23sF2#4pvXlEY@xSHRkPlP9F|VpUaH*jQzkqcfo`P zwF}xGR2yUqLd?ZM%Y(3>Jtm2X12Zt&=r+DH&M_V_PB88=W*ToAUmABCErz9r3;K&X zg>I6z4Cq{TY2q|B;6D3W)laoonW^C9*|MwB(UN-6JK+(*A$}6^9;mMtU`~)yHVE>u z51Df`ORf#*{hhs8?%gi2(_f!tUtAY!yHG2vxm>NUvQ(TbUtcz|v_(mM(cQwG1q<^B z<(+Q&NbT+v?C?+)pB?G) zx8RxTjCT!~VYL2`?z2{;U8&*Jd(|Dl`qM^rPH9ne1iFO3z+cG}-xIAB4i|**QKAz6 zjNL^SAR0K8o6ANqCDaDe9JuL=_x|S|=VBa>fTBZD_tiSDR#J1PI-x4G5~}c(RhO2O zd@g=nbg%GJL1{jgugf##>T@<`pUP^S)g`Mo^JCV+jZU-7Uqz4~R%Yilq2499C%b8ncxJ2{XJVVgt!kwMsO-gthn&@Xx_86v|J7nSkq zM;cPg>MHfy4RYgSV_Ps|#swV-`V-^^r^t@xp62D|N#<$hzUI`Rgdo3ZEVyI8HTE~s zh6=+V1J4j^sL?0s?fN(RX?nhXneKu%4UCt+K>sLGbyTTWo>3ST`{lH3vFxI>M8cE2 z6rC3?5b*du9))LuI{O#o6TA+Z#l^8D^aJVv*)8zQcg<^euXQbVTI=2R?RC3s-N4G@ zwoI%ZS@jXD&x#6AEG(N_I-q1o@z)|xVMJj?E|eEvC|+N3p){?mw!C{Kzj}+MN$qM|ti8MAnrp6Slka$7Dm9c*a$lh@$UW=; zZ!Uj;kS{Kk9Fgf2g-Ww}q~?V7s4fBQ@D~jc#uTH&I1KDpzrY$iENCt`?@SKrA4Gva z&o&hrw;D0y3BwF~ z9Z-i2lxbxnq_4yW#A*>HtQ2VY>xh4N1^5PRCP>=a1J8xN15HZ^vx#m-%?6d4w?NZ; z-?P|QmenyC3*bJI%LzuI3o z_PDD&>wF6Wt*C4C6m}#u1Ad0y!ME|Wf^cC2aWS|Z;|is6nd*@`QqxWwqPwIE(!bSr z2Dh_l;|k*{pv|%vfl$uWz_c1v69yZX85S9YhJ9dt8KZxuYXNH7G2rgDQTva!w|2Q^ zvF4llG|-w9C}Gtf`6BsG`AXSCS&j6Xq(+KMJ4(ihKMC%M^uj}UE8+*y9rL3v;nwIH zWC~jdTiB({F!mj7rOpP%kcHkf?;GD?cbu!r9qSt9u-0F;hdDI%{?=}`##X{MxcZT0 zan0{4x~fAJUJZdY>33!C%I1{=%ZtlR6=TaLmOm?NR7RKGEE`;&Tt2-#uJTYNuX1-) zM0JEkRMWF&RBfX5s&!o5TD#N!-O<;nb=P{@d6)Zd2WrXd^d4q6mkVKNKAMQhK^pEH z0WP{JPLh0(&XYd@XYDO!$5+c1Ld=hGBpn+$T z(?Ll+R83EEyQhKewPT*sQa{N)yKaiLoip5?S7EGo)_v1 z&>p-8MpI*W9iWJS1nPs`B?AF1vynYbH3Hf1uLEZS$$?x~xi2elz}X2@k5T7b?`dyG z=MqPyvqK=o`q_SL^Mns21Ed=11%6vmjwlZFsoMeF zQ3rgUu!(FW)&&2?s}s)R4T8S$cN3l2cwQ{t934xa#Al$d*j=E9Q;b~>M3GIz?R=Z+ zbwVxE-rt+Fy5q3s+$F~qzlgj}TDUgO!7de@;=dla=hr%>yHk;_f%i2lz5C%>Z)e9G zcTWoPU-V22ymnp+1iXFx8_4?l5#&`?;P!d1l6JqzKZAbg=}I?cpLuKjP2fU*G`Si! z2fmOOpegJrW)^jeO~U)or~DVuo%jZ>3FU;R5-XVq_BPmo1oQ}a1m2%_0c73H!T4}9 zem_i!H^qvfN@+H(YxymCMu| za~59CPA3ic0(f2^3voi9sk6NG=ppwU{HJh*Z#TLV?n3dU(^-Wtl&2Gn0@e9!gk3ct>*Kn4ho!@t-uqG2e^+0aGAI%G7l6Rl@Y@*lG&LCT=7J|A`x zAMM%6bUKo@8M zTt)w3MvyQ4L&aC%uC{VASlSXdx~g3=(FNW!Uk-Pce$TWQ_F;ySLUb4OgwtZ5s1@u4 z;b!=-dj;Qw?BI056?9%;rEm@*q3%K}i6NX4xhTBl?*Oln;qX54Z(b|G18zT)COQQf zs8IO{XtQssyfvK7?huM0lwBxzg-wHn!~uU#Vw2*%BLUei>BRZaJ6sSxn@J|_iat7J z_;gV$nTHNXHnIq2CSEWNsC^(?TF$jZ5=kC1P@rYZq>Ok2#$Xc|X6`^a^b2kS0kiEr zXCXTg4L1rj_b(ud(Rcp5KwmTkUd8+d)$iRXMLi;`fzxmahtQh>4A#)!1Umv1+85)! z39C1Ql)@S8062^ZrM7daR3wkb*40&sXozyG5;mh0?w4XeTx8#hN%=|6qsR*0MfVV% zC7_}|NRPSI{#T-%v=2GVu6Fg|zZae%kK0f1-iclWLg8E9X4n#b(?B2G#x(FJyO2oW#nFq=hVXRiFI0mcfj>gs$Pv^^`3QWL z?F@BYv4g+Gt_yeteWV`yF8Y>uCqs}BbWXJ0_t5i9zJlyXufgUy43b--1LdO;NLS%J z3YUPN_kL0djdWt`bbqQ9^bMl+`pE~QYVZ3mG#FL zOTkb2`oV({6Euv+_atCm!BzJ==nn5B@cG^KAE9KtUox6@R@@=J8~2fUHRE}){5WDV zx!S(~|A+gCe?wQgK|&#KI}D>H-(Y5itdXxB+fdNPql9)z$NSB6A~qZOz>Q*3*lEZK zw2qxdRk7=Zi^*Dlm2|3m7#l7)K`(=LdPm|q$%pzY%s5;HThLSFy+A0MNKoKzJ;}Kb zDH4z%2XdotD0dEX<0k60^Mc3+=3XH>*4rMB^cLa2CEqOVkSoN$td4Wg6IeO39q-Hi zbSI14RF=Cy{)KcpkK*S*P3i(Q&r`tEOXpzqb#h-N&_zs#R$2crV(B5|j(1Ps9Z^h% zV1E8#%O`xCW@_Cy`Wf+eeLn?<@2eOlJSL9yDKV7oE-Xa?%?o6D69n=8#ZqYLV z=Whm3f7g+}h1Zz2qy3f^ju`er&5+!dZn*q-?km`h!Se~LHI7T*N)6}J{D#+rE&v48oG>a~Op z{poEeI_i7r+bT%F7tu%E3+R^095!Gxz^f%N`pVSTAxrqXAy4cn;w; zhROnupfz|Y@9%)e|6V)_Gx%Wi22_Q0Aey9UrNtimzxP^~e>+7YNndRfg|xgiaFAgkbOA@JPBR zK337)@!Nh+qeGHC?}&ZAJrp5)7dS)JNgI$O?5p?}#OZ8|r@$lQ{|m>%TbPHg<#?2k z@UCJSVT-&K=qT>BE0{lx97jcn#*;F8f}k0{Gd+ZvZyOGW2$ifG9^otWxzVZkFldf% zQ2s7pkkE;G(Wjv&*euF}t`#f=3B7j$s=!Ivb5RFs zF5`wi;5WoO$sJ4>zKK_Ws96D5hb)sNqATm}q1RAE^iAsUHgr^?@v3>^&YrsgIWiFM zD&QgW{o(v(+!gmz(I)<8ay1u8=kc8ARi+m;1Nnw6VEpV*ZVqxpFrPkYvk=Gm6ImW@ zcGjV+SOk|iS9>?}FkFwM`6jt1z_W>Tu6tl4ISQM|3vtI#E3vNZE@lIhzE>>2@*4E-nl6xv^W8@f-n^vz%<3R1BcD3OV!<*1u~8M@}%$*m+_ z2+H9!&kj0F@J@Oa8s#6r3=`18f8l75%KZu=@c?ftvK;z_1+YT2Exe7J13l*E2?p|` zp?gS2av|p7pM|=hW0(y@0>1}4jqFEW6^Mj=AOar6!01GxF*E|vLc{%E{W57l`!W#W zKI%OVff_NtKmFbl?@PyAA|KWqJtsY zdEa%AJB>ZS&O{`z&@88r#s$t+C>IcR1bP5dR*7>7p99v6|^qzJV_@Ch0v46>q-Yfq3%rLwV zRxsJD3R=vxW@iHx{BX1vng?!~anK^9lGlm<9-D~FV9vo0iREILKMZLBXQ2;7i$pz$ za{Lfa#cPKh!sWurl7^yitSNko_**(&7=@4KmkHAGAJ}64H{l!6E+Gj|K=s1b;x(d$ z_!+1O9STPLSIIP>uFGY@Edq78wLNuHm&IfodKAPYO-261&BfJUGUU*Y9L_9Q~3w5G~6tl!2ix0j_pUTBYb2L zw*ibu6kh}XBAYYM*@a{TT}p?Og9D)fL!h6Jb~p2=-A#O3++Q6$PgCcx`dxKhYwrNC z#v^+<@KwHLK>Am8=!j7%i_XlPtNFXtlC>YgM4~dR4=kZ8o2MVtrhFm%7E) zPc^XZb^Qcqw0pd_v(MvSP93H7Oc#0xd6PcKbwgHR-|;^@mcK}FL>LeskWQCQkR*wk zNM=aBNhsM+g-iKOovU7{F{p)#gVINmK9Vt#AlX^PJ>YVEBikqWAg&U16UU3&2^R{k z2!tZ9Xn`~@lRR429>-353eZotu<>mhYxy+?t5%hd zEYp?_DxOxnyePD&tf;(jO5t&!kIc=vn@wj;%x;r&CHHZ`lj5%BojjhZoYgzJF z$>1_kb+PT9>x_Re<)kMvskD|^&h%t+p*nOmKTIN33{dB2GPLt_30j%TuY9abQrwZf5lY zH_qTm*jMBkl*>+GZ?SElo`@PdjX&l!B|OA2esjSe!F%C3aeJUiza~GWP=UIXLp4V| zLUTs*2OxLSH2pL$)brJtI#Ly??5T(YO5pKgn{b5SF5v)dfu&dp!hv(}1bS5<*w@~3 z!PUm;s6S+HP&dpf0Q&N+Rn04sOJ^1r6~+|a0ItFd`COhfFDh4>vnwl*@iQF)ipT!x zri`M@Kz3q&qvGt+go<6|D@!L8pD5f@TwR`C^UD$M>p@KdC#}Dse*q&e8mflU&`^P0 zTBJT@C^u~l+G#2@9MDhD%>=#LuErzgPoa;(k3-^5bYGxc-L zD$ODF8O43c8$mYS6nz3ap;Y)9@&LV!EdpJSJ@7O3KK+{9K~mIf<}x%9wPNi6{bL32 zD4)O%;Q#T&g0|v#*%;*v^$|_9mR7e_C#%k>GS!W>+jN+rgCU@|1I6@tRjuL#(C9sr z&6L@sQc0pHh(8h+qX(hS>=QbMI!U$JmF{S|jUA!qO zxJ%fdhzF6kBYQV^74}!~RAaujiTbm0l2WC5r5XX$#@m#nY>)UV-+)IUW~diO0KSd^ zaDLW9sX+74i8(|4M>@!f)N^_o`+!>xuR^w=Z?Fq^Q(^@FmSC2M7Iy*bKBB5qtH2X# z4m6J24ZRG18QK~M!%)LpgWd4d@IpUKhiVD+e5DlN1m{ZxqTzxBehH7oKcHP;1*ZZ? z!!JI_^TFA#{$X8H+v(aPHP5QeRShfpmOU!DTeP`gU*4G9)a;6^^;yd@KW4Vee4ZiC z=#=J88JIloPxT)lN=vz(3a1;hx8|QJnOE5X%tf?(WQnZwSh=IRxNfTZF^R)Pydfg5 z*dSH|f81N#Pb5f;YNLq>4UN=9`=ahO5QkL-?KT_+y7(u?_Q7kz2SkpF(nbCWjWKC7 z?_}+PAETL&6%yjNl77-~DIv!BEm05Ch%EAb@eK(msHeb%G@dJA`!KcCVNy@dC;z3Q z*yqr7bP>-&C(RjkdnSO$<-Zh}oJ7XLIlo|ug)#fc` ztLd2`RXar8NZDOZNzY4g@p@q`e-e?6zeekzTg(vTUeY zRvA}ur)*|vkK$g1BlDN$4g>l_I%{86N#?q&o>{S3OEVv)3)3zpkN)HM-RcjSd@XfF z`h;vj{*RKgm5-~Xmeh(aWvxpS%l1}nwcd6{1m<&cUJKDB=@8ji$su7Q{u2Hc(OdZ+ zU7>kXL`GECnEo;8k^93J1ot<_>A&h88k(8Ehf)ztgSQc*La!K4scq7Z!sA33AnnZH zFBa|;KM{L{3B&|sBhxC-5`gk9dQ`p>fe^Zo>Bj|gW7s&xO7)`_QkUrhP_^8F^(6Gd zk>ZI1zmW0a5XgvH4nSyQNZQ^eg-Vx81r7N=3kvg@3 zH4Y4VV0HvQ327244(%JVI5;#|9J~*>eOrZ)!ByrKL7xqJ-Bs08`Bn)nOc$g9(uSF6 zfv-TfL#r8>Z0_ytO02ik{j%M)E(c!d6M&ciR1Wu49#kkKc-S!$!S#;I3QROL=7Qpu90RQx@ znzwcB936d~nW3mbELWH{m$lWZIOQ$bE~!iQR`FZY!59}Zxj|y|h1feWeIw6>hM9J2 zadivTXVpf{CS3!=KZXj1^$ zjo0n(O|@h9LA?C{YTW;cJ8g#mzx)Uai`!sn=aHbT{<}NUU|i8$!N@-VM7L z)+r1M%@4k1o*C4^RAxA*f3EAMZLT?}>a38;I8g(^Qr<6g2Rwj#%Cx2n$#Vh3Pk4K~ zL!G&HuMM}Jt;w)>t24 zFt2l-FK1u&q|6oRqtZ^Nwn}T4z96$UH?u)#sUwH1nZS-qr_bel}4 z*r5EVYzllvcF{cIEIggo1tdPD@2cNS+Nt);5Ada6-cT@k%y09}^7kXVGwq<|Xf1w% z=mfg0j{t$BlWd9Nttw3G)O|6)CRvc!e9t^NxJ}4_&9HbU(`YHo7WHf2=CyY(Kva+*UIwTQ<6UZ$+P~omFU+sPc5#!jjfS;|kRIoAN&Aoz0{3TIOkT|I0p=`CrDH z^fmxhLZ+Y3tj_6B@T)A?vc&w7luos?x7*`e$du!`l4aV}LG44rLid@+ z8Xs#Fsw0Y(iYKZj`i5pUyfW&3Oi&EkAP{WOA5~lxKj0rCz7l?ZrBEhbDP~0Vg5^9v zJeq+6Q-Cu3t9!0ztGCj(FVK-1M*HYR%xSi)1{;TTfGU`d)GYs3&rVk^pw5)m`|8Iyo;cP69?;SHIQv~&UG4aq0hWyF3)SnY z)2hc*Pp)RFJe9`Er1EBEQKjzUb46PU=NItviM#_jX<0`yZRrJRW}s9*neNFLl+`Ie zvADD{*LuDFl}qjZbAj4JVEANM4U{n-4fVRF>T+40unymf+~SPvTZW<^GygJsnO@9T zs!iZu?`BuA!)YI3Uje>Q$2Z4CXD`XG-avG(pV|IDE~#mpr6Nb{%M92ULHlSW}u^R9YaI4VA)SgE~W zGzG5>{T|jJ{7u-N&?_OQfx>@X@Vt=rVUZEBk&~lFNA-&A5WYG%+^EsCQVfs`67mIU z#BBZ#{#w8Q%fX+Z4(KJbhKloF_YU>QJgvQrd}sWh11rcTR6|NgtsqwczLePi)Az%7 z*0;hJuBsnW%UcS9-m-U(Rt#2H4j9JfhfzqICXdZkI`@ml>v+8`oIZ^(& zwvEpObe(9x)I+-bQ5e5wUw$BVVY8XWApK_qYd^)+X19~ zLyR(-A9*(XXK2fi&%rB0tRcd%U!nOSErTx@C+cdH8Pas&2Eq*PW^0fiun*9Y6Il{? zL|&31qKvL6cLDcBEu43Qu_C!eVu6}&QXenVU1Z%ytr_Qr)quMTH} z+Uu>V^YU@B22zQ%xs(#05b*?II3L#07k!gmAM8@w{+c}&fn~g9X-$jTrPjrDMfDTi zasCgKgd^d%SSO-4P&>2}Kb0iQ@|CFWp6PbzuE?XY|HMZ%_BFZ}FKL(&H6!9@h{hal zG8tPKFB{dSeB%~_O*>oFMdlFZ^VFz?+s90&ebgxW5PgQeLdVfPX*ZQhl~HccT@MF) zb#E5tS^?5(2;jM1fj&ZZ=q!8;J`5}2qg*(f4BX}t?)?7s+w`y3zAXRx_t&xC%YSuEd7qP5I>#FC4bUIZ z2%QsCX^NT};ki&|_|ysG0>x2i=ozS?KDQ}wj#ivKKg7iUYCPX?zCj}kRhiNRzO^O70CSc0NNoI=v z<;U zzCt!2C^`+5V%Jd|9R&Kzw7S9wWF}kSsov?Vr9hpApDRg|Nr3}(ll+?;QB*0f z=~z?q@PDG0#@%kbs<9=$FeWRUFkb<8O}D^~x#64a3g#EpoGkJ8_F7!9V_@AltEc8i z&6Ap-+ML>D)db&c%3>zg|FdnyAkG=LW*NmflWj1GPk)-K|4#QE^?VfxVRA-0g! zVap;)B9$@cV>>k55_>c{En;6t3nQm)CSN0J&)h9!Yzc(jM`E~0j^waWv==Xwe zC%*ZFVTDg_5ZnpKRtEfx019N!&7DsRA z3)f5cC*KU}FjU4HF6pQ~X6zN3)!=G0FZM=EeDvVR+HgVGkC3(@CqoiKqr-lM9S!?C zbY<{l(>+~J)mo`aSd3pl$~iZ)fL2ny$P%cZ`)F9 zM_D4lQyW=wvJi;&vL|NjO_1t5Y{?svFC_2z)AaYTq%OZ&Cw2b4HrbV) znCmXxX#3+|jxCnds5cu|nqP#x3AUOV8fIw(Y7HQiR_U6W@`4+N2Q`Rka4u}2xs^^P zr}@|5WmFSycSn!^5jp^)ZGQFMYI}91r{Wr*}=Wl6Y$!65rKZ>80t4O0&dBh zEIzF4VHg&2yuq)SL2=9DBjS5EbVh$@@FT2ANN&(ypmwoaKV8>BI}Y5$6O<#tz4D6C z&s&GuxIgqH@|=G?Acb7)0h3+Og1mA#YI z$#`6cLh$~b8s(Rz|0}v`Y_LA=cszxHpP0h=6m(rs;d=K%Kwzs6ptzT zm~YMPnQh7pPoI)HI3+LnYVv={fn+>|Nxqz%o!mC%Vd~)Yn#>P*eM%119P(V`>Vz$n zpLK78VuBBc3=8gNs?w)x=4u831$(mojp5&*Kv379^QL$mtJ29>K8|%^#Qx3B9yYgy zuDDx1xQt&GUmjC2w0c+VW&2xKl9wQx&{Nq@Pz5{%?Ss9=Pw_QkqoR%Wm+4j5t*CWz z!HxGd32t&Oeqrp(2Exz-rbOK}wNSYL_>hW#BKfjNEj-FU%)1WM3n0^!olPSYLN*U9 z3N#?Q(}TGm2u$o3_Lq`!k?NaznC7A;L9<1@UC zco%F4vIHt*rcfvRe>?(LLcOxCu=cN-rqwSi7gYq6k1vy#J}aJDw54EFz9;u)&Z2Bh zR&K_H^rdN{)coZAe;)q6^84d&bxNl+aaObZwT2XeV z(r*d1|K;}j!vKTfJ0io6@ZJz(`4a`G=(i+NF-`N;kQjVB{76((Y+1wgaq)4*v5TV% zBK#pSrgH6cr9#?ASj;NGn{&uNHok zG?JfG9#spptahxfx9+5Nt>%PkpQ5Ggh4_;267a~)!DF%ZKpj64_HmuqhO{q$`OkVD zyG}YL*;m<0YwD`6SKcV^UG}>qqd2QbP&A@&FnDTcUN)e+ahX`=QgDOXliC*WYwjfT zQ-afGq~FdW@_U!qYIeHYKo^8jO0!{6(B2Sj=;h#qpcxS7~xydK#5g4RQ|8xfHGB;sy?der~Oy+ zQ2jy~CEqQH1_Yql=uoJPnMiM@I#SWp2XY>HCa~Tg>+9ud>^fTi#^$dvRM%FVEvqS6 zRjeplS$L#iM}e&1PyXHfX8B2ZuG}#>bk@@hS^DnO@RThnvB0Z3G;>PMlA;!s@%7tD z2fA3YS9QXm2tF4wKCCXdBj}BA>W8Wkih5aNIV}4Dbo@s^XKsWzRFuR|!k-}{StBX& z*zH?tl~oe~ndN!O)6%!)Om*+NUhX+04(afvf-ngqyQaueJ_X*@bWNHzOrL1@VHBE= z1YZs99)2sLOXP>hw8-HNUWT;}K5y8fu9mhC%)unkL{JTpQ+p^r-JMy&Ug0Le$B_Qm zeHxt=(!&O^?&&KO5(-D&Ft%l^vyWsxNjMb8Tc6hs&NUC^aK14v2l z@|fI5IrFloWkqKW&2XeQO@Eip%gD{pWQ+2C7B8)y; z^hPh#cG4_RT>}n2Qr1s4OClB*2qyza+F0T|9)T|9=1>#7PaJZa7u<92l^2vxs`OMZ zwADBo`xNw2r~*?8f+UaSt5st(BAq~Q)gLw7HB=e;7zL(5LHXwCA(F7@@bBUK!-oRw zpC)Lj{(^dxyrq~VdSE?aKRch9NwZXEK(fQLx_bKmi-toMSxskaovh#q~sbe~n zaWK6qQ9w$te z-BeA}9@pR1chmRLozVgeIDam9Pz_7>n=S>7HNP|OGT#V_HT5&R({@l#Q#_Qa#cu_NiFf!U>>t4Fzk;^ISg`Mw^D>DP z{$YVtfCw`M62W@@N#ZRpj5iu5v3FPn)*s)Fm*TbfJG?or#_l3XkeD0B9HCMJ4g43q zZ9E}vrAy%K>lji0&2Fg+s*AK4K~>`)%f9OWDo0g_$~Tl=D!E+zyJ%!lgQ7=;O^T2r zTj5_tPYTZ!4k+AJpf9M(KbC*CKwQ+ZWMjp73u&+QJf^vVGn34Y zgU%xsY%qZe&0<`7Qub1QOR+z{ zeW(IO(ALOzkc6-XWM9nWzO#)1r?NfWm9hlx_-FXqc)NL)x{tWZoUEgrV_yAw`<}Xo zwrs1x+OhWUnncUf>iVi(fKhv|@@@#f<&{u4{W;_+YjE#4!-&Yvz!7llZ`_9%NG z>mz>zvJZHG=C)B$ujr`!PZTlUY?Gx%eHjVAA zRcgIn`@8m7?ccS-K#j6B_^D6rDo_J4*4EUN*KDnsSfi}*Tb^5{TUJ5(xvut77~(F9LAYe-bRwhrgB2^1BIM3v7bf!r#I^ zK(TX8lqPyEIxboQ9N)FVSAfudOZY(eMwly<17HP(2Q$MSPNa zrPWdqIK}sn9hNB!ztHJuK5`l9j!=M$+ymyp3!(EM8{{aP&HQ2-F@xx<;6@(~_+d*a7a2vp z0TlO>f&T(W1N^`>{{`O*Z=MJ97=V5%$o1KI$N3NVYT=A^QjTcn9A`W5r>Rbb)9QHc z_yoA^2_UgxwqqTrpa+3*`_8%7)!x0yec3$~q#iVL4{$$pjc~1Yop-fxk9YgsUA(Qm z9`A48WdD7CSKztnK&~Zo$w$;bpz6PwNo7W}9oTN*E*-%==4M07p+xutJQ*oMx}wd1 zKCCNl!+E?fyphC6kRcEanBR%QETK@O5lsi&DWkZnI7a+Nd<8t!IFPoXm23tH5z{2! zB@ZPRB_|~lCEX-7;v-@Qc5~p8tm65n_HQ z(TmrXw-qK3Z@Ts~4n)v?pzw&PYI{6T2RmYPT$Y$graHeWR z%>$pOkeWh`rPfn@>GsSNdI&uQWF%atqL?0xk7>uYXO^+Exo6B{wwyh{{$>|}yd^u( zjC2I^>o52wJQJ>k7s5S|3vdizsu%&qX)MwXEkaVzNPG?c9qo;FMCYP$s1)gex{)2& zQEWWWNA|(r;BT=LfW{aOKA)xdCM*#X0v28@ejfXczDEz@=kO%F1P{U+@P_jC0e#H_ zYyc(%uYLfix^IzWtPQdm9)gna0L+LShwcIw%PzDQc?@GnC%^zFKwY*FuI9FZT=R!) zH@G+40h$g=IV)5T52BxON9emu0@R;52RWcKte0KFjieuN^XYxed7v+D!Id-nxlK$n zK%mH{$FUB!klM{egB+eW%zIkGsMvdK88e2y!L$ecrn_KOkptCHKc4ofOM$R^8-?CFUF?X81!VY9HHizxb{$e(> z!JH0SNY~L1n9iV+b%S%Ue4wlx&0J$YQYNlDcaar=yr#zNQ4UyPjd0wrq|bd75Q{FckOSS*!` zfx@uWTtoOX$nWY0H-Z%CVwhqZqYiF3`-;;rb#OAsKzfAA!QH$q91Ur~_bcc*+m*Y| zbY@S&N|5Wc29ZJ&*cZ$N&dMHSWKe&u4Lkvw3;hEfVn2i5+qk)qpH+e9a-SQo_;t z9M*zlsNQHS(-I_VS(!9sH|ymZ!!w}8Y$Z1wXd=U*cw{Mu!xByjje}N#b?`A@<~?C} z++Fw~JB~ermT)5=64pW6(KS#ZI~Y9ADVzWu1ajAA!G35q+zv3iPjYMEr9h4E2k&7O z^aOQ7*B}&B>n?)1bCm_}22_nf@)FdUdkD9LtHASp$(}&3f_icRmjn{UBDi?=Hqx72 zi^`x*@E{oYrl10@KYJWz*;HsXcL&*0-MD*9Ds+zh0MfZe!TE@g zy94jzBB8@pLPPBqZZ^|ZD6j$&7gkV1W1T9;LbvO+2rO*oY5R?qE{ z5YB*9UOmCPQyP?$>q}oIAKwXe}JhPD5w0U%34U2XZhEaXPjMd<@ECcf;$E zet@C$gWb#tL6TbrASx$=ksyb8$V~1ZXchAvWanLCJ3?7(0sDuIg6g4RU`F=?^I-zx zffCt=AWaP8dY}^S82H5dg7mxgAa(8qNTplF&4tt0$J{Hhvphr!*%YWb*A*(}Sa1gZ z0!FA44q@JMkKp6118u zLdXRrgXh;6WL7EhYj!sB6e1xU zXu8k9+u*irL*O<#1NGsyf{|+k^OI&f1MLGWT0j8pg}R|+M8T)GROUsVeA zWG{j7-5lxzon{+zTId^@6v8*#bP8fM(quN?>nudy$?XYwkOsw*Lm% zg^hrs><#BRzA}DNu^LySuwPi!Lm>ySTd*cP}iyxGWBZVs+QFjoa9F;Q#gglD0`^GV}Dl zd(S;bcqz80`U!0@1K$vv6BV_MkHxsU4b?azUKEa?Co~jR0#Q>Y>=XYcW5kCDoJrwBUB>EGtgRN7a>P9~m$I{m+ntVV%j;A<&9QB0M6;2@bzX*4_m#+nN zK_m17p9wRmzxd&zl@AenkSyvv){Y@Ucd9W}i1vvFhkYW|kG?CG(DBq(>L&FEe+(*u zjS!=_hnev*6~;u8eL{-ZiMk+AxRz9LIT$T#>ku z`Y7zjcrxL8dr;@OUSf0l3N!+B^i`@4WfKNN+w`7z8JuFpR4!JK|3n6}^#yW|48WaV)LL+bhby5(;EYeHp4(;4>!He2W&BU1d8>_1il}g2lC#iKJSPMuzVZ z9n8(M$qs6=Fo=Aj8o+mTTbxUVQ!m9Q{B3CV9)UvTY1DlpeMXqhCj-B`jOzDueh{mR zDy*_=s8W6>`r;HS8Ts^Yg(6W-Jrd4|O-L=guP1+DCZCP9BmoMGoVc6{BAqCe;KuxF z6$gTac{gFfX8VN95|YI;uo+C0FIgaj3qvWT@CK}`oyEm;G}TaiE5x9OzY*(*1*8xo zas&A$%EaElME{^h5h-G#*<>)~;5$=m#Q_4M1V)RlW#X zB_@6|)E?i1>Gc`*xDUnd)B%hP%>2-7OyO_S-Gp3dO-AqxIl<2&|6=@ng_5N1lBrH@C%%6FzC zsF6@FE)=q%C%Rc&L=|9m$S2*!uC$5_S$T5wpcW*dLFC{nP3kY^F9>?nHnik_f>g*Mb$MQxKspP1#k&|4k1#Ht^5f~XNs-IfSOL+g`zjmQu0&HjJb8sENtcduBOy3CDzWoEGa|3t(1olP#*3ST8R$!=#D4S) zQjIPWN0L0`IZlSkY7Eg*iPRUmhX}oIDipj&c|TWED5y@v7#={sCG+X;sKs$4Ot?S| z5nu8zFasVCpeoBW!kGifL-r`$LMRZY&?||RIu7leWyoyb3Vd!F5T;?wUBLv~^8nw4 z8Yom^ERKbh_#JagGw~^ArH7=P{>~33yU1{%A=F^23o~Kyrg3YjrC`w8K?A&BHA=IHU{G9AZ6iV4C#z9X}in#Wb4HqnXV z31J0Roug>YN5Wg|H%?%j_96X9B>7M5Ov=R1!dpZZCzH0&ifvB1@cpT|LN(#E@P=QC z-mIa@pl?2abfcfcUV23DCAYD^xglH?{E9c9Y=OsaEg3?; zf^||tjmC~Dio{S!7~gX+TaJQ??h@>lI#JiD{n#^f6>kYPtfAkbq+20Giv}VQ(x~>Z zgqldMh;lLmY{?1KEFlBy_Y>^?>XWV*OLORn!cg%l`e_5$850G$aEdy^yZDKe1bdpL zu)nAC5#m+qi@2LkrGwC`#=zb&gFo7c(W<9M3iq(v2owFGxH?@-Baej*;A2=$r9<_% z8`T_ZXMg&OkjfQ^U139?<7){)T4zOl<&iKT1*9Z{*nj3EV&C{fXu+SOe8tiH8q$@RsekDf z(87WhiCz3EY8>onFJURxHA+n3S`!`d;TJ+Lc9poER*;pX1yBbK#CEvO@6>N#YPcZu z6JL|}uzqSD#{`g?LN#$S=HQL+k8P&Cz*`?i zT2a%HzuJ;&Cpw|OD;27WV^K$KgdibCeN`(CSaF)gvt^_g)QJcFXG!nVe5df4*R7f zjO+y1+J9p%S%Ve(cW4baq+($sDDdqcus8TiEXUqCTWA37KMKtB+Y#3Y!v0Jz)`a)Q z%>N5tL=R|d|3EzqhRtBcIIB;*u;&~NYc3eC6+oN$HdLE`M;nMxeO8DS!c|@;{L5>F zweYhkF_$F3il|N6lI;ZC7O*s?Q}Zytw!@z04QAb|uzFU(Uws?rN`$qs13T%3up!r= zrwYP2T=8qFCJBW#mrDhZPN@4iWDhBW<<%VCh_lp5jPV(mg-%0hnW0uw0|`&P{!|zB~I>Sjf%qKth+y|f$ybv|g75j+G@Q<_>UyD(&#xIL{XhbiErJ%!Z?LR0! zH>7Gp^}9C4TOTMu>(Q&$Li2bwb(Fe`_oAo@)G!UpVF^^!ZU_{10Kq~Zp@KI8?-ehc zMZc&6JESk_r;+$rxB+G6`|yk%5@rcye0?EWxQ%_nB!LKx1rsk9Ch;}+Mf?ExZ`#41 zG>Md9{v;vBkOQ16X(nAR zy)G@4j*;DvJ&`??U6t*SU6O5-HH8whU3x}(Pr5|fUs^+2PwFTAD7ho~CV3&5B^d(F z_-()sXVRzWCh%O&B^l7iZi_ukN0Ao$2;GE^!Wn)Y9|IoXrQBoaFjMRX&nQn0_?+Ik zI>IN}5v;Av5INM_lWg^Enbv=;?X4#*oh&Bv6tmMb-&9fgXC+s0w4zSMyYj^H>d-S> zXRK%JVVr4PX}n~t0R`b*6^WIprj?eBwm%(3uD)!XASYLu)yNUur1sa&)o=8vXSnS5 z)PGfgJg^4%K>rT7;s46-q+yV+-Fu>5uRG^8NYh&Fuj-`Sr(hJPE-DIGUsK#$}K85Q<7Oe&QjM&bK9syX|(DeZ8zV?{*!_O z!sv*S$m7sw36Iu9$sz;8m7y<#)B$4+JG_r-^VO}C_n@>fi#|d5h_CoP+!MAL`@@s$ zx#damh``NmV865Nxz}72e~)jAHT0&qhT275&_Rg1cak?!R#CU~S`VFrctbm&oEHWM zh9-wKif9=rMD~tq6ZJXLFY-tDfUxZ$gM#7$jvEB;VY(w4N;OxWDj83!ursN{?e$c5 zH*gJczIE(%409}TTy?OHznpT{U#^jEm-}yzhV8*FW-sANrmb_WLf^^-_^o;6VrKBob?Y|g% z%+r_}G5J;7SLqV8&FXN)eaR(~C|KAL?oQ7A_CB_w*6P+4)~nX0 zwtn^wj$O`3_XLlGo6VnuJ@J*g1v@DTc$~-dc={%|jb1|QJDgw67PxD=dN?N9W?TAz zflX#S3RO8{{`}lw**O`f({BBk{cX#ae?I@4JnEzFL;AaV?_RvU{C3*Ah40ND51do&MyEkOklQ>vY>u{EwoJy(28!hiK2#eb>$vG%zdY1P(5 z1%@>V4DgNC>Xbbt6(Yy(a9y$o0vEoxa!|#^@_FT_%M&W{E3ztO=Ghiv+inkb?g8`b z2=+Y}D(rwKP0w_fu9Ul!C!wX$%BPWERG=;-HEdpFXqA=Kc31CSqhZb6H9OawP$M+9 zdyJ;)?@@!o9aQg;OTktIo56Fy_1p~v83N^OYF}b?On}0gnP$- z7gv$i%v1E`bF#Yfo${x6w3P3XJ(6CQEM%hSzo3s%l^@LB27i7V#~9n6mb<2;ikHUI zrA>?d3fJVtjEpjDf!Zu zkEtoy*NWa$SnURWfaEvzI-j*c|3)0Dwx#CuI(y?!B%E#_X_%AXRlh;qiM2*mKNx*D z>_DL2_l{R<#aG&2IN-L~Q!Fv2sEYl@V`Xj1mX*;)w=uM$LFGwPM@zBwiM@;Snyad( zAA6Fkgn#5IwVGZp$&+y6 zte#o5MpWaluYsKnXLMoe3$kVOCPB`6yH4B9)KigS(I!ght7-iX;C zO_kqNc2zIZczMn6n&K7gbx4yBrS1#L{)&&XF4D`4n@mTvMS^^fBkmGsf@7-fcgsxE z;0lTHO3BcoxA~KDOR^edl%zK%?OvN+KYw%Z z-SrRGKLvfONE?ycrzG5z?Yt-m(tTbF4Ch0NqDEG4T05`qt@@K2xEf4qaJhbET|?~; z)l;Jr!zKkj^=aqzTHb~pz+ZG7w%s<9$^qrbIxGt)>t9yYIIa9uMI+Nqv)i)Hmf*;A z&U3%<6tjNd6`LbM&5eE{X(BIGzS79_D|~AQ#DuuR??-#ZMAvvx%N2LJ?y7o=>dmS< zHEv1GoS19TKH+tPw1x_8x>6;*OI-l3$N-1QI>fTY+~3Ta>sUYAVx7y}b+}w%A88}` zE(=ons&8qOT3-9F?z8T_uBEPrcC*)L%`EjU)iC8z#UlA)*$U|ZNiU`its_sx*1~9R zuqWPi!`|4s+%&3uY-vzYd0y?D{+Z=zw|{K@Ci}W8W!dNCPZ6J9CofBGm>ih=`s2Kh z)jw|g5cZ+_hi)G_f4q_0{&VKnJE;X(Wrfd-lWhIidURuzzxTz!Z5X}jHQ&_9iNBQ4 zros1wPw{o@x@$(qR7O4tuI{JN)m0v5XhH9OWGgVOtC(c$T~<<>T)MDql`*^geC1Lz zW8H4cv@4vyxpujyBUAY?yN{d6j}r7$3h5|WCbz2cw5@&D1vCmRkL*zGUX3bo`g(!& z8z$^dcvZimUQnIjnp3NVM2-qxWw@uUuXHkt#Yt?OtJGc}7>1?R8n(6e#m+SM4sMVb z0p!5|`9b9&br&#-&(jrx1!E6Xm?wY@^d`6-1l2&*S!JB^zM`4J3YGF1@+R_|vU;*s zQmG_~_E2*1DW~_$bq=@vW?o#;qik{UwgNualwFXyI%87$oHXyW{i%mj*QD-FJ)OEZ zb$II2AGLq9{_gsE^ou5C>!(4MYQ)NL9+s(wuT(YnWKKdwHiN@eI5|48r2s;$zV)KPZ1YnSbB%SUkhE~y+} zX{`KUnrpsqxo*8=TV!8h-v-<0rR|mNye-sz)_&Hp&Go{Q$4?>)r3#f@8)=vvv@d*a z6|p*9JFxDg_+|B%)ZZMxr0((BPhxvjoe&`pPBo0xZBTuZ?j}J(Cw8!VzAM0W8u>4E z*am!CaSr*)+?PI)PgEwUPOGJwsv4Vms``sc4_50}ia!-wVgDQjrsH?8UM%-orj6A( zb$Y!VTIE}`bG$aG`zW``S}V_ZPzyI-V)7ML1%2M8aR)60AY2Bx8pJP)Re69F? zJ-tn?v8ZZgl!M~`kknK6_Q?&L7e23wfAy<1y3`t9>we9hv1hBjiSi1o8EE#=X_qNi zN==A*9fqpbdG|9{TbHlviSxbljB}ZDpi|~da@2Orw=cAHu+FwTGQT(X0t?41yBql? z+eHWSSaHYekMpDQ{I4S(07&F#l$5VfK=&x|tm^R;Is5>y-8=by4cn)Q+j!QV*tf zPVE4u>^eWfehmMv_|fyn(^T)wzjOK&{aOCOTAf`<7AV4X_Y6ydmxlX9U#qH*$%@$& zBUH_c-V$*(WNg57pDtRWS|vM;IBg6Si0JbOp(>)!*ZGG0Ag&gh;hyH=V6#TqE?T0^ z?#jL304_GATV~k<+!OdN^b@(4*D9aa0X;)kMZT-jD8^AeBepP>tKKQ*U6sd?)57wD zruoypzWP31qt&03sfy{qMGRLQQv9R%pctumAuoU`MxgynlL&7R zmr_dJ%7!V`nwi=j`aqvrzHZ;q29@EW?+)-}T+p5MTBB~NER}tbyoA>7MzN7l4S3pN z?0nB@_gPnx^BNQ)R@j%Fg?zjgi2rasR+k$1E7FLN`uihPv&=(_lI z4>pDeMV*UQSMiSyiFz46H*`x-SO2!YFLYU&hN=wtekk%(m39E?Ar$?j7F4&qC3WcO z;wDb%zGUBM*;To){C=6dY+Bh9V|e9EOI^n<&t~zM#81^r7iicP7!xXlyCYvmWkkuN zE=81weGGXNloX)#uQd1=Zu<7|jq&v$C)4P2#HY4T7jLU>ly;}|&IIG-TUQx4rYFYErdL=!J^NSV~^)6Bu ztiu@0G`n(4@v$Nx}{?4eC{w8(hj}6~bzYY85|83hh_qVz~_|${x z?X#8n)q%=;VQ2Uej7iZ;H^p~Lz@%U{xO(UUu<{=XW`c$Wo&$3Bn(tTd+4}Q9flkph zQ5#inl(UroDb~qTWe+7w=<8w{yT`T1Hpl$3;;iv%+2pd`#;O&>eAWgQFRm5YA^oge z;bjDRcA%fre_wzfc>b3M)Cf2L?Z4XoQvYS(RIV8~Eoe*ddTXIA;NU=dVSJhrUSUp2sPkmW6PGwOZ zRnAZ*DBCHgE1xM_s#dAwYM08RI-x31)=<8aua-TQJfe+Ml90&V^c-~gIp^A|*}7RL zS@f3c=1JzB<`H&n~hRlAMO)_g`sx#@# zwHXN+C(;jL?W&Tx?MK0ndp|a(Rb*&#v_%h%Dc19BJpDjfq8sK{6huN7hk1oP3Yj0w z2aNPzV<`0*=F{A}mv>|DTHYMEqbZ-;-YfNEbnU!~RUY{@No&%8U+V5_e{TLIJz&Z(>GBK1mwG z^H3}~CGnLQnWxMxrjcZoWViIDOsn{;tfAieivc7>yIZRRXY)PvL{*|fl=YJ?XAJZr z%p%@`g$w06vvWK}Zg2M(*Wb?Nj&XKh+a}9x)7Oe?#sj4ni?6?-e|ALcry^opeN^TtkP zeM{+*2SpzXR~KB%&&yNi9n1CPOwGy2uA03lD>bt)V?@Tq^lIrDX$5IZ(yphKrX5Sm zPH&K*$qdbIpED`HP4VBxg_b%lg`k(LQ_8eu-WtOfgD=>H>iD+sS?~SMd$do9Z=}CE zuwQUW$ez%Q(5oST2Bji9zlN@_x~<$>k_V6X2JV9=$^F{p<$C74;ymo^=(^!ba+^Gf zU^QX6s(fGGAO0ztU(WxFSV|`IoBWviqt4q<5l|8w8`d&>LU={kh0qQmuY+a>{uN+= zT1v-&e*)ZK)^P>Y3gG0+h~p6(K{lc*OT32y`sa`(;vt+Jn* zMP8G!^bQ2V{^ls_< z(psc-O$$itjNhJAF*Q9kEX^zZTKdGSy1AOd5k{T)opTd!pbheO$}mls*Aq>D>^54f zpQ=kW^>meB{rDL8I;4BJHG+@m77-c71=d(;}RgG0tl~qc{N^+Q5V4vOwOy~_n z#s3gqa#@}k?kTP%&eqN-=V+(5tH`DG3}*{Dmk>`pOp0u_vbm;ygtro=fq}bRTn4j?uQ8mfy@eQ%=Q~^52b9B#%6TSP-N80n2?^7HWs=Yol-ZYUPvuSAC~!B&X$5EC0i=o$eZ87 z=J6TGboxSfmGIE09w_sYw@^iSP1b)j{0ImQsTRhCMTb8PHG~`uO!m9#yWYE{{-ti2 z&Z?WJKd0ZT7j*};yEJhsUwN!#FnJ~9bN?cnC(UDE|6(t35qt?hL1+yY^;SY7p%XmA zf{=wshMj&cc`3_>cGpBrG6E5?dg7hs{laIS?_fiLVUC~2ud)AO{~!Kl|0w9UFahB2 z@n7jT#}Ms%(7Qm_QTvZ3LS3SKpm-)%$-Bt*NOL7}vtQVVrOnPsYVfT2NdtSKRuBEQm&dyGa^RpwzK{>0UH-sZUq={p#eU+^>*vhg@ z|5O%MTrH0+Pc+^xJ6ra;v|8!gl7+>YMe?G=g6Rcw@-OC<=Na;9=Pl3k%1gafQ;n&-#~rm^0I5a`T?gsExOL6S075z}%4z0u%jOuOqrB?|-49 zu+zIx-%tN@PhCYXLg!@%)MktP`uO|%*Yex!`=@tzoyw~!m^>_sZ(wHos9d0Wsd}Y~ zROysk5Fa1Atr)fU;|{^sVfkJVlX%J=A3N z7qv$%*OaR7sgJ5>qO4ONRD){~kCW;I^+gr0j8~2Y7k-&+xQv$NNiR#!N~b_E`m)5r zgfdlt3P_-)BmT4pUi~IQU-&8uFSNTBlie z06l%g`nPowyoU9yoxmNj)Oy~UYwd44W25ae?8)}Vj#G{h=O(8Fb|d5d&0XOh>3QgB zz@B77xNE?((!vX2zqk;HI6L{NAF-BkF(W1aO6p0EO6$u$$>zv)iX)0D%9YCZO0BB8 zs=g`?rHQJiYKiKysz4R0?xLQp-lATQRi>9(sm{Tx`&8Ri>s5PIM^vZq_exbS6;WMM zc2rg>5}~kNU7=9O@z5!J6|6iNe)_?3QFdC^R+cY4DV>D8_6E`@sV{g63nb4ZyJ5K| zfUoccvy~anBrr1Q6CR=m)4udevVcU82Z#v8P(|W3-~n5UF5#{)O^8B`|Heo1uedo} zP0YPV+1cpfTDAmteg-^slRdpXwLBV+9jXo&+?!Ax1i&>z3=9 z>mS!`*JG6DuDh-)uD!0su92=bu1J^8C3SgFqZ*gqWx%tSi*i*u^PNT%#ue@A?OKf^ zL?E>nfOn(RUB@%UbI#-NG-fxk`D_brH)rAc@z;0_uJtvdj%$GL>r9=+Y&V;HBu(kl zv=Vsg6sDnMGa@^6vD>&UWu*zSd9n+#5?NK`{_K~(lM~nj9e_%ote69)j5UfKiW7=+ z$k_N#@mBF!@m}#naY3<5F;~$YH7-#UKuP5uI3V}P*TIJ}P+m*!0b2eqS!eX&|D+qG z!=%-vBJ8x2;Ph)Ou`y@Cy~?7dd(k|(LskG+6-jL1KiEn21)k|0qHpnH0U~0fgzADD z==|&a4t@zglyAlx_!90Bm&pCjjfDP46sH2CLK^#=y~u6{1MN_@En9>2XKB{t$@IMQ z{Oh^k+2L94neG_?OT3N;oc11>hjp9XCU?HO7~B;pXr&kKXL!7Je|49+MR$a!5#j}N zJ*zy2JXbxBJzqQ}9xYo35rq}(IeeF#i{nOfE0N3amMh`3(9Iaj@8w_e1oP}d;j&PQ z9D|1*pc1d{eR&xhyRtA(BewHFKEx4Kckcu*F``yXmoXZLn$ni+J}~QlF@SFL(|X z$F+!Lwgo2EEIvoPcNQXa(V|C4MUUSp%mKPQM&S8x=vCVgf9%HB;kCSj`^w$q4sgqX z_iy#9CCuy(_9goddzw9n*4V(VVt;3U!|0ffD9lX!wTNAcI$VqQ4&XC4*f(qj>t=nq zy5M^l&n@P*atFB!+->eTmkiW=1;=qZ#0DGlJ^9i6e0~j|$Y10i@c;2&v9gsT?nw~k z)IxhTLWmREfI)dGqT8pTpI(YJz8>PMzo8Y95Q8of6~Mc7K^!=ddP%WVEku3S0(bJA z@FW6}$szP_^d|ZYA|GkA6)GMm0uyu!-yX%3=;YyAEYZ*{7#7fcE#Vl5&s>6*9ZT4?uFOe zAVS<4k5)p5U!NEVAI>NoJ4P6Z&-B3&KV!44gr-7se6B4b%H43*p~5)y@a4i9;UJ>e z*Mw)7U$SAr3W5T-fVSu}6EJdjh^Nr^)5KDsko_@xwnChI7^3EjsCCpXAf+#3wR}#! z0SYM#xWjVb$V5s7#*-itjTn9%*kg@R8jkD8G@D@g~y0rk0JPf z7+xJn`jg(M#ZIIR@?u)ys75I9I9nCulV}OS+)@IBL^4|cF?EZ&NSy#mX(w2Cmjh8V z6SX}8k^Od5BPtG&{s2VurNC!7fqg0yb5Z{vfG4~wUKP&)8?sy6jGT}az;jL)C!vf2 z27VxLP+gJd)CzdWT0lJqqm8tp8n_b)kf<~YgTJLfEjWP}st|I~dTGdV|Az7dsG}UA z5Ph~xFag=dg26+Mqy2$utAew|qs=>rUGNQ~#EHN&EJ6)$LiGL^(5C;0_fgaD#ILCB zOk8OZuD4PILLIwfP838brKY@qs`dp6B@`_YgHccixP=6i#<<&`sP7hdbOf%q56~8a zP!GeYaj1`}z@5&f=A+FPqbvs+Y$=|X|HSVDDf;vIe`Psvs!P#d7a^`c4@XP|Vst7H zHY0&q9f-4b!ns?bG{d(wp&9@k5l7X6YH}2=#~)Xw1LjPIUQSS0;HO!jQB1gp9H0~O zaZj1Rm}HAtz~*P-@lE`UyM2TFhG*gn@i89HQJw)W{R}vd`#_xE!SglXxvl~GaS3Rl zIsf`j@o;RbAH8{v#?55h(;i;t*AdUFnCVnjS%z% zDe6#<;*0Aw;Hq^LNQ&{Q3bm`m>q@)>(PPxHH~#WN|1kg^;)8d7K7vp}fgOoJ?brNO z`}I%<3223Q{MQJ->!B@bqh=c8(GqRaoN9{tYJm6Ssk*4GSR7dc$g`MV^%e;<>i@1n zftq80kNMvZ0bX51tGiK)E=QK$c_*$iN6{#Uag{{;^5GZ57O ztJ{yjZN5W~|A^9l7w2k@c*^>zgoSD*Dm961vP#VqvSH)|5^Lj z@b^s=pbSyh{{bKW8t43kl7jLDkDuTCvu!hQRk^sjB3xAwu|^U8sU z$6sZ?dPf=F`}vvDUk@W*x1rT6zwX(Eeh>0c{LtuEQnZd2iVp4Kj~0T1iK>F$7lHbW zMv2AmnkcnV;!yu}&@v5wwM;x-iN*hMXoLEAwGm1)l%MU>1f!-ITB$jnTl{*b>96A& zq177WwMM`G``N}d@oiOsA@~2)d%V#fK&SibS&KfRLJQI;EZWM2d-&N-rMSm3^ulsH zn^7w9dL{1N{A*-X{JMWL?$rjYxdW|j!Ef8I>ouYU7$#(?k>{&W87MIO{6|EmDff!_$R|N8y&$e*?Qv*!tz;c3j2 zKgTbRTK``k{8{rq&-(LPeqM!uV=Xv?fd5P=pnk`7S#YOT{ATfO_Fwl|hIX{#Q^Kz! zAx(z&c)XG>=HUo4&QyUJ&4Akc*@8hBU1p$W3o&-xq83;4v;KaL*q<#IjalvI2&Je~ z=s7*nVxbtV6vj>mtVUH~(LY3g{w@Y$j#>&7T?@*EW8*QhrO4=sr21nHTL&~{DKMnI zR5;o-1Q^dS^oLlqa5v1AJut(C<7#9$#vlEvDteL|_u`B89|TPQbo37c#w>;7)aY-$ z&@1#*YaH8xY6CP~GOj!U^X3|A8qOGnp3<6Xj}id<+%=4j3}DY@VJ_~7v;XYFKkK(1 zdR%?{pMyFn#|TYEU70Xu?D$pzsJkK@K6k|b30M^(sVBhX4W`y3SF0s*CRXDNr!l_!V;vb!gI!zXlly;4 z#xogrNZ*N%D^Ou1DI%V zv~?#k`5V5j{hZ{5Y%`zlUgbFnU0j!7MKO+x}d>M){FkvM6028HqGfoX;1z z%Uz#kTWNpGc=j$;pKq;MB&${tRB=J%^lGKXUC&;VRZ82qC(}T#+9zuCOkgMvO_nFZH?EXd*y~j8QD>-*v9X?UYy+j1`e>#2 z`P$!^yYBDY0MC79jMoH8623VCgfi)J&v;r+wtC`yEt2b{UtNF5{#3tb zYFBP!GxY(=U1A%{3aeXT)kM;H?j8IY>IUVaW2wuY?^FzYTsc%D$rTx~Z?xwy;}z{B zvz+%uGZUnpPRHlJW4~x4`TRNSv)0m zeYLlc)>iirQ?1SUW8QhHF_yhny|_t%?0=!e(%dyq{@JI8_@Z(oH(l0K^`G!hxs4g7 z+a(?rPT9JfmTS8PE#?{<>pB`ruFKuRRuV~D=rpm7^&+3BdZhZscP#bwsG(xJUm4H8 zsrX>&Am5|Mnn%yZ37@j~Tva$Lzn=|jc5lA-)O2O2{XKt4+1vey?JhqkDL|goNpO~=Lpd!+xCQJ+7=I8r@zW|V zDO9%{F4+SpO~yOd^1WS3s+Q&!|B6J&w{ZPjv8qO@tDaEzR_Q)^p*vd4WTr8Ps21#D zaSO5nZz>g%F#BqESJ4;9v^;8sJCfZ=7L)P9KF<>7g7PIj#G~X3=~dFXRI($5UqHUg z?#P-7`RrJ3r*M?I%AJv&rjNLdq&qVHy5jzO3Vp=t@~Mg%LNAZEYl3?T-ATP&y1-K% zxdE~4Joy;fV{YrNEjuWunT?Y1o>PttI#Fs79ju)@D48vPL9e$hVvFQENIdW7zDk~{ z4NN2MlJhpF75t<{(m3W3zr%6Y-A>U(J;;98)n6eOM+p1m$G9}-J!vuV^)y8Ok+*EJ ztR4w4PjXz=2B@03M?2eyx9DnQBGX#@K;IE0&KB%s=}YxKQp-8Y98Qf?{4F^uIUyvv zLOltJ9`dDpUG@y{{_j0$`XJZi!FkVQ>)-Txh6R%JiyHNOd=)Cs3mL{@h}-8 zt6+|TSF<^LkDa49qma9^cqP`wBv%3dk-i~IrRQ3wd2T8*l?rN+JITG7#L6R?46zr` z{Np^YIJNA%40~^u5uQt*NLF*_J*%mG%yZWc&>P=SK}Ot4rCPH7wcK$1w+;s4=ckV)JY+zI`uSj8&&685g` z3O!h|jg1q>$v!hnU~^3cyQ~j+CtFMhu*uRV)CKoq8BL|SyYpK;?`0XPUR(k;>0(=8{(nMsMEX_{Mn25}9i7H>~2{d7euu zn1g&%&n=D<1I0!3H(9nMg`e--?6QcjWY1;ih{to=ZsHEAdPpBpBe|!p9>QDZrZk1t zBW_rUOqp>irwAFB)Yqzi>$~!&1n#QnEg^;CfxbX z`CK?i0-^0o3-3LJY@uWs!_%pfD*O-kJn)5-h@%xUWtU`A2*%Y@$A3f0so!l{|w|of8_5S)9PEWVRC#{oPD|k)<&*{-$Gs z@R3?WSC@Pf9`kA@fo_1D{+CoorYGsh765y;3`mBv!hUWU*s&VZp;T3V0$ZKmD!w86 z=*grybA#%`E#uaTr)fXBF=OHPxSsKG%zaqU$?)keV>ZdIBRg{jq6@ylT&6!*lV{S6 z$tA7^-%LEj7l^-6pZSku3!)s0keyylP)d)}!vzf;OcMB6>`-on_=xHy7bJ01cgl@y zrz3nSJAs=_{*%|145RL1FP|nf=QdMIXequiiB$0G*ko=Q^_EdEU;{u-6Y~6pLHuH@ z!cUN=dWzJduaXyhJ$5#~ne<@B(Vc{HoPst-Mh9z%WSKO@hnK0L-<$#c3L@`6Y3KG3L5 zX0AXdunDga62(ZmFJorb(I=@bR0%&3%5dq}i(L`ki9Bfwb`y{INtgnD!F<|>xlO)M zANXa$8tlj7>C;RrY8SsBk=R%8uzW@y|3}e-?B>?g??NbMt*OWg^uQCmfGiX{aQ<8y zQ3YShBDxu3Pab3r)d2?rxbDP0;zfEpqeI^PI=(-407IBT%t&x@Q2a7(kZ_S&M!TWX zycE0-b@}DoBIw$z6lBO%_NJp5fn4QBu)e}Z_`;?TnhJ;KxSLpoP{C;y3CDMDA0t>lL|9bS03*pxmlc|vZ25oM9k1?&ZF$aMH%BPlO1HQTvI$R$*g zuGDtqlpO+p=N;iRc5FUkHW|u1LpJ3U_7ApLxCB0iQG_Makga%^+Xha-VU!#DU@5Zw zCXl*RFtQ2-hp%-#HHBO!q4X)T3BH3r#QVZ~FvE<%HUCMLlLzzSeC5>m(yS1c=twp=Pzy*XJiQ?`TN;8 zt{2ya^X8Ut6rw<%5P>UU4cs~IIG4exaPHC2D(uQH;Lo8)Ek*obIATXT!Bfx#nS9w` zdI%tck-c~bOeJUNz05pGH$=MLz-AgHOOx%F(~9GY3CcUlPO96gw=e(pZmUhn!AnryerK) z#Ch0Zwr{bA+o#%J+n?D-*crRZ*2VglWsiBTd7gQ_*>3J-o@Pp}tY6u@av*Zhk}AaV z-12Yb(dD}GAI3k8>Bcw6LF;6ESQckg8ef;qFDod0S+>nszdWX5S$U6&ZIv1*)vt1_ zceU}PyWhCW-O-+O?vl8I{v_QfZ>c=1id6@IQ>=m4PVF{*2cO}FL4IBRv;5}=)C#;E z_#tp<;H7}i{@wit`JeSy2Q&;=2i#G2|E-4EK1cMswe!5PHGgYjyxw}<0#heA!u?`QjYBHaZ}+F1p9 zQ7vrMfLUu{{#5zA;(PgL;{l___`GasnOF)KRGCj%4)nrPzEG)ulU129|U#o?qlsw776>;i$qF1%ZX0f+GbF3VzGqnb$M#V6HCjR$kM* zti1mDH40QENk(FxY0tK`vH4lLROXns+p^rFpcN6OxUGuRjMmlxU*mMIx?X8Iw{LR5 z(2##a9|03~E_7Acv9Qr$OG1AHzYQ7`v?i!l@Y>+8;H*Hqe|N)U@0z+Enzbs2;-De{ zERVO9trdSsXVS4^TYeljotwn3fXbRbvYJ;DJGBWp!AFI5;%Sl~86_X3>aY3Wm85;I zE!7%y19hA9(|rCktPGeLbSSuS$lt-Yg4PF}3EUf4Gmr^5;UDR5_mlZg_VYJ1_9@Yg z^9omc6cgoLWy_@1q|+o%m{IiK)EuFR{p{AdQXNAavmJ*WX^y3i1bZ`EnI+Hs+RT}r zn0A=bD*KzdAvbajdZ@qowP|zZ&dME?Cn_hId`*r@{8T)zcv8-kzc5xePBqpw_AEP7 z`n-5pk*sh=et7;9pc-}g*Yn!ut)GIr+Owr5oQIVyifS`V6QyrQ9vhsv1p_R%UURFs=YL7|T>`%cbO|u|>jR$qYy8g|e)pND@2_2{sisa<<|?8U zQS#5ymJ%=8Ep`%4a7)-Ko-eLcXBFos$1#V>5orHl-E8^GOw7AYBTcr-+)7jBZc|_L zE3?CFGkvI>RnfQnQ+d~lvz1GM$iHqHWV&7HRk@{npK&bu{0U&U2b6U#{ZYK7xP4Jx z;pW2h{0aGNZg8$8M}mCKN!hcrmS$CCHq6|X8JTIzY?J*udupyFuSa2v(z0@w>9~bh zj+if-i>&iq9r^uqs;oj;)2pejns-B=i9Y#0#lC;~*9d+S<`t!k9u$2m$`jc=YEV?& zsItgw5f8%)!q`y1(A?nZL9)QT{sDg7d_U^FwPmVpii@(7((ckfCC3>jxhFp3FR+6= z^WCw)tyH)_c&4z0SQ9p}>)7k;eQp-4Uk}|@8Y%xn@m9H6wO;*9ljUX9?eb3YJ>wS> za5QjW(37Bg!L5S-2`&o07CbBXd{DC>Y0&$?3xQt(4*7oq-|S`mbnSi(rA|^Blyem) z+T>a1NHYmAwf-kL)E8iLDtnbj)wBjV1~p74O!?;SmUv4K^N7lm|NrpI5QR^riA( z#fr*}rVaMS>;cLt4Oh<6Y}Tgg>jrj)Ni7+jk7~R8pdDRoPnQSoE{VClSpf7KYyp z9~M40Tpe*I{80Gtuz(PApxXbj?+fn}x)QHv=xZGnHsE6pOV>#@($7RK|H9M9z1}qw z9E=)wJI_4!At%B5w4Y7%JoCI`<={PzRww$vow1pxW(UQ^vp=i=#@Ds>-X&I(0_cByEvZ|jxT+L z{(ivP$eM2*Y%|*P-SzkfNmzHU8!iT%1|e3W_s1o3fk%V`aUrR zo8OOsenFRluZ0wZ6o(86IU76-DxO<|Is{z~{3FmEurc5;^hlF^MgV2KUbA0)N%crM zQ}JE)r_^8aoNhz5h=pk5!>kLKv3G74IAuRM*E(xDk2`pKL;FaZzby~!rJ1%;+f;k3 z{fF%%a^U@J@2yR&dx6AzW36r5Yu#!suynNyv5YgvoBd56Dymg9DfcaR7+V@8Mr*0I zv|q{9qW=o}6Z!l-D?~C;I*8>|@9dNYDD3buDXAHpxlM$;~~NcO(C6 z;hy5X#=9nsO@Zw5kq*6Mza!SuQ5eI#mk(E`Xcu|E@_lNUh75VDPYpx8fRQ1R2sZLq z)RxFI5fKsL;RnMyhrSQ47CbppX|z&SlV&<6jw_PBKJ#U3fw8`fjIFi?1kUCdXi2d$FymKhXrs&8tyW`wqhZl7N3 zGu78-kV1vGBH&8kXz-eQg2JI8wmqm`(2hXgz#aj=`LFVm7@qjVdEe3X*IokCc8+q5 z;tx45Jt+xi=8$d_5nu3m+)ehCC)5+~p6tqThB{SFsWZ;G4mwXwoW+iQjyT6-`$2n> z{i*$lV-)hsXSj|yM>yv=QtTh?P3`;bQ|x=}AM6M0o9r5UN7#py<+|xbWm?6?ig6WZ z%YQF77;BViOCJ}{EZ$utExK8_yP$f(5Fp)e=grL{dDn7XIXO8^a+l?f&hv)0LVE7v z+|0a-`CkiO7VRy*Q&zXqYH8`b@86%s%aFuo!&CTOv7@+X5Z&N z?|l{ije`z_whk{1pC7(CtWDUp&>o>}LXHGA3#|0-=O5@l)-S=Z&?g?2A>(yU-AvU8 zYCE+hx9N0Jm+S||e~(ZCe%=b;uWUeYZ9)Ei0e6u9Ka$P@yvg%xZG# zhr7Ew40ne8DQ?4MxD0oO3>_}RVYoA-Ep>~#^!t_X%9T=RXq)q#=jeUz^C)-|-pr+v zS;8FYEAa|jEypPHRo6A0bWikop=Lv>(HvGHqGDu&sC!ZEqqjwWWhSOmOoJFn%%9O! zqxVIfi>wuKBrL-)J#?ymf$p&OmS&2&p6aY3RK8x^DO7@AbREd8L$FvZ2;B6C`_FoH z9=SW$>2xk}b#V{zeDtJvx_ef+FS}~Hio2${GF%JXr`@S;nWv(spQoYcg1eD>Ir!m2 zPPb!@!^2If;z+fp+wa=iTa}h}riJ-=d4u!H<;}`1nL8uLmpv=HPS%mk1I!%>8ROF@ zq<2Z5khU{TNDEDynI=t}lU6=0BXvevm$ZjzJ<}Ve*UfmFF(Ff(-6>m<>(6UuUTRf69P{_+073e2{wjZwGH^<60$QgzigL$pkkh~qWX$vjV>~@mSLh%8TO6M-H*X= zuZYND!^pbGE0ISdyF~^fjz{#2$O*3%9yIPS6o==1hPJP!g1Vt9UKy^aC9fch5hJB% z;qU5LP&T*|WM3$I_pbUU`rW<*zP`Q+zS6Llo4l34a4+-S^u6^-{aQGGE3?f?@884M zPlM`i0%o!~%pD2d2cEW`&hAC7QO(eP+bG{hLa#`j_4!?VNP>|2~1el@IN*iPd}<7i_gV@YPzCWf}u zZ_x&ssJ)}OB@dCGl`WMuknI+CQ5_4Byeaq;jHEg^Ca|0dl$C)wfrjwEM6%_xTp;MT z`Jei)`E%GMHYbo0_&Kcmd~hUlk)r=X#hVm_m{zNfmos_U9F$;qZ%vestJ$#P{K%({?u zKC464Us*S^3bHP8mn1o{oZh4yPjSRsk*GpQD_vMhw0qR|l_eF&WY@&9Otd@(0~#moE;NLrv{J!J zF!-5)7@#sP(5O!WCQiW|sKPw#$5kMQ~i;fd7)O zsqZ7m?JwSA-rtyuc;~+5N^?d!`!a)i&i2fzhYR4fd4f6FRK}E>-y+|gcRf#+cPiJK zvnVGa=VA8O>`P?P-E+$3B$7!NWV^C=W`D`vlUD(LgZxB-j|awTG9vy;xlFMU{$=uVQ#&T*kEDps;tw zDq;VIT?%(Z42@JrJ&2qZ85UVLViXg#m5enE`p}YC_T$=@n%~q4)iuRDdA_U#RhO}F zK+g|Z0YBPo?#d7_j!i)Sln0md5?shNuqa(6bA>z7>at(tN7?sqQ?*t-M$<-HQ&$Oa z-RaOc!&<{Wc>PBibB$Zs6dx6SE6mF+ei-^%pQ9VC6LlxF%c%yf&}>sTWAA;u{2~+8 z`7oD+2$$fmj+R^m&$$!~^V(oLc$CzzDoNoIE(aspU!Yc-f@hfvGG-ZAn08E4TncWa zy7_^5ECEidcGSuK^5^&h-uhkzyK$Cy+Idc~QL}?eURuFd@? zcQBkqH}XE`UCT?$YnMMIzm92#sjs;$+iuI-mphibGral!AZXCfAa!(-heC0&vOH7K zQ~gEzL+A*j7&bR7$GF6}*O+0v54+IAa81Pd@J-?E!yko>4_jwEYPc1;Nq<1MRNGNw zQ}tJ7%lFA1z@FY&>@J>_?huAb>{L*j2QLS9Q*AYJMj-HD*ej4U5PArwgwoQ_(!2D4 z>nq+UYqAA>jkcxEPBkh=Kb{Q%DQwHBZf`CdmQ<11;_dcj8$pyRuOQOB^LOmS^@ekuF z;}E0CkY=b$og@_=kHOkU>gwzb`B@$!t0&%N8_F8+!9n6gG5na;G(!D});R8Hfm8nXPrSs+hdk6a{ z7`xkG>>Ti_os^uDtdgvg%%pBVh${CrNtUFj;Dm8*yW}THCbjTMpv>&x%d&!r!M#M- z4qupWg7>|rzUKw=EpJ`FxQ;r*oE;s1+RNC7*i6;|Y0v2r5iC#4N6pL4HO)QD z*(SH?Z&N4J|4b4pDD_M+rcI_hrX!{grqiairpKn`rq!kqrZJ{we4JeYn z3AGMiX-8eAx7lQ_Y0b16950>2JfD2k0(vmi14Cv>vL!F2CiTY z3x<-$F2=Lin|fi*SecXt(tm@@{4@Dtc(8 zn_rl42zfmMFIWc7#>sHqEeD;qI7BWvAZa3mOY@{(#h0?v)VI4Te^8xM)l=V9$7_yg ze$ejI*4O=`tFAw#f3AO}-={C9->)m8o2FH0=W9~clbOm@s9GvVDGtbA%c{!`ixtIF zOmVCdq{3)wjf+4gTEH$#Kw8fUc?mzdfh`3WB|2e(uteA<><~^0FF=nJm9~I`ZIpDF zw6Rn#y(4rJa_BadX9{&5Xw-Ee&4<7a*gCMzU&de4H_Ln2v)29E744ehOmMz)9CoaC z>~eH-IPBx?w`@giN3H#=Qfp-x*kY`$tvYL>HQcJS+AQlVuPxgxE7$}c&c1G+ImsL} zUo!7D&o_setC{_#98-Psc~iiYZW?dOHVrqmf)^que-hiA$D4jMS2Rak)Yc-l1&&Fs z0p4f+b-`YAU$P}K=}xI$_Elz;ZzS_5ueIxDhu$#MG5&2V!EETAuybKO!cvS%V?7v0 z9Qw)nV)|XWPP$ZWJ?(DIVz$V56wTy$;sWUu;k6_R?&cAoF~dUsD^T(02QZRp@LXO9 zv4W=iCK<-e?HcI>v9qkXe6(VOa=faR`m(waQ~IYg*&36kl(v$#zjn9wsy0b`h52~GsJG$%1l zx)#$X?S(snQCd&BQ2M7dTbdwtfirKiI3N355hjJb(&g9ytu#p(j@6tm*$cw7Ou=a~ z<2`|9fo=Xb#1CD)dpsHLitc;gCn(oCYdTvv4?Ctf6pmT;?)FUEX4^X3U|TEO0H*hv z+2+`Ox9zY!wVkwWWR7p5ZMN+U|Mr`0nXQCPNtLaq^^;|@MQ3?terY~rzQGCpYc4`n zIo+IXeq|nE9%PO(U*RM}%q`3nEedNlTUkefYog~VbFAyYf0SXDUlXyk%q^R$&@2B` zMQM6yBlO?&?$F;2sYDdpsZ*8-n`2yP9Bfz?>d`OM71tHjj@QJoK`BqARaI54Q-sOu z(oNVZXaxtjgPI|Oks6%T*r0hJRC|I99l-2TSK$FS>!eg8?iYWRY2-x}KE)^HTh(lC z)&b2sO?7QUZAWbnx7VYq_cs{tx!bR8GmFqm` zoZ}ovEx(L2)OpUa!coVea@g%jc8lHM2-vGT+B=#!mT{ir91|Ta9E}}?tBl^;m)S=# z!Fh^pLwVK@WLMp+4Xj@+FD?5mOX*HEwfty#Yrbk;hu<4)Hkt))pwv9uETeM#k}Wwu zI*vP6xuw26u|vlt(;LpO#v>}F^?!&}2_&TA}pEXptz z-lRm`pW1`;-on)_RCkr7l&cj%xteL~apF>`MR1_=AHmK#nUCqjqiew~Fy1|p;Yf)} zxGB_^3gWLI!B)%iWhdpG6(Te3163jFd1`?f&kvef%$T=jJ5d{LtoDr7qaLif zsw}VEqDWBeX4Y-HtcYx_s28V7zX>gnazl0tzynP;_&`A)=49HzZ~3{Pb;v*Lk~qdj znR!B*P>WO9%N$$)G{q!w3yhX$#T(4XodZ!dLM+AJqOMY>&|P>+2X+L!cY5j)d4b6R zlYg{dH=Pnf>m+K$bNY{^4icUDsaDKgpSw;D5g&N$B zQvFgb)t=RE)iu%I(sv2H#1__S2Cd;@Xjo`Z`hkPBGc}Xczo>31FDuF`mdfui3;UN? zL%fO?yNSO3%O0LDAfb(H%ecmT$0ugw=ffQTL2^vkAnhwQh5d7fyrJTrVz4qt*-mv$ zrS94c6m(t~P<~v_H)18ly*1fr~{@s-_c(i;r!A0h}u$J zM~?lheJ=CTM*Df&URwiOIku(Uv2G`N>0=GC##vujPFeO?+E~U~Dp|T(hFcOXIhIiC z4Qmx!mhGwioFm&g&8-Cm`%j<;IGCcsTIpr+xlF4#qqwU~R5e!DhgV^pR<3KMd!YNG zYXMiuR{c5sV0}QhMt4yguZ__ZQTI}nQ_dwC_#hi9TPNz+&iAh{4kY^?$#{5h74YDm zX0OSsxCDgO%u|HG4S6kFsYN^J` zto3{FrGKfHs2i$NRZUcVxh*?j`QA?)L5k_h%~m&0HF|KkGPc^z*fjb@pg7 z>?XFLbqCh7sP2vRUk}9X(+bIPKlz zuNw?!OGT1UM64l8lxvt`U!qJf^3pTBY zMquCLW5r{62Kx+qi#OQo6%x4zZbmkgn3)7ew{aGj@$b=NhOLl!-gLV4{;Uc@Q zqC~%VpWI@DVicS7zN)6H->P+*8k*AFH<$W`da1gsI!Cn|4xuipA}X))jIs~=#g-^U z#dP@tS-h;bxI_9@h!*;TTq(v@sI~l6maDoKWBh&IxLQ zM*{T&DgGt?c>e=mKX@PxdAoYuo^wpYH}XV!eD43~=-y=p{(<|oJI5XF`O(vwlOF7u z&U3J*tEZAD+LO&|cDjeVThW*L>bmRN=o;f{!`*!2T;^=#G&`m`syPmFC!g3F+C0{6 z*4frU*6!BPoaqVcJF95>*)|CFf?c*fw#&97wm)spZ4Yf#?2GWNcE_L2a_$+Pa=vgl z+8TgM(@TFBFUaij{}ii~t%=gBs&}Z9)D_w9HeK^xBL{u*Q2S9E)Ov{kXKJ0A`IJuFEtvjYB0Lcu33fr?q{~UGN&8FBNmHc@ zMVq)$))6GeYsDVrNHpiPx++`;o7vqrOH)hpO5GStOIOu%<#={Hu2ED)XQs=G$saMV z9|s#mRq+q0LOPgzWpZ{gTmnD)ma`la97g47UGP(|Y{6#s!>tE#vst1>yWR-ZrBlf( zGl-d5h%=cuzt4GQiRoe{HuX<2Q7kQfp|+)v&SR>kj$|P$%?WHi`~X_$3pj`J{y(XE zm-T)2e)7)o_VAYT{s(5|6t;DZr-5gfr=F*-r;ewVr<-SzXEp!+(qr|M_Ew}S+|k>Z zdHOOiBE0tO@C@*1JkQ-r-3?(jc;H&^8tRI7xttH2>zwnQWt}qTKaRPMPQ*S>>`U!^ z>~VI9{hsZn?W^sqt++kZUfceceUjZyrC;rs;ArbO?l|Rm!tUl zCB(7fMKKnP>q}X0`D5zyS>zDUl{MM^`mZXScuA)IsG0}X=Am+s@~fgPc${MLoic-L z8;l4K$^pQKE496bFR>uOzP)AQk zYe#va+?tLCoZn=}LB~xxX)(@t=U`ra#_4v3yV}DHw2$v0hYw?;yOd{zXRx=PuYrG9 zU{UZq8%D|q4W$1Qr^&|2dn)o2CzKM^6rzzgDw*0&6l8>(r4x@SFo-0o7pcdo`*M@4 zs@zVVcN1Uwfl0^08M=ER{kRh_@}=8iPO;`uypj zzMmGngVQZnxGsGmZpSv3Vz+Gt!ms@ABss1D%i4yZPR$QrNe zt%_H@Q!WM7@Qpj7=Snw7|B-s>)J!7ke-B$)Q`!Gu zu0IJ^&nMY8*fx~%czIL#V3_T1%UwjelNHAl?-eF8OS>YCoybcR%@v>JGvrPp=QMox zW9eYFRL=TdG22e`+*}eX(Mc@qI{F4C^aBhBx7oFFi0Q^XWUZH|(By>};hUN)*+GQs z0&iN#Jkhmq+a*ZQWVTQAkfgCGr!JL=d29>1O66Q1d=!}Zo$LQDsDvT@(p1x~_@?3{So9z5l?6a@f1k zyUaV?JDiiR=Z)oVXL@dVj(O&OKjj42nQpmnxL3k4GlTm#niy)FdjoOS9rq`<#U1AP ziL+bi*^d@|@D#-*-j6xaNBr$2|N6oE&HLG#&S&rW+D-3Sx=I_pi{P;7 z?QOxP)&#H0o6mXu%Q+vRn=#)r*)!BL+S7@Ms}IrEM9)mmGS6<$1O>-Eav^BU!w>$~K;?91}WK+d-DcVZTGx_=>>dB}eWthj`|6pPqH(TR6f z7pqpE8_-RXBIzfXgl^Ky(z4=k@@|J%j#C*WTP52nJ0-g(d&h2FuT13jHDpukTr^<2 z{15q7&SV+7FhSl?{v#OE_p-aPy|PWRHN-zVnF6^d%aSSN%{ayX$#=1j;)Og}{!MP- z<9qoh`7Qo_TYg=BM}8JPxg2=mEjobw&=t)w&ii?18gSY_ZV3V1D? z?F&xyHfMX=dx_8f;WSgdnO==g38zs7UqfEojI5|Wk80olSA@^&wRtnpf#+~f-Qsp% z_g>`2U-O>k&j;Si>|^+fR=64AkA%Ufm9IM(ze9$vC>{I`oZmeEG5lUx=bieJQJF^@b@OYB-kR#8@gjzb+;eb|nw${NXv z^S8?UTN|?cUqEipmu--pm)!>!E`i(V2l%+_aME45vz_I&<<;169?dOw@%7iT%e-8SQlr)$8X+AkhtdLF}ZyWb?0E|_zE8uhPSe`dYS(mSX4YwcrX)_Q#+d{-J$=DS@8INgK#RZu|YK z{o}B3^|=#rf1d9J%tkw5I+_6+RcB7E53-*uqyet$$Ka`<0Y%Td>fnQc;W)E5q>Hl{@^axPp807k2gmENZ!&YAAb_ zqhv9hWGL)vVLYN`GIqhJWqQ!dv9fyHwYG5KO_I&yv{uTt$+l2C-6UHin?okq2VICE z63!MsVZo1*X^s^;qD7Hpm#@i|R*{#qf&DH(HRB+8a(kf^ykXBJhb40)9q43;OebHW z|Mn{!Pvv1;NQT8=7f67faJI$5mXs8{^?e><64tg3yLbemrAvXWu(-7klnR6dKKjr5 zH~J@F&no-l{2_jeFU9wo$5S3}d@ter`T_@15_f&+7}}u2&=y>jgLUO#cl3Z~m>{t>h{HIsbKT+eg2}@AO9nieWLk^O%g? zTopJ4&)KU$TENGNm4v0KLvU(v0Ze}<;aYkee9qRStU`JWHdZmKM8#|kHJC5#t*j5{ z&TjfYRw~tP>3;8#T$iLtWI_xPMl+!wQ%)1OqjTU}+b^7_C-jv%eWek*8!ef- zVV(#Mi*))~Y;0n`-U2u&`hkL~h+XyY&hKMex57R(B-jcz%lM!Q1kU@wEoS<5Ai3Gt zs}X_TSg-bhMu8@QTHJsNff9JsIAk1-WfKDebSGYaf#2@;fSZv9lmP=9(|_c3HTXZx z`QHNq%y5CZnh(-uXmQ(=eODI5{bA-{Xn4PL@~@J>jjik;3AfDV;47c6BS!7KQ92B<7}c;@q! z9A1+pd=owkUpVFG^hmA>7vTHb0UOzDxXAhn&4rp&fRxO4yxd4>X40!w|2mTkBgsevf1_$~xv(+1G+C9(} zrroZ5-jAtle*R%3of-@Te}rG-7Z~gI!-wLe zuh#^om5Fq1cHp0$gd}6pbXfO##N7k&<+CI^u^QLNV` z%|TWhgag7E;XX{fDM;EO$myHvK>ZlW5jAkVd64!ODk@imW5O0;F4SGNJ0{q1Ba35n!u94Vx(B;r+ZVO=?OPtPi%gNKs!Em zLxuyH#TrRWIh9ux+Lm>&=k4P}uH(-?a8}>YV-uRJ1T|MCSQ)mrZk*{7nBD%S8kiA` zKzqBAhirzwDGBbK1Xya?!}PTvWG}mFAA<$(g%pLWttI>DX5cf9NgfglSYXsM2np0L zYYH`lra}X}ZVPgpo>VnQlE2QO619=u^kI6_mw4PkLvP`o&y(FA!#ZuJceb25=nP>j z|D%i0guFRH5Ck(Pc8%b75j+S25MzBuSpcPqi)@jjScGg$9kB zh(%Z`tihHZMklYZ$?`Eb`xSQK1NC(^3|=b(go z-hIh&?96biZ#uZVdLQCpbB zF1jw@rmBLW3J;1wTObw7`v7}*4C}ZI4I9DyU) z%kz$K9ou>wX>CEO3x%0z+CctKeKNZkETa|6a2p%3f~>AH5r4GA%gz0VO~lJ!3hcry zh$F%%ytU`J8}r!W+LqWqo{7TT;2Uo3;o!>eUaBRxwiviaKhpXTxE;8NmTbbGB!c7| zf}Lwm55G2#ib$*+KB^S4cRVtSyQKCopSp|CxJM)Kor&D56~cO?wFUdNh0h9mHnX{D!;nlz?0;>c0=1xU z>U=Iq4t>+dO#L39nmdhbqan=VAyjt?bBh(|bO*X<2J(xKOrsv)45y;^jo^C>Ey$sE zf01{v1~$)OSmioskuK=P$G*X{{!JXRjmTscR(%xKy)Ra%1CnXQqd7LI#drJP^?M{! z$e6kf5BwOp3i!^(WN`D~)V)P5*%yo>hU|sUS%&8p(oSZE1P@(?658#%1S@@(e;VvWz%3Jb776TeHQ1NOfr zvMj;v($o93;vt_CpB`qyd4ZN_&`BsS{I#CKKRSuCvNS6mrvyek>0Df#U9^?gkv9(mQ z>#?W)7r0MWQxiMMEqWyR$Qhd?cK8L9*osK*Qc*ItvI0C(JW61xV?i{jup&;Pu+Qkj zUF2|_y69?hgu<#>2e=^0!wDUN&J`7+0Ab@iKw(Wk|@f4 zSr;DU33ulJNXhv`?tL^~puM#_Ei6Z?1rB7c|T)griMm3VDy z*l&lUUu)>4T?sxT4hjULuw2c!pW|WD-iA&-02|>%7R9+Qow>^k*xhgzubvcQ3K8L( zEy3^Jl#0<%YQi(fP=6yjD%_HO1RHY(^yFnu{fgutP)t|&>?F4N2pY77_dXv>G?sVY z6ED}8n7jnil}KD6DKHb=fVFlbKWhSaluhvPS^7DV7a+F}gDG1~Ctxs-gp}p=n^^C z=U{G7q!wKsZrkoux#q&Cd=$ok=Wr7E$vi8-%+Q_6!8{_d;~{sbdgp?BjNS#VwzI?S&AD_C0LD&t|?OKN|rf-i1D}Jdi?o$7&yL=d5Z;M zFc3E8XN)Dj+zPkizu0eAK`51?W}M1+&@8*r)hGO}c5=I-Fc7!oMi2jl;KzkGa%MqH=6coG?Hqi4I6Sa&KGp&z`)jU-k0ZjnU2PPD90 z7fx~`R$-HVK?CcNry0?PLP^{vm)HXSbSm1=l{2fz%}|p+=VB$EqYbBdKO2aK7jw#! zf@3-J0kA@MeKPg9tuRmwB0nhdinYB4YhIOb!pQtBM|4bsMU7YnrwBV)WKYVLGJTN{YG&x>E zCm2DH>iMXm-yjjZSkrtw@E82>9q!9fswr!^SB0I2ZswqQ9-gZL_@>_?jbp)`c#i48UpVy^-=nb@ETuH)W{xF| zjPosVM`4cifV$@c9?$sO+rUSBZZ13PB|+nN?@g>uB5 zmGPr>=#|ywS(sf`<6p~?9YzQmA;@b}km6Hr&{;HU)ptwUljyE0GFM5gL>Tw6(z~eJ zPl1EA2?!W@h!y*JoA_%z_hlH?vl=r*0+!=5{focJgqM+j|H4gZ7OakTMDkvJWGp7; z555qOKmQ)B-V6Lgz2i1s^)X)cDY5<+@=7Q9rHUF+X(H0jXjvjM-cHX}Qa zgB=+|KmP#v>N^-*)o5=Edi1l%5&sH#gm3kQ#G>s@(U$SlE!GnyoF`&N^}`FzLz*rw`|A0$dD z6W@@{X}Iy{6S;Tee9D53w$qco25LnHF9I_b&d3b4}mG=0Z!ivrw zx(l!P2@3Mh+T7c*=<7iu_b+hT#$r{vk=raGa=$@$)lcM6iPP%zab`7W*U)G4CrsY}WFGO63#N5cEDy@i&y z8!<>FDmN-NA%DTM{fRYONZqD0(O4{a?o^_&bKs>G;dMI0kDGvol-wrBT}kEUJV7dd2M!^V&BX9)h)idb!OWs2HkUsOr~8)hwQX!U_#3TyMNPpT zPzQ_SpSs|=3Zs(!_@cMOsXAh_!rI~zY;PfYzzf!=Hu2FoveZM=R@0DBJm=dM4?GL6 zdICH1o~X=0WNIW9`w2~HifjsV<-+>#XmY{AO2atvnTdQHD-30pst59FL!@7WjS=zO zGl^j5mc7Df{{@H78tn22V!wJ+GE`*Ah4%P3RrtBYM4j-?#j(X%FogZZ?>Guy-bX`@p)s3@)(fk!lX#2>3?*akL#?nM&*6MN z5sCdTu$tHGMWR=bR3^449BpchPEH}aJj@OL9CQRD$pPC@DPK#J^qlIDj)vk{YL6lHe~&R`osz3w1|4eP)Q3iox)uN7PR*PDAyg-(#F7c zRt=9?K>l7>1zb-IGmvwwK&0WrQaq#vxQTNg!9-detci+<^%M8!8aHbP8Z?s}a1b?u zR@4frey<|Lv8ybK+0bbAq!gj5@FR8bI%I{Ns3S}u3)+NqZzE?j)zpgI-m!f5quA@D zpaz@NkqB=c?9(sFm5UPDjUb{qLY(j9w$&k$nT#g=MZA(n-LwQ6)akoi)>1z>O10oF z710k=pfjkLIt9NF6hx_1DuAq!N&VpFokBLX>5o)Z?^5|Y1+uWP);9y)>yDf&ktN85 ze5wj}zvn{}VT`Mbua`=`;nNP2vycCtHS3spc}5ieJGGAvcylzY+_e0(B(2BPb} z^t$wd^py0lbO(EhmeQdaM}N94IG|EgqCHflp9*I|cFh$=QFo|9oM0h_I7@^%1zj#r zB=GxhlS2A~*Qf&_2E->QifK)l6*3U~9m_q_TN zn+G?5`56v6uNLSjnKTdG{7cxw{T;|nEl!o@8+Pmf-lH#7(P+HjOR|gQAp?mc3+JjH zQoEf^g{12D8uCT*;zIo@fi3^QJK9R!y&JW=!Yw$@{Fh-#Tf_#NPX5~T{WN|TUBOrM z1JC%5!I`$2j{9u7!Bc$`*nu+v^iCo&T<+WI+efGPt}n@F^BMeQ(Zo^y<#Zxn`xV^U z{%G7CveYVMY&+S*V=QP-)^UwUp%QZ2MGaYx|C@tHPom=95F53Fnw>?6Wu9n=be?p- z^s4kfwr#2D-_;hIg2NujuB%@`e$J=Ax?EhwV=13403|h193}RpyVruQURk<&au5-p z(8cq}ewlQVv^N;Y5+Fm<}6S7NG{H7lq%1E^Zbu)n&J>T6D*1Rajm!JF)>sY)(?oPJzUIQ)MnU(;co7m|IMB(?B*e_+Q7VAC8W z{T*5@aX3+?Dz50Z@puP{nBQ8pUn!VpLi*7sl7*xbYplhG)?>mUi+ay`YBlxARdT2a?hZ_+Ur`a<{5NivoO!OdXE_qm_+ zf_g~zJu@T=u!SXwGOh|T`uOYV>BotE#NWY%NMx0e+G;Qy@4G-(G#48dw9#<1BM8e^=l}xWp zFq?YfWc+8)e+wjg2fqPE#GPnk1)mN1tpsCN9{k)Vwy>@8jP9!x-PAlxI)ZY)3Ne!Z+1Tyzfas~xe+F;0Z;@vS=wXS%Ja^ShGVsF_|5N>Ud z&TDxT2;(`5(~4Kj21h7sD_bcCvq^gvyWEy4S1DKUT*hNA8{9@JyDOV1Ybc|Xa%HaK zq2fGPyOE04ilPb^5AzsPoPPcWxf znGY!K`Rv~2?(2?mr@MB$5?yVpV{TBvc}-Wu1=ggN|AlY9uZZtCIPFs2FJS(fuo?0wIv4GJ?pgvq z*9F>ol(V`s&v6E1b~{H&ht>Ype#O4YzS=&)KE&S3-qGID-oRdqEs<61CF}|IAJ`S? zv6*e}Y|ofI++y2m8^g%oonlR`U z{SJSTV0=LpcprKQ^Q5!H|H)>_J1EL3P0HP>c1#})W5%|TcBl5UHcVGf*HbrKH%T{0 z*IU;}S4gsSnpfFG7Hz5h3M?_LHMFM&a= zwI|2Dl{=o{+Jl5Mook&noc}rIIZ8X;*b|Xt8uPegnV~LV&*pjS7VApu80#?Rsr$g- z)zMnrTGLv>8etW!nU*`2qn3r1&X#HxoB6qUi+Ps0quF2<;i7wDx@CIH1a$=bgMXTf zTeezyTHV$Z+XwqQhuZbCd#T6m9pKLn^exB^878E_`FvfjQ#Mom4{m@-+Do8yXpmhLq5)p@Tw0Lm%p=Ge!MOH(qDZoz%9{rfU{y!Zb(JmDIPH zoqfej(O2-e7Wq2ldrLMQv{x3Gtu^94aT}9fO1$8GSvPr#e7T~f(x<$qTB7cz3Dw?& zmB6i=q<^GWz(r6!G%7S%zeumwFVTI~R)g7PjrySKqVl=o4KvhAS%TPBI!)MxWsV9N zU2uu)a9$uCuXY~{>IEkH4to+jTiKMkiP@2Z&hpMXj()Im?6cQHKaa4jv^vv3udTD#VvV(Gt=X2s8NC&je$2<3%%{zB&2`Kc(_f|mrf@hOCgvA|p>$JTk33D@ z)7)*jonY$-k zB|?5K-6tNEotM8?L@dLj6L9OX~R#t8J-F+)ZgL5!d2lb!%W7O z##QXQ&DAI9tLVDJ1=U~ui>ilmsA7<;=`Y&6{l+YN=%F>zL~L>gncB4=$6qq)X*Dl^RWP zohH;{_+OYOJR;H%bvmkX^y26<(U+nVqdP~xjY^ENMh=Yp5K%m0W%#GCday!;!M=1e z)T=M4|5?{ZJ5{qpy%>JJb_%^bReZ`+Y!V%)F;sfiP-&S%M$j)LP7)>5kj@qJWK$G= zsc$tW+5%H0YBF9E{jcgy;B+?l9Dq>+osfc6Yt;3&(^$SZj z_B38H_(SW4HrLnE{h<9%y-8I`c~TxDTPFP`85nXs*ej66q})8uLicI*BTsi0bG~u> zi8Z~zl#JC8?~HR6aTa$v9A6!09f^)|j$8KrOux;s1+0g$A%4qFOKr<%xL@PUx8PXN z!GNaCAD8zew?ghxc$(^F@5uU+*)#K8Mu&{|>9f720ot-)@^-$_JICY<-^-W)%u`6>(cB9m^4M_YB{p;7y53{H*v(T}k&_ z=zinn@We=8)XyM~A6Vc%@tz-Jdw2dhjqmBtie~x|g#Fi#2-r48IKTmxL^nbjZS_``nF_JeJ{)oVFmscXq#X1f|ZO&d&2OZ)fkFe0@iMupyLM9OZR0Ny zEu(tGJc~8Q&5mCgKNhCBjd9YrA+g(I9!BRyRf?J#`68lu#QgBAFlAUX<4D8Y&}I6r zI=Qy1`jFBguP3`D?IcJfd${F81DpL}{-XZD{;Gje!HxyTLK+Cw#ai+W$_MIXtwVp+ zuq&)~#Fxl|D0}qIn6j~d#A@T_#O;W?6}L8SdfZQOZFn}0YZ+&aJs9hV=^HaQ`gqiF zq#hRD#keVSqHd(7geqVDM7$u}4{-&D2fp}@dlz}GxJ$c5V!YNwC9m8ih@P){e4a_{ z>-~et6_aNtVw5it zO~PWy&mo_K=K{n1>wPbn;z;&h^`-i&z$yQSW^D#kC1e-r;X{&D<=_@wv}32hR(CD`JBiC+|VIQD4F!RYZ(LS(n_vBm+R z19eq2rBz0SR8~wnSdv_@G&m+O(7)aH$vdA}oqo*vrF+{`$+-baIfprpuf7=nTWUC! zePfx=EDD=Qf47nS;U!%u%;eQ^X2Sr}(s9M!%6`b^wzja2whS`YGX0mgGPhAq>1=h@ z(~O7dzas6%-*zGGoyk*@h2;N|<|j={nvk?FDLqM_Tr63gTsB#e+#tDW^33EvlQ$)2 zCRa$wNy+|ZPwkk#KI1}GOl}R+IqN4!TTiV2XhDKhrVun^^c#$y!*53Rg5R@bTpSFm z`SEMw-^IO&HO7{TsRvJ-JHi_NI_!lpfHesVb?IJfpAZ**fO9HQVUvZ51BHJ=Cctge zFEAP|*PGr6-gVy5zU%%)!QLT_g<9eu`3vPDO=JCSgDq@tL~PWs=)*B*W7o!+jOiJzh`JTAG+Y_h$WToGmu9%CjH0q^ zj`W_SZ-|2mhbl0H9nl|sI=J$8`hO;iY(&0(lAihkV)OtN>weTE2l}u3e9YWsFk`pE zGsDx&BYKW9;cj=WaaD0$cD{53?b~7KlUweXrsqfJ-OFj3?ao}DF)97$wDzfszdcA9 zl=3EdV{(n;^rVkTyOM4sok{wfWJ+=+sgm=Oo+q73+LkmcX>HQwq(D;bIW8w%o95)ZJJS`-;A{*Opz_4Z^tZ;JrH*_?sZ(JxGAyU zVxB}dj4ly1I&w(F`0zzxtBeN?>qFP-Tj@mDx+kjIDxWd`JVSaPKC#omje(mm4|XPM z*y#P&`@8R*dBhn*hMVn)a$JL9^itn2+JYhk?=7g&W z9~1T_G)-7Z>uOY7JY2f{VlT$*jvfF{H~U+#o%#cFq7|sgc81w!9i7ISAto?#tqLB|YgkWBypR7Gb)%Qw4c@xm zbS9tvg-xKjYo2quW1)SGZJM>IWveM9ze?`B>}pwQ8ODsWY1>old{d`1NuHbZOH%gN zH(yVD9sBjr*DYUjzeXihNZORNAjy(+FUgQxkaRmKIcZ#yA~_~mlX5jB@!R3l?P-rP ze#|bHXE6tC`&=Wu(%?`@f~==%t+uLRXxL`-Zc6lf^zOH~gK@p$uEZwAWJVjJqoX8| zf$&#h_lyq=8KEJea{Ybn4$aT%imC?6fr>708WoXNmrN+2g9a1&H|BvhvfaD`Q$EX( zch8V+LLYIJ+@pM;S)^}doE|LNixSo*G)Q<6|1GX$ zT(?+D%v!wli0HCWZz9@;rx}kJTJv+OYsab^DZ9YfDwX~#nI6)#Af63Df3OE)o__;1 zb&J0O{e%s{MKCEHrZ;z*Zuc=N_WyxTNMJ|BvfxwLDi2eS+ROw@g14(@4b0vRTzg^G zy=OmRTW=lD9)%JnTi(E2P0r@5DVd`)dZv$0E1x><+oTjn^6BJX@R${n!;?Kp%H*oa zBa<&C=Onw5UnE~ho|8N)d2;f?U^m+%ihv` z&=*o*6Gq9$sF&&v8_I@Piwuo!5_1ezcz0Z-`1^64<9fulj2Rr=BWhgaf{0<^3&Q3a zPa2X!lk`t@FSUm>x7F{N93G^&D-*@;!mW^*1?_^(0`vWQsY9BmARPCdWb@a}f~Ar* z(#5iSijwN7+Q<4YhBskLBWg$8inhe);*Q4Y;`_!g#hN6?XT-0H5Asw0ij9iB7E>4f zeiZdQ@_fV=yvKB7YeQ7%@48~ziRyG^BgKB1R-A&LK3{M!cpAIX(*G|Lfi0*d-|=;( z?%aUtUv{7wc!XQj)(g>!VNKHv72Rbee> zX>D$6>XzR$uTO5noc`!~i_9iSei_;>q!#;jE~Q>d22$Rgd@Okpc6&qe+~kMJpOT%) z%9MYTEqq0pGCt*5%EE8HZ{cZ@^t6nRS<`aMo4#6J+gG|`d@X_%gnhDDRUPdG{YYb{ z@X3*i=&>ypiGwmFG z4a0B7=V9B!M@PsbkHJp7I_h%N-l$noO`=Lhc_Nb||BUPz>4}&T5eT0Zo*Gs^Y?g5m z@zF2(+B&uNZ*_asB}EDO95;CA>MFop2yrc2{+;bLCT^I_D_km}Jkf^|9Tz4z`-e)azRQgNI3DzGiA` zO3Ck+AIO`WXUN-2rg<@^M^0Au3>a=Rv#w{I%sP;#xuZ{&o*A?eRulGiN1xv8~zsl{yVWPj*r<;r%i^7irn9DG}_N@8G})m2%B+^uja z->BBWi*-yBr=6yKq*d#h>PG4Q(B0I9=xgZ{^?UWVVFpZPM@0Z;bGQDB{ zYp#38u9alCvr^Qf)qd4}Ra=!D{(}8f4%aIGP~KK%E2F4$%~hRO1ynV7%_{Xi^-=YH z^)B^d^)z)?bse(UG}Rf^R8PZZfiJY}pzF9%BW#>7(?W&N1DX z#Jp-{?<;0mD|ymj6YowWa~DSSE-sbpH5?ILol(w@a1l&}|F#?(U2OJ8@Jak`pKKps z@4&8-s`gUUx%75u=HQwz@R`vbLG7!Yy#|k}JStKPYs7w$?)G2og}@X@|*HrNMnRDN!gdWRCV=M_<5RZ*1|yYe=MB^bQI^?#n)%nU9-tX2=4Cg zPAOVwp}4yhcXx+UT!Op1yT!8}*G<-a_q+VhclIPrA+%&>_MLa0d++b6c|&=7d9Qh1 zUNwGy{v!S%{%w9bzl0y;vjlVjOW?-W@A&8VEBJl+a())?2)RG1Ff(fi%HTre_U}mM zP!H6CeMqf1pzHLA7DGv?7x|97ggpEZPY$fm6=V{b!AID;*9nyP&-iCz8XiR6{{S-N z?ZEmdz~pti_fKzgOcAV}2c83-g`Sa~E|}h^J#0_Z?RVp`79TFR6Vuxernp=W-=o6s zCU~mhyBgxv4zJ#r`;PKVLhs3D%ych%?t?zy^vJ#K!Ij+Pz3Vl5)tIv%z!bg)STb+@ zI;a^LffktC(=o5Jgnonm-5yG01L)ihutR7K=SV*!to}y7*E~j)v4+XSJeEbQAVTPf z%*KrH5Zett(@st*hs*86oy|SOeGI~!jZ5Kicmgzzuy_=nlUsmu^qPB#y9W%HzT9fu zAV@$bKpSb#Avx*nW9-T72I$&(2p(!zk|4hkdx_z=;KGS)?jf_|trTR>@v4OAiBe*jFDKK?}PFRi}kc#_=&RpNJ?m6~||;^E%l^Hz9EL02#I zmUzp(4sXCq!LQ4GITf~yfaNd??OrxG{H8@~LWR2s zMYvAHhV;Q4xD5PI&euZ2mEegg1qyGkU<`H#uLFm`N$C$FgE&y(&p^KZIJBaLI8H#qg!Q5@(RvHp0Rq1ygN_|=~NVg8B!`TljF>zwr8#PR%zBkJ@s0~)-$+JMqA z0#7r`z;`&0ocGs&1xnE`_CjkYqO*fLu_O6{w5mANGW2I?6RwPckTl#KKBF5*11H1L zb`sv$MEn#t;2Y`$&HD!>7LMCHaCP)UvcU>U(Htn~5qf8+JJ0c+Xoa(p!qkJa*qk*U zlivqWC@4fc(GJ(}EUX`giSxuQ9NU*rk3JHgi1);6;t_G3I0a(EYGMkA4edbhqY`Fl zdjEo;@jI&ln1L3ke%qO&ko=B7uR8)AsX2oN7T+PXKGvl>p%$)#8$eCVg}Z(c{KO>n zJACJ3;H$KQ&$te56;(7B4w=PxA1ETZNII;9)>{+w`X5NNuL+F`wF=3>%SeaDa|{~j zlwkj03ry=J=rXHBvOWX(>t}&`fonL5$DxGo#%o7lGw$-MaBLR`=HWFrFbhX|2KYEL z@Xueb*?7%^R=O15wIQ$*=l68rCeCvzvfUBvzZ>8_Gy(32bI`DD=tgT3ngGwqYovXD z^{yR(n^Fib#CG`TL~ukMfOjj7G69JlJEawTXD{GA>VurgXPN*s-W~MM(C@oqO}GtG zlaARB3g=no7p9x3VzmY3WDbn;<>Oc1LqWO#ooP91 zBJ%UipooNU9v_3euz)!jDm9a7hCaRNe@ZErVMO|O8NDk~jt1nTroxlsgP(sL9LORx z=N*H#Uk}Ir5q$8y;Up=>D!K;Fv}*AFeT2tvCDJHOk+uD$=|2V$VkcDnS-1iRhPp$K zu8;j_9L|Rbe?64YqG7HW4VPKa?B4}nf^=~aOoXHGN^AmSVo`8va1z+gL!kM0ht}U3 z=dC_SMb$vDj|r;5OOOV|ppA%dE~R*B@k+*bG)3CJKmOE2xCXYtKky8k18-0cHEcBa zBNyRGiH7RIS+NQ3y7F)wykeW-6Z3!;H4aRUZ1m9&gn#ZWR;14GNZyAZw+WKdDag~R z>3!fPxk;Hc}VLoNv z2k9aOzk7hW3AB>Q%+bv5ARolQ8dVC1z-7jEI50YcMd}5m@+97U-H~=Lg->cX*sm?& zi~5HAz%+QU=+IM-;yg5gx9&68*|XqURYsl2i~e$041ueiiER5LBwgmg6VL=6un02G zd0=zA$2qwG6?-nO$3CGhq2y3C_ZqxgF;;^l!R-2P3SHf2_A$V;aNOA)DRiB zf1z8y33K5QZ3D*oB=}(G!$Z9sUg2Kw!+!l=&g2^0B5mQI9}Y)n7CJhJR#^2L5i-1ZSdUVOGtk8wl0&eE-A48&sice0gYW~w4C_2=GSQyUFtZsQ zi2zebEN2Fpde&_soA^%5CO6}|j^qCjX4GarW89;6XP#wEAO_(+bd=al3?M{=6YJkT zax3RIax(VF+tF80pM44X`yxEG*9ZCVFFJ?zl{%BQ6hBETY7N=|5XPQ@STH|a96IIq zdauGcP{T*XUEqk{a^(s~x$LtwO`sYiM^WFvU5d10t)afq0Xc zBbg^5rR}AYrNgAvq&{>xRF~WmYsH^LM?_mi4@4_POi^#)3c(oudfppuJogJ{F7`r| z?3tj#KOh&8eMvv@j2J`IA!x*RxIHdF|9*!3@2~rV8ux|^|6@Z8hnph;-_4c(y+^u1 zm8k<|@CsNRd*N)mf_p#?JnPHC+d^110!#cKd~v?E-~;YMTap9KNTeeG&9o9+er`q6 z^54sPmVPY}mh>rpP(&%3Q~0IeWI-hV_xyW#+`Kut)pE~Tk6|8PY00*1une)xvdqEf zjuxp!X5m@3TB4Rk*2B4n@{SgCEk0k`w_>v`!&Yc}ZM$8$&MtE`@^%QoWl53Kw=#PX zanO*xq=3^D26jU7Og2<8LitD;tJ#YXIv5c>d{d5zRq6 z@HOUaLd_n`Y0RCj+Zr(m&xZS#L5dwhH8)Ml4`uFscNfI zq9m08#R?@wRi><|oFWfO`ikU&Yv3lo<_+Q}^Ci4(?6a)7^v@J#^gaj*8$yL}T~(ng z$?u-&v{q%>W>+jP|5DbWEVGnV+OMRzsB7W8d~dGRI?_7L+R*xkHH;ZB-I8gF8s8fT z!%O`ey+hyKP{Yu}pfEhsFV;tM(sJZ_fj+3$8g>}-%@=bw6fsIil$Vt`N{Et4#g5Wi zmGxXb{BOck>RLLB*#-2_S=cFbXT@@c3Wv%Ms|_(aZClMl)l+4za;|z;%#7F}x_R** zHCyHBZj1#ja26VP?Wl@dw-#lc}dD zpOC?v8aWz%fxXiR+%0-UZbcVUjNog0f*-I6I(YbugRGzAXHGX>4}K-zkB$12-mdisa#Z^>-Y4Lnsh<#*;~amR8_lU;}e z=3V+j>e%SZ@Ui7F|J;ckCH-AsSMd_kV#4HRd|JFCB;x9Fit zsT!`@7V}@+=7e6=hE!W$?P$`P#M+4i628W>;=AhZ#udj^#eIvD#V*#gSN50HmbQ{S z7w3s~39j?f(K9!ZY=ob%CcPE)2V9hEkVgFFYcC3~z@5Mq{vPTdoP_;X_0ZCYiSmsW zrT1hkhM)5s<22LGlClSKm+?0VJBU|FYNMYeAkj)!NT13Winhu^Wr?z#Dp&bT*;QFx zF$g_hBhW`em$VSy6|qEop_?z@WwOr_H<>LN^)NSbQszVtg--;TfoeXj=cDtJU0c<* z^1V%Ft5(srY+1>mqO5|c`3>_n=5Da6tyz}gmZ#>)W~WhYJZMPL&(+t~x6>cjztXqR zPs`!th_cJGsZI|agoE+V<7#Uos_Tjh*#MbF+FMd6suJAd2f1{vkNuH2$?Q+>Lv4>;WLHWY zWeu+1`Qd!r^IL>IfG@Q=I6KrO@;yp{FW82A>QBlQ+6u;3)+n+udkJR}H;z9+FiI#x z$7>z&c!^dvP2N?}L6IS^D|g5mVtUp~QCG1+{t6oQaOoJya4}Q#r-0Aj%Jbtn_Xg)P zx)9DXn$eC@(lF=!Jv=6KHK+-gy=UAf%ty}8~WciG| z^VWRK$x|$sEe|ZsEf-C1j13Gz1J{sf*lhTzpRTX2ABH1)I%iu>O!naHi#ZGRdkiAu z3FF^pYF)hk?g>U~A@Hw3Ac|=Z8l*#X+rR$3P znY=HWeD^5kDMa#SvMjMyL<-aR7x}yRXL!rdnzozN5?h!C+75~wZSZRJF4qdtgWG+* z+#?;QD(BlMwyzc6D=Nzym+dYQ6t5^uDd>_vE>D-YHg`boSnF#`n)#0TA9HJSo@tL! zVSH@3YdB{pG8E_!>htw0^lSBHdV9{ZoF#gyex8AElp5EXv#lxlJxdBox)u*Fnwfv6 z;C$(AJJmNf6b$P^=YoHR8by{++cGG`Q%)1%S!qP^uQDQEDx=CKD@JOj#}Nt566+`K zO(;mHlPF0PC1mOb#Z8I}=^7=_6K(O@IG^UI>Zigf?=NpB^@*Q}D549(eS-eH?QA}) zJG~GYoO8&kJfUu+e2dPFJcjSm5O9JQsS557&5BeY^*TP95{ZU$Bef}`Y1bHiSu@CK z?Em1*JIN{JeBd?^)DoSLNYRCMRW=Q;5?t3l`3pr?MPD3qz5JfMp1if}xa5>rfX*kr zh$F1QXK*jF50M%&k@(8|L3dC|N^)dHsBf@AV5nb+U05?$j-6h$)AqJvd&SN2BV{W~ zKNqWtRu;_8zmqpT&yhPlw{h+_Yb&eNQq#QDw9_=mq%gfQem2AyHO6tqJ;q8yl7X-9 zr@xyM%vqryXoxi)GcGj+46DrVE%rRJgi^{c{iFCq!G(g~%R*Ir-((P!Cx^}kdIYwI z&QN|bdXe{eeBo`$H5o_VQT9&KNP0#-Kc-Z-Cb1&%@AyHw0lEe8=M$PFc23a5XXwJZ zckzmZ1@WKb(zTN{3si*ioBROU0?$hxidTylh~5bX@qFZ0<~4BinRG9F^Ow9T2CXy=MkmQ_5JxW`^@G@Tz)xgrd%87FJaGl)o{K+`l6=IKs zDvL<(NC!*frQM`#*j4CH&JETh_pU@4|S+q;IRnQxrqr==d&NuQu;u#2G$LS+z zIg~?@7GZ1PD45R`@OrLyCpw$hk5#%VCRfZWUthMp^h)P%=DnsQtRH@((P%Q>FkUu3GYU-SjYp054LuE~4P0YW(|*%z^Ck0LbI{zz znw&=#zAQ;7>sGe6WKof%__wmI_RZcuf+mpLwqR=ZS7>lFOl!|t#18Xvgv}&3Bvfen z3nV{eE!2~=t>Uuc7RO$RJs#I8J~Lrz!pZoWy47*l;!f&@#;=RtsH4RV(;m>YQtwg@ zR0L%f=_)AH^&}qASHTcoLrxp=1#1&CAFlh;Ud~Ii?=hDX%R!_Lp_!o}81WO(2p$8z|09uKTp}4GoiFVnbx5{KI!Ux> zt@$7hqGhPH!I^^B`Q!8A^MY2twbHuGIxg2_wOG$vb1g~M z<(6b?W9xs`>e!V`gBmm=*OP0^&CP9+cQsFwpHQ%>U~}QfqGqKD6=!Vqs)pLi%S9C( zY#}?-^TK~N*aI0GP54t}BxN?W2Q8hR!hA&DtvK2TkC#9G!h=4B*FYJrXATPPy|q+H@=I zdV8t;jeVtEZNFKysH#Dgzw$FWkDQe>xIp>noign$UM zsxzSt;Q>gQJc!Pxv_qoALc54AocdrMr?5s58uAG_f^CDFGl}~YEgh$LB;2{L__2a@ z(2aVc7rtDm5_J*{7cCMU6FtK-B2_FDi^LqUS5%1(k%yu^qGjk)YAWK0J_?r$lZB~* zWr8Mx3OwQb#;5R4@>=ptpmEE&*P$BavX_A9d!HOY=79c65dR_1hm4yV7^w*8jg010f0=s-9G>8P=23{er4Sxf677m<=_JRpG8yC?wUnmGb%X10L zg3p47f-{0$f;ECkf-ZtsK_UMde<8mkpU+R_?dEkuGtM#YKrV~>gfp2VL*GQ?~yx#Z5>~H3XgG0GNvoWbIo-(~)wnhIY2S z=#q+r&SL6Uig{jpFiM|+L)`(MuG9Weezo6%4%ao%A9Ow^DBmZ&tGpAuJ-iLPVz19* z@qG8Zf;0V?XS-(^6r$O9O+&ZJc)Z4X{>1qj1{LpjG^`ATdh|Dbb+%^#DB~+V>)^IN z>^To*>66Fkv3nvOfj0rYvA?4?_JsGd*X`9JbFs*G)mIFr_*i&uJpL|$1K@GCN6x4! zI0#(EhTskfkngXIfRm0h@sZL8G?V^dNAD($VjVI!1(Hhl|*9@N%c|08N4DJK&zue{AVcdFL8uvTr zIF5Whv>#oAcF~GWW4|O4aTT+XSg@=&qNk`5-5H~B^}hw%y&?38-N<;AAj>ug zbb!a;4#%U*YZ2z+2BaeUAi@3^)3xf6%?M2w&3$8g3^_f!30U+8}?COSA|a9!7i!rcwsyOaG3 z{HsC!KMtn&V{nDD{CUtP=m7zU(s6;LKmw@4EwFRx7Z`wdUw=@@d*kykC_-~FH{TN2 z16B0Dz!i{ce+J5tEvk;W!WhgR&wv>14km+^dl*w>DN*Um#PBgv^CO|zg`$JN zn2J({BkxEcn|m2qts$UKQn7xYLOQEGxWZ|ekB?>@hDxEuOl}Rd2@Am|+aLk6k~~7* zCqF=6b&+9`K))J`&0$m6L9(1Qk?+VW$Pz5Y_jMuT(VdY>Tp<1-dO@elW!=CGy*ttb zdgi|%2Pc65eg%2D7DyaE#>~70J&GLH8l*9)w09so3_z~P1lHeVL#o2k-Yr;3~epf#>Om_?=&T=dPJS|Y9Sqs@V0n;@8Ez-!VrOA?e-_+gTS$hK-e|BeZz9{z z0Uu`qxEYWBm*V^bB$)TnC}tuPk@?OB@1zfS6wi=(ZHoMO3UaKz=9ploXgw*2JB_rW#8ehS%^NUN~QxJg-jDO6|aw&q2Gbpv4^<^?OKEI zXS7f&N^y6-inPI0s3O0n<=LRa9z?H2H{222m9*l-+7U!cFOvJ$k@T7Y6{7~2WaY?NUkBZH2DFSupgcs7)&GhF@qhTa=R&jT4}G;Z z(y<&Q?EIn1kO^1jH!xhEW7d5wl!BaL3XaxE{UJrpJyB#^st@!6b{M%7vLyzM1 zFXrUuLgz!5LbtH*c?>teo6r|zJ+ni(IL?6(2_-!dI${T8X2-$Bwg&6y1u!%-!VXN& z<3S)9j2!ry$Z;qZ=}5NAKmZtu`TyqVC7g!>kTt4O0s}VX6kn%^sMj&qbE~7^s2IXc@TIduUuFixcSe@zIvviQWk7{8*%C2VpWc z0AF{b|B3#lPSB*1p-kw|8O1pXb304B8`SMk+-2eSmm~cuSa@-%P|rT%MIaz&=#cS zY$0bjfHlMv{s-OGZNdkU{+x#M`ZWAGlngKKIq+;cMB+fhB*C{}B3;=H3Gcx;+D>RG zlOmI%UnASVqFoxjjh6Hn5RW!RG~ut2q2LMdD5t>T`Vw7_eA@zw5x$7_(QVO_VE@#m zbfca?2U^PCq_Z!8`TqultHD%%^dM+IQ*nOe zv~JV~l=ol+ZKgcKY-|NB0ghH1B{uZVUmWsMT%qQ{m66lY*0lGLe$oEa^~{FovKY^> zg0X%C`CSjOmK@1CM|*+piA>rVdIwwqI=t^})YXiCh)B7%)dQjGEE2jQPQS z(Rg}mBt=O7!{`P^b6=mx2F3yZD&GY54hq+&1IvO%6NeYMKSqVL-N9XQ>rPiq7-Qzm&U-y3yOqmrT5;%<{~HH{z79Nn{r7fj2$0hD!L8{AX!x7!xZ$;GNVo z8uja|w2TS#9LIbAN&5JRJGehuCv5O2>9yEmmp;-N9Aj_vg?};oH}a=XA05uTLZ40i z8@Nd+X5V5Rqf4nbDTjzo+@0KSoXxS7~nQ4@^-m(f**! zj`(S zz?TR=oJ(myO9+3bwh4GbA^MZx$KWfvA+S2Smr4(P4Wvpc=7ka+D7>F05V4iHl!7SC$0J*;6qq$s^l0(&U6qK!PKBh%?&_eN;C3%$nZ z)*#RSK9~|Z7-UeA1LMIgzvTaq%JUxbl~6i|KLl!ETCzKYj5VkUTf!XzTf<``Svaew z{r7`+aL-4p7D|KV+B&rh|8OQ0nSk;MA`dUUT zIhoy>u;F=ZDbbuWgfpC2%9LW4^_n#RK9WV8uAC*9%K136(Z|z@l(IPNrR-SpAM!M@ zj`bM{pu@D4jN42O?*BEBq`%4RkM;6bC(J&|TO{hZ(Iu20m`piAa2X%*;k`UPvM{(j zFf*tL@Am6Le^TxTJNR~Zuc3G4lJCC1uXmk4BVhApdH(c%bbFltc+UGOy*hUVnjDu` zo^wp|@LVh08yyNqCzqk>fNdF?<7S}w@1m_~)iXz??R@#u(ioex>RctgGN$}Q#mdUL z<=x7XZEq^-LVX%m@i+R5$5fuE^j3N*hdbtZSNdo9rg<|wX})GbZs=aPJ>@u<9B1e+ z7}r<}*;O1ZH-Rq~7VujMj`LgcCs!jQ1B=wH!P(OJPlULQ^jn?kN3zmQ2B2Zw`H>?6(|G-bWumT{Z%9&kJJ?!hrw z$bG?|C3q8;S`JwXAz-&k|!v-Qx2FvVzfhp}eMfZLH05H(B}CZPtAA zSW^qjQgb)+d(*3&iP^2QC+9TQ@6?y;-x%(gKUmfIjf+N946;vgrFaQA%0Bw3p+`|8 zt&~}xeTT;uEf$}bE?1mUxiqt5UD}RXWlS5@dF3``7v%uee=3K1x4Mn;nyjm|MEqLR zPB5O!Apc?*s86F#kXpLn&VD*_3}mH1I3u(@m=u`o=La%^b1~68hZXrWy(1y#c0o2_ zr({0#JBqwgzDl`EC5aKl-H88@G&*@&vM_mkwX&qO)f!f7m$WP~TQ@QGQOsb?RLvW; zU$tE|N3m9VLv)SblzWf7#k#{>&p1r~n>K>7CSrjTNQI~5yWw(pvVSH0yTCP89y}Im z0T#?$&=7AUJzO)W4>Sy3hrZuCbUNtruk&fV^F8a`_g%Z46YQHRca=v=@0L^+^(~|n ze9t>%{cQTf&@V@kbuZ(3hC6*udd;-T)M{x1Q?LCT`{U{l=Z`)=52tQQ4WzD2|1Wc* zzR=t$4QR{j+l+niRcC8l0A9#1otJY<-aSJXp*%0xS@%O)!J7#RJ)e6E8$(- z(-@7)BL5(3Emcadh&Ku2`87EZjpHcU-^fGW<+SzOnNI;F-hTe<6Y*D5&RVP zmN;ddRMMCXttak&{KEuFQY5KUwLnr~;)R5Vy7*Y9<_}el;tSm04P=9)y(Ei7#c*KD zc}qC2NHt+$9H-TwD59@HCb}1`pwyuy(>pM_GuNO;yFNLX%|Wl%Sxlp@a9Z&eqW82j zzns5H_+0RgFA#)ycezj49Z3PPiaC%zgnBNrFO(QK>HXkt;-2qR*i&q!<teIm^vcjypPExAr$)}5>>Jrd*+;WyXK&1DZ+K{EWV~y5VlWss>(A&f z>ZOJahU&&zrb2VP^|iIMU}o`O6$Ost-o}v;)V>TRYdSfEdr@##M3r2S1|{RL-Yt`r zC`Kunsy*uJnroU=O*?gkGAJ`3AD7I(&5dP~%th2!k!zubc=8H{R)-Tqb%MhJ1-=4! zHK+L6`W@(G>WPWbq2TmzdUQTrK>W+e=66JbgejBA&nb4R-0E}i6mVh&#axJ4u64yK zbw1s$_y+N$Ze8rtm`Un7%I@;1(v_mwf>yjNwwsuVUX_zfE|Y`0q;+K7r`5WPB>Fo9~tq#1Q+>pctL2q6UblvzjUUE z(TLudx+t0%Y8#C4H}F2fkv?i?SC*8&D=jLyQe3BKav`r^aDGDGtK1&B^Q^Zlx6OQW zbCVt#_B=yf!$3o_VWXj*@w<^}iZ`juoy=Rz%gsy7qs>oDev{icz|__3wlvB6o*!R& zx8ks4HMA%rWg@*g(Uo(XcUibaWD~s+{U+Xv#C4_gnEVgLQN>DSbJY!1clCNzl5&#V zE14ro;jiaxB?dD(P$kiO;T<6hSSG`QrD!-Z1d=g*_z^q^XW1FJ{k8@g1xJMb3l~RH zDSyFW&0!aErwejKe<8`xM`=`jQHRt$HM=#RG!Hf3HH+}od<{+0Onph!OZ7yVqF5&P zNrjTfLKlA&Zwtpo&Ll-B&Zvev}NaUT5Mb z@tLfFR@R%`y*xR;7k>f28}bmxxEnc_u!@{un(57yKATpV9M&d%H8+ z-nD9g?P~e;(%fQY(TRdD`IbC$?gQ&Z%SUs(ImJ}ZRAywEE*UQxcN^atUl?!U4{kQ< zOgD`kP4`VHCaWpV^aN^&&QjOfJhw~!go35TuS?h39yk~KT86+pr5|P{u{ZPX2u6tc zlHt-g>0N2MOf6q4H_GcOEOJt@PQg>&SD59s<=ds*B}rnT(2w_XBVrmuMjJ%oM{k5{ zh2o(4E8tBQ!}~WdG#|6i@o?jf232%Llmgx3EP7S^h^5;3e9V&(Wtb${3^I%?mJ-LD-08jYKQ!3+5cS;HUg=#&aI@ znCJ9=K-`*usm@Z0H8LdpEO^D=#J9zh>JmC@+kLhH6^Z3_%bJ!7O4=6pDH>V0pLoQ`5x)hzlDRv0ZEqBBfTMulRuTuLYC#5B3*G^QA4>_ zc~E&$*<0yTELO~s3uO}|3q&IXYTixuDdG(C68#qSezbk0W_T9nO9R2?S{Ygzii8Hj zg|Q1B_;7SDp2;V}i^icd841kYtSGUS-IIHkH(t<6bYDDJS}B{LxS$-XN>wS;`KlDv zWaO-GC|Sz3in{VRStDtG$#rqE_&8E(G^EXxd_jqs6{AXcClZZycp_Gj1LU8Yv!5cz^)uE-qd+3)N?Z4yG zgH}@E-sT$RTxHd9b2)c}3}&k~PKMi$ZY5MDsf24b9ze&9RKNRJSBp(#@aE z+0gvvn7f;urcUO;=6U8p<}+APO3eE#yR0X3d*%->>`^Q)TW33GpXq+&(}i|MkI@*c zb?n-_x`Ha9OgvVyTbd$!CI3fZRWws>SJqVhP;G*Ht37gh{WOgCD(RW87eav|JVX^Jk2V{(t|H`ysE3r>t< z;-^r#E(xQ8o`S>tZ@ibF7wFgp#0}O>JQMY%yQ!Zkx1&aItuJ7nR4eSj^l1fV@-0BV zTM9;0$53i;ELsGQqL+0Y?k}}`bG&CfF7(T{am{nSbkH3=?Eh7fRjn(B+h$Z;!R|U# zs)ff32&JN0g@S^i`496x<<`u-X>E;U-hTMxT3I~iMwVU{Cvw(23(F#~479wlOu$Og zJa1C|yMjsPB!|n$D;h_`J@3g1PePkNv5O1P@1!BcO+$Yz|yD5^DajGPB zrTV@`6tg>qrQNN~)P6=%ad*s4%>wlRRled6`BJG&{8n&;ca1}3w<1M)E22-}gkgmHgic|qU4S|JhQKzcAH2W|bY3>_pT?2i?lpTFd8WCK zx-y()=$Kw?e*@L-Sf$0*-*&ztRKC1i4b}TvX+}w~xOef)qKk!v1@Q$j`Tg>qA!EJJ zTF-h3nbS!YuQ|h9g^zPsOYWP!=6RNrmUh-ct19nm{-(mh;=^U}wxTMh)9FbH%nF~R ztfjYR9U`xB_VX?YW{P4YQ>ANVr{#|n?~ud|ssGaqh>>dFYlp@ji+vWmAyyUJO}i#$ zx2A*ol=74OvGl6=k?;fG%7yil9L&mM9HH-}U4sJDh4Ka*_U`avCPRC$LB;ZencfMr z$+gHzG)2?G4qWHY>E9VV)*PaeT*Hawz2dhL&Je8@@06^Rc9ofAb>$=E6XpHnVh~dH z$?D4P;tBDqBw4ai>=$(xO%kpa9Doz%BzHQe6Wd1IXDwy+XSAYAXg;hbW<0Sp4$lm| z#cX?DfFHPwOvQa)V_!BBK@Mm{H{A*DyDpV$mNOrOoy{QX^sRbd*`@M;%~7$a;$C^1 z^6h2CrCm!?O3I7>Dt=m2TsXM!dcmjs&iSYF#Cb<^yXG#n*0z>grdbA9s>~SLNIF-h7o?aEj|T&p-o?7~=KEK|#i`KVT?5*0F;M_gCbL(rDDg7cVk zvNkZcFkaJn^og_-P~mUlIvx!QZ9b@~bwDdF#}W6UZ>lctpVcWHpjXYJKVZ~mT_Z-a z8*xi{TLeYIYT~| z|MA!HCUa|Y?vVotJ98zYKV3=-P+mu`N8aGto`L7XKFE5t3fx0`B*(uWRH?b%N62ga z=HBPBI2$@QIzHN^_6b!PmE9`e*(TV&S9Gg*THXP!8D`nQ(kmq`v2vd)swj*DsbPNp zmAp{ygxs%Iu5|`hk2dCr>8NS1sj;bvsiSGS>A7iz`M70{Rgm{8Ut9F7BwDuEHpbq= zRT~qQ*GR9opwEIMr3q&!Z;oKD$Sqb%zsRJD|CD^S4p(#^ZO2$~oLaX_m!`X+8>F+v zHH(XdFSMpcp)$%1csj2X8u>;zY-^Br(8qj{VW3xn54Vb10n&Uk$|E?sIMJ=3?fJv+ zF*kk%0&8pV;7g-yYD?NKI>|iE8b^+W(>IUbQ23{4nRpkj>EC3zGJ(7uj`c+O0yshE z%72&FkQ-!YWPi&_rHkR%=pY#(UMU(OOct1Uv$!J8Sx``pFxxVUY3S*pfW#U(jdsBV zxY|NU``Dq)-StU*$GtSK#8cbd%k_`*p~GfxW&RttwY*d|LpBGbnJ!|b$St_W?|}EwO*rVx z%>UpAmC=~gx|F%mmzeVZfG6V@y)!4+Ft|8y(!bR=!&~6#}*}>7oGbXS#@;7Y^Q%APvaCuJt zL=h?3F8wL1kLShKYQ09M?HoHQu9I$kyfmSHf-k;j{P(!}u>)f!s#_{2%a)1%7L4PD zNF}j|Sw?R|E2sPf$2Z}B{Qp$+#;gG)c^wqIso_sZiwmIPjf}pg)TX_pS1}3l3+D`< zE{ckuNyo{{6~|R))J-&}G#fR$G)9e8b6xWRUsuz#(Xcdo)p6=K%Atxx+z0wdu8CF& z>htIvJrT>&Gj`Bx(K=AKA-Qo5?8Hw{PKwYJz=^t`pR|sgMQ>J1u>ShPjoL6+j3&#| z(0~6yA8iU0=c&G1-nX75*mGn!OjRzMxWZT3tz=`-Y&;xERxj31nEDB($hJ7HCPKi%xOJ=#5*@5;y0wZcB! zgTxDll6F3NE5r)y_pb2BJoDk)=!kau>+Y-W)1H&aS%33K{j&lD;#Mw-jc#T3A^UUx z6|9#GQ#4o4jrkdST}MsSRC`-(OSSh&cM?+*8YQ%k{}QK&-5+y9Q>k{Tt}0^`&1F3# zZ$jE$fLm9OWD&nH)pQeOL?k5`@0WN>U5U;q_NJBnDyEd(E!l;65+#4O zm22*1sF_2{Qf7=ui~L;sW7YTg@Ahw#zdOJ4f3*IQ|AYCn!_VQV4N`Zf7N%}b`z(1Z=nlJjyEHDQ(`;|+usam)q271CJpbB2df-;D zYnTO!gpTH+zh&if2q8tfOR-e#*7l9>n>0V!n4Fv(SM6Zp)Px;aVS;fU?edsSnj`8W z^&a&M)iMPsn; z$JRWKV5@MmNGARwdMP?7dM_Fw=8E%#$M{P)kBG@|M~D^8UNG|%noPP%50PQA@f>hx6GLt(=)ncyi6BnxYK&4 zEl-=9_Bm}r+OV{qX_wN@r~k-omrWRimaVyUi@TbZT3O_7jeA8q-hbCr#l~?fcL}72mV~TL zekG3}-8`1lk4u0qcvB!3C5zWcjw3X~Qe08clsWR>Wj66k;dH)(dzB+$|3z?^>u8@S z&!VlPAH%{ENxwX=|pXBl0*cz!O?(au{Ce=j5Es z-k)_dvqPpSBPr9DQISzS)0tt+uxB>SOwBlw{vd5j+MM*68C6+(bK;E`t(yu26+EvY z%wYb_{(~zLj1>2lwNeg8+GT*UgQ7@L12Z#wObzXxm^U$_wM8+-s>QN$!5nsL)ZtrAYu{Q#`Xh*ol*xuLPkoS#08dOCyXt!CDIV}bG;&k~?b#v|R zxM*B?+~K%gaou!Zb=LUggw*(l@mV^lZfjiK*o2t3s=kU<($1n>-e&e})+;1l6G1wt z%{ULWeLj6R<2~~|YZ+Sa50VR^tK8zg;|&q?5gnI2lJ!+wR!mpeCQo}UUE>q0mp20`{tzMpo>uTK6;0Y!;L6AHT` z>k!GUYo%NCrU%9`#`cC~dP5F1r$P3+tR-0;vpZxj&)$*UFY9FH-HaLOmb7E3V^hba zPEPfuHP8H%)!Q)Eax0%%(b1g{(XfV*4>*sx2Y5bFH(5JnE%jVg9aTHkLiH`}?>e(? zZ2WuOrMO42Va*eTLuBQwXJKbW`90DqnCbn`-NaSq8si<{j|UB`n^*4M-TpHkE1#mb=V#G7LitdRF$Pk)@rqzKx;{i>7l(I+eJ4c{%-uH_=WLn;;-qt#mTe@ z>NNRUNt)m#=TG7`rtAv(Yx;foO+GNpaH0GQn)PGGRIH?Ek0-0x-MG2DQ$mg;ReDk$ zQ3Mo9B}4H+wnmyFu}YeVhloU?0{(YiD(4w!pr;5rYYF`#B^+KE^!aq&1|Glbn{$_= zxN2?XlZusP<#5~&D%_RdHg74`f{vJJPBJzz%8Z2ZfFVOaF6UVmnWfBHmRXVcCUbsf z&CK~3>(jOAhBP8wn%*3xb=N%CUWwZhw>+*S_F>E<%}zy(_#t;Ct10~gH6_Z8JPy|PU+`+Ym%K-P z-F?HnZ`~uEO&vnV1IH-$Ip68fN6POE6}g=|R*)o#m2XyNs~2bvYaVEZYw|S1we8{( z6M7}ht0qn^OWK}T7;izYXPqJi2L36SZPa4-XC20@_&meIB#0VB3~MYimobB}ot{m1 zAiHCN626vA@TLhCif&29%F?hq8z9>+bxB4@T%y*(ErKP2{_rTK@V{|YoUUXI)-6Vq z){oLFZ1eZT`OkCSb%q>aJ89S31Qkn5rxo`ooRuHSW#w+Oj5A-t3M(|OHaPS&14Dm2 z=V*>U>t5E1%v%`)(-)_$Nz6}bm*5_<%&S2B0{E8Bv<6xN2 z*v{V0Yc3cgm?at_`=IEeOjPsK3siM9^w@iGt>afG{F`twez=Yi`$f52T%CKBIiISb zFrsrJ^}<_%&;9p&UBN>*?!Dm=yQeudj!X70cCE9MTj!q_eos@9?J$LokqpAqM~U34 zSf#qJ9v>r!mFlALM-%_5W=P&vomXR1^&i#D31i~kXr?OjW%Hz5$#juXkjk6Gslm>N zzxV^1%?B};Ls7be%&(9-lDdsXGOfg)oJ+j_kOh1N|KS&vV4x#r4Ut-#)TRUHPd}JBR&mATBT{uv`qZ2C~Jv{f(ob)|1F&r11?c3+B=R9dw+Q-^gIhME< zcy|TYM;VM_Vj(AypC;%c>M9;3*(5EJ`4p+@GuoayGO;{~o4l_2=o;&5w5pMp+%riK zU#gX8N|8j7%Fju6N*;+Hipqr?;Rt>_Zy%?Kyg|U%&tTB6pe5ljHI?>}F^Xj*B4jF3 zz%k@Zq=bL6rhrbcgSi_nzuU|bRtsV-5g~*`6P6NtD_Yqowj*g%F;pxLcm zA9pJLXTtr&I!U_{y$PCxLAumfLOWE`L)}!BsqCkGqUemd=Qn9R$#0@Lf+;*CT}e4> zGNV0|2@YJTdgQjhBSHTN&6>@q2PkJi>)}SOqlfr*xG_4#*qBwkMUURd=+H<~_<3+| zV2%H*&j+6G5YHvhW$U>l&anMzl^By=O8JUXV==F2dclP}b#A_;z}((E8=8gHFxpU| z->9FcKdYajKc>&s8}(oG7xYb#C!LkE6Gwlr{+eN+DbnPo z2@mm}e9tc6Eax>Az$GuKl8yzv^oHUQ@qO;Ye_E%4wIOd;HEUw7t*)V?omt7u+u3z9lp3zaK%jt6=SCR7>>{; z;L=aTT&A_}s`sJyk@vV~o9CK)1Sm#796cRIJH_t*A5WTJb-uDAII(}*YS`Gebrp}x z)5;1!qUu=M0?DuO#YIKFB1Um1aCr|D8;jW`^-B7~Uy)awS^TwlPjUO=YQLfiNITv$boTG;4M-?$;AC-HanB;L5W^#QU3t&B zo4IQ4V~n(M2UMyj$ma{mbmCv4HV6PY%sR}epe@g(XF&I1(cYses}`ni z6tHPup)c+R+N?H(=VFq67(|MPfv^5_xTf3rX8D$Rr+Th<3OxJWHn1D%?!E4juA1(E zv$LzStBdQfvo4Ce4m!^|dLrc^0-KuST<*xUw{XmKNFB{VsNN2i_ekvI_c_G){U7#y z_R;p1_Gp35*{_H3M<7`<105;uBc>IWmFBazjf4i4Rg2i3wPrXM=qfcjQiT>m{_A|~~?jGJyzEChykS?eztS($BY$tpwGz;~@CL+0r z5ETl4gPyQd@R2``f18)dUB@lwFr+6M_Xc@bRu zn;^ZMgj;Ga@s&6S_RAYWN**LufwDj#cSI*%fn~{YM z7d7J?dTmnCGNr@1F%#`I5lR{8G=8*drJ*&Z3M`8n;5K#&-3OC`8rX?UYl&|ZuJOL! z#6Z!nh5&z+r@qgHefcGi+dIRv$2%9-y8yH=y?c~9(|ydH=C0KIrTYDnn;?f3VWJyWOr9ZUv?RRQG20ZC5pSuIoIq zNd{Mz%Y!qdcPDu$-gUl5zC-@KfoMPof{X?_RyjzMwU7Y#M0rI0i?)%zgVB;%z`TTn z(r(N{W{^wBe9)ohvHxNpVDDz1V&}7maRzXXab9p9aLRE$KC{PSonV5ytZz31apG+bD1l7Y#EFotjn^A#m z(i5aKyv)JGO4b*+)$cJrz)>-Z0e>iZhg|d;*`qL|!!EO0I4jsc^c2a64nYstWj_Djpd0+BG3W{L`A2z2d8@n< z?7D|fT@*>C56(WW{;u1uiS8_S4No@^zgGKd`xBAIXc_DT*MH}5Aso{;p~o93_o+5o zUpfmR72onSMrId7;ltagD8CH-i@~otu zbT$1iZIX0GhWaq(v_B(voeWcLJ7T-&=J$(!bU<5zpZU!H8(xfse%>c~37nO(JPE!8 z&oy_ME7x<>wa3-lO`y}<)Aa`Yzf+EKd%EM3W4f)KeX65@eHNJCeQaL)09#9IBl~W9 zvi+)kqhpu-F`N#kY^k>U_J8fcwqUpiW`fVM7wg7%>wYxfqMTQqGu?HuKDYHX2EFrX z;A$X_w}RSvS*(T~(pp+8-3p!uCEF=mB7crKyQge7ZX>sZd&w=}o`O2}ksG0?tZ1Y- ziCL{0icg9)inWTGid^;z*5nUzgZvw=<~3BdH0(~c9wvxxgOS#TodpWoQ1&zXgFVlR zY#Yo)KjkWOCz1ag$qnN^afi5-T)F%nrl$YI8G^w(@sm7G-c|lc)>>Xc{+{{C%wq0K zV?i}qCFu&o)(GTn$I)kDeXC2oCXQnV_cuDLseDzT3-3pj`Bq>$$iJO2r83;-_l$+r zrkAG+Sbb@(jn3^(jq{^pn#BtSr&{os_ugz=iYTIRrGk>(y0#mw{IoV`0?KOvh zz1!Zj#5@W4)?daT<1pi0qoZ7J^p-y_8(AhTk1IP-TB+va&TdM1!`>j2#`A^+O zy+zeYwLsZKxk`CQ`JZyVvbu7GVkdW&y&|{EX2F273n#L0rU%$s?_?|GD_9Bk6p4y0 zig@Kx4}tcGKL(jALVDfKDrh<8Ats zYt7wfU&}AcHp~9RJZ_kDlcbxZ1XitU)Id0H4dnlPq;i?GMzH6H$E-*l`D*g%PNv$sN@cq1k$mXq~pl{8e= zm#w2YnpDxs`ij2X4)%onKbf6*AkBfV#fUE2GciG^!q*AhhXJb|SiP;_z~X&g z-vi%BtKFSLGd*-APLmZpK!K zo*1^#uvJrEd7P~*Pes+gRQg7G4f9W@BunYb-y zWXvS36%xfo;teoZUj%ykr}#`bYy9h)X3t^df5KRw#GWbyZ~^?+QoAV$lnKl z8oukkJmsz^Jl)cQYzyMvd!I;2fdW&I*uqHaWxIjmxZc8S5&*3@cQm#izP z{kz)Z#2pn1j?k{WPaq2RU}R z-}_n#$4OF}C?A7*#vI-9poO77B6KnN6>G$uiZ{k@jd!9>ZmJX$cR21+{M&?@NgtB- zCw)!$RjE;oH|$@-Id!DsqI|3DqO6L15Ze?!sM%bZJd=4yr=cS=C@>r3v_^ru{3x+9 zNnx`08>~53=s&1BB!el89;kzi7CWJX_DlQd-EAIY+*`Jw zT3F_n}S7$oDDl^zX*LO?~s~b<%6it4lAP zFBiY+`?liyWvK<9shnnoZ_J;3%cUOWZKR*qgcn8VBZSa|(9J=0f-8j7JCLgPD zzwX8Qkqrjbomrz+^4$v75VN|LtUVHON}}V!f(;4k0o+yD9A*l0iy0~tk)9qSUn28M*U7lz zZXj?^m_qEPx=XU9N?ALcG^Dc0jEdPH?IJZ`MRj79Z74OKe2vxSlVIn|0{_d?zV;To z6P)L*15F1?1BD^^j$dz(&1;`i`0dYcow8ql-SA~g#>LbrDgEAkdlUYq;7x_M)!xl~ zH|pJuw=>?Xc?G+fykH?fyqU0HqEkDe)RupkB*c914sYtKH1f>!j%I|ay>0ag&NNqgx zKysN(5JvkV+$zT#tHpfH6fkx*9x9(vHmxM3@L-KfnlpZPnybpUXc|Yad^mh~9M!(H|llMk=SM+{q>itijvqt3YE>HC2(p!}qf^LQ% zjGPsHBhnpqB4oS1uD+rnHAEg`i@#XCdOfmHa+A#s@78Hw)l{*6$XbPsoaFD~p62T8 zS?v!ZG?F~#t!#%B+!)_zdrw$1rI$UvCEd!k(PxBEejk&to zLF&--h{rMUm8gX4iG7l4CUs4mpD;T9W?Xn&wMs2xw^pbe-6djvNKO4i)e^QTBayU1 zAEBXSDQ4nQ!9ew6_jy_T73kzk^?dbsy^8}WVoUlP^ADSn6rYRy}HZs;Es)+TFfEodM%<{QT~G}Wq~tcdAg zSjD~}ErESLo39z)kocd8q!RN;l1hXJ6fVJREj>_pCOgYjDkHosq>mv_ z(?HpUttI1_0%?2Z9TO}oLFTy(S5{4K6JCMgH{O3QuwST7exWNcQu!1%mEFx=lh2mT zVqSn*>Xu%DId29?9G}3S^-8-*$4cf?xkQ<8Ah6!I4(;YOjtjQF*2R{V=I*AR<>nH1 z;l#X{U#^^y+4sLnGFN>$j>@*`v*gpGjB)8dQonv|@F68do^tU0!1s;bsoy<#Tky6; z%Ipta)0bv0%K2IN$XwuyVMZ!H8`6VSa0W~W4h`O~ucV7H^bDRHSuO5&<(0L^*Wc3c zL4%uhbk(24zmBY|Z_I9|uJPkwH5G)*)MROvEJ}V+`jb5Ak9Ve<-WT^M7?Zake|&Md zaiVigU@(1IK2`aL`j>hgnD+^)ER{?BMmI9}LipyGhm{f&rzBIAvy$g0-A|YsH#Ro7 zLWAfIk)y)9h86`4(@)YISL!*b{4uI2e@Lf*DC&dBwGBO;oF=mTR)2=Cnm?HDC*GsJ zOHa##6n@20WkW@0Rwj#-q)^Yno;*g!O54cZ%A0a$xc1yPc`WmcDi!+pw|kbl+BpAo z@b)YAb@perpVm}!QTeu#69wFF?ay{O&$Ab1C1&Bq=e$A0YfvC+q7sn^psfBGxC?AMR73hq$KuDq`A5vmB&hPDe%*A37# zQ{}3z>e_|PiIr82s!KLr)kN1=QqNRX9~U0BM%|wwh||21_ah4}l@`mK^49V;(wam^ zUy5B}(v~bK5b}2B>x!QmA30hC{-ZSVe-$588`LY*9@PxhV-=|xt1Avtg-?tAEB0DE zlcY?RC$~)6n(#jES?sY2JEGe~{s^lX(#$XiGcPq2-Ld1k3Yzgetd-Hsa>-5V1~FT> z7O3OT^v(7!5a^L`4BEz@roPFsn`p$wM-LGby`a6GX=8o>}hVYq63oWbJ!WO zXsMLqM8Ut^d(zzsnXS37x#;ZCwx<@xe5Cw)iKXyPp5xcBA6;_tv+HF4mzA1zAgh1Y z@vn0;WnY$l%1$4bwl4MV$KxOKKc4B3;N0QH@r2Mn-Lv zqCePL|0xG*M+Vo6%&wT0(5Z516<3uxmBqxS@l|8T#te$u7|}0$NZ8SkyVz4M)!b56 zEE7Tkeh?<+du4u+KTK9a0yvxdqFAU{&fUYk{86%renkzZ zD@Z5EZnFQ+IZ-?Tfp+NO{1 zKVC}Rm_cTB{du``ijyQ&$~!tw@ZYG)cMeL`ebjE!eAPA&&WczVSG!td-BFGHZoISM z{yO1RyH_d;8>>~Z8|Wjb4^N=$GEe1GxQFa4St#ueTz8GL3@STYq%Z7Rm{#1>Xt$+$ zHVGT36VktBM?fkoVyAK)6dvVGO`g6mL=pKYre7sCAv|eh^3LSMP+t7+!C&xbP(r!7n!{c+*P zTB$@@lXPuHjf|*_78wIGzGvL|Jm+g>j;kl-A48){hL%!Bcw96opP_bSgGOWOa2S=bRIC4 z6?Myx%!@84E>@c#IrIHh$gfECbdau-{J@)8huYgS`6bm8{j4xo^uyS^czxoN#EFTA z5<(Jw##t&Ih^<%gTug9u_ed`MV930n&iZfKo0^vD3Yd`O*cVKF$rEzE_#b}(v&riM zSNKA~K<=kx;7v%RizMf9iufOexgQlze~|QN666x>m*T*4S%s>J9lN*%WGi9>(lHuQ zKo<9gzz916i9X6*(LT?dQ+B&}eBn9}`A+=~`@J#u4dxT(|9G6^%)b8h>X+cpOERvc zv+1+bHl}q;JDjFS*QfVPU!Qh0_07jkAJ3;&Pk;XT-z@savchM^sqTuDMV70sqkE#e zsvnCE$ueCFy)M`ox;my|g1%bwy4m&P8V;&Ay@or<6Eh*ytNG66GY6!bWwkjUym6h? zOO*p;kBCxljBQQ%hoW%>PYO;Iohbim?da|lI48^_!eK(MOGbhjF^Ec#oRgUpn{~}X zqoVv3FUQ3sc1|iw?3eg&e8)=LD@tO{MU_MzjZ{aSiy9SmJF0>a?_M_@_iy0_= zL(j%6+I6xQrgY@=33Rz4h!MiLK#K2;C&@kCxy0_V=9!C)f0ktzcP)IMSCl*NSEZkw zehm7q&*8HhWcAKG|9MSDMVyN2rLIYBnVOVVIlX&&>x_mO!RZC*#c9U$x}RO2`)6=ZhIlG8$wYOdpe>%jliH zH@$LNc-oxwd+CW^lCnGgXjiz@sCEwJE0F5viumQk}e}a;xYtI1TiQkSUes~@TxXdY^KO`+yb%{O(L>I3-18pTYm0;k|eE`kf; zV)5;3#A^uvx3}%{u8deGd{vPQ(SO$7a z8%g_t;ju)sZlIYujiWX{%^^VBL%Us?wSRkMcUpLd!%;2TNP9_986R zEv+n@E$NmH)&lE78w;viLv#Z|ojaY$uIH|0?v9?C-uk}o{$+t1{1?F}nur|o0=0_n zD2bAmN^dahWNqY1_AR@g>ks$wGt4HxQMCk_&7`iZ>8=^C835DrcuhaeIL#vTU}tNl zBRvzXd8VGE{te&tY4obMqSKv&{ni0)88?mV%f)eT*}m*Mc~wv|C9-p15;lOZCyI$- z4F7+nS4-oi??7lPgXdmOUqQb~Ag_@tLI0@&5|tlLgDqfKSH{f9-{NqPZoUZ@;E!1- zOcy4>#WEILr)EM;fezUvW(;8=n_)({Zfs=F_{Yr`(n+iUY4g0rzDNZgtH6Jf2` zjZl#v$yHQS+D@O9jFJX}$GAvVS6+-1Y9}s-8xFo&4a|dIQGQgWDNFDrDh;Yy=x47~ z9S0}xq3V|EAm(YSVq$Kava0eedMR}kJokfp#9iYKa*NO{w1a3-i@hPQC%-T2AxnXM zy&SBnS}YL68I~A$j5xJQCf TU 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

    {X9}K$**)Jp|ReuEdTR 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�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%0AFqVDpQ?YMKdC>WU#(xGf1sbM->Gk{ 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" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Fixture playback", + "role": "assistant" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 1, + "contrib.livekit.generation_id": "", + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt new file mode 100644 index 000000000..8a68db4f7 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt @@ -0,0 +1,296 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 1, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": false, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Fixture playback", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.json new file mode 100644 index 000000000..aa436f681 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.json @@ -0,0 +1,273 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Fixture playback", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.message_ids": [ + "" + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 1, + "contrib.livekit.generation_id": "", + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.txt new file mode 100644 index 000000000..45912445c --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.txt @@ -0,0 +1,210 @@ +span_tree: +└── livekit.agent_session [task] + metadata: { + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 1, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Fixture playback", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json new file mode 100644 index 000000000..bc6d90082 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json @@ -0,0 +1,671 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + } + ], + "output": [ + { + "content": null, + "role": "assistant" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 16, + "prompt_tokens": 84, + "time_to_first_token": 0, + "tokens": 100 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_bENodbPAhcTV6SVZ3i3LTDEF" + } + ], + "output": [ + { + "content": "Your order will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 9, + "prompt_tokens": 125, + "time_to_first_token": 0, + "tokens": 134 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "lookup_order", + "type": "tool", + "children": [], + "input": { + "order_id": "1042" + }, + "output": { + "delivery": "Friday", + "order_id": "1042", + "status": "in_transit" + }, + "metadata": { + "contrib.livekit.function_tool.is_error": false, + "contrib.livekit.function_tool.name": "lookup_order", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "execute_tool", + "gen_ai.tool.call.id": "call_bENodbPAhcTV6SVZ3i3LTDEF", + "gen_ai.tool.name": "lookup_order", + "gen_ai.tool.type": "function", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "requested_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 39, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 39, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.interrupted": true, + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": true, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt new file mode 100644 index 000000000..8005658de --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt @@ -0,0 +1,582 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4.1-nano", + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ }, + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.parent_generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 2, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": true, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": null, + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 16, + │ │ "prompt_tokens": 84, + │ │ "time_to_first_token": 0, + │ │ "tokens": 100 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_bENodbPAhcTV6SVZ3i3LTDEF" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order will be delivered on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 9, + │ │ "prompt_tokens": 125, + │ │ "time_to_first_token": 0, + │ │ "tokens": 134 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── lookup_order [tool] + │ │ input: { + │ │ "order_id": "1042" + │ │ } + │ │ output: { + │ │ "delivery": "Friday", + │ │ "order_id": "1042", + │ │ "status": "in_transit" + │ │ } + │ │ metadata: { + │ │ "contrib.livekit.function_tool.is_error": false, + │ │ "contrib.livekit.function_tool.name": "lookup_order", + │ │ "gen_ai.agent.name": "default_agent", + │ │ "gen_ai.operation.name": "execute_tool", + │ │ "gen_ai.tool.call.id": "call_bENodbPAhcTV6SVZ3i3LTDEF", + │ │ "gen_ai.tool.name": "lookup_order", + │ │ "gen_ai.tool.type": "function", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "requested_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 39, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 39, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.interrupted": true, + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json new file mode 100644 index 000000000..7e05b3605 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json @@ -0,0 +1,359 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Fixture playback", + "role": "assistant" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 1, + "contrib.livekit.generation_id": "", + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt new file mode 100644 index 000000000..8a68db4f7 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt @@ -0,0 +1,296 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 1, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": false, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Fixture playback", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.json new file mode 100644 index 000000000..aa436f681 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.json @@ -0,0 +1,273 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Fixture playback", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.message_ids": [ + "" + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 1, + "contrib.livekit.generation_id": "", + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.txt new file mode 100644 index 000000000..45912445c --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.txt @@ -0,0 +1,210 @@ +span_tree: +└── livekit.agent_session [task] + metadata: { + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 1, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Fixture playback", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json new file mode 100644 index 000000000..5a865502a --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json @@ -0,0 +1,671 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + } + ], + "output": [ + { + "content": null, + "role": "assistant" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 16, + "prompt_tokens": 84, + "time_to_first_token": 0, + "tokens": 100 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_BkfCAV8jhVgzswMe2B76auwE" + } + ], + "output": [ + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 12, + "prompt_tokens": 125, + "time_to_first_token": 0, + "tokens": 137 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "lookup_order", + "type": "tool", + "children": [], + "input": { + "order_id": "1042" + }, + "output": { + "delivery": "Friday", + "order_id": "1042", + "status": "in_transit" + }, + "metadata": { + "contrib.livekit.function_tool.is_error": false, + "contrib.livekit.function_tool.name": "lookup_order", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "execute_tool", + "gen_ai.tool.call.id": "call_BkfCAV8jhVgzswMe2B76auwE", + "gen_ai.tool.name": "lookup_order", + "gen_ai.tool.type": "function", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "requested_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.interrupted": true, + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": true, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt new file mode 100644 index 000000000..642d1d2a5 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt @@ -0,0 +1,582 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4.1-nano", + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ }, + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.parent_generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 2, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": true, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": null, + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 16, + │ │ "prompt_tokens": 84, + │ │ "time_to_first_token": 0, + │ │ "tokens": 100 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_BkfCAV8jhVgzswMe2B76auwE" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 12, + │ │ "prompt_tokens": 125, + │ │ "time_to_first_token": 0, + │ │ "tokens": 137 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── lookup_order [tool] + │ │ input: { + │ │ "order_id": "1042" + │ │ } + │ │ output: { + │ │ "delivery": "Friday", + │ │ "order_id": "1042", + │ │ "status": "in_transit" + │ │ } + │ │ metadata: { + │ │ "contrib.livekit.function_tool.is_error": false, + │ │ "contrib.livekit.function_tool.name": "lookup_order", + │ │ "gen_ai.agent.name": "default_agent", + │ │ "gen_ai.operation.name": "execute_tool", + │ │ "gen_ai.tool.call.id": "call_BkfCAV8jhVgzswMe2B76auwE", + │ │ "gen_ai.tool.name": "lookup_order", + │ │ "gen_ai.tool.type": "function", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "requested_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.interrupted": true, + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json new file mode 100644 index 000000000..29d275e7f --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json @@ -0,0 +1,676 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + } + ], + "output": [ + { + "content": null, + "role": "assistant" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 16, + "prompt_tokens": 84, + "time_to_first_token": 0, + "tokens": 100 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_BkfCAV8jhVgzswMe2B76auwE" + } + ], + "output": [ + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 12, + "prompt_tokens": 125, + "time_to_first_token": 0, + "tokens": 137 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "lookup_order", + "type": "tool", + "children": [], + "input": { + "order_id": "1042" + }, + "output": { + "delivery": "Friday", + "order_id": "1042", + "status": "in_transit" + }, + "metadata": { + "contrib.livekit.function_tool.is_error": false, + "contrib.livekit.function_tool.name": "lookup_order", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "execute_tool", + "gen_ai.tool.call.id": "call_BkfCAV8jhVgzswMe2B76auwE", + "gen_ai.tool.name": "lookup_order", + "gen_ai.tool.type": "function", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "requested_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt new file mode 100644 index 000000000..d35b17507 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt @@ -0,0 +1,587 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4.1-nano", + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ }, + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.parent_generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 2, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": false, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": null, + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 16, + │ │ "prompt_tokens": 84, + │ │ "time_to_first_token": 0, + │ │ "tokens": 100 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_BkfCAV8jhVgzswMe2B76auwE" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 12, + │ │ "prompt_tokens": 125, + │ │ "time_to_first_token": 0, + │ │ "tokens": 137 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── lookup_order [tool] + │ │ input: { + │ │ "order_id": "1042" + │ │ } + │ │ output: { + │ │ "delivery": "Friday", + │ │ "order_id": "1042", + │ │ "status": "in_transit" + │ │ } + │ │ metadata: { + │ │ "contrib.livekit.function_tool.is_error": false, + │ │ "contrib.livekit.function_tool.name": "lookup_order", + │ │ "gen_ai.agent.name": "default_agent", + │ │ "gen_ai.operation.name": "execute_tool", + │ │ "gen_ai.tool.call.id": "call_BkfCAV8jhVgzswMe2B76auwE", + │ │ "gen_ai.tool.name": "lookup_order", + │ │ "gen_ai.tool.type": "function", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "requested_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Your order 1042 will be delivered on Friday.", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json new file mode 100644 index 000000000..df6f06564 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json @@ -0,0 +1,1006 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + } + ], + "output": [ + { + "content": null, + "role": "assistant" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 16, + "prompt_tokens": 84, + "time_to_first_token": 0, + "tokens": 100 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" + } + ], + "output": [ + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 12, + "prompt_tokens": 125, + "time_to_first_token": 0, + "tokens": 137 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "lookup_order", + "type": "tool", + "children": [], + "input": { + "order_id": "1042" + }, + "output": { + "delivery": "Friday", + "order_id": "1042", + "status": "in_transit" + }, + "metadata": { + "contrib.livekit.function_tool.is_error": false, + "contrib.livekit.function_tool.name": "lookup_order", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "execute_tool", + "gen_ai.tool.call.id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd", + "gen_ai.tool.name": "lookup_order", + "gen_ai.tool.type": "function", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "requested_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.interrupted": true, + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": true, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" + }, + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + }, + { + "content": "Sorry, please repeat the delivery day.", + "role": "user" + } + ], + "output": [ + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + }, + { + "attributes": { + "braintrust.relationship.type": "input_context" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 12, + "prompt_tokens": 152, + "time_to_first_token": 0, + "tokens": 164 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 1, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + }, + { + "id": "", + "role": "user", + "text": "Sorry, please repeat the delivery day." + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt new file mode 100644 index 000000000..35139824f --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt @@ -0,0 +1,890 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + }, + { + "id": "", + "role": "user", + "text": "Sorry, please repeat the delivery day." + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4.1-nano", + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ }, + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.parent_generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 2, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": true, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": null, + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 16, + │ │ "prompt_tokens": 84, + │ │ "time_to_first_token": 0, + │ │ "tokens": 100 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 12, + │ │ "prompt_tokens": 125, + │ │ "time_to_first_token": 0, + │ │ "tokens": 137 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── lookup_order [tool] + │ │ input: { + │ │ "order_id": "1042" + │ │ } + │ │ output: { + │ │ "delivery": "Friday", + │ │ "order_id": "1042", + │ │ "status": "in_transit" + │ │ } + │ │ metadata: { + │ │ "contrib.livekit.function_tool.is_error": false, + │ │ "contrib.livekit.function_tool.name": "lookup_order", + │ │ "gen_ai.agent.name": "default_agent", + │ │ "gen_ai.operation.name": "execute_tool", + │ │ "gen_ai.tool.call.id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd", + │ │ "gen_ai.tool.name": "lookup_order", + │ │ "gen_ai.tool.type": "function", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "requested_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.interrupted": true, + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 1, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": false, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" + │ │ }, + │ │ { + │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": "Sorry, please repeat the delivery day.", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ }, + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "input_context" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 12, + │ │ "prompt_tokens": 152, + │ │ "time_to_first_token": 0, + │ │ "tokens": 164 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Your order 1042 will be delivered on Friday.", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json new file mode 100644 index 000000000..b3804e90f --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json @@ -0,0 +1,831 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "user_speech", + "type": "task", + "children": [], + "input": [ + { + "content": "Where is my order, DMO1042?", + "role": "user" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 0, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 0, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.eou_wait", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.5, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_user_turn_completed", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 0, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 0, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.provider_request_ids": [ + "" + ], + "contrib.livekit.transcript_confidence": 1, + "contrib.livekit.transcription_delay": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-transcribe", + "model": "gpt-4o-mini-transcribe", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.5, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-transcribe", + "model": "gpt-4o-mini-transcribe", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Where is my order, DMO1042?", + "role": "user" + } + ], + "output": [ + { + "content": null, + "role": "assistant" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"DMO1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "input_context" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "metrics": { + "completion_tokens": 18, + "prompt_tokens": 82, + "time_to_first_token": 0, + "tokens": 100 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Where is my order, DMO1042?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"DMO1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"DMO1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_4tFPyMMP6FxlSRzxe4Akq7st" + } + ], + "output": [ + { + "content": "Your order DMO1042 is scheduled for delivery on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "input_context" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + }, + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "metrics": { + "completion_tokens": 14, + "prompt_tokens": 127, + "time_to_first_token": 0, + "tokens": 141 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "lookup_order", + "type": "tool", + "children": [], + "input": { + "order_id": "DMO1042" + }, + "output": { + "delivery": "Friday", + "order_id": "DMO1042", + "status": "in_transit" + }, + "metadata": { + "contrib.livekit.function_tool.is_error": false, + "contrib.livekit.function_tool.name": "lookup_order", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "execute_tool", + "gen_ai.tool.call.id": "call_4tFPyMMP6FxlSRzxe4Akq7st", + "gen_ai.tool.name": "lookup_order", + "gen_ai.tool.type": "function", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "requested_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 55, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 55, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Your order DMO1042 is scheduled for delivery on Friday.", + "role": "assistant" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.e2e_latency": 0, + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.on_user_turn_completed_delay": 0, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "contrib.livekit.transcription_delay": 0, + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "session_input", + "channel_index": 0 + }, + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "user_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "user_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt new file mode 100644 index 000000000..a6e6fe622 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt @@ -0,0 +1,730 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "session_input", + "channel_index": 0 + }, + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "user_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "user_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4.1-nano", + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── user_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 0, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 0, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.end_of_turn_delay": 0, + │ "contrib.livekit.provider_request_ids": [ + │ "" + │ ], + │ "contrib.livekit.transcript_confidence": 1, + │ "contrib.livekit.transcription_delay": 0, + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4o-mini-transcribe", + │ "model": "gpt-4o-mini-transcribe", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── user_speech [task] + │ │ input: [ + │ │ { + │ │ "content": "Where is my order, DMO1042?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "audio.selection": { + │ │ "channel_index": 0, + │ │ "end_offset_ms": 0, + │ │ "recording_id": "call-0000", + │ │ "recording_span_id": "", + │ │ "start_offset_ms": 0 + │ │ }, + │ │ "audio.selections": [ + │ │ { + │ │ "channel_index": 0, + │ │ "end_offset_ms": 0, + │ │ "recording_id": "call-0000", + │ │ "recording_span_id": "", + │ │ "start_offset_ms": 0 + │ │ } + │ │ ], + │ │ "contrib.livekit.message_ids": [ + │ │ "" + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── livekit.eou_wait [task] + │ │ metadata: { + │ │ "contrib.livekit.eou.endpointing_delay": 0.5, + │ │ "contrib.livekit.eou.not_committed_count": 0, + │ │ "contrib.livekit.eou.outcome": "committed", + │ │ "contrib.livekit.eou.rearm_count": 0, + │ │ "contrib.livekit.eou.source": "manual", + │ │ "contrib.livekit.eou.wait_duration": 0, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_user_turn_completed [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── user_turn [task] + │ metadata: { + │ "contrib.livekit.end_of_turn_delay": 0, + │ "contrib.livekit.transcript_confidence": 0, + │ "contrib.livekit.transcription_delay": 0, + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4o-mini-transcribe", + │ "model": "gpt-4o-mini-transcribe", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.eou_wait [task] + │ metadata: { + │ "contrib.livekit.eou.endpointing_delay": 0.5, + │ "contrib.livekit.eou.not_committed_count": 0, + │ "contrib.livekit.eou.outcome": "committed", + │ "contrib.livekit.eou.rearm_count": 0, + │ "contrib.livekit.eou.source": "manual", + │ "contrib.livekit.eou.wait_duration": 0, + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.e2e_latency": 0, + │ "contrib.livekit.end_of_turn_delay": 0, + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ }, + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.parent_generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 2, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.on_user_turn_completed_delay": 0, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": false, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "contrib.livekit.transcription_delay": 0, + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Where is my order, DMO1042?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": null, + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"DMO1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "input_context" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 18, + │ │ "prompt_tokens": 82, + │ │ "time_to_first_token": 0, + │ │ "tokens": 100 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Where is my order, DMO1042?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"DMO1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"DMO1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_4tFPyMMP6FxlSRzxe4Akq7st" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order DMO1042 is scheduled for delivery on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "input_context" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ }, + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 14, + │ │ "prompt_tokens": 127, + │ │ "time_to_first_token": 0, + │ │ "tokens": 141 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── lookup_order [tool] + │ │ input: { + │ │ "order_id": "DMO1042" + │ │ } + │ │ output: { + │ │ "delivery": "Friday", + │ │ "order_id": "DMO1042", + │ │ "status": "in_transit" + │ │ } + │ │ metadata: { + │ │ "contrib.livekit.function_tool.is_error": false, + │ │ "contrib.livekit.function_tool.name": "lookup_order", + │ │ "gen_ai.agent.name": "default_agent", + │ │ "gen_ai.operation.name": "execute_tool", + │ │ "gen_ai.tool.call.id": "call_4tFPyMMP6FxlSRzxe4Akq7st", + │ │ "gen_ai.tool.name": "lookup_order", + │ │ "gen_ai.tool.type": "function", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "requested_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 55, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 55, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Your order DMO1042 is scheduled for delivery on Friday.", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── livekit.session_close [task] + metadata: { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.drain_agent_activity [task] + metadata: { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.on_exit [task] + metadata: { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json new file mode 100644 index 000000000..714405e85 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json @@ -0,0 +1,676 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + } + ], + "output": [ + { + "content": null, + "role": "assistant" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 16, + "prompt_tokens": 84, + "time_to_first_token": 0, + "tokens": 100 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_bENodbPAhcTV6SVZ3i3LTDEF" + } + ], + "output": [ + { + "content": "Your order will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 9, + "prompt_tokens": 125, + "time_to_first_token": 0, + "tokens": 134 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "lookup_order", + "type": "tool", + "children": [], + "input": { + "order_id": "1042" + }, + "output": { + "delivery": "Friday", + "order_id": "1042", + "status": "in_transit" + }, + "metadata": { + "contrib.livekit.function_tool.is_error": false, + "contrib.livekit.function_tool.name": "lookup_order", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "execute_tool", + "gen_ai.tool.call.id": "call_bENodbPAhcTV6SVZ3i3LTDEF", + "gen_ai.tool.name": "lookup_order", + "gen_ai.tool.type": "function", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "requested_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 39, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 39, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Your order will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt new file mode 100644 index 000000000..7f5af8c2f --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt @@ -0,0 +1,587 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4.1-nano", + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ }, + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.parent_generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 2, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": false, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": null, + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 16, + │ │ "prompt_tokens": 84, + │ │ "time_to_first_token": 0, + │ │ "tokens": 100 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_bENodbPAhcTV6SVZ3i3LTDEF" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order will be delivered on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 9, + │ │ "prompt_tokens": 125, + │ │ "time_to_first_token": 0, + │ │ "tokens": 134 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── lookup_order [tool] + │ │ input: { + │ │ "order_id": "1042" + │ │ } + │ │ output: { + │ │ "delivery": "Friday", + │ │ "order_id": "1042", + │ │ "status": "in_transit" + │ │ } + │ │ metadata: { + │ │ "contrib.livekit.function_tool.is_error": false, + │ │ "contrib.livekit.function_tool.name": "lookup_order", + │ │ "gen_ai.agent.name": "default_agent", + │ │ "gen_ai.operation.name": "execute_tool", + │ │ "gen_ai.tool.call.id": "call_bENodbPAhcTV6SVZ3i3LTDEF", + │ │ "gen_ai.tool.name": "lookup_order", + │ │ "gen_ai.tool.type": "function", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "requested_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 39, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 39, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Your order will be delivered on Friday.", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json new file mode 100644 index 000000000..40d297b5e --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json @@ -0,0 +1,1006 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + } + ], + "output": [ + { + "content": null, + "role": "assistant" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 16, + "prompt_tokens": 84, + "time_to_first_token": 0, + "tokens": 100 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_ThLD0enkAFrFk7EcZVLFKRvh" + } + ], + "output": [ + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 12, + "prompt_tokens": 125, + "time_to_first_token": 0, + "tokens": 137 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "lookup_order", + "type": "tool", + "children": [], + "input": { + "order_id": "1042" + }, + "output": { + "delivery": "Friday", + "order_id": "1042", + "status": "in_transit" + }, + "metadata": { + "contrib.livekit.function_tool.is_error": false, + "contrib.livekit.function_tool.name": "lookup_order", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "execute_tool", + "gen_ai.tool.call.id": "call_ThLD0enkAFrFk7EcZVLFKRvh", + "gen_ai.tool.name": "lookup_order", + "gen_ai.tool.type": "function", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "requested_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.interrupted": true, + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": true, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_ThLD0enkAFrFk7EcZVLFKRvh" + }, + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + }, + { + "content": "Sorry, please repeat the delivery day.", + "role": "user" + } + ], + "output": [ + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + }, + { + "attributes": { + "braintrust.relationship.type": "input_context" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "metrics": { + "completion_tokens": 12, + "prompt_tokens": 152, + "time_to_first_token": 0, + "tokens": 164 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 44, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Your order 1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 1, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [ + { + "name": "livekit.eou_detection", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + }, + { + "id": "", + "role": "user", + "text": "Sorry, please repeat the delivery day." + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt new file mode 100644 index 000000000..1e3c2ba69 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt @@ -0,0 +1,890 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "contrib.livekit.unassociated_messages": [ + { + "id": "", + "role": "user", + "text": "Hi, could you check order 1042 for me?" + }, + { + "id": "", + "role": "user", + "text": "Sorry, please repeat the delivery day." + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4.1-nano", + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ }, + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.parent_generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 2, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": true, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": null, + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 16, + │ │ "prompt_tokens": 84, + │ │ "time_to_first_token": 0, + │ │ "tokens": 100 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_ThLD0enkAFrFk7EcZVLFKRvh" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 12, + │ │ "prompt_tokens": 125, + │ │ "time_to_first_token": 0, + │ │ "tokens": 137 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── lookup_order [tool] + │ │ input: { + │ │ "order_id": "1042" + │ │ } + │ │ output: { + │ │ "delivery": "Friday", + │ │ "order_id": "1042", + │ │ "status": "in_transit" + │ │ } + │ │ metadata: { + │ │ "contrib.livekit.function_tool.is_error": false, + │ │ "contrib.livekit.function_tool.name": "lookup_order", + │ │ "gen_ai.agent.name": "default_agent", + │ │ "gen_ai.operation.name": "execute_tool", + │ │ "gen_ai.tool.call.id": "call_ThLD0enkAFrFk7EcZVLFKRvh", + │ │ "gen_ai.tool.name": "lookup_order", + │ │ "gen_ai.tool.type": "function", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "requested_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.interrupted": true, + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 1, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": false, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Hi, could you check order 1042 for me?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_ThLD0enkAFrFk7EcZVLFKRvh" + │ │ }, + │ │ { + │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": "Sorry, please repeat the delivery day.", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ }, + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "input_context" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 12, + │ │ "prompt_tokens": 152, + │ │ "time_to_first_token": 0, + │ │ "tokens": 164 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 44, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Your order 1042 will be delivered on Friday.", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── livekit.session_close [task] + │ metadata: { + │ "contrib.livekit.close.drain": false, + │ "contrib.livekit.close_reason": "user_initiated", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.drain_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.on_exit [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── user_turn [task] + metadata: { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_wait [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.eou_detection [task] + metadata: { + "contrib.livekit.eou.endpointing_delay": 0.3, + "contrib.livekit.eou.from_cache": false, + "contrib.livekit.eou.language": "", + "contrib.livekit.eou.source": "manual", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json new file mode 100644 index 000000000..3015d9a27 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json @@ -0,0 +1,831 @@ +{ + "span_tree": [ + { + "name": "livekit.agent_session", + "type": "task", + "children": [ + { + "name": "livekit.session_start", + "type": "task", + "children": [ + { + "name": "livekit.start_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.setup_toolsets", + "type": "task", + "children": [], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_enter", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "create_agent", + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "user_speech", + "type": "task", + "children": [], + "input": [ + { + "content": "Where is my order, DMO-1042?", + "role": "user" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 0, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 0, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.eou_wait", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.5, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.on_user_turn_completed", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 0, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 0, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.provider_request_ids": [ + "" + ], + "contrib.livekit.transcript_confidence": 1, + "contrib.livekit.transcription_delay": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-transcribe", + "model": "gpt-4o-mini-transcribe", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "user_turn", + "type": "task", + "children": [ + { + "name": "livekit.eou_wait", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.eou.endpointing_delay": 0.5, + "contrib.livekit.eou.not_committed_count": 0, + "contrib.livekit.eou.outcome": "committed", + "contrib.livekit.eou.rearm_count": 0, + "contrib.livekit.eou.source": "manual", + "contrib.livekit.eou.wait_duration": 0, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.transcript_confidence": 0, + "contrib.livekit.transcription_delay": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-transcribe", + "model": "gpt-4o-mini-transcribe", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_turn", + "type": "task", + "children": [ + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Where is my order, DMO-1042?", + "role": "user" + } + ], + "output": [ + { + "content": null, + "role": "assistant" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"DMO-1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "input_context" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "metrics": { + "completion_tokens": 19, + "prompt_tokens": 83, + "time_to_first_token": 0, + "tokens": 102 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "llm_response", + "type": "llm", + "children": [], + "input": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Where is my order, DMO-1042?", + "role": "user" + }, + { + "content": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"DMO-1042\"}", + "name": "lookup_order" + }, + "id": "", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"DMO-1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_UJSzFQibd36wIeKjjJwuroFp" + } + ], + "output": [ + { + "content": "Your order DMO-1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "contrib.livekit.function_tools": "[\"lookup_order\"]", + "contrib.livekit.response.ttft": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4.1-nano", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "input_context" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + }, + { + "attributes": { + "braintrust.relationship.type": "consumes_tool_result" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4.1-nano", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "metrics": { + "completion_tokens": 14, + "prompt_tokens": 130, + "time_to_first_token": 0, + "tokens": 144 + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "lookup_order", + "type": "tool", + "children": [], + "input": { + "order_id": "DMO-1042" + }, + "output": { + "delivery": "Friday", + "order_id": "DMO-1042", + "status": "in_transit" + }, + "metadata": { + "contrib.livekit.function_tool.is_error": false, + "contrib.livekit.function_tool.name": "lookup_order", + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "execute_tool", + "gen_ai.tool.call.id": "call_UJSzFQibd36wIeKjjJwuroFp", + "gen_ai.tool.name": "lookup_order", + "gen_ai.tool.type": "function", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "requested_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "tts", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [ + { + "name": "livekit.tts_request", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": false, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 48, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": false, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.tts.label": "openai.TTS", + "contrib.livekit.tts.streaming": true, + "contrib.livekit.tts_metrics": { + "audioDurationMs": 0, + "cancelled": false, + "charactersCount": 48, + "durationMs": 0, + "inputTokens": 0, + "label": "openai.TTS", + "metadata": { + "modelName": "gpt-4o-mini-tts", + "modelProvider": "" + }, + "outputTokens": 0, + "requestId": "", + "streamed": true, + "timestamp": 0, + "ttfbMs": 0, + "type": "tts_metrics" + }, + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.response.ttfb": 0, + "gen_ai.provider.name": "", + "gen_ai.request.model": "gpt-4o-mini-tts", + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "model": "gpt-4o-mini-tts", + "provider": "", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "agent_speech", + "type": "task", + "children": [], + "output": [ + { + "content": "Your order DMO-1042 will be delivered on Friday.", + "role": "assistant" + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "audio.selection": { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + }, + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.e2e_latency": 0, + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.on_user_turn_completed_delay": 0, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "contrib.livekit.transcription_delay": 0, + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + }, + { + "name": "livekit.session_close", + "type": "task", + "children": [ + { + "name": "livekit.drain_agent_activity", + "type": "task", + "children": [ + { + "name": "livekit.on_exit", + "type": "task", + "children": [], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "metadata": { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ], + "input": { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + }, + "metadata": { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "session_input", + "channel_index": 0 + }, + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "user_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "user_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + }, + "context": { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + } + ] +} diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt new file mode 100644 index 000000000..193a732e3 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt @@ -0,0 +1,730 @@ +span_tree: +└── livekit.agent_session [task] + input: { + "audio": { + "call-0000": { + "content_type": "audio/wav", + "filename": "call-0000.wav", + "key": "", + "type": "braintrust_attachment" + } + } + } + metadata: { + "audio.recordings": [ + { + "attachment": { + "ref": "/input/audio/call-0000", + "span_id": "" + }, + "channel_count": 2, + "duration_ms": 0, + "id": "", + "mime_type": "audio/wav", + "recording_group_id": "call", + "sample_rate_hz": 24000, + "sources": [ + { + "boundary": "session_input", + "channel_index": 0 + }, + { + "boundary": "local_audio_output", + "channel_index": 1 + } + ], + "state": "ready", + "timeline": { + "basis": "local_input_arrival_and_output_playout", + "origin_unix_ms": 0, + "recording_start_offset_ms": 0 + } + } + ], + "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", + "contrib.livekit.audio.input_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.audio.output_formats": [ + { + "channel_count": 1, + "sample_rate_hz": 24000 + } + ], + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "initializing" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "listening" + }, + "name": "user_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "user_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "thinking", + "contrib.livekit.old_state": "listening" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "speaking", + "contrib.livekit.old_state": "thinking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.new_state": "listening", + "contrib.livekit.old_state": "speaking" + }, + "name": "agent_state_changed", + "time_unix_ms": 0 + } + ], + "gen_ai.operation.name": "invoke_workflow", + "gen_ai.workflow.name": "agent_session", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + ├── livekit.session_start [task] + │ metadata: { + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.start_agent_activity [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "create_agent", + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4.1-nano", + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── livekit.setup_toolsets [task] + │ │ metadata: { + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_enter [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── user_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 0, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 0, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.end_of_turn_delay": 0, + │ "contrib.livekit.provider_request_ids": [ + │ "" + │ ], + │ "contrib.livekit.transcript_confidence": 1, + │ "contrib.livekit.transcription_delay": 0, + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4o-mini-transcribe", + │ "model": "gpt-4o-mini-transcribe", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── user_speech [task] + │ │ input: [ + │ │ { + │ │ "content": "Where is my order, DMO-1042?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "audio.selection": { + │ │ "channel_index": 0, + │ │ "end_offset_ms": 0, + │ │ "recording_id": "call-0000", + │ │ "recording_span_id": "", + │ │ "start_offset_ms": 0 + │ │ }, + │ │ "audio.selections": [ + │ │ { + │ │ "channel_index": 0, + │ │ "end_offset_ms": 0, + │ │ "recording_id": "call-0000", + │ │ "recording_span_id": "", + │ │ "start_offset_ms": 0 + │ │ } + │ │ ], + │ │ "contrib.livekit.message_ids": [ + │ │ "" + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── livekit.eou_wait [task] + │ │ metadata: { + │ │ "contrib.livekit.eou.endpointing_delay": 0.5, + │ │ "contrib.livekit.eou.not_committed_count": 0, + │ │ "contrib.livekit.eou.outcome": "committed", + │ │ "contrib.livekit.eou.rearm_count": 0, + │ │ "contrib.livekit.eou.source": "manual", + │ │ "contrib.livekit.eou.wait_duration": 0, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── livekit.on_user_turn_completed [task] + │ metadata: { + │ "contrib.livekit.agent_label": "default_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── user_turn [task] + │ metadata: { + │ "contrib.livekit.end_of_turn_delay": 0, + │ "contrib.livekit.transcript_confidence": 0, + │ "contrib.livekit.transcription_delay": 0, + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4o-mini-transcribe", + │ "model": "gpt-4o-mini-transcribe", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ └── livekit.eou_wait [task] + │ metadata: { + │ "contrib.livekit.eou.endpointing_delay": 0.5, + │ "contrib.livekit.eou.not_committed_count": 0, + │ "contrib.livekit.eou.outcome": "committed", + │ "contrib.livekit.eou.rearm_count": 0, + │ "contrib.livekit.eou.source": "manual", + │ "contrib.livekit.eou.wait_duration": 0, + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + ├── agent_turn [task] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.e2e_latency": 0, + │ "contrib.livekit.end_of_turn_delay": 0, + │ "contrib.livekit.events": [ + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ }, + │ { + │ "attributes": { + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.parent_generation_id": "" + │ }, + │ "name": "generation", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.generation_count": 2, + │ "contrib.livekit.generation_id": "", + │ "contrib.livekit.interrupted": false, + │ "contrib.livekit.on_user_turn_completed_delay": 0, + │ "contrib.livekit.playback_events": [ + │ { + │ "attributes": { + │ "interrupted": false, + │ "playbackPosition": 0 + │ }, + │ "name": "playbackFinished", + │ "time_unix_ms": 0 + │ } + │ ], + │ "contrib.livekit.speech.queue_wait": 0, + │ "contrib.livekit.speech_id": "", + │ "contrib.livekit.transcription_delay": 0, + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "invoke_agent", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Where is my order, DMO-1042?", + │ │ "role": "user" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": null, + │ │ "role": "assistant" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"DMO-1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "input_context" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 19, + │ │ "prompt_tokens": 83, + │ │ "time_to_first_token": 0, + │ │ "tokens": 102 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── llm_response [llm] + │ │ input: [ + │ │ { + │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ │ "role": "system" + │ │ }, + │ │ { + │ │ "content": "Where is my order, DMO-1042?", + │ │ "role": "user" + │ │ }, + │ │ { + │ │ "content": null, + │ │ "role": "assistant", + │ │ "tool_calls": [ + │ │ { + │ │ "function": { + │ │ "arguments": "{\"order_id\":\"DMO-1042\"}", + │ │ "name": "lookup_order" + │ │ }, + │ │ "id": "", + │ │ "type": "function" + │ │ } + │ │ ] + │ │ }, + │ │ { + │ │ "content": "{\"order_id\":\"DMO-1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ │ "role": "tool", + │ │ "tool_call_id": "call_UJSzFQibd36wIeKjjJwuroFp" + │ │ } + │ │ ] + │ │ output: [ + │ │ { + │ │ "content": "Your order DMO-1042 will be delivered on Friday.", + │ │ "role": "assistant" + │ │ } + │ │ ] + │ │ metadata: { + │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ │ "contrib.livekit.response.ttft": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "input_context" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ }, + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "consumes_tool_result" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4.1-nano", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ metrics: { + │ │ "completion_tokens": 14, + │ │ "prompt_tokens": 130, + │ │ "time_to_first_token": 0, + │ │ "tokens": 144 + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── lookup_order [tool] + │ │ input: { + │ │ "order_id": "DMO-1042" + │ │ } + │ │ output: { + │ │ "delivery": "Friday", + │ │ "order_id": "DMO-1042", + │ │ "status": "in_transit" + │ │ } + │ │ metadata: { + │ │ "contrib.livekit.function_tool.is_error": false, + │ │ "contrib.livekit.function_tool.name": "lookup_order", + │ │ "gen_ai.agent.name": "default_agent", + │ │ "gen_ai.operation.name": "execute_tool", + │ │ "gen_ai.tool.call.id": "call_UJSzFQibd36wIeKjjJwuroFp", + │ │ "gen_ai.tool.name": "lookup_order", + │ │ "gen_ai.tool.type": "function", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "requested_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ ├── tts [task] + │ │ metadata: { + │ │ "contrib.livekit.response.ttfb": 0, + │ │ "gen_ai.provider.name": "", + │ │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "generated_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], + │ │ "model": "gpt-4o-mini-tts", + │ │ "provider": "", + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": true, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 48, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": true, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ │ └── livekit.tts_request [task] + │ │ metadata: { + │ │ "contrib.livekit.tts.label": "openai.TTS", + │ │ "contrib.livekit.tts.streaming": false, + │ │ "contrib.livekit.tts_metrics": { + │ │ "audioDurationMs": 0, + │ │ "cancelled": false, + │ │ "charactersCount": 48, + │ │ "durationMs": 0, + │ │ "inputTokens": 0, + │ │ "label": "openai.TTS", + │ │ "metadata": { + │ │ "modelName": "gpt-4o-mini-tts", + │ │ "modelProvider": "" + │ │ }, + │ │ "outputTokens": 0, + │ │ "requestId": "", + │ │ "streamed": false, + │ │ "timestamp": 0, + │ │ "ttfbMs": 0, + │ │ "type": "tts_metrics" + │ │ }, + │ │ "scenario": "livekit-instrumentation", + │ │ "testRunId": "", + │ │ "turn.id": "", + │ │ "turn.reply_to": "" + │ │ } + │ │ context: { + │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ │ "caller_functionname": "ScenarioProcessor.onStart", + │ │ "caller_lineno": 0 + │ │ } + │ └── agent_speech [task] + │ output: [ + │ { + │ "content": "Your order DMO-1042 will be delivered on Friday.", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "audio.selection": { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ }, + │ "audio.selections": [ + │ { + │ "channel_index": 1, + │ "end_offset_ms": 0, + │ "recording_id": "call-0000", + │ "recording_span_id": "", + │ "start_offset_ms": 0 + │ } + │ ], + │ "contrib.livekit.message_ids": [ + │ "" + │ ], + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + │ context: { + │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + │ "caller_functionname": "ScenarioProcessor.onStart", + │ "caller_lineno": 0 + │ } + └── livekit.session_close [task] + metadata: { + "contrib.livekit.close.drain": false, + "contrib.livekit.close_reason": "user_initiated", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.drain_agent_activity [task] + metadata: { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } + └── livekit.on_exit [task] + metadata: { + "contrib.livekit.agent_label": "default_agent", + "scenario": "livekit-instrumentation", + "testRunId": "" + } + context: { + "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", + "caller_functionname": "ScenarioProcessor.onStart", + "caller_lineno": 0 + } diff --git a/e2e/scenarios/livekit-instrumentation/assertions.test.ts b/e2e/scenarios/livekit-instrumentation/assertions.test.ts new file mode 100644 index 000000000..b35feb282 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/assertions.test.ts @@ -0,0 +1,53 @@ +import { expect, test } from "vitest"; +import type { CapturedLogEvent } from "../../helpers/mock-braintrust-server"; +import { assertAudioTrace } from "./assertions"; + +function event( + id: string, + name: string, + parentIds: string[], + metadata: Record = {}, +): CapturedLogEvent { + const metrics = { start: 1, end: 2 }; + return { + apiVersion: 3, + isMerge: false, + metadata, + metrics, + row: { span_parents: parentIds, metadata, metrics }, + span: { id, name, parentIds, started: true, ended: true }, + }; +} +const root = event("root", "livekit.agent_session", []); +const turn = event("turn", "user_turn", ["root"]); + +test.each(["missing", "root"])( + "rejects invalid optional speaking turn reference: %s", + (turnId) => { + const speech = event( + "speech", + "user_speech", + ["root"], + turnId ? { "turn.id": turnId } : {}, + ); + expect(() => assertAudioTrace([root, turn, speech])).toThrow(); + }, +); + +test("validates parentage and permits session-owned speech", () => { + const speech = event("speech", "user_speech", ["turn"], { + "turn.id": "turn", + }); + expect(() => assertAudioTrace([root, turn, speech])).not.toThrow(); + speech.row.span_parents = speech.span.parentIds = ["root"]; + expect(() => assertAudioTrace([root, turn, speech])).toThrow(); + speech.row.metadata = speech.metadata = {}; + expect(() => + assertAudioTrace([root, turn, speech], { + unassociatedSpeaking: ["speech"], + }), + ).not.toThrow(); + expect(() => + assertAudioTrace([root, turn], { unassociatedSpeaking: ["speech"] }), + ).toThrow(); +}); diff --git a/e2e/scenarios/livekit-instrumentation/assertions.ts b/e2e/scenarios/livekit-instrumentation/assertions.ts new file mode 100644 index 000000000..7b026c485 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/assertions.ts @@ -0,0 +1,132 @@ +import { expect } from "vitest"; +import type { CapturedLogEvent } from "../../helpers/mock-braintrust-server"; +import { findAllSpans } from "../../helpers/trace-selectors"; + +type Selection = { + recording_span_id: string; + recording_id: string; + channel_index: number; + start_offset_ms: number; + end_offset_ms: number; +}; +type Recording = { + id: string; + state: string; + duration_ms: number; + sample_rate_hz: number; + channel_count: number; + timeline: { origin_unix_ms: number; recording_start_offset_ms: number }; + attachment?: { span_id: string; ref: string }; +}; + +export function assertAudioTrace( + raw: CapturedLogEvent[], + { + unassociatedSpeaking = [], + }: { unassociatedSpeaking?: readonly string[] } = {}, +) { + const events = [...new Set(raw.map((e) => e.span.name))].flatMap((name) => + findAllSpans(raw, name!), + ); + const recordings = new Map(); + const key = (spanId: string, id: string) => JSON.stringify([spanId, id]); + for (const event of events) { + for (const r of (event.metadata?.["audio.recordings"] ?? + []) as Recording[]) { + expect(recordings.has(key(event.span.id!, r.id))).toBe(false); + recordings.set(key(event.span.id!, r.id), r); + if ("gaps" in r) expect(r.timeline).toBeDefined(); + if (r.state !== "ready") continue; + expect(Number.isFinite(r.duration_ms)).toBe(true); + expect(r.duration_ms).toBeGreaterThan(0); + expect(r.sample_rate_hz).toBeGreaterThan(0); + expect(r.channel_count).toBeGreaterThan(0); + expect(Number.isFinite(r.timeline.origin_unix_ms)).toBe(true); + expect(r.timeline.recording_start_offset_ms).toBeGreaterThanOrEqual(0); + expect(r.attachment).toBeDefined(); + const owner = events.find((e) => e.span.id === r.attachment!.span_id); + expect(owner).toBeDefined(); + // Attachment references are JSON pointers into the owning row. + const attachment = r + .attachment!.ref.split("/") + .slice(1) + .reduce( + (value, part) => + (value as Record)?.[ + part.replace(/~1/g, "/").replace(/~0/g, "~") + ], + owner!.row, + ); + expect(attachment).toMatchObject({ type: "braintrust_attachment" }); + } + } + for (const event of events) { + for (const s of (event.metadata?.["audio.selections"] ?? + []) as Selection[]) { + const r = recordings.get(key(s.recording_span_id, s.recording_id)); + expect(r, `${event.span.name}: unknown recording`).toBeDefined(); + expect(r!.state).toBe("ready"); + expect(Number.isInteger(s.channel_index)).toBe(true); + expect(s.channel_index).toBeGreaterThanOrEqual(0); + expect(s.channel_index).toBeLessThan(r!.channel_count); + if (["user_turn", "user_speech"].includes(event.span.name!)) + expect(s.channel_index).toBe(0); + if (["agent_turn", "agent_speech"].includes(event.span.name!)) + expect(s.channel_index).toBe(1); + expect( + Number.isFinite(s.start_offset_ms) && Number.isFinite(s.end_offset_ms), + ).toBe(true); + expect(s.start_offset_ms).toBeGreaterThanOrEqual(0); + expect(s.end_offset_ms).toBeGreaterThan(s.start_offset_ms); + expect(s.end_offset_ms).toBeLessThanOrEqual( + r!.duration_ms + 1000 / r!.sample_rate_hz, + ); + } + } + const unassociated = new Set(unassociatedSpeaking); + for (const speech of events.filter((e) => + ["user_speech", "agent_speech"].includes(e.span.name!), + )) { + const turnId = speech.metadata?.["turn.id"]; + if (turnId === undefined) { + unassociated.delete(speech.span.id!); + const parent = events.find((e) => e.span.id === speech.span.parentIds[0]); + expect(parent?.span.name).toBe("livekit.agent_session"); + continue; + } + const turn = events.find((e) => e.span.id === turnId); + expect( + turn, + `${speech.span.name}: missing or dangling turn.id`, + ).toBeDefined(); + expect(turn!.span.name).toBe( + speech.span.name === "user_speech" ? "user_turn" : "agent_turn", + ); + expect(speech.row.span_parents).toEqual([turnId]); + } + expect( + [...unassociated], + "expected unassociated speaking spans were not found", + ).toEqual([]); + for (const source of events) { + for (const link of (source.row.metadata?.links ?? []) as { + context: { traceId: string; spanId: string; traceFlags: number }; + attributes: Record; + }[]) { + expect(link.context.traceId).toMatch(/^[0-9a-f]{32}$/); + expect(link.context.spanId).toMatch(/^[0-9a-f]{16}$/); + const target = events.find( + (event) => event.span.id === link.context.spanId, + ); + expect(target, "link target must be an exported span").toBeDefined(); + expect(target!.row.root_span_id).toBe(link.context.traceId); + expect([ + "input_context", + "requested_by", + "consumes_tool_result", + "generated_by", + "transcribed_by", + ]).toContain(link.attributes["braintrust.relationship.type"]); + } + } +} diff --git a/e2e/scenarios/livekit-instrumentation/automatic.mjs b/e2e/scenarios/livekit-instrumentation/automatic.mjs new file mode 100644 index 000000000..fa953db3a --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/automatic.mjs @@ -0,0 +1,142 @@ +import { createRequire } from "node:module"; +import { mkdtemp, rm, mkdir, symlink } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join, dirname } from "node:path"; +import assert from "node:assert/strict"; +import { initLogger, configureInstrumentation } from "braintrust"; +import { scopedName } from "../../helpers/provider-runtime.mjs"; +import { AudioFrame, dispose } from "@livekit/rtc-node"; +const mode = process.env.LIVEKIT_AUTO_MODE; +if (mode === "defaults") { + // Generic attachment opt-in must leave voice recording disabled by default. + delete process.env.BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS; + delete process.env.BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS; +} +if (mode !== "defaults") + configureInstrumentation({ + integrations: { + livekit: + mode === "integration-off" + ? false + : { + ...(mode === "env" + ? {} + : { + captureAudio: mode === "wav", + }), + }, + }, + }); +const cwd = process.cwd(); +const isolated = + mode === "defaults" + ? await mkdtemp(join(tmpdir(), "braintrust-no-audio-")) + : undefined; +if (mode === "defaults") { + // Model a pnpm app that installs LiveKit but not its OTel dependency directly. + const entry = createRequire(import.meta.url).resolve( + process.env.LIVEKIT_PACKAGE, + ); + const scope = join(isolated, "node_modules", "@livekit"); + await mkdir(scope, { recursive: true }); + await symlink(dirname(dirname(entry)), join(scope, "agents"), "junction"); +} +if (isolated) process.chdir(isolated); +const logger = initLogger({ projectName: scopedName("e2e-livekit-auto") }); +const { voice, telemetry, initializeLogger } = await import( + process.env.LIVEKIT_PACKAGE +); +initializeLogger({ pretty: false, level: "silent" }); +let provider, + observed = 0; +if (["redacted", "unsampled"].includes(mode)) { + const { NodeTracerProvider, AlwaysOffSampler } = + await import("@opentelemetry/sdk-trace-node"); + const processors = [ + { + onStart() { + observed++; + }, + onEnd() {}, + forceFlush: async () => {}, + shutdown: async () => {}, + }, + ]; + provider = new NodeTracerProvider({ + ...(mode === "unsampled" ? { sampler: new AlwaysOffSampler() } : {}), + spanProcessors: [ + { + onStart: (...args) => processors.forEach((p) => p.onStart(...args)), + onEnd: (...args) => processors.forEach((p) => p.onEnd(...args)), + forceFlush: async () => {}, + shutdown: async () => {}, + }, + ], + }); + provider.register(); + telemetry.setTracerProvider(provider, { + allowPii: mode !== "redacted", + registerSpanProcessor: (p) => processors.unshift(p), + }); +} +class Output extends voice.AudioOutput { + samples = 0; + constructor() { + super(24000); + } + async captureFrame(frame) { + await super.captureFrame(frame); + if (!this.samples) this.onPlaybackStarted(Date.now()); + this.samples += frame.samplesPerChannel; + } + flush() { + super.flush(); + if (this.pendingPlayoutSegments) + this.onPlaybackFinished({ + playbackPosition: this.samples / 24000, + interrupted: false, + }); + this.samples = 0; + } + clearBuffer() {} +} +const session = new voice.AgentSession(); +const output = new Output(); +session.output.audio = output; +const original = output.captureFrame; +try { + await session.start({ + agent: new voice.Agent({ instructions: "Fictional order assistant" }), + record: false, + }); + if (!["wav", "env"].includes(mode)) + assert.equal( + output.captureFrame, + original, + "disabled or unavailable recording must not wrap the sink", + ); + const audio = new ReadableStream({ + start(c) { + c.enqueue( + new AudioFrame(new Int16Array(4800).fill(1234), 24000, 1, 4800), + ); + c.close(); + }, + }); + await session.say("Your order arrives Friday.", { audio }).waitForPlayout(); + await session.close(); + await logger.flush(); + if (provider) { + assert.equal(telemetry.tracer.getProvider(), provider); + if (mode !== "unsampled") + assert(observed > 0, "existing processor must still run"); + } +} finally { + await session.close(); + await provider?.shutdown(); + await dispose(); + if (isolated) { + process.chdir(cwd); + await rm(isolated, { recursive: true }); + } +} diff --git a/e2e/scenarios/livekit-instrumentation/fixtures/README.md b/e2e/scenarios/livekit-instrumentation/fixtures/README.md new file mode 100644 index 000000000..fde081a1a --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/fixtures/README.md @@ -0,0 +1,3 @@ +`order-24khz.pcm` is mono, signed 16-bit little-endian PCM at 24 kHz, generated with OpenAI speech synthesis for the fictional prompt “Where is my order DEMO 1042?”. It contains no customer audio. Streaming STT tests send this fixture through LiveKit's actual input stream and record real provider responses. HTTP and WebSocket cassettes contain those responses, never fabricated provider output. + +Offline replay supplies caller samples and uses a sample-clock output sink so scheduler jitter does not alter selection geometry. The companion PoC room validator separately checks actual RTC timing and received audio. diff --git a/e2e/scenarios/livekit-instrumentation/fixtures/order-24khz.pcm b/e2e/scenarios/livekit-instrumentation/fixtures/order-24khz.pcm new file mode 100644 index 0000000000000000000000000000000000000000..c617ffe63e50210c0e3772e06965fd14e43e4c6e GIT binary patch literal 172800 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%0DZIz*DsA+cLKU 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 z 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

    ocQ3S^#Cu+|gMjX(!bj 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'} + + '@img/sharp-darwin-arm64@0.35.4': + resolution: {integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.35.4': + resolution: {integrity: sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [darwin] + + '@img/sharp-freebsd-wasm32@0.35.4': + resolution: {integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==} + engines: {node: '>=20.9.0'} + os: [freebsd] + + '@img/sharp-libvips-darwin-arm64@1.3.3': + resolution: {integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.3.3': + resolution: {integrity: sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.3.3': + resolution: {integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-arm@1.3.3': + resolution: {integrity: sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-ppc64@1.3.3': + resolution: {integrity: sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-riscv64@1.3.3': + resolution: {integrity: sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-s390x@1.3.3': + resolution: {integrity: sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-x64@1.3.3': + resolution: {integrity: sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linuxmusl-arm64@1.3.3': + resolution: {integrity: sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-libvips-linuxmusl-x64@1.3.3': + resolution: {integrity: sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-linux-arm64@0.35.4': + resolution: {integrity: sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-arm@0.35.4': + resolution: {integrity: sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==} + engines: {node: '>=20.9.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-ppc64@0.35.4': + resolution: {integrity: sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==} + engines: {node: '>=20.9.0'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-riscv64@0.35.4': + resolution: {integrity: sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==} + engines: {node: '>=20.9.0'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-s390x@0.35.4': + resolution: {integrity: sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==} + engines: {node: '>=20.9.0'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-x64@0.35.4': + resolution: {integrity: sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-linuxmusl-arm64@0.35.4': + resolution: {integrity: sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-linuxmusl-x64@0.35.4': + resolution: {integrity: sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-wasm32@0.35.4': + resolution: {integrity: sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==} + engines: {node: '>=20.9.0'} + + '@img/sharp-webcontainers-wasm32@0.35.4': + resolution: {integrity: sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==} + engines: {node: '>=20.9.0'} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.35.4': + resolution: {integrity: sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.35.4': + resolution: {integrity: sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==} + engines: {node: ^20.9.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.35.4': + resolution: {integrity: sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [win32] + + '@livekit/agents-plugin-openai@1.9.1': + resolution: {integrity: sha512-sspmJ9aQiW/tNdMrYy81xRMT89Z375uXRzZJbKwOH751PrPj5mP7kqRXrTYN6AmqO2rKwZ2d/9mVavoKONPQ6w==} + peerDependencies: + '@livekit/agents': 1.9.1 + '@livekit/rtc-node': ^1.1.0 + zod: ^3.25.76 || ^4.1.8 + + '@livekit/agents@1.9.1': + resolution: {integrity: sha512-M8AxdKwzYzE9maO2cfPtGIXGqt9lpb3rsnBnC0vxZwRND+4y/GcW0t+c5CFDZGPHJ45bKvKALqI5aWnpCwgmWg==} + hasBin: true + peerDependencies: + '@livekit/rtc-node': ^1.1.0 + zod: ^3.25.76 || ^4.1.8 + + '@livekit/av-darwin-arm64@10.0.0': + resolution: {integrity: sha512-wf6C/eMKzZT88/4HvOlGZJMA/C5mewKlGG56HMJaAP6U/gUHRVDagDvce7+sZWz5RMsj2CAMUWZ+jiF1UgAAxA==} + cpu: [arm64] + os: [darwin] + + '@livekit/av-darwin-x64@10.0.0': + resolution: {integrity: sha512-Muw1jR+dpRHi0FLu8fHOCxDP/F/xGz1KOO9iIjAV+ObBCj0iPb1zXItWlpcVweU6JiaJpRN2HoI5FKpX+w0UeQ==} + cpu: [x64] + os: [darwin] + + '@livekit/av-linux-arm64@10.0.0': + resolution: {integrity: sha512-HVnzYLSKFrrR49epK37fV8eIbPuuWqbGoC7xXbmw0ziag1z0xUEZt072EEvmLcuCYMlX93At0se7Glh507751g==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@livekit/av-linux-x64@10.0.0': + resolution: {integrity: sha512-ZODmZ2bhfzjGrYF5KpwK7QHoaSVH96cX0o8sOGQT73VpgUCMDzcH+OSZWOlgFwUozk4jT/pjLfgGGPZtD2Dj7w==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@livekit/av-win32-x64@10.0.0': + resolution: {integrity: sha512-zvgdIvuu8C5aM+rSkOTZLKqX0FsYaN5CXKysmkKLU+pEDz+pIzkFelxPYX7YreV111aTAY19Dzj2i0KGEFnOSQ==} + cpu: [x64] + os: [win32] + + '@livekit/av@10.0.0': + resolution: {integrity: sha512-i39au9JY9qqZ9b0yKa5+2E3BQD9JtbGlCxqDbSvFjxprdHTdP96NgsLHOViwLk84J+eCLIyNzcGw5G3zIK2ZhQ==} + engines: {node: '>=18.0.0'} + + '@livekit/local-inference-darwin-arm64@0.2.7': + resolution: {integrity: sha512-di4SAKcV/i9tCozvbtwZLBtRPAJYWCcLNNVWduqAQSaV2/klT2CZsGpoN0s7t8NamvL78q1LxzL2iJVc6pc75g==} + cpu: [arm64] + os: [darwin] + + '@livekit/local-inference-darwin-x64@0.2.7': + resolution: {integrity: sha512-5e2HnjLSOwh1QfHQKbAgy0HDxAZhpOMLpwcUSXWIPeQEGOu+iu0s1f8xsRvz/LWxPOsZJn0bxFkfadnh5dvPMg==} + cpu: [x64] + os: [darwin] + + '@livekit/local-inference-linux-arm64-gnu@0.2.7': + resolution: {integrity: sha512-zUP9RverLt66kQ9slr+T3FY1Ad9IwJ3BPnJsEB/NxUeflq5g0dbUjIjGvjBCL6DktqLRyXixEJx1J5QUKUWUsw==} + cpu: [arm64] + os: [linux] + + '@livekit/local-inference-linux-x64-gnu@0.2.7': + resolution: {integrity: sha512-QG/0k0BwqnSz/qMU+Z/k0411iXkbVEdZ8XMBPjZGOorVYTQuMlovYd9hkSZvgnD84o/xeAMJekC6NcXv45FlGg==} + cpu: [x64] + os: [linux] + + '@livekit/local-inference-win32-x64-msvc@0.2.7': + resolution: {integrity: sha512-8KB0xfDgYstfvOtAshRsL0zRkwGOIGzOI4NqGMq1HBr+3wMuCrVEjspjpHvuMHCYVzihprE9L/ivYqpXBAGrXw==} + cpu: [x64] + os: [win32] + + '@livekit/local-inference@0.2.7': + resolution: {integrity: sha512-3XniFtpZHiIlAgVibhIU1YDaHbh8uScYojwtqaI1Em440w+fzix3wPXLv+IPePAmuusJzvHLrEFaTwojaBLk4w==} + engines: {node: '>=18.0.0'} + + '@livekit/mutex@1.1.1': + resolution: {integrity: sha512-EsshAucklmpuUAfkABPxJNhzj9v2sG7JuzFDL4ML1oJQSV14sqrpTYnsaOudMAw9yOaW53NU3QQTlUQoRs4czw==} + + '@livekit/protocol@1.51.0': + resolution: {integrity: sha512-kEDEDaFvIcp5VlYBromdSKMJMEJKfPvXPfEaJPdEz1Qgo84gZAoLF2g58CcMlVYGsjrwE5XYgQxRS5B7KuEj3w==} + + '@livekit/protocol@1.52.1': + resolution: {integrity: sha512-X8DxKlNbzk6Lh+v630+mjdFHSotdAFwIyzxSRSUql2DbTxCnlpa7JsvFGc6Na3mXiex2OFh0iiQtWwOBP0rIYA==} + + '@livekit/rtc-ffi-bindings-darwin-arm64@0.12.73': + resolution: {integrity: sha512-gIGftVyO1Jl266AZPRzoL6dxck969dmIiaut3+D1aCZRkDb/gLz98BEGRfOSU3X0LS4QBkmiaYWsjN9ot/zmwg==} + engines: {node: '>= 18'} + cpu: [arm64] + os: [darwin] + + '@livekit/rtc-ffi-bindings-darwin-x64@0.12.73': + resolution: {integrity: sha512-esPwYCbUnDD/KxBo0YU8awTFglRG7SvOT/sfiP19KChS5SH8TgXc7JwfSvnjRx1PndUqHFzQAbQDcYaeL9PFTg==} + engines: {node: '>= 18'} + cpu: [x64] + os: [darwin] + + '@livekit/rtc-ffi-bindings-linux-arm64-gnu@0.12.73': + resolution: {integrity: sha512-2YBatXjuaumnaNVqRC63flX5XZTvHcQWRsABw6e2yp+Hlxl3ocjVVyk5PrAsRzCdeyxbHLduqV9ctqGbpTA27Q==} + engines: {node: '>= 18'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@livekit/rtc-ffi-bindings-linux-x64-gnu@0.12.73': + resolution: {integrity: sha512-BrP3IyNkcjldeO+SbnF0hX2mipst8aHiBIiGJcQCd8HEjsaabfkYk4Y5uoNsTVMrUSyrNrJte2itAhuxP9FCSA==} + engines: {node: '>= 18'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@livekit/rtc-ffi-bindings-win32-x64-msvc@0.12.73': + resolution: {integrity: sha512-2RnKXMTnNfvjJ3kbuhE1jqFNAQNmqSrxy3GlEnByY61tbtY14QPFn8X/0lh+Mjst8pZdfxkXvtbRyPt5KYHvMA==} + engines: {node: '>= 18'} + cpu: [x64] + os: [win32] + + '@livekit/rtc-ffi-bindings@0.12.73': + resolution: {integrity: sha512-ZxkCQlsfTG7Eqi6KBXulEWJBUxeRVRYqCc795CsmKsGfqmBX5gE5CnTiynN8fFdzSGwApaVogeGSB6JszCf/Xw==} + engines: {node: '>= 18'} + + '@livekit/rtc-node@1.1.0': + resolution: {integrity: sha512-KFNvPz7qQSJBTttDukanhMJ+bCNxj6O3A3fXl6GJvOEamJJk7GqKCWgAdLW3JLjuT1pPQDyQPJJnYdR25N+MXA==} + engines: {node: '>= 18'} + + '@livekit/throws-transformer@0.1.8': + resolution: {integrity: sha512-AaSwQfIaG6YArKOCO+5/DgI8HfL19oHdrkyI0LJJVCqGeZXzPsZIO/Nm/SKUHbT1ERGhF5c34X8CcVWeOePpIQ==} + hasBin: true + peerDependencies: + typescript: '>=4.7.0' + + '@livekit/typed-emitter@3.0.0': + resolution: {integrity: sha512-9bl0k4MgBPZu3Qu3R3xy12rmbW17e3bE9yf4YY85gJIQ3ezLEj/uzpKHWBsLaDoL5Mozz8QCgggwIBudYQWeQg==} + + '@opentelemetry/api-logs@0.220.0': + resolution: {integrity: sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.9.1': + resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@2.0.1': + resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/context-async-hooks@2.11.0': + resolution: {integrity: sha512-Tr79DyWI8itsBdg+jH+opjfrwLzX+erk1/ExkIwhWoAVjVrJIn2y5+cGjTC0Vy8fyNIA/y8wuJPZwr1T3xCZeQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.0.1': + resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.11.0': + resolution: {integrity: sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.9.0': + resolution: {integrity: sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-logs-otlp-proto@0.220.0': + resolution: {integrity: sha512-8LZAxdJ0ENDAFwr4j0oY35mHBltiSzvlhdQAPGiC7p9VnxtuSq4SW1gfBAdW6t6hiQG6OwUl8w7KHaOdJPKHWg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-http@0.220.0': + resolution: {integrity: sha512-Yqt3RBw/bRVncaE9qIIhk4WfjbAQqXuP9FgAaU+IKPndnLEp/cUqZlSC324+bpmduRz7DoTjig8Ub0PeILWXUA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-proto@0.220.0': + resolution: {integrity: sha512-lyO+IQBdSvqHN/ZOW/OzrSWemtfD+HgWngn+HBNLhjy0YrCQQTz0OE/kSekH2Pl340dn9DWzhqHdz5Eftr+HLA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-proto@0.220.0': + resolution: {integrity: sha512-voTAD8XgJxlK7zLkXh8EzMB09zrQr3tyY/BsnDTlDiQU/UdK58MZ63A3mUjdEDrxMjCVmBHU3WQJhRmQe+Dvzg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-pino@0.66.0': + resolution: {integrity: sha512-RMAtAYuyouaMbHkQG8E97nJfwHftxmCbOURdD3n5s2Yd5zctLNudXB5hAfW18lsfUbePwQCND6QUXZixFN92Pw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.220.0': + resolution: {integrity: sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.220.0': + resolution: {integrity: sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.220.0': + resolution: {integrity: sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/resources@2.0.1': + resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/resources@2.11.0': + resolution: {integrity: sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/resources@2.9.0': + resolution: {integrity: sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.220.0': + resolution: {integrity: sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.11.0': + resolution: {integrity: sha512-7GXXcObyHyDUUSG+L+kJoquty01bzm7ivE7+SSgXXJcHuPzGviptxwARmI2c+bnnxjexGQbJnyNlN8HxBP/Y7A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.9.0': + resolution: {integrity: sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.0.1': + resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.11.0': + resolution: {integrity: sha512-H19x/TX/LZdqiYOjM7fqtSxwlplC5pgelavqbQdHbhdq0q/AI/TGkM2dfGuuynTXmJPeF2HoZVoPDu+TGoW78A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.0.1': + resolution: {integrity: sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.11.0': + resolution: {integrity: sha512-CuvCMJmZxswhNLlM2LfuLOW3h3fZujA4hsG4B+Sz4dX2zvaXO8Ng74cnDHWD64gLszTlhiG3c0iNUjj4g+0/sA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace@2.11.0': + resolution: {integrity: sha512-fFnTqGm8/G73GQVnxYi7LXa1ZVYEUvgL6XI1LpvV0bPC7WQ/ZGgKxCSl8FnlZBKto9JHHEFTO6s6CUpvvtwFrA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace@2.9.0': + resolution: {integrity: sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.43.0': + resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} + engines: {node: '>=14'} + + '@pinojs/redact@0.4.0': + resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} + + '@types/pidusage@2.0.5': + resolution: {integrity: sha512-MIiyZI4/MK9UGUXWt0jJcCZhVw7YdhBuTOuqP/BjuLDLZ2PmmViMIQgZiWxtaMicQfAz/kMrZ5T7PKxFSkTeUA==} + + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + async@0.2.10: + resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + cjs-module-lexer@2.2.1: + resolution: {integrity: sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@3.0.2: + resolution: {integrity: sha512-BuIB67FngDSyQ/dpQNOZybwdEBDUGJQvOqwWr4ha/ufYiqzuEwPkKO2zLhRAgay28tStRIHUeWmszZAJo3GCOg==} + + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-copy@3.1.0: + resolution: {integrity: sha512-IuCOCDFM1F/s4LtG7Bjr3yUUwPHybyhqN74xk2cMYoP51vVeErMy8+6HGFchi/+45lW8uzhs6lBeEqks2GWt6A==} + + fast-copy@4.1.1: + resolution: {integrity: sha512-A4QTJmuiztpGtr6AMeJts9R4hbj2ZBUwtOaKrG6rw2y7t6+IaJKjz5M3XDs8BUznxDH43FVc6A0y/gWlMl4UtA==} + + fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fluent-ffmpeg@2.1.3: + resolution: {integrity: sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==} + engines: {node: '>=18'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} + engines: {node: '>= 6'} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + + heap-js@2.7.1: + resolution: {integrity: sha512-EQfezRg0NCZGNlhlDR3Evrw1FVL2G3LhU7EgPoxufQKruNBSYA8MiRPHeWbU+36o+Fhel0wMwM+sLEiBAlNLJA==} + engines: {node: '>=10.0.0'} + + help-me@5.0.0: + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + import-in-the-middle@3.5.2: + resolution: {integrity: sha512-WseIA/4o56+GYO3RmlOPvejYi771OFeJEeK/ejROsr9bdjW+E5NXTOD1Di8TL40Qgg3JJX9aa97Hf8iiSVIKZw==} + engines: {node: '>=18'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jose@5.10.0: + resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + jsonrepair@3.15.0: + resolution: {integrity: sha512-wy8OTjwsJwQRnQJkKnMJJ9vcytRdBPAgIF/Hy6+s1dAj42BHMKiyL8JzEieIl3JY7idt8eyHwBWTO8mh/+mtwA==} + hasBin: true + + livekit-server-sdk@2.19.1: + resolution: {integrity: sha512-tqjM5oPDDNBrkb/64YReta9UWP32l1a2m0HHXq8WOuEzwxh4zsaXjeZZtPG4Er4eVAk4kjR+EMxH7lPKzg1g6g==} + engines: {node: '>=19'} + + lru-cache@11.5.3: + resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==} + engines: {node: 20 || >=22} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + openai@6.49.0: + resolution: {integrity: sha512-aYCc0C6L864eR6WSYIwQGyXriw/nIyZx0ObvhzOEVuk0zoBDpynjSbrionWI7q65B5H8jJX0DXR9snEzM6bfPg==} + peerDependencies: + '@aws-sdk/credential-provider-node': '>=3.972.0 <4' + '@smithy/hash-node': '>=4.3.0 <5' + '@smithy/signature-v4': '>=5.4.0 <6' + ws: ^8.18.0 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@aws-sdk/credential-provider-node': + optional: true + '@smithy/hash-node': + optional: true + '@smithy/signature-v4': + optional: true + ws: + optional: true + zod: + optional: true + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + pidusage@4.0.1: + resolution: {integrity: sha512-yCH2dtLHfEBnzlHUJymR/Z1nN2ePG3m392Mv8TFlTP1B0xkpMQNHAnfkY0n2tAi6ceKO6YWhxYfZ96V4vVkh/g==} + engines: {node: '>=18'} + + pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + + pino-abstract-transport@2.0.0: + resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} + + pino-abstract-transport@3.0.0: + resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} + + pino-pretty@11.3.0: + resolution: {integrity: sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==} + hasBin: true + + pino-pretty@13.1.3: + resolution: {integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==} + hasBin: true + + pino-std-serializers@6.2.2: + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + + pino-std-serializers@7.1.0: + resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==} + + pino@8.21.0: + resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} + hasBin: true + + pino@9.14.0: + resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} + hasBin: true + + process-warning@3.0.0: + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + + process-warning@5.1.0: + resolution: {integrity: sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + + require-in-the-middle@8.0.1: + resolution: {integrity: sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==} + engines: {node: '>=9.3.0 || >=8.10.0 <9.0.0'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + + secure-json-parse@4.1.0: + resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + + sharp@0.35.4: + resolution: {integrity: sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==} + engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + sonic-boom@3.8.1: + resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} + + sonic-boom@4.2.1: + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} + + thread-stream@2.7.0: + resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} + + thread-stream@3.2.0: + resolution: {integrity: sha512-zLBvqpwr4Esa0kRjcrzGU6zL25lePWaCLMx0RQFrmteozIfeNdaMLpG5U7PeHzvlFkAWaRKA9/KVW4F60iB+qw==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} + hasBin: true + + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.22.0: + resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: ^3.25.28 || ^4 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + +snapshots: + + '@bufbuild/protobuf@1.10.1': {} + + '@datastructures-js/deque@1.0.8': {} + + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@img/colour@1.1.0': {} + + '@img/sharp-darwin-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.3.3 + optional: true + + '@img/sharp-darwin-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.3.3 + optional: true + + '@img/sharp-freebsd-wasm32@0.35.4': + dependencies: + '@img/sharp-wasm32': 0.35.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-darwin-x64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-arm@1.3.3': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-riscv64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-s390x@1.3.3': + optional: true + + '@img/sharp-libvips-linux-x64@1.3.3': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.3.3': + optional: true + + '@img/sharp-linux-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.3.3 + optional: true + + '@img/sharp-linux-arm@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.3.3 + optional: true + + '@img/sharp-linux-ppc64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.3.3 + optional: true + + '@img/sharp-linux-riscv64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.3.3 + optional: true + + '@img/sharp-linux-s390x@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.3.3 + optional: true + + '@img/sharp-linux-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.3.3 + optional: true + + '@img/sharp-linuxmusl-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 + optional: true + + '@img/sharp-linuxmusl-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.3.3 + optional: true + + '@img/sharp-wasm32@0.35.4': + dependencies: + '@emnapi/runtime': 1.11.3 + optional: true + + '@img/sharp-webcontainers-wasm32@0.35.4': + dependencies: + '@img/sharp-wasm32': 0.35.4 + optional: true + + '@img/sharp-win32-arm64@0.35.4': + optional: true + + '@img/sharp-win32-ia32@0.35.4': + optional: true + + '@img/sharp-win32-x64@0.35.4': + optional: true + + '@livekit/agents-plugin-openai@1.9.1(@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76))(@livekit/rtc-node@1.1.0)(zod@3.25.76)': + dependencies: + '@livekit/agents': 1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76) + '@livekit/mutex': 1.1.1 + '@livekit/rtc-node': 1.1.0 + openai: 6.49.0(ws@8.22.0)(zod@3.25.76) + ws: 8.22.0 + zod: 3.25.76 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - bufferutil + - utf-8-validate + + '@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76)': + dependencies: + '@bufbuild/protobuf': 1.10.1 + '@livekit/av': 10.0.0 + '@livekit/local-inference': 0.2.7 + '@livekit/mutex': 1.1.1 + '@livekit/protocol': 1.52.1 + '@livekit/rtc-node': 1.1.0 + '@livekit/throws-transformer': 0.1.8(typescript@7.0.2) + '@livekit/typed-emitter': 3.0.0 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-pino': 0.66.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-node': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + '@types/pidusage': 2.0.5 + commander: 12.1.0 + fluent-ffmpeg: 2.1.3 + form-data: 4.0.6 + heap-js: 2.7.1 + json-schema: 0.4.0 + jsonrepair: 3.15.0 + livekit-server-sdk: 2.19.1 + ofetch: 1.5.1 + openai: 6.49.0(ws@8.22.0)(zod@3.25.76) + pidusage: 4.0.1 + pino: 8.21.0 + pino-pretty: 11.3.0 + sharp: 0.35.4 + ws: 8.22.0 + zod: 3.25.76 + zod-to-json-schema: 3.25.2(zod@3.25.76) + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - '@types/node' + - bufferutil + - supports-color + - typescript + - utf-8-validate + + '@livekit/av-darwin-arm64@10.0.0': + optional: true + + '@livekit/av-darwin-x64@10.0.0': + optional: true + + '@livekit/av-linux-arm64@10.0.0': + optional: true + + '@livekit/av-linux-x64@10.0.0': + optional: true + + '@livekit/av-win32-x64@10.0.0': + optional: true + + '@livekit/av@10.0.0': + optionalDependencies: + '@livekit/av-darwin-arm64': 10.0.0 + '@livekit/av-darwin-x64': 10.0.0 + '@livekit/av-linux-arm64': 10.0.0 + '@livekit/av-linux-x64': 10.0.0 + '@livekit/av-win32-x64': 10.0.0 + + '@livekit/local-inference-darwin-arm64@0.2.7': + optional: true + + '@livekit/local-inference-darwin-x64@0.2.7': + optional: true + + '@livekit/local-inference-linux-arm64-gnu@0.2.7': + optional: true + + '@livekit/local-inference-linux-x64-gnu@0.2.7': + optional: true + + '@livekit/local-inference-win32-x64-msvc@0.2.7': + optional: true + + '@livekit/local-inference@0.2.7': + dependencies: + node-gyp-build: 4.8.4 + optionalDependencies: + '@livekit/local-inference-darwin-arm64': 0.2.7 + '@livekit/local-inference-darwin-x64': 0.2.7 + '@livekit/local-inference-linux-arm64-gnu': 0.2.7 + '@livekit/local-inference-linux-x64-gnu': 0.2.7 + '@livekit/local-inference-win32-x64-msvc': 0.2.7 + + '@livekit/mutex@1.1.1': {} + + '@livekit/protocol@1.51.0': + dependencies: + '@bufbuild/protobuf': 1.10.1 + + '@livekit/protocol@1.52.1': + dependencies: + '@bufbuild/protobuf': 1.10.1 + + '@livekit/rtc-ffi-bindings-darwin-arm64@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-darwin-x64@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-linux-arm64-gnu@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-linux-x64-gnu@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-win32-x64-msvc@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings@0.12.73': + dependencies: + '@bufbuild/protobuf': 1.10.1 + optionalDependencies: + '@livekit/rtc-ffi-bindings-darwin-arm64': 0.12.73 + '@livekit/rtc-ffi-bindings-darwin-x64': 0.12.73 + '@livekit/rtc-ffi-bindings-linux-arm64-gnu': 0.12.73 + '@livekit/rtc-ffi-bindings-linux-x64-gnu': 0.12.73 + '@livekit/rtc-ffi-bindings-win32-x64-msvc': 0.12.73 + + '@livekit/rtc-node@1.1.0': + dependencies: + '@datastructures-js/deque': 1.0.8 + '@livekit/mutex': 1.1.1 + '@livekit/rtc-ffi-bindings': 0.12.73 + '@livekit/typed-emitter': 3.0.0 + pino: 9.14.0 + pino-pretty: 13.1.3 + + '@livekit/throws-transformer@0.1.8(typescript@7.0.2)': + dependencies: + glob: 13.0.6 + typescript: 7.0.2 + + '@livekit/typed-emitter@3.0.0': {} + + '@opentelemetry/api-logs@0.220.0': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/api@1.9.1': {} + + '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/context-async-hooks@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/core@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/exporter-logs-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-metrics-otlp-http@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-metrics-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-http': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-trace-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/instrumentation-pino@0.66.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + import-in-the-middle: 3.5.2 + require-in-the-middle: 8.0.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/otlp-exporter-base@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/otlp-transformer@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/resources@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-logs@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-metrics@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace-base@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-trace-node@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/context-async-hooks': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.11.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-trace@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/semantic-conventions@1.43.0': {} + + '@pinojs/redact@0.4.0': {} + + '@types/pidusage@2.0.5': {} + + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + async@0.2.10: {} + + asynckit@0.4.0: {} + + atomic-sleep@1.0.0: {} + + balanced-match@4.0.4: {} + + base64-js@1.5.1: {} + + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + cjs-module-lexer@2.2.1: {} + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@12.1.0: {} + + dateformat@4.6.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + delayed-stream@1.0.0: {} + + destr@2.0.5: {} + + detect-libc@2.1.2: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@3.0.2: {} + + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + fast-copy@3.1.0: {} + + fast-copy@4.1.1: {} + + fast-redact@3.5.0: {} + + fast-safe-stringify@2.1.1: {} + + fluent-ffmpeg@2.1.3: + dependencies: + async: 0.2.10 + which: 1.3.1 + + form-data@4.0.6: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 + mime-types: 2.1.35 + + function-bind@1.1.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + glob@13.0.6: + dependencies: + minimatch: 10.2.6 + minipass: 7.1.3 + path-scurry: 2.0.2 + + gopd@1.2.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + heap-js@2.7.1: {} + + help-me@5.0.0: {} + + ieee754@1.2.1: {} + + import-in-the-middle@3.5.2: + dependencies: + cjs-module-lexer: 2.2.1 + es-module-lexer: 3.0.2 + module-details-from-path: 1.0.4 + + isexe@2.0.0: {} + + jose@5.10.0: {} + + joycon@3.1.1: {} + + json-schema@0.4.0: {} + + jsonrepair@3.15.0: {} + + livekit-server-sdk@2.19.1: + dependencies: + '@bufbuild/protobuf': 1.10.1 + '@livekit/protocol': 1.51.0 + jose: 5.10.0 + + lru-cache@11.5.3: {} + + math-intrinsics@1.1.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.12 + + minimist@1.2.8: {} + + minipass@7.1.3: {} + + module-details-from-path@1.0.4: {} + + ms@2.1.3: {} + + node-fetch-native@1.6.7: {} + + node-gyp-build@4.8.4: {} + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 + + on-exit-leak-free@2.1.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + openai@6.49.0(ws@8.22.0)(zod@3.25.76): + optionalDependencies: + ws: 8.22.0 + zod: 3.25.76 + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.3 + minipass: 7.1.3 + + pidusage@4.0.1: + dependencies: + safe-buffer: 5.2.1 + + pino-abstract-transport@1.2.0: + dependencies: + readable-stream: 4.7.0 + split2: 4.2.0 + + pino-abstract-transport@2.0.0: + dependencies: + split2: 4.2.0 + + pino-abstract-transport@3.0.0: + dependencies: + split2: 4.2.0 + + pino-pretty@11.3.0: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 3.1.0 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pump: 3.0.4 + readable-stream: 4.7.0 + secure-json-parse: 2.7.0 + sonic-boom: 4.2.1 + strip-json-comments: 3.1.1 + + pino-pretty@13.1.3: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 4.1.1 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 3.0.0 + pump: 3.0.4 + secure-json-parse: 4.1.0 + sonic-boom: 4.2.1 + strip-json-comments: 5.0.3 + + pino-std-serializers@6.2.2: {} + + pino-std-serializers@7.1.0: {} + + pino@8.21.0: + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 6.2.2 + process-warning: 3.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 3.8.1 + thread-stream: 2.7.0 + + pino@9.14.0: + dependencies: + '@pinojs/redact': 0.4.0 + atomic-sleep: 1.0.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pino-std-serializers: 7.1.0 + process-warning: 5.1.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.1 + thread-stream: 3.2.0 + + process-warning@3.0.0: {} + + process-warning@5.1.0: {} + + process@0.11.10: {} + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + quick-format-unescaped@4.0.4: {} + + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + real-require@0.2.0: {} + + require-in-the-middle@8.0.1: + dependencies: + debug: 4.4.3 + module-details-from-path: 1.0.4 + transitivePeerDependencies: + - supports-color + + safe-buffer@5.2.1: {} + + safe-stable-stringify@2.5.0: {} + + secure-json-parse@2.7.0: {} + + secure-json-parse@4.1.0: {} + + semver@7.8.5: {} + + sharp@0.35.4: + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.8.5 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.35.4 + '@img/sharp-darwin-x64': 0.35.4 + '@img/sharp-freebsd-wasm32': 0.35.4 + '@img/sharp-libvips-darwin-arm64': 1.3.3 + '@img/sharp-libvips-darwin-x64': 1.3.3 + '@img/sharp-libvips-linux-arm': 1.3.3 + '@img/sharp-libvips-linux-arm64': 1.3.3 + '@img/sharp-libvips-linux-ppc64': 1.3.3 + '@img/sharp-libvips-linux-riscv64': 1.3.3 + '@img/sharp-libvips-linux-s390x': 1.3.3 + '@img/sharp-libvips-linux-x64': 1.3.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 + '@img/sharp-libvips-linuxmusl-x64': 1.3.3 + '@img/sharp-linux-arm': 0.35.4 + '@img/sharp-linux-arm64': 0.35.4 + '@img/sharp-linux-ppc64': 0.35.4 + '@img/sharp-linux-riscv64': 0.35.4 + '@img/sharp-linux-s390x': 0.35.4 + '@img/sharp-linux-x64': 0.35.4 + '@img/sharp-linuxmusl-arm64': 0.35.4 + '@img/sharp-linuxmusl-x64': 0.35.4 + '@img/sharp-webcontainers-wasm32': 0.35.4 + '@img/sharp-win32-arm64': 0.35.4 + '@img/sharp-win32-ia32': 0.35.4 + '@img/sharp-win32-x64': 0.35.4 + + sonic-boom@3.8.1: + dependencies: + atomic-sleep: 1.0.0 + + sonic-boom@4.2.1: + dependencies: + atomic-sleep: 1.0.0 + + split2@4.2.0: {} + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-json-comments@3.1.1: {} + + strip-json-comments@5.0.3: {} + + thread-stream@2.7.0: + dependencies: + real-require: 0.2.0 + + thread-stream@3.2.0: + dependencies: + real-require: 0.2.0 + + tslib@2.8.1: + optional: true + + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + + ufo@1.6.4: {} + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + wrappy@1.0.2: {} + + ws@8.18.3: {} + + ws@8.22.0: {} + + zod-to-json-schema@3.25.2(zod@3.25.76): + dependencies: + zod: 3.25.76 + + zod@3.25.76: {} diff --git a/e2e/scenarios/livekit-instrumentation/scenario.mjs b/e2e/scenarios/livekit-instrumentation/scenario.mjs new file mode 100644 index 000000000..b1842e5ec --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/scenario.mjs @@ -0,0 +1,322 @@ +import assert from "node:assert/strict"; +import { initLogger, configureInstrumentation, setFetch } from "braintrust"; +import { getTestRunId, scopedName } from "../../helpers/provider-runtime.mjs"; +import { LiveKitSpanProcessor, wrapLiveKitSession } from "braintrust/livekit"; +import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node"; +import { AudioFrame, dispose } from "@livekit/rtc-node"; +const automatic = process.env.LIVEKIT_AUTOMATIC === "1"; +if (automatic) + configureInstrumentation({ + integrations: { livekit: { captureAudio: true, captureContent: true } }, + }); +const { voice, llm, telemetry, initializeLogger } = await import( + process.env.LIVEKIT_PACKAGE +); +initializeLogger({ pretty: false, level: "silent" }); +const completedUploads = []; +if (process.env.LIVEKIT_SEGMENTS === "1") { + setFetch(async (input, init) => { + const response = await fetch(input, init); + if ( + new URL( + typeof input === "string" || input instanceof URL ? input : input.url, + ).pathname === "/attachment/status" && + response.ok + ) { + const body = JSON.parse(init.body); + if (body.status?.upload_status === "done") + completedUploads.push({ + key: body.key, + playedSamples: output.playedSamples, + }); + } + return response; + }); +} +const logger = initLogger({ projectName: scopedName("e2e-livekit") }); +class ScenarioProcessor extends LiveKitSpanProcessor { + onStart(span) { + super.onStart(span); + this.rows.get(span.spanContext().spanId)?.span.log({ + metadata: { + scenario: "livekit-instrumentation", + testRunId: getTestRunId(), + }, + }); + } +} +const processor = automatic + ? undefined + : new ScenarioProcessor({ + logger, + captureContent: true, + ...(process.env.LIVEKIT_SEGMENTS === "1" + ? { + recording: { + segmentDurationSeconds: 0.2, + }, + } + : {}), + captureAgentAudio: process.env.LIVEKIT_AUDIO === "1", + captureUserAudio: process.env.LIVEKIT_STREAMING_STT === "1", + }); +const provider = automatic + ? undefined + : new NodeTracerProvider({ spanProcessors: [processor] }); +if (provider) { + // LiveKit registers its own PII processor before ours. + provider.registerSpanProcessor = (p) => + provider._activeSpanProcessor._spanProcessors.unshift(p); + provider.register(); + telemetry.setTracerProvider(provider, { + allowPii: true, + registerSpanProcessor: (p) => provider.registerSpanProcessor(p), + }); +} +const providerMode = process.env.LIVEKIT_PROVIDER === "1"; +class Output extends voice.AudioOutput { + samples = 0; + playedSamples = 0; + interrupted = false; + didInterrupt = false; + startedAt = 0; + constructor() { + super(24000); + } + async captureFrame(frame) { + await super.captureFrame(frame); + if (!this.samples) { + this.interrupted = false; + if (process.env.LIVEKIT_PLAYBACK_START_DELAY_MS) + await new Promise((resolve) => + setTimeout( + resolve, + Number(process.env.LIVEKIT_PLAYBACK_START_DELAY_MS), + ), + ); + this.startedAt = Date.now(); + this.onPlaybackStarted(this.startedAt); + } + const duration = (frame.samplesPerChannel / frame.sampleRate) * 1000; + await new Promise((resolve) => setTimeout(resolve, duration)); + this.samples += frame.samplesPerChannel; + this.playedSamples += frame.samplesPerChannel; + if (process.env.LIVEKIT_SEGMENTS === "1") + this.onPlaybackProgressed({ + startedAt: this.startedAt + this.samples / 24 - duration, + offset: this.samples / 24 - duration, + duration, + }); + if ( + process.env.LIVEKIT_INTERRUPT === "1" && + this.samples >= 4800 && + !this.didInterrupt + ) { + this.didInterrupt = true; + this.clearBuffer(); + void session.interrupt({ force: true }).await; + } + } + flush() { + super.flush(); + if (!this.interrupted && process.env.LIVEKIT_SEGMENTS !== "1") + this.onPlaybackProgressed({ + startedAt: this.startedAt, + offset: 0, + duration: this.samples / 24, + }); + if (this.pendingPlayoutSegments > 0) + this.onPlaybackFinished({ + playbackPosition: this.samples / 24000, + interrupted: this.interrupted, + }); + this.samples = 0; + } + clearBuffer() { + this.onPlaybackProgressed({ + startedAt: this.startedAt, + offset: 0, + duration: this.samples / 24, + }); + this.interrupted = true; + if (this.pendingPlayoutSegments > 0) + this.onPlaybackFinished({ + playbackPosition: this.samples / 24000, + interrupted: true, + }); + this.abandonOpenSegment(); + } +} +const options = {}; +const streamingStt = process.env.LIVEKIT_STREAMING_STT === "1"; +const audioInput = streamingStt; +let ws; +if (providerMode) { + const { LLM, TTS } = await import("@livekit/agents-plugin-openai"); + options.llm = new LLM({ + model: "gpt-4.1-nano", + temperature: 0, + baseURL: process.env.OPENAI_BASE_URL, + }); + options.tts = new TTS({ + model: "gpt-4o-mini-tts", + voice: "alloy", + baseURL: process.env.OPENAI_BASE_URL, + }); +} +if (audioInput) { + const { websocketCassette } = await import("./websocket-cassette.mjs"); + ws = await websocketCassette( + process.env.LIVEKIT_WS_PATH, + process.env.BRAINTRUST_E2E_CASSETTE_MODE === "record", + ); + const { STT } = await import("@livekit/agents-plugin-openai"); + options.stt = new STT({ + model: "gpt-4o-mini-transcribe", + useRealtime: true, + baseURL: ws.baseURL, + }); + options.turnDetection = "manual"; +} +const session = new voice.AgentSession(options); +if (process.env.LIVEKIT_WRAP === "1") { + assert.equal(wrapLiveKitSession(wrapLiveKitSession(session)), session); +} +let inputController; +if (audioInput) { + class Input extends voice.AudioInput { + source = new ReadableStream({ + start(controller) { + inputController = controller; + }, + }); + get stream() { + return this.source; + } + async close() { + try { + inputController.close(); + } catch {} + } + } + session.input.audio = new Input(); +} +const output = new Output(); +const committed = []; +let callerTranscript = ""; +session.on("user_input_transcribed", (ev) => { + if (ev.isFinal) callerTranscript += ev.transcript; +}); +session.on("conversation_item_added", (ev) => committed.push(ev.item)); +session.output.audio = output; +const original = output.captureFrame; +try { + await session.start({ + agent: new voice.Agent({ + instructions: providerMode + ? "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day." + : "Fixture playback", + tools: providerMode + ? { + lookup_order: llm.tool({ + description: "Look up an order delivery status.", + parameters: (await import("zod")).z.object({ + order_id: (await import("zod")).z.string(), + }), + execute: async ({ order_id }) => ({ + order_id, + status: "in_transit", + delivery: "Friday", + }), + }), + } + : {}, + }), + record: false, + }); + if (process.env.LIVEKIT_AUDIO !== "1") + assert.equal(output.captureFrame, original); + const audio = new ReadableStream({ + start(controller) { + controller.enqueue( + new AudioFrame(new Int16Array(480).fill(1234), 24000, 1, 480), + ); + controller.close(); + }, + }); + if (providerMode) { + const feedCaller = async (fixture = "order", silenceBytes = 96000) => { + const { readFile } = await import("node:fs/promises"); + const bytes = Buffer.concat([ + await readFile( + new URL(`./fixtures/${fixture}-24khz.pcm`, import.meta.url), + ), + Buffer.alloc(silenceBytes), + ]); + for (let at = 0; at < bytes.length; at += 960) { + const pcm = new Int16Array(480); + for (let i = 0; i < 480 && at + i * 2 + 1 < bytes.length; i++) + pcm[i] = bytes.readInt16LE(at + i * 2); + inputController.enqueue(new AudioFrame(pcm, 24000, 1, 480)); + // Pace microphone frames to preserve capture timing. + if (streamingStt) + await new Promise((resolve) => setTimeout(resolve, 20)); + // Buffered fixture input preserves the sample clock without wall-clock jitter. + } + if (streamingStt) { + const deadline = Date.now() + 15000; + while (!/order/i.test(callerTranscript)) { + if (Date.now() > deadline) throw new Error("No final STT transcript"); + await new Promise((resolve) => setTimeout(resolve, 20)); + } + session.commitUserTurn(); + } + }; + if (audioInput) await feedCaller(); + else + await session + .generateReply({ userInput: "Hi, could you check order 1042 for me?" }) + .waitForPlayout(); + const deadline = Date.now() + 30000; + while ( + !committed.some( + (item) => + item.role === "assistant" && + (process.env.LIVEKIT_INTERRUPT === "1" + ? item.interrupted + : /Friday/i.test(item.textContent ?? "")), + ) + ) { + if (Date.now() > deadline) throw new Error("No committed order answer"); + await new Promise((resolve) => setTimeout(resolve, 20)); + } + await session.activity?.currentSpeech?.waitForPlayout(); + if (process.env.LIVEKIT_RECOVER === "1") { + await session + .generateReply({ userInput: "Sorry, please repeat the delivery day." }) + .waitForPlayout(); + assert( + committed.at(-1)?.role === "assistant" && !committed.at(-1).interrupted, + ); + assert.match(committed.at(-1).textContent, /Friday/i); + } + } else await session.say("Fixture playback", { audio }).waitForPlayout(); + if (process.env.LIVEKIT_SEGMENTS === "1") { + console.log( + JSON.stringify({ + playedDurationMs: output.playedSamples / 24, + completedUploads, + }), + ); + } + if (audioInput) await session.input.audio?.close(); + await session.close(); + await provider?.forceFlush(); + await logger.flush(); +} finally { + if (audioInput) await session.input.audio?.close(); + await session.close(); + await provider?.shutdown(); + await dispose(); + await ws?.close(); +} diff --git a/e2e/scenarios/livekit-instrumentation/scenario.test.ts b/e2e/scenarios/livekit-instrumentation/scenario.test.ts new file mode 100644 index 000000000..f2e2905f3 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/scenario.test.ts @@ -0,0 +1,734 @@ +import { assertAudioTrace } from "./assertions"; +import { expect, test } from "vitest"; +import { + prepareScenarioDir, + resolveScenarioDir, + withScenarioHarness, +} from "../../helpers/scenario-harness"; +import { findLatestSpan, findAllSpans } from "../../helpers/trace-selectors"; +import { spanTreeFields, matchSpanTreeSnapshot } from "../../helpers/span-tree"; +import { resolveFileSnapshotPath } from "../../helpers/file-snapshot"; +function normalizer() { + const ids = new Map(); + function stable(value: unknown, key = ""): unknown { + if ( + typeof value === "number" && + /(_ms|_at|transcription_delay|end_of_turn_delay|on_user_turn_completed_delay|e2e_latency|At|wait_duration|queue_wait|playback_latency|playbackPosition|ttft|ttfb|time_to_first_chunk|time_to_first_token|timestamp|ttfbMs|durationMs|tokensPerSecond)$/.test( + key, + ) + ) + return 0; + if (typeof value === "string" && key.endsWith("_metrics")) { + try { + return stable(JSON.parse(value)); + } catch {} + } + if ( + typeof value === "string" && + (["traceId", "spanId"].includes(key) || + /^(item_|speech_)/.test(value) || + /^[0-9a-f]{8}-[0-9a-f]{3}$/.test(value)) + ) { + if (!ids.has(value)) ids.set(value, ``); + return ids.get(value); + } + if (typeof value === "string" && /^127\.0\.0\.1:\d+$/.test(value)) + return ""; + if (Array.isArray(value)) return value.map((v) => stable(v)); + if (value && typeof value === "object") + return Object.fromEntries( + Object.entries(value).map(([k, v]) => [ + /^(item_|speech_)/.test(k) ? stable(k) : k, + stable(v, k), + ]), + ); + return value; + } + return stable; +} +const originalScenarioDir = resolveScenarioDir(import.meta.url); +const scenarioDir = await prepareScenarioDir({ + scenarioDir: originalScenarioDir, +}); +// Native LiveKit I/O modes plus real-provider cassette conversations below. +for (const variant of ["livekit-v1", "livekit-v1-latest"]) { + for (const mode of ["wrapped", "auto", "wrapped-auto", "disabled"]) { + test.sequential( + `${variant} ${mode}`, + async () => { + await withScenarioHarness(async (harness) => { + await harness.runNodeScenarioDir({ + scenarioDir, + entry: "scenario.mjs", + timeoutMs: 60000, + nodeArgs: + mode === "wrapped" ? [] : ["--import", "braintrust/hook.mjs"], + env: { + LIVEKIT_PACKAGE: variant, + LIVEKIT_WRAP: mode.includes("wrapped") ? "1" : "0", + LIVEKIT_AUDIO: mode === "disabled" ? "0" : "1", + }, + runContext: { + variantKey: variant, + originalScenarioDir, + cassette: false, + }, + }); + const stable = normalizer(); + const raw = harness.events(); + assertAudioTrace(raw); + const events = [...new Set(raw.map((e) => e.span.name))].flatMap( + (name) => findAllSpans(raw, name!), + ); + const root = findLatestSpan(events, "livekit.agent_session"); + const turn = findLatestSpan(events, "agent_turn"); + expect(root).toBeDefined(); + expect(turn).toBeDefined(); + expect( + new Set( + events + .filter((e) => e.span.name === "livekit.agent_session") + .map((e) => e.span.id), + ).size, + ).toBe(1); + const recordings = root!.row.metadata?.["audio.recordings"]; + if (mode === "disabled") expect(recordings).toBeUndefined(); + else { + expect(recordings).toMatchObject([ + { + state: "ready", + channel_count: 2, + attachment: { + span_id: root!.span.id, + ref: "/input/audio/call-0000", + }, + }, + ]); + expect(turn!.row.metadata?.["audio.selections"]).toMatchObject([ + { channel_index: 1, recording_span_id: root!.span.id }, + ]); + } + await matchSpanTreeSnapshot( + events.map((event) => ({ + event, + fields: stable({ + ...spanTreeFields(event), + context: event.row.context, + }) as Record, + })), + resolveFileSnapshotPath( + import.meta.url, + `${variant}-${mode === "disabled" ? "disabled" : "audio"}.span-tree.json`, + ), + ); + }); + }, + 120000, + ); + } +} + +for (const variant of ["livekit-v1", "livekit-v1-latest"]) { + test.sequential( + `${variant} order conversation`, + async () => { + await withScenarioHarness(async (harness) => { + await harness.runNodeScenarioDir({ + scenarioDir, + entry: "scenario.mjs", + timeoutMs: 90000, + nodeArgs: ["--import", "braintrust/hook.mjs"], + env: { + LIVEKIT_PACKAGE: variant, + LIVEKIT_PROVIDER: "1", + LIVEKIT_AUDIO: "1", + BRAINTRUST_DISABLE_INSTRUMENTATION: "", + }, + runContext: { + variantKey: variant, + cassette: { variantKey: `${variant}-order` }, + originalScenarioDir, + }, + }); + const stable = normalizer(); + const raw = harness.events(); + assertAudioTrace(raw); + const events = [...new Set(raw.map((e) => e.span.name))].flatMap( + (name) => findAllSpans(raw, name!), + ); + const turn = findLatestSpan(events, "agent_turn"); + expect(turn).toBeDefined(); + const responses = events.filter((e) => e.span.name === "llm_response"); + expect( + events + .filter((e) => e.row.span_attributes?.type === "llm") + .map((e) => e.span.name), + ).toEqual(responses.map((e) => e.span.name)); + expect(responses).toHaveLength(2); + expect( + responses.every((e) => e.row.metadata?.["turn.id"] === turn!.span.id), + ).toBe(true); + expect( + responses.every((e) => e.row.metadata?.model === "gpt-4.1-nano"), + ).toBe(true); + expect(responses.every((e) => Number(e.row.metrics?.tokens) > 0)).toBe( + true, + ); + const tool = findLatestSpan(events, "lookup_order"); + expect(tool?.row.input).toEqual({ order_id: "1042" }); + expect(tool?.row.output).toMatchObject({ delivery: "Friday" }); + expect( + responses.some((e) => + ( + e.row.metadata?.links as + | { + context: { spanId: string }; + attributes: Record; + }[] + | undefined + )?.some( + (link) => + link.context.spanId === tool!.span.id && + link.attributes["braintrust.relationship.type"] === + "consumes_tool_result", + ), + ), + ).toBe(true); + expect(findLatestSpan(events, "agent_speech")?.row.output).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + role: "assistant", + content: expect.stringMatching(/Friday/i), + }), + ]), + ); + expect(findLatestSpan(events, "tts")).toBeDefined(); + expect(JSON.stringify(events.map((e) => e.row.metadata))).not.toContain( + '"livekit.', + ); + await matchSpanTreeSnapshot( + events.map((event) => ({ + event, + fields: stable({ + ...spanTreeFields(event), + context: event.row.context, + }) as Record, + })), + resolveFileSnapshotPath( + import.meta.url, + `${variant}-order.span-tree.json`, + ), + ); + }); + }, + 120000, + ); +} + +for (const variant of ["livekit-v1", "livekit-v1-latest"]) { + for (const scheme of ["streaming-cascade"]) { + test.sequential( + `${variant} ${scheme} order conversation`, + async () => { + await withScenarioHarness(async (harness) => { + await harness.runNodeScenarioDir({ + scenarioDir, + entry: "scenario.mjs", + timeoutMs: 90000, + nodeArgs: ["--import", "braintrust/hook.mjs"], + env: { + LIVEKIT_PACKAGE: variant, + LIVEKIT_PROVIDER: "1", + + LIVEKIT_STREAMING_STT: "1", + + LIVEKIT_AUDIO: "1", + LIVEKIT_WS_PATH: `${originalScenarioDir}/__cassettes__/${variant}-${scheme}.websocket.json`, + BRAINTRUST_E2E_CASSETTE_MODE: + process.env.BRAINTRUST_E2E_CASSETTE_MODE ?? "replay", + BRAINTRUST_DISABLE_INSTRUMENTATION: "", + OPENAI_API_KEY: process.env.OPENAI_API_KEY ?? "replay", + }, + runContext: { + variantKey: variant, + originalScenarioDir, + cassette: { variantKey: `${variant}-${scheme}` }, + }, + }); + const stable = normalizer(); + const raw = harness.events(); + assertAudioTrace(raw); + const events = [...new Set(raw.map((e) => e.span.name))].flatMap( + (name) => findAllSpans(raw, name!), + ); + expect( + findLatestSpan(events, "lookup_order")?.row.output, + ).toMatchObject({ delivery: "Friday" }); + expect( + events.filter((e) => e.span.name === "llm_response").length, + ).toBeGreaterThanOrEqual(2); + expect(findLatestSpan(events, "agent_speech")?.row.output).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + role: "assistant", + content: expect.stringMatching(/Friday/i), + }), + ]), + ); + const users = findAllSpans(events, "user_speech"); + expect(users.length).toBeGreaterThan(0); + const transcript = users + .flatMap((e) => + Array.isArray(e.row.input) + ? e.row.input.map((m) => m.content) + : [], + ) + .join(" "); + expect(transcript).toMatch(/Where\s+is\s+my\s+order/i); + const user = users.find( + (e) => + Array.isArray(e.row.input) && e.row.input.some((m) => m.content), + ); + expect(user?.row.metadata?.["audio.selections"]).toEqual( + expect.arrayContaining([ + expect.objectContaining({ channel_index: 0 }), + ]), + ); + expect( + events + .filter((e) => e.span.name === "llm_response") + .every((e) => Array.isArray(e.row.output)), + ).toBe(true); + expect(findLatestSpan(events, "tts")).toBeDefined(); + expect(findLatestSpan(events, "user_turn")?.row.metadata?.model).toBe( + "gpt-4o-mini-transcribe", + ); + await matchSpanTreeSnapshot( + events.map((event) => ({ + event, + fields: stable({ + ...spanTreeFields(event), + context: event.row.context, + }) as Record, + })), + resolveFileSnapshotPath( + import.meta.url, + `${variant}-${scheme}.span-tree.json`, + ), + ); + }); + }, + 120000, + ); + } +} + +for (const variant of ["livekit-v1", "livekit-v1-latest"]) { + for (const recover of [false, true]) + test.sequential( + `${variant} ${recover ? "recovered" : "interrupted"} order answer`, + async () => { + await withScenarioHarness(async (harness) => { + await harness.runNodeScenarioDir({ + scenarioDir, + entry: "scenario.mjs", + timeoutMs: 90000, + nodeArgs: ["--import", "braintrust/hook.mjs"], + env: { + LIVEKIT_PACKAGE: variant, + LIVEKIT_PROVIDER: "1", + LIVEKIT_AUDIO: "1", + LIVEKIT_INTERRUPT: "1", + LIVEKIT_RECOVER: recover ? "1" : "0", + BRAINTRUST_DISABLE_INSTRUMENTATION: "", + }, + runContext: { + variantKey: variant, + cassette: { + variantKey: `${variant}-${recover ? "recovered" : "order"}`, + }, + originalScenarioDir, + }, + }); + const raw = harness.events(); + assertAudioTrace(raw); + const events = [...new Set(raw.map((e) => e.span.name))].flatMap( + (name) => findAllSpans(raw, name!), + ); + const turn = events.find( + (e) => + e.span.name === "agent_speech" && + e.row.metadata?.["contrib.livekit.interrupted"], + ); + if (recover) { + const resumed = findLatestSpan(events, "agent_speech"); + expect(resumed?.span.id).not.toBe(turn?.span.id); + expect( + resumed?.row.metadata?.["contrib.livekit.interrupted"], + ).not.toBe(true); + expect(resumed?.row.output).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + role: "assistant", + content: expect.stringMatching(/Friday/i), + }), + ]), + ); + expect(resumed?.row.metadata?.["audio.selections"]).toEqual( + expect.arrayContaining([ + expect.objectContaining({ channel_index: 1 }), + ]), + ); + } + expect(turn?.row.metadata?.["contrib.livekit.interrupted"]).toBe( + true, + ); + expect(turn?.row.metadata?.["audio.selections"]).toEqual( + expect.arrayContaining([ + expect.objectContaining({ channel_index: 1 }), + ]), + ); + expect( + events.find((e) => e.span.id === turn?.row.metadata?.["turn.id"]) + ?.row.metadata?.["contrib.livekit.playback_events"], + ).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + attributes: expect.objectContaining({ interrupted: true }), + }), + ]), + ); + const stable = normalizer(); + await matchSpanTreeSnapshot( + events.map((event) => ({ + event, + fields: stable({ + ...spanTreeFields(event), + context: event.row.context, + }) as Record, + })), + resolveFileSnapshotPath( + import.meta.url, + `${variant}-${recover ? "recovered" : "interrupted"}.span-tree.json`, + ), + ); + }); + }, + 120000, + ); +} + +for (const variant of ["livekit-v1", "livekit-v1-latest"]) { + test.sequential.each([0, 137])( + `${variant} progressive WAV order recording (%i ms start delay)`, + async (startDelayMs) => { + await withScenarioHarness(async (harness) => { + const result = await harness.runNodeScenarioDir({ + scenarioDir, + entry: "scenario.mjs", + timeoutMs: 90000, + nodeArgs: ["--import", "braintrust/hook.mjs"], + env: { + LIVEKIT_PACKAGE: variant, + LIVEKIT_PROVIDER: "1", + LIVEKIT_AUDIO: "1", + LIVEKIT_SEGMENTS: "1", + LIVEKIT_PLAYBACK_START_DELAY_MS: String(startDelayMs), + BRAINTRUST_DISABLE_INSTRUMENTATION: "", + }, + runContext: { + variantKey: variant, + cassette: { variantKey: `${variant}-order` }, + originalScenarioDir, + }, + }); + const raw = harness.events(); + assertAudioTrace(raw); + const events = [...new Set(raw.map((e) => e.span.name))].flatMap( + (name) => findAllSpans(raw, name!), + ); + const root = findLatestSpan(events, "livekit.agent_session")!; + const descriptors = root.row.metadata?.["audio.recordings"] as { + id: string; + state: string; + mime_type: string; + recording_group_id: string; + duration_ms: number; + attachment: { span_id: string; ref: string }; + timeline: { recording_start_offset_ms: number }; + }[]; + // Rotation is anchored to session time, so startup latency changes the + // number of files. Assert complete playback coverage rather than a fixed + // segment-count snapshot; the ordinary audio case snapshots trace shape. + expect(descriptors.length).toBeGreaterThan(1); + const attachments = ( + root.row.input as { + audio: Record< + string, + { key: string; filename: string; content_type: string } + >; + } + ).audio; + expect(Object.keys(attachments).sort()).toEqual( + descriptors.map((r) => r.id).sort(), + ); + const requests = harness.requestsAfter(0); + for (const [index, recording] of descriptors.entries()) { + expect(recording).toMatchObject({ + id: `call-${String(index).padStart(4, "0")}`, + state: "ready", + mime_type: "audio/wav", + recording_group_id: "call", + attachment: { + span_id: root.span.id, + ref: `/input/audio/${recording.id}`, + }, + }); + expect(recording.duration_ms).toBeGreaterThan(0); + expect(recording.duration_ms).toBeLessThanOrEqual(200.05); + if (index > 0) { + const previous = descriptors[index - 1]; + expect(recording.timeline.recording_start_offset_ms).toBeCloseTo( + previous.timeline.recording_start_offset_ms + + previous.duration_ms, + 1, + ); + } + const attachment = attachments[recording.id]; + expect(attachment).toMatchObject({ + filename: `${recording.id}.wav`, + content_type: "audio/wav", + }); + expect( + requests.some( + (r) => + r.path === "/attachment/status" && + (r.jsonBody as { key?: string })?.key === attachment.key && + (r.jsonBody as { status?: { upload_status?: string } })?.status + ?.upload_status === "done", + ), + ).toBe(true); + } + const diagnostic = result.stdout + .split("\n") + .find((line) => line.startsWith('{"playedDurationMs":')); + expect(diagnostic).toBeDefined(); + const { playedDurationMs, completedUploads } = JSON.parse(diagnostic!); + expect(playedDurationMs).toBeGreaterThan(0); + // A successful upload must precede the final frame, without forceFlush. + expect( + completedUploads.some( + (upload: { key: string; playedSamples: number }) => + upload.playedSamples > 0 && + upload.playedSamples / 24 < playedDurationMs && + Object.values(attachments).some((a) => a.key === upload.key), + ), + ).toBe(true); + for (const name of ["agent_turn", "agent_speech"]) { + const owner = findLatestSpan(events, name)!; + const selections = owner.row.metadata?.["audio.selections"] as { + recording_id: string; + recording_span_id: string; + channel_index: number; + start_offset_ms: number; + end_offset_ms: number; + }[]; + expect(selections.map((s) => s.recording_id)).toEqual( + descriptors.map((r) => r.id), + ); + let selectedMs = 0; + let previousEnd: number | undefined; + for (const selection of selections) { + const recording = descriptors.find( + (r) => r.id === selection.recording_id, + )!; + expect(selection.recording_span_id).toBe(root.span.id); + expect(selection.channel_index).toBe(1); + expect(selection.start_offset_ms).toBeGreaterThanOrEqual(0); + expect(selection.end_offset_ms).toBeGreaterThan( + selection.start_offset_ms, + ); + expect(selection.end_offset_ms).toBeLessThanOrEqual( + recording.duration_ms + 0.05, + ); + const start = + recording.timeline.recording_start_offset_ms + + selection.start_offset_ms; + if (previousEnd !== undefined) + expect(start).toBeCloseTo(previousEnd, 1); + previousEnd = + recording.timeline.recording_start_offset_ms + + selection.end_offset_ms; + selectedMs += selection.end_offset_ms - selection.start_offset_ms; + } + expect(selectedMs).toBeCloseTo(playedDurationMs, 1); + } + }); + }, + 120000, + ); +} + +// Automatic setup and recording opt-in, with no optional audio package installed. +for (const variant of ["livekit-v1", "livekit-v1-latest"]) { + for (const mode of [ + "off", + "wav", + "unsampled", + "redacted", + "integration-off", + "worker", + "fork", + "env", + "defaults", + ]) { + test.sequential( + `${variant} automatic setup ${mode}`, + async () => { + await withScenarioHarness(async (harness) => { + await harness.runNodeScenarioDir({ + scenarioDir, + entry: ["worker", "fork"].includes(mode) + ? "worker.mjs" + : "automatic.mjs", + timeoutMs: 60000, + nodeArgs: ["--import", "braintrust/hook.mjs"], + env: { + LIVEKIT_PACKAGE: variant, + LIVEKIT_AUTO_MODE: mode, + NODE_PATH: "", + BRAINTRUST_CAPTURE_ATTACHMENTS: "true", + BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS: + mode === "env" ? "true" : "", + BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS: + mode === "env" ? "true" : "", + }, + runContext: { + variantKey: variant, + originalScenarioDir, + cassette: false, + }, + }); + const events = harness.events(); + assertAudioTrace(events); + if (mode === "integration-off" || mode === "unsampled") { + expect(events).toHaveLength(0); + return; + } + const roots = findAllSpans(events, "livekit.agent_session"); + expect(roots).toHaveLength(1); + const root = roots[0]; + const metadata = root.row.metadata as + | Record + | undefined; + if (mode === "wav" || mode === "env") { + // Verify wire ordering, not just the final merged trace. + const requests = harness.requestsAfter(0); + const uploaded = requests.findIndex( + (r) => + r.path === "/attachment/status" && + (r.jsonBody as { status?: { upload_status?: string } })?.status + ?.upload_status === "done", + ); + const ready = requests.findIndex((r) => { + if (r.path !== "/logs3") return false; + const body = r.jsonBody as { + rows?: { + metadata?: { "audio.recordings"?: { state: string }[] }; + }[]; + }; + return body.rows?.some((row) => + row.metadata?.["audio.recordings"]?.some( + (s) => s.state === "ready", + ), + ); + }); + expect(uploaded).toBeGreaterThanOrEqual(0); + expect(ready).toBeGreaterThan(uploaded); + expect(metadata?.["audio.recordings"]).toMatchObject([ + { + state: "ready", + mime_type: mode === "wav" ? "audio/wav" : "audio/wav", + }, + ]); + } else expect(metadata?.["audio.recordings"]).toBeUndefined(); + const turn = findLatestSpan(events, "agent_turn"); + expect(turn).toBeDefined(); + if (mode === "redacted") + expect(JSON.stringify(events.map((e) => e.row))).not.toContain( + "Your order arrives Friday.", + ); + else + expect( + JSON.stringify( + findLatestSpan(events, "agent_speech")?.row.output, + ), + ).toContain("Your order arrives Friday."); + }); + }, + 90000, + ); + } +} + +for (const variant of ["livekit-v1", "livekit-v1-latest"]) { + test.sequential( + `${variant} automatic cascade conversation`, + async () => { + await withScenarioHarness(async (harness) => { + await harness.runNodeScenarioDir({ + scenarioDir, + entry: "scenario.mjs", + timeoutMs: 90000, + nodeArgs: ["--import", "braintrust/hook.mjs"], + env: { + LIVEKIT_PACKAGE: variant, + LIVEKIT_AUTOMATIC: "1", + LIVEKIT_PROVIDER: "1", + LIVEKIT_AUDIO: "1", + }, + runContext: { + variantKey: variant, + originalScenarioDir, + cassette: { + variantKey: `${variant}-order`, + }, + }, + }); + const events = harness.events(); + assertAudioTrace(events); + expect(findAllSpans(events, "livekit.agent_session")).toHaveLength(1); + const turns = findAllSpans(events, "agent_turn"); + const turnIds = new Set(turns.map((t) => t.span.id)); + for (const response of findAllSpans(events, "llm_response")) + expect( + turnIds.has( + (response.row.span_parents as string[] | undefined)?.[0], + ), + ).toBe(true); + expect( + turns.some((t) => { + const metadata = t.row.metadata as + | Record + | undefined; + const selections = metadata?.["audio.selections"]; + return Array.isArray(selections) && selections.length > 0; + }), + ).toBe(true); + expect(findAllSpans(events, "lookup_order")).toHaveLength(1); + expect(findAllSpans(events, "llm_response").length).toBeGreaterThan(0); + expect( + findLatestSpan(events, "livekit.agent_session")?.row, + ).toMatchObject({ + metadata: { + "audio.recordings": [{ state: "ready", mime_type: "audio/wav" }], + }, + }); + expect( + JSON.stringify(findLatestSpan(events, "agent_speech")?.row.output), + ).toContain("Friday"); + }); + }, + 120000, + ); +} diff --git a/e2e/scenarios/livekit-instrumentation/websocket-cassette.mjs b/e2e/scenarios/livekit-instrumentation/websocket-cassette.mjs new file mode 100644 index 000000000..d7bed105b --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/websocket-cassette.mjs @@ -0,0 +1,219 @@ +// Real protocol recordings only. Never save HTTP headers or credentials. +import { WebSocket, WebSocketServer } from "ws"; +import { readFile, writeFile, mkdir } from "node:fs/promises"; +import { setImmediate } from "node:timers/promises"; +import { dirname } from "node:path"; +import assert from "node:assert/strict"; +export async function websocketCassette( + path, + record, + { concurrentAudio = false, burst = false } = {}, +) { + const events = record ? [] : JSON.parse(await readFile(path, "utf8")); + let index = 0, + failure, + socket, + upstream; + let disconnected = false; + let connectionCount = 0; + const ids = new Map(); + const consumed = new Set(); + const isAudio = (message) => message.type === "session.input_audio.append"; + const server = new WebSocketServer({ port: 0, host: "127.0.0.1" }); + await new Promise((resolve) => server.once("listening", resolve)); + function remap(value) { + if (Array.isArray(value)) return value.map(remap); + if (value && typeof value === "object") + return Object.fromEntries( + Object.entries(value).map(([k, v]) => [k, remap(v)]), + ); + return typeof value === "string" ? (ids.get(value) ?? value) : value; + } + function match(actual, expected, key = "") { + if ( + typeof actual === "string" && + typeof expected === "string" && + ["event_id", "id", "previous_item_id", "client_event_id"].includes(key) + ) { + if (!ids.has(expected)) ids.set(expected, actual); + assert.equal(actual, ids.get(expected)); + return; + } + if (Array.isArray(expected)) { + assert.equal(actual.length, expected.length); + expected.forEach((v, i) => match(actual[i], v)); + return; + } + if (expected && typeof expected === "object") { + assert.deepEqual( + Object.keys(actual).sort(), + Object.keys(expected).sort(), + ); + for (const [k, v] of Object.entries(expected)) match(actual[k], v, k); + return; + } + assert.deepEqual(actual, expected); + } + let pumping = false; + const pump = async () => { + if (pumping) return; + pumping = true; + try { + while (index < events.length && socket.readyState === WebSocket.OPEN) { + if (events[index].direction === "send") { + if (!consumed.delete(index)) break; + index++; + } else if ( + events[index].direction === "disconnect" || + events[index].direction === "connect" + ) + break; + else { + const message = remap(events[index++].message); + socket.send(JSON.stringify(message)); + // Preserve protocol order without waiting on the instrumented code. + // Burst replay also exercises completion arriving before async setup. + if (!burst) await setImmediate(); + } + } + } catch (error) { + failure = error; + socket?.close(); + } finally { + pumping = false; + } + }; + server.on("connection", (client, request) => { + if (socket && !disconnected) { + failure ??= new Error("Unexpected realtime reconnect"); + client.close(); + return; + } + if (connectionCount > 0) { + if (record) events.push({ direction: "connect" }); + else { + assert.equal( + events[index]?.direction, + "connect", + "Expected recorded reconnect", + ); + index++; + } + } + connectionCount++; + disconnected = false; + socket = client; + if (record) { + const url = new URL(request.url, "wss://api.openai.com"); + // LiveKit adds model routing for gateways, but OpenAI transcription + // selects its model in session.update rather than the upgrade URL. + if (url.searchParams.get("intent") === "transcription") + url.searchParams.delete("model"); + const remote = (upstream = new WebSocket(url, { + headers: { Authorization: `Bearer ${process.env.OPENAI_API_KEY}` }, + })); + const pending = []; + client.on("message", (data) => { + const message = JSON.parse(data.toString()); + events.push({ direction: "send", message }); + if (remote.readyState === WebSocket.OPEN) remote.send(data.toString()); + else pending.push(data.toString()); + }); + remote.on("open", () => + pending.splice(0).forEach((data) => remote.send(data)), + ); + remote.on("message", (data) => { + const message = JSON.parse(data.toString()); + events.push({ direction: "receive", message }); + if (client.readyState === WebSocket.OPEN) client.send(data.toString()); + }); + remote.on("error", () => { + failure = new Error("Realtime upstream connection failed"); + client.close(); + }); + client.on("close", () => remote.close()); + } else { + client.on("message", (data) => { + try { + const actual = JSON.parse(data.toString()); + // A duplex microphone keeps sending while tools finish. Validate both + // ordered lanes in full without depending on their scheduler interleave. + const expected = concurrentAudio + ? events.findIndex( + (event, i) => + i >= index && + event.direction === "send" && + !consumed.has(i) && + isAudio(event.message) === isAudio(actual), + ) + : index; + assert.equal( + events[expected]?.direction, + "send", + `Unexpected outgoing message at ${index}`, + ); + match(actual, events[expected].message); + consumed.add(expected); + pump(); + } catch (error) { + console.error("WebSocket cassette mismatch at", index, error); + failure = error; + client.close(); + } + }); + pump(); + } + }); + return { + baseURL: `http://127.0.0.1:${server.address().port}/v1`, + disconnect() { + assert( + socket?.readyState === WebSocket.OPEN, + "No active connection to disconnect", + ); + if (record) events.push({ direction: "disconnect" }); + else { + assert.equal( + events[index]?.direction, + "disconnect", + "Disconnect before recorded messages completed", + ); + index++; + } + disconnected = true; + socket.terminate(); + upstream?.terminate(); + }, + get connections() { + return connectionCount; + }, + async close() { + socket?.terminate(); + upstream?.terminate(); + await new Promise((resolve) => server.close(resolve)); + if (failure) throw failure; + if (record) { + await mkdir(dirname(path), { recursive: true }); + // Provider session IDs can resemble access tokens. Preserve references + // with synthetic IDs in the cassette, without changing live traffic. + const sessionIds = new Map(); + for (const event of events) { + const id = event.message?.session?.id; + if (typeof id === "string" && !sessionIds.has(id)) + sessionIds.set(id, `session_fixture_${sessionIds.size + 1}`); + } + const serialized = JSON.stringify( + events, + (_key, value) => sessionIds.get(value) ?? value, + 2, + ); + await writeFile(path, serialized + "\n"); + } else + assert.equal( + index, + events.length, + "WebSocket cassette not fully consumed", + ); + }, + }; +} diff --git a/e2e/scenarios/livekit-instrumentation/worker.mjs b/e2e/scenarios/livekit-instrumentation/worker.mjs new file mode 100644 index 000000000..0bab711be --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/worker.mjs @@ -0,0 +1,14 @@ +import { fork } from "node:child_process"; +import { Worker } from "node:worker_threads"; +const env = { ...process.env, LIVEKIT_AUTO_MODE: "off" }; +const entry = new URL("./automatic.mjs", import.meta.url); +const worker = + process.env.LIVEKIT_AUTO_MODE === "fork" + ? fork(entry, [], { env }) + : new Worker(entry, { env }); +await new Promise((resolve, reject) => { + worker.on("error", reject); + worker.on("exit", (code) => + code ? reject(new Error(`Worker exited ${code}`)) : resolve(), + ); +}); diff --git a/js/package.json b/js/package.json index a72758597..ab8b39fa2 100644 --- a/js/package.json +++ b/js/package.json @@ -143,6 +143,11 @@ "import": "./dist/auto-instrumentations/bundler/rollup.mjs", "module": "./dist/auto-instrumentations/bundler/rollup.mjs", "require": "./dist/auto-instrumentations/bundler/rollup.cjs" + }, + "./livekit": { + "types": "./dist/livekit.d.ts", + "import": "./dist/livekit.mjs", + "require": "./dist/livekit.js" } }, "files": [ diff --git a/js/src/audio/README.md b/js/src/audio/README.md new file mode 100644 index 000000000..3c6bdec5d --- /dev/null +++ b/js/src/audio/README.md @@ -0,0 +1,43 @@ +# Recording utilities for SDK integrations + +Internal Node utilities shared by voice integrations. Audio recording buffers timestamped PCM, rotates bounded segments, produces WAV files in a worker, and uploads attachments. Voice recording adds associations between speech spans and audio files. + +```ts +import { Attachment } from "../logger"; +import { createVoiceRecording } from "./index"; + +const voice = createVoiceRecording({ + span: sessionSpan, + flush: () => logger.flush(), + createAttachment: (options) => new Attachment(options), + options: { segmentDurationSeconds: 60 }, + snapshot: () => ({ + origin: sessionStartUnixMs, + basis: "local_capture", + source: (channel_index) => ({ channel_index }), + }), + speechSelections: () => speechSpans, // { span, intervals } in call-relative milliseconds. +}); + +voice.audio.record({ + pcm, + rate: 24000, + channels: 1, + channel: 0, + at: frameOffsetMs, +}); +voice.audio.advance(confirmedThroughMs); // No earlier frames will arrive on either channel. +voice.publishSelections(); // Republish after speech timestamps change. +await voice.finish(); +``` + +`createAudioRecording()` accepts the same audio configuration without `speechSelections`. Use it when no speech-to-recording associations are needed. Integrations supply timing; these utilities do not infer speech boundaries. + +| Setting | Default | +| -------------------------------- | ---------- | +| `options.segmentDurationSeconds` | `60` | +| `options.maxDurationSeconds` | `1800` | +| `options.maxBufferBytes` | `33554432` | +| `options.flushFraction` | `0.5` | + +Segment duration is a rotation target, not the total recording limit. Recording starts only when the integration explicitly enables capture. diff --git a/js/src/audio/audio-worker.ts b/js/src/audio/audio-worker.ts new file mode 100644 index 000000000..a7e4acb4c --- /dev/null +++ b/js/src/audio/audio-worker.ts @@ -0,0 +1,46 @@ +import { parentPort } from "node:worker_threads"; +import { encodeCall, pcmChunks } from "./pcm"; +import type { Packet } from "./recorder"; +parentPort?.on( + "message", + async ({ + packets, + durationMs, + encoderModule, + }: { + packets: Packet[]; + durationMs: number; + encoderModule?: string; + }) => { + try { + const codec = encoderModule ? await import(encoderModule) : undefined; + if (codec?.encodeChunks) { + // The optional codec preserves resampling history between PCM blocks. + const encoded = await codec.encodeChunks( + pcmChunks(packets, durationMs), + 24000, + 2, + ); + parentPort!.postMessage( + { ...encoded, durationMs: Math.round(durationMs * 24) / 24 }, + [encoded.bytes.buffer], + ); + } else { + // Preserve compatibility with codecs exposing the original encode API. + const result = encodeCall(packets, durationMs); + const encoded = codec + ? await codec.encode( + new Int16Array(result.bytes.buffer, 44), + 24000, + 2, + ) + : { bytes: result.bytes, mimeType: "audio/wav", sampleRate: 24000 }; + parentPort!.postMessage({ ...encoded, durationMs: result.durationMs }, [ + encoded.bytes.buffer, + ]); + } + } catch { + parentPort!.postMessage({ reason: "encoding_failed" }); + } + }, +); diff --git a/js/src/audio/buffers.ts b/js/src/audio/buffers.ts new file mode 100644 index 000000000..d01e139a3 --- /dev/null +++ b/js/src/audio/buffers.ts @@ -0,0 +1,60 @@ +/** Owns PCM reservations across staging, recorder admission and worker transfer. */ +export class PcmBuffers { + private leases = new Map< + ArrayBufferLike, + { bytes: number; admitted: boolean } + >(); + private retained = 0; + constructor(private maximum: number) {} + get bytes() { + return this.retained; + } + copy(pcm: Int16Array): Int16Array { + const bytes = pcm.byteLength; + if (this.retained + bytes > this.maximum) { + throw new Error("capture_byte_limit"); + } + const owned = new Int16Array(pcm); + this.leases.set(owned.buffer, { bytes, admitted: false }); + this.retained += bytes; + return owned; + } + + admit(pcm: Int16Array): boolean { + const lease = this.leases.get(pcm.buffer); + if (!lease || lease.admitted) { + return false; + } + lease.admitted = true; + return true; + } + discard(pcm: Int16Array) { + if (!this.leases.get(pcm.buffer)?.admitted) { + this.release(pcm); + } + } + release(pcm: Int16Array) { + const lease = this.leases.get(pcm.buffer); + if (!lease) { + return; + } + this.leases.delete(pcm.buffer); + this.retained -= lease.bytes; + } + split(pcm: Int16Array, count: number): [Int16Array, Int16Array] { + const lease = this.leases.get(pcm.buffer); + if (!lease || pcm.byteLength !== lease.bytes) { + throw new Error("Invalid PCM ownership"); + } + const head = pcm.slice(0, count), + tail = pcm.slice(count); + this.leases.delete(pcm.buffer); + this.leases.set(head.buffer, { bytes: head.byteLength, admitted: true }); + this.leases.set(tail.buffer, { bytes: tail.byteLength, admitted: true }); + return [head, tail]; + } + close() { + this.leases.clear(); + this.retained = 0; + } +} diff --git a/js/src/audio/exporter.test.ts b/js/src/audio/exporter.test.ts new file mode 100644 index 000000000..e3ae4bd36 --- /dev/null +++ b/js/src/audio/exporter.test.ts @@ -0,0 +1,282 @@ +import { afterEach, expect, test, vi } from "vitest"; +import { AudioSegment } from "./segment"; +import { SegmentExporter } from "./exporter"; +import { VoicePublisher } from "./voice-publisher"; +import { TracePublisher } from "./publisher"; +class TestAttachment { + reference: { key: string; filename: string; content_type: string }; + constructor(options: { filename: string; contentType: string }) { + this.reference = { + key: "attachment", + filename: options.filename, + content_type: options.contentType, + }; + } + async upload(): Promise<{ + upload_status: "done" | "error"; + error_message?: string; + }> { + return { upload_status: "done" }; + } +} +afterEach(() => vi.restoreAllMocks()); + +function fixture() { + const span = { spanId: "root", log: vi.fn() }; + const turn = { log: vi.fn() }, + speaking = { log: vi.fn() }; + const segments: AudioSegment[] = []; + const flush = vi.fn(async () => {}); + const intervals = [ + { + recording_span_id: "root", + recording_id: "call", + channel_index: 1, + start_offset_ms: 100, + end_offset_ms: 140, + }, + ]; + const voice = new VoicePublisher( + () => segments, + () => [ + { span: turn, intervals, alias: true }, + { span: speaking, intervals }, + ], + ); + const publisher = new TracePublisher( + span, + flush, + () => ({ + segments, + origin: 1234, + basis: "test", + source: (channel) => ({ channel_index: channel }), + closed: false, + }), + () => voice.publish(), + ); + const executions = new Map(); + const exporter = { + publishRecordings: () => publisher.publishRecordings(), + publishSelections: () => voice.publish(), + publish: async (segment: AudioSegment) => { + await executions.get(segment)!.export(segment, () => {}); + await publisher.publish(segment); + }, + }; + function encode(error?: string, bytes = 16) { + const start = 100 + segments.length * 20; + const segment = new AudioSegment( + `call-${segments.length}`, + start, + start + 20, + [ + { + pcm: new Int16Array(480), + at: 0, + rate: 24000, + channels: 1, + channel: 1, + }, + ], + ); + segments.push(segment); + publisher.publishRecordings(); + executions.set( + segment, + new SegmentExporter( + async () => { + if (error) { + throw new Error(error); + } + return { + bytes: new Uint8Array(bytes), + durationMs: 20, + sampleRate: 24000, + mimeType: "audio/wav", + }; + }, + (options) => new TestAttachment(options), + ), + ); + return segment; + } + const manifests = () => + span.log.mock.calls.flatMap( + ([row]) => row.metadata?.["audio.recordings"] ?? [], + ); + return { span, turn, speaking, exporter, encode, manifests }; +} + +test.each([16, 17 * 1024 * 1024])( + "%i encoded bytes remain pending until ordinary attachment upload succeeds", + async (bytes) => { + let complete!: (status: { upload_status: "done" }) => void; + const upload = vi + .spyOn(TestAttachment.prototype, "upload") + .mockImplementation( + () => + new Promise((resolve) => { + complete = resolve; + }), + ); + const f = fixture(), + segment = f.encode(undefined, bytes); + const publication = f.exporter.publish(segment); + try { + f.exporter.publishRecordings(); + f.exporter.publishSelections(); + expect(f.manifests().every((m) => m.state === "pending")).toBe(true); + expect(f.span.log.mock.calls.some(([row]) => row.input?.audio)).toBe( + false, + ); + for (const owner of [f.turn, f.speaking]) { + expect( + owner.log.mock.calls.flatMap( + ([row]) => row.metadata?.["audio.selections"] ?? [], + ), + ).toEqual([]); + } + await vi.waitFor(() => expect(upload).toHaveBeenCalledTimes(1)); + complete({ upload_status: "done" }); + await publication; + expect(f.manifests().at(-1)).toMatchObject({ + state: "ready", + attachment: { span_id: "root", ref: "/input/audio/call-0" }, + }); + expect(f.manifests()[0].state).toBe("pending"); + for (const owner of [f.turn, f.speaking]) { + expect( + owner.log.mock.calls.at(-1)![0].metadata["audio.selections"], + ).toMatchObject([ + { recording_id: "call-0", start_offset_ms: 0, end_offset_ms: 20 }, + ]); + } + const reference = f.span.log.mock.calls.find( + ([row]) => row.input?.audio, + )![0].input.audio[segment.id]; + expect(reference).toMatchObject({ + key: expect.any(String), + filename: "call-0.wav", + content_type: "audio/wav", + }); + expect(reference).not.toBeInstanceOf(TestAttachment); + const rows = f.span.log.mock.calls.length; + f.exporter.publishRecordings(); + f.exporter.publishSelections(); + expect(f.span.log.mock.calls).toHaveLength(rows); + } finally { + complete?.({ upload_status: "done" }); + await publication.catch(() => {}); + } + }, +); + +test.each(["status", "rejection"])( + "upload %s failure never publishes ready and preserves earlier audio", + async (mode) => { + const upload = vi + .spyOn(TestAttachment.prototype, "upload") + .mockResolvedValueOnce({ upload_status: "done" }); + const f = fixture(); + await f.exporter.publish(f.encode()); + if (mode === "status") { + upload.mockResolvedValue({ + upload_status: "error", + error_message: "upload unavailable", + }); + } else { + upload.mockRejectedValue(new Error("upload unavailable")); + } + await f.exporter.publish(f.encode()); + expect( + f + .manifests() + .filter((m) => m.id === "call-1") + .map((m) => m.state), + ).not.toContain("ready"); + expect(f.manifests().at(-1)).not.toHaveProperty("attachment"); + expect( + f.span.log.mock.calls.flatMap(([row]) => + Object.keys(row.input?.audio ?? {}), + ), + ).toEqual(["call-0"]); + expect(f.manifests().at(-1)).toMatchObject({ + id: "call-1", + state: "omitted", + reason: "recording_export_failed", + }); + expect( + f + .manifests() + .filter((m) => m.id === "call-0") + .at(-1).state, + ).toBe("ready"); + for (const owner of [f.turn, f.speaking]) { + expect( + owner.log.mock.calls.at(-1)![0].metadata["audio.selections"], + ).toMatchObject([{ recording_id: "call-0" }]); + } + }, +); + +test("encoding failure publishes an omission without uploading or selecting audio", async () => { + const upload = vi.spyOn(TestAttachment.prototype, "upload"); + const f = fixture(), + segment = f.encode("encoding_failed"); + await f.exporter.publish(segment); + expect(upload).not.toHaveBeenCalled(); + expect(f.manifests().map((m) => m.state)).toEqual(["pending", "omitted"]); + expect(f.manifests().at(-1)).toMatchObject({ reason: "encoding_failed" }); + expect(f.span.log.mock.calls.some(([row]) => row.input?.audio)).toBe(false); + expect(f.turn.log.mock.calls.at(-1)![0].metadata["audio.selections"]).toEqual( + [], + ); +}); + +test.each([false, true])( + "encoding failure=%s releases PCM only after encoding settles", + async (failed) => { + let finish!: () => void; + const encoding = new Promise((resolve) => { + finish = resolve; + }); + const pcm = new Int16Array(480); + const segment = new AudioSegment("call-0", 0, 20, [ + { pcm, at: 0, rate: 24000, channels: 1, channel: 0 }, + ]); + const release = vi.fn(); + const upload = vi.fn(async () => { + expect(release).toHaveBeenCalledExactlyOnceWith(pcm); + expect(segment.state).toBe("pending"); + return { upload_status: "done" }; + }); + const exporter = new SegmentExporter( + async () => { + await encoding; + if (failed) { + throw new Error("encoding_failed"); + } + return { + bytes: new Uint8Array(16), + durationMs: 20, + sampleRate: 24000, + mimeType: "audio/wav", + }; + }, + () => ({ reference: "uploaded", upload }), + ); + const job = exporter.export(segment, release); + try { + expect(release).not.toHaveBeenCalled(); + expect(upload).not.toHaveBeenCalled(); + expect(segment.state).toBe("pending"); + } finally { + finish(); + await job; + } + expect(release).toHaveBeenCalledExactlyOnceWith(pcm); + expect(upload).toHaveBeenCalledTimes(failed ? 0 : 1); + expect(segment.state).toBe(failed ? "omitted" : "ready"); + }, +); diff --git a/js/src/audio/exporter.ts b/js/src/audio/exporter.ts new file mode 100644 index 000000000..276d9e097 --- /dev/null +++ b/js/src/audio/exporter.ts @@ -0,0 +1,61 @@ +import { AudioSegment, type Packet, type EncodedAudio } from "./segment"; + +export type Encoder = ( + packets: Packet[], + durationMs: number, +) => Promise; +export type CreateAttachment = (options: { + data: Uint8Array; + filename: string; + contentType: string; +}) => { + upload(): Promise<{ upload_status: string; error_message?: string }>; + reference: unknown; +}; + +/** Executes a sealed segment; recording policy and trace publication stay with callers. */ +export class SegmentExporter { + constructor( + private encode: Encoder, + private createAttachment: CreateAttachment, + ) {} + + async export( + segment: AudioSegment, + release: (pcm: Int16Array) => void, + ): Promise { + const packets = segment.dispatch({ type: "encode" }); + let data: EncodedAudio; + try { + data = await this.encode(packets, segment.end - segment.start); + segment.dispatch({ type: "encoded", format: data }); + } catch (error) { + segment.dispatch({ + type: "omitted", + reason: error instanceof Error ? error.message : "encoding_failed", + }); + return; + } finally { + // Release source memory only after the worker has finished with it. + for (const packet of packets) { + release(packet.pcm); + } + packets.length = 0; + } + + try { + const attachment = this.createAttachment({ + data: data.bytes, + filename: `${segment.id}.${data.mimeType === "audio/ogg" ? "ogg" : "wav"}`, + contentType: data.mimeType, + }); + const result = await attachment.upload(); + if (result.upload_status !== "done") { + throw new Error("recording_export_failed"); + } + segment.dispatch({ type: "ready", reference: attachment.reference }); + } catch { + segment.dispatch({ type: "omitted", reason: "recording_export_failed" }); + } + } +} diff --git a/js/src/audio/fixtures/counting-codec.mjs b/js/src/audio/fixtures/counting-codec.mjs new file mode 100644 index 000000000..61f93cf8b --- /dev/null +++ b/js/src/audio/fixtures/counting-codec.mjs @@ -0,0 +1,8 @@ +let calls = 0; +export function encode() { + return { + bytes: Uint8Array.of(++calls), + mimeType: "audio/wav", + sampleRate: 24000, + }; +} diff --git a/js/src/audio/index.ts b/js/src/audio/index.ts new file mode 100644 index 000000000..4b6ab5908 --- /dev/null +++ b/js/src/audio/index.ts @@ -0,0 +1,6 @@ +export { createAudioRecording, type AudioRecordingConfig } from "./recording"; +export type { RecordingOptions, Packet } from "./recorder"; +export type { Selection } from "./selections"; +export * as timeline from "./timeline"; + +export { createVoiceRecording } from "./voice"; diff --git a/js/src/audio/pcm.test.ts b/js/src/audio/pcm.test.ts new file mode 100644 index 000000000..31cec3f0e --- /dev/null +++ b/js/src/audio/pcm.test.ts @@ -0,0 +1,107 @@ +import { expect, test } from "vitest"; +import { encodeCall, pcmChunks } from "./pcm"; + +test("bounded rendering preserves resampling phase across chunks and pads the final timeline", () => { + const source = Int16Array.from( + { length: 12000 }, + (_, i) => (i % 97) * 100 - 4000, + ); + for (const rate of [24000, 48000]) { + const frames = Array.from( + pcmChunks( + [{ pcm: source, rate: 44100, channels: 1, channel: 1, at: 7.3 }], + 400, + rate, + ), + (block) => block.slice(), + ); + expect(Math.max(...frames.map((f) => f.length))).toBeLessThanOrEqual( + (rate / 10) * 2, + ); + const actual = Int16Array.from(frames.flatMap((f) => [...f])); + expect(actual.length).toBe(rate * 0.4 * 2); + const start = Math.round((7.3 * rate) / 1000), + length = Math.round((source.length / 44100) * rate); + for (let i = 0; i < actual.length / 2; i++) { + const position = ((i - start) * 44100) / rate, + lo = Math.floor(position), + alpha = position - lo; + const expected = + i < start || i >= start + length + ? 0 + : Math.round( + source[Math.min(lo, source.length - 1)] * (1 - alpha) + + source[Math.min(lo + 1, source.length - 1)] * alpha, + ); + expect(actual[i * 2]).toBe(0); + expect(actual[i * 2 + 1]).toBe(expected); + } + } +}); + +test("rendering preserves packet overwrite order, channel separation, silence and WAV samples", () => { + const packets = [ + { + pcm: new Int16Array(4800).fill(123), + rate: 24000, + channels: 1, + channel: 0, + at: 50, + }, + { + pcm: new Int16Array(4800).fill(456), + rate: 24000, + channels: 1, + channel: 1, + at: 0, + }, + { + pcm: new Int16Array(4800).fill(789), + rate: 24000, + channels: 1, + channel: 0, + at: 0, + }, + ]; + const pcm = Int16Array.from( + Array.from(pcmChunks(packets, 300), (block) => [...block]).flat(), + ); + const wav = encodeCall(packets, 300), + view = new DataView(wav.bytes.buffer); + for (let i = 0; i < pcm.length / 2; i++) { + expect(pcm[i * 2]).toBe(i < 4800 ? 789 : i < 6000 ? 123 : 0); + expect(pcm[i * 2 + 1]).toBe(i < 4800 ? 456 : 0); + expect(view.getInt16(44 + i * 4, true)).toBe(pcm[i * 2]); + expect(view.getInt16(46 + i * 4, true)).toBe(pcm[i * 2 + 1]); + } +}); + +// Exercise both upsampling and downsampling through the rendered WAV output. +test("mixed source rates retain channel values and duration", () => { + const result = encodeCall([ + { + pcm: new Int16Array(160).fill(1000), + rate: 8000, + channels: 1, + channel: 0, + at: 0, + }, + { + pcm: new Int16Array(960).fill(-1000), + rate: 48000, + channels: 1, + channel: 1, + at: 0, + }, + ]); + expect(result.durationMs).toBe(20); + const view = new DataView( + result.bytes.buffer, + result.bytes.byteOffset, + result.bytes.byteLength, + ); + for (let offset = 44; offset < result.bytes.byteLength; offset += 4) { + expect(view.getInt16(offset, true)).toBe(1000); + expect(view.getInt16(offset + 2, true)).toBe(-1000); + } +}); diff --git a/js/src/audio/pcm.ts b/js/src/audio/pcm.ts new file mode 100644 index 000000000..b01f49cbc --- /dev/null +++ b/js/src/audio/pcm.ts @@ -0,0 +1,141 @@ +import { msToSamples, samplesToMs, CALL_SAMPLE_RATE } from "./timeline"; +import type { Packet } from "./recorder"; +/** Bounded 24kHz stereo WAV assembly, entirely outside the voice event loop. */ +export function encodeCall( + packets: Packet[], + durationMs?: number, +): { + bytes: Uint8Array; + durationMs: number; +} { + const rate = CALL_SAMPLE_RATE; + const samples = + durationMs === undefined + ? Math.ceil( + packets.reduce( + (end, p) => + Math.max( + end, + msToSamples(p.at, rate) + + (p.pcm.length / p.channels / p.rate) * rate, + ), + 0, + ), + ) + : Math.round(msToSamples(durationMs, rate)); + if (!Number.isSafeInteger(samples) || samples <= 0 || samples > 1800 * rate) { + throw new Error("invalid_duration"); + } + const bytes = new Uint8Array(44 + samples * 4); + const view = new DataView(bytes.buffer); + const text = (offset: number, value: string) => { + for (let i = 0; i < value.length; i++) { + bytes[offset + i] = value.charCodeAt(i); + } + }; + text(0, "RIFF"); + view.setUint32(4, bytes.length - 8, true); + text(8, "WAVEfmt "); + view.setUint32(16, 16, true); + view.setUint16(20, 1, true); + view.setUint16(22, 2, true); + view.setUint32(24, rate, true); + view.setUint32(28, rate * 4, true); + view.setUint16(32, 4, true); + view.setUint16(34, 16, true); + text(36, "data"); + view.setUint32(40, samples * 4, true); + let offset = 44; + for (const chunk of pcmChunks(packets, samplesToMs(samples, rate), rate)) { + for (const value of chunk) { + view.setInt16(offset, value, true); + offset += 2; + } + } + return { bytes, durationMs: samplesToMs(samples, rate) }; +} + +/** Render bounded stereo blocks. Resampling positions stay relative to each + * source packet, so a block boundary never resets interpolation phase. + * Blocks borrow a reusable buffer, valid until the iterator advances. */ +export function* pcmChunks( + packets: Packet[], + durationMs: number, + rate = CALL_SAMPLE_RATE, +): Generator { + const samples = Math.round(msToSamples(durationMs, rate)); + if ( + ![24000, 48000].includes(rate) || + !Number.isSafeInteger(samples) || + samples <= 0 || + samples > 1800 * rate + ) { + throw new Error("invalid_duration"); + } + const pending = packets + .map((packet, index) => { + if ( + ![0, 1].includes(packet.channel) || + ![1, 2].includes(packet.channels) || + !Number.isFinite(packet.rate) || + packet.rate < 8000 || + packet.rate > 96000 || + !Number.isFinite(packet.at) || + packet.at < 0 + ) { + throw new Error("invalid_packet"); + } + const start = Math.round(msToSamples(packet.at, rate)); + return { + packet, + index, + start, + end: + start + + Math.round( + (packet.pcm.length / packet.channels / packet.rate) * rate, + ), + }; + }) + .sort((a, b) => a.start - b.start || a.index - b.index); + let cursor = 0; + let active: typeof pending = []; + const buffer = new Int16Array((rate / 10) * 2); + for (let start = 0; start < samples; start += rate / 10) { + const end = Math.min(samples, start + rate / 10); + active = active.filter((p) => p.end > start); + while (cursor < pending.length && pending[cursor].start < end) { + active.push(pending[cursor++]); + } + // Overlapping packets retain the same last-writer behavior as WAV assembly. + active.sort((a, b) => a.index - b.index); + const chunk = buffer.subarray(0, (end - start) * 2); + chunk.fill(0); + for (const { packet: p, start: packetStart, end: packetEnd } of active) { + for ( + let i = Math.max(start, packetStart); + i < Math.min(end, packetEnd); + i++ + ) { + const position = ((i - packetStart) * p.rate) / rate, + lo = Math.floor(position), + alpha = position - lo; + let value = 0; + for (let channel = 0; channel < p.channels; channel++) { + const a = + p.pcm[Math.min(lo * p.channels + channel, p.pcm.length - 1)] ?? 0; + const b = + p.pcm[ + Math.min((lo + 1) * p.channels + channel, p.pcm.length - 1) + ] ?? a; + value += a + (b - a) * alpha; + } + chunk[(i - start) * 2 + p.channel] = Math.max( + -32768, + Math.min(32767, Math.round(value / p.channels)), + ); + } + } + yield chunk; + } +} diff --git a/js/src/audio/publisher.ts b/js/src/audio/publisher.ts new file mode 100644 index 000000000..9dc49b6ae --- /dev/null +++ b/js/src/audio/publisher.ts @@ -0,0 +1,133 @@ +export type RecordingSpan = { + spanId: string; + log: (event: { input?: unknown; metadata?: Record }) => void; +}; +import type { Segment } from "./segment"; +import type { AudioSegment } from "./segment"; +export type RecordingContext = { + origin: number; + basis: string; + source: (channel: number) => Record; + closed: boolean; + metadata?: Record; +}; +type PublishedSegment = Pick< + AudioSegment, + "id" | "state" | "attachmentReference" +>; +type Snapshot = RecordingContext & { + segments: readonly Segment[]; + reason?: string; +}; +/** Publishes recording snapshots and uploaded attachment references. No framework types. */ +export class TracePublisher { + private publishedRecordings?: string; + constructor( + private span: RecordingSpan, + private flush: () => Promise, + private snapshot: () => Snapshot, + private onPublish: () => void = () => {}, + ) {} + async publish(segment?: PublishedSegment) { + // Retry telemetry once, independently of the completed export. + try { + await this.publishOnce(segment); + } catch { + await this.publishOnce(segment).catch(() => {}); + } + } + private async publishOnce(segment?: PublishedSegment) { + try { + // Retain only the reference so a logging failure can retry without uploading again. + if ( + segment?.state === "ready" && + segment.attachmentReference !== undefined + ) { + this.span.log({ + input: { audio: { [segment.id]: segment.attachmentReference } }, + }); + } + this.publishRecordings(); + this.onPublish(); + await this.flush(); + } catch (error) { + // A failed flush may not have delivered any queued updates. Retry snapshots + // as well as the uploaded reference, without re-encoding or re-uploading. + this.publishedRecordings = undefined; + throw error; + } + } + publishRecordings() { + const snapshot = this.snapshot(); + const descriptors: Record[] = snapshot.segments.map( + (s) => ({ + id: s.id, + recording_group_id: "call", + state: s.state, + ...(s.reason ? { reason: s.reason } : {}), + ...(s.state === "ready" + ? { + attachment: { + span_id: this.span.spanId, + ref: `/input/audio/${s.id}`, + }, + mime_type: s.mimeType, + duration_ms: s.durationMs, + channel_count: 2, + sample_rate_hz: s.sampleRate, + } + : {}), + sources: s.channels.map(snapshot.source), + timeline: { + origin_unix_ms: snapshot.origin, + recording_start_offset_ms: s.start, + basis: snapshot.basis, + }, + ...(s.state === "omitted" + ? { + gaps: [ + { + start_offset_ms: s.start, + end_offset_ms: s.end, + reason: s.reason, + }, + ], + } + : {}), + }), + ); + if (snapshot.reason) { + descriptors.push({ + id: "call", + recording_group_id: "call", + state: "omitted", + reason: snapshot.reason, + truncated: true, + }); + } + if (!descriptors.length) { + descriptors.push({ + id: "call", + recording_group_id: "call", + state: snapshot.closed ? "omitted" : "pending", + ...(snapshot.closed ? { reason: "no_audio_observed" } : {}), + }); + } + // Compare the serialized wire value: callbacks can return freshly allocated or + // mutated metadata. Identity/version checks would miss those changes. + const signature = JSON.stringify({ + recordings: descriptors, + metadata: snapshot.metadata, + }); + if (this.publishedRecordings === signature) { + return; + } + this.span.log({ + metadata: { + "audio.recordings": descriptors, + ...snapshot.metadata, + }, + }); + this.publishedRecordings = signature; + } +} diff --git a/js/src/audio/recorder.test.ts b/js/src/audio/recorder.test.ts new file mode 100644 index 000000000..a462871a5 --- /dev/null +++ b/js/src/audio/recorder.test.ts @@ -0,0 +1,309 @@ +import type { AudioSegment } from "./segment"; +import { expect, test } from "vitest"; +import { Recorder, type RecordingOptions } from "./recorder"; +import { SegmentExporter, type Encoder } from "./exporter"; +import type { EncodedAudio } from "./segment"; +import { encodeCall } from "./pcm"; +const encode = async ( + packets: Parameters[0], + durationMs: number, +) => ({ + ...encodeCall(packets, durationMs), + mimeType: "audio/wav", + sampleRate: 24000, +}); +// Exercise the recorder with real segment execution and in-memory remote storage. +function recording( + options: RecordingOptions, + encode: Encoder, + publish: (s: AudioSegment) => Promise, +) { + let encoded: EncodedAudio; + const exporter = new SegmentExporter( + async (...args) => { + encoded = await encode(...args); + return encoded; + }, + () => ({ + reference: encoded, + upload: async () => ({ upload_status: "done" }), + }), + ); + return new Recorder(options, exporter, publish); +} +function accept(segment: AudioSegment) { + return segment.attachmentReference as EncodedAudio | undefined; +} +function samples(value: number, seconds = 1) { + return new Int16Array(24000 * seconds).fill(value); +} +test("exports progressively with bounded source memory across a ten minute timeline", async () => { + const files: { start: number; bytes: Uint8Array }[] = []; + const r = recording({ segmentDurationSeconds: 30 }, encode, async (s) => { + const data = accept(s); + if (data) { + files.push({ start: s.start, bytes: data.bytes }); + } + }); + for (let i = 0; i < 600; i++) { + r.record({ + pcm: samples(1000), + at: i * 1000, + rate: 24000, + channels: 1, + channel: 0, + }); + r.record({ + pcm: samples(-2000), + at: i * 1000, + rate: 24000, + channels: 1, + channel: 1, + }); + r.advance((i + 1) * 1000); + await r.drain(); + expect(r.retainedBytes).toBeLessThan(4 * 1024 * 1024); + } + expect(files.length).toBe(20); + await r.finish(); + expect(r.retainedBytes).toBe(0); + for (const [i, f] of files.entries()) { + expect(f.start).toBe(i * 30000); + const view = new DataView(f.bytes.buffer); + expect(view.getInt16(44, true)).toBe(1000); + expect(view.getInt16(f.bytes.length - 2, true)).toBe(-2000); + } +}); +test("splits a packet crossing the cut without losing its tail", async () => { + const files: Uint8Array[] = []; + const r = recording({ segmentDurationSeconds: 1 }, encode, async (s) => { + const data = accept(s); + if (data) { + files.push(data.bytes); + } + }); + r.record({ + pcm: samples(321, 3), + at: 0, + rate: 24000, + channels: 1, + channel: 0, + }); + r.advance(1000); + await r.drain(); + await r.finish(); + expect(files.map((f) => (f.length - 44) / 4)).toEqual([24000, 24000, 24000]); + expect(r.retainedBytes).toBe(0); +}); +test("rotated files reconstruct both source channels sample-for-sample including a partial final file", async () => { + const files: Uint8Array[] = []; + const recorder = recording( + { segmentDurationSeconds: 1 }, + encode, + async (s) => { + const data = accept(s); + if (data) { + files.push(data.bytes); + } + }, + ); + // Distinct nonconstant signals expose reordered, duplicated, or missing audio. + const length = 3 * 24000 + 1777; + const input = Int16Array.from( + { length }, + (_, i) => ((i * 17) % 30001) - 15000, + ); + const output = Int16Array.from( + { length }, + (_, i) => ((i * 31) % 28001) - 14000, + ); + // Packets deliberately cross the one-second file boundary. + for (let at = 0; at < length; at += 719) { + for (const [channel, source] of [input, output].entries()) { + recorder.record({ + pcm: source.slice(at, at + 719), + at: at / 24, + rate: 24000, + channels: 1, + channel: channel as 0 | 1, + }); + } + recorder.advance(Math.min(at + 719, length) / 24); + await recorder.drain(); + } + await recorder.finish(); + expect(files.map((file) => (file.length - 44) / 4)).toEqual([ + 24000, 24000, 24000, 1777, + ]); + const expected = Buffer.alloc(length * 4); + for (let i = 0; i < length; i++) { + expected.writeInt16LE(input[i], i * 4); + expected.writeInt16LE(output[i], i * 4 + 2); + } + expect( + Buffer.concat(files.map((file) => file.subarray(44))).equals(expected), + ).toBe(true); +}); + +test("hard duration limit preserves the prefix and reports truncation", async () => { + const r = recording({ maxDurationSeconds: 2 }, encode, async (s) => { + accept(s); + }); + for (let i = 0; i < 3; i++) { + r.record({ + pcm: samples(1), + at: i * 1000, + rate: 24000, + channels: 1, + channel: 0, + }); + } + await r.finish(); + expect(r.reason).toBe("duration_limit"); + expect(r.segments[0]).toMatchObject({ state: "ready", end: 2000 }); + expect(r.retainedBytes).toBe(0); +}); +test("slow publication bounds retained audio without erasing a completed segment", async () => { + let unblock!: () => void; + const blocked = new Promise((r) => { + unblock = r; + }); + const r = recording( + { segmentDurationSeconds: 1, maxBufferBytes: 100000 }, + encode, + async (s) => { + await blocked; + accept(s); + }, + ); + r.record({ pcm: samples(1), at: 0, rate: 24000, channels: 1, channel: 0 }); + r.advance(1000); + for (let i = 1; i < 8; i++) { + r.record({ + pcm: samples(1), + at: i * 1000, + rate: 24000, + channels: 1, + channel: 0, + }); + } + expect(r.retainedBytes).toBeLessThanOrEqual(100000); + expect(r.reason).toBe("capture_byte_limit"); + unblock(); + await r.finish(); + expect(r.segments.some((s) => s.state === "ready")).toBe(true); + expect(r.retainedBytes).toBe(0); +}); + +test.each(["encoding", "publication"])( + "%s failure retains earlier ready audio and releases source leases", + async (failure) => { + let count = 0, + encodings = 0; + const r = recording( + { segmentDurationSeconds: 1 }, + async (...args) => { + if (++encodings === 2 && failure === "encoding") { + throw new Error("encode failed"); + } + return encode(...args); + }, + async (s) => { + const data = accept(s); + if (data && ++count === 2 && failure === "publication") { + throw Error("export failed"); + } + }, + ); + for (let i = 0; i < 2; i++) { + r.record({ + pcm: samples(1), + at: i * 1000, + rate: 24000, + channels: 1, + channel: 0, + }); + r.advance((i + 1) * 1000); + await r.drain(); + } + await r.finish(); + expect(r.segments.map((s) => s.state)).toEqual([ + "ready", + failure === "encoding" ? "omitted" : "ready", + ]); + expect(r.retainedBytes).toBe(0); + }, +); + +test("a watermark behind the current origin cannot move a segment backwards", async () => { + const r = recording({ segmentDurationSeconds: 0.1 }, encode, async (s) => { + accept(s); + }); + r.record({ pcm: samples(1), at: 200, rate: 24000, channels: 1, channel: 0 }); + r.advance(500); + await r.drain(); + expect(r.segments.map((s) => [s.start, s.end])).toEqual([ + [200, 300], + [300, 400], + [400, 500], + ]); + r.advance(100); + await r.finish(); + expect(r.segments.map((s) => [s.start, s.end])).toEqual( + Array.from({ length: 10 }, (_, i) => [200 + i * 100, 300 + i * 100]), + ); +}); +test("soft byte pressure rotates before the duration threshold", async () => { + const r = recording( + { segmentDurationSeconds: 60, maxBufferBytes: 200000, flushFraction: 0.5 }, + encode, + async (s) => { + accept(s); + }, + ); + for (let i = 0; i < 3; i++) { + r.record({ + pcm: samples(1), + at: i * 1000, + rate: 24000, + channels: 1, + channel: 0, + }); + } + r.advance(2000); + await r.drain(); + expect(r.segments[0]).toMatchObject({ state: "ready", end: 2000 }); + await r.finish(); + expect(r.retainedBytes).toBe(0); +}); + +test.each([1, 60])( + "a delayed watermark drains %i-second clips before close without requiring more input", + async (seconds) => { + const durations: number[] = []; + const r = recording( + { segmentDurationSeconds: seconds }, + encode, + async (s) => { + const data = accept(s); + if (data) { + durations.push(data.durationMs); + } + }, + ); + for (let i = 0; i < 5 * seconds; i++) { + r.record({ + pcm: samples(123), + at: i * 1000, + rate: 24000, + channels: 1, + channel: 0, + }); + } + r.advance(5000 * seconds); + await r.drain(); + expect(durations).toEqual(Array(5).fill(1000 * seconds)); + await r.finish(); + expect(durations).toHaveLength(5); + }, +); diff --git a/js/src/audio/recorder.ts b/js/src/audio/recorder.ts new file mode 100644 index 000000000..93d8aabd7 --- /dev/null +++ b/js/src/audio/recorder.ts @@ -0,0 +1,288 @@ +import { msToSamples, samplesToMs, pcmBytesToMs } from "./timeline"; +import { AudioSegment, type Packet } from "./segment"; +export type { Packet } from "./segment"; +import { PcmBuffers } from "./buffers"; +import type { SegmentExporter } from "./exporter"; +export type RecordingOptions = { + segmentDurationSeconds?: number; + maxDurationSeconds?: number; + maxBufferBytes?: number; + flushFraction?: number; +}; +/** Framework-independent recorder. The adapter supplies a safe, monotonic cut watermark. */ +export class Recorder { + readonly options: Readonly>; + private packets: Packet[] = []; + readonly segments: AudioSegment[] = []; + readonly formats = new Map< + number, + Map + >(); + reason?: string; + private buffers: PcmBuffers; + get retainedBytes() { + return this.buffers.bytes; + } + private job?: Promise; + private segmentStartMs = 0; + private recordedEndMs = 0; + private earliestPacketMs = Infinity; + private closed = false; + private finishing?: Promise; + private confirmedThroughMs = 0; + constructor( + options: RecordingOptions, + private exporter: SegmentExporter, + private publish: (segment: AudioSegment) => Promise, + private pending: (segment: AudioSegment) => void = () => {}, + ) { + this.options = Object.freeze({ + segmentDurationSeconds: options.segmentDurationSeconds ?? 60, + maxDurationSeconds: options.maxDurationSeconds ?? 1800, + maxBufferBytes: options.maxBufferBytes ?? 32 * 1024 * 1024, + flushFraction: options.flushFraction ?? 0.5, + }); + validateOptions(this.options); + this.buffers = new PcmBuffers(this.options.maxBufferBytes); + } + + stop(reason: string) { + this.reason ??= reason; + } + copy(pcm: Int16Array): Int16Array | undefined { + if (this.closed || this.reason) { + return; + } + try { + return this.buffers.copy(pcm); + } catch (error) { + this.stop(error instanceof Error ? error.message : "capture_failed"); + return; + } + } + /** Discard staged audio; admitted audio belongs to the recorder/worker. */ + release(pcm: Int16Array) { + this.buffers.discard(pcm); + } + append(packet: Packet): boolean { + const duration = pcmBytesToMs( + packet.pcm.byteLength, + packet.rate, + packet.channels, + ); + const reason = this.validatePacket(packet, duration); + if (reason) { + this.stop(reason); + } + if (this.closed || this.reason) { + this.release(packet.pcm); + return false; + } + if (!this.buffers.admit(packet.pcm)) { + this.stop("invalid_pcm_ownership"); + return false; + } + const formats = this.formats.get(packet.channel) ?? new Map(); + formats.set(`${packet.rate}:${packet.channels}`, { + sample_rate_hz: packet.rate, + channel_count: packet.channels, + }); + this.formats.set(packet.channel, formats); + this.packets.push(packet); + this.earliestPacketMs = Math.min(this.earliestPacketMs, packet.at); + this.recordedEndMs = Math.max(this.recordedEndMs, packet.at + duration); + return true; + } + private validatePacket( + packet: Packet, + durationMs: number, + ): string | undefined { + if (!isSupportedPacket(packet)) { + return "unsupported_audio_format"; + } + if (packet.at < this.segmentStartMs - samplesToMs(1)) { + return "capture_clock_discontinuity"; + } + if (packet.at + durationMs > this.options.maxDurationSeconds * 1000) { + return "duration_limit"; + } + if (this.packets.length >= 100000) { + return "packet_limit"; + } + return undefined; + } + + record(packet: Packet): boolean { + const pcm = this.copy(packet.pcm); + return pcm ? this.append({ ...packet, pcm }) : false; + } + advance(watermark: number) { + if ( + this.closed || + this.reason || + !Number.isFinite(watermark) || + watermark <= this.segmentStartMs + ) { + return; + } + this.confirmedThroughMs = Math.max(this.confirmedThroughMs, watermark); + this.pump(); + } + // One job per recorder. Completion resumes eligible work without requiring + // another frame or blocking the application. Source limits bound the backlog. + private pump() { + if (this.job || !this.packets.length || (this.reason && !this.closed)) { + return; + } + const limit = this.closed + ? this.recordedEndMs + : Math.min(this.confirmedThroughMs, this.recordedEndMs); + const duration = this.options.segmentDurationSeconds * 1000; + if (this.earliestPacketMs >= this.segmentStartMs + duration) { + this.segmentStartMs += + Math.floor( + (Math.min(this.earliestPacketMs, limit) - this.segmentStartMs) / + duration, + ) * duration; + } + const cut = this.segmentStartMs + duration; + if (limit >= cut) { + this.rotate(cut); + } else if ( + this.closed || + this.retainedBytes >= + this.options.maxBufferBytes * this.options.flushFraction + ) { + this.rotate(limit); + } + } + private rotate(cut: number) { + if (!this.packets.length || cut <= this.segmentStartMs) { + return; + } + const { before, later } = this.splitPackets(cut); + if (!before.length) { + return; + } + const segment = new AudioSegment( + `call-${String(this.segments.length).padStart(4, "0")}`, + this.segmentStartMs, + cut, + before, + ); + this.packets = later; + this.earliestPacketMs = later.reduce((v, p) => Math.min(v, p.at), Infinity); + this.segmentStartMs = cut; + this.segments.push(segment); + try { + this.pending(segment); + } catch { + // Pending telemetry is best effort; upload publication sends the full recording descriptors. + } + this.job = this.exportSegment(segment).finally(() => { + this.job = undefined; + this.pump(); + }); + // Capture never awaits this task; drain()/finish() observe completion. + void this.job.catch(() => {}); + } + + private async exportSegment(segment: AudioSegment): Promise { + await this.exporter.export(segment, (pcm) => this.buffers.release(pcm)); + if (segment.state === "omitted") { + this.stop(segment.reason!); + } + // Trace publication cannot change the outcome of an audio export. + await this.publish(segment).catch(() => {}); + } + + /** Partition at a sample boundary; only a crossing packet requires copies. */ + private splitPackets(cutMs: number): { before: Packet[]; later: Packet[] } { + const before: Packet[] = [], + later: Packet[] = []; + for (const packet of this.packets) { + const count = Math.min( + packet.pcm.length, + Math.max( + 0, + Math.round(msToSamples(cutMs - packet.at, packet.rate)) * + packet.channels, + ), + ); + if (!count) { + later.push(packet); + } else if (count === packet.pcm.length) { + before.push({ ...packet, at: packet.at - this.segmentStartMs }); + } else { + // Splitting preserves the original reservation: the two new allocations + // have the same total source size and the old allocation is discarded. + const [head, tail] = this.buffers.split(packet.pcm, count); + before.push({ + ...packet, + pcm: head, + at: packet.at - this.segmentStartMs, + }); + later.push({ + ...packet, + pcm: tail, + at: packet.at + samplesToMs(count / packet.channels, packet.rate), + }); + } + } + return { before, later }; + } + + async drain() { + while (this.job) { + await this.job; + } + } + finish(): Promise { + if (!this.finishing) { + this.finishing = this.finishOnce(); + } + return this.finishing; + } + private async finishOnce() { + this.closed = true; + this.pump(); + await this.drain(); + // Unsubmitted copies (e.g. cancelled output) have no worker owner now. + this.buffers.close(); + this.packets = []; + } +} + +function validateOptions(options: Required): void { + const { + segmentDurationSeconds, + maxDurationSeconds, + maxBufferBytes, + flushFraction, + } = options; + const positiveLimits = [ + segmentDurationSeconds, + maxDurationSeconds, + maxBufferBytes, + ]; + if ( + !positiveLimits.every((value) => Number.isFinite(value) && value > 0) || + !Number.isInteger(maxBufferBytes) || + !(flushFraction > 0 && flushFraction < 1) + ) { + throw new Error("Invalid recording limits"); + } +} + +function isSupportedPacket(packet: Packet): boolean { + return ( + Number.isFinite(packet.at) && + packet.at >= 0 && + [0, 1].includes(packet.channel) && + [1, 2].includes(packet.channels) && + Number.isFinite(packet.rate) && + packet.rate >= 8000 && + packet.rate <= 96000 && + packet.pcm.length % packet.channels === 0 + ); +} diff --git a/js/src/audio/recording.test.ts b/js/src/audio/recording.test.ts new file mode 100644 index 000000000..184fe9a07 --- /dev/null +++ b/js/src/audio/recording.test.ts @@ -0,0 +1,185 @@ +import { expect, test, vi } from "vitest"; +import { createAudioRecording } from "./index"; + +test.each(["wav"] as const)( + "public recording API exports %s only after upload succeeds", + async (audioFormat) => { + const log = vi.fn(); + const flush = vi.fn(async () => {}); + let complete!: () => void; + let started!: () => void; + const uploading = new Promise((resolve) => { + started = resolve; + }); + const uploaded = new Promise((resolve) => { + complete = resolve; + }); + const createAttachment = vi.fn( + (options: { + data: Uint8Array; + filename: string; + contentType: string; + }) => ({ + reference: { + key: "uploaded", + filename: options.filename, + content_type: options.contentType, + }, + upload: async () => { + started(); + await uploaded; + return { upload_status: "done" }; + }, + }), + ); + const recording = createAudioRecording({ + // Explicit undefined must behave like an omitted optional setting. + options: { + segmentDurationSeconds: undefined, + maxDurationSeconds: undefined, + maxBufferBytes: undefined, + flushFraction: undefined, + }, + span: { spanId: "call", log }, + flush, + createAttachment, + snapshot: () => ({ + origin: 1234, + basis: "test", + + source: (channel_index) => ({ channel_index }), + }), + }); + recording.record({ + pcm: new Int16Array(480).fill(1000), + at: 0, + rate: 24000, + channels: 1, + channel: 0, + }); + const finishing = recording.finish(); + try { + await uploading; + recording.publishRecordings(); + expect( + log.mock.calls + .flatMap(([row]) => row.metadata?.["audio.recordings"] ?? []) + .every((r) => r.state === "pending"), + ).toBe(true); + expect(log.mock.calls.some(([row]) => row.input?.audio)).toBe(false); + const file = createAttachment.mock.calls[0][0]; + expect(Buffer.from(file.data.subarray(0, 4)).toString()).toBe( + audioFormat === "wav" ? "RIFF" : "OggS", + ); + expect(file.contentType).toBe(`audio/${audioFormat}`); + complete(); + await finishing; + expect( + log.mock.calls + .flatMap(([row]) => row.metadata?.["audio.recordings"] ?? []) + .at(-1), + ).toMatchObject({ state: "ready", mime_type: `audio/${audioFormat}` }); + expect(flush).toHaveBeenCalled(); + } finally { + complete(); + await finishing; + } + }, +); + +test("staged audio is copied, can be discarded, and is bounded independently per recording", async () => { + const source = new Int16Array(12 * 1024 * 1024); + source[0] = 123; + const recordings = Array.from({ length: 3 }, () => + createAudioRecording({ + options: { maxBufferBytes: source.byteLength }, + span: { spanId: "session", log: () => {} }, + flush: async () => {}, + createAttachment: () => { + throw new Error("Discarded audio must not upload"); + }, + snapshot: () => ({ + origin: 0, + basis: "test", + + source: () => ({}), + }), + }), + ); + try { + // More than 64 MiB in aggregate must not trigger a hidden cross-session limit. + const staged = recordings.map((recording) => recording.copy(source)); + expect(staged.every((pcm) => pcm?.[0] === 123)).toBe(true); + source[0] = 456; + for (const [index, recording] of recordings.entries()) { + expect(staged[index]?.[0]).toBe(123); + recording.release(staged[index]!); + } + // Discarding returns capacity; exceeding this recording's own limit stops capture. + expect(recordings[0].copy(source)).toBeDefined(); + expect(recordings[0].copy(new Int16Array(1))).toBeUndefined(); + expect(recordings[0].reason).toBe("capture_byte_limit"); + expect(recordings[1].copy(new Int16Array(1))).toBeDefined(); + expect(recordings[1].reason).toBeUndefined(); + } finally { + await Promise.all(recordings.map((recording) => recording.finish())); + } +}); + +test("recording publication observes changed context and suppresses identical updates", async () => { + const log = vi.fn(); + const metadata = { source: "microphone" }; + const recording = createAudioRecording({ + span: { spanId: "session", log }, + flush: async () => {}, + createAttachment: () => { + throw new Error("No audio captured"); + }, + snapshot: () => ({ + origin: 0, + basis: "test", + + source: () => ({}), + metadata, + }), + }); + recording.publishRecordings(); + recording.publishRecordings(); + expect(log).toHaveBeenCalledTimes(1); + metadata.source = "replacement"; + recording.publishRecordings(); + expect(log).toHaveBeenCalledTimes(2); + expect(log.mock.calls.at(-1)?.[0].metadata.source).toBe("replacement"); + await recording.finish(); +}); + +test.each([undefined, "capture_byte_limit"])( + "finish publishes final state without audio (reason=%s) and is idempotent", + async (reason) => { + const log = vi.fn(); + const flush = vi.fn(async () => {}); + const recording = createAudioRecording({ + span: { spanId: "session", log }, + flush, + createAttachment: () => { + throw new Error("No audio to upload"); + }, + snapshot: () => ({ origin: 0, basis: "test", source: () => ({}) }), + }); + recording.publishRecordings(); + if (reason) { + recording.stop(reason); + } + await recording.finish(); + expect( + log.mock.calls.at(-1)?.[0].metadata["audio.recordings"], + ).toMatchObject([ + { state: "omitted", reason: reason ?? "no_audio_observed" }, + ]); + const count = log.mock.calls.length; + await recording.finish(); + expect(log).toHaveBeenCalledTimes(count); + expect(flush).toHaveBeenCalledTimes(1); + expect(recording.copy(new Int16Array(1))).toBeUndefined(); + }, +); diff --git a/js/src/audio/recording.ts b/js/src/audio/recording.ts new file mode 100644 index 000000000..8a58bc3ca --- /dev/null +++ b/js/src/audio/recording.ts @@ -0,0 +1,107 @@ +import { Recorder, type RecordingOptions } from "./recorder"; +import { + TracePublisher, + type RecordingSpan, + type RecordingContext, +} from "./publisher"; +import { SegmentExporter, type CreateAttachment } from "./exporter"; +import { createEncoder } from "./worker"; +import type { Packet, Segment } from "./segment"; + +export interface AudioRecordingConfig { + options?: RecordingOptions; + encoder?: { module: string }; + span: RecordingSpan; + flush: () => Promise; + snapshot: () => Omit; + /** Publish dependent metadata before the recording flush; retried on publication failure. */ + onPublish?: () => void; + createAttachment: CreateAttachment; +} +/** One recording session. Pipeline components remain private to the package. */ +class Recording { + private readonly recorder: Recorder; + private readonly publisher: TracePublisher; + private closed = false; + private finishing?: Promise; + + constructor(config: AudioRecordingConfig) { + this.recorder = new Recorder( + config.options ?? {}, + new SegmentExporter( + createEncoder(config.encoder), + config.createAttachment, + ), + (segment) => this.publisher.publish(segment), + () => this.publisher.publishRecordings(), + ); + this.publisher = new TracePublisher( + config.span, + config.flush, + () => ({ + ...config.snapshot(), + closed: this.closed, + segments: this.recorder.segments, + reason: this.recorder.reason, + }), + config.onPublish, + ); + } + + /** Segment manifests for consumers mapping recording-relative intervals to files. */ + get segments(): readonly Segment[] { + return this.recorder.segments; + } + get reason() { + return this.recorder.reason; + } + get formats(): ReadonlyMap< + number, + ReadonlyMap + > { + return this.recorder.formats; + } + /** Copy a timestamped PCM frame into the recording. */ + record(packet: Packet): boolean { + return this.recorder.record(packet); + } + /** Confirm that no more frames will arrive before this recording offset. */ + advance(confirmedThroughMs: number): void { + this.recorder.advance(confirmedThroughMs); + } + stop(reason: string): void { + this.recorder.stop(reason); + } + drain(): Promise { + return this.recorder.drain(); + } + /** Finish the final segment and wait for encoding, uploads, and trace publication. */ + finish(): Promise { + if (!this.finishing) { + this.closed = true; + this.finishing = this.recorder + .finish() + .then(() => this.publisher.publish()); + } + return this.finishing; + } + + // Staged playback: copy now, then append only the audio actually played, or release it. + copy(pcm: Int16Array): Int16Array | undefined { + return this.recorder.copy(pcm); + } + append(packet: Packet): boolean { + return this.recorder.append(packet); + } + release(pcm: Int16Array): void { + this.recorder.release(pcm); + } + publishRecordings(): void { + this.publisher.publishRecordings(); + } +} + +/** Create a framework-independent recording session. */ +export function createAudioRecording(config: AudioRecordingConfig) { + return new Recording(config); +} diff --git a/js/src/audio/segment.test.ts b/js/src/audio/segment.test.ts new file mode 100644 index 000000000..44106c311 --- /dev/null +++ b/js/src/audio/segment.test.ts @@ -0,0 +1,55 @@ +import { expect, test } from "vitest"; +import { AudioSegment } from "./segment"; + +const encoded = { + durationMs: 20, + sampleRate: 24000, + mimeType: "audio/wav", +}; +function segment() { + return new AudioSegment("call-0000", 40, 60, [ + { pcm: new Int16Array(480), at: 0, rate: 24000, channels: 1, channel: 0 }, + ]); +} +test("segment becomes ready only after encoding and upload, retaining its descriptor", () => { + const s = segment(); + expect(() => s.dispatch({ type: "ready", reference: "uploaded" })).toThrow(); + const packets = s.dispatch({ type: "encode" }); + expect(packets[0].pcm).toHaveLength(480); + expect(() => s.dispatch({ type: "encode" })).toThrow(); + s.dispatch({ type: "encoded", format: encoded }); + expect(s.state).toBe("pending"); + s.dispatch({ type: "ready", reference: "uploaded" }); + expect(s).toMatchObject({ + id: "call-0000", + start: 40, + end: 60, + state: "ready", + channels: [0], + ...encoded, + attachmentReference: "uploaded", + }); + expect(() => s.dispatch({ type: "encoded", format: encoded })).toThrow(); + expect(() => + s.dispatch({ type: "omitted", reason: "late_failure" }), + ).toThrow(); + expect(s.state).toBe("ready"); +}); +test.each(["queued", "encoding", "uploading"])( + "omission during %s is terminal and preserves its original reason", + (phase) => { + const s = segment(); + if (phase !== "queued") { + s.dispatch({ type: "encode" }); + } + if (phase === "uploading") { + s.dispatch({ type: "encoded", format: encoded }); + } + s.dispatch({ type: "omitted", reason: "failed" }); + expect(s).toMatchObject({ state: "omitted", reason: "failed" }); + expect(() => s.dispatch({ type: "ready", reference: "late" })).toThrow(); + expect(() => s.dispatch({ type: "encoded", format: encoded })).toThrow(); + expect(() => s.dispatch({ type: "omitted", reason: "other" })).toThrow(); + expect(s.reason).toBe("failed"); + }, +); diff --git a/js/src/audio/segment.ts b/js/src/audio/segment.ts new file mode 100644 index 000000000..d0a980463 --- /dev/null +++ b/js/src/audio/segment.ts @@ -0,0 +1,118 @@ +export type Packet = { + pcm: Int16Array; + rate: number; + channels: number; + channel: number; + at: number; +}; +export type EncodedAudio = { + bytes: Uint8Array; + durationMs: number; + mimeType: string; + sampleRate: number; +}; +export type Segment = Readonly<{ + id: string; + start: number; + end: number; + state: "pending" | "ready" | "omitted"; + reason?: string; + mimeType?: string; + sampleRate?: number; + durationMs?: number; + channels: readonly number[]; +}>; + +type AudioFormat = Omit; +type SegmentEvent = + | { type: "encode" } + | { type: "encoded"; format: AudioFormat } + | { type: "ready"; reference: unknown } + | { type: "omitted"; reason: string }; +type SegmentState = + | { phase: "queued"; packets: Packet[] } + | { phase: "encoding" } + | { phase: "uploading"; format: AudioFormat } + | { phase: "ready"; format: AudioFormat; reference: unknown } + | { phase: "omitted"; reason: string }; + +/** Owns segment transitions and its descriptor; the exporter owns encoded bytes. */ +export class AudioSegment implements Segment { + private current: SegmentState; + readonly channels: readonly number[]; + + constructor( + readonly id: string, + readonly start: number, + readonly end: number, + packets: Packet[], + ) { + this.current = { phase: "queued", packets }; + this.channels = [...new Set(packets.map((packet) => packet.channel))]; + } + + get state(): Segment["state"] { + const { phase } = this.current; + return phase === "ready" || phase === "omitted" ? phase : "pending"; + } + get reason() { + return this.current.phase === "omitted" ? this.current.reason : undefined; + } + private get format() { + return "format" in this.current ? this.current.format : undefined; + } + get mimeType() { + return this.format?.mimeType; + } + get sampleRate() { + return this.format?.sampleRate; + } + get durationMs() { + return this.format?.durationMs; + } + get attachmentReference() { + return this.current.phase === "ready" ? this.current.reference : undefined; + } + + dispatch(event: { type: "encode" }): Packet[]; + dispatch(event: Exclude): void; + dispatch(event: SegmentEvent): Packet[] | void { + const state = this.current; + switch (event.type) { + case "encode": + if (state.phase === "queued") { + this.current = { phase: "encoding" }; + return state.packets; + } + break; + case "encoded": + if (state.phase === "encoding") { + const { durationMs, mimeType, sampleRate } = event.format; + this.current = { + phase: "uploading", + format: { durationMs, mimeType, sampleRate }, + }; + return; + } + break; + case "ready": + if (state.phase === "uploading") { + this.current = { + phase: "ready", + format: state.format, + reference: event.reference, + }; + return; + } + break; + case "omitted": + if (state.phase !== "ready" && state.phase !== "omitted") { + this.current = { phase: "omitted", reason: event.reason }; + return; + } + } + throw new Error( + `Invalid audio segment transition: ${state.phase} -> ${event.type}`, + ); + } +} diff --git a/js/src/audio/selections.test.ts b/js/src/audio/selections.test.ts new file mode 100644 index 000000000..f4d8beb4f --- /dev/null +++ b/js/src/audio/selections.test.ts @@ -0,0 +1,68 @@ +import { expect, test } from "vitest"; +import { + mergeSelections, + segmentSelections, + type Selection, +} from "./selections"; +const range = (start: number, end: number): Selection => ({ + recording_span_id: "root", + recording_id: "call", + channel_index: 1, + start_offset_ms: start, + end_offset_ms: end, +}); +test("compaction preserves recording identities, channels and real discontinuities", () => { + const result = mergeSelections([ + range(20, 40), + range(0, 20), + range(50, 60), + { ...range(40, 50), recording_id: "other" }, + { ...range(40, 50), recording_span_id: "another-root" }, + { ...range(40, 50), channel_index: 0 }, + ]); + expect(result).toHaveLength(5); + expect(result).toContainEqual(range(0, 40)); + expect(result).toContainEqual(range(50, 60)); +}); +test("thirty minutes of contiguous frames scale with files, not frames", () => { + const minutes = 30; + const ranges = Array.from({ length: minutes * 60 * 50 }, (_, i) => + range(i * 20, (i + 1) * 20), + ); + const merged = mergeSelections(ranges); + expect(merged).toEqual([range(0, minutes * 60000)]); + const segments = Array.from({ length: minutes }, (_, i) => ({ + id: `call-${i}`, + start: i * 60000, + end: (i + 1) * 60000, + state: "ready" as const, + channels: [1], + })); + expect(segmentSelections(merged, segments)).toHaveLength(minutes); +}); + +test("pending and failed segments never produce selections; a crossing turn uses local file coordinates", () => { + const selections = segmentSelections( + [ + { + recording_span_id: "root", + recording_id: "call", + channel_index: 0, + start_offset_ms: 29000, + end_offset_ms: 32000, + }, + ], + [ + { id: "first", start: 0, end: 30000, state: "ready", channels: [0] }, + { id: "second", start: 30000, end: 60000, state: "ready", channels: [0] }, + { id: "pending", start: 0, end: 60000, state: "pending", channels: [0] }, + { id: "failed", start: 0, end: 60000, state: "omitted", channels: [0] }, + ], + ); + expect( + selections.map((s) => [s.recording_id, s.start_offset_ms, s.end_offset_ms]), + ).toEqual([ + ["first", 29000, 30000], + ["second", 0, 2000], + ]); +}); diff --git a/js/src/audio/selections.ts b/js/src/audio/selections.ts new file mode 100644 index 000000000..538be0fb7 --- /dev/null +++ b/js/src/audio/selections.ts @@ -0,0 +1,64 @@ +import { msToSamples, samplesToMs } from "./timeline"; +import type { Segment } from "./segment"; +export type Selection = { + recording_span_id: string; + recording_id: string; + start_offset_ms: number; + end_offset_ms: number; + channel_index: number; +}; +export function segmentSelections( + intervals: Selection[], + segments: readonly Segment[], +): Selection[] { + return segments + .filter((s) => s.state === "ready") + .flatMap((segment) => + intervals + .map((s) => ({ + ...s, + recording_id: segment.id, + start_offset_ms: Math.max( + 0, + samplesToMs( + Math.round(msToSamples(s.start_offset_ms - segment.start)), + ), + ), + end_offset_ms: Math.min( + segment.end - segment.start, + samplesToMs( + Math.round(msToSamples(s.end_offset_ms - segment.start)), + ), + ), + })) + .filter((s) => s.end_offset_ms > s.start_offset_ms), + ); +} + +export function mergeSelections(ranges: Selection[]): Selection[] { + const out: Selection[] = []; + for (const r of [...ranges].sort( + (a, b) => + a.recording_span_id.localeCompare(b.recording_span_id) || + a.recording_id.localeCompare(b.recording_id) || + a.channel_index - b.channel_index || + a.start_offset_ms - b.start_offset_ms, + )) { + const previous = out.at(-1); + if ( + previous && + previous.recording_span_id === r.recording_span_id && + previous.recording_id === r.recording_id && + previous.channel_index === r.channel_index && + previous.end_offset_ms >= r.start_offset_ms - samplesToMs(1) + ) { + previous.end_offset_ms = Math.max( + previous.end_offset_ms, + r.end_offset_ms, + ); + } else { + out.push({ ...r }); + } + } + return out; +} diff --git a/js/src/audio/timeline.ts b/js/src/audio/timeline.ts new file mode 100644 index 000000000..cc1937b93 --- /dev/null +++ b/js/src/audio/timeline.ts @@ -0,0 +1,23 @@ +/** Shared call-selection clock; source and encoded audio may use other rates. */ +export const CALL_SAMPLE_RATE = 24000; + +/** Fractional sample frames. Round only where an integer sample boundary is needed. */ +export function msToSamples( + milliseconds: number, + sampleRate = CALL_SAMPLE_RATE, +) { + return milliseconds * (sampleRate / 1000); +} + +export function samplesToMs(samples: number, sampleRate = CALL_SAMPLE_RATE) { + return samples / (sampleRate / 1000); +} + +/** Duration of interleaved signed 16-bit PCM. */ +export function pcmBytesToMs( + bytes: number, + sampleRate: number, + channels: number, +) { + return samplesToMs(bytes / 2 / channels, sampleRate); +} diff --git a/js/src/audio/voice-publisher.ts b/js/src/audio/voice-publisher.ts new file mode 100644 index 000000000..9cb48789e --- /dev/null +++ b/js/src/audio/voice-publisher.ts @@ -0,0 +1,49 @@ +import type { RecordingSpan } from "./publisher"; +import type { Segment } from "./segment"; +import { + mergeSelections, + segmentSelections, + type Selection, +} from "./selections"; +export type SpeechSelection = { + span: Pick; + intervals: Selection[]; + alias?: boolean; + metadata?: Record; +}; + +/** Maps voice spans onto ready audio files; does not encode or upload audio. */ +export class VoicePublisher { + private publishedSelections = new WeakMap(); + constructor( + private segments: () => readonly Segment[], + private speechSelections: () => Iterable, + ) {} + reset(): void { + this.publishedSelections = new WeakMap(); + } + publish() { + const segments = this.segments(); + for (const turn of this.speechSelections()) { + const selections = segmentSelections( + mergeSelections(turn.intervals), + segments, + ); + const metadata = { + "audio.selections": selections, + ...(turn.alias + ? { + "audio.selection": selections.length === 1 ? selections[0] : null, + } + : {}), + ...turn.metadata, + }; + const signature = JSON.stringify(metadata); + if (this.publishedSelections.get(turn.span) === signature) { + continue; + } + turn.span.log({ metadata }); + this.publishedSelections.set(turn.span, signature); + } + } +} diff --git a/js/src/audio/voice.test.ts b/js/src/audio/voice.test.ts new file mode 100644 index 000000000..4cdd22306 --- /dev/null +++ b/js/src/audio/voice.test.ts @@ -0,0 +1,170 @@ +import { expect, test, vi } from "vitest"; +import { + createVoiceRecording, + type AudioRecordingConfig, + type Selection, +} from "./index"; + +test.each(["pending", "attachment", "manifest", "selection", "flush"])( + "%s publication failure preserves uploaded audio and subsequent capture", + async (failure) => { + const rows: Parameters[0][] = []; + const audioKeys = (row: (typeof rows)[number]) => + row.input && typeof row.input === "object" && "audio" in row.input + ? Object.keys(row.input.audio as object) + : []; + let fail = true; + const rejectOnce = (stage: string) => { + if (stage === failure && fail) { + fail = false; + throw new Error("temporary trace failure"); + } + }; + const log = (row: (typeof rows)[number]) => { + if (audioKeys(row).length) { + rejectOnce("attachment"); + } + const manifest = row.metadata?.["audio.recordings"]; + if (Array.isArray(manifest)) { + const ready = manifest.some( + (s: { state: string }) => s.state === "ready", + ); + rejectOnce(ready ? "manifest" : "pending"); + } + if (row.metadata?.["audio.selections"]) { + rejectOnce("selection"); + } + rows.push(row); + }; + const turn = { log }; + const upload = vi.fn(async () => ({ upload_status: "done" })); + const voice = createVoiceRecording({ + options: { segmentDurationSeconds: 0.02 }, + span: { spanId: "session", log }, + flush: async () => { + // A rejected flush need not have delivered the queued trace updates. + if (failure === "flush" && fail) { + rows.length = 0; + } + rejectOnce("flush"); + }, + createAttachment: ({ filename }) => ({ + reference: { key: filename }, + upload, + }), + snapshot: () => ({ + origin: 0, + basis: "test", + + source: (channel_index) => ({ channel_index }), + }), + speechSelections: () => [ + { + span: turn, + intervals: [ + { + recording_span_id: "session", + recording_id: "call", + channel_index: 0, + start_offset_ms: 0, + end_offset_ms: 40, + }, + ], + }, + ], + }); + const recording = voice.audio; + try { + for (const at of [0, 20]) { + expect( + recording.record({ + pcm: new Int16Array(480), + at, + rate: 24000, + channels: 1, + channel: 0, + }), + ).toBe(true); + expect(() => recording.advance(at + 20)).not.toThrow(); + await recording.drain(); + expect(rows.flatMap(audioKeys)).toContain( + at === 0 ? "call-0000" : "call-0001", + ); + const selected = rows + .filter((r) => r.metadata?.["audio.selections"]) + .at(-1); + expect(selected?.metadata?.["audio.selections"]).toHaveLength( + at / 20 + 1, + ); + } + } finally { + await voice.finish(); + } + recording.publishRecordings(); + voice.publishSelections(); + expect(fail).toBe(false); + expect(upload).toHaveBeenCalledTimes(2); + const manifest = rows + .flatMap((r) => + Array.isArray(r.metadata?.["audio.recordings"]) + ? r.metadata["audio.recordings"] + : [], + ) + .slice(-2); + expect(manifest).toMatchObject([{ state: "ready" }, { state: "ready" }]); + expect(new Set(rows.flatMap(audioKeys))).toEqual( + new Set(["call-0000", "call-0001"]), + ); + expect(rows.at(-1)?.metadata?.["audio.selections"]).toMatchObject([ + { recording_id: "call-0000" }, + { recording_id: "call-0001" }, + ]); + }, +); + +test("finish publishes late speech selections without uploading the segment again", async () => { + const log = vi.fn(); + const turn = { log: vi.fn() }; + const upload = vi.fn(async () => ({ upload_status: "done" })); + const intervals: Selection[] = []; + const voice = createVoiceRecording({ + options: { segmentDurationSeconds: 0.02 }, + span: { spanId: "session", log }, + flush: async () => {}, + createAttachment: () => ({ reference: { key: "audio" }, upload }), + snapshot: () => ({ + origin: 0, + basis: "test", + source: (channel_index) => ({ channel_index }), + }), + speechSelections: () => [{ span: turn, intervals }], + }); + const recording = voice.audio; + recording.record({ + pcm: new Int16Array(480), + at: 0, + rate: 24000, + channels: 1, + channel: 0, + }); + recording.advance(20); + await recording.drain(); + intervals.push({ + recording_span_id: "session", + recording_id: "call", + channel_index: 0, + start_offset_ms: 0, + end_offset_ms: 20, + }); + await voice.finish(); + expect(turn.log.mock.calls.at(-1)?.[0].metadata["audio.selections"]).toEqual([ + { + recording_span_id: "session", + recording_id: "call-0000", + channel_index: 0, + start_offset_ms: 0, + end_offset_ms: 20, + }, + ]); + expect(upload).toHaveBeenCalledTimes(1); +}); diff --git a/js/src/audio/voice.ts b/js/src/audio/voice.ts new file mode 100644 index 000000000..0934e154b --- /dev/null +++ b/js/src/audio/voice.ts @@ -0,0 +1,43 @@ +import { createAudioRecording, type AudioRecordingConfig } from "./recording"; +import { VoicePublisher, type SpeechSelection } from "./voice-publisher"; + +interface VoiceRecordingConfig extends Omit { + /** Existing speech/turn spans and their known call-relative audio intervals. */ + speechSelections: () => Iterable; +} + +/** Voice associations layered over an independently usable audio recording. */ +class VoiceRecording { + readonly audio: ReturnType; + private readonly publisher: VoicePublisher; + constructor(config: VoiceRecordingConfig) { + const { speechSelections, ...audioConfig } = config; + this.publisher = new VoicePublisher( + () => this.audio.segments, + speechSelections, + ); + this.audio = createAudioRecording({ + ...audioConfig, + onPublish: () => this.publisher.publish(), + flush: async () => { + try { + await config.flush(); + } catch (error) { + this.publisher.reset(); + throw error; + } + }, + }); + } + publishSelections(): void { + this.publisher.publish(); + } + finish(): Promise { + return this.audio.finish(); + } +} + +/** Publish voice playback associations using supplied bounds; no alignment is inferred. */ +export function createVoiceRecording(config: VoiceRecordingConfig) { + return new VoiceRecording(config); +} diff --git a/js/src/audio/worker.test.ts b/js/src/audio/worker.test.ts new file mode 100644 index 000000000..73fcb4e7e --- /dev/null +++ b/js/src/audio/worker.test.ts @@ -0,0 +1,53 @@ +import { expect, test } from "vitest"; +import { createEncoder } from "./worker"; +test("worker admission permits one running and one queued job, without blocking a caller", async () => { + const encoder = createEncoder(); + const packet = () => [ + { + pcm: new Int16Array(24000).fill(1234), + rate: 24000, + channels: 1, + channel: 0, + at: 0, + }, + ]; + const results = await Promise.allSettled([ + encoder(packet(), 1000), + encoder(packet(), 1000), + encoder(packet(), 1000), + ]); + expect(results.map((r) => r.status)).toEqual([ + "fulfilled", + "fulfilled", + "rejected", + ]); + const first = results[0]; + if (first.status === "fulfilled") { + expect(first.value.bytes.length).toBe(96044); + } + expect(results[2]).toMatchObject({ + reason: { message: "recording_worker_capacity" }, + }); +}); + +test("a failed codec releases admission for subsequent recordings", async () => { + await expect( + createEncoder({ module: "file:///missing-braintrust-test-codec.mjs" })( + [], + 20, + ), + ).rejects.toThrow(); + const result = await createEncoder()([], 20); + expect(result.mimeType).toBe("audio/wav"); + expect(result.bytes.length).toBe(1964); +}); + +test("successive segments reuse the codec runtime but keep independent output buffers", async () => { + const encoder = createEncoder({ + module: new URL("./fixtures/counting-codec.mjs", import.meta.url).href, + }); + const first = await encoder([], 20); + const second = await encoder([], 20); + expect([...first.bytes]).toEqual([1]); + expect([...second.bytes]).toEqual([2]); +}); diff --git a/js/src/audio/worker.ts b/js/src/audio/worker.ts new file mode 100644 index 000000000..c82917118 --- /dev/null +++ b/js/src/audio/worker.ts @@ -0,0 +1,128 @@ +import type * as workerThreads from "node:worker_threads"; +import type { Worker } from "node:worker_threads"; +import { createRequire } from "node:module"; +import { dirname, join } from "node:path"; +import type { Encoder } from "./exporter"; +import type { EncodedAudio } from "./segment"; +const key = Symbol.for("braintrust.audio.workers.v1"); +type Pool = { + running: boolean; + queue: (() => void)[]; + worker?: Worker; + idle?: ReturnType; +}; +const pool: Pool = Reflect.get(globalThis, key) ?? { + running: false, + queue: [], +}; +Reflect.set(globalThis, key, pool); +async function acquire() { + if (pool.running) { + if (pool.queue.length >= 1) { + throw new Error("recording_worker_capacity"); + } + await new Promise((resolve) => pool.queue.push(resolve)); + } else { + pool.running = true; + } + clearTimeout(pool.idle); + pool.idle = undefined; +} +function release() { + const next = pool.queue.shift(); + if (next) { + next(); + } else { + pool.running = false; + const worker = pool.worker; + if (!worker) { + return; + } + // Reuse nearby work, but do not pin a codec isolate indefinitely after a call. + worker.unref(); + pool.idle = setTimeout(() => { + pool.idle = undefined; + if (pool.worker === worker && !pool.running) { + pool.worker = undefined; + void worker.terminate().catch(() => {}); + } + }, 10000); + pool.idle.unref(); + } +} +function getWorker() { + if (!pool.worker) { + // Resolve the native worker at runtime so app bundlers do not try to bundle + // its separately shipped entrypoint when importing the SDK. + const load = createRequire(join(process.cwd(), "package.json")); + const { Worker }: typeof workerThreads = load("node:worker_threads"); + const worker = new Worker( + join( + dirname(load.resolve("braintrust/package.json")), + "dist/audio-worker.mjs", + ), + // Keep short-lived conversion objects from growing a large nursery in + // the codec isolate. This does not constrain the application's JS heap. + { + env: {}, + execArgv: [], + resourceLimits: { maxYoungGenerationSizeMb: 2 }, + }, + ); + pool.worker = worker; + const clear = () => { + if (pool.worker === worker) { + pool.worker = undefined; + } + }; + // Idle worker failures must neither become unhandled errors nor poison reuse. + worker.on("error", clear); + worker.on("exit", clear); + } + pool.worker.ref(); + return pool.worker; +} +export function createEncoder(codec?: { module: string }): Encoder { + return async (packets, durationMs) => { + await acquire(); + let worker: Worker | undefined; + let timer: ReturnType | undefined; + let cleanup = () => {}; + try { + worker = getWorker(); + return await new Promise((resolve, reject) => { + const message = (result: EncodedAudio & { reason?: string }) => + result.reason ? reject(new Error(result.reason)) : resolve(result); + const error = () => reject(new Error("encoding_failed")); + const exit = () => reject(new Error("encoder_exit")); + worker!.once("message", message); + worker!.once("error", error); + worker!.once("exit", exit); + cleanup = () => { + worker!.off("message", message); + worker!.off("error", error); + worker!.off("exit", exit); + }; + timer = setTimeout(() => reject(new Error("encoder_deadline")), 10000); + const buffers = [...new Set(packets.map((p) => p.pcm.buffer))].filter( + (b): b is ArrayBuffer => b instanceof ArrayBuffer, + ); + worker!.postMessage( + { packets, durationMs, encoderModule: codec?.module }, + buffers, + ); + }); + } catch (error) { + if (pool.worker === worker) { + pool.worker = undefined; + } + // Never reuse a failed/timed-out codec job; keep admission until it stops. + await worker?.terminate().catch(() => {}); + throw error; + } finally { + clearTimeout(timer); + cleanup(); + release(); + } + }; +} diff --git a/js/src/auto-instrumentations/configs/all.ts b/js/src/auto-instrumentations/configs/all.ts index a8d9ddc3f..58f6bea77 100644 --- a/js/src/auto-instrumentations/configs/all.ts +++ b/js/src/auto-instrumentations/configs/all.ts @@ -1,3 +1,4 @@ +import { livekitConfigs } from "./livekit"; import type { InstrumentationConfig } from "../orchestrion-js"; import { isInstrumentationIntegrationDisabled, @@ -124,6 +125,10 @@ const defaultInstrumentationConfigGroups: readonly InstrumentationConfigGroup[] integrations: ["strandsAgentSDK"], configs: strandsAgentSDKConfigs, }, + { + integrations: ["livekit"], + configs: livekitConfigs, + }, { integrations: ["flue"], configs: flueConfigs, diff --git a/js/src/auto-instrumentations/configs/livekit.ts b/js/src/auto-instrumentations/configs/livekit.ts new file mode 100644 index 000000000..7ce86f161 --- /dev/null +++ b/js/src/auto-instrumentations/configs/livekit.ts @@ -0,0 +1,63 @@ +import type { InstrumentationConfig } from "../orchestrion-js"; +import { livekitChannels } from "../../instrumentation/plugins/livekit-channels"; +// Private lifecycle hooks: widen only after validating the supported release matrix. +export const livekitConfigs: InstrumentationConfig[] = [ + ["pipeline", "agent_activity", "AgentActivity", "_pipelineReplyTaskImpl"], + ["conversation", "agent_session", "AgentSession", "_conversationItemAdded"], + ["userCompleted", "agent_activity", "AgentActivity", "userTurnCompleted"], + ["start", "agent_session", "AgentSession", "_startImpl"], + ["close", "agent_session", "AgentSession", "closeImpl"], + ["output", "agent_session", "AgentSession", "onAudioOutputChanged"], + ["input", "agent_activity", "AgentActivity", "attachAudioInput"], + ["activity", "agent_activity", "AgentActivity", "_startSessionImpl"], + ["userTurn", "agent_activity", "AgentActivity", "onEndOfTurn"], +].map(([channel, file, className, methodName]) => ({ + channelName: + livekitChannels[channel as keyof typeof livekitChannels].channelName, + module: { + name: "@livekit/agents", + versionRange: ">=1.9.1 <1.10.0", + filePath: `dist/voice/${file}.js`, + }, + functionQuery: { className, methodName }, +})); + +// These factories create the async inference workers inside the scoped call. +// Suppressing here leaves tool execution and other session work instrumented. +for (const functionName of ["performLLMInference", "performTTSInference"]) { + livekitConfigs.push({ + channelName: livekitChannels.inference.channelName, + module: { + name: "@livekit/agents", + versionRange: ">=1.9.1 <1.10.0", + filePath: "dist/voice/generation.js", + }, + functionQuery: { functionName }, + }); +} + +// Observe the native tracer at its stable function boundary; preserve providers. +for (const methodName of [ + "startSpan", + "startActiveSpan", + "startActiveSpanSync", +] as const) { + livekitConfigs.push({ + channelName: livekitChannels.trace.channelName, + module: { + name: "@livekit/agents", + versionRange: ">=1.9.1 <1.10.0", + filePath: "dist/telemetry/traces.js", + }, + functionQuery: { className: "DynamicTracer", methodName }, + }); +} +livekitConfigs.push({ + channelName: livekitChannels.provider.channelName, + module: { + name: "@livekit/agents", + versionRange: ">=1.9.1 <1.10.0", + filePath: "dist/telemetry/traces.js", + }, + functionQuery: { functionName: "setTracerProvider" }, +}); diff --git a/js/src/imports.test.ts b/js/src/imports.test.ts index 96a4851d5..4a91b55d1 100644 --- a/js/src/imports.test.ts +++ b/js/src/imports.test.ts @@ -228,7 +228,16 @@ describe("CLI import restrictions", () => { if ( /\bimport\s*\(/.test(line) && !/^import\s+/.test(line.trim()) && - !relativePath.includes("instrumentation/plugins/anthropic-plugin.ts") + !relativePath.includes( + "instrumentation/plugins/anthropic-plugin.ts", + ) && + // The audio worker loads an optional codec selected at runtime. A static + // import would make that codec a required SDK dependency. Keep this + // exception limited to the worker's codec import, on all platforms. + !( + relativePath.replaceAll(path.sep, "/") === + "audio/audio-worker.ts" && /\bimport\(encoderModule\)/.test(line) + ) ) { violations.push( `${relativePath}:${index + 1} - Found dynamic import() statement: "${line.trim()}"`, diff --git a/js/src/instrumentation/braintrust-plugin.ts b/js/src/instrumentation/braintrust-plugin.ts index 93015d351..09360940f 100644 --- a/js/src/instrumentation/braintrust-plugin.ts +++ b/js/src/instrumentation/braintrust-plugin.ts @@ -1,3 +1,4 @@ +import { LiveKitPlugin } from "./plugins/livekit-plugin"; import { BasePlugin } from "./core"; import { OpenAIPlugin } from "./plugins/openai-plugin"; import { OpenAICodexPlugin } from "./plugins/openai-codex-plugin"; @@ -83,6 +84,7 @@ export class BraintrustPlugin extends BasePlugin { private bedrockRuntimePlugin: BedrockRuntimePlugin | null = null; private genkitPlugin: GenkitPlugin | null = null; private gitHubCopilotPlugin: GitHubCopilotPlugin | null = null; + private livekitPlugin: LiveKitPlugin | null = null; private fluePlugin: FluePlugin | null = null; private langChainPlugin: LangChainPlugin | null = null; private langSmithPlugin: LangSmithPlugin | null = null; @@ -99,8 +101,27 @@ export class BraintrustPlugin extends BasePlugin { this.config = config; } + configureLiveKit(value: InstrumentationIntegrationsConfig["livekit"]) { + this.livekitPlugin?.configure(typeof value === "object" ? value : {}); + if (value === false) { + this.livekitPlugin?.disable(); + this.livekitPlugin = null; + } else if (!this.livekitPlugin) { + this.livekitPlugin = new LiveKitPlugin( + typeof value === "object" ? value : {}, + ); + this.livekitPlugin.enable(); + } + } + protected onEnable(): void { const integrations = this.config.integrations ?? {}; + if (integrations.livekit !== false) { + this.livekitPlugin = new LiveKitPlugin( + typeof integrations.livekit === "object" ? integrations.livekit : {}, + ); + this.livekitPlugin.enable(); + } // Enable OpenAI integration (default: true) if (integrations.openai !== false) { @@ -287,6 +308,8 @@ export class BraintrustPlugin extends BasePlugin { } protected onDisable(): void { + this.livekitPlugin?.disable(); + this.livekitPlugin = null; if (this.openaiPlugin) { this.openaiPlugin.disable(); this.openaiPlugin = null; diff --git a/js/src/instrumentation/config.ts b/js/src/instrumentation/config.ts index ef6b7605f..7e07ea42e 100644 --- a/js/src/instrumentation/config.ts +++ b/js/src/instrumentation/config.ts @@ -1,3 +1,4 @@ +import type { LiveKitOptions } from "./livekit/options"; export type SpanExportData = Record; export interface SpanCustomizer { @@ -23,6 +24,7 @@ export interface SpanCustomizer { } export interface InstrumentationIntegrationsConfig { + livekit?: boolean | LiveKitOptions; openai?: boolean; anthropic?: boolean; vercel?: boolean; @@ -84,6 +86,8 @@ const envIntegrationAliases: Record< string, keyof InstrumentationIntegrationsConfig > = { + livekit: "livekit", + "@livekit/agents": "livekit", openai: "openai", "openai-codex": "openaiCodexSDK", "openai-codex-sdk": "openaiCodexSDK", @@ -175,6 +179,7 @@ export function getDefaultInstrumentationIntegrations(): Record< boolean > { return { + livekit: true, openai: true, openaiCodexSDK: true, anthropic: true, diff --git a/js/src/instrumentation/livekit/audio.ts b/js/src/instrumentation/livekit/audio.ts new file mode 100644 index 000000000..98ff4bfff --- /dev/null +++ b/js/src/instrumentation/livekit/audio.ts @@ -0,0 +1,8 @@ +import type * as audio from "../../audio"; + +/** Shared recorder types used by the LiveKit integration. */ +export type { RecordingOptions, Packet, Selection } from "../../audio"; +export type AudioRecordingModule = typeof audio; +export type Recording = ReturnType< + AudioRecordingModule["createAudioRecording"] +>; diff --git a/js/src/instrumentation/livekit/capture-state.ts b/js/src/instrumentation/livekit/capture-state.ts new file mode 100644 index 000000000..5b7a388ac --- /dev/null +++ b/js/src/instrumentation/livekit/capture-state.ts @@ -0,0 +1,70 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import type { Capture, Packet } from "./runtime"; +const MAX_PACKETS = 100000; +export function omit(c: Capture, reason: string) { + c.recording.stop(reason); +} +export function release(c: Capture) { + c.inputStream = undefined; +} +export function advance(c: Capture) { + const wall = Date.now() - c.origin - 1000; + c.recording.advance( + Math.min( + wall, + c.user ? (c.inputEnd ?? 0) : wall, + ...c.outputHolds.values(), + ), + ); +} +export function copyFrame(c: Capture, frame: any): Int16Array | undefined { + if (c.closed || c.recording.reason) return; + if ( + !(frame?.data instanceof Int16Array) || + !Number.isInteger(frame.sampleRate) || + frame.sampleRate < 8000 || + frame.sampleRate > 96000 || + ![1, 2].includes(frame.channels) || + frame.data.length % frame.channels + ) { + omit(c, "unsupported_frame_format"); + return; + } + if (!frame.data.length) return; + return c.recording.copy(frame.data); +} +export function packet(c: Capture, p: Packet): boolean { + return c.recording.append(p); +} +export function select( + c: Capture, + owner: string | undefined, + start: number, + end: number, + channel: number, +) { + if (!owner || !(end > start)) return; + const list = c.selections.get(owner) ?? []; + const previous = list.at(-1); + if ( + previous && + previous.channel_index === channel && + start >= previous.start_offset_ms && + start <= previous.end_offset_ms + 1 / 24 + ) { + previous.end_offset_ms = Math.max(previous.end_offset_ms, end); + return; + } + if (list.length >= MAX_PACKETS) { + omit(c, "selection_limit"); + return; + } + list.push({ + recording_span_id: c.row.span.spanId, + recording_id: "call", + start_offset_ms: start, + end_offset_ms: end, + channel_index: channel, + }); + c.selections.set(owner, list); +} diff --git a/js/src/instrumentation/livekit/capture.test.ts b/js/src/instrumentation/livekit/capture.test.ts new file mode 100644 index 000000000..82b08399d --- /dev/null +++ b/js/src/instrumentation/livekit/capture.test.ts @@ -0,0 +1,368 @@ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ +import { EventEmitter } from "node:events"; +import { afterEach, beforeEach, expect, test, vi } from "vitest"; +import { + createAudioRecording, + timeline, + type RecordingOptions, +} from "../../audio/index"; +import * as audioWorker from "../../audio/worker"; +import { encodeCall } from "../../audio/pcm"; +import { mergeSelections } from "../../audio/selections"; +import { instrumentInput, instrumentOutput, release } from "./capture"; +import type { Capture } from "./runtime"; +type AudioFile = { bytes: Uint8Array; durationMs: number }; +const captures: Capture[] = []; +beforeEach(() => { + // Core-only test jobs do not build the optional audio worker. Keep real WAV + // encoding here; worker execution is covered by audio tests and LiveKit E2E. + vi.spyOn(audioWorker, "createEncoder").mockReturnValue( + async (packets, durationMs) => ({ + ...encodeCall(packets, durationMs), + mimeType: "audio/wav", + sampleRate: 24000, + }), + ); +}); +function capture( + options: RecordingOptions = {}, +): Capture & { files: AudioFile[] } { + const files: AudioFile[] = []; + const c: Capture & { files: AudioFile[] } = { + files, + timeline, + session: { + activity: { + currentSpeech: { + _agentTurnSpan: { spanContext: () => ({ spanId: "turn" }) }, + }, + }, + }, + row: { span: { spanId: "session" } } as any, + user: true, + agent: true, + origin: Date.now() - 100, + recording: createAudioRecording({ + options, + span: { spanId: "session", log: () => {} }, + flush: async () => {}, + snapshot: () => ({ + origin: c.origin, + basis: "test", + source: (channel_index) => ({ channel_index }), + }), + createAttachment: ({ data }) => ({ + reference: {}, + upload: async () => { + files.push({ bytes: data, durationMs: (data.length - 44) / 96 }); + return { upload_status: "done" }; + }, + }), + }), + inputTimeline: [], + inputDurationMs: 0, + outputHolds: new Map(), + closed: false, + selections: new Map(), + events: new Map(), + cleanups: [], + }; + captures.push(c); + return c; +} +const frame = (samples = 480, value = 1234) => ({ + data: new Int16Array(samples).fill(value), + sampleRate: 24000, + channels: 1, +}); +afterEach(async () => { + for (const c of captures.splice(0)) { + for (const f of c.cleanups) f(); + await c.recording.finish(); + release(c); + } + vi.restoreAllMocks(); +}); +test("input tap preserves read values, cancellation and locks; copies mutable PCM", async () => { + const c = capture(), + f = frame(); + let cancelled = false; + const stream = new ReadableStream({ + start(ctrl) { + ctrl.enqueue(f); + }, + cancel() { + cancelled = true; + }, + }); + instrumentInput(c, stream); + const reader = stream.getReader(); + expect((await reader.read()).value).toBe(f); + f.data.fill(0); + await c.recording.finish(); + expect( + new DataView(c.files[0].bytes.buffer).getInt16( + c.files[0].bytes.length - 4, + true, + ), + ).toBe(1234); + await reader.cancel(); + reader.releaseLock(); + expect(cancelled).toBe(true); + expect(stream.locked).toBe(false); +}); +test("disabled capture does not wrap input or output", () => { + const c = capture({ segmentDurationSeconds: 0.02 }); + c.user = false; + c.agent = false; + const stream = new ReadableStream(), + getReader = stream.getReader; + const sink = new EventEmitter() as any; + sink.captureFrame = async () => {}; + const original = sink.captureFrame; + instrumentInput(c, stream); + instrumentOutput(c, sink, false); + expect(stream.getReader).toBe(getReader); + expect(sink.captureFrame).toBe(original); +}); +test("interruption includes only sink progress ranges, excluding queued tail and pauses", async () => { + const c = capture(), + sink = new EventEmitter() as any; + sink.captureFrame = async () => {}; + sink.flush = () => {}; + sink.clearBuffer = () => {}; + instrumentOutput(c, sink, false); + await sink.captureFrame(frame(2400)); // 100ms generated + sink.emit("playbackProgressed", { + startedAt: c.origin + 10, + offset: 0, + duration: 20, + }); + sink.emit("playbackProgressed", { + startedAt: c.origin + 60, + offset: 40, + duration: 20, + }); + sink.emit("playbackFinished", { + playbackPosition: 0.04, + interrupted: true, + synchronizedTranscript: "private", + }); + const ranges = mergeSelections(c.selections.get("turn")!); + expect(ranges.map((s) => [s.start_offset_ms, s.end_offset_ms])).toEqual([ + [10, 30], + [60, 80], + ]); + + expect( + c.events.get("turn")![0].attributes.synchronizedTranscript, + ).toBeUndefined(); + await c.recording.finish(); + const wav = c.files[0]; + expect(wav.durationMs).toBe(80); + const view = new DataView(wav.bytes.buffer); + expect(view.getUint16(22, true)).toBe(2); + expect(view.getInt16(44 + 240 * 4 + 2, true)).toBe(1234); + expect(view.getInt16(44 + 960 * 4 + 2, true)).toBe(0); +}); +test("synchronous completion during an in-flight capture is settled after acceptance", async () => { + const c = capture(), + sink = new EventEmitter() as any; + sink.captureFrame = async () => { + sink.emit("playbackStarted", { createdAt: c.origin + 10 }); + sink.emit("playbackFinished", { + playbackPosition: 0.02, + interrupted: false, + }); + }; + instrumentOutput(c, sink, true); + await sink.captureFrame(frame()); + await c.recording.finish(); + expect(c.files).toHaveLength(1); + expect(c.selections.get("turn")![0].end_offset_ms).toBe(30); +}); +test("failed capture preserves the original exception and cannot claim retained output", async () => { + const c = capture(), + sink = new EventEmitter() as any, + error = new Error("sink failure"); + sink.captureFrame = async () => { + throw error; + }; + instrumentOutput(c, sink, false); + await expect(sink.captureFrame(frame())).rejects.toBe(error); + expect(c.recording.reason).toBe("output_capture_failed"); + await c.recording.finish(); + expect(c.files).toHaveLength(0); +}); +test("unknown interrupted playout is omitted rather than guessed from span timestamps", async () => { + const c = capture(), + sink = new EventEmitter() as any; + sink.captureFrame = async () => {}; + instrumentOutput(c, sink, false); + await sink.captureFrame(frame()); + sink.emit("playbackFinished", { playbackPosition: 0.01, interrupted: true }); + expect(c.recording.reason).toBe("output_playout_mapping_unavailable"); +}); +test("byte budget stops capture and releases staged output without changing I/O", async () => { + const c = capture({ maxBufferBytes: 960 }), + sink = new EventEmitter() as any; + let accepted = 0; + sink.captureFrame = async () => { + accepted++; + }; + instrumentOutput(c, sink, false); + await sink.captureFrame(frame()); + await sink.captureFrame(frame()); + expect(accepted).toBe(2); + expect(c.recording.reason).toBe("capture_byte_limit"); + sink.emit("playbackFinished", { playbackPosition: 0.04, interrupted: false }); + await c.recording.finish(); + expect(c.files).toHaveLength(0); +}); +test("buffered input frames retain all samples instead of overwriting equal arrival times", async () => { + const c = capture(); + const stream = new ReadableStream({ + start(controller) { + controller.enqueue(frame(480, 1000)); + controller.enqueue(frame(480, 2000)); + controller.close(); + }, + }); + instrumentInput(c, stream); + const reader = stream.getReader(); + await reader.read(); + await reader.read(); + reader.releaseLock(); + await c.recording.finish(); + const wav = c.files[0], + view = new DataView(wav.bytes.buffer); + const last = wav.bytes.length - 4; + expect(view.getInt16(last, true)).toBe(2000); + expect(view.getInt16(last - 480 * 4, true)).toBe(1000); +}); +test("input source replacement is explicit and concurrent sessions cannot steal capture", () => { + const a = capture(), + b = capture(); + const stream = new ReadableStream(); + instrumentInput(a, stream); + instrumentInput(b, stream); + expect(a.recording.reason).toBe("shared_input_unsupported"); + expect(b.recording.reason).toBe("shared_input_unsupported"); + const c = capture(); + instrumentInput(c, new ReadableStream()); + instrumentInput(c, new ReadableStream()); + expect(c.recording.reason).toBe("input_source_change_unsupported"); +}); + +test("confirmed playback rotates during a still-open utterance and interruption discards only its queued tail", async () => { + const c = capture({ segmentDurationSeconds: 0.02 }); + c.user = false; + c.origin = Date.now() - 5000; + const sink = new EventEmitter() as any; + sink.captureFrame = async () => {}; + instrumentOutput(c, sink, false); + await sink.captureFrame(frame()); + sink.emit("playbackProgressed", { + startedAt: c.origin, + offset: 0, + duration: 20, + }); + await c.recording.drain(); + expect(c.files).toMatchObject([{ durationMs: 20 }]); + expect(c.closed).toBe(false); + await sink.captureFrame(frame()); + sink.emit("playbackFinished", { playbackPosition: 0.02, interrupted: true }); + await c.recording.finish(); + expect(c.files).toMatchObject([{ durationMs: 20 }]); + expect(c.selections.get("turn")).toMatchObject([ + { start_offset_ms: 0, end_offset_ms: 20 }, + ]); +}); + +test("continuous input uses sample time despite late delivery and preserves actual silent samples", async () => { + let now = 10020; + const clock = vi.spyOn(Date, "now").mockImplementation(() => now); + const c = capture(); + c.origin = 10000; + const stream = new ReadableStream({ + start(controller) { + for (const value of [1234, 0, 2345]) + controller.enqueue(frame(480, value)); + controller.close(); + }, + }); + try { + instrumentInput(c, stream); + const reader = stream.getReader(); + for (const time of [10020, 10041, 10062]) { + now = time; + await reader.read(); + } + reader.releaseLock(); + await c.recording.finish(); + const wav = new DataView(c.files[0].bytes.buffer); + expect((c.files[0].bytes.length - 44) / 4).toBe(1440); + for (let i = 0; i < 1440; i++) + expect(wav.getInt16(44 + i * 4, true)).toBe( + i < 480 ? 1234 : i < 960 ? 0 : 2345, + ); + } finally { + clock.mockRestore(); + } +}); + +test("shared output stops both recordings without changing application playback", async () => { + const a = capture(), + b = capture(); + a.user = b.user = false; + const sink = new EventEmitter() as any; + const delivered: unknown[] = []; + sink.captureFrame = async (value: unknown) => { + delivered.push(value); + return "played"; + }; + instrumentOutput(a, sink, false); + instrumentOutput(b, sink, false); + const audio = frame(); + expect(await sink.captureFrame(audio)).toBe("played"); + sink.emit("playbackFinished", { playbackPosition: 0.02, interrupted: false }); + await Promise.all([a.recording.finish(), b.recording.finish()]); + expect(delivered).toEqual([audio]); + expect(a.files).toEqual([]); + expect(b.files).toEqual([]); + expect(a.recording.reason).toBe("shared_output_unsupported"); + expect(b.recording.reason).toBe("shared_output_unsupported"); +}); + +test("multiple playback runs in one assistant turn keep selections on each speaking span", async () => { + const c = capture(); + const sink = Object.assign(new EventEmitter(), { + captureFrame: async (_frame: unknown) => {}, + flush() {}, + }); + instrumentOutput(c, sink, false); + for (const [id, start] of [ + ["ack", 10], + ["answer", 100], + ] as const) { + c.session.agentSpeakingSpan = { spanContext: () => ({ spanId: id }) }; + await sink.captureFrame(frame(480)); + sink.emit("playbackProgressed", { + startedAt: c.origin + start, + offset: 0, + duration: 20, + }); + sink.emit("playbackFinished", { + playbackPosition: 0.02, + interrupted: false, + }); + sink.flush(); + } + expect(c.selections.get("ack")).toMatchObject([ + { start_offset_ms: 10, end_offset_ms: 30 }, + ]); + expect(c.selections.get("answer")).toMatchObject([ + { start_offset_ms: 100, end_offset_ms: 120 }, + ]); + expect(c.selections.get("turn")).toHaveLength(2); +}); diff --git a/js/src/instrumentation/livekit/capture.ts b/js/src/instrumentation/livekit/capture.ts new file mode 100644 index 000000000..2c9f0fa20 --- /dev/null +++ b/js/src/instrumentation/livekit/capture.ts @@ -0,0 +1,83 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { observe, type Capture } from "./runtime"; +import { omit, copyFrame, packet, advance } from "./capture-state"; +export { select, release } from "./capture-state"; +export { instrumentOutput } from "./playback"; +const readers = new WeakMap(); +// Tap the reader already requested by LiveKit. No tee, prefetch, or extra consumer. +// Keeping the original stream lets LiveKit release/reacquire its lock on handoff. +export function instrumentInput(c: Capture, stream: any) { + if (!c.user || c.closed || !stream?.getReader) return; + if (c.inputStream && c.inputStream !== stream) { + omit(c, "input_source_change_unsupported"); + return; + } + const previous = readers.get(stream); + if (previous && previous !== c && !previous.closed) { + omit(previous, "shared_input_unsupported"); + omit(c, "shared_input_unsupported"); + return; + } + c.inputStream = stream; + readers.set(stream, c); + const marker = Symbol.for("braintrust.livekit.input"); + if (stream[marker]) return; + stream[marker] = true; + const getReader = stream.getReader; + stream.getReader = function (...args: any[]) { + const reader: any = Reflect.apply(getReader, this, args); + const read = reader.read; + reader.read = async function (...readArgs: any[]) { + const value: any = await Reflect.apply(read, this, readArgs); + observe(() => { + const owner = readers.get(stream); + if (!owner || owner.closed || value.done) return; + const frame = value.value; + const pcm = copyFrame(owner, frame); + if (!pcm) return; + const duration = owner.timeline.pcmBytesToMs( + pcm.byteLength, + frame.sampleRate, + frame.channels, + ); + // This input is an ordered PCM stream, including silent samples. Anchor + // once to the session epoch; scheduler jitter is not missing audio. + // Source replacement is rejected above rather than joining unrelated clocks. + const at = + owner.inputEnd ?? Math.max(0, Date.now() - owner.origin - duration); + owner.inputEnd = at + duration; + if ( + packet(owner, { + pcm, + rate: frame.sampleRate, + channels: frame.channels, + channel: 0, + at, + }) + ) { + const previous = owner.inputTimeline.at(-1); + if ( + previous && + previous.rate === frame.sampleRate && + previous.channels === frame.channels + ) + previous.duration += duration; + else + owner.inputTimeline.push({ + at, + duration, + rate: frame.sampleRate, + channels: frame.channels, + sampleStart: owner.inputDurationMs, + }); + owner.inputDurationMs += duration; + if (owner.inputTimeline.length > 100000) + omit(owner, "input_alignment_limit"); + advance(owner); + } + }); + return value; + }; + return reader; + }; +} diff --git a/js/src/instrumentation/livekit/node/audio-options.test.ts b/js/src/instrumentation/livekit/node/audio-options.test.ts new file mode 100644 index 000000000..e550dd8dd --- /dev/null +++ b/js/src/instrumentation/livekit/node/audio-options.test.ts @@ -0,0 +1,64 @@ +import { beforeEach, afterEach, expect, test, vi } from "vitest"; +import * as extension from "../../../audio/index"; +import { resolveAudioOptions } from "./audio-options"; +beforeEach(() => { + for (const key of [ + "BRAINTRUST_CAPTURE_ATTACHMENTS", + "BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS", + "BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS", + ]) + vi.stubEnv(key, undefined); +}); +afterEach(() => { + vi.unstubAllEnvs(); + vi.restoreAllMocks(); +}); +test("disabled capture never loads the recorder, even when installed and environment-enabled", () => { + vi.stubEnv("BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS", "true"); + const load = vi.fn(() => extension); + expect(resolveAudioOptions({ captureAudio: false }, load)).toEqual({ + user: false, + agent: false, + }); + expect(load).not.toHaveBeenCalled(); +}); +test.each(["true", "1", " TRUE "])( + "participant options override the %s audio environment opt-in", + (value) => { + vi.stubEnv("BRAINTRUST_CAPTURE_ATTACHMENTS", "false"); + vi.stubEnv("BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS", value); + vi.stubEnv("BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS", "false"); + const load = vi.fn(() => extension); + expect(resolveAudioOptions({}, load)).toEqual({ + user: false, + agent: true, + extension, + }); + expect( + resolveAudioOptions( + { captureAudio: false, captureAgentAudio: true }, + load, + ), + ).toEqual({ user: false, agent: true, extension }); + }, +); +test("enabled capture uses the SDK recorder without an extension", () => { + expect(resolveAudioOptions({ captureAudio: true })).toMatchObject({ + user: true, + agent: true, + extension, + }); +}); + +test("generic attachment capture does not enable voice recording or load the extension", () => { + vi.stubEnv("BRAINTRUST_CAPTURE_ATTACHMENTS", "true"); + const load = vi.fn(() => extension); + expect(resolveAudioOptions({}, load)).toEqual({ user: false, agent: false }); + expect(load).not.toHaveBeenCalled(); + vi.stubEnv("BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS", "true"); + expect(resolveAudioOptions({}, load)).toEqual({ + user: true, + agent: false, + extension, + }); +}); diff --git a/js/src/instrumentation/livekit/node/audio-options.ts b/js/src/instrumentation/livekit/node/audio-options.ts new file mode 100644 index 000000000..2ee922077 --- /dev/null +++ b/js/src/instrumentation/livekit/node/audio-options.ts @@ -0,0 +1,25 @@ +import type { AudioRecordingModule } from "../audio"; +import * as audio from "../../../audio"; +import type { LiveKitOptions } from "../options"; + +export function resolveAudioOptions( + options: LiveKitOptions, + loadRecording: () => AudioRecordingModule = () => audio, +) { + const flag = (name: string) => { + const value = process.env[name]; + return ( + value !== undefined && ["1", "true"].includes(value.trim().toLowerCase()) + ); + }; + const user = + options.captureUserAudio ?? + options.captureAudio ?? + flag("BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS"); + const agent = + options.captureAgentAudio ?? + options.captureAudio ?? + flag("BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS"); + if (!user && !agent) return { user, agent }; + return { user, agent, extension: loadRecording() }; +} diff --git a/js/src/instrumentation/livekit/node/auto.ts b/js/src/instrumentation/livekit/node/auto.ts new file mode 100644 index 000000000..aa451f3bd --- /dev/null +++ b/js/src/instrumentation/livekit/node/auto.ts @@ -0,0 +1,105 @@ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions -- structural boundary for the pinned LiveKit/OTel versions. */ +import { createRequire } from "node:module"; +import { join } from "node:path"; +import { currentLogger } from "../../../logger"; +import { runtime, observe, setPreparation } from "../runtime"; +import type { LiveKitOptions } from "../options"; +import { LiveKitSpanProcessor } from "../processor"; + +const observed = Symbol.for("braintrust.livekit.observed-tracer"); + +/** Only called by LiveKit's native tracer hooks, never by ordinary SDK startup. */ +function prepareLiveKit( + dynamic: any, + options: LiveKitOptions, + allowContent: boolean, +) { + const active = runtime(); + // A manually installed processor already receives native span callbacks. + if (active && !active.automatic) return true; + const logger = currentLogger(); + if (!logger) return false; + let processor = active as + | (LiveKitSpanProcessor & { automatic: boolean }) + | undefined; + const pii = process.env.LIVEKIT_TELEMETRY_ALLOW_PII; + const content = + process.env.OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT; + const captureContent = + (options.captureContent ?? true) && + allowContent && + content !== "false" && + !["0", "false", "no", "off"].includes(pii?.trim().toLowerCase() ?? ""); + + // With no provider configured, use the OTel dependency already installed by + // LiveKit. Register only against an undelegated API proxy. Existing providers, + // samplers, processors, and LiveKit Cloud provider setup remain untouched. + const provider = dynamic.getProvider(); + if ( + typeof provider.getDelegateTracer === "function" && + provider.getDelegateTracer("livekit-agents") === undefined + ) { + const app = createRequire(join(process.cwd(), "package.json")); + let entry: string; + try { + entry = app.resolve("@opentelemetry/sdk-trace-node"); + } catch { + entry = createRequire(app.resolve("@livekit/agents")).resolve( + "@opentelemetry/sdk-trace-node", + ); + } + const { NodeTracerProvider } = app(entry); + const owned = new NodeTracerProvider(); + owned.register(); + process.once("beforeExit", () => { + void owned.shutdown().catch(() => {}); + }); + } + if (!processor) { + processor = Object.assign( + new LiveKitSpanProcessor({ logger, ...options, captureContent }), + { automatic: true }, + ); + const owned = processor; + process.once("beforeExit", () => { + void owned.shutdown().catch(() => {}); + }); + } + processor.setContentCapture(captureContent); + const tracer = dynamic.getTracer(); + if (tracer[observed]) return true; + const target = processor; + const track = (span: any) => { + if (!span.isRecording()) return span; + observe(() => target.onStart(span)); + const end = span.end; + let ended = false; + span.end = function (...args: any[]) { + try { + return end.apply(this, args); + } finally { + if (!ended) { + ended = true; + // Native processors (including LiveKit redaction) see the span first. + observe(() => target.onEnd(span)); + } + } + }; + return span; + }; + // Decorate only LiveKit's tracer, not the application provider or global API. + dynamic.tracer = { + [observed]: true, + startSpan: (...args: any[]) => track(tracer.startSpan(...args)), + startActiveSpan: (...args: any[]) => { + const callback = args[args.length - 1]; + args[args.length - 1] = (span: any) => callback(track(span)); + return tracer.startActiveSpan(...args); + }, + }; + return true; +} + +export function configureLiveKit(): void { + setPreparation(prepareLiveKit); +} diff --git a/js/src/instrumentation/livekit/options.ts b/js/src/instrumentation/livekit/options.ts new file mode 100644 index 000000000..5c258901e --- /dev/null +++ b/js/src/instrumentation/livekit/options.ts @@ -0,0 +1,9 @@ +import type { RecordingOptions } from "./audio"; + +export interface LiveKitOptions { + captureContent?: boolean; + captureAudio?: boolean; + captureUserAudio?: boolean; + captureAgentAudio?: boolean; + recording?: RecordingOptions; +} diff --git a/js/src/instrumentation/livekit/playback.ts b/js/src/instrumentation/livekit/playback.ts new file mode 100644 index 000000000..f9800aa2a --- /dev/null +++ b/js/src/instrumentation/livekit/playback.ts @@ -0,0 +1,295 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { nativeId, observe, type Capture, type Packet } from "./runtime"; +import { omit, copyFrame, packet, advance, select } from "./capture-state"; +const MAX_PACKETS = 100000; +const outputs = new WeakMap(); +type PlaybackRun = { + frames: Packet[]; + duration: number; + owner?: string; + speaking?: string; + unclaimed: { start: number; end: number }[]; + started?: number; + ranges: { offset: number; duration: number; startedAt: number }[]; + finished?: any; + inFlight: number; + hold: number; + processed: number; + hadProgress: boolean; +}; +export function instrumentOutput( + c: Capture, + sink: any, + captureContent: boolean, +) { + if (!c.agent || c.closed || !sink?.captureFrame || !sink.on) return; + if (outputs.get(sink) === c) return; + const previous = outputs.get(sink); + if (previous) { + if (!previous.closed) omit(previous, "shared_output_unsupported"); + omit(c, "shared_output_unsupported"); + return; + } + outputs.set(sink, c); + let current: PlaybackRun | undefined; + const segments: PlaybackRun[] = []; + function settle(segment: PlaybackRun) { + if (segment.inFlight || (!segment.finished && !segment.ranges.length)) + return; + const index = segments.indexOf(segment); + if (index < 0) return; + const finishing = !!segment.finished; + if (finishing) { + segments.splice(index, 1); + if (current === segment) current = undefined; + } + if (c.closed || c.recording.reason) { + for (const frame of segment.frames) c.recording.release(frame.pcm); + segment.frames = []; + c.outputHolds.delete(segment); + return; + } + segment.speaking ??= nativeId(c.session.agentSpeakingSpan); + const ev = segment.finished; + const ranges = segment.ranges.splice(0); + if ( + finishing && + !segment.hadProgress && + segment.started !== undefined && + !ev.interrupted + ) + ranges.push({ + startedAt: segment.started, + offset: 0, + duration: Math.min(segment.duration, ev.playbackPosition * 1000), + }); + if ( + finishing && + !ranges.length && + !segment.hadProgress && + segment.duration + ) { + omit(c, "output_playout_mapping_unavailable"); + for (const f of segment.frames) c.recording.release(f.pcm); + segment.frames = []; + c.outputHolds.delete(segment); + return; + } + const moved = new Set(); + for (const range of ranges) { + if ( + ![range.startedAt, range.offset, range.duration].every( + Number.isFinite, + ) || + range.offset < segment.processed - c.timeline.samplesToMs(1) || + range.duration < 0 + ) { + omit(c, "invalid_playout_range"); + break; + } + const end = range.offset + range.duration; + for (const frame of segment.frames) { + const duration = c.timeline.pcmBytesToMs( + frame.pcm.byteLength, + frame.rate, + frame.channels, + ); + const from = Math.max(frame.at, range.offset), + to = Math.min(frame.at + duration, end); + if (to <= from) continue; + const lo = + Math.round(c.timeline.msToSamples(from - frame.at, frame.rate)) * + frame.channels; + const hi = + Math.round(c.timeline.msToSamples(to - frame.at, frame.rate)) * + frame.channels; + const at = Math.max( + 0, + range.startedAt - c.origin + from - range.offset, + ); + const pcm = frame.pcm.subarray(lo, hi); + const whole = lo === 0 && hi === frame.pcm.length; + if (whole) moved.add(frame.pcm.buffer); + const accepted = whole + ? packet(c, { ...frame, pcm, at }) + : c.recording.record({ ...frame, pcm, at }); + if (accepted) { + select( + c, + segment.owner, + at, + at + + c.timeline.pcmBytesToMs( + pcm.byteLength, + frame.rate, + frame.channels, + ), + 1, + ); + const end = + at + + c.timeline.pcmBytesToMs(pcm.byteLength, frame.rate, frame.channels); + const previous = segment.unclaimed.at(-1); + if ( + previous && + at >= previous.start && + at <= previous.end + c.timeline.samplesToMs(1) + ) + previous.end = Math.max(previous.end, end); + else if (segment.unclaimed.length < MAX_PACKETS) + segment.unclaimed.push({ start: at, end }); + else omit(c, "selection_limit"); + } + } + segment.processed = end; + // Only confirmed output advances this hold. Generated/queued audio never does. + segment.hold = Math.max(0, range.startedAt - c.origin + range.duration); + c.outputHolds.set(segment, segment.hold); + } + if (segment.speaking) + for (const range of segment.unclaimed.splice(0)) + select(c, segment.speaking, range.start, range.end, 1); + segment.frames = segment.frames.filter((frame) => { + const consumed = + finishing || + c.recording.reason || + frame.at + + c.timeline.pcmBytesToMs( + frame.pcm.byteLength, + frame.rate, + frame.channels, + ) <= + segment.processed + c.timeline.samplesToMs(1); + if (consumed && !moved.has(frame.pcm.buffer)) + c.recording.release(frame.pcm); + return !consumed; + }); + if (finishing) { + c.outputHolds.delete(segment); + if (segment.owner) { + const events = c.events.get(segment.owner) ?? []; + if (events.length < 256) + events.push({ + name: "playbackFinished", + time_unix_ms: Date.now(), + attributes: { + playbackPosition: ev.playbackPosition, + interrupted: ev.interrupted, + ...(captureContent && ev.synchronizedTranscript !== undefined + ? { synchronizedTranscript: ev.synchronizedTranscript } + : {}), + }, + }); + c.events.set(segment.owner, events); + } + c.publishSelections?.(); + } + advance(c); + } + const started = (ev: any) => + observe(() => { + const s = segments[0]; + if (s) s.started = ev.createdAt; + }); + const progressed = (ev: any) => + observe(() => { + const s = segments[0]; + if (s && s.ranges.length < MAX_PACKETS) { + s.hadProgress = true; + s.ranges.push({ + startedAt: ev.startedAt, + offset: ev.offset, + duration: ev.duration, + }); + settle(s); + } else if (s) omit(c, "playout_range_limit"); + }); + const finished = (ev: any) => + observe(() => { + const s = segments.find((s) => !s.finished); + if (s) { + s.finished = ev; + settle(s); + } + }); + sink.on("playbackStarted", started); + sink.on("playbackProgressed", progressed); + sink.on("playbackFinished", finished); + c.cleanups.push(() => { + sink.off?.("playbackStarted", started); + sink.off?.("playbackProgressed", progressed); + sink.off?.("playbackFinished", finished); + if (segments.some((s) => s.frames.length)) + omit(c, "unfinished_output_segment"); + for (const segment of segments) + for (const frame of segment.frames) c.recording.release(frame.pcm); + segments.splice(0); + c.outputHolds.clear(); + current = undefined; + }); + const captureFrame = sink.captureFrame; + sink.captureFrame = async function (frame: any, ...args: any[]) { + let segment: PlaybackRun | undefined; + let pcm: Int16Array | undefined; + observe(() => { + if (c.closed || c.recording.reason) return; + if (!current) { + current = { + frames: [], + unclaimed: [], + duration: 0, + owner: nativeId(c.session.activity?.currentSpeech?._agentTurnSpan), + ranges: [], + inFlight: 0, + hold: Math.max(0, Date.now() - c.origin - 1000), + processed: 0, + hadProgress: false, + }; + segments.push(current); + c.outputHolds.set(current, current.hold); + } + segment = current; + segment.inFlight++; + pcm = copyFrame(c, frame); + }); + try { + const result = await Reflect.apply(captureFrame, this, [frame, ...args]); + observe(() => { + if (segment && pcm && !c.recording.reason) { + segment.frames.push({ + pcm, + rate: frame.sampleRate, + channels: frame.channels, + channel: 1, + at: segment.duration, + }); + segment.duration += c.timeline.pcmBytesToMs( + pcm.byteLength, + frame.sampleRate, + frame.channels, + ); + } + }); + return result; + } catch (error) { + observe(() => omit(c, "output_capture_failed")); + throw error; + } finally { + observe(() => { + if (segment) { + segment.inFlight--; + settle(segment); + } + if (pcm && c.recording.reason) c.recording.release(pcm); + }); + } + }; + for (const method of ["flush", "clearBuffer"] as const) { + const original = sink[method]; + if (typeof original !== "function") continue; + sink[method] = function (...args: any[]) { + current = undefined; + return Reflect.apply(original, this, args); + }; + } +} diff --git a/js/src/instrumentation/livekit/processor.test.ts b/js/src/instrumentation/livekit/processor.test.ts new file mode 100644 index 000000000..c36f0eb62 --- /dev/null +++ b/js/src/instrumentation/livekit/processor.test.ts @@ -0,0 +1,639 @@ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ +import { afterEach, expect, test, vi } from "vitest"; +import { EventEmitter } from "node:events"; +import { configureNode } from "../../node/config"; +configureNode(); +import { LiveKitSpanProcessor } from "./processor"; +import * as audioOptions from "./node/audio-options"; +import * as audioExtension from "../../audio/index"; +import * as audioWorker from "../../audio/worker"; +import { encodeCall } from "../../audio/pcm"; +import { Attachment } from "../../logger"; +import { channel, defineInterceptor } from "../core/interceptor-definitions"; +import { traceAsyncCall } from "../core/tracing"; +let processor: LiveKitSpanProcessor | undefined; +afterEach(async () => { + await processor?.shutdown(); + processor = undefined; +}); +function fixture( + captureContent = false, + options: Partial[0]> = {}, +) { + const rows: { + args: any; + parent?: string; + logs: any[]; + end: any; + spanId: string; + }[] = []; + function owner(parent?: string): any { + return { + flush: async () => {}, + startSpan(args: any) { + const row = { + args, + parent, + logs: [] as any[], + end: undefined as any, + spanId: (rows.length + 1).toString(16).padStart(16, "0"), + }; + rows.push(row); + return { + ...owner(row.spanId), + spanId: row.spanId, + rootSpanId: "1234567890abcdef1234567890abcdef", + log(event: any) { + row.logs.push(event); + }, + end(event: { endTime?: number } = {}) { + row.end ??= { endTime: event.endTime ?? Date.now() / 1000 }; + return row.end.endTime; + }, + }; + }, + }; + } + processor = new LiveKitSpanProcessor({ + logger: owner(), + captureContent, + captureUserAudio: false, + captureAgentAudio: false, + ...options, + }); + const span = ( + id: string, + name: string, + parent?: string, + attributes: any = {}, + ) => ({ + name, + spanContext: () => ({ spanId: id, traceId: "trace" }), + parentSpanContext: parent ? { spanId: parent } : undefined, + startTime: [1, 0] as [number, number], + endTime: [2, 0] as [number, number], + attributes, + events: [], + status: { code: 0 }, + }); + return { rows, span, p: processor }; +} +test("content opt-out retains timing and IDs without logging transcript or tool content", () => { + const { rows, span, p } = fixture(false), + root = span("s", "agent_session"), + turn = span("t", "agent_turn", "s", { + "lk.pii.user_input": "secret", + "lk.speech_id": "speech", + "gen_ai.input.messages": "secret", + }); + p.onStart(root); + p.onStart(turn); + p.onEnd(turn); + p.onEnd(root); + expect(JSON.stringify(rows)).not.toContain("secret"); + expect(JSON.stringify(rows)).toContain("livekit.speech_id"); +}); +test("concurrent sessions keep parents separate; closing one does not clear another", () => { + const { rows, span, p } = fixture(), + a = span("a", "agent_session"), + b = span("b", "agent_session"), + child = span("t", "agent_turn", "a"); + p.onStart(a); + p.onStart(b); + p.onStart(child); + p.onEnd(a); + expect(rows[2].parent).toBe(rows[0].spanId); + const laterChild = span("later", "agent_turn", "b"); + p.onStart(laterChild); + p.onEnd(laterChild); + p.onEnd(child); + p.onEnd(b); + expect(rows[3].parent).toBe(rows[1].spanId); + expect(rows[3].end).toEqual({ endTime: 2 }); + expect(rows[1].end).toEqual({ endTime: 2 }); +}); +test("late tool completion keeps its native owner after the session ends", () => { + const { rows, span, p } = fixture(true); + const root = span("root", "agent_session"), + turn = span("turn", "agent_turn", "root"), + tool = span("tool", "function_tool", "turn", { + "gen_ai.tool.name": "late_tool", + "gen_ai.tool.call.result": '{"ok":true}', + }); + for (const s of [root, turn, tool]) p.onStart(s); + p.onEnd(turn); + p.onEnd(root); + expect(rows[2].end).toBeUndefined(); + p.onEnd(tool); + expect(rows[2].logs.find((event: any) => event.output)?.output).toEqual({ + ok: true, + }); + expect(rows[2].parent).toBe(rows[1].spanId); +}); +test("committed messages retain identity and honor content opt-out", () => { + const { rows, span, p } = fixture(false), + root = span("root", "agent_session"); + p.onStart(root); + p.conversation( + { sessionSpan: root }, + { type: "message", id: "item", role: "user", textContent: "private" }, + ); + p.onEnd(root); + expect(JSON.stringify(rows)).not.toContain("private"); +}); +test("inference suppression preserves results and leaves provider calls in user tools visible", async () => { + const { rows, span, p } = fixture(true); + const root = span("root", "agent_session"); + const turn = span("turn", "agent_turn", "root"); + p.onStart(root); + p.onStart(turn); + const channels = defineInterceptor("livekit-test-provider", { + request: channel<[], Promise>({ channelName: "request" }), + }); + const unsubscribe = channels.request.intercept((target, self, args) => + traceAsyncCall( + () => Reflect.apply(target, self, args), + { arguments: args }, + { + instrumentationName: "openai", + name: "provider-request", + type: "llm", + extractInput: () => ({ input: "request", metadata: undefined }), + extractOutput: (value) => value, + extractMetrics: () => ({}), + }, + ), + ); + try { + const request = () => + channels.request.invoke(async () => "answer", undefined, [], {}); + await p.scope(turn, async () => { + expect( + await p.inference(async () => { + await Promise.resolve(); + return request(); + }), + ).toBe("answer"); + expect(await request()).toBe("answer"); // e.g. a provider call inside a user tool + }); + expect( + rows.filter((row) => row.args.name === "provider-request"), + ).toHaveLength(1); + } finally { + unsubscribe(); + } + p.onEnd(turn); + p.onEnd(root); +}); + +test("common voice operations expose standard messages, metrics, and native provenance", () => { + const { rows, span, p } = fixture(true); + const root = span("s", "agent_session"); + const user = span("u", "user_turn", "s", { + "lk.pii.user_transcript": "Where is order 1042?", + }); + const turn = span("a", "agent_turn", "s"); + const model = span("m", "llm_node", "a", { + "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.provider.name": "openai", + "gen_ai.usage.input_tokens": 10, + "gen_ai.usage.output_tokens": 3, + "lk.response.ttft": 0.2, + "gen_ai.output.messages": JSON.stringify([ + { + role: "assistant", + parts: [ + { + type: "tool_call", + id: "call-1", + name: "lookup_order", + arguments: { order_id: "1042" }, + }, + ], + }, + ]), + }); + for (const s of [root, user, turn, model]) p.onStart(s); + for (const s of [model, user, turn, root]) p.onEnd(s); + expect(rows.map((r) => r.args.name)).toEqual([ + "livekit.agent_session", + "user_turn", + "agent_turn", + "llm_response", + ]); + expect(rows[1].logs.some((e) => e.input)).toBe(false); + expect( + rows[3].logs.some( + (e) => e.metrics?.tokens === 13 && e.metrics?.time_to_first_token === 0.2, + ), + ).toBe(true); + expect(rows[3].logs.some((e) => e.metadata?.model === "gpt-4.1-nano")).toBe( + true, + ); + expect( + rows[3].logs.some((e) => e.output?.[0]?.tool_calls?.[0]?.id === "call-1"), + ).toBe(true); + expect( + rows[3].logs.some((e) => e.metadata?.["turn.id"] === rows[2].spanId), + ).toBe(true); +}); +test("content opt-out also excludes system instructions and tool definitions", () => { + const { rows, span, p } = fixture(false); + const root = span("s", "agent_session"); + const model = span("m", "llm_node", "s", { + "gen_ai.system_instructions": "private instructions", + "gen_ai.tool.definitions": "private definitions", + }); + p.onStart(root); + p.onStart(model); + p.onEnd(model); + p.onEnd(root); + expect(JSON.stringify(rows)).not.toContain("private"); +}); + +test("tool-only responses retain tool requests on the model without inventing speech", () => { + const { rows, span, p } = fixture(true); + const root = span("s", "agent_session"), + turn = span("a", "agent_turn", "s"), + model = span("m", "llm_node", "a", { + "gen_ai.output.messages": JSON.stringify([ + { + role: "assistant", + parts: [ + { + type: "tool_call", + id: "call-1", + name: "lookup_order", + arguments: { order_id: "1042" }, + }, + ], + }, + ]), + }); + for (const s of [root, turn, model]) p.onStart(s); + for (const s of [model, turn, root]) p.onEnd(s); + expect( + rows[2].logs.some((e) => e.output?.[0]?.tool_calls?.[0]?.id === "call-1"), + ).toBe(true); +}); + +test("upload failure corrects recording descriptors and selections even when logger flush resolves", async () => { + // Exporter-level tests cover rejection/status propagation; this checks wiring. + // Exercise real encoding/export without requiring a built worker in core tests. + const encoder = vi + .spyOn(audioWorker, "createEncoder") + .mockReturnValue(async (packets, durationMs) => ({ + ...encodeCall(packets, durationMs), + mimeType: "audio/wav", + sampleRate: 24000, + })); + const resolve = audioOptions.resolveAudioOptions; + const load = vi + .spyOn(audioOptions, "resolveAudioOptions") + .mockImplementation((options) => resolve(options, () => audioExtension)); + const upload = vi.spyOn(Attachment.prototype, "upload").mockResolvedValue({ + upload_status: "error", + error_message: "upload unavailable", + }); + try { + const { p, rows, span } = fixture(false, { captureUserAudio: true }); + const root = span("session", "agent_session"), + turn = span("user", "user_turn", "session"); + p.onStart(root); + p.onStart(turn); + const session = { sessionSpan: root }, + activity = { agentSession: session }; + p.begin(session); + const source = new ReadableStream({ + start(controller) { + controller.enqueue({ + data: new Int16Array(480).fill(1234), + sampleRate: 24000, + channels: 1, + }); + controller.close(); + }, + }); + p.input(activity, source); + const reader = source.getReader(); + await reader.read(); + reader.releaseLock(); + p.userTurn(activity, { + userTurnSpan: turn, + startedSpeakingAt: Date.now() - 1000, + stoppedSpeakingAt: Date.now() + 1000, + }); + p.onEnd(turn); + p.onEnd(root); + await p.forceFlush(); + const descriptors = rows[0].logs + .filter((event) => event.metadata?.["audio.recordings"]) + .at(-1).metadata["audio.recordings"]; + expect(descriptors).toContainEqual( + expect.objectContaining({ + id: "call-0000", + state: "omitted", + reason: "recording_export_failed", + }), + ); + expect( + rows[1].logs + .filter((event) => event.metadata?.["audio.selections"]) + .at(-1).metadata["audio.selections"], + ).toEqual([]); + expect(upload).toHaveBeenCalledTimes(1); + } finally { + upload.mockRestore(); + load.mockRestore(); + encoder.mockRestore(); + } +}); + +test("failed shutdown flush still releases the runtime for another processor", async () => { + const failure = new Error("export unavailable"); + fixture(false, { + logger: { + flush: async () => { + throw failure; + }, + } as any, + }); + const failed = processor!; + processor = undefined; + await expect(failed.shutdown()).rejects.toBe(failure); + expect(() => fixture()).not.toThrow(); +}); + +test("native speech preserves overlap, segmentation, late transcript timing and session ownership", () => { + const { rows, span, p } = fixture(true); + const root = span("root", "agent_session"); + const agent = span("agent", "agent_speaking", "root"); + const caller = span("caller", "user_speaking", "root"); + agent.endTime = [6, 0]; + caller.startTime = [3, 0]; + caller.endTime = [4, 0]; + for (const native of [root, agent, caller]) p.onStart(native); + p.onEnd(caller); + p.conversation( + { sessionSpan: root }, + { + type: "message", + id: "late", + role: "user", + textContent: "Wait, order 1042", + metrics: { startedSpeakingAt: 3 }, + }, + ); + p.conversation( + { sessionSpan: root }, + { + type: "message", + id: "agent-message", + role: "assistant", + textContent: "It arrives Friday.", + metrics: { startedSpeakingAt: 1 }, + }, + ); + p.onEnd(agent); + expect(rows.map((r) => r.args.name)).toEqual([ + "livekit.agent_session", + "agent_speech", + "user_speech", + ]); + expect(rows[1].end.endTime).toBe(6); + expect(rows[2].args.startTime).toBe(3); + expect(rows[2].end.endTime).toBe(4); + expect(rows[2].logs).toContainEqual({ + input: [{ role: "user", content: "Wait, order 1042" }], + }); + expect(rows[1].logs).toContainEqual({ + output: [{ role: "assistant", content: "It arrives Friday." }], + }); + expect(rows[2].parent).toBe(rows[0].spanId); +}); + +test("tool request, continuation, input speech and generated speech use exported link identities", () => { + const { rows, span, p } = fixture(true); + const root = span("s", "agent_session"); + const turn = span("turn", "agent_turn", "s"); + const user = span("u", "user_speaking", "s"); + const model = span("m", "llm_node", "turn", { + "lk.pii.chat_ctx": { + items: [ + { type: "message", id: "caller", role: "user", content: ["Order?"] }, + ], + }, + "lk.pii.response.function_calls": [ + { call_id: "call", name: "lookup_order" }, + ], + }); + const tool = span("tool", "function_tool", "turn", { + "gen_ai.tool.call.id": "call", + }); + const continuation = span("next", "llm_node", "turn", { + "lk.pii.chat_ctx": { + items: [ + { type: "function_call_output", call_id: "call", output: "Friday" }, + ], + }, + }); + for (const native of [root, turn, user, model, tool]) p.onStart(native); + // Late request/transcript resolution also works after the consuming operation ended. + p.onEnd(tool); + p.onEnd(model); + p.onEnd(user); + p.conversation( + { sessionSpan: root }, + { + type: "message", + id: "caller", + role: "user", + textContent: "Order?", + metrics: { startedSpeakingAt: 1 }, + }, + ); + p.scope(turn, () => { + p.inference(() => { + p.onStart(continuation); + return [null, { id: "answer" }]; + }); + const tts = span("tts", "tts_node", "turn"); + const speech = span("speech", "agent_speaking", "turn"); + p.onStart(tts); + p.onStart(speech); + p.conversation( + { sessionSpan: root }, + { + type: "message", + id: "answer", + role: "assistant", + textContent: "Friday", + }, + ); + p.onEnd(speech); + p.onEnd(tts); + }); + p.onEnd(continuation); + const links = (i: number) => + rows[i].logs.filter((log) => log.metadata?.links).at(-1)?.metadata?.links ?? + []; + const link = (target: number, type: string) => ({ + context: { + traceId: "1234567890abcdef1234567890abcdef", + spanId: rows[target].spanId, + traceFlags: 1, + }, + attributes: { "braintrust.relationship.type": type }, + }); + expect( + rows.flatMap((row) => row.logs).every((log) => !("links" in log)), + ).toBe(true); + expect(links(3)).toEqual([link(2, "input_context")]); + expect(links(4)).toEqual([link(3, "requested_by")]); + expect(links(5)).toEqual([link(4, "consumes_tool_result")]); + expect(links(6)).toEqual([link(5, "generated_by")]); + expect(links(7)).toEqual([link(5, "generated_by")]); + expect(JSON.stringify(rows)).not.toContain("continuation.tool_call_ids"); + expect(JSON.stringify(rows)).not.toContain("request_span_id"); +}); + +test.each([undefined, "Heard prefix"])( + "interrupted speech uses only synchronized playback text (%s)", + (synchronizedTranscript) => { + const { rows, span, p } = fixture(true); + const root = span("s", "agent_session"), + speech = span("a", "agent_speaking", "s"); + p.onStart(root); + p.onStart(speech); + const sink = Object.assign(new EventEmitter(), { + captureFrame: async () => {}, + flush() {}, + clearBuffer() {}, + }); + const session: any = { + sessionSpan: root, + agentSpeakingSpan: speech, + output: { audio: sink }, + }; + p.output(session); + sink.emit("playbackFinished", { + interrupted: true, + synchronizedTranscript, + }); + p.conversation(session, { + type: "message", + id: "answer", + role: "assistant", + textContent: "Heard prefix and unheard suffix", + interrupted: true, + }); + expect(rows[1].logs.filter((log) => log.output)).toEqual( + synchronizedTranscript === undefined + ? [] + : [ + { + output: [{ role: "assistant", content: synchronizedTranscript }], + }, + ], + ); + }, +); + +test("output replacement removes stale transcript evidence and can restore an earlier output", () => { + const { rows, span, p } = fixture(true); + const root = span("s", "agent_session"), + speech = span("a", "agent_speaking", "s"); + p.onStart(root); + p.onStart(speech); + const first = new EventEmitter(), + second = new EventEmitter(); + const session: any = { + sessionSpan: root, + agentSpeakingSpan: speech, + output: { audio: first }, + }; + p.output(session); + session.output.audio = second; + p.output(session); + expect(first.listenerCount("playbackFinished")).toBe(0); + session.output.audio = first; + p.output(session); + expect(second.listenerCount("playbackFinished")).toBe(0); + first.emit("playbackFinished", { synchronizedTranscript: "partial suffix" }); + p.conversation(session, { + type: "message", + id: "first", + role: "assistant", + textContent: "Fully played prefix and partial suffix", + interrupted: true, + }); + expect(rows[1].logs).toContainEqual({ + output: [ + { role: "assistant", content: "Fully played prefix and partial suffix" }, + ], + }); + first.emit("playbackFinished", { interrupted: true }); + p.conversation(session, { + type: "message", + id: "unverified", + role: "assistant", + textContent: "unheard", + interrupted: true, + }); + expect(JSON.stringify(rows)).not.toContain("unheard"); +}); + +test("text injected into conversation is not attributed to an earlier untranscribed speech interval", () => { + const { rows, span, p } = fixture(true); + const root = span("s", "agent_session"), + speech = span("u", "user_speaking", "s"); + p.onStart(root); + p.onStart(speech); + p.onEnd(speech); + p.conversation( + { sessionSpan: root }, + { type: "message", id: "typed", role: "user", textContent: "Typed input" }, + ); + p.onEnd(root); + expect(rows[1].logs.some((log) => log.input)).toBe(false); + expect(rows[0].logs).toContainEqual({ + metadata: { + "contrib.livekit.unassociated_messages": [ + { + id: "typed", + role: "user", + text: "Typed input", + started_speaking_at: undefined, + }, + ], + }, + }); +}); + +test("native recognition ownership survives independently sampled speech timestamps", () => { + const { rows, span, p } = fixture(true); + const root = span("s", "agent_session"), + user = span("u", "user_turn", "s"), + speech = span("speech", "user_speaking", "u"); + speech.startTime = [1, 5_000_000]; + p.onStart(root); + p.onStart(user); + p.onStart(speech); + p.onEnd(speech); + const session = { sessionSpan: root }; + p.userTurn( + { agentSession: session }, + { userTurnSpan: user, startedSpeakingAt: 1000, stoppedSpeakingAt: 2000 }, + ); + p.conversation(session, { + type: "message", + id: "caller", + role: "user", + textContent: "Where is my order?", + metrics: { startedSpeakingAt: 1 }, + }); + expect(rows[2].logs).toContainEqual({ + input: [{ role: "user", content: "Where is my order?" }], + }); + expect(rows[2].args.startTime).toBe(1.005); +}); diff --git a/js/src/instrumentation/livekit/processor.ts b/js/src/instrumentation/livekit/processor.ts new file mode 100644 index 000000000..e139d5a76 --- /dev/null +++ b/js/src/instrumentation/livekit/processor.ts @@ -0,0 +1,702 @@ +import type { AudioRecordingModule, RecordingOptions } from "./audio"; +import type { LiveKitOptions } from "./options"; +import { resolveAudioOptions } from "./node/audio-options"; +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ +import type { + AgentSession, + AgentActivity, + EndOfTurnInfo, + ChatMessage, + AudioFrame, + AudioOutput, +} from "./types"; +import iso from "../../isomorph"; +import { runWithAutoInstrumentationSuppressed } from "../auto-instrumentation-suppression"; +import { + parse, + operation, + isContentKey, + messages, + modelFields, +} from "./schema"; +import { SpeechTracker } from "./speech"; +import { Relationships } from "./relationships"; +import { + Attachment, + currentSpan, + withCurrent, + type Logger, +} from "../../logger"; +import { + installRuntime, + nativeId, + nativeFields, + observe, + seconds, + type NativeSpan, + type Capture, + type Row, +} from "./runtime"; +import { instrumentInput, instrumentOutput, release, select } from "./capture"; +import { + withSpanInstrumentationName, + INSTRUMENTATION_NAMES, +} from "../../span-origin"; + +export { wrapLiveKitSession } from "./wrap"; + +/** + * Export native LiveKit traces through the SDK, with optional bounded audio recording. + * Install in LiveKit's tracer provider INSTEAD OF another Braintrust span processor. + * Media capture requires the normal braintrust/hook.mjs loader (LiveKit 1.9.x). + */ +export class LiveKitSpanProcessor { + private execution = iso.newAsyncLocalStorage<{ model?: Row }>(); + readonly rows = new Map(); + readonly captures = new WeakMap(); + private active = new Set(); + private speakingByTurn = new Map>(); + private jobs = new Set>(); + private uninstall: () => void; + private captureContent: boolean; + private audio?: AudioRecordingModule; + private user: boolean; + private agent: boolean; + private sessions = new Map< + string, + { speech: SpeechTracker; relationships: Relationships } + >(); + private outputCleanups = new Map void>(); + private outputs = new Map(); + + private state(id: string | undefined) { + return id ? this.sessions.get(id) : undefined; + } + constructor( + private options: LiveKitOptions & { + logger: Logger; + recording?: RecordingOptions & { encoder?: { module: string } }; + }, + ) { + this.captureContent = options.captureContent ?? false; + const audio = resolveAudioOptions(options); + this.user = audio.user; + this.agent = audio.agent; + this.audio = audio.extension; + this.uninstall = installRuntime(this); + } + /** @internal Applies the native content policy to automatic instrumentation. */ + setContentCapture(enabled: boolean): void { + this.captureContent = enabled; + } + onStart(native: any): void { + const id = nativeId(native); + if (!id || this.rows.has(id) || this.rows.size >= 8192) return; + const parent = native.parentSpanContext?.spanId ?? native.parentSpanId; + const parentRow = this.rows.get(parent); + if (native.name !== "agent_session" && !parentRow) return; + // Native request spans duplicate the public inference lifecycle. + if ( + parentRow && + ["llm_request", "llm_request_run", "tts_request_run"].includes( + native.name, + ) + ) { + const context = native.spanContext(); + this.rows.set(id, { + ...parentRow, + native: { name: native.name, spanContext: () => context }, + parent, + // Retain the native identity for transcript association, not trace grouping. + folded: true, + ended: false, + }); + return; + } + const span = (parentRow?.span ?? this.options.logger).startSpan( + withSpanInstrumentationName( + { + name: operation(native.name), + type: + native.name === "llm_node" + ? ("llm" as const) + : native.name === "function_tool" + ? ("tool" as const) + : ("task" as const), + startTime: seconds(native.startTime), + }, + INSTRUMENTATION_NAMES.LIVEKIT, + ), + ); + // Keep only identity after export; retaining the native SDK span would also + // retain every historical chat context until session/recording finalization. + const nativeContext = native.spanContext(); + const row: Row = { + span, + start: seconds(native.startTime), + native: { name: native.name, spanContext: () => nativeContext }, + parent, + replyTo: parentRow?.replyTo, + session: native.name === "agent_session" ? id : parentRow?.session, + turn: ["agent_turn", "user_turn"].includes(native.name) + ? id + : parentRow?.turn, + }; + this.rows.set(id, row); + if (native.name === "agent_session") { + const relationships = new Relationships(); + this.sessions.set(id, { + relationships, + speech: new SpeechTracker(relationships, this.captureContent), + }); + } + const state = this.state(row.session); + if (["user_speaking", "agent_speaking"].includes(native.name)) + state?.speech.add(row); + const execution = this.execution.getStore(); + if (native.name === "llm_node" && execution) execution.model = row; + if ( + ["tts_node", "agent_speaking"].includes(native.name) && + execution?.model + ) + state?.relationships.link(span, execution.model.span, "generated_by"); + if (["agent_speaking", "user_speaking"].includes(native.name) && row.turn) { + const speaking = this.speakingByTurn.get(row.turn) ?? new Set(); + speaking.add(row); + this.speakingByTurn.set(row.turn, speaking); + } + if (native.name === "agent_session" && (this.user || this.agent)) + span.log({ + metadata: { + "audio.recordings": [ + { + id: "call", + state: "pending", + }, + ], + }, + }); + if (native.name === "function_tool") { + const request = [...this.rows.values()].find( + (r) => + r.span.spanId === currentSpan().spanId && + r.native.name === "llm_node" && + r.session === row.session, + ); + if (request) + state?.relationships.link(span, request.span, "requested_by"); + } + if (native.name === "agent_turn") { + const input = [...this.rows.values()].find( + (r) => + r.span.spanId === currentSpan().spanId && + r.native.name === "user_turn" && + r.session === row.session, + ); + if (input) { + row.replyTo = input.span.spanId; + span.log({ + metadata: { "turn.reply_to": input.span.spanId }, + }); + } + } + if (row.turn) + span.log({ + metadata: { + "turn.id": this.rows.get(row.turn)?.span.spanId, + }, + }); + } + onEnd(native: NativeSpan): void { + const row = this.rows.get(nativeId(native)!); + if (!row) return; + const attrs = nativeFields(native.attributes); + for (const key of Object.keys(attrs)) + if (!this.captureContent && isContentKey(key)) delete attrs[key]; + const metadata = Object.fromEntries( + Object.entries(attrs).filter( + ([key]) => !isContentKey(key) && !key.startsWith("langfuse."), + ), + ); + if (row.folded) { + if (native.name === "llm_request") { + const fields = modelFields(attrs); + row.span.log({ + ...fields, + metadata: { + ...fields.metadata, + }, + }); + } + row.ended = true; + return; + } + const events = (native.events ?? []).slice(0, 256).map((e) => ({ + name: e.name, + time_unix_ms: seconds(e.time) * 1000, + attributes: Object.fromEntries( + Object.entries(nativeFields(e.attributes)).filter( + ([key]) => this.captureContent || !isContentKey(key), + ), + ), + })); + const toolName = + attrs["contrib.livekit.function_tool.name"] ?? attrs["gen_ai.tool.name"]; + row.span.log({ + metadata: { + ...metadata, + ...(events.length ? { "contrib.livekit.events": events } : {}), + }, + ...(toolName + ? { span_attributes: { name: toolName, type: "tool" } } + : {}), + ...(native.status?.code === 2 + ? { + error: this.captureContent + ? (native.status.message ?? "LiveKit operation failed") + : "LiveKit operation failed", + } + : {}), + }); + const fields = modelFields(attrs); + row.span.log({ + metadata: fields.metadata, + ...(native.name === "llm_node" ? { metrics: fields.metrics } : {}), + }); + if (this.captureContent) { + if (native.name === "llm_node") { + const input = + messages(attrs["contrib.livekit.pii.chat_ctx"]) ?? + messages(attrs["gen_ai.input.messages"]); + let output = messages(attrs["gen_ai.output.messages"]); + if (!output?.length) { + const text = attrs["contrib.livekit.pii.response.text"]; + const calls = + parse(attrs["contrib.livekit.pii.response.function_calls"]) ?? + messages(attrs["gen_ai.output.messages"])?.flatMap( + (message) => message.tool_calls ?? [], + ); + output = messages([ + ...(typeof text === "string" + ? [{ role: "assistant", content: text }] + : []), + ...(Array.isArray(calls) + ? calls.map((call) => ({ + ...call, + type: "function_call", + call_id: call.call_id ?? call.callId ?? call.id, + })) + : []), + ]); + } + row.span.log({ + ...(input ? { input } : {}), + ...(output?.length ? { output } : {}), + }); + } else if (native.name === "tts_node") { + const text = attrs["contrib.livekit.pii.input_text"]; + if (typeof text === "string") + row.span.log({ + input: { text }, + output: [{ role: "assistant", content: text }], + }); + } + if (toolName) + row.span.log({ + input: parse( + attrs["contrib.livekit.pii.function_tool.arguments"] ?? + attrs["gen_ai.tool.call.arguments"], + ), + output: parse( + attrs["contrib.livekit.pii.function_tool.output"] ?? + attrs["gen_ai.tool.call.result"], + ), + }); + } + this.correlate(row, attrs); + const replyTo = row.replyTo ?? this.rows.get(row.turn ?? "")?.replyTo; + if (replyTo) row.span.log({ metadata: { "turn.reply_to": replyTo } }); + if (native.name === "user_speaking") { + const capture = [...this.active].find( + (c) => c.row.session === row.session, + ); + if (capture?.user) { + for (const packet of capture.inputTimeline) { + const from = Math.max( + packet.at, + seconds(native.startTime) * 1000 - capture.origin, + ); + const to = Math.min( + packet.at + packet.duration, + seconds(native.endTime) * 1000 - capture.origin, + ); + if (to > from) { + select(capture, nativeId(native)!, from, to, 0); + } + } + this.publishSelections(capture); + } + } + row.end = seconds(native.endTime); + row.ended = true; + row.span.end({ endTime: seconds(native.endTime) }); + if (native.name === "agent_session") { + const capture = [...this.active].find((c) => c.row === row); + if (capture) this.track(this.finish(capture.session)); + else { + if (this.user || this.agent) + row.span.log({ + metadata: { + "audio.recordings": [ + { + id: "call", + state: "omitted", + reason: "capture_hooks_not_observed", + }, + ], + }, + }); + this.clearSession(nativeId(native)!); + } + } else if ( + row.session && + this.rows.get(row.session)?.ended && + ![...this.active].some((c) => c.row.session === row.session) + ) { + this.clearSession(row.session); + } + } + scope(native: any, fn: () => T): T { + const row = this.rows.get(nativeId(native)!); + return row + ? this.execution.run( + { + model: row.native.name === "llm_node" ? row : undefined, + }, + () => withCurrent(row.span, fn), + ) + : fn(); + } + inference(fn: () => T): T { + // Only the inference worker is suppressed, not the pipeline or user tools. + // An installed processor must not suppress unrelated/untracked sessions. + const execution = this.execution.getStore(); + if (!execution) return fn(); + const result = runWithAutoInstrumentationSuppressed(fn); + // LiveKit's inference factory returns [task, generationData]. The data ID + // is the committed message ID, not the provider's response ID. + const data = Array.isArray(result) ? result[1] : undefined; + if (execution.model && typeof data?.id === "string") + this.state(execution.model.session)?.relationships.register( + `generation:${data.id}`, + execution.model.span, + ); + return result; + } + conversation(session: AgentSession, item: ChatMessage): void { + if (item?.type !== "message") return; + const sessionId = nativeId(session.sessionSpan); + const current = [...this.rows.values()].find( + (r) => r.span.spanId === currentSpan().spanId && r.session === sessionId, + ); + const turn = + current?.turn ?? + (item.role === "assistant" + ? nativeId(session.activity?.currentSpeech?._agentTurnSpan) + : undefined); + // LiveKit falls back to the entire generated text on partial playback when + // its output has no synchronized transcript. That fallback is not heard text. + const verified = this.rows.get( + nativeId(session.agentSpeakingSpan) ?? "", + )?.playedText; + const played = + item.role === "assistant" && item.interrupted + ? verified === undefined + ? undefined + : // A pipeline commit can include earlier fully played segments followed + // by the synchronized partial suffix. Preserve that verified prefix too. + item.textContent?.endsWith(verified) + ? item.textContent + : verified + : item.textContent; + this.state(sessionId)?.speech.message( + { ...item, textContent: played }, + { turn }, + ); + } + private context(row: Row, context: unknown) { + const parsed = parse(context) as any; + const items = Array.isArray(parsed) ? parsed : parsed?.items; + if (!Array.isArray(items)) return; + const relationships = this.state(row.session)?.relationships; + for (const item of items) { + if (item?.type === "function_call_output") { + const callId = item.call_id ?? item.callId; + if (typeof callId === "string") + relationships?.reference( + row.span, + `tool:${callId}`, + "consumes_tool_result", + ); + } else if ( + typeof item?.id === "string" && + (!item.type || item.type === "message") + ) + relationships?.reference( + row.span, + `speech:${item.id}`, + "input_context", + ); + } + } + private correlate(row: Row, attrs: Record) { + const relationships = this.state(row.session)?.relationships; + const calls = + parse(attrs["contrib.livekit.pii.response.function_calls"]) ?? + messages(attrs["gen_ai.output.messages"])?.flatMap( + (message) => message.tool_calls ?? [], + ); + if (Array.isArray(calls)) + for (const call of calls) { + const id = call?.call_id ?? call?.callId ?? call?.id; + if (typeof id === "string") + relationships?.register(`request:${id}`, row.span); + } + const callId = + attrs["gen_ai.tool.call.id"] ?? attrs["contrib.livekit.function_tool.id"]; + if (row.native.name === "function_tool" && typeof callId === "string") { + relationships?.register(`tool:${callId}`, row.span); + relationships?.reference(row.span, `request:${callId}`, "requested_by"); + } + if (row.native.name === "llm_node") + this.context(row, attrs["contrib.livekit.pii.chat_ctx"]); + } + + begin(session: AgentSession): void { + if ( + this.captures.has(session) || + !this.audio || + (!this.user && !this.agent) + ) + return; + const row = this.rows.get(nativeId(session.sessionSpan)!); + if (!row) return; + const voice = this.audio.createVoiceRecording({ + options: this.options.recording, + encoder: this.options.recording?.encoder, + span: row.span, + flush: () => this.options.logger.flush(), + createAttachment: (options) => new Attachment(options), + snapshot: () => ({ + origin: capture.origin, + basis: "local_input_arrival_and_output_playout", + source: (channel) => ({ + channel_index: channel, + boundary: channel === 0 ? "session_input" : "local_audio_output", + }), + metadata: { + "contrib.livekit.audio.input_formats": [ + ...(capture.recording.formats.get(0)?.values() ?? []), + ], + "contrib.livekit.audio.output_formats": [ + ...(capture.recording.formats.get(1)?.values() ?? []), + ], + }, + }), + speechSelections: () => this.speechSelections(capture), + }); + const capture: Capture = { + session, + row, + user: this.user, + agent: this.agent, + origin: Date.now(), + recording: voice.audio, + timeline: this.audio.timeline, + inputTimeline: [], + inputDurationMs: 0, + outputHolds: new Map(), + closed: false, + selections: new Map(), + events: new Map(), + cleanups: [], + }; + capture.publishSelections = () => voice.publishSelections(); + this.captures.set(session, capture); + this.active.add(capture); + row.span.log({ + metadata: { "audio.recordings": [{ id: "call", state: "pending" }] }, + }); + } + input(activity: AgentActivity, stream: ReadableStream): void { + const capture = this.captures.get(activity.agentSession); + if (capture) instrumentInput(capture, stream); + } + output(session: AgentSession): void { + const sink = session.output?.audio; + if (this.outputs.get(session) !== sink) { + this.outputCleanups.get(session)?.(); + this.outputCleanups.delete(session); + this.outputs.delete(session); + if (sink) { + const finished = (event: any) => + observe(() => { + const row = this.rows.get( + nativeId(session.agentSpeakingSpan) ?? "", + ); + if (row) + row.playedText = + this.captureContent && + typeof event.synchronizedTranscript === "string" + ? event.synchronizedTranscript + : undefined; + }); + sink.on("playbackFinished", finished); + this.outputs.set(session, sink); + this.outputCleanups.set(session, () => + sink.off?.("playbackFinished", finished), + ); + } + } + const capture = this.captures.get(session); + if (capture) + instrumentOutput(capture, session.output?.audio, this.captureContent); + } + userTurn(activity: AgentActivity, info: EndOfTurnInfo): void { + const turnId = nativeId(info.userTurnSpan); + if (turnId && info.startedSpeakingAt !== undefined) + this.state(nativeId(activity.agentSession.sessionSpan))?.speech.recognize( + turnId, + info.startedSpeakingAt, + ); + const c = this.captures.get(activity.agentSession); + if (!c || c.closed || !c.user) return; + const id = nativeId(info.userTurnSpan); + // Native recognition speech boundaries share the local wall clock. Clip actual captured + // samples; never derive selection from the broader user_turn span's start/end timestamps. + if ( + !id || + !Number.isFinite(info.startedSpeakingAt) || + !Number.isFinite(info.stoppedSpeakingAt) + ) + return; + for (const p of c.inputTimeline) { + const from = Math.max(p.at, info.startedSpeakingAt! - c.origin); + const to = Math.min( + p.at + p.duration, + info.stoppedSpeakingAt! - c.origin, + ); + if (to > from) select(c, id, from, to, 0); + } + this.publishSelections(c); + } + finish(session: AgentSession): Promise { + this.outputCleanups.get(session)?.(); + this.outputCleanups.delete(session); + this.outputs.delete(session); + const c = this.captures.get(session); + if (!c) return Promise.resolve(); + if (!c.finish) { + c.finish = this.finalize(c); + this.track(c.finish); + } + return c.finish; + } + private track(job: Promise) { + this.jobs.add(job); + void job.finally(() => this.jobs.delete(job)).catch(() => {}); + } + private publishSelections(c: Capture) { + c.publishSelections?.(); + } + private *speechSelections(c: Capture) { + for (const [native, intervals] of c.selections) { + if (this.rows.get(native)?.folded) continue; + const span = this.rows.get(native)?.span ?? c.externalSpans?.get(native); + if (!span) continue; + yield { + span, + intervals, + alias: true, + metadata: c.events.has(native) + ? { "contrib.livekit.playback_events": c.events.get(native) } + : {}, + }; + const speaking = [...(this.speakingByTurn.get(native) ?? [])]; + if ( + speaking.length === 1 && + !c.selections.has(nativeId(speaking[0].native)!) + ) + yield { span: speaking[0].span, intervals }; + } + } + private async finalize(c: Capture) { + for (const cleanup of c.cleanups.splice(0)) observe(cleanup); + c.closed = true; + const id = nativeId(c.row.native)!; + try { + await c.recording.finish(); + c.row.span.log({ + metadata: { + "contrib.livekit.audio.input_clock": + "arrival_anchored_ordered_samples", + }, + }); + } finally { + release(c); + this.captures.delete(c.session); + c.session = undefined; + this.active.delete(c); + this.clearSession(id); + } + } + private clearSession(id: string) { + // Native children (notably tools) can outlive session end. Retain ownership until + // every native operation finishes, even after the recording has finalized. + if ([...this.rows.values()].some((row) => row.session === id && !row.ended)) + return; + const root = this.rows.get(id); + if (root) this.state(id)?.speech.finish(root.span); + for (const [key, row] of this.rows) + if (row.session === id) { + this.rows.delete(key); + if (row.turn) this.speakingByTurn.delete(row.turn); + } + this.sessions.delete(id); + } + async forceFlush(): Promise { + await Promise.all([...this.active].map((c) => c.recording.drain())); + await Promise.all([...this.jobs]); + await this.options.logger.flush(); + } + async shutdown(): Promise { + await Promise.all([...this.active].map((c) => this.finish(c.session))); + for (const row of this.rows.values()) + if (!row.ended && !row.folded) { + row.span.log({ + metadata: { + ...(row.turn === nativeId(row.native) + ? { "turn.incomplete": true } + : { "contrib.livekit.incomplete": true }), + "contrib.livekit.termination": "processor_shutdown", + }, + }); + row.span.end(); + } + for (const [id, state] of this.sessions) { + const root = this.rows.get(id); + if (root) state.speech.finish(root.span); + } + this.rows.clear(); + this.speakingByTurn.clear(); + this.sessions.clear(); + for (const cleanup of this.outputCleanups.values()) cleanup(); + this.outputCleanups.clear(); + this.outputs.clear(); + try { + await this.forceFlush(); + } finally { + this.uninstall(); + } + } +} diff --git a/js/src/instrumentation/livekit/relationships.ts b/js/src/instrumentation/livekit/relationships.ts new file mode 100644 index 000000000..9e61bf5bb --- /dev/null +++ b/js/src/instrumentation/livekit/relationships.ts @@ -0,0 +1,71 @@ +import { debugLogger } from "../../debug-logger"; +import type { Span } from "../../logger"; + +type Relationship = + | "input_context" + | "requested_by" + | "consumes_tool_result" + | "generated_by" + | "transcribed_by"; +type Link = { + context: { traceId: string; spanId: string; traceFlags: number }; + attributes: { "braintrust.relationship.type": Relationship }; +}; + +/** Session-local identity resolution. A late transcript/tool can resolve an earlier link. */ +export class Relationships { + private warned = false; + private targets = new Map(); + private waiting = new Map>(); + private links = new Map>(); + + register(id: string, target: Span): void { + this.targets.set(id, target); + for (const [source, relationship] of this.waiting.get(id) ?? []) + this.link(source, target, relationship); + this.waiting.delete(id); + } + + reference(source: Span, id: string, relationship: Relationship): void { + const target = this.targets.get(id); + if (target) this.link(source, target, relationship); + else if (this.waiting.size < 8192) { + const waiting = this.waiting.get(id) ?? new Map(); + waiting.set(source, relationship); + this.waiting.set(id, waiting); + } + } + + link(source: Span, target: Span, relationship: Relationship): void { + if (source.spanId === target.spanId) return; + // Legacy UUID ID generators cannot be represented as OTel contexts. Do not + // fabricate an identity that would point at a different exported span. + if ( + !/^[0-9a-f]{32}$/.test(target.rootSpanId) || + !/^[0-9a-f]{16}$/.test(target.spanId) || + /^0+$/.test(target.rootSpanId) || + /^0+$/.test(target.spanId) + ) { + if (!this.warned) + debugLogger.warn( + "LiveKit span links require OpenTelemetry-compatible Braintrust IDs; disable BRAINTRUST_LEGACY_IDS.", + ); + this.warned = true; + return; + } + const links = this.links.get(source) ?? new Map(); + const key = `${relationship}:${target.rootSpanId}:${target.spanId}`; + if (links.has(key)) return; + links.set(key, { + context: { + traceId: target.rootSpanId, + spanId: target.spanId, + traceFlags: 1, + }, + attributes: { "braintrust.relationship.type": relationship }, + }); + this.links.set(source, links); + // Prototype transport until hosted queries expose top-level OTel links. + source.log({ metadata: { links: [...links.values()] } }); + } +} diff --git a/js/src/instrumentation/livekit/runtime.ts b/js/src/instrumentation/livekit/runtime.ts new file mode 100644 index 000000000..550ec647f --- /dev/null +++ b/js/src/instrumentation/livekit/runtime.ts @@ -0,0 +1,137 @@ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ +// Structural boundaries intentionally avoid a runtime dependency on LiveKit/OTel. +import { debugLogger } from "../../debug-logger"; +import type { + AgentSession, + AgentActivity, + EndOfTurnInfo, + ChatMessage, + AudioFrame, +} from "./types"; +import type { AudioRecordingModule, Recording } from "./audio"; +import type { Span } from "../../logger"; +import type { Message } from "./schema"; +import type { LiveKitOptions } from "./options"; + +export type NativeSpan = { + name: string; + spanContext(): { spanId: string; traceId: string; traceFlags?: number }; + parentSpanContext?: { spanId: string }; + parentSpanId?: string; + startTime: [number, number]; + endTime: [number, number]; + attributes: Record; + events: { + name: string; + time: [number, number]; + attributes?: Record; + }[]; + status: { code: number; message?: string }; +}; +export type { Packet } from "./audio"; +import type { Selection } from "./audio"; +export type { Selection } from "./audio"; +export type Row = { + span: Span; + native: Pick; + parent?: string; + turn?: string; + session?: string; + playedText?: string; + start?: number; + end?: number; + ended?: boolean; + folded?: boolean; + replyTo?: string; + messages?: Map; +}; +export type Capture = { + session: any; + row: Row; + user: boolean; + agent: boolean; + origin: number; + recording: Recording; + timeline: AudioRecordingModule["timeline"]; + inputTimeline: { + at: number; + duration: number; + rate: number; + channels: number; + sampleStart: number; + }[]; + inputDurationMs: number; + outputHolds: Map; + frameCount?: number; + inputEnd?: number; + inputStream?: object; + closed: boolean; + selections: Map; + events: Map; + externalSpans?: Map; + cleanups: (() => void)[]; + finish?: Promise; + publishSelections?: () => void; +}; +interface LiveKitRuntime { + automatic?: boolean; + rows: Map; + captures: WeakMap; + begin(session: AgentSession): void; + input(activity: AgentActivity, stream: ReadableStream): void; + output(session: AgentSession): void; + userTurn(activity: AgentActivity, info: EndOfTurnInfo): void; + finish(session: AgentSession): Promise; + conversation(session: AgentSession, item: ChatMessage): void; + scope(span: any, fn: () => T): T; + inference(fn: () => T): T; +} +const key = Symbol.for("braintrust.livekit.runtime"); +export function runtime(): LiveKitRuntime | undefined { + return (globalThis as any)[key]; +} +export function installRuntime(value: LiveKitRuntime): () => void { + if (runtime()) + throw new Error("Only one LiveKitSpanProcessor may be active per process"); + (globalThis as any)[key] = value; + return () => { + if (runtime() === value) delete (globalThis as any)[key]; + }; +} +export function observe(fn: () => void): void { + try { + fn(); + } catch { + debugLogger.debug("LiveKit instrumentation observation failed"); + } +} +export const nativeId = (span: any): string | undefined => + span?.spanContext?.().spanId; +export const seconds = (time: [number, number]) => time[0] + time[1] / 1e9; +export const nativeFields = (fields: Record = {}) => + Object.fromEntries( + Object.entries(fields).map(([k, v]) => [ + k.startsWith("lk.") ? `contrib.livekit.${k.slice(3)}` : k, + v, + ]), + ); + +// The Node entrypoint supplies platform-specific setup without extending the +// core isomorphic interface with integration-specific operations. +type Prepare = ( + tracer: unknown, + options: LiveKitOptions, + allowContent: boolean, +) => boolean; +const prepareKey = Symbol.for("braintrust.livekit.prepare"); +export function setPreparation(prepare: Prepare): void { + (globalThis as any)[prepareKey] = prepare; +} +export function prepare( + tracer: unknown, + options: LiveKitOptions, + allowContent: boolean, +): boolean { + const setup: Prepare | undefined = (globalThis as any)[prepareKey]; + return setup?.(tracer, options, allowContent) ?? false; +} diff --git a/js/src/instrumentation/livekit/schema.ts b/js/src/instrumentation/livekit/schema.ts new file mode 100644 index 000000000..7c9d1385f --- /dev/null +++ b/js/src/instrumentation/livekit/schema.ts @@ -0,0 +1,174 @@ +// LiveKit's native OTel payloads are JSON values, not OpenAI message objects. +// Normalize just the conversational surface; audio bytes are handled by capture. +import { isObject } from "../../../util"; + +export function parse(value: unknown): unknown { + if (typeof value !== "string") return value; + try { + return JSON.parse(value); + } catch { + return value; + } +} +export function operation(name: string): string { + switch (name) { + case "user_turn": + return "user_turn"; + case "agent_turn": + return "agent_turn"; + case "user_speaking": + return "user_speech"; + case "agent_speaking": + return "agent_speech"; + case "stt_node": + return "stt"; + case "llm_node": + return "llm_response"; + case "tts_node": + return "tts"; + default: + return `livekit.${name}`; + } +} +export function isContentKey(key: string): boolean { + return ( + key.includes(".pii.") || + /^gen_ai\.(input\.|output\.|system_instructions|tool\.(definitions|call\.(arguments|result)|description))/.test( + key, + ) + ); +} + +export type Message = { + role: string; + content: string | null; + tool_calls?: { + id: string; + type: "function"; + function: { name: string; arguments: string }; + }[]; + tool_call_id?: string; +}; +function stringify(value: unknown): string { + return typeof value === "string" ? value : (JSON.stringify(value) ?? ""); +} +function text(value: unknown): string { + if (typeof value === "string") return value; + if (Array.isArray(value)) return value.map(text).join(""); + if (!isObject(value)) return ""; + if (value.type === "text") + return typeof value.content === "string" + ? value.content + : typeof value.text === "string" + ? value.text + : ""; + // Do not serialize inline image/audio frames into text or metadata. + return typeof value.transcript === "string" ? value.transcript : ""; +} +export function messages(value: unknown): Message[] | undefined { + const parsed = parse(value); + const items = Array.isArray(parsed) + ? parsed + : isObject(parsed) && Array.isArray(parsed.items) + ? parsed.items + : undefined; + if (!items) return; + const result: Message[] = []; + for (const item of items) { + if (!isObject(item)) continue; + if (item.type === "function_call") { + const id = item.call_id ?? item.callId; + if (typeof id === "string" && typeof item.name === "string") + result.push({ + role: "assistant", + content: null, + tool_calls: [ + { + id, + type: "function", + function: { + name: item.name, + arguments: stringify(item.arguments ?? item.args), + }, + }, + ], + }); + } else if (item.type === "function_call_output") { + const id = item.call_id ?? item.callId; + if (typeof id === "string") + result.push({ + role: "tool", + content: stringify(item.output), + tool_call_id: id, + }); + } else if (typeof item.role === "string") { + const parts = Array.isArray(item.parts) ? item.parts : []; + const message: Message = { + role: item.role, + content: text(item.content ?? parts) || null, + }; + for (const part of parts) { + if (!isObject(part)) continue; + if ( + part.type === "tool_call" && + typeof part.id === "string" && + typeof part.name === "string" + ) { + (message.tool_calls ??= []).push({ + id: part.id, + type: "function", + function: { name: part.name, arguments: stringify(part.arguments) }, + }); + } else if ( + part.type === "tool_call_response" && + typeof part.id === "string" + ) { + message.tool_call_id = part.id; + message.content = stringify(part.response); + } + } + result.push(message); + } + } + return result; +} + +export function modelFields(attrs: Record) { + const metrics: Record = {}; + for (const [target, sources] of Object.entries({ + prompt_tokens: ["gen_ai.usage.input_tokens"], + completion_tokens: ["gen_ai.usage.output_tokens"], + cache_read_input_tokens: [ + "gen_ai.usage.cache_read.input_tokens", + "gen_ai.usage.input_cached_tokens", + ], + cache_creation_input_tokens: ["gen_ai.usage.cache_write.input_tokens"], + reasoning_tokens: [ + "gen_ai.usage.reasoning.output_tokens", + "gen_ai.usage.reasoning_tokens", + ], + time_to_first_token: [ + "contrib.livekit.response.ttft", + "gen_ai.response.time_to_first_chunk", + ], + })) { + const value = sources + .map((key) => attrs[key]) + .find( + (value) => + typeof value === "number" && Number.isFinite(value) && value >= 0, + ); + if (typeof value === "number") metrics[target] = value; + } + if ( + metrics.prompt_tokens !== undefined && + metrics.completion_tokens !== undefined + ) + metrics.tokens = metrics.prompt_tokens + metrics.completion_tokens; + const metadata: Record = {}; + const model = attrs["gen_ai.response.model"] ?? attrs["gen_ai.request.model"]; + const provider = attrs["gen_ai.provider.name"]; + if (typeof model === "string") metadata.model = model; + if (typeof provider === "string") metadata.provider = provider; + return { metrics, metadata }; +} diff --git a/js/src/instrumentation/livekit/speech.ts b/js/src/instrumentation/livekit/speech.ts new file mode 100644 index 000000000..d528d169a --- /dev/null +++ b/js/src/instrumentation/livekit/speech.ts @@ -0,0 +1,132 @@ +import type { Span } from "../../logger"; +import type { Row } from "./runtime"; +import type { ChatMessage } from "./types"; +import { Relationships } from "./relationships"; + +/** Native speech owns transcripts; transcript arrival never changes its timing. */ +export class SpeechTracker { + private rows: Row[] = []; + private recognition = new Map(); + private owners = new Map(); + private messageIds = new Map>(); + private pending = new Map(); + + constructor( + private relationships: Relationships, + private content: boolean, + ) {} + + add(row: Row): void { + this.rows.push(row); + for (const { item, turn } of this.pending.values()) + if (item.metrics?.startedSpeakingAt !== undefined) + this.message(item, { turn }); + } + + recognize(turn: string, startedAt: number): void { + const speech = this.rows.filter( + (row) => row.native.name === "user_speaking" && row.turn === turn, + ); + if (speech.length !== 1 || !Number.isFinite(startedAt)) return; + const start = startedAt / 1000; + this.recognition.set( + start, + !this.recognition.has(start) || this.recognition.get(start) === speech[0] + ? speech[0] + : undefined, + ); + } + + finish(root: Span): void { + if (this.pending.size) + root.log({ + metadata: { + "contrib.livekit.unassociated_messages": [ + ...this.pending.values(), + ].map(({ item }) => ({ + id: item.id, + role: item.role, + text: item.textContent, + started_speaking_at: item.metrics?.startedSpeakingAt, + })), + }, + }); + } + + message( + item: ChatMessage, + { + turn, + speech: observed, + transcribed = false, + }: { turn?: string; speech?: Row; transcribed?: boolean } = {}, + ): Row | undefined { + // Keep only transcript observations, never ChatMessage audio/context payloads. + item = { + type: item.type, + id: item.id, + role: item.role, + textContent: this.content ? item.textContent : undefined, + interrupted: item.interrupted, + metrics: item.metrics && { + startedSpeakingAt: item.metrics.startedSpeakingAt, + }, + }; + if (item.role !== "user" && item.role !== "assistant") return; + const name = item.role === "user" ? "user_speaking" : "agent_speaking"; + const start = item.metrics?.startedSpeakingAt; + const candidates = this.rows.filter((row) => { + if (row.native.name !== name) return false; + if (start !== undefined && Number.isFinite(start)) + return ( + row.start !== undefined && + start >= row.start - 0.001 && + (row.end === undefined || start <= row.end + 0.001) + ); + if (turn) return row.turn === turn; + // A transcription event is evidence of speech; a conversation message can + // instead be typed input. Do not assign that to old audio. + return transcribed + ? !row.ended || !this.messageIds.has(row) + : item.role === "assistant" && !row.ended; + }); + const row = + this.owners.get(item.id) ?? + (item.role === "user" && start !== undefined + ? this.recognition.get(start) + : undefined) ?? + (candidates.length === 1 ? candidates[0] : observed); + if (!row) { + if (this.pending.size < 8192) this.pending.set(item.id, { item, turn }); + return; + } + this.pending.delete(item.id); + this.owners.set(item.id, row); + const ids = this.messageIds.get(row) ?? new Set(); + ids.add(item.id); + this.messageIds.set(row, ids); + this.relationships.register(`speech:${item.id}`, row.span); + if (item.role === "assistant") + this.relationships.reference( + row.span, + `generation:${item.id}`, + "generated_by", + ); + row.messages ??= new Map(); + if (this.content && item.textContent !== undefined) { + row.messages.set(item.id, { role: item.role, content: item.textContent }); + row.span.log( + item.role === "user" + ? { input: [...row.messages.values()] } + : { output: [...row.messages.values()] }, + ); + } + row.span.log({ + metadata: { + "contrib.livekit.message_ids": [...ids], + ...(item.interrupted ? { "contrib.livekit.interrupted": true } : {}), + }, + }); + return row; + } +} diff --git a/js/src/instrumentation/livekit/types.ts b/js/src/instrumentation/livekit/types.ts new file mode 100644 index 000000000..1648c317b --- /dev/null +++ b/js/src/instrumentation/livekit/types.ts @@ -0,0 +1,42 @@ +import type { NativeSpan } from "./runtime"; + +/** Relevant LiveKit 1.9.x boundaries, vendored to avoid a runtime dependency. */ +export interface AudioFrame { + data: Int16Array; + sampleRate: number; + channels: number; +} +export interface SpeechHandle { + _agentTurnSpan?: NativeSpan; +} +export interface AgentSession { + sessionSpan?: NativeSpan; + agentSpeakingSpan?: NativeSpan; + _userSpeakingSpan?: NativeSpan; + activity?: AgentActivity; + output?: { audio?: AudioOutput | null }; +} +export interface AgentActivity { + agentSession: AgentSession; + currentSpeech?: SpeechHandle; +} +export interface AudioOutput { + captureFrame(frame: AudioFrame): Promise; + flush(): unknown; + clearBuffer(): unknown; + on(event: string, callback: (...args: never[]) => void): unknown; + off?(event: string, callback: (...args: never[]) => void): unknown; +} +export interface EndOfTurnInfo { + userTurnSpan?: NativeSpan; + startedSpeakingAt?: number; + stoppedSpeakingAt?: number; +} +export interface ChatMessage { + type: string; + id: string; + role?: string; + textContent?: string; + interrupted?: boolean; + metrics?: { startedSpeakingAt?: number; stoppedSpeakingAt?: number }; +} diff --git a/js/src/instrumentation/livekit/wrap.ts b/js/src/instrumentation/livekit/wrap.ts new file mode 100644 index 000000000..3f93bd76c --- /dev/null +++ b/js/src/instrumentation/livekit/wrap.ts @@ -0,0 +1,91 @@ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ +import type { AudioFrame, ChatMessage, EndOfTurnInfo } from "./types"; +import { livekitChannels } from "../plugins/livekit-channels"; + +const wrapped = Symbol.for("braintrust.livekit.wrapped"); +function method( + target: any, + name: string, + channel: Exclude, + before?: () => void, + receiver?: object, +) { + const original = target[name]; + if (typeof original !== "function" || original[wrapped]) return; + const fn = function (this: unknown, ...args: unknown[]) { + before?.(); + const self = receiver ?? this; + if (channel === "inference") + return livekitChannels.inference.invoke(original, self, args, {}); + if (channel === "conversation") + return livekitChannels.conversation.invoke( + original, + self, + args as [ChatMessage], + {}, + ); + if (channel === "input") + return livekitChannels.input.invoke( + original, + self, + args as [ReadableStream], + {}, + ); + if (channel === "userCompleted") + return livekitChannels.userCompleted.invoke( + original, + self, + args as [EndOfTurnInfo, unknown?], + {}, + ); + if (channel === "userTurn") + return livekitChannels.userTurn.invoke( + original, + self, + args as [EndOfTurnInfo], + {}, + ); + if (channel === "output") { + return livekitChannels[channel].invoke(original, self, args, {}); + } + return livekitChannels[channel].invoke(original, self, args, {}); + }; + Object.defineProperty(fn, wrapped, { value: true }); + target[name] = fn; +} +/** Wrap a LiveKit 1.9.x AgentSession before start when the Node loader cannot be used. */ +export function wrapLiveKitSession(session: T): T { + const target = session as any; + if ( + typeof target._startImpl !== "function" || + typeof target._conversationItemAdded !== "function" + ) { + throw new TypeError("Expected a LiveKit 1.9.x AgentSession"); + } + method(target, "_startImpl", "start"); + method(target, "closeImpl", "close"); + method(target, "onAudioOutputChanged", "output"); + // AgentOutput saves the callback during construction, before manual wrapping. + if (target.output) + method(target.output, "audioChanged", "output", undefined, target); + // Native handoff inserts a conversation item after assigning the next activity, + // before it starts or attaches input. Use that lifecycle for each new activity. + method(target, "_conversationItemAdded", "conversation", () => { + const activity = target.activity; + if (!activity) return; + // Without a loader, wrap the node entrypoints that start provider work. + if (activity.agent) { + method(activity.agent, "llmNode", "inference"); + method(activity.agent, "ttsNode", "inference"); + } + for (const [name, channel] of [ + ["attachAudioInput", "input"], + ["_startSessionImpl", "activity"], + ["onEndOfTurn", "userTurn"], + ["userTurnCompleted", "userCompleted"], + ["_pipelineReplyTaskImpl", "pipeline"], + ] as const) + method(activity, name, channel); + }); + return session; +} diff --git a/js/src/instrumentation/plugins/livekit-channels.ts b/js/src/instrumentation/plugins/livekit-channels.ts new file mode 100644 index 000000000..1ccc732d7 --- /dev/null +++ b/js/src/instrumentation/plugins/livekit-channels.ts @@ -0,0 +1,40 @@ +import type { AudioFrame, EndOfTurnInfo, ChatMessage } from "../livekit/types"; +import { channel, defineInterceptor } from "../core/interceptor-definitions"; +export const livekitChannels = defineInterceptor("@livekit/agents", { + trace: channel({ + channelName: "telemetry.trace", + }), + provider: channel({ + channelName: "telemetry.provider", + }), + inference: channel({ + channelName: "generation.inference", + }), + conversation: channel<[ChatMessage], unknown>({ + channelName: "session.conversation", + }), + userCompleted: channel<[EndOfTurnInfo, unknown?], unknown>({ + channelName: "activity.userCompleted", + }), + pipeline: channel({ + channelName: "activity.pipeline", + }), + start: channel({ + channelName: "session.start", + }), + close: channel({ + channelName: "session.close", + }), + input: channel<[ReadableStream], unknown>({ + channelName: "activity.input", + }), + output: channel({ + channelName: "session.output", + }), + activity: channel({ + channelName: "activity.start", + }), + userTurn: channel<[EndOfTurnInfo], unknown>({ + channelName: "activity.userTurn", + }), +}); diff --git a/js/src/instrumentation/plugins/livekit-plugin.ts b/js/src/instrumentation/plugins/livekit-plugin.ts new file mode 100644 index 000000000..4a822b1dd --- /dev/null +++ b/js/src/instrumentation/plugins/livekit-plugin.ts @@ -0,0 +1,104 @@ +import type { LiveKitOptions } from "../livekit/options"; +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions -- receivers are private, version-pinned LiveKit hook boundaries. */ +import type { + AgentSession, + ChatMessage, + AudioFrame, + EndOfTurnInfo, +} from "../livekit/types"; +import { BasePlugin } from "../core"; +import { livekitChannels } from "./livekit-channels"; +import { runtime, observe, prepare } from "../livekit/runtime"; +export class LiveKitPlugin extends BasePlugin { + private started = false; + private allowContent = true; + constructor(private options: LiveKitOptions = {}) { + super(); + } + configure(options: LiveKitOptions) { + if (this.started) + throw new Error("Configure LiveKit before starting a session"); + this.options = options; + } + + protected onEnable(): void { + this.unsubscribers.push( + livekitChannels.provider.intercept((target, self, args) => { + const options = args[1] as { allowPii?: boolean } | undefined; + this.allowContent = options?.allowPii ?? true; + return Reflect.apply(target, self, args); + }), + livekitChannels.trace.intercept((target, self, args) => { + observe(() => { + const prepared = prepare(self, this.options, this.allowContent); + this.started ||= prepared; + }); + return Reflect.apply(target, self, args); + }), + ); + this.unsubscribers.push( + livekitChannels.inference.intercept((target, self, args) => { + const invoke = () => Reflect.apply(target, self, args); + const rt = runtime(); + return rt ? rt.inference(invoke) : invoke(); + }), + ); + for (const key of [ + "pipeline", + "conversation", + "userCompleted", + "start", + "input", + "output", + "activity", + "userTurn", + ] as const) { + this.unsubscribers.push( + livekitChannels[key].intercept( + (target: any, self: any, args: unknown[]): any => { + observe(() => { + const rt = runtime(); + if (key === "conversation") + rt?.conversation(self, args[0] as ChatMessage); + if (key === "start") rt?.begin(self); + if (key === "input") + rt?.input(self, args[0] as ReadableStream); + if (key === "output") rt?.output(self); + if (key === "activity") rt?.output(self.agentSession); + if (key === "userTurn") + rt?.userTurn(self, args[0] as EndOfTurnInfo); + }); + const rt = runtime(); + if (rt && (key === "userCompleted" || key === "pipeline")) { + const first = args[0] as any; + return rt.scope( + key === "userCompleted" ? first?.userTurnSpan : first?.span, + () => Reflect.apply(target, self, args), + ); + } + return Reflect.apply(target, self, args); + }, + ), + ); + } + this.unsubscribers.push( + livekitChannels.close.intercept(async (target, self, args) => { + try { + return await Reflect.apply(target, self, args); + } finally { + try { + const rt = runtime(); + const finished = rt?.finish(self as AgentSession); + if (rt?.automatic) await finished; + else void finished?.catch(() => {}); + } catch { + /* Keep shutdown usable. */ + } + } + }), + ); + } + protected onDisable(): void { + for (const unsubscribe of this.unsubscribers.splice(0)) unsubscribe(); + } +} diff --git a/js/src/instrumentation/registry.ts b/js/src/instrumentation/registry.ts index 9fbc5b79b..7bd4809fd 100644 --- a/js/src/instrumentation/registry.ts +++ b/js/src/instrumentation/registry.ts @@ -51,9 +51,27 @@ class PluginRegistry { /** * Configure which integrations should be enabled. - * This must be called before any SDK imports to take effect. + * This must be called before any SDK imports to take effect. LiveKit-only + * options may also be configured before its first native span. */ configure(config: InstrumentationConfig): void { + // Importing braintrust enables plugins before users can call this API. + // Forward LiveKit-only settings so its integration can accept configuration + // until first use; the LiveKit plugin owns that restriction. Other plugins + // retain their existing configuration lifecycle. + if ( + this.enabled && + Object.keys(config).every((k) => k === "integrations") && + config.integrations && + "livekit" in config.integrations && + Object.keys(config.integrations).every((k) => k === "livekit") + ) { + const disabled = this.readEnvConfig().integrations?.livekit === false; + this.braintrustPlugin?.configureLiveKit( + disabled ? false : config.integrations.livekit, + ); + return; + } if (this.enabled) { // eslint-disable-next-line no-restricted-properties -- preserving intentional console usage. console.warn( diff --git a/js/src/node/config.ts b/js/src/node/config.ts index 6b3f37802..8d7c6c05f 100644 --- a/js/src/node/config.ts +++ b/js/src/node/config.ts @@ -1,3 +1,4 @@ +import { configureLiveKit } from "../instrumentation/livekit/node/auto"; import { AsyncLocalStorage } from "node:async_hooks"; import * as path from "node:path"; import * as fs from "node:fs/promises"; @@ -24,6 +25,9 @@ const BRAINTRUST_ENV_SEARCH_PARENT_LIMIT = 64; export function configureNode() { iso.buildType = "node"; + // Register LiveKit's Node-only setup without exposing package loading to + // browser plugins. Recording resources are created only after opt-in. + configureLiveKit(); iso.getRepoInfo = getRepoInfo; iso.getPastNAncestors = getPastNAncestors; diff --git a/js/src/span-origin.ts b/js/src/span-origin.ts index 755fc43f5..7dadc1953 100644 --- a/js/src/span-origin.ts +++ b/js/src/span-origin.ts @@ -28,6 +28,7 @@ export const INSTRUMENTATION_NAMES = { GOOGLE_GENAI: "google-genai", GROQ: "groq", HUGGINGFACE: "huggingface", + LIVEKIT: "livekit", LANGCHAIN: "langchain", LANGSMITH: "langsmith", MASTRA: "mastra", diff --git a/js/tsup.config.ts b/js/tsup.config.ts index 1f81f38b3..a268b12cd 100644 --- a/js/tsup.config.ts +++ b/js/tsup.config.ts @@ -10,22 +10,28 @@ const define = { __BRAINTRUST_SDK_VERSION__: JSON.stringify(packageJson.version), }; +const nodeEntries = { + index: "src/node/index.ts", + "custom-views": "src/custom-views/exports.ts", + preprocessors: "src/preprocessors/exports.ts", + "apply-auto-instrumentation": "src/node/apply-auto-instrumentation-entry.ts", + "vitest-evals-reporter": "src/wrappers/vitest-evals/reporter.ts", +}; + export default defineConfig([ // Node.js entrypoint { entry: { - index: "src/node/index.ts", - "custom-views": "src/custom-views/exports.ts", - preprocessors: "src/preprocessors/exports.ts", - "apply-auto-instrumentation": - "src/node/apply-auto-instrumentation-entry.ts", - "vitest-evals-reporter": "src/wrappers/vitest-evals/reporter.ts", + ...nodeEntries, + "audio-worker": "src/audio/audio-worker.ts", + livekit: "src/instrumentation/livekit/processor.ts", }, format: ["cjs", "esm"], outDir: "dist", external: ["zod"], removeNodeProtocol: false, dts: { + entry: nodeEntries, // Split DTS generation to reduce memory usage compilerOptions: { skipLibCheck: true, @@ -35,6 +41,18 @@ export default defineConfig([ define, clean: true, }, + // Keep the optional integration's declarations separate from the core API. + { + entry: { livekit: "src/instrumentation/livekit/processor.ts" }, + format: ["cjs", "esm"], + outDir: "dist", + external: ["zod"], + removeNodeProtocol: false, + dts: { only: true, compilerOptions: { skipLibCheck: true } }, + splitting: false, + define, + clean: false, + }, { entry: { cli: "src/cli/index.ts" }, format: ["cjs"], From 99df1c914456f4d98d1407e69382ec39e8b2d0e5 Mon Sep 17 00:00:00 2001 From: David Elner Date: Tue, 20 Oct 2026 14:06:23 -0400 Subject: [PATCH 2/5] Removed: Worker, wav codec for audio recording --- .changeset/solid-donuts-drop.md | 2 +- e2e/config/pr-comment-scenarios.json | 2 +- .../livekit-v1-audio.span-tree.json | 6 +- .../livekit-v1-audio.span-tree.txt | 6 +- .../livekit-v1-interrupted.span-tree.json | 6 +- .../livekit-v1-interrupted.span-tree.txt | 6 +- .../livekit-v1-latest-audio.span-tree.json | 6 +- .../livekit-v1-latest-audio.span-tree.txt | 6 +- ...vekit-v1-latest-interrupted.span-tree.json | 6 +- ...ivekit-v1-latest-interrupted.span-tree.txt | 6 +- .../livekit-v1-latest-order.span-tree.json | 6 +- .../livekit-v1-latest-order.span-tree.txt | 6 +- ...livekit-v1-latest-recovered.span-tree.json | 6 +- .../livekit-v1-latest-recovered.span-tree.txt | 6 +- ...v1-latest-streaming-cascade.span-tree.json | 6 +- ...-v1-latest-streaming-cascade.span-tree.txt | 6 +- .../livekit-v1-order.span-tree.json | 6 +- .../livekit-v1-order.span-tree.txt | 6 +- .../livekit-v1-recovered.span-tree.json | 6 +- .../livekit-v1-recovered.span-tree.txt | 6 +- ...ivekit-v1-streaming-cascade.span-tree.json | 6 +- ...livekit-v1-streaming-cascade.span-tree.txt | 6 +- .../livekit-instrumentation/automatic.mjs | 4 +- .../livekit-instrumentation/scenario.mjs | 9 +- .../livekit-instrumentation/scenario.test.ts | 16 +- js/package.json | 5 - js/src/audio/README.md | 4 +- js/src/audio/audio-worker.ts | 46 ----- js/src/audio/buffers.ts | 2 +- js/src/audio/exporter.test.ts | 8 +- js/src/audio/exporter.ts | 6 +- js/src/audio/fixtures/counting-codec.mjs | 8 - js/src/audio/pcm.test.ts | 162 +++++++++++------ js/src/audio/pcm.ts | 163 ++++++----------- js/src/audio/recorder.test.ts | 20 +-- js/src/audio/recorder.ts | 4 +- js/src/audio/recording.test.ts | 164 +++++++++--------- js/src/audio/recording.ts | 8 +- js/src/audio/segment.test.ts | 2 +- js/src/audio/worker.test.ts | 53 ------ js/src/audio/worker.ts | 128 -------------- js/src/exports.ts | 4 + js/src/imports.test.ts | 11 +- .../livekit/{node => }/audio-options.test.ts | 4 +- .../livekit/{node => }/audio-options.ts | 9 +- .../instrumentation/livekit/capture.test.ts | 41 ++--- .../instrumentation/livekit/processor.test.ts | 13 +- js/src/instrumentation/livekit/processor.ts | 5 +- js/tsup.config.ts | 30 +--- 49 files changed, 375 insertions(+), 678 deletions(-) delete mode 100644 js/src/audio/audio-worker.ts delete mode 100644 js/src/audio/fixtures/counting-codec.mjs delete mode 100644 js/src/audio/worker.test.ts delete mode 100644 js/src/audio/worker.ts rename js/src/instrumentation/livekit/{node => }/audio-options.test.ts (93%) rename js/src/instrumentation/livekit/{node => }/audio-options.ts (75%) diff --git a/.changeset/solid-donuts-drop.md b/.changeset/solid-donuts-drop.md index af9ff3bbf..3873be26c 100644 --- a/.changeset/solid-donuts-drop.md +++ b/.changeset/solid-donuts-drop.md @@ -2,4 +2,4 @@ "braintrust": minor --- -feat: add automatic LiveKit Agents cascade tracing with speech transcripts, model and tool spans, usage, and opt-in WAV recordings. Include shared bounded recording and segmentation utilities, with playback selections published after attachment upload. No audio extension is required; recording remains disabled by default. +feat: add automatic LiveKit Agents cascade tracing with speech transcripts, model and tool spans, usage, and opt-in raw PCM recordings. Include shared bounded recording and segmentation utilities, with playback selections published after attachment upload. Export `wrapLiveKitSession` and `LiveKitSpanProcessor` for manual setup. No audio extension is required; recording remains disabled by default. diff --git a/e2e/config/pr-comment-scenarios.json b/e2e/config/pr-comment-scenarios.json index 881bd68f6..d74ee7269 100644 --- a/e2e/config/pr-comment-scenarios.json +++ b/e2e/config/pr-comment-scenarios.json @@ -939,7 +939,7 @@ }, { "scenarioDirName": "livekit-instrumentation", - "label": "LiveKit cascade instrumentation and WAV recording (streaming STT, tools, interruption recovery; automatic and manual)", + "label": "LiveKit cascade instrumentation and PCM recording (streaming STT, tools, interruption recovery; automatic and manual)", "metadataScenario": "livekit-instrumentation", "variants": [ { diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.json index 7e05b3605..5be6fd989 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.json @@ -275,8 +275,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -292,7 +292,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt index 8a68db4f7..957149980 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json index bc6d90082..761b61814 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json @@ -572,8 +572,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -589,7 +589,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt index 8005658de..0a7492928 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json index 7e05b3605..5be6fd989 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json @@ -275,8 +275,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -292,7 +292,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt index 8a68db4f7..957149980 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json index 5a865502a..902af76b8 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json @@ -572,8 +572,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -589,7 +589,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt index 642d1d2a5..c4748837e 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json index 29d275e7f..52e25081f 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json @@ -577,8 +577,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -594,7 +594,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt index d35b17507..1c08d7a96 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json index df6f06564..909f2a186 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json @@ -878,8 +878,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -895,7 +895,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt index 35139824f..a783f3918 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json index b3804e90f..c0ec88a45 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json @@ -714,8 +714,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -731,7 +731,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt index a6e6fe622..a4214cf16 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json index 714405e85..3ae96a8b7 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json @@ -577,8 +577,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -594,7 +594,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt index 7f5af8c2f..a054f3a87 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json index 40d297b5e..e25c9fb4f 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json @@ -878,8 +878,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -895,7 +895,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt index 1e3c2ba69..46b6db74c 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json index 3015d9a27..a67d4f425 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json @@ -714,8 +714,8 @@ "input": { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -731,7 +731,7 @@ "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt index 193a732e3..581a10cf3 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt @@ -3,8 +3,8 @@ span_tree: input: { "audio": { "call-0000": { - "content_type": "audio/wav", - "filename": "call-0000.wav", + "content_type": "audio/pcm", + "filename": "call-0000.pcm", "key": "", "type": "braintrust_attachment" } @@ -20,7 +20,7 @@ span_tree: "channel_count": 2, "duration_ms": 0, "id": "", - "mime_type": "audio/wav", + "mime_type": "audio/pcm", "recording_group_id": "call", "sample_rate_hz": 24000, "sources": [ diff --git a/e2e/scenarios/livekit-instrumentation/automatic.mjs b/e2e/scenarios/livekit-instrumentation/automatic.mjs index fa953db3a..b67f21533 100644 --- a/e2e/scenarios/livekit-instrumentation/automatic.mjs +++ b/e2e/scenarios/livekit-instrumentation/automatic.mjs @@ -22,7 +22,7 @@ if (mode !== "defaults") ...(mode === "env" ? {} : { - captureAudio: mode === "wav", + captureAudio: mode === "audio", }), }, }, @@ -109,7 +109,7 @@ try { agent: new voice.Agent({ instructions: "Fictional order assistant" }), record: false, }); - if (!["wav", "env"].includes(mode)) + if (!["audio", "env"].includes(mode)) assert.equal( output.captureFrame, original, diff --git a/e2e/scenarios/livekit-instrumentation/scenario.mjs b/e2e/scenarios/livekit-instrumentation/scenario.mjs index b1842e5ec..a3ce0fa11 100644 --- a/e2e/scenarios/livekit-instrumentation/scenario.mjs +++ b/e2e/scenarios/livekit-instrumentation/scenario.mjs @@ -1,7 +1,12 @@ import assert from "node:assert/strict"; -import { initLogger, configureInstrumentation, setFetch } from "braintrust"; +import { + initLogger, + configureInstrumentation, + LiveKitSpanProcessor, + setFetch, + wrapLiveKitSession, +} from "braintrust"; import { getTestRunId, scopedName } from "../../helpers/provider-runtime.mjs"; -import { LiveKitSpanProcessor, wrapLiveKitSession } from "braintrust/livekit"; import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node"; import { AudioFrame, dispose } from "@livekit/rtc-node"; const automatic = process.env.LIVEKIT_AUTOMATIC === "1"; diff --git a/e2e/scenarios/livekit-instrumentation/scenario.test.ts b/e2e/scenarios/livekit-instrumentation/scenario.test.ts index f2e2905f3..f8817a8c3 100644 --- a/e2e/scenarios/livekit-instrumentation/scenario.test.ts +++ b/e2e/scenarios/livekit-instrumentation/scenario.test.ts @@ -420,7 +420,7 @@ for (const variant of ["livekit-v1", "livekit-v1-latest"]) { for (const variant of ["livekit-v1", "livekit-v1-latest"]) { test.sequential.each([0, 137])( - `${variant} progressive WAV order recording (%i ms start delay)`, + `${variant} progressive order recording (%i ms start delay)`, async (startDelayMs) => { await withScenarioHarness(async (harness) => { const result = await harness.runNodeScenarioDir({ @@ -477,7 +477,7 @@ for (const variant of ["livekit-v1", "livekit-v1-latest"]) { expect(recording).toMatchObject({ id: `call-${String(index).padStart(4, "0")}`, state: "ready", - mime_type: "audio/wav", + mime_type: "audio/pcm", recording_group_id: "call", attachment: { span_id: root.span.id, @@ -496,8 +496,8 @@ for (const variant of ["livekit-v1", "livekit-v1-latest"]) { } const attachment = attachments[recording.id]; expect(attachment).toMatchObject({ - filename: `${recording.id}.wav`, - content_type: "audio/wav", + filename: `${recording.id}.pcm`, + content_type: "audio/pcm", }); expect( requests.some( @@ -573,7 +573,7 @@ for (const variant of ["livekit-v1", "livekit-v1-latest"]) { for (const variant of ["livekit-v1", "livekit-v1-latest"]) { for (const mode of [ "off", - "wav", + "audio", "unsampled", "redacted", "integration-off", @@ -621,7 +621,7 @@ for (const variant of ["livekit-v1", "livekit-v1-latest"]) { const metadata = root.row.metadata as | Record | undefined; - if (mode === "wav" || mode === "env") { + if (mode === "audio" || mode === "env") { // Verify wire ordering, not just the final merged trace. const requests = harness.requestsAfter(0); const uploaded = requests.findIndex( @@ -648,7 +648,7 @@ for (const variant of ["livekit-v1", "livekit-v1-latest"]) { expect(metadata?.["audio.recordings"]).toMatchObject([ { state: "ready", - mime_type: mode === "wav" ? "audio/wav" : "audio/wav", + mime_type: "audio/pcm", }, ]); } else expect(metadata?.["audio.recordings"]).toBeUndefined(); @@ -721,7 +721,7 @@ for (const variant of ["livekit-v1", "livekit-v1-latest"]) { findLatestSpan(events, "livekit.agent_session")?.row, ).toMatchObject({ metadata: { - "audio.recordings": [{ state: "ready", mime_type: "audio/wav" }], + "audio.recordings": [{ state: "ready", mime_type: "audio/pcm" }], }, }); expect( diff --git a/js/package.json b/js/package.json index ab8b39fa2..a72758597 100644 --- a/js/package.json +++ b/js/package.json @@ -143,11 +143,6 @@ "import": "./dist/auto-instrumentations/bundler/rollup.mjs", "module": "./dist/auto-instrumentations/bundler/rollup.mjs", "require": "./dist/auto-instrumentations/bundler/rollup.cjs" - }, - "./livekit": { - "types": "./dist/livekit.d.ts", - "import": "./dist/livekit.mjs", - "require": "./dist/livekit.js" } }, "files": [ diff --git a/js/src/audio/README.md b/js/src/audio/README.md index 3c6bdec5d..91b79971d 100644 --- a/js/src/audio/README.md +++ b/js/src/audio/README.md @@ -1,6 +1,6 @@ # Recording utilities for SDK integrations -Internal Node utilities shared by voice integrations. Audio recording buffers timestamped PCM, rotates bounded segments, produces WAV files in a worker, and uploads attachments. Voice recording adds associations between speech spans and audio files. +Internal utilities shared by voice integrations. Audio recording buffers timestamped PCM, rotates bounded segments, renders each segment as raw PCM, and uploads attachments. Voice recording adds associations between speech spans and audio files. ```ts import { Attachment } from "../logger"; @@ -41,3 +41,5 @@ await voice.finish(); | `options.flushFraction` | `0.5` | Segment duration is a rotation target, not the total recording limit. Recording starts only when the integration explicitly enables capture. + +Each segment is uploaded as an `audio/pcm` attachment: headerless, interleaved stereo, signed 16-bit little-endian samples at 24kHz. Channel 0 is left and channel 1 is right; sources at other rates are resampled. The segment's `audio.recordings` descriptor carries `sample_rate_hz` and `channel_count`. diff --git a/js/src/audio/audio-worker.ts b/js/src/audio/audio-worker.ts deleted file mode 100644 index a7e4acb4c..000000000 --- a/js/src/audio/audio-worker.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { parentPort } from "node:worker_threads"; -import { encodeCall, pcmChunks } from "./pcm"; -import type { Packet } from "./recorder"; -parentPort?.on( - "message", - async ({ - packets, - durationMs, - encoderModule, - }: { - packets: Packet[]; - durationMs: number; - encoderModule?: string; - }) => { - try { - const codec = encoderModule ? await import(encoderModule) : undefined; - if (codec?.encodeChunks) { - // The optional codec preserves resampling history between PCM blocks. - const encoded = await codec.encodeChunks( - pcmChunks(packets, durationMs), - 24000, - 2, - ); - parentPort!.postMessage( - { ...encoded, durationMs: Math.round(durationMs * 24) / 24 }, - [encoded.bytes.buffer], - ); - } else { - // Preserve compatibility with codecs exposing the original encode API. - const result = encodeCall(packets, durationMs); - const encoded = codec - ? await codec.encode( - new Int16Array(result.bytes.buffer, 44), - 24000, - 2, - ) - : { bytes: result.bytes, mimeType: "audio/wav", sampleRate: 24000 }; - parentPort!.postMessage({ ...encoded, durationMs: result.durationMs }, [ - encoded.bytes.buffer, - ]); - } - } catch { - parentPort!.postMessage({ reason: "encoding_failed" }); - } - }, -); diff --git a/js/src/audio/buffers.ts b/js/src/audio/buffers.ts index d01e139a3..d4f17daf1 100644 --- a/js/src/audio/buffers.ts +++ b/js/src/audio/buffers.ts @@ -1,4 +1,4 @@ -/** Owns PCM reservations across staging, recorder admission and worker transfer. */ +/** Owns PCM reservations across staging, recorder admission and export. */ export class PcmBuffers { private leases = new Map< ArrayBufferLike, diff --git a/js/src/audio/exporter.test.ts b/js/src/audio/exporter.test.ts index e3ae4bd36..95fa82c52 100644 --- a/js/src/audio/exporter.test.ts +++ b/js/src/audio/exporter.test.ts @@ -93,7 +93,7 @@ function fixture() { bytes: new Uint8Array(bytes), durationMs: 20, sampleRate: 24000, - mimeType: "audio/wav", + mimeType: "audio/pcm", }; }, (options) => new TestAttachment(options), @@ -157,8 +157,8 @@ test.each([16, 17 * 1024 * 1024])( )![0].input.audio[segment.id]; expect(reference).toMatchObject({ key: expect.any(String), - filename: "call-0.wav", - content_type: "audio/wav", + filename: "call-0.pcm", + content_type: "audio/pcm", }); expect(reference).not.toBeInstanceOf(TestAttachment); const rows = f.span.log.mock.calls.length; @@ -261,7 +261,7 @@ test.each([false, true])( bytes: new Uint8Array(16), durationMs: 20, sampleRate: 24000, - mimeType: "audio/wav", + mimeType: "audio/pcm", }; }, () => ({ reference: "uploaded", upload }), diff --git a/js/src/audio/exporter.ts b/js/src/audio/exporter.ts index 276d9e097..383ffc25b 100644 --- a/js/src/audio/exporter.ts +++ b/js/src/audio/exporter.ts @@ -3,7 +3,7 @@ import { AudioSegment, type Packet, type EncodedAudio } from "./segment"; export type Encoder = ( packets: Packet[], durationMs: number, -) => Promise; +) => EncodedAudio | Promise; export type CreateAttachment = (options: { data: Uint8Array; filename: string; @@ -36,7 +36,7 @@ export class SegmentExporter { }); return; } finally { - // Release source memory only after the worker has finished with it. + // Encoded bytes are independent of the source; release it either way. for (const packet of packets) { release(packet.pcm); } @@ -46,7 +46,7 @@ export class SegmentExporter { try { const attachment = this.createAttachment({ data: data.bytes, - filename: `${segment.id}.${data.mimeType === "audio/ogg" ? "ogg" : "wav"}`, + filename: `${segment.id}.pcm`, contentType: data.mimeType, }); const result = await attachment.upload(); diff --git a/js/src/audio/fixtures/counting-codec.mjs b/js/src/audio/fixtures/counting-codec.mjs deleted file mode 100644 index 61f93cf8b..000000000 --- a/js/src/audio/fixtures/counting-codec.mjs +++ /dev/null @@ -1,8 +0,0 @@ -let calls = 0; -export function encode() { - return { - bytes: Uint8Array.of(++calls), - mimeType: "audio/wav", - sampleRate: 24000, - }; -} diff --git a/js/src/audio/pcm.test.ts b/js/src/audio/pcm.test.ts index 31cec3f0e..8e2c1b273 100644 --- a/js/src/audio/pcm.test.ts +++ b/js/src/audio/pcm.test.ts @@ -1,46 +1,74 @@ import { expect, test } from "vitest"; -import { encodeCall, pcmChunks } from "./pcm"; +import { encodePcm } from "./pcm"; +import type { Packet } from "./segment"; -test("bounded rendering preserves resampling phase across chunks and pads the final timeline", () => { +function frames(bytes: Uint8Array) { + const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); + return Array.from({ length: bytes.byteLength / 4 }, (_, i) => [ + view.getInt16(i * 4, true), + view.getInt16(i * 4 + 2, true), + ]); +} + +test("renders headerless 24kHz stereo PCM for the requested duration", () => { + const result = encodePcm( + [ + { + pcm: new Int16Array(240).fill(1), + rate: 24000, + channels: 1, + channel: 0, + at: 0, + }, + ], + 20, + ); + expect(result).toMatchObject({ + mimeType: "audio/pcm", + sampleRate: 24000, + durationMs: 20, + }); + expect(result.bytes.byteLength).toBe(480 * 4); + expect(frames(result.bytes).slice(238, 242)).toEqual([ + [1, 0], + [1, 0], + [0, 0], + [0, 0], + ]); +}); + +test("resampling interpolates linearly from each packet's offset and pads the timeline", () => { const source = Int16Array.from( { length: 12000 }, (_, i) => (i % 97) * 100 - 4000, ); - for (const rate of [24000, 48000]) { - const frames = Array.from( - pcmChunks( - [{ pcm: source, rate: 44100, channels: 1, channel: 1, at: 7.3 }], - 400, - rate, - ), - (block) => block.slice(), - ); - expect(Math.max(...frames.map((f) => f.length))).toBeLessThanOrEqual( - (rate / 10) * 2, - ); - const actual = Int16Array.from(frames.flatMap((f) => [...f])); - expect(actual.length).toBe(rate * 0.4 * 2); - const start = Math.round((7.3 * rate) / 1000), - length = Math.round((source.length / 44100) * rate); - for (let i = 0; i < actual.length / 2; i++) { - const position = ((i - start) * 44100) / rate, - lo = Math.floor(position), - alpha = position - lo; - const expected = - i < start || i >= start + length - ? 0 - : Math.round( - source[Math.min(lo, source.length - 1)] * (1 - alpha) + - source[Math.min(lo + 1, source.length - 1)] * alpha, - ); - expect(actual[i * 2]).toBe(0); - expect(actual[i * 2 + 1]).toBe(expected); - } + const actual = frames( + encodePcm( + [{ pcm: source, rate: 44100, channels: 1, channel: 1, at: 7.3 }], + 400, + ).bytes, + ); + expect(actual).toHaveLength(9600); + const start = Math.round((7.3 * 24000) / 1000), + length = Math.round((source.length / 44100) * 24000); + for (const [i, [left, right]] of actual.entries()) { + const position = ((i - start) * 44100) / 24000, + lo = Math.floor(position), + alpha = position - lo; + const expected = + i < start || i >= start + length + ? 0 + : Math.round( + source[Math.min(lo, source.length - 1)] * (1 - alpha) + + source[Math.min(lo + 1, source.length - 1)] * alpha, + ); + expect(left).toBe(0); + expect(right).toBe(expected); } }); -test("rendering preserves packet overwrite order, channel separation, silence and WAV samples", () => { - const packets = [ +test("rendering preserves packet overwrite order, channel separation and silence", () => { + const packets: Packet[] = [ { pcm: new Int16Array(4800).fill(123), rate: 24000, @@ -63,22 +91,16 @@ test("rendering preserves packet overwrite order, channel separation, silence an at: 0, }, ]; - const pcm = Int16Array.from( - Array.from(pcmChunks(packets, 300), (block) => [...block]).flat(), - ); - const wav = encodeCall(packets, 300), - view = new DataView(wav.bytes.buffer); - for (let i = 0; i < pcm.length / 2; i++) { - expect(pcm[i * 2]).toBe(i < 4800 ? 789 : i < 6000 ? 123 : 0); - expect(pcm[i * 2 + 1]).toBe(i < 4800 ? 456 : 0); - expect(view.getInt16(44 + i * 4, true)).toBe(pcm[i * 2]); - expect(view.getInt16(46 + i * 4, true)).toBe(pcm[i * 2 + 1]); + for (const [i, [left, right]] of frames( + encodePcm(packets, 300).bytes, + ).entries()) { + expect(left).toBe(i < 4800 ? 789 : i < 6000 ? 123 : 0); + expect(right).toBe(i < 4800 ? 456 : 0); } }); -// Exercise both upsampling and downsampling through the rendered WAV output. -test("mixed source rates retain channel values and duration", () => { - const result = encodeCall([ +test("mixed source rates retain channel values and infer duration", () => { + const result = encodePcm([ { pcm: new Int16Array(160).fill(1000), rate: 8000, @@ -95,13 +117,43 @@ test("mixed source rates retain channel values and duration", () => { }, ]); expect(result.durationMs).toBe(20); - const view = new DataView( - result.bytes.buffer, - result.bytes.byteOffset, - result.bytes.byteLength, + expect(new Set(frames(result.bytes).map(String))).toEqual( + new Set(["1000,-1000"]), ); - for (let offset = 44; offset < result.bytes.byteLength; offset += 4) { - expect(view.getInt16(offset, true)).toBe(1000); - expect(view.getInt16(offset + 2, true)).toBe(-1000); - } }); + +test("stereo sources are averaged onto their channel", () => { + const result = encodePcm([ + { + pcm: Int16Array.of(100, 300, 1000, -1000), + rate: 24000, + channels: 2, + channel: 1, + at: 0, + }, + ]); + expect(frames(result.bytes)).toEqual([ + [0, 200], + [0, 0], + ]); +}); + +test.each([ + [[], undefined, "invalid_duration"], + [[], 1800001, "invalid_duration"], + [ + [{ pcm: new Int16Array(1), rate: 24000, channels: 1, channel: 2, at: 0 }], + 20, + "invalid_packet", + ], + [ + [{ pcm: new Int16Array(1), rate: 4000, channels: 1, channel: 0, at: 0 }], + 20, + "invalid_packet", + ], +] as [Packet[], number | undefined, string][])( + "rejects unsupported input (%#)", + (packets, durationMs, reason) => { + expect(() => encodePcm(packets, durationMs)).toThrow(reason); + }, +); diff --git a/js/src/audio/pcm.ts b/js/src/audio/pcm.ts index b01f49cbc..ef8c761be 100644 --- a/js/src/audio/pcm.ts +++ b/js/src/audio/pcm.ts @@ -1,13 +1,14 @@ import { msToSamples, samplesToMs, CALL_SAMPLE_RATE } from "./timeline"; -import type { Packet } from "./recorder"; -/** Bounded 24kHz stereo WAV assembly, entirely outside the voice event loop. */ -export function encodeCall( +import type { EncodedAudio, Packet } from "./segment"; +/** + * Render a bounded call timeline as raw PCM: interleaved stereo, signed 16-bit + * little-endian at 24kHz. Each packet is resampled onto its channel; gaps are + * silence and later packets overwrite earlier overlapping audio. + */ +export function encodePcm( packets: Packet[], durationMs?: number, -): { - bytes: Uint8Array; - durationMs: number; -} { +): EncodedAudio { const rate = CALL_SAMPLE_RATE; const samples = durationMs === undefined @@ -26,116 +27,50 @@ export function encodeCall( if (!Number.isSafeInteger(samples) || samples <= 0 || samples > 1800 * rate) { throw new Error("invalid_duration"); } - const bytes = new Uint8Array(44 + samples * 4); + const bytes = new Uint8Array(samples * 4); const view = new DataView(bytes.buffer); - const text = (offset: number, value: string) => { - for (let i = 0; i < value.length; i++) { - bytes[offset + i] = value.charCodeAt(i); + for (const p of packets) { + if ( + ![0, 1].includes(p.channel) || + ![1, 2].includes(p.channels) || + !Number.isFinite(p.rate) || + p.rate < 8000 || + p.rate > 96000 || + !Number.isFinite(p.at) || + p.at < 0 + ) { + throw new Error("invalid_packet"); } - }; - text(0, "RIFF"); - view.setUint32(4, bytes.length - 8, true); - text(8, "WAVEfmt "); - view.setUint32(16, 16, true); - view.setUint16(20, 1, true); - view.setUint16(22, 2, true); - view.setUint32(24, rate, true); - view.setUint32(28, rate * 4, true); - view.setUint16(32, 4, true); - view.setUint16(34, 16, true); - text(36, "data"); - view.setUint32(40, samples * 4, true); - let offset = 44; - for (const chunk of pcmChunks(packets, samplesToMs(samples, rate), rate)) { - for (const value of chunk) { - view.setInt16(offset, value, true); - offset += 2; - } - } - return { bytes, durationMs: samplesToMs(samples, rate) }; -} - -/** Render bounded stereo blocks. Resampling positions stay relative to each - * source packet, so a block boundary never resets interpolation phase. - * Blocks borrow a reusable buffer, valid until the iterator advances. */ -export function* pcmChunks( - packets: Packet[], - durationMs: number, - rate = CALL_SAMPLE_RATE, -): Generator { - const samples = Math.round(msToSamples(durationMs, rate)); - if ( - ![24000, 48000].includes(rate) || - !Number.isSafeInteger(samples) || - samples <= 0 || - samples > 1800 * rate - ) { - throw new Error("invalid_duration"); - } - const pending = packets - .map((packet, index) => { - if ( - ![0, 1].includes(packet.channel) || - ![1, 2].includes(packet.channels) || - !Number.isFinite(packet.rate) || - packet.rate < 8000 || - packet.rate > 96000 || - !Number.isFinite(packet.at) || - packet.at < 0 - ) { - throw new Error("invalid_packet"); + const start = Math.round(msToSamples(p.at, rate)); + const end = Math.min( + samples, + start + Math.round((p.pcm.length / p.channels / p.rate) * rate), + ); + for (let i = start; i < end; i++) { + // Linear interpolation, averaging interleaved source channels to mono. + const position = ((i - start) * p.rate) / rate, + lo = Math.floor(position), + alpha = position - lo; + let value = 0; + for (let channel = 0; channel < p.channels; channel++) { + const a = + p.pcm[Math.min(lo * p.channels + channel, p.pcm.length - 1)] ?? 0; + const b = + p.pcm[Math.min((lo + 1) * p.channels + channel, p.pcm.length - 1)] ?? + a; + value += a + (b - a) * alpha; } - const start = Math.round(msToSamples(packet.at, rate)); - return { - packet, - index, - start, - end: - start + - Math.round( - (packet.pcm.length / packet.channels / packet.rate) * rate, - ), - }; - }) - .sort((a, b) => a.start - b.start || a.index - b.index); - let cursor = 0; - let active: typeof pending = []; - const buffer = new Int16Array((rate / 10) * 2); - for (let start = 0; start < samples; start += rate / 10) { - const end = Math.min(samples, start + rate / 10); - active = active.filter((p) => p.end > start); - while (cursor < pending.length && pending[cursor].start < end) { - active.push(pending[cursor++]); + view.setInt16( + (i * 2 + p.channel) * 2, + Math.max(-32768, Math.min(32767, Math.round(value / p.channels))), + true, + ); } - // Overlapping packets retain the same last-writer behavior as WAV assembly. - active.sort((a, b) => a.index - b.index); - const chunk = buffer.subarray(0, (end - start) * 2); - chunk.fill(0); - for (const { packet: p, start: packetStart, end: packetEnd } of active) { - for ( - let i = Math.max(start, packetStart); - i < Math.min(end, packetEnd); - i++ - ) { - const position = ((i - packetStart) * p.rate) / rate, - lo = Math.floor(position), - alpha = position - lo; - let value = 0; - for (let channel = 0; channel < p.channels; channel++) { - const a = - p.pcm[Math.min(lo * p.channels + channel, p.pcm.length - 1)] ?? 0; - const b = - p.pcm[ - Math.min((lo + 1) * p.channels + channel, p.pcm.length - 1) - ] ?? a; - value += a + (b - a) * alpha; - } - chunk[(i - start) * 2 + p.channel] = Math.max( - -32768, - Math.min(32767, Math.round(value / p.channels)), - ); - } - } - yield chunk; } + return { + bytes, + durationMs: samplesToMs(samples, rate), + mimeType: "audio/pcm", + sampleRate: rate, + }; } diff --git a/js/src/audio/recorder.test.ts b/js/src/audio/recorder.test.ts index a462871a5..1a770a420 100644 --- a/js/src/audio/recorder.test.ts +++ b/js/src/audio/recorder.test.ts @@ -3,15 +3,7 @@ import { expect, test } from "vitest"; import { Recorder, type RecordingOptions } from "./recorder"; import { SegmentExporter, type Encoder } from "./exporter"; import type { EncodedAudio } from "./segment"; -import { encodeCall } from "./pcm"; -const encode = async ( - packets: Parameters[0], - durationMs: number, -) => ({ - ...encodeCall(packets, durationMs), - mimeType: "audio/wav", - sampleRate: 24000, -}); +import { encodePcm as encode } from "./pcm"; // Exercise the recorder with real segment execution and in-memory remote storage. function recording( options: RecordingOptions, @@ -70,7 +62,7 @@ test("exports progressively with bounded source memory across a ten minute timel for (const [i, f] of files.entries()) { expect(f.start).toBe(i * 30000); const view = new DataView(f.bytes.buffer); - expect(view.getInt16(44, true)).toBe(1000); + expect(view.getInt16(0, true)).toBe(1000); expect(view.getInt16(f.bytes.length - 2, true)).toBe(-2000); } }); @@ -92,7 +84,7 @@ test("splits a packet crossing the cut without losing its tail", async () => { r.advance(1000); await r.drain(); await r.finish(); - expect(files.map((f) => (f.length - 44) / 4)).toEqual([24000, 24000, 24000]); + expect(files.map((f) => f.length / 4)).toEqual([24000, 24000, 24000]); expect(r.retainedBytes).toBe(0); }); test("rotated files reconstruct both source channels sample-for-sample including a partial final file", async () => { @@ -132,7 +124,7 @@ test("rotated files reconstruct both source channels sample-for-sample including await recorder.drain(); } await recorder.finish(); - expect(files.map((file) => (file.length - 44) / 4)).toEqual([ + expect(files.map((file) => file.length / 4)).toEqual([ 24000, 24000, 24000, 1777, ]); const expected = Buffer.alloc(length * 4); @@ -140,9 +132,7 @@ test("rotated files reconstruct both source channels sample-for-sample including expected.writeInt16LE(input[i], i * 4); expected.writeInt16LE(output[i], i * 4 + 2); } - expect( - Buffer.concat(files.map((file) => file.subarray(44))).equals(expected), - ).toBe(true); + expect(Buffer.concat(files).equals(expected)).toBe(true); }); test("hard duration limit preserves the prefix and reports truncation", async () => { diff --git a/js/src/audio/recorder.ts b/js/src/audio/recorder.ts index 93d8aabd7..ceb429d75 100644 --- a/js/src/audio/recorder.ts +++ b/js/src/audio/recorder.ts @@ -60,7 +60,7 @@ export class Recorder { return; } } - /** Discard staged audio; admitted audio belongs to the recorder/worker. */ + /** Discard staged audio; admitted audio belongs to the recorder until export. */ release(pcm: Int16Array) { this.buffers.discard(pcm); } @@ -247,7 +247,7 @@ export class Recorder { this.closed = true; this.pump(); await this.drain(); - // Unsubmitted copies (e.g. cancelled output) have no worker owner now. + // Unsubmitted copies (e.g. cancelled output) have no export owner now. this.buffers.close(); this.packets = []; } diff --git a/js/src/audio/recording.test.ts b/js/src/audio/recording.test.ts index 184fe9a07..8c63113c8 100644 --- a/js/src/audio/recording.test.ts +++ b/js/src/audio/recording.test.ts @@ -1,91 +1,93 @@ import { expect, test, vi } from "vitest"; import { createAudioRecording } from "./index"; -test.each(["wav"] as const)( - "public recording API exports %s only after upload succeeds", - async (audioFormat) => { - const log = vi.fn(); - const flush = vi.fn(async () => {}); - let complete!: () => void; - let started!: () => void; - const uploading = new Promise((resolve) => { - started = resolve; - }); - const uploaded = new Promise((resolve) => { - complete = resolve; - }); - const createAttachment = vi.fn( - (options: { - data: Uint8Array; - filename: string; - contentType: string; - }) => ({ - reference: { - key: "uploaded", - filename: options.filename, - content_type: options.contentType, - }, - upload: async () => { - started(); - await uploaded; - return { upload_status: "done" }; - }, - }), - ); - const recording = createAudioRecording({ - // Explicit undefined must behave like an omitted optional setting. - options: { - segmentDurationSeconds: undefined, - maxDurationSeconds: undefined, - maxBufferBytes: undefined, - flushFraction: undefined, +test("public recording API exports PCM only after upload succeeds", async () => { + const log = vi.fn(); + const flush = vi.fn(async () => {}); + let complete!: () => void; + let started!: () => void; + const uploading = new Promise((resolve) => { + started = resolve; + }); + const uploaded = new Promise((resolve) => { + complete = resolve; + }); + const createAttachment = vi.fn( + (options: { data: Uint8Array; filename: string; contentType: string }) => ({ + reference: { + key: "uploaded", + filename: options.filename, + content_type: options.contentType, }, - span: { spanId: "call", log }, - flush, - createAttachment, - snapshot: () => ({ - origin: 1234, - basis: "test", + upload: async () => { + started(); + await uploaded; + return { upload_status: "done" }; + }, + }), + ); + const recording = createAudioRecording({ + // Explicit undefined must behave like an omitted optional setting. + options: { + segmentDurationSeconds: undefined, + maxDurationSeconds: undefined, + maxBufferBytes: undefined, + flushFraction: undefined, + }, + span: { spanId: "call", log }, + flush, + createAttachment, + snapshot: () => ({ + origin: 1234, + basis: "test", - source: (channel_index) => ({ channel_index }), - }), + source: (channel_index) => ({ channel_index }), + }), + }); + recording.record({ + pcm: new Int16Array(480).fill(1000), + at: 0, + rate: 24000, + channels: 1, + channel: 0, + }); + const finishing = recording.finish(); + try { + await uploading; + recording.publishRecordings(); + expect( + log.mock.calls + .flatMap(([row]) => row.metadata?.["audio.recordings"] ?? []) + .every((r) => r.state === "pending"), + ).toBe(true); + expect(log.mock.calls.some(([row]) => row.input?.audio)).toBe(false); + const file = createAttachment.mock.calls[0][0]; + expect(file).toMatchObject({ + filename: "call-0000.pcm", + contentType: "audio/pcm", }); - recording.record({ - pcm: new Int16Array(480).fill(1000), - at: 0, - rate: 24000, - channels: 1, - channel: 0, + // 20ms of headerless stereo frames, with the source on the left channel. + expect(file.data.byteLength).toBe(480 * 4); + expect(Buffer.from(file.data).readInt16LE(0)).toBe(1000); + expect(Buffer.from(file.data).readInt16LE(2)).toBe(0); + complete(); + await finishing; + expect( + log.mock.calls + .flatMap(([row]) => row.metadata?.["audio.recordings"] ?? []) + .at(-1), + ).toMatchObject({ + state: "ready", + mime_type: "audio/pcm", + sample_rate_hz: 24000, + channel_count: 2, }); - const finishing = recording.finish(); - try { - await uploading; - recording.publishRecordings(); - expect( - log.mock.calls - .flatMap(([row]) => row.metadata?.["audio.recordings"] ?? []) - .every((r) => r.state === "pending"), - ).toBe(true); - expect(log.mock.calls.some(([row]) => row.input?.audio)).toBe(false); - const file = createAttachment.mock.calls[0][0]; - expect(Buffer.from(file.data.subarray(0, 4)).toString()).toBe( - audioFormat === "wav" ? "RIFF" : "OggS", - ); - expect(file.contentType).toBe(`audio/${audioFormat}`); - complete(); - await finishing; - expect( - log.mock.calls - .flatMap(([row]) => row.metadata?.["audio.recordings"] ?? []) - .at(-1), - ).toMatchObject({ state: "ready", mime_type: `audio/${audioFormat}` }); - expect(flush).toHaveBeenCalled(); - } finally { - complete(); - await finishing; - } - }, -); + expect(flush).toHaveBeenCalled(); + } finally { + complete(); + await finishing; + } +}); test("staged audio is copied, can be discarded, and is bounded independently per recording", async () => { const source = new Int16Array(12 * 1024 * 1024); diff --git a/js/src/audio/recording.ts b/js/src/audio/recording.ts index 8a58bc3ca..00eaa217b 100644 --- a/js/src/audio/recording.ts +++ b/js/src/audio/recording.ts @@ -5,12 +5,11 @@ import { type RecordingContext, } from "./publisher"; import { SegmentExporter, type CreateAttachment } from "./exporter"; -import { createEncoder } from "./worker"; +import { encodePcm } from "./pcm"; import type { Packet, Segment } from "./segment"; export interface AudioRecordingConfig { options?: RecordingOptions; - encoder?: { module: string }; span: RecordingSpan; flush: () => Promise; snapshot: () => Omit; @@ -28,10 +27,7 @@ class Recording { constructor(config: AudioRecordingConfig) { this.recorder = new Recorder( config.options ?? {}, - new SegmentExporter( - createEncoder(config.encoder), - config.createAttachment, - ), + new SegmentExporter(encodePcm, config.createAttachment), (segment) => this.publisher.publish(segment), () => this.publisher.publishRecordings(), ); diff --git a/js/src/audio/segment.test.ts b/js/src/audio/segment.test.ts index 44106c311..584bd19a0 100644 --- a/js/src/audio/segment.test.ts +++ b/js/src/audio/segment.test.ts @@ -4,7 +4,7 @@ import { AudioSegment } from "./segment"; const encoded = { durationMs: 20, sampleRate: 24000, - mimeType: "audio/wav", + mimeType: "audio/pcm", }; function segment() { return new AudioSegment("call-0000", 40, 60, [ diff --git a/js/src/audio/worker.test.ts b/js/src/audio/worker.test.ts deleted file mode 100644 index 73fcb4e7e..000000000 --- a/js/src/audio/worker.test.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { expect, test } from "vitest"; -import { createEncoder } from "./worker"; -test("worker admission permits one running and one queued job, without blocking a caller", async () => { - const encoder = createEncoder(); - const packet = () => [ - { - pcm: new Int16Array(24000).fill(1234), - rate: 24000, - channels: 1, - channel: 0, - at: 0, - }, - ]; - const results = await Promise.allSettled([ - encoder(packet(), 1000), - encoder(packet(), 1000), - encoder(packet(), 1000), - ]); - expect(results.map((r) => r.status)).toEqual([ - "fulfilled", - "fulfilled", - "rejected", - ]); - const first = results[0]; - if (first.status === "fulfilled") { - expect(first.value.bytes.length).toBe(96044); - } - expect(results[2]).toMatchObject({ - reason: { message: "recording_worker_capacity" }, - }); -}); - -test("a failed codec releases admission for subsequent recordings", async () => { - await expect( - createEncoder({ module: "file:///missing-braintrust-test-codec.mjs" })( - [], - 20, - ), - ).rejects.toThrow(); - const result = await createEncoder()([], 20); - expect(result.mimeType).toBe("audio/wav"); - expect(result.bytes.length).toBe(1964); -}); - -test("successive segments reuse the codec runtime but keep independent output buffers", async () => { - const encoder = createEncoder({ - module: new URL("./fixtures/counting-codec.mjs", import.meta.url).href, - }); - const first = await encoder([], 20); - const second = await encoder([], 20); - expect([...first.bytes]).toEqual([1]); - expect([...second.bytes]).toEqual([2]); -}); diff --git a/js/src/audio/worker.ts b/js/src/audio/worker.ts deleted file mode 100644 index c82917118..000000000 --- a/js/src/audio/worker.ts +++ /dev/null @@ -1,128 +0,0 @@ -import type * as workerThreads from "node:worker_threads"; -import type { Worker } from "node:worker_threads"; -import { createRequire } from "node:module"; -import { dirname, join } from "node:path"; -import type { Encoder } from "./exporter"; -import type { EncodedAudio } from "./segment"; -const key = Symbol.for("braintrust.audio.workers.v1"); -type Pool = { - running: boolean; - queue: (() => void)[]; - worker?: Worker; - idle?: ReturnType; -}; -const pool: Pool = Reflect.get(globalThis, key) ?? { - running: false, - queue: [], -}; -Reflect.set(globalThis, key, pool); -async function acquire() { - if (pool.running) { - if (pool.queue.length >= 1) { - throw new Error("recording_worker_capacity"); - } - await new Promise((resolve) => pool.queue.push(resolve)); - } else { - pool.running = true; - } - clearTimeout(pool.idle); - pool.idle = undefined; -} -function release() { - const next = pool.queue.shift(); - if (next) { - next(); - } else { - pool.running = false; - const worker = pool.worker; - if (!worker) { - return; - } - // Reuse nearby work, but do not pin a codec isolate indefinitely after a call. - worker.unref(); - pool.idle = setTimeout(() => { - pool.idle = undefined; - if (pool.worker === worker && !pool.running) { - pool.worker = undefined; - void worker.terminate().catch(() => {}); - } - }, 10000); - pool.idle.unref(); - } -} -function getWorker() { - if (!pool.worker) { - // Resolve the native worker at runtime so app bundlers do not try to bundle - // its separately shipped entrypoint when importing the SDK. - const load = createRequire(join(process.cwd(), "package.json")); - const { Worker }: typeof workerThreads = load("node:worker_threads"); - const worker = new Worker( - join( - dirname(load.resolve("braintrust/package.json")), - "dist/audio-worker.mjs", - ), - // Keep short-lived conversion objects from growing a large nursery in - // the codec isolate. This does not constrain the application's JS heap. - { - env: {}, - execArgv: [], - resourceLimits: { maxYoungGenerationSizeMb: 2 }, - }, - ); - pool.worker = worker; - const clear = () => { - if (pool.worker === worker) { - pool.worker = undefined; - } - }; - // Idle worker failures must neither become unhandled errors nor poison reuse. - worker.on("error", clear); - worker.on("exit", clear); - } - pool.worker.ref(); - return pool.worker; -} -export function createEncoder(codec?: { module: string }): Encoder { - return async (packets, durationMs) => { - await acquire(); - let worker: Worker | undefined; - let timer: ReturnType | undefined; - let cleanup = () => {}; - try { - worker = getWorker(); - return await new Promise((resolve, reject) => { - const message = (result: EncodedAudio & { reason?: string }) => - result.reason ? reject(new Error(result.reason)) : resolve(result); - const error = () => reject(new Error("encoding_failed")); - const exit = () => reject(new Error("encoder_exit")); - worker!.once("message", message); - worker!.once("error", error); - worker!.once("exit", exit); - cleanup = () => { - worker!.off("message", message); - worker!.off("error", error); - worker!.off("exit", exit); - }; - timer = setTimeout(() => reject(new Error("encoder_deadline")), 10000); - const buffers = [...new Set(packets.map((p) => p.pcm.buffer))].filter( - (b): b is ArrayBuffer => b instanceof ArrayBuffer, - ); - worker!.postMessage( - { packets, durationMs, encoderModule: codec?.module }, - buffers, - ); - }); - } catch (error) { - if (pool.worker === worker) { - pool.worker = undefined; - } - // Never reuse a failed/timed-out codec job; keep admission until it stops. - await worker?.terminate().catch(() => {}); - throw error; - } finally { - clearTimeout(timer); - cleanup(); - release(); - } - }; -} diff --git a/js/src/exports.ts b/js/src/exports.ts index 98c512d01..d136af75c 100644 --- a/js/src/exports.ts +++ b/js/src/exports.ts @@ -231,6 +231,10 @@ export { wrapGoogleADK } from "./wrappers/google-adk"; export { wrapGenkit } from "./wrappers/genkit"; export { wrapHuggingFace } from "./wrappers/huggingface"; export { wrapHuggingFaceTransformers } from "./wrappers/huggingface-transformers"; +export { + LiveKitSpanProcessor, + wrapLiveKitSession, +} from "./instrumentation/livekit/processor"; export { wrapOpenRouterAgent } from "./wrappers/openrouter-agent"; export { wrapOpenRouter } from "./wrappers/openrouter"; export { wrapMistral } from "./wrappers/mistral"; diff --git a/js/src/imports.test.ts b/js/src/imports.test.ts index 4a91b55d1..96a4851d5 100644 --- a/js/src/imports.test.ts +++ b/js/src/imports.test.ts @@ -228,16 +228,7 @@ describe("CLI import restrictions", () => { if ( /\bimport\s*\(/.test(line) && !/^import\s+/.test(line.trim()) && - !relativePath.includes( - "instrumentation/plugins/anthropic-plugin.ts", - ) && - // The audio worker loads an optional codec selected at runtime. A static - // import would make that codec a required SDK dependency. Keep this - // exception limited to the worker's codec import, on all platforms. - !( - relativePath.replaceAll(path.sep, "/") === - "audio/audio-worker.ts" && /\bimport\(encoderModule\)/.test(line) - ) + !relativePath.includes("instrumentation/plugins/anthropic-plugin.ts") ) { violations.push( `${relativePath}:${index + 1} - Found dynamic import() statement: "${line.trim()}"`, diff --git a/js/src/instrumentation/livekit/node/audio-options.test.ts b/js/src/instrumentation/livekit/audio-options.test.ts similarity index 93% rename from js/src/instrumentation/livekit/node/audio-options.test.ts rename to js/src/instrumentation/livekit/audio-options.test.ts index e550dd8dd..3765b90f5 100644 --- a/js/src/instrumentation/livekit/node/audio-options.test.ts +++ b/js/src/instrumentation/livekit/audio-options.test.ts @@ -1,7 +1,9 @@ import { beforeEach, afterEach, expect, test, vi } from "vitest"; -import * as extension from "../../../audio/index"; +import * as extension from "../../audio/index"; +import iso from "../../isomorph"; import { resolveAudioOptions } from "./audio-options"; beforeEach(() => { + vi.spyOn(iso, "getEnv").mockImplementation((name) => process.env[name]); for (const key of [ "BRAINTRUST_CAPTURE_ATTACHMENTS", "BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS", diff --git a/js/src/instrumentation/livekit/node/audio-options.ts b/js/src/instrumentation/livekit/audio-options.ts similarity index 75% rename from js/src/instrumentation/livekit/node/audio-options.ts rename to js/src/instrumentation/livekit/audio-options.ts index 2ee922077..c74bcd983 100644 --- a/js/src/instrumentation/livekit/node/audio-options.ts +++ b/js/src/instrumentation/livekit/audio-options.ts @@ -1,13 +1,14 @@ -import type { AudioRecordingModule } from "../audio"; -import * as audio from "../../../audio"; -import type { LiveKitOptions } from "../options"; +import type { AudioRecordingModule } from "./audio"; +import * as audio from "../../audio"; +import iso from "../../isomorph"; +import type { LiveKitOptions } from "./options"; export function resolveAudioOptions( options: LiveKitOptions, loadRecording: () => AudioRecordingModule = () => audio, ) { const flag = (name: string) => { - const value = process.env[name]; + const value = iso.getEnv(name); return ( value !== undefined && ["1", "true"].includes(value.trim().toLowerCase()) ); diff --git a/js/src/instrumentation/livekit/capture.test.ts b/js/src/instrumentation/livekit/capture.test.ts index 82b08399d..9fe67ea17 100644 --- a/js/src/instrumentation/livekit/capture.test.ts +++ b/js/src/instrumentation/livekit/capture.test.ts @@ -1,29 +1,16 @@ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ import { EventEmitter } from "node:events"; -import { afterEach, beforeEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vitest"; import { createAudioRecording, timeline, type RecordingOptions, } from "../../audio/index"; -import * as audioWorker from "../../audio/worker"; -import { encodeCall } from "../../audio/pcm"; import { mergeSelections } from "../../audio/selections"; import { instrumentInput, instrumentOutput, release } from "./capture"; import type { Capture } from "./runtime"; type AudioFile = { bytes: Uint8Array; durationMs: number }; const captures: Capture[] = []; -beforeEach(() => { - // Core-only test jobs do not build the optional audio worker. Keep real WAV - // encoding here; worker execution is covered by audio tests and LiveKit E2E. - vi.spyOn(audioWorker, "createEncoder").mockReturnValue( - async (packets, durationMs) => ({ - ...encodeCall(packets, durationMs), - mimeType: "audio/wav", - sampleRate: 24000, - }), - ); -}); function capture( options: RecordingOptions = {}, ): Capture & { files: AudioFile[] } { @@ -54,7 +41,7 @@ function capture( createAttachment: ({ data }) => ({ reference: {}, upload: async () => { - files.push({ bytes: data, durationMs: (data.length - 44) / 96 }); + files.push({ bytes: data, durationMs: data.length / 96 }); return { upload_status: "done" }; }, }), @@ -158,12 +145,12 @@ test("interruption includes only sink progress ranges, excluding queued tail and c.events.get("turn")![0].attributes.synchronizedTranscript, ).toBeUndefined(); await c.recording.finish(); - const wav = c.files[0]; - expect(wav.durationMs).toBe(80); - const view = new DataView(wav.bytes.buffer); - expect(view.getUint16(22, true)).toBe(2); - expect(view.getInt16(44 + 240 * 4 + 2, true)).toBe(1234); - expect(view.getInt16(44 + 960 * 4 + 2, true)).toBe(0); + const file = c.files[0]; + expect(file.durationMs).toBe(80); + expect(file.bytes.length).toBe(1920 * 4); + const view = new DataView(file.bytes.buffer); + expect(view.getInt16(240 * 4 + 2, true)).toBe(1234); + expect(view.getInt16(960 * 4 + 2, true)).toBe(0); }); test("synchronous completion during an in-flight capture is settled after acceptance", async () => { const c = capture(), @@ -234,9 +221,9 @@ test("buffered input frames retain all samples instead of overwriting equal arri await reader.read(); reader.releaseLock(); await c.recording.finish(); - const wav = c.files[0], - view = new DataView(wav.bytes.buffer); - const last = wav.bytes.length - 4; + const file = c.files[0], + view = new DataView(file.bytes.buffer); + const last = file.bytes.length - 4; expect(view.getInt16(last, true)).toBe(2000); expect(view.getInt16(last - 480 * 4, true)).toBe(1000); }); @@ -300,10 +287,10 @@ test("continuous input uses sample time despite late delivery and preserves actu } reader.releaseLock(); await c.recording.finish(); - const wav = new DataView(c.files[0].bytes.buffer); - expect((c.files[0].bytes.length - 44) / 4).toBe(1440); + const view = new DataView(c.files[0].bytes.buffer); + expect(c.files[0].bytes.length / 4).toBe(1440); for (let i = 0; i < 1440; i++) - expect(wav.getInt16(44 + i * 4, true)).toBe( + expect(view.getInt16(i * 4, true)).toBe( i < 480 ? 1234 : i < 960 ? 0 : 2345, ); } finally { diff --git a/js/src/instrumentation/livekit/processor.test.ts b/js/src/instrumentation/livekit/processor.test.ts index c36f0eb62..b603f0ec3 100644 --- a/js/src/instrumentation/livekit/processor.test.ts +++ b/js/src/instrumentation/livekit/processor.test.ts @@ -4,10 +4,8 @@ import { EventEmitter } from "node:events"; import { configureNode } from "../../node/config"; configureNode(); import { LiveKitSpanProcessor } from "./processor"; -import * as audioOptions from "./node/audio-options"; +import * as audioOptions from "./audio-options"; import * as audioExtension from "../../audio/index"; -import * as audioWorker from "../../audio/worker"; -import { encodeCall } from "../../audio/pcm"; import { Attachment } from "../../logger"; import { channel, defineInterceptor } from "../core/interceptor-definitions"; import { traceAsyncCall } from "../core/tracing"; @@ -279,14 +277,6 @@ test("tool-only responses retain tool requests on the model without inventing sp test("upload failure corrects recording descriptors and selections even when logger flush resolves", async () => { // Exporter-level tests cover rejection/status propagation; this checks wiring. - // Exercise real encoding/export without requiring a built worker in core tests. - const encoder = vi - .spyOn(audioWorker, "createEncoder") - .mockReturnValue(async (packets, durationMs) => ({ - ...encodeCall(packets, durationMs), - mimeType: "audio/wav", - sampleRate: 24000, - })); const resolve = audioOptions.resolveAudioOptions; const load = vi .spyOn(audioOptions, "resolveAudioOptions") @@ -345,7 +335,6 @@ test("upload failure corrects recording descriptors and selections even when log } finally { upload.mockRestore(); load.mockRestore(); - encoder.mockRestore(); } }); diff --git a/js/src/instrumentation/livekit/processor.ts b/js/src/instrumentation/livekit/processor.ts index e139d5a76..1e2b5d68a 100644 --- a/js/src/instrumentation/livekit/processor.ts +++ b/js/src/instrumentation/livekit/processor.ts @@ -1,6 +1,6 @@ import type { AudioRecordingModule, RecordingOptions } from "./audio"; import type { LiveKitOptions } from "./options"; -import { resolveAudioOptions } from "./node/audio-options"; +import { resolveAudioOptions } from "./audio-options"; /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ import type { AgentSession, @@ -75,7 +75,7 @@ export class LiveKitSpanProcessor { constructor( private options: LiveKitOptions & { logger: Logger; - recording?: RecordingOptions & { encoder?: { module: string } }; + recording?: RecordingOptions; }, ) { this.captureContent = options.captureContent ?? false; @@ -483,7 +483,6 @@ export class LiveKitSpanProcessor { if (!row) return; const voice = this.audio.createVoiceRecording({ options: this.options.recording, - encoder: this.options.recording?.encoder, span: row.span, flush: () => this.options.logger.flush(), createAttachment: (options) => new Attachment(options), diff --git a/js/tsup.config.ts b/js/tsup.config.ts index a268b12cd..1f81f38b3 100644 --- a/js/tsup.config.ts +++ b/js/tsup.config.ts @@ -10,28 +10,22 @@ const define = { __BRAINTRUST_SDK_VERSION__: JSON.stringify(packageJson.version), }; -const nodeEntries = { - index: "src/node/index.ts", - "custom-views": "src/custom-views/exports.ts", - preprocessors: "src/preprocessors/exports.ts", - "apply-auto-instrumentation": "src/node/apply-auto-instrumentation-entry.ts", - "vitest-evals-reporter": "src/wrappers/vitest-evals/reporter.ts", -}; - export default defineConfig([ // Node.js entrypoint { entry: { - ...nodeEntries, - "audio-worker": "src/audio/audio-worker.ts", - livekit: "src/instrumentation/livekit/processor.ts", + index: "src/node/index.ts", + "custom-views": "src/custom-views/exports.ts", + preprocessors: "src/preprocessors/exports.ts", + "apply-auto-instrumentation": + "src/node/apply-auto-instrumentation-entry.ts", + "vitest-evals-reporter": "src/wrappers/vitest-evals/reporter.ts", }, format: ["cjs", "esm"], outDir: "dist", external: ["zod"], removeNodeProtocol: false, dts: { - entry: nodeEntries, // Split DTS generation to reduce memory usage compilerOptions: { skipLibCheck: true, @@ -41,18 +35,6 @@ export default defineConfig([ define, clean: true, }, - // Keep the optional integration's declarations separate from the core API. - { - entry: { livekit: "src/instrumentation/livekit/processor.ts" }, - format: ["cjs", "esm"], - outDir: "dist", - external: ["zod"], - removeNodeProtocol: false, - dts: { only: true, compilerOptions: { skipLibCheck: true } }, - splitting: false, - define, - clean: false, - }, { entry: { cli: "src/cli/index.ts" }, format: ["cjs"], From 097ff10898614227a0c68699f15e06df6b1c1fbe Mon Sep 17 00:00:00 2001 From: lforst <8118419+lforst@users.noreply.github.com> Date: Wed, 21 Oct 2026 09:43:37 +0000 Subject: [PATCH 3/5] ref(livekit): Simplify cascade instrumentation Rewrites the LiveKit plugin around a single Recording per session and a Playback per audio sink, and trims PcmAudio down to positioned writes. Recording now only turns on with BRAINTRUST_CAPTURE_ATTACHMENTS, and integrations.livekit is a plain boolean like every other integration. The LiveKitOptions object, the per-side audio env vars and the allowPii/OTel content gating are gone. The trace follows the voice design doc more closely: the root span is now `session`, final transcripts get their own `stt` spans with `transcribed_by` links, and recordings carry `timeline.basis` and `sources[].boundary`. Links still go in `metadata.links` because native rows have no top-level links field. Also fixes the output hook receiving `AgentOutput` instead of the session in auto mode, stops tool-only responses from logging an empty assistant message, and only re-publishes selections for spans that actually changed. --- .agents/skills/instrumentation/SKILL.md | 7 + .changeset/solid-donuts-drop.md | 2 +- .../livekit-v1-audio.span-tree.json | 192 +- .../livekit-v1-audio.span-tree.txt | 148 +- .../livekit-v1-disabled.span-tree.json | 176 +- .../livekit-v1-disabled.span-tree.txt | 132 +- .../livekit-v1-interrupted.span-tree.json | 334 +-- .../livekit-v1-interrupted.span-tree.txt | 278 +-- .../livekit-v1-latest-audio.span-tree.json | 192 +- .../livekit-v1-latest-audio.span-tree.txt | 148 +- .../livekit-v1-latest-disabled.span-tree.json | 176 +- .../livekit-v1-latest-disabled.span-tree.txt | 132 +- ...vekit-v1-latest-interrupted.span-tree.json | 334 +-- ...ivekit-v1-latest-interrupted.span-tree.txt | 278 +-- .../livekit-v1-latest-order.span-tree.json | 334 +-- .../livekit-v1-latest-order.span-tree.txt | 278 +-- ...livekit-v1-latest-recovered.span-tree.json | 474 +---- .../livekit-v1-latest-recovered.span-tree.txt | 406 +--- ...v1-latest-streaming-cascade.span-tree.json | 408 +--- ...-v1-latest-streaming-cascade.span-tree.txt | 857 +++----- .../livekit-v1-order.span-tree.json | 334 +-- .../livekit-v1-order.span-tree.txt | 278 +-- .../livekit-v1-recovered.span-tree.json | 474 +---- .../livekit-v1-recovered.span-tree.txt | 406 +--- ...ivekit-v1-streaming-cascade.span-tree.json | 408 +--- ...livekit-v1-streaming-cascade.span-tree.txt | 857 +++----- .../assertions.test.ts | 53 - .../livekit-instrumentation/assertions.ts | 81 +- .../livekit-instrumentation/automatic.mjs | 142 -- .../livekit-instrumentation/configure.mjs | 19 + .../fixtures/README.md | 3 - .../livekit-instrumentation/scenario.mjs | 144 +- .../livekit-instrumentation/scenario.test.ts | 824 +++----- .../websocket-cassette.mjs | 83 +- .../livekit-instrumentation/worker.mjs | 8 +- js/src/audio/README.md | 45 - js/src/audio/buffers.ts | 60 - js/src/audio/exporter.test.ts | 282 --- js/src/audio/exporter.ts | 61 - js/src/audio/index.ts | 6 - js/src/audio/pcm.test.ts | 159 -- js/src/audio/pcm.ts | 76 - js/src/audio/publisher.ts | 133 -- js/src/audio/recorder.test.ts | 299 --- js/src/audio/recorder.ts | 288 --- js/src/audio/recording.test.ts | 187 -- js/src/audio/recording.ts | 103 - js/src/audio/segment.test.ts | 55 - js/src/audio/segment.ts | 118 -- js/src/audio/selections.test.ts | 68 - js/src/audio/selections.ts | 64 - js/src/audio/timeline.ts | 23 - js/src/audio/voice-publisher.ts | 49 - js/src/audio/voice.test.ts | 170 -- js/src/audio/voice.ts | 43 - js/src/auto-instrumentations/configs/all.ts | 2 +- .../auto-instrumentations/configs/livekit.ts | 144 +- js/src/exports.ts | 5 +- js/src/instrumentation/braintrust-plugin.ts | 38 +- js/src/instrumentation/config.ts | 22 +- .../livekit/audio-options.test.ts | 66 - .../instrumentation/livekit/audio-options.ts | 26 - js/src/instrumentation/livekit/audio.ts | 8 - .../instrumentation/livekit/capture-state.ts | 70 - .../instrumentation/livekit/capture.test.ts | 355 ---- js/src/instrumentation/livekit/capture.ts | 83 - js/src/instrumentation/livekit/node/auto.ts | 105 - js/src/instrumentation/livekit/options.ts | 9 - js/src/instrumentation/livekit/playback.ts | 295 --- .../instrumentation/livekit/processor.test.ts | 628 ------ js/src/instrumentation/livekit/processor.ts | 701 ------- .../instrumentation/livekit/relationships.ts | 71 - js/src/instrumentation/livekit/runtime.ts | 137 -- js/src/instrumentation/livekit/schema.ts | 174 -- js/src/instrumentation/livekit/speech.ts | 132 -- js/src/instrumentation/livekit/types.ts | 42 - js/src/instrumentation/livekit/wrap.ts | 91 - .../plugins/livekit-channels.ts | 40 - .../plugins/livekit-interceptors.ts | 57 + .../plugins/livekit-plugin.test.ts | 1208 +++++++++++ .../instrumentation/plugins/livekit-plugin.ts | 1828 ++++++++++++++++- js/src/instrumentation/registry.test.ts | 76 + js/src/instrumentation/registry.ts | 45 +- js/src/node/config.ts | 4 - js/src/pcm-audio.test.ts | 177 ++ js/src/pcm-audio.ts | 204 ++ js/src/vendor-sdk-types/livekit.ts | 128 ++ js/src/wrappers/livekit.test.ts | 31 + js/src/wrappers/livekit.ts | 112 + 89 files changed, 5389 insertions(+), 13414 deletions(-) delete mode 100644 e2e/scenarios/livekit-instrumentation/assertions.test.ts delete mode 100644 e2e/scenarios/livekit-instrumentation/automatic.mjs create mode 100644 e2e/scenarios/livekit-instrumentation/configure.mjs delete mode 100644 e2e/scenarios/livekit-instrumentation/fixtures/README.md delete mode 100644 js/src/audio/README.md delete mode 100644 js/src/audio/buffers.ts delete mode 100644 js/src/audio/exporter.test.ts delete mode 100644 js/src/audio/exporter.ts delete mode 100644 js/src/audio/index.ts delete mode 100644 js/src/audio/pcm.test.ts delete mode 100644 js/src/audio/pcm.ts delete mode 100644 js/src/audio/publisher.ts delete mode 100644 js/src/audio/recorder.test.ts delete mode 100644 js/src/audio/recorder.ts delete mode 100644 js/src/audio/recording.test.ts delete mode 100644 js/src/audio/recording.ts delete mode 100644 js/src/audio/segment.test.ts delete mode 100644 js/src/audio/segment.ts delete mode 100644 js/src/audio/selections.test.ts delete mode 100644 js/src/audio/selections.ts delete mode 100644 js/src/audio/timeline.ts delete mode 100644 js/src/audio/voice-publisher.ts delete mode 100644 js/src/audio/voice.test.ts delete mode 100644 js/src/audio/voice.ts delete mode 100644 js/src/instrumentation/livekit/audio-options.test.ts delete mode 100644 js/src/instrumentation/livekit/audio-options.ts delete mode 100644 js/src/instrumentation/livekit/audio.ts delete mode 100644 js/src/instrumentation/livekit/capture-state.ts delete mode 100644 js/src/instrumentation/livekit/capture.test.ts delete mode 100644 js/src/instrumentation/livekit/capture.ts delete mode 100644 js/src/instrumentation/livekit/node/auto.ts delete mode 100644 js/src/instrumentation/livekit/options.ts delete mode 100644 js/src/instrumentation/livekit/playback.ts delete mode 100644 js/src/instrumentation/livekit/processor.test.ts delete mode 100644 js/src/instrumentation/livekit/processor.ts delete mode 100644 js/src/instrumentation/livekit/relationships.ts delete mode 100644 js/src/instrumentation/livekit/runtime.ts delete mode 100644 js/src/instrumentation/livekit/schema.ts delete mode 100644 js/src/instrumentation/livekit/speech.ts delete mode 100644 js/src/instrumentation/livekit/types.ts delete mode 100644 js/src/instrumentation/livekit/wrap.ts delete mode 100644 js/src/instrumentation/plugins/livekit-channels.ts create mode 100644 js/src/instrumentation/plugins/livekit-interceptors.ts create mode 100644 js/src/instrumentation/plugins/livekit-plugin.test.ts create mode 100644 js/src/pcm-audio.test.ts create mode 100644 js/src/pcm-audio.ts create mode 100644 js/src/vendor-sdk-types/livekit.ts create mode 100644 js/src/wrappers/livekit.test.ts create mode 100644 js/src/wrappers/livekit.ts diff --git a/.agents/skills/instrumentation/SKILL.md b/.agents/skills/instrumentation/SKILL.md index 3c98b106f..b289326b1 100644 --- a/.agents/skills/instrumentation/SKILL.md +++ b/.agents/skills/instrumentation/SKILL.md @@ -54,6 +54,13 @@ Map the change before editing: - Automatic capture of inline multimodal bytes as Braintrust attachments must be opt-in. Guard attachment creation and binary observation with `BRAINTRUST_CAPTURE_ATTACHMENTS`, and enable them only when its value is `1` or `true`. Preserve useful text, metadata, metrics, and remote references when attachment capture is disabled, and omit inline bytes from logged payloads. +- Segmentable streaming media must use the shared `configureInstrumentation({ streamingAttachmentBufferBytes })` setting instead of provider-specific chunk-size or time-based controls. + It defaults to 4 MiB per logical media stream and counts binary attachment payload bytes after decoding and format conversion, including any required padding or silence. + Flush near the threshold at valid media boundaries and flush remaining valid content when the recording ends. + Preserve ordering, format metadata, and timestamps needed to interpret the attachments. + Keep whole-file responses intact, even if they exceed the threshold; never arbitrarily split encoded images, audio, or video. + This is a flush threshold, not a total memory limit or attachment-capture opt-in. + Preserve application stream behavior and existing capture consent; keep any capture safety ceiling internal and distinct from the threshold. - Do not modify package READMEs during instrumentation work unless the user specifically requests it or the change corrects outdated information. - We want to limit our instrumentation to operations that are relevant for AI generations and operations (LLMs, embeddings, media generation, ...). Things like creating entities on platforms (CRUD for Workflows of Agent entities) is irrelevant to us. - When building instrumentation, we should always have a vendored type/interface for what we are wrapping. The type or interface should not be larger than what is relevant to the instrumentation. The type or interface should be used for typing invocation hooks and also should be used to assert the type on whatever is passed into wrappers as soon as the wrapper has verified that the passed in value is plausibly what should be wrapped. diff --git a/.changeset/solid-donuts-drop.md b/.changeset/solid-donuts-drop.md index 3873be26c..37202518b 100644 --- a/.changeset/solid-donuts-drop.md +++ b/.changeset/solid-donuts-drop.md @@ -2,4 +2,4 @@ "braintrust": minor --- -feat: add automatic LiveKit Agents cascade tracing with speech transcripts, model and tool spans, usage, and opt-in raw PCM recordings. Include shared bounded recording and segmentation utilities, with playback selections published after attachment upload. Export `wrapLiveKitSession` and `LiveKitSpanProcessor` for manual setup. No audio extension is required; recording remains disabled by default. +feat: Add instrumentation for LiveKit cascade mode diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.json index 5be6fd989..3afbffdbc 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.json @@ -1,71 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -81,13 +19,6 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -103,22 +34,10 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -156,107 +75,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -264,11 +88,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -294,6 +113,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -310,7 +130,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -348,11 +167,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt index 957149980..0c059b215 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-audio.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -38,7 +39,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -77,64 +77,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -173,11 +117,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ └── agent_speech [task] │ output: [ │ { @@ -186,13 +125,6 @@ span_tree: │ } │ ] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -209,45 +141,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -257,40 +150,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.json index aa436f681..ad48dd151 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.json @@ -1,71 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -87,11 +25,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -114,107 +47,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -222,11 +60,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -262,11 +95,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.txt index 45912445c..86575c993 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-disabled.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] metadata: { "contrib.livekit.agent_label": "default_agent", "contrib.livekit.events": [ @@ -33,55 +33,6 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { │ "contrib.livekit.events": [ @@ -103,11 +54,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ └── agent_speech [task] │ output: [ │ { @@ -123,45 +69,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -171,40 +78,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json index 761b61814..a9ee8b79a 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.json @@ -1,75 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", - "model": "gpt-4.1-nano", - "provider": "", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -89,10 +23,6 @@ } ], "output": [ - { - "content": null, - "role": "assistant" - }, { "content": null, "role": "assistant", @@ -111,8 +41,12 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "tool_call" + ], + "gen_ai.response.time_to_first_chunk": 0, "model": "gpt-4.1-nano", "provider": "", "scenario": "livekit-instrumentation", @@ -124,11 +58,6 @@ "prompt_tokens": 84, "time_to_first_token": 0, "tokens": 100 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -173,17 +102,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -198,11 +131,6 @@ "prompt_tokens": 125, "time_to_first_token": 0, "tokens": 134 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -231,98 +159,21 @@ "braintrust.relationship.type": "requested_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 39, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 39, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -333,9 +184,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -343,12 +194,7 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } }, { @@ -356,25 +202,18 @@ "type": "task", "children": [], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.interrupted": true, "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -382,31 +221,19 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -453,107 +280,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -561,11 +293,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -591,6 +318,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -607,7 +335,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -660,11 +387,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt index 0a7492928..4ccbb80d4 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-interrupted.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -38,7 +39,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -92,68 +92,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "gen_ai.provider.name": "", - │ "gen_ai.request.model": "gpt-4.1-nano", - │ "model": "gpt-4.1-nano", - │ "provider": "", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -201,11 +141,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -220,10 +155,6 @@ span_tree: │ │ output: [ │ │ { │ │ "content": null, - │ │ "role": "assistant" - │ │ }, - │ │ { - │ │ "content": null, │ │ "role": "assistant", │ │ "tool_calls": [ │ │ { @@ -240,8 +171,12 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "tool_call" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "model": "gpt-4.1-nano", │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", @@ -254,11 +189,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 100 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -298,17 +228,21 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "stop" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "links": [ │ │ { │ │ "attributes": { │ │ "braintrust.relationship.type": "consumes_tool_result" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -324,11 +258,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 134 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── lookup_order [tool] │ │ input: { │ │ "order_id": "1042" @@ -352,9 +281,9 @@ span_tree: │ │ "braintrust.relationship.type": "requested_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -362,11 +291,6 @@ span_tree: │ │ "testRunId": "", │ │ "turn.id": "" │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── tts [task] │ │ metadata: { │ │ "contrib.livekit.response.ttfb": 0, @@ -378,9 +302,9 @@ span_tree: │ │ "braintrust.relationship.type": "generated_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -388,96 +312,22 @@ span_tree: │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 + │ │ "turn.id": "" │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 39, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 39, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ └── agent_speech [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, │ "end_offset_ms": 0, │ "recording_id": "call-0000", - │ "recording_span_id": "", + │ "recording_span_id": "", │ "start_offset_ms": 0 │ } │ ], │ "contrib.livekit.interrupted": true, │ "contrib.livekit.message_ids": [ - │ "" + │ "" │ ], │ "links": [ │ { @@ -485,55 +335,16 @@ span_tree: │ "braintrust.relationship.type": "generated_by" │ }, │ "context": { - │ "spanId": "", + │ "spanId": "", │ "traceFlags": 1, - │ "traceId": "" + │ "traceId": "" │ } │ } │ ], │ "scenario": "livekit-instrumentation", │ "testRunId": "", - │ "turn.id": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 + │ "turn.id": "" │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -543,40 +354,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json index 5be6fd989..3afbffdbc 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.json @@ -1,71 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -81,13 +19,6 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -103,22 +34,10 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -156,107 +75,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -264,11 +88,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -294,6 +113,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -310,7 +130,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -348,11 +167,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt index 957149980..0c059b215 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-audio.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -38,7 +39,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -77,64 +77,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -173,11 +117,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ └── agent_speech [task] │ output: [ │ { @@ -186,13 +125,6 @@ span_tree: │ } │ ] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -209,45 +141,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -257,40 +150,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.json index aa436f681..ad48dd151 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.json @@ -1,71 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -87,11 +25,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -114,107 +47,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -222,11 +60,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -262,11 +95,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.txt index 45912445c..86575c993 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-disabled.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] metadata: { "contrib.livekit.agent_label": "default_agent", "contrib.livekit.events": [ @@ -33,55 +33,6 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { │ "contrib.livekit.events": [ @@ -103,11 +54,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ └── agent_speech [task] │ output: [ │ { @@ -123,45 +69,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -171,40 +78,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json index 902af76b8..58e14255c 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.json @@ -1,75 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", - "model": "gpt-4.1-nano", - "provider": "", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -89,10 +23,6 @@ } ], "output": [ - { - "content": null, - "role": "assistant" - }, { "content": null, "role": "assistant", @@ -111,8 +41,12 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "tool_call" + ], + "gen_ai.response.time_to_first_chunk": 0, "model": "gpt-4.1-nano", "provider": "", "scenario": "livekit-instrumentation", @@ -124,11 +58,6 @@ "prompt_tokens": 84, "time_to_first_token": 0, "tokens": 100 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -173,17 +102,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -198,11 +131,6 @@ "prompt_tokens": 125, "time_to_first_token": 0, "tokens": 137 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -231,98 +159,21 @@ "braintrust.relationship.type": "requested_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -333,9 +184,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -343,12 +194,7 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } }, { @@ -356,25 +202,18 @@ "type": "task", "children": [], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.interrupted": true, "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -382,31 +221,19 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -453,107 +280,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -561,11 +293,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -591,6 +318,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -607,7 +335,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -660,11 +387,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt index c4748837e..739f6f074 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -38,7 +39,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -92,68 +92,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "gen_ai.provider.name": "", - │ "gen_ai.request.model": "gpt-4.1-nano", - │ "model": "gpt-4.1-nano", - │ "provider": "", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -201,11 +141,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -220,10 +155,6 @@ span_tree: │ │ output: [ │ │ { │ │ "content": null, - │ │ "role": "assistant" - │ │ }, - │ │ { - │ │ "content": null, │ │ "role": "assistant", │ │ "tool_calls": [ │ │ { @@ -240,8 +171,12 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "tool_call" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "model": "gpt-4.1-nano", │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", @@ -254,11 +189,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 100 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -298,17 +228,21 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "stop" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "links": [ │ │ { │ │ "attributes": { │ │ "braintrust.relationship.type": "consumes_tool_result" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -324,11 +258,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 137 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── lookup_order [tool] │ │ input: { │ │ "order_id": "1042" @@ -352,9 +281,9 @@ span_tree: │ │ "braintrust.relationship.type": "requested_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -362,11 +291,6 @@ span_tree: │ │ "testRunId": "", │ │ "turn.id": "" │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── tts [task] │ │ metadata: { │ │ "contrib.livekit.response.ttfb": 0, @@ -378,9 +302,9 @@ span_tree: │ │ "braintrust.relationship.type": "generated_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -388,96 +312,22 @@ span_tree: │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 + │ │ "turn.id": "" │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ └── agent_speech [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, │ "end_offset_ms": 0, │ "recording_id": "call-0000", - │ "recording_span_id": "", + │ "recording_span_id": "", │ "start_offset_ms": 0 │ } │ ], │ "contrib.livekit.interrupted": true, │ "contrib.livekit.message_ids": [ - │ "" + │ "" │ ], │ "links": [ │ { @@ -485,55 +335,16 @@ span_tree: │ "braintrust.relationship.type": "generated_by" │ }, │ "context": { - │ "spanId": "", + │ "spanId": "", │ "traceFlags": 1, - │ "traceId": "" + │ "traceId": "" │ } │ } │ ], │ "scenario": "livekit-instrumentation", │ "testRunId": "", - │ "turn.id": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 + │ "turn.id": "" │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -543,40 +354,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json index 52e25081f..d91158be9 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json @@ -1,75 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", - "model": "gpt-4.1-nano", - "provider": "", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -89,10 +23,6 @@ } ], "output": [ - { - "content": null, - "role": "assistant" - }, { "content": null, "role": "assistant", @@ -111,8 +41,12 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "tool_call" + ], + "gen_ai.response.time_to_first_chunk": 0, "model": "gpt-4.1-nano", "provider": "", "scenario": "livekit-instrumentation", @@ -124,11 +58,6 @@ "prompt_tokens": 84, "time_to_first_token": 0, "tokens": 100 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -173,17 +102,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -198,11 +131,6 @@ "prompt_tokens": 125, "time_to_first_token": 0, "tokens": 137 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -231,98 +159,21 @@ "braintrust.relationship.type": "requested_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -333,9 +184,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -343,12 +194,7 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } }, { @@ -362,24 +208,17 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -387,31 +226,19 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -458,107 +285,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -566,11 +298,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -596,6 +323,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -612,7 +340,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -665,11 +392,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt index 1c08d7a96..65d8fd6cb 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -38,7 +39,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -92,68 +92,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "gen_ai.provider.name": "", - │ "gen_ai.request.model": "gpt-4.1-nano", - │ "model": "gpt-4.1-nano", - │ "provider": "", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -201,11 +141,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -220,10 +155,6 @@ span_tree: │ │ output: [ │ │ { │ │ "content": null, - │ │ "role": "assistant" - │ │ }, - │ │ { - │ │ "content": null, │ │ "role": "assistant", │ │ "tool_calls": [ │ │ { @@ -240,8 +171,12 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "tool_call" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "model": "gpt-4.1-nano", │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", @@ -254,11 +189,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 100 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -298,17 +228,21 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "stop" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "links": [ │ │ { │ │ "attributes": { │ │ "braintrust.relationship.type": "consumes_tool_result" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -324,11 +258,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 137 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── lookup_order [tool] │ │ input: { │ │ "order_id": "1042" @@ -352,9 +281,9 @@ span_tree: │ │ "braintrust.relationship.type": "requested_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -362,11 +291,6 @@ span_tree: │ │ "testRunId": "", │ │ "turn.id": "" │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── tts [task] │ │ metadata: { │ │ "contrib.livekit.response.ttfb": 0, @@ -378,9 +302,9 @@ span_tree: │ │ "braintrust.relationship.type": "generated_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -388,75 +312,8 @@ span_tree: │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 + │ │ "turn.id": "" │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ └── agent_speech [task] │ output: [ │ { @@ -465,24 +322,17 @@ span_tree: │ } │ ] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, │ "end_offset_ms": 0, │ "recording_id": "call-0000", - │ "recording_span_id": "", + │ "recording_span_id": "", │ "start_offset_ms": 0 │ } │ ], │ "contrib.livekit.message_ids": [ - │ "" + │ "" │ ], │ "links": [ │ { @@ -490,55 +340,16 @@ span_tree: │ "braintrust.relationship.type": "generated_by" │ }, │ "context": { - │ "spanId": "", + │ "spanId": "", │ "traceFlags": 1, - │ "traceId": "" + │ "traceId": "" │ } │ } │ ], │ "scenario": "livekit-instrumentation", │ "testRunId": "", - │ "turn.id": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 + │ "turn.id": "" │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -548,40 +359,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json index 909f2a186..71dd119ac 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json @@ -1,75 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", - "model": "gpt-4.1-nano", - "provider": "", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -89,10 +23,6 @@ } ], "output": [ - { - "content": null, - "role": "assistant" - }, { "content": null, "role": "assistant", @@ -111,8 +41,12 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "tool_call" + ], + "gen_ai.response.time_to_first_chunk": 0, "model": "gpt-4.1-nano", "provider": "", "scenario": "livekit-instrumentation", @@ -124,11 +58,6 @@ "prompt_tokens": 84, "time_to_first_token": 0, "tokens": 100 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -173,17 +102,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -198,11 +131,6 @@ "prompt_tokens": 125, "time_to_first_token": 0, "tokens": 137 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -231,98 +159,21 @@ "braintrust.relationship.type": "requested_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -333,9 +184,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -343,12 +194,7 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } }, { @@ -356,25 +202,18 @@ "type": "task", "children": [], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.interrupted": true, "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -382,31 +221,19 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -453,11 +280,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -514,17 +336,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } }, { @@ -532,9 +358,9 @@ "braintrust.relationship.type": "input_context" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -549,89 +375,12 @@ "prompt_tokens": 152, "time_to_first_token": 0, "tokens": 164 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -642,9 +391,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -652,12 +401,7 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } }, { @@ -671,24 +415,17 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -696,31 +433,19 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -759,107 +484,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -867,11 +497,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -897,6 +522,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -913,7 +539,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -995,11 +620,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt index a783f3918..d24c8443b 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -38,7 +39,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -121,68 +121,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "gen_ai.provider.name": "", - │ "gen_ai.request.model": "gpt-4.1-nano", - │ "model": "gpt-4.1-nano", - │ "provider": "", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -230,11 +170,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -249,10 +184,6 @@ span_tree: │ │ output: [ │ │ { │ │ "content": null, - │ │ "role": "assistant" - │ │ }, - │ │ { - │ │ "content": null, │ │ "role": "assistant", │ │ "tool_calls": [ │ │ { @@ -269,8 +200,12 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "tool_call" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "model": "gpt-4.1-nano", │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", @@ -283,11 +218,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 100 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -327,17 +257,21 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "stop" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "links": [ │ │ { │ │ "attributes": { │ │ "braintrust.relationship.type": "consumes_tool_result" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -353,11 +287,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 137 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── lookup_order [tool] │ │ input: { │ │ "order_id": "1042" @@ -381,9 +310,9 @@ span_tree: │ │ "braintrust.relationship.type": "requested_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -391,11 +320,6 @@ span_tree: │ │ "testRunId": "", │ │ "turn.id": "" │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── tts [task] │ │ metadata: { │ │ "contrib.livekit.response.ttfb": 0, @@ -407,9 +331,9 @@ span_tree: │ │ "braintrust.relationship.type": "generated_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -417,96 +341,22 @@ span_tree: │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 + │ │ "turn.id": "" │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ └── agent_speech [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, │ "end_offset_ms": 0, │ "recording_id": "call-0000", - │ "recording_span_id": "", + │ "recording_span_id": "", │ "start_offset_ms": 0 │ } │ ], │ "contrib.livekit.interrupted": true, │ "contrib.livekit.message_ids": [ - │ "" + │ "" │ ], │ "links": [ │ { @@ -514,30 +364,18 @@ span_tree: │ "braintrust.relationship.type": "generated_by" │ }, │ "context": { - │ "spanId": "", + │ "spanId": "", │ "traceFlags": 1, - │ "traceId": "" + │ "traceId": "" │ } │ } │ ], │ "scenario": "livekit-instrumentation", │ "testRunId": "", - │ "turn.id": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 + │ "turn.id": "" │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -577,11 +415,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -629,17 +462,21 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "stop" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "links": [ │ │ { │ │ "attributes": { │ │ "braintrust.relationship.type": "consumes_tool_result" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ }, │ │ { @@ -647,9 +484,9 @@ span_tree: │ │ "braintrust.relationship.type": "input_context" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -665,11 +502,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 164 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── tts [task] │ │ metadata: { │ │ "contrib.livekit.response.ttfb": 0, @@ -681,9 +513,9 @@ span_tree: │ │ "braintrust.relationship.type": "generated_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -691,75 +523,8 @@ span_tree: │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 + │ │ "turn.id": "" │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ └── agent_speech [task] │ output: [ │ { @@ -768,24 +533,17 @@ span_tree: │ } │ ] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, │ "end_offset_ms": 0, │ "recording_id": "call-0000", - │ "recording_span_id": "", + │ "recording_span_id": "", │ "start_offset_ms": 0 │ } │ ], │ "contrib.livekit.message_ids": [ - │ "" + │ "" │ ], │ "links": [ │ { @@ -793,55 +551,16 @@ span_tree: │ "braintrust.relationship.type": "generated_by" │ }, │ "context": { - │ "spanId": "", + │ "spanId": "", │ "traceFlags": 1, - │ "traceId": "" + │ "traceId": "" │ } │ } │ ], │ "scenario": "livekit-instrumentation", │ "testRunId": "", - │ "turn.id": "" + │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -851,40 +570,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json index c0ec88a45..004c21be5 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json @@ -1,75 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", - "model": "gpt-4.1-nano", - "provider": "", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "user_turn", "type": "task", @@ -85,13 +19,6 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 0, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 0, @@ -104,62 +31,46 @@ "contrib.livekit.message_ids": [ "" ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "transcribed_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.eou_wait", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.5, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { - "name": "livekit.on_user_turn_completed", + "name": "stt", "type": "task", "children": [], + "output": [ + { + "content": "Where is my order, DMO1042?", + "role": "user" + } + ], "metadata": { - "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.language": "en", + "contrib.livekit.provider_request_id": "", + "contrib.livekit.transcript_confidence": 1, + "model": "gpt-4o-mini-transcribe", + "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], "metadata": { - "audio.selection": { - "channel_index": 0, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 0, @@ -182,39 +93,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.5, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -226,11 +110,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -252,10 +131,6 @@ } ], "output": [ - { - "content": null, - "role": "assistant" - }, { "content": null, "role": "assistant", @@ -274,17 +149,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "tool_call" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "input_context" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -300,11 +179,6 @@ "prompt_tokens": 82, "time_to_first_token": 0, "tokens": 100 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -349,17 +223,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "input_context" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } }, { @@ -367,9 +245,9 @@ "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -385,11 +263,6 @@ "prompt_tokens": 127, "time_to_first_token": 0, "tokens": 141 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -418,9 +291,9 @@ "braintrust.relationship.type": "requested_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -428,91 +301,12 @@ "testRunId": "", "turn.id": "", "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 55, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 55, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -523,9 +317,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -533,13 +327,8 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "", + "turn.reply_to": "" } }, { @@ -553,24 +342,17 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -578,32 +360,20 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "", + "turn.reply_to": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -653,61 +423,8 @@ "gen_ai.operation.name": "invoke_agent", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "", + "turn.reply_to": "" } } ], @@ -733,6 +450,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -753,7 +471,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [ { "channel_count": 1, @@ -820,11 +537,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt index a4214cf16..1d1cafe13 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -42,7 +43,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [ { "channel_count": 1, @@ -110,68 +110,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "gen_ai.provider.name": "", - │ "gen_ai.request.model": "gpt-4.1-nano", - │ "model": "gpt-4.1-nano", - │ "provider": "", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── user_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 0, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 0, @@ -195,11 +135,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── user_speech [task] │ │ input: [ │ │ { @@ -208,13 +143,6 @@ span_tree: │ │ } │ │ ] │ │ metadata: { - │ │ "audio.selection": { - │ │ "channel_index": 0, - │ │ "end_offset_ms": 0, - │ │ "recording_id": "call-0000", - │ │ "recording_span_id": "", - │ │ "start_offset_ms": 0 - │ │ }, │ │ "audio.selections": [ │ │ { │ │ "channel_index": 0, @@ -227,44 +155,39 @@ span_tree: │ │ "contrib.livekit.message_ids": [ │ │ "" │ │ ], + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "transcribed_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", │ │ "turn.id": "" │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ ├── livekit.eou_wait [task] - │ │ metadata: { - │ │ "contrib.livekit.eou.endpointing_delay": 0.5, - │ │ "contrib.livekit.eou.not_committed_count": 0, - │ │ "contrib.livekit.eou.outcome": "committed", - │ │ "contrib.livekit.eou.rearm_count": 0, - │ │ "contrib.livekit.eou.source": "manual", - │ │ "contrib.livekit.eou.wait_duration": 0, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_user_turn_completed [task] + │ └── stt [task] + │ output: [ + │ { + │ "content": "Where is my order, DMO1042?", + │ "role": "user" + │ } + │ ] │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", + │ "contrib.livekit.language": "en", + │ "contrib.livekit.provider_request_id": "", + │ "contrib.livekit.transcript_confidence": 1, + │ "model": "gpt-4o-mini-transcribe", + │ "provider": "", │ "scenario": "livekit-instrumentation", │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── user_turn [task] │ metadata: { │ "contrib.livekit.end_of_turn_delay": 0, @@ -278,453 +201,293 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.eou_wait [task] - │ metadata: { - │ "contrib.livekit.eou.endpointing_delay": 0.5, - │ "contrib.livekit.eou.not_committed_count": 0, - │ "contrib.livekit.eou.outcome": "committed", - │ "contrib.livekit.eou.rearm_count": 0, - │ "contrib.livekit.eou.source": "manual", - │ "contrib.livekit.eou.wait_duration": 0, - │ "scenario": "livekit-instrumentation", - │ "testRunId": "", - │ "turn.id": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── agent_turn [task] - │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, - │ "audio.selections": [ - │ { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ } - │ ], - │ "contrib.livekit.e2e_latency": 0, - │ "contrib.livekit.end_of_turn_delay": 0, - │ "contrib.livekit.events": [ - │ { - │ "attributes": { - │ "contrib.livekit.generation_id": "" - │ }, - │ "name": "generation", - │ "time_unix_ms": 0 - │ }, - │ { - │ "attributes": { - │ "contrib.livekit.generation_id": "", - │ "contrib.livekit.parent_generation_id": "" - │ }, - │ "name": "generation", - │ "time_unix_ms": 0 - │ } - │ ], - │ "contrib.livekit.generation_count": 2, - │ "contrib.livekit.generation_id": "", - │ "contrib.livekit.interrupted": false, - │ "contrib.livekit.on_user_turn_completed_delay": 0, - │ "contrib.livekit.playback_events": [ - │ { - │ "attributes": { - │ "interrupted": false, - │ "playbackPosition": 0 - │ }, - │ "name": "playbackFinished", - │ "time_unix_ms": 0 - │ } - │ ], - │ "contrib.livekit.speech.queue_wait": 0, - │ "contrib.livekit.speech_id": "", - │ "contrib.livekit.transcription_delay": 0, - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "invoke_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "", - │ "turn.id": "", - │ "turn.reply_to": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── llm_response [llm] - │ │ input: [ - │ │ { - │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", - │ │ "role": "system" - │ │ }, - │ │ { - │ │ "content": "Where is my order, DMO1042?", - │ │ "role": "user" - │ │ } - │ │ ] - │ │ output: [ - │ │ { - │ │ "content": null, - │ │ "role": "assistant" - │ │ }, - │ │ { - │ │ "content": null, - │ │ "role": "assistant", - │ │ "tool_calls": [ - │ │ { - │ │ "function": { - │ │ "arguments": "{\"order_id\":\"DMO1042\"}", - │ │ "name": "lookup_order" - │ │ }, - │ │ "id": "", - │ │ "type": "function" - │ │ } - │ │ ] - │ │ } - │ │ ] - │ │ metadata: { - │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", - │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", - │ │ "links": [ - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "input_context" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ } - │ │ ], - │ │ "model": "gpt-4.1-nano", - │ │ "provider": "", - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ metrics: { - │ │ "completion_tokens": 18, - │ │ "prompt_tokens": 82, - │ │ "time_to_first_token": 0, - │ │ "tokens": 100 - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ ├── llm_response [llm] - │ │ input: [ - │ │ { - │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", - │ │ "role": "system" - │ │ }, - │ │ { - │ │ "content": "Where is my order, DMO1042?", - │ │ "role": "user" - │ │ }, - │ │ { - │ │ "content": null, - │ │ "role": "assistant", - │ │ "tool_calls": [ - │ │ { - │ │ "function": { - │ │ "arguments": "{\"order_id\":\"DMO1042\"}", - │ │ "name": "lookup_order" - │ │ }, - │ │ "id": "", - │ │ "type": "function" - │ │ } - │ │ ] - │ │ }, - │ │ { - │ │ "content": "{\"order_id\":\"DMO1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", - │ │ "role": "tool", - │ │ "tool_call_id": "call_4tFPyMMP6FxlSRzxe4Akq7st" - │ │ } - │ │ ] - │ │ output: [ - │ │ { - │ │ "content": "Your order DMO1042 is scheduled for delivery on Friday.", - │ │ "role": "assistant" - │ │ } - │ │ ] - │ │ metadata: { - │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", - │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", - │ │ "links": [ - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "input_context" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ }, - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "consumes_tool_result" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ } - │ │ ], - │ │ "model": "gpt-4.1-nano", - │ │ "provider": "", - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ metrics: { - │ │ "completion_tokens": 14, - │ │ "prompt_tokens": 127, - │ │ "time_to_first_token": 0, - │ │ "tokens": 141 - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ ├── lookup_order [tool] - │ │ input: { - │ │ "order_id": "DMO1042" - │ │ } - │ │ output: { - │ │ "delivery": "Friday", - │ │ "order_id": "DMO1042", - │ │ "status": "in_transit" - │ │ } - │ │ metadata: { - │ │ "contrib.livekit.function_tool.is_error": false, - │ │ "contrib.livekit.function_tool.name": "lookup_order", - │ │ "gen_ai.agent.name": "default_agent", - │ │ "gen_ai.operation.name": "execute_tool", - │ │ "gen_ai.tool.call.id": "call_4tFPyMMP6FxlSRzxe4Akq7st", - │ │ "gen_ai.tool.name": "lookup_order", - │ │ "gen_ai.tool.type": "function", - │ │ "links": [ - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "requested_by" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ } - │ │ ], - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ ├── tts [task] - │ │ metadata: { - │ │ "contrib.livekit.response.ttfb": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4o-mini-tts", - │ │ "links": [ - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "generated_by" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ } - │ │ ], - │ │ "model": "gpt-4o-mini-tts", - │ │ "provider": "", - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 55, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 55, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── agent_speech [task] - │ output: [ - │ { - │ "content": "Your order DMO1042 is scheduled for delivery on Friday.", - │ "role": "assistant" - │ } - │ ] - │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, - │ "audio.selections": [ - │ { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ } - │ ], - │ "contrib.livekit.message_ids": [ - │ "" - │ ], - │ "links": [ - │ { - │ "attributes": { - │ "braintrust.relationship.type": "generated_by" - │ }, - │ "context": { - │ "spanId": "", - │ "traceFlags": 1, - │ "traceId": "" - │ } - │ } - │ ], - │ "scenario": "livekit-instrumentation", - │ "testRunId": "", - │ "turn.id": "", - │ "turn.reply_to": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - └── livekit.session_close [task] + └── agent_turn [task] metadata: { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.e2e_latency": 0, + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.on_user_turn_completed_delay": 0, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "contrib.livekit.transcription_delay": 0, + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", "scenario": "livekit-instrumentation", - "testRunId": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" } - └── livekit.drain_agent_activity [task] + ├── llm_response [llm] + │ input: [ + │ { + │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ "role": "system" + │ }, + │ { + │ "content": "Where is my order, DMO1042?", + │ "role": "user" + │ } + │ ] + │ output: [ + │ { + │ "content": null, + │ "role": "assistant", + │ "tool_calls": [ + │ { + │ "function": { + │ "arguments": "{\"order_id\":\"DMO1042\"}", + │ "name": "lookup_order" + │ }, + │ "id": "", + │ "type": "function" + │ } + │ ] + │ } + │ ] + │ metadata: { + │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ "contrib.livekit.response.ttft": 0, + │ "gen_ai.operation.name": "chat", + │ "gen_ai.request.stream": true, + │ "gen_ai.response.finish_reasons": [ + │ "tool_call" + │ ], + │ "gen_ai.response.time_to_first_chunk": 0, + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "input_context" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + │ metrics: { + │ "completion_tokens": 18, + │ "prompt_tokens": 82, + │ "time_to_first_token": 0, + │ "tokens": 100 + │ } + ├── llm_response [llm] + │ input: [ + │ { + │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ "role": "system" + │ }, + │ { + │ "content": "Where is my order, DMO1042?", + │ "role": "user" + │ }, + │ { + │ "content": null, + │ "role": "assistant", + │ "tool_calls": [ + │ { + │ "function": { + │ "arguments": "{\"order_id\":\"DMO1042\"}", + │ "name": "lookup_order" + │ }, + │ "id": "", + │ "type": "function" + │ } + │ ] + │ }, + │ { + │ "content": "{\"order_id\":\"DMO1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ "role": "tool", + │ "tool_call_id": "call_4tFPyMMP6FxlSRzxe4Akq7st" + │ } + │ ] + │ output: [ + │ { + │ "content": "Your order DMO1042 is scheduled for delivery on Friday.", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ "contrib.livekit.response.ttft": 0, + │ "gen_ai.operation.name": "chat", + │ "gen_ai.request.stream": true, + │ "gen_ai.response.finish_reasons": [ + │ "stop" + │ ], + │ "gen_ai.response.time_to_first_chunk": 0, + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "input_context" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ }, + │ { + │ "attributes": { + │ "braintrust.relationship.type": "consumes_tool_result" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + │ metrics: { + │ "completion_tokens": 14, + │ "prompt_tokens": 127, + │ "time_to_first_token": 0, + │ "tokens": 141 + │ } + ├── lookup_order [tool] + │ input: { + │ "order_id": "DMO1042" + │ } + │ output: { + │ "delivery": "Friday", + │ "order_id": "DMO1042", + │ "status": "in_transit" + │ } + │ metadata: { + │ "contrib.livekit.function_tool.is_error": false, + │ "contrib.livekit.function_tool.name": "lookup_order", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "execute_tool", + │ "gen_ai.tool.call.id": "call_4tFPyMMP6FxlSRzxe4Akq7st", + │ "gen_ai.tool.name": "lookup_order", + │ "gen_ai.tool.type": "function", + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "requested_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + ├── tts [task] + │ metadata: { + │ "contrib.livekit.response.ttfb": 0, + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "model": "gpt-4o-mini-tts", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + └── agent_speech [task] + output: [ + { + "content": "Your order DMO1042 is scheduled for delivery on Friday.", + "role": "assistant" + } + ] metadata: { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.on_exit [task] - metadata: { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + ], + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json index 3ae96a8b7..2f1accd6d 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.json @@ -1,75 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", - "model": "gpt-4.1-nano", - "provider": "", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -89,10 +23,6 @@ } ], "output": [ - { - "content": null, - "role": "assistant" - }, { "content": null, "role": "assistant", @@ -111,8 +41,12 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "tool_call" + ], + "gen_ai.response.time_to_first_chunk": 0, "model": "gpt-4.1-nano", "provider": "", "scenario": "livekit-instrumentation", @@ -124,11 +58,6 @@ "prompt_tokens": 84, "time_to_first_token": 0, "tokens": 100 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -173,17 +102,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -198,11 +131,6 @@ "prompt_tokens": 125, "time_to_first_token": 0, "tokens": 134 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -231,98 +159,21 @@ "braintrust.relationship.type": "requested_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 39, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 39, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -333,9 +184,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -343,12 +194,7 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } }, { @@ -362,24 +208,17 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -387,31 +226,19 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -458,107 +285,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -566,11 +298,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -596,6 +323,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -612,7 +340,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -665,11 +392,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt index a054f3a87..fc11e32d3 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-order.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -38,7 +39,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -92,68 +92,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "gen_ai.provider.name": "", - │ "gen_ai.request.model": "gpt-4.1-nano", - │ "model": "gpt-4.1-nano", - │ "provider": "", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -201,11 +141,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -220,10 +155,6 @@ span_tree: │ │ output: [ │ │ { │ │ "content": null, - │ │ "role": "assistant" - │ │ }, - │ │ { - │ │ "content": null, │ │ "role": "assistant", │ │ "tool_calls": [ │ │ { @@ -240,8 +171,12 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "tool_call" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "model": "gpt-4.1-nano", │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", @@ -254,11 +189,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 100 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -298,17 +228,21 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "stop" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "links": [ │ │ { │ │ "attributes": { │ │ "braintrust.relationship.type": "consumes_tool_result" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -324,11 +258,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 134 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── lookup_order [tool] │ │ input: { │ │ "order_id": "1042" @@ -352,9 +281,9 @@ span_tree: │ │ "braintrust.relationship.type": "requested_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -362,11 +291,6 @@ span_tree: │ │ "testRunId": "", │ │ "turn.id": "" │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── tts [task] │ │ metadata: { │ │ "contrib.livekit.response.ttfb": 0, @@ -378,9 +302,9 @@ span_tree: │ │ "braintrust.relationship.type": "generated_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -388,75 +312,8 @@ span_tree: │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 + │ │ "turn.id": "" │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 39, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 39, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ └── agent_speech [task] │ output: [ │ { @@ -465,24 +322,17 @@ span_tree: │ } │ ] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, │ "end_offset_ms": 0, │ "recording_id": "call-0000", - │ "recording_span_id": "", + │ "recording_span_id": "", │ "start_offset_ms": 0 │ } │ ], │ "contrib.livekit.message_ids": [ - │ "" + │ "" │ ], │ "links": [ │ { @@ -490,55 +340,16 @@ span_tree: │ "braintrust.relationship.type": "generated_by" │ }, │ "context": { - │ "spanId": "", + │ "spanId": "", │ "traceFlags": 1, - │ "traceId": "" + │ "traceId": "" │ } │ } │ ], │ "scenario": "livekit-instrumentation", │ "testRunId": "", - │ "turn.id": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 + │ "turn.id": "" │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -548,40 +359,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json index e25c9fb4f..4026f132b 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.json @@ -1,75 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", - "model": "gpt-4.1-nano", - "provider": "", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "agent_turn", "type": "task", @@ -89,10 +23,6 @@ } ], "output": [ - { - "content": null, - "role": "assistant" - }, { "content": null, "role": "assistant", @@ -111,8 +41,12 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "tool_call" + ], + "gen_ai.response.time_to_first_chunk": 0, "model": "gpt-4.1-nano", "provider": "", "scenario": "livekit-instrumentation", @@ -124,11 +58,6 @@ "prompt_tokens": 84, "time_to_first_token": 0, "tokens": 100 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -173,17 +102,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -198,11 +131,6 @@ "prompt_tokens": 125, "time_to_first_token": 0, "tokens": 137 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -231,98 +159,21 @@ "braintrust.relationship.type": "requested_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -333,9 +184,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -343,12 +194,7 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } }, { @@ -356,25 +202,18 @@ "type": "task", "children": [], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.interrupted": true, "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -382,31 +221,19 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -453,11 +280,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -514,17 +336,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } }, { @@ -532,9 +358,9 @@ "braintrust.relationship.type": "input_context" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -549,89 +375,12 @@ "prompt_tokens": 152, "time_to_first_token": 0, "tokens": 164 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 44, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -642,9 +391,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -652,12 +401,7 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } }, { @@ -671,24 +415,17 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -696,31 +433,19 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -759,107 +484,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [ - { - "name": "livekit.eou_detection", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -867,11 +497,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], @@ -897,6 +522,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -913,7 +539,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -995,11 +620,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt index 46b6db74c..0d5e17eb4 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-recovered.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -38,7 +39,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [], "contrib.livekit.audio.output_formats": [ { @@ -121,68 +121,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "gen_ai.provider.name": "", - │ "gen_ai.request.model": "gpt-4.1-nano", - │ "model": "gpt-4.1-nano", - │ "provider": "", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -230,11 +170,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -249,10 +184,6 @@ span_tree: │ │ output: [ │ │ { │ │ "content": null, - │ │ "role": "assistant" - │ │ }, - │ │ { - │ │ "content": null, │ │ "role": "assistant", │ │ "tool_calls": [ │ │ { @@ -269,8 +200,12 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "tool_call" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "model": "gpt-4.1-nano", │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", @@ -283,11 +218,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 100 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -327,17 +257,21 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "stop" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "links": [ │ │ { │ │ "attributes": { │ │ "braintrust.relationship.type": "consumes_tool_result" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -353,11 +287,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 137 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── lookup_order [tool] │ │ input: { │ │ "order_id": "1042" @@ -381,9 +310,9 @@ span_tree: │ │ "braintrust.relationship.type": "requested_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -391,11 +320,6 @@ span_tree: │ │ "testRunId": "", │ │ "turn.id": "" │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── tts [task] │ │ metadata: { │ │ "contrib.livekit.response.ttfb": 0, @@ -407,9 +331,9 @@ span_tree: │ │ "braintrust.relationship.type": "generated_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -417,96 +341,22 @@ span_tree: │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 + │ │ "turn.id": "" │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ └── agent_speech [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, │ "end_offset_ms": 0, │ "recording_id": "call-0000", - │ "recording_span_id": "", + │ "recording_span_id": "", │ "start_offset_ms": 0 │ } │ ], │ "contrib.livekit.interrupted": true, │ "contrib.livekit.message_ids": [ - │ "" + │ "" │ ], │ "links": [ │ { @@ -514,30 +364,18 @@ span_tree: │ "braintrust.relationship.type": "generated_by" │ }, │ "context": { - │ "spanId": "", + │ "spanId": "", │ "traceFlags": 1, - │ "traceId": "" + │ "traceId": "" │ } │ } │ ], │ "scenario": "livekit-instrumentation", │ "testRunId": "", - │ "turn.id": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 + │ "turn.id": "" │ } ├── agent_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, @@ -577,11 +415,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── llm_response [llm] │ │ input: [ │ │ { @@ -629,17 +462,21 @@ span_tree: │ │ metadata: { │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", + │ │ "gen_ai.operation.name": "chat", + │ │ "gen_ai.request.stream": true, + │ │ "gen_ai.response.finish_reasons": [ + │ │ "stop" + │ │ ], + │ │ "gen_ai.response.time_to_first_chunk": 0, │ │ "links": [ │ │ { │ │ "attributes": { │ │ "braintrust.relationship.type": "consumes_tool_result" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ }, │ │ { @@ -647,9 +484,9 @@ span_tree: │ │ "braintrust.relationship.type": "input_context" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -665,11 +502,6 @@ span_tree: │ │ "time_to_first_token": 0, │ │ "tokens": 164 │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ ├── tts [task] │ │ metadata: { │ │ "contrib.livekit.response.ttfb": 0, @@ -681,9 +513,9 @@ span_tree: │ │ "braintrust.relationship.type": "generated_by" │ │ }, │ │ "context": { - │ │ "spanId": "", + │ │ "spanId": "", │ │ "traceFlags": 1, - │ │ "traceId": "" + │ │ "traceId": "" │ │ } │ │ } │ │ ], @@ -691,75 +523,8 @@ span_tree: │ │ "provider": "", │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 + │ │ "turn.id": "" │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 44, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } │ └── agent_speech [task] │ output: [ │ { @@ -768,24 +533,17 @@ span_tree: │ } │ ] │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 1, │ "end_offset_ms": 0, │ "recording_id": "call-0000", - │ "recording_span_id": "", + │ "recording_span_id": "", │ "start_offset_ms": 0 │ } │ ], │ "contrib.livekit.message_ids": [ - │ "" + │ "" │ ], │ "links": [ │ { @@ -793,55 +551,16 @@ span_tree: │ "braintrust.relationship.type": "generated_by" │ }, │ "context": { - │ "spanId": "", + │ "spanId": "", │ "traceFlags": 1, - │ "traceId": "" + │ "traceId": "" │ } │ } │ ], │ "scenario": "livekit-instrumentation", │ "testRunId": "", - │ "turn.id": "" + │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── livekit.session_close [task] - │ metadata: { - │ "contrib.livekit.close.drain": false, - │ "contrib.livekit.close_reason": "user_initiated", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.drain_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.on_exit [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } └── user_turn [task] metadata: { "contrib.livekit.end_of_turn_delay": 0, @@ -851,40 +570,3 @@ span_tree: "testRunId": "", "turn.id": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_wait [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.eou_detection [task] - metadata: { - "contrib.livekit.eou.endpointing_delay": 0.3, - "contrib.livekit.eou.from_cache": false, - "contrib.livekit.eou.language": "", - "contrib.livekit.eou.source": "manual", - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json index a67d4f425..d23754638 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.json @@ -1,75 +1,9 @@ { "span_tree": [ { - "name": "livekit.agent_session", + "name": "session", "type": "task", "children": [ - { - "name": "livekit.session_start", - "type": "task", - "children": [ - { - "name": "livekit.start_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.setup_toolsets", - "type": "task", - "children": [], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.on_enter", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "gen_ai.agent.name": "default_agent", - "gen_ai.operation.name": "create_agent", - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", - "model": "gpt-4.1-nano", - "provider": "", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, { "name": "user_turn", "type": "task", @@ -85,13 +19,6 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 0, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 0, @@ -104,62 +31,46 @@ "contrib.livekit.message_ids": [ "" ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "transcribed_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } + } + ], "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.eou_wait", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.5, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { - "name": "livekit.on_user_turn_completed", + "name": "stt", "type": "task", "children": [], + "output": [ + { + "content": "Where is my order, DMO-1042?", + "role": "user" + } + ], "metadata": { - "contrib.livekit.agent_label": "default_agent", + "contrib.livekit.language": "en", + "contrib.livekit.provider_request_id": "", + "contrib.livekit.transcript_confidence": 1, + "model": "gpt-4o-mini-transcribe", + "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ], "metadata": { - "audio.selection": { - "channel_index": 0, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 0, @@ -182,39 +93,12 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "user_turn", "type": "task", - "children": [ - { - "name": "livekit.eou_wait", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.eou.endpointing_delay": 0.5, - "contrib.livekit.eou.not_committed_count": 0, - "contrib.livekit.eou.outcome": "committed", - "contrib.livekit.eou.rearm_count": 0, - "contrib.livekit.eou.source": "manual", - "contrib.livekit.eou.wait_duration": 0, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.end_of_turn_delay": 0, "contrib.livekit.transcript_confidence": 0, @@ -226,11 +110,6 @@ "scenario": "livekit-instrumentation", "testRunId": "", "turn.id": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -252,10 +131,6 @@ } ], "output": [ - { - "content": null, - "role": "assistant" - }, { "content": null, "role": "assistant", @@ -274,17 +149,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "tool_call" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "input_context" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -300,11 +179,6 @@ "prompt_tokens": 83, "time_to_first_token": 0, "tokens": 102 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -349,17 +223,21 @@ "metadata": { "contrib.livekit.function_tools": "[\"lookup_order\"]", "contrib.livekit.response.ttft": 0, - "gen_ai.provider.name": "", - "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.operation.name": "chat", + "gen_ai.request.stream": true, + "gen_ai.response.finish_reasons": [ + "stop" + ], + "gen_ai.response.time_to_first_chunk": 0, "links": [ { "attributes": { "braintrust.relationship.type": "input_context" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } }, { @@ -367,9 +245,9 @@ "braintrust.relationship.type": "consumes_tool_result" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -385,11 +263,6 @@ "prompt_tokens": 130, "time_to_first_token": 0, "tokens": 144 - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { @@ -418,9 +291,9 @@ "braintrust.relationship.type": "requested_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -428,91 +301,12 @@ "testRunId": "", "turn.id": "", "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } }, { "name": "tts", "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [ - { - "name": "livekit.tts_request", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": false, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 48, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": false, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.tts.label": "openai.TTS", - "contrib.livekit.tts.streaming": true, - "contrib.livekit.tts_metrics": { - "audioDurationMs": 0, - "cancelled": false, - "charactersCount": 48, - "durationMs": 0, - "inputTokens": 0, - "label": "openai.TTS", - "metadata": { - "modelName": "gpt-4o-mini-tts", - "modelProvider": "" - }, - "outputTokens": 0, - "requestId": "", - "streamed": true, - "timestamp": 0, - "ttfbMs": 0, - "type": "tts_metrics" - }, - "scenario": "livekit-instrumentation", - "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], + "children": [], "metadata": { "contrib.livekit.response.ttfb": 0, "gen_ai.provider.name": "", @@ -523,9 +317,9 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], @@ -533,13 +327,8 @@ "provider": "", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "", + "turn.reply_to": "" } }, { @@ -553,24 +342,17 @@ } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, "end_offset_ms": 0, "recording_id": "call-0000", - "recording_span_id": "", + "recording_span_id": "", "start_offset_ms": 0 } ], "contrib.livekit.message_ids": [ - "" + "" ], "links": [ { @@ -578,32 +360,20 @@ "braintrust.relationship.type": "generated_by" }, "context": { - "spanId": "", + "spanId": "", "traceFlags": 1, - "traceId": "" + "traceId": "" } } ], "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "", + "turn.reply_to": "" } } ], "metadata": { - "audio.selection": { - "channel_index": 1, - "end_offset_ms": 0, - "recording_id": "call-0000", - "recording_span_id": "", - "start_offset_ms": 0 - }, "audio.selections": [ { "channel_index": 1, @@ -653,61 +423,8 @@ "gen_ai.operation.name": "invoke_agent", "scenario": "livekit-instrumentation", "testRunId": "", - "turn.id": "", - "turn.reply_to": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - }, - { - "name": "livekit.session_close", - "type": "task", - "children": [ - { - "name": "livekit.drain_agent_activity", - "type": "task", - "children": [ - { - "name": "livekit.on_exit", - "type": "task", - "children": [], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - } - ], - "metadata": { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", - "scenario": "livekit-instrumentation", - "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "turn.id": "", + "turn.reply_to": "" } } ], @@ -733,6 +450,7 @@ "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -753,7 +471,6 @@ } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [ { "channel_count": 1, @@ -820,11 +537,6 @@ "gen_ai.workflow.name": "agent_session", "scenario": "livekit-instrumentation", "testRunId": "" - }, - "context": { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 } } ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt index 581a10cf3..ab090ed02 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-streaming-cascade.span-tree.txt @@ -1,5 +1,5 @@ span_tree: -└── livekit.agent_session [task] +└── session [task] input: { "audio": { "call-0000": { @@ -22,6 +22,7 @@ span_tree: "id": "", "mime_type": "audio/pcm", "recording_group_id": "call", + "sample_format": "s16le", "sample_rate_hz": 24000, "sources": [ { @@ -42,7 +43,6 @@ span_tree: } ], "contrib.livekit.agent_label": "default_agent", - "contrib.livekit.audio.input_clock": "arrival_anchored_ordered_samples", "contrib.livekit.audio.input_formats": [ { "channel_count": 1, @@ -110,68 +110,8 @@ span_tree: "scenario": "livekit-instrumentation", "testRunId": "" } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - ├── livekit.session_start [task] - │ metadata: { - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.start_agent_activity [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "create_agent", - │ "gen_ai.provider.name": "", - │ "gen_ai.request.model": "gpt-4.1-nano", - │ "model": "gpt-4.1-nano", - │ "provider": "", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── livekit.setup_toolsets [task] - │ │ metadata: { - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_enter [task] - │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── user_turn [task] │ metadata: { - │ "audio.selection": { - │ "channel_index": 0, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, │ "audio.selections": [ │ { │ "channel_index": 0, @@ -195,11 +135,6 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } │ ├── user_speech [task] │ │ input: [ │ │ { @@ -208,13 +143,6 @@ span_tree: │ │ } │ │ ] │ │ metadata: { - │ │ "audio.selection": { - │ │ "channel_index": 0, - │ │ "end_offset_ms": 0, - │ │ "recording_id": "call-0000", - │ │ "recording_span_id": "", - │ │ "start_offset_ms": 0 - │ │ }, │ │ "audio.selections": [ │ │ { │ │ "channel_index": 0, @@ -227,44 +155,39 @@ span_tree: │ │ "contrib.livekit.message_ids": [ │ │ "" │ │ ], + │ │ "links": [ + │ │ { + │ │ "attributes": { + │ │ "braintrust.relationship.type": "transcribed_by" + │ │ }, + │ │ "context": { + │ │ "spanId": "", + │ │ "traceFlags": 1, + │ │ "traceId": "" + │ │ } + │ │ } + │ │ ], │ │ "scenario": "livekit-instrumentation", │ │ "testRunId": "", │ │ "turn.id": "" │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ ├── livekit.eou_wait [task] - │ │ metadata: { - │ │ "contrib.livekit.eou.endpointing_delay": 0.5, - │ │ "contrib.livekit.eou.not_committed_count": 0, - │ │ "contrib.livekit.eou.outcome": "committed", - │ │ "contrib.livekit.eou.rearm_count": 0, - │ │ "contrib.livekit.eou.source": "manual", - │ │ "contrib.livekit.eou.wait_duration": 0, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── livekit.on_user_turn_completed [task] + │ └── stt [task] + │ output: [ + │ { + │ "content": "Where is my order, DMO-1042?", + │ "role": "user" + │ } + │ ] │ metadata: { - │ "contrib.livekit.agent_label": "default_agent", + │ "contrib.livekit.language": "en", + │ "contrib.livekit.provider_request_id": "", + │ "contrib.livekit.transcript_confidence": 1, + │ "model": "gpt-4o-mini-transcribe", + │ "provider": "", │ "scenario": "livekit-instrumentation", │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } ├── user_turn [task] │ metadata: { │ "contrib.livekit.end_of_turn_delay": 0, @@ -278,453 +201,293 @@ span_tree: │ "testRunId": "", │ "turn.id": "" │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ └── livekit.eou_wait [task] - │ metadata: { - │ "contrib.livekit.eou.endpointing_delay": 0.5, - │ "contrib.livekit.eou.not_committed_count": 0, - │ "contrib.livekit.eou.outcome": "committed", - │ "contrib.livekit.eou.rearm_count": 0, - │ "contrib.livekit.eou.source": "manual", - │ "contrib.livekit.eou.wait_duration": 0, - │ "scenario": "livekit-instrumentation", - │ "testRunId": "", - │ "turn.id": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - ├── agent_turn [task] - │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, - │ "audio.selections": [ - │ { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ } - │ ], - │ "contrib.livekit.e2e_latency": 0, - │ "contrib.livekit.end_of_turn_delay": 0, - │ "contrib.livekit.events": [ - │ { - │ "attributes": { - │ "contrib.livekit.generation_id": "" - │ }, - │ "name": "generation", - │ "time_unix_ms": 0 - │ }, - │ { - │ "attributes": { - │ "contrib.livekit.generation_id": "", - │ "contrib.livekit.parent_generation_id": "" - │ }, - │ "name": "generation", - │ "time_unix_ms": 0 - │ } - │ ], - │ "contrib.livekit.generation_count": 2, - │ "contrib.livekit.generation_id": "", - │ "contrib.livekit.interrupted": false, - │ "contrib.livekit.on_user_turn_completed_delay": 0, - │ "contrib.livekit.playback_events": [ - │ { - │ "attributes": { - │ "interrupted": false, - │ "playbackPosition": 0 - │ }, - │ "name": "playbackFinished", - │ "time_unix_ms": 0 - │ } - │ ], - │ "contrib.livekit.speech.queue_wait": 0, - │ "contrib.livekit.speech_id": "", - │ "contrib.livekit.transcription_delay": 0, - │ "gen_ai.agent.name": "default_agent", - │ "gen_ai.operation.name": "invoke_agent", - │ "scenario": "livekit-instrumentation", - │ "testRunId": "", - │ "turn.id": "", - │ "turn.reply_to": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - │ ├── llm_response [llm] - │ │ input: [ - │ │ { - │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", - │ │ "role": "system" - │ │ }, - │ │ { - │ │ "content": "Where is my order, DMO-1042?", - │ │ "role": "user" - │ │ } - │ │ ] - │ │ output: [ - │ │ { - │ │ "content": null, - │ │ "role": "assistant" - │ │ }, - │ │ { - │ │ "content": null, - │ │ "role": "assistant", - │ │ "tool_calls": [ - │ │ { - │ │ "function": { - │ │ "arguments": "{\"order_id\":\"DMO-1042\"}", - │ │ "name": "lookup_order" - │ │ }, - │ │ "id": "", - │ │ "type": "function" - │ │ } - │ │ ] - │ │ } - │ │ ] - │ │ metadata: { - │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", - │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", - │ │ "links": [ - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "input_context" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ } - │ │ ], - │ │ "model": "gpt-4.1-nano", - │ │ "provider": "", - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ metrics: { - │ │ "completion_tokens": 19, - │ │ "prompt_tokens": 83, - │ │ "time_to_first_token": 0, - │ │ "tokens": 102 - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ ├── llm_response [llm] - │ │ input: [ - │ │ { - │ │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", - │ │ "role": "system" - │ │ }, - │ │ { - │ │ "content": "Where is my order, DMO-1042?", - │ │ "role": "user" - │ │ }, - │ │ { - │ │ "content": null, - │ │ "role": "assistant", - │ │ "tool_calls": [ - │ │ { - │ │ "function": { - │ │ "arguments": "{\"order_id\":\"DMO-1042\"}", - │ │ "name": "lookup_order" - │ │ }, - │ │ "id": "", - │ │ "type": "function" - │ │ } - │ │ ] - │ │ }, - │ │ { - │ │ "content": "{\"order_id\":\"DMO-1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", - │ │ "role": "tool", - │ │ "tool_call_id": "call_UJSzFQibd36wIeKjjJwuroFp" - │ │ } - │ │ ] - │ │ output: [ - │ │ { - │ │ "content": "Your order DMO-1042 will be delivered on Friday.", - │ │ "role": "assistant" - │ │ } - │ │ ] - │ │ metadata: { - │ │ "contrib.livekit.function_tools": "[\"lookup_order\"]", - │ │ "contrib.livekit.response.ttft": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4.1-nano", - │ │ "links": [ - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "input_context" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ }, - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "consumes_tool_result" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ } - │ │ ], - │ │ "model": "gpt-4.1-nano", - │ │ "provider": "", - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ metrics: { - │ │ "completion_tokens": 14, - │ │ "prompt_tokens": 130, - │ │ "time_to_first_token": 0, - │ │ "tokens": 144 - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ ├── lookup_order [tool] - │ │ input: { - │ │ "order_id": "DMO-1042" - │ │ } - │ │ output: { - │ │ "delivery": "Friday", - │ │ "order_id": "DMO-1042", - │ │ "status": "in_transit" - │ │ } - │ │ metadata: { - │ │ "contrib.livekit.function_tool.is_error": false, - │ │ "contrib.livekit.function_tool.name": "lookup_order", - │ │ "gen_ai.agent.name": "default_agent", - │ │ "gen_ai.operation.name": "execute_tool", - │ │ "gen_ai.tool.call.id": "call_UJSzFQibd36wIeKjjJwuroFp", - │ │ "gen_ai.tool.name": "lookup_order", - │ │ "gen_ai.tool.type": "function", - │ │ "links": [ - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "requested_by" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ } - │ │ ], - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ ├── tts [task] - │ │ metadata: { - │ │ "contrib.livekit.response.ttfb": 0, - │ │ "gen_ai.provider.name": "", - │ │ "gen_ai.request.model": "gpt-4o-mini-tts", - │ │ "links": [ - │ │ { - │ │ "attributes": { - │ │ "braintrust.relationship.type": "generated_by" - │ │ }, - │ │ "context": { - │ │ "spanId": "", - │ │ "traceFlags": 1, - │ │ "traceId": "" - │ │ } - │ │ } - │ │ ], - │ │ "model": "gpt-4o-mini-tts", - │ │ "provider": "", - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": true, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 48, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": true, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ │ └── livekit.tts_request [task] - │ │ metadata: { - │ │ "contrib.livekit.tts.label": "openai.TTS", - │ │ "contrib.livekit.tts.streaming": false, - │ │ "contrib.livekit.tts_metrics": { - │ │ "audioDurationMs": 0, - │ │ "cancelled": false, - │ │ "charactersCount": 48, - │ │ "durationMs": 0, - │ │ "inputTokens": 0, - │ │ "label": "openai.TTS", - │ │ "metadata": { - │ │ "modelName": "gpt-4o-mini-tts", - │ │ "modelProvider": "" - │ │ }, - │ │ "outputTokens": 0, - │ │ "requestId": "", - │ │ "streamed": false, - │ │ "timestamp": 0, - │ │ "ttfbMs": 0, - │ │ "type": "tts_metrics" - │ │ }, - │ │ "scenario": "livekit-instrumentation", - │ │ "testRunId": "", - │ │ "turn.id": "", - │ │ "turn.reply_to": "" - │ │ } - │ │ context: { - │ │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ │ "caller_functionname": "ScenarioProcessor.onStart", - │ │ "caller_lineno": 0 - │ │ } - │ └── agent_speech [task] - │ output: [ - │ { - │ "content": "Your order DMO-1042 will be delivered on Friday.", - │ "role": "assistant" - │ } - │ ] - │ metadata: { - │ "audio.selection": { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ }, - │ "audio.selections": [ - │ { - │ "channel_index": 1, - │ "end_offset_ms": 0, - │ "recording_id": "call-0000", - │ "recording_span_id": "", - │ "start_offset_ms": 0 - │ } - │ ], - │ "contrib.livekit.message_ids": [ - │ "" - │ ], - │ "links": [ - │ { - │ "attributes": { - │ "braintrust.relationship.type": "generated_by" - │ }, - │ "context": { - │ "spanId": "", - │ "traceFlags": 1, - │ "traceId": "" - │ } - │ } - │ ], - │ "scenario": "livekit-instrumentation", - │ "testRunId": "", - │ "turn.id": "", - │ "turn.reply_to": "" - │ } - │ context: { - │ "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - │ "caller_functionname": "ScenarioProcessor.onStart", - │ "caller_lineno": 0 - │ } - └── livekit.session_close [task] + └── agent_turn [task] metadata: { - "contrib.livekit.close.drain": false, - "contrib.livekit.close_reason": "user_initiated", + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 + } + ], + "contrib.livekit.e2e_latency": 0, + "contrib.livekit.end_of_turn_delay": 0, + "contrib.livekit.events": [ + { + "attributes": { + "contrib.livekit.generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + }, + { + "attributes": { + "contrib.livekit.generation_id": "", + "contrib.livekit.parent_generation_id": "" + }, + "name": "generation", + "time_unix_ms": 0 + } + ], + "contrib.livekit.generation_count": 2, + "contrib.livekit.generation_id": "", + "contrib.livekit.interrupted": false, + "contrib.livekit.on_user_turn_completed_delay": 0, + "contrib.livekit.playback_events": [ + { + "attributes": { + "interrupted": false, + "playbackPosition": 0 + }, + "name": "playbackFinished", + "time_unix_ms": 0 + } + ], + "contrib.livekit.speech.queue_wait": 0, + "contrib.livekit.speech_id": "", + "contrib.livekit.transcription_delay": 0, + "gen_ai.agent.name": "default_agent", + "gen_ai.operation.name": "invoke_agent", "scenario": "livekit-instrumentation", - "testRunId": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" } - └── livekit.drain_agent_activity [task] + ├── llm_response [llm] + │ input: [ + │ { + │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ "role": "system" + │ }, + │ { + │ "content": "Where is my order, DMO-1042?", + │ "role": "user" + │ } + │ ] + │ output: [ + │ { + │ "content": null, + │ "role": "assistant", + │ "tool_calls": [ + │ { + │ "function": { + │ "arguments": "{\"order_id\":\"DMO-1042\"}", + │ "name": "lookup_order" + │ }, + │ "id": "", + │ "type": "function" + │ } + │ ] + │ } + │ ] + │ metadata: { + │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ "contrib.livekit.response.ttft": 0, + │ "gen_ai.operation.name": "chat", + │ "gen_ai.request.stream": true, + │ "gen_ai.response.finish_reasons": [ + │ "tool_call" + │ ], + │ "gen_ai.response.time_to_first_chunk": 0, + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "input_context" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + │ metrics: { + │ "completion_tokens": 19, + │ "prompt_tokens": 83, + │ "time_to_first_token": 0, + │ "tokens": 102 + │ } + ├── llm_response [llm] + │ input: [ + │ { + │ "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + │ "role": "system" + │ }, + │ { + │ "content": "Where is my order, DMO-1042?", + │ "role": "user" + │ }, + │ { + │ "content": null, + │ "role": "assistant", + │ "tool_calls": [ + │ { + │ "function": { + │ "arguments": "{\"order_id\":\"DMO-1042\"}", + │ "name": "lookup_order" + │ }, + │ "id": "", + │ "type": "function" + │ } + │ ] + │ }, + │ { + │ "content": "{\"order_id\":\"DMO-1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + │ "role": "tool", + │ "tool_call_id": "call_UJSzFQibd36wIeKjjJwuroFp" + │ } + │ ] + │ output: [ + │ { + │ "content": "Your order DMO-1042 will be delivered on Friday.", + │ "role": "assistant" + │ } + │ ] + │ metadata: { + │ "contrib.livekit.function_tools": "[\"lookup_order\"]", + │ "contrib.livekit.response.ttft": 0, + │ "gen_ai.operation.name": "chat", + │ "gen_ai.request.stream": true, + │ "gen_ai.response.finish_reasons": [ + │ "stop" + │ ], + │ "gen_ai.response.time_to_first_chunk": 0, + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "input_context" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ }, + │ { + │ "attributes": { + │ "braintrust.relationship.type": "consumes_tool_result" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "model": "gpt-4.1-nano", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + │ metrics: { + │ "completion_tokens": 14, + │ "prompt_tokens": 130, + │ "time_to_first_token": 0, + │ "tokens": 144 + │ } + ├── lookup_order [tool] + │ input: { + │ "order_id": "DMO-1042" + │ } + │ output: { + │ "delivery": "Friday", + │ "order_id": "DMO-1042", + │ "status": "in_transit" + │ } + │ metadata: { + │ "contrib.livekit.function_tool.is_error": false, + │ "contrib.livekit.function_tool.name": "lookup_order", + │ "gen_ai.agent.name": "default_agent", + │ "gen_ai.operation.name": "execute_tool", + │ "gen_ai.tool.call.id": "call_UJSzFQibd36wIeKjjJwuroFp", + │ "gen_ai.tool.name": "lookup_order", + │ "gen_ai.tool.type": "function", + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "requested_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + ├── tts [task] + │ metadata: { + │ "contrib.livekit.response.ttfb": 0, + │ "gen_ai.provider.name": "", + │ "gen_ai.request.model": "gpt-4o-mini-tts", + │ "links": [ + │ { + │ "attributes": { + │ "braintrust.relationship.type": "generated_by" + │ }, + │ "context": { + │ "spanId": "", + │ "traceFlags": 1, + │ "traceId": "" + │ } + │ } + │ ], + │ "model": "gpt-4o-mini-tts", + │ "provider": "", + │ "scenario": "livekit-instrumentation", + │ "testRunId": "", + │ "turn.id": "", + │ "turn.reply_to": "" + │ } + └── agent_speech [task] + output: [ + { + "content": "Your order DMO-1042 will be delivered on Friday.", + "role": "assistant" + } + ] metadata: { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" - } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 - } - └── livekit.on_exit [task] - metadata: { - "contrib.livekit.agent_label": "default_agent", - "scenario": "livekit-instrumentation", - "testRunId": "" + "audio.selections": [ + { + "channel_index": 1, + "end_offset_ms": 0, + "recording_id": "call-0000", + "recording_span_id": "", + "start_offset_ms": 0 } - context: { - "caller_filename": "/e2e/scenarios/livekit-instrumentation/scenario.mjs", - "caller_functionname": "ScenarioProcessor.onStart", - "caller_lineno": 0 + ], + "contrib.livekit.message_ids": [ + "" + ], + "links": [ + { + "attributes": { + "braintrust.relationship.type": "generated_by" + }, + "context": { + "spanId": "", + "traceFlags": 1, + "traceId": "" + } } + ], + "scenario": "livekit-instrumentation", + "testRunId": "", + "turn.id": "", + "turn.reply_to": "" + } diff --git a/e2e/scenarios/livekit-instrumentation/assertions.test.ts b/e2e/scenarios/livekit-instrumentation/assertions.test.ts deleted file mode 100644 index b35feb282..000000000 --- a/e2e/scenarios/livekit-instrumentation/assertions.test.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { expect, test } from "vitest"; -import type { CapturedLogEvent } from "../../helpers/mock-braintrust-server"; -import { assertAudioTrace } from "./assertions"; - -function event( - id: string, - name: string, - parentIds: string[], - metadata: Record = {}, -): CapturedLogEvent { - const metrics = { start: 1, end: 2 }; - return { - apiVersion: 3, - isMerge: false, - metadata, - metrics, - row: { span_parents: parentIds, metadata, metrics }, - span: { id, name, parentIds, started: true, ended: true }, - }; -} -const root = event("root", "livekit.agent_session", []); -const turn = event("turn", "user_turn", ["root"]); - -test.each(["missing", "root"])( - "rejects invalid optional speaking turn reference: %s", - (turnId) => { - const speech = event( - "speech", - "user_speech", - ["root"], - turnId ? { "turn.id": turnId } : {}, - ); - expect(() => assertAudioTrace([root, turn, speech])).toThrow(); - }, -); - -test("validates parentage and permits session-owned speech", () => { - const speech = event("speech", "user_speech", ["turn"], { - "turn.id": "turn", - }); - expect(() => assertAudioTrace([root, turn, speech])).not.toThrow(); - speech.row.span_parents = speech.span.parentIds = ["root"]; - expect(() => assertAudioTrace([root, turn, speech])).toThrow(); - speech.row.metadata = speech.metadata = {}; - expect(() => - assertAudioTrace([root, turn, speech], { - unassociatedSpeaking: ["speech"], - }), - ).not.toThrow(); - expect(() => - assertAudioTrace([root, turn], { unassociatedSpeaking: ["speech"] }), - ).toThrow(); -}); diff --git a/e2e/scenarios/livekit-instrumentation/assertions.ts b/e2e/scenarios/livekit-instrumentation/assertions.ts index 7b026c485..7e2c1a7ef 100644 --- a/e2e/scenarios/livekit-instrumentation/assertions.ts +++ b/e2e/scenarios/livekit-instrumentation/assertions.ts @@ -14,48 +14,31 @@ type Recording = { state: string; duration_ms: number; sample_rate_hz: number; - channel_count: number; - timeline: { origin_unix_ms: number; recording_start_offset_ms: number }; attachment?: { span_id: string; ref: string }; }; -export function assertAudioTrace( - raw: CapturedLogEvent[], - { - unassociatedSpeaking = [], - }: { unassociatedSpeaking?: readonly string[] } = {}, -) { +/** Checks recording references, speech selections, and turn ownership. */ +export function assertAudioTrace(raw: CapturedLogEvent[]) { const events = [...new Set(raw.map((e) => e.span.name))].flatMap((name) => findAllSpans(raw, name!), ); const recordings = new Map(); - const key = (spanId: string, id: string) => JSON.stringify([spanId, id]); for (const event of events) { for (const r of (event.metadata?.["audio.recordings"] ?? []) as Recording[]) { - expect(recordings.has(key(event.span.id!, r.id))).toBe(false); - recordings.set(key(event.span.id!, r.id), r); - if ("gaps" in r) expect(r.timeline).toBeDefined(); + const key = `${event.span.id}/${r.id}`; + expect(recordings.has(key)).toBe(false); + recordings.set(key, r); if (r.state !== "ready") continue; - expect(Number.isFinite(r.duration_ms)).toBe(true); expect(r.duration_ms).toBeGreaterThan(0); - expect(r.sample_rate_hz).toBeGreaterThan(0); - expect(r.channel_count).toBeGreaterThan(0); - expect(Number.isFinite(r.timeline.origin_unix_ms)).toBe(true); - expect(r.timeline.recording_start_offset_ms).toBeGreaterThanOrEqual(0); - expect(r.attachment).toBeDefined(); - const owner = events.find((e) => e.span.id === r.attachment!.span_id); - expect(owner).toBeDefined(); + expect(r.attachment!.span_id).toBe(event.span.id); // Attachment references are JSON pointers into the owning row. const attachment = r .attachment!.ref.split("/") .slice(1) .reduce( - (value, part) => - (value as Record)?.[ - part.replace(/~1/g, "/").replace(/~0/g, "~") - ], - owner!.row, + (value, part) => (value as Record)?.[part], + event.row, ); expect(attachment).toMatchObject({ type: "braintrust_attachment" }); } @@ -63,19 +46,9 @@ export function assertAudioTrace( for (const event of events) { for (const s of (event.metadata?.["audio.selections"] ?? []) as Selection[]) { - const r = recordings.get(key(s.recording_span_id, s.recording_id)); - expect(r, `${event.span.name}: unknown recording`).toBeDefined(); - expect(r!.state).toBe("ready"); - expect(Number.isInteger(s.channel_index)).toBe(true); - expect(s.channel_index).toBeGreaterThanOrEqual(0); - expect(s.channel_index).toBeLessThan(r!.channel_count); - if (["user_turn", "user_speech"].includes(event.span.name!)) - expect(s.channel_index).toBe(0); - if (["agent_turn", "agent_speech"].includes(event.span.name!)) - expect(s.channel_index).toBe(1); - expect( - Number.isFinite(s.start_offset_ms) && Number.isFinite(s.end_offset_ms), - ).toBe(true); + const r = recordings.get(`${s.recording_span_id}/${s.recording_id}`); + expect(r?.state, `${event.span.name}: unknown recording`).toBe("ready"); + expect(s.channel_index).toBe(event.span.name!.startsWith("user") ? 0 : 1); expect(s.start_offset_ms).toBeGreaterThanOrEqual(0); expect(s.end_offset_ms).toBeGreaterThan(s.start_offset_ms); expect(s.end_offset_ms).toBeLessThanOrEqual( @@ -83,41 +56,31 @@ export function assertAudioTrace( ); } } - const unassociated = new Set(unassociatedSpeaking); + for (const turn of events.filter((e) => + ["user_turn", "agent_turn"].includes(e.span.name!), + )) + expect(turn.metadata?.["turn.id"]).toBe(turn.span.id); for (const speech of events.filter((e) => ["user_speech", "agent_speech"].includes(e.span.name!), )) { const turnId = speech.metadata?.["turn.id"]; if (turnId === undefined) { - unassociated.delete(speech.span.id!); const parent = events.find((e) => e.span.id === speech.span.parentIds[0]); - expect(parent?.span.name).toBe("livekit.agent_session"); + expect(parent?.span.name).toBe("session"); continue; } const turn = events.find((e) => e.span.id === turnId); - expect( - turn, - `${speech.span.name}: missing or dangling turn.id`, - ).toBeDefined(); - expect(turn!.span.name).toBe( + expect(turn?.span.name, `${speech.span.name}: dangling turn.id`).toBe( speech.span.name === "user_speech" ? "user_turn" : "agent_turn", ); expect(speech.row.span_parents).toEqual([turnId]); } - expect( - [...unassociated], - "expected unassociated speaking spans were not found", - ).toEqual([]); - for (const source of events) { - for (const link of (source.row.metadata?.links ?? []) as { - context: { traceId: string; spanId: string; traceFlags: number }; + for (const source of events) + for (const link of (source.metadata?.links ?? []) as { + context: { traceId: string; spanId: string }; attributes: Record; }[]) { - expect(link.context.traceId).toMatch(/^[0-9a-f]{32}$/); - expect(link.context.spanId).toMatch(/^[0-9a-f]{16}$/); - const target = events.find( - (event) => event.span.id === link.context.spanId, - ); + const target = events.find((e) => e.span.id === link.context.spanId); expect(target, "link target must be an exported span").toBeDefined(); expect(target!.row.root_span_id).toBe(link.context.traceId); expect([ @@ -128,5 +91,5 @@ export function assertAudioTrace( "transcribed_by", ]).toContain(link.attributes["braintrust.relationship.type"]); } - } + return events; } diff --git a/e2e/scenarios/livekit-instrumentation/automatic.mjs b/e2e/scenarios/livekit-instrumentation/automatic.mjs deleted file mode 100644 index b67f21533..000000000 --- a/e2e/scenarios/livekit-instrumentation/automatic.mjs +++ /dev/null @@ -1,142 +0,0 @@ -import { createRequire } from "node:module"; -import { mkdtemp, rm, mkdir, symlink } from "node:fs/promises"; -import { tmpdir } from "node:os"; -import { join, dirname } from "node:path"; -import assert from "node:assert/strict"; -import { initLogger, configureInstrumentation } from "braintrust"; -import { scopedName } from "../../helpers/provider-runtime.mjs"; -import { AudioFrame, dispose } from "@livekit/rtc-node"; -const mode = process.env.LIVEKIT_AUTO_MODE; -if (mode === "defaults") { - // Generic attachment opt-in must leave voice recording disabled by default. - delete process.env.BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS; - delete process.env.BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS; -} -if (mode !== "defaults") - configureInstrumentation({ - integrations: { - livekit: - mode === "integration-off" - ? false - : { - ...(mode === "env" - ? {} - : { - captureAudio: mode === "audio", - }), - }, - }, - }); -const cwd = process.cwd(); -const isolated = - mode === "defaults" - ? await mkdtemp(join(tmpdir(), "braintrust-no-audio-")) - : undefined; -if (mode === "defaults") { - // Model a pnpm app that installs LiveKit but not its OTel dependency directly. - const entry = createRequire(import.meta.url).resolve( - process.env.LIVEKIT_PACKAGE, - ); - const scope = join(isolated, "node_modules", "@livekit"); - await mkdir(scope, { recursive: true }); - await symlink(dirname(dirname(entry)), join(scope, "agents"), "junction"); -} -if (isolated) process.chdir(isolated); -const logger = initLogger({ projectName: scopedName("e2e-livekit-auto") }); -const { voice, telemetry, initializeLogger } = await import( - process.env.LIVEKIT_PACKAGE -); -initializeLogger({ pretty: false, level: "silent" }); -let provider, - observed = 0; -if (["redacted", "unsampled"].includes(mode)) { - const { NodeTracerProvider, AlwaysOffSampler } = - await import("@opentelemetry/sdk-trace-node"); - const processors = [ - { - onStart() { - observed++; - }, - onEnd() {}, - forceFlush: async () => {}, - shutdown: async () => {}, - }, - ]; - provider = new NodeTracerProvider({ - ...(mode === "unsampled" ? { sampler: new AlwaysOffSampler() } : {}), - spanProcessors: [ - { - onStart: (...args) => processors.forEach((p) => p.onStart(...args)), - onEnd: (...args) => processors.forEach((p) => p.onEnd(...args)), - forceFlush: async () => {}, - shutdown: async () => {}, - }, - ], - }); - provider.register(); - telemetry.setTracerProvider(provider, { - allowPii: mode !== "redacted", - registerSpanProcessor: (p) => processors.unshift(p), - }); -} -class Output extends voice.AudioOutput { - samples = 0; - constructor() { - super(24000); - } - async captureFrame(frame) { - await super.captureFrame(frame); - if (!this.samples) this.onPlaybackStarted(Date.now()); - this.samples += frame.samplesPerChannel; - } - flush() { - super.flush(); - if (this.pendingPlayoutSegments) - this.onPlaybackFinished({ - playbackPosition: this.samples / 24000, - interrupted: false, - }); - this.samples = 0; - } - clearBuffer() {} -} -const session = new voice.AgentSession(); -const output = new Output(); -session.output.audio = output; -const original = output.captureFrame; -try { - await session.start({ - agent: new voice.Agent({ instructions: "Fictional order assistant" }), - record: false, - }); - if (!["audio", "env"].includes(mode)) - assert.equal( - output.captureFrame, - original, - "disabled or unavailable recording must not wrap the sink", - ); - const audio = new ReadableStream({ - start(c) { - c.enqueue( - new AudioFrame(new Int16Array(4800).fill(1234), 24000, 1, 4800), - ); - c.close(); - }, - }); - await session.say("Your order arrives Friday.", { audio }).waitForPlayout(); - await session.close(); - await logger.flush(); - if (provider) { - assert.equal(telemetry.tracer.getProvider(), provider); - if (mode !== "unsampled") - assert(observed > 0, "existing processor must still run"); - } -} finally { - await session.close(); - await provider?.shutdown(); - await dispose(); - if (isolated) { - process.chdir(cwd); - await rm(isolated, { recursive: true }); - } -} diff --git a/e2e/scenarios/livekit-instrumentation/configure.mjs b/e2e/scenarios/livekit-instrumentation/configure.mjs new file mode 100644 index 000000000..a1d711778 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/configure.mjs @@ -0,0 +1,19 @@ +import { configureInstrumentation } from "braintrust/instrumentation"; +configureInstrumentation({ + ...(process.env.LIVEKIT_SEGMENTS === "1" + ? { streamingAttachmentBufferBytes: 19200 } // 200 ms of 24 kHz stereo s16le. + : {}), + integrations: { livekit: process.env.LIVEKIT_INTEGRATION !== "off" }, + spanCustomizers: [ + { + onSpanExport(data) { + data.metadata = { + ...data.metadata, + scenario: "livekit-instrumentation", + testRunId: process.env.BRAINTRUST_E2E_RUN_ID, + }; + return data; + }, + }, + ], +}); diff --git a/e2e/scenarios/livekit-instrumentation/fixtures/README.md b/e2e/scenarios/livekit-instrumentation/fixtures/README.md deleted file mode 100644 index fde081a1a..000000000 --- a/e2e/scenarios/livekit-instrumentation/fixtures/README.md +++ /dev/null @@ -1,3 +0,0 @@ -`order-24khz.pcm` is mono, signed 16-bit little-endian PCM at 24 kHz, generated with OpenAI speech synthesis for the fictional prompt “Where is my order DEMO 1042?”. It contains no customer audio. Streaming STT tests send this fixture through LiveKit's actual input stream and record real provider responses. HTTP and WebSocket cassettes contain those responses, never fabricated provider output. - -Offline replay supplies caller samples and uses a sample-clock output sink so scheduler jitter does not alter selection geometry. The companion PoC room validator separately checks actual RTC timing and received audio. diff --git a/e2e/scenarios/livekit-instrumentation/scenario.mjs b/e2e/scenarios/livekit-instrumentation/scenario.mjs index a3ce0fa11..f5520c1e4 100644 --- a/e2e/scenarios/livekit-instrumentation/scenario.mjs +++ b/e2e/scenarios/livekit-instrumentation/scenario.mjs @@ -1,23 +1,25 @@ +import "./configure.mjs"; import assert from "node:assert/strict"; -import { - initLogger, - configureInstrumentation, - LiveKitSpanProcessor, - setFetch, - wrapLiveKitSession, -} from "braintrust"; -import { getTestRunId, scopedName } from "../../helpers/provider-runtime.mjs"; -import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node"; +import { readFile } from "node:fs/promises"; +import { setTimeout as sleep } from "node:timers/promises"; +import { z } from "zod"; +import { initLogger, setFetch, wrapLiveKit } from "braintrust"; +import { scopedName } from "../../helpers/provider-runtime.mjs"; import { AudioFrame, dispose } from "@livekit/rtc-node"; -const automatic = process.env.LIVEKIT_AUTOMATIC === "1"; -if (automatic) - configureInstrumentation({ - integrations: { livekit: { captureAudio: true, captureContent: true } }, - }); -const { voice, llm, telemetry, initializeLogger } = await import( - process.env.LIVEKIT_PACKAGE -); +const livekit = await import(process.env.LIVEKIT_PACKAGE); +const { voice, llm, telemetry, initializeLogger } = + process.env.LIVEKIT_WRAP === "1" ? wrapLiveKit(livekit) : livekit; initializeLogger({ pretty: false, level: "silent" }); +const recording = process.env.BRAINTRUST_CAPTURE_ATTACHMENTS === "true"; +let provider; +if (process.env.LIVEKIT_OTEL === "unsampled") { + // An application provider that samples everything out must stay installed. + const { NodeTracerProvider, AlwaysOffSampler } = + await import("@opentelemetry/sdk-trace-node"); + provider = new NodeTracerProvider({ sampler: new AlwaysOffSampler() }); + provider.register(); + telemetry.setTracerProvider(provider); +} const completedUploads = []; if (process.env.LIVEKIT_SEGMENTS === "1") { setFetch(async (input, init) => { @@ -39,45 +41,6 @@ if (process.env.LIVEKIT_SEGMENTS === "1") { }); } const logger = initLogger({ projectName: scopedName("e2e-livekit") }); -class ScenarioProcessor extends LiveKitSpanProcessor { - onStart(span) { - super.onStart(span); - this.rows.get(span.spanContext().spanId)?.span.log({ - metadata: { - scenario: "livekit-instrumentation", - testRunId: getTestRunId(), - }, - }); - } -} -const processor = automatic - ? undefined - : new ScenarioProcessor({ - logger, - captureContent: true, - ...(process.env.LIVEKIT_SEGMENTS === "1" - ? { - recording: { - segmentDurationSeconds: 0.2, - }, - } - : {}), - captureAgentAudio: process.env.LIVEKIT_AUDIO === "1", - captureUserAudio: process.env.LIVEKIT_STREAMING_STT === "1", - }); -const provider = automatic - ? undefined - : new NodeTracerProvider({ spanProcessors: [processor] }); -if (provider) { - // LiveKit registers its own PII processor before ours. - provider.registerSpanProcessor = (p) => - provider._activeSpanProcessor._spanProcessors.unshift(p); - provider.register(); - telemetry.setTracerProvider(provider, { - allowPii: true, - registerSpanProcessor: (p) => provider.registerSpanProcessor(p), - }); -} const providerMode = process.env.LIVEKIT_PROVIDER === "1"; class Output extends voice.AudioOutput { samples = 0; @@ -93,17 +56,12 @@ class Output extends voice.AudioOutput { if (!this.samples) { this.interrupted = false; if (process.env.LIVEKIT_PLAYBACK_START_DELAY_MS) - await new Promise((resolve) => - setTimeout( - resolve, - Number(process.env.LIVEKIT_PLAYBACK_START_DELAY_MS), - ), - ); + await sleep(Number(process.env.LIVEKIT_PLAYBACK_START_DELAY_MS)); this.startedAt = Date.now(); this.onPlaybackStarted(this.startedAt); } const duration = (frame.samplesPerChannel / frame.sampleRate) * 1000; - await new Promise((resolve) => setTimeout(resolve, duration)); + await sleep(duration); this.samples += frame.samplesPerChannel; this.playedSamples += frame.samplesPerChannel; if (process.env.LIVEKIT_SEGMENTS === "1") @@ -154,7 +112,6 @@ class Output extends voice.AudioOutput { } const options = {}; const streamingStt = process.env.LIVEKIT_STREAMING_STT === "1"; -const audioInput = streamingStt; let ws; if (providerMode) { const { LLM, TTS } = await import("@livekit/agents-plugin-openai"); @@ -169,7 +126,7 @@ if (providerMode) { baseURL: process.env.OPENAI_BASE_URL, }); } -if (audioInput) { +if (streamingStt) { const { websocketCassette } = await import("./websocket-cassette.mjs"); ws = await websocketCassette( process.env.LIVEKIT_WS_PATH, @@ -184,11 +141,8 @@ if (audioInput) { options.turnDetection = "manual"; } const session = new voice.AgentSession(options); -if (process.env.LIVEKIT_WRAP === "1") { - assert.equal(wrapLiveKitSession(wrapLiveKitSession(session)), session); -} let inputController; -if (audioInput) { +if (streamingStt) { class Input extends voice.AudioInput { source = new ReadableStream({ start(controller) { @@ -225,8 +179,8 @@ try { ? { lookup_order: llm.tool({ description: "Look up an order delivery status.", - parameters: (await import("zod")).z.object({ - order_id: (await import("zod")).z.string(), + parameters: z.object({ + order_id: z.string(), }), execute: async ({ order_id }) => ({ order_id, @@ -239,8 +193,12 @@ try { }), record: false, }); - if (process.env.LIVEKIT_AUDIO !== "1") - assert.equal(output.captureFrame, original); + if (!recording) + assert.equal( + output.captureFrame, + original, + "disabled recording must not wrap the sink", + ); const audio = new ReadableStream({ start(controller) { controller.enqueue( @@ -250,13 +208,12 @@ try { }, }); if (providerMode) { - const feedCaller = async (fixture = "order", silenceBytes = 96000) => { - const { readFile } = await import("node:fs/promises"); + if (streamingStt) { + // Mono 24 kHz s16le speech synthesized by OpenAI for a fictional caller + // ("Where is my order DEMO 1042?"), followed by two seconds of silence. const bytes = Buffer.concat([ - await readFile( - new URL(`./fixtures/${fixture}-24khz.pcm`, import.meta.url), - ), - Buffer.alloc(silenceBytes), + await readFile(new URL("./fixtures/order-24khz.pcm", import.meta.url)), + Buffer.alloc(96000), ]); for (let at = 0; at < bytes.length; at += 960) { const pcm = new Int16Array(480); @@ -264,21 +221,16 @@ try { pcm[i] = bytes.readInt16LE(at + i * 2); inputController.enqueue(new AudioFrame(pcm, 24000, 1, 480)); // Pace microphone frames to preserve capture timing. - if (streamingStt) - await new Promise((resolve) => setTimeout(resolve, 20)); - // Buffered fixture input preserves the sample clock without wall-clock jitter. + await sleep(20); } - if (streamingStt) { - const deadline = Date.now() + 15000; - while (!/order/i.test(callerTranscript)) { - if (Date.now() > deadline) throw new Error("No final STT transcript"); - await new Promise((resolve) => setTimeout(resolve, 20)); - } - session.commitUserTurn(); + const transcriptDeadline = Date.now() + 15000; + while (!/order/i.test(callerTranscript)) { + if (Date.now() > transcriptDeadline) + throw new Error("No final STT transcript"); + await sleep(20); } - }; - if (audioInput) await feedCaller(); - else + session.commitUserTurn(); + } else await session .generateReply({ userInput: "Hi, could you check order 1042 for me?" }) .waitForPlayout(); @@ -293,7 +245,7 @@ try { ) ) { if (Date.now() > deadline) throw new Error("No committed order answer"); - await new Promise((resolve) => setTimeout(resolve, 20)); + await sleep(20); } await session.activity?.currentSpeech?.waitForPlayout(); if (process.env.LIVEKIT_RECOVER === "1") { @@ -314,12 +266,12 @@ try { }), ); } - if (audioInput) await session.input.audio?.close(); + if (streamingStt) await session.input.audio?.close(); await session.close(); - await provider?.forceFlush(); await logger.flush(); + if (provider) assert.equal(telemetry.tracer.getProvider(), provider); } finally { - if (audioInput) await session.input.audio?.close(); + if (streamingStt) await session.input.audio?.close(); await session.close(); await provider?.shutdown(); await dispose(); diff --git a/e2e/scenarios/livekit-instrumentation/scenario.test.ts b/e2e/scenarios/livekit-instrumentation/scenario.test.ts index f8817a8c3..2b58fa223 100644 --- a/e2e/scenarios/livekit-instrumentation/scenario.test.ts +++ b/e2e/scenarios/livekit-instrumentation/scenario.test.ts @@ -1,5 +1,5 @@ -import { assertAudioTrace } from "./assertions"; import { expect, test } from "vitest"; +import { assertAudioTrace } from "./assertions"; import { prepareScenarioDir, resolveScenarioDir, @@ -8,37 +8,34 @@ import { import { findLatestSpan, findAllSpans } from "../../helpers/trace-selectors"; import { spanTreeFields, matchSpanTreeSnapshot } from "../../helpers/span-tree"; import { resolveFileSnapshotPath } from "../../helpers/file-snapshot"; +import type { CapturedLogEvent } from "../../helpers/mock-braintrust-server"; + +// LiveKit timings and native IDs vary per run; the shared normalizer covers the rest. +const VOLATILE_NUMBER = + /(_ms|_at|_delay|At|e2e_latency|wait_duration|queue_wait|playback_latency|playbackPosition|ttft|ttfb|time_to_first_chunk|time_to_first_token|timestamp|ttfbMs|durationMs|tokensPerSecond)$/; +const NATIVE_ID = /^(item_|speech_)|^[0-9a-f]{8}-[0-9a-f]{3}$/; function normalizer() { const ids = new Map(); + const native = (value: string) => { + if (!ids.has(value)) ids.set(value, ``); + return ids.get(value)!; + }; function stable(value: unknown, key = ""): unknown { - if ( - typeof value === "number" && - /(_ms|_at|transcription_delay|end_of_turn_delay|on_user_turn_completed_delay|e2e_latency|At|wait_duration|queue_wait|playback_latency|playbackPosition|ttft|ttfb|time_to_first_chunk|time_to_first_token|timestamp|ttfbMs|durationMs|tokensPerSecond)$/.test( - key, - ) - ) - return 0; + if (typeof value === "number" && VOLATILE_NUMBER.test(key)) return 0; if (typeof value === "string" && key.endsWith("_metrics")) { try { return stable(JSON.parse(value)); } catch {} } - if ( - typeof value === "string" && - (["traceId", "spanId"].includes(key) || - /^(item_|speech_)/.test(value) || - /^[0-9a-f]{8}-[0-9a-f]{3}$/.test(value)) - ) { - if (!ids.has(value)) ids.set(value, ``); - return ids.get(value); - } + if (typeof value === "string" && NATIVE_ID.test(value)) + return native(value); if (typeof value === "string" && /^127\.0\.0\.1:\d+$/.test(value)) return ""; if (Array.isArray(value)) return value.map((v) => stable(v)); if (value && typeof value === "object") return Object.fromEntries( Object.entries(value).map(([k, v]) => [ - /^(item_|speech_)/.test(k) ? stable(k) : k, + NATIVE_ID.test(k) ? native(k) : k, stable(v, k), ]), ); @@ -46,475 +43,278 @@ function normalizer() { } return stable; } + const originalScenarioDir = resolveScenarioDir(import.meta.url); const scenarioDir = await prepareScenarioDir({ scenarioDir: originalScenarioDir, }); -// Native LiveKit I/O modes plus real-provider cassette conversations below. + +type RunOptions = { + mode?: "auto" | "wrapped" | "wrapped-auto"; + entry?: string; + env?: Record; + cassette?: string; + recording?: boolean; +}; +function scenarioOptions( + variant: string, + { + mode = "auto", + entry = "scenario.mjs", + env = {}, + cassette, + recording = true, + }: RunOptions, +) { + return { + scenarioDir, + entry, + timeoutMs: 90000, + nodeArgs: + mode === "wrapped" + ? [] + : [ + "--import", + `${scenarioDir}/configure.mjs`, + "--import", + "braintrust/hook.mjs", + ], + env: { + LIVEKIT_PACKAGE: variant, + LIVEKIT_WRAP: mode === "auto" ? "0" : "1", + BRAINTRUST_CAPTURE_ATTACHMENTS: recording ? "true" : "", + BRAINTRUST_DISABLE_INSTRUMENTATION: "", + ...(cassette ? { LIVEKIT_PROVIDER: "1" } : {}), + ...env, + }, + runContext: { + variantKey: variant, + originalScenarioDir, + cassette: cassette ? { variantKey: `${variant}-${cassette}` } : false, + }, + }; +} + +async function snapshotTrace(events: CapturedLogEvent[], name: string) { + const stable = normalizer(); + await matchSpanTreeSnapshot( + events.map((event) => ({ + event, + fields: stable({ + ...spanTreeFields(event), + context: event.row.context, + }) as Record, + })), + resolveFileSnapshotPath(import.meta.url, `${name}.span-tree.json`), + ); +} + +const spoken = (event: CapturedLogEvent | undefined, pattern: RegExp) => + expect(event?.row.output).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + role: "assistant", + content: expect.stringMatching(pattern), + }), + ]), + ); + for (const variant of ["livekit-v1", "livekit-v1-latest"]) { - for (const mode of ["wrapped", "auto", "wrapped-auto", "disabled"]) { + // Fixture playback through each setup path, including idempotent double wrapping. + for (const mode of ["auto", "wrapped", "wrapped-auto"] as const) test.sequential( - `${variant} ${mode}`, + `${variant} ${mode} fixture recording`, async () => { await withScenarioHarness(async (harness) => { - await harness.runNodeScenarioDir({ - scenarioDir, - entry: "scenario.mjs", - timeoutMs: 60000, - nodeArgs: - mode === "wrapped" ? [] : ["--import", "braintrust/hook.mjs"], - env: { - LIVEKIT_PACKAGE: variant, - LIVEKIT_WRAP: mode.includes("wrapped") ? "1" : "0", - LIVEKIT_AUDIO: mode === "disabled" ? "0" : "1", - }, - runContext: { - variantKey: variant, - originalScenarioDir, - cassette: false, - }, - }); - const stable = normalizer(); - const raw = harness.events(); - assertAudioTrace(raw); - const events = [...new Set(raw.map((e) => e.span.name))].flatMap( - (name) => findAllSpans(raw, name!), + await harness.runNodeScenarioDir(scenarioOptions(variant, { mode })); + const events = assertAudioTrace(harness.events()); + const root = findAllSpans(events, "session"); + expect(root).toHaveLength(1); + expect(root[0].metadata?.["audio.recordings"]).toMatchObject([ + { id: "call-0000", state: "ready", channel_count: 2 }, + ]); + // The ready descriptor is only published after the upload completes. + const requests = harness.requestsAfter(0); + const uploaded = requests.findIndex( + (r) => + r.path === "/attachment/status" && + (r.jsonBody as { status?: { upload_status?: string } })?.status + ?.upload_status === "done", ); - const root = findLatestSpan(events, "livekit.agent_session"); - const turn = findLatestSpan(events, "agent_turn"); - expect(root).toBeDefined(); - expect(turn).toBeDefined(); - expect( - new Set( - events - .filter((e) => e.span.name === "livekit.agent_session") - .map((e) => e.span.id), - ).size, - ).toBe(1); - const recordings = root!.row.metadata?.["audio.recordings"]; - if (mode === "disabled") expect(recordings).toBeUndefined(); - else { - expect(recordings).toMatchObject([ - { - state: "ready", - channel_count: 2, - attachment: { - span_id: root!.span.id, - ref: "/input/audio/call-0000", - }, - }, - ]); - expect(turn!.row.metadata?.["audio.selections"]).toMatchObject([ - { channel_index: 1, recording_span_id: root!.span.id }, - ]); - } - await matchSpanTreeSnapshot( - events.map((event) => ({ - event, - fields: stable({ - ...spanTreeFields(event), - context: event.row.context, - }) as Record, - })), - resolveFileSnapshotPath( - import.meta.url, - `${variant}-${mode === "disabled" ? "disabled" : "audio"}.span-tree.json`, - ), + const ready = requests.findIndex( + (r) => + r.path === "/logs3" && + JSON.stringify(r.jsonBody).includes('"state":"ready"'), ); + expect(uploaded).toBeGreaterThanOrEqual(0); + expect(ready).toBeGreaterThan(uploaded); + await snapshotTrace(events, `${variant}-audio`); }); }, 120000, ); - } -} -for (const variant of ["livekit-v1", "livekit-v1-latest"]) { test.sequential( - `${variant} order conversation`, + `${variant} recording requires attachment capture`, async () => { await withScenarioHarness(async (harness) => { - await harness.runNodeScenarioDir({ - scenarioDir, - entry: "scenario.mjs", - timeoutMs: 90000, - nodeArgs: ["--import", "braintrust/hook.mjs"], - env: { - LIVEKIT_PACKAGE: variant, - LIVEKIT_PROVIDER: "1", - LIVEKIT_AUDIO: "1", - BRAINTRUST_DISABLE_INSTRUMENTATION: "", - }, - runContext: { - variantKey: variant, - cassette: { variantKey: `${variant}-order` }, - originalScenarioDir, - }, - }); - const stable = normalizer(); - const raw = harness.events(); - assertAudioTrace(raw); - const events = [...new Set(raw.map((e) => e.span.name))].flatMap( - (name) => findAllSpans(raw, name!), + await harness.runNodeScenarioDir( + scenarioOptions(variant, { recording: false }), ); - const turn = findLatestSpan(events, "agent_turn"); - expect(turn).toBeDefined(); - const responses = events.filter((e) => e.span.name === "llm_response"); - expect( - events - .filter((e) => e.row.span_attributes?.type === "llm") - .map((e) => e.span.name), - ).toEqual(responses.map((e) => e.span.name)); - expect(responses).toHaveLength(2); + const events = assertAudioTrace(harness.events()); expect( - responses.every((e) => e.row.metadata?.["turn.id"] === turn!.span.id), - ).toBe(true); - expect( - responses.every((e) => e.row.metadata?.model === "gpt-4.1-nano"), - ).toBe(true); - expect(responses.every((e) => Number(e.row.metrics?.tokens) > 0)).toBe( - true, - ); - const tool = findLatestSpan(events, "lookup_order"); - expect(tool?.row.input).toEqual({ order_id: "1042" }); - expect(tool?.row.output).toMatchObject({ delivery: "Friday" }); - expect( - responses.some((e) => - ( - e.row.metadata?.links as - | { - context: { spanId: string }; - attributes: Record; - }[] - | undefined - )?.some( - (link) => - link.context.spanId === tool!.span.id && - link.attributes["braintrust.relationship.type"] === - "consumes_tool_result", - ), - ), - ).toBe(true); - expect(findLatestSpan(events, "agent_speech")?.row.output).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - role: "assistant", - content: expect.stringMatching(/Friday/i), - }), - ]), - ); - expect(findLatestSpan(events, "tts")).toBeDefined(); - expect(JSON.stringify(events.map((e) => e.row.metadata))).not.toContain( - '"livekit.', - ); - await matchSpanTreeSnapshot( - events.map((event) => ({ - event, - fields: stable({ - ...spanTreeFields(event), - context: event.row.context, - }) as Record, - })), - resolveFileSnapshotPath( - import.meta.url, - `${variant}-order.span-tree.json`, - ), - ); + events.some((e) => e.metadata?.["audio.recordings"] !== undefined), + ).toBe(false); + await snapshotTrace(events, `${variant}-disabled`); }); }, 120000, ); -} -for (const variant of ["livekit-v1", "livekit-v1-latest"]) { - for (const scheme of ["streaming-cascade"]) { + for (const mode of ["auto", "wrapped"] as const) test.sequential( - `${variant} ${scheme} order conversation`, + `${variant} ${mode} order conversation`, async () => { await withScenarioHarness(async (harness) => { - await harness.runNodeScenarioDir({ - scenarioDir, - entry: "scenario.mjs", - timeoutMs: 90000, - nodeArgs: ["--import", "braintrust/hook.mjs"], - env: { - LIVEKIT_PACKAGE: variant, - LIVEKIT_PROVIDER: "1", + await harness.runNodeScenarioDir( + scenarioOptions(variant, { mode, cassette: "order" }), + ); + const events = assertAudioTrace(harness.events()); + // Provider spans inside LiveKit inference are suppressed. + expect( + events.filter((e) => e.span.type === "llm").map((e) => e.span.name), + ).toEqual(["llm_response", "llm_response"]); + await snapshotTrace(events, `${variant}-order`); + }); + }, + 120000, + ); + test.sequential( + `${variant} streaming-cascade order conversation`, + async () => { + await withScenarioHarness(async (harness) => { + await harness.runNodeScenarioDir( + scenarioOptions(variant, { + cassette: "streaming-cascade", + env: { LIVEKIT_STREAMING_STT: "1", - - LIVEKIT_AUDIO: "1", - LIVEKIT_WS_PATH: `${originalScenarioDir}/__cassettes__/${variant}-${scheme}.websocket.json`, + LIVEKIT_WS_PATH: `${originalScenarioDir}/__cassettes__/${variant}-streaming-cascade.websocket.json`, BRAINTRUST_E2E_CASSETTE_MODE: process.env.BRAINTRUST_E2E_CASSETTE_MODE ?? "replay", - BRAINTRUST_DISABLE_INSTRUMENTATION: "", OPENAI_API_KEY: process.env.OPENAI_API_KEY ?? "replay", }, - runContext: { - variantKey: variant, - originalScenarioDir, - cassette: { variantKey: `${variant}-${scheme}` }, - }, - }); - const stable = normalizer(); - const raw = harness.events(); - assertAudioTrace(raw); - const events = [...new Set(raw.map((e) => e.span.name))].flatMap( - (name) => findAllSpans(raw, name!), - ); - expect( - findLatestSpan(events, "lookup_order")?.row.output, - ).toMatchObject({ delivery: "Friday" }); - expect( - events.filter((e) => e.span.name === "llm_response").length, - ).toBeGreaterThanOrEqual(2); - expect(findLatestSpan(events, "agent_speech")?.row.output).toEqual( - expect.arrayContaining([ + }), + ); + const events = assertAudioTrace(harness.events()); + const user = findAllSpans(events, "user_speech").find((e) => + Array.isArray(e.row.input), + ); + expect(user?.metadata?.["audio.selections"]).not.toEqual([]); + // LiveKit has no native STT span; each final transcript gets one. + const stt = findAllSpans(events, "stt"); + expect(stt.length).toBeGreaterThan(0); + expect(user?.metadata?.links).toEqual( + expect.arrayContaining( + stt.map((span) => expect.objectContaining({ - role: "assistant", - content: expect.stringMatching(/Friday/i), + context: expect.objectContaining({ spanId: span.span.id }), + attributes: { + "braintrust.relationship.type": "transcribed_by", + }, }), - ]), - ); - const users = findAllSpans(events, "user_speech"); - expect(users.length).toBeGreaterThan(0); - const transcript = users - .flatMap((e) => - Array.isArray(e.row.input) - ? e.row.input.map((m) => m.content) - : [], - ) - .join(" "); - expect(transcript).toMatch(/Where\s+is\s+my\s+order/i); - const user = users.find( - (e) => - Array.isArray(e.row.input) && e.row.input.some((m) => m.content), - ); - expect(user?.row.metadata?.["audio.selections"]).toEqual( - expect.arrayContaining([ - expect.objectContaining({ channel_index: 0 }), - ]), - ); - expect( - events - .filter((e) => e.span.name === "llm_response") - .every((e) => Array.isArray(e.row.output)), - ).toBe(true); - expect(findLatestSpan(events, "tts")).toBeDefined(); - expect(findLatestSpan(events, "user_turn")?.row.metadata?.model).toBe( - "gpt-4o-mini-transcribe", - ); - await matchSpanTreeSnapshot( - events.map((event) => ({ - event, - fields: stable({ - ...spanTreeFields(event), - context: event.row.context, - }) as Record, - })), - resolveFileSnapshotPath( - import.meta.url, - `${variant}-${scheme}.span-tree.json`, ), - ); - }); - }, - 120000, - ); - } -} + ), + ); + await snapshotTrace(events, `${variant}-streaming-cascade`); + }); + }, + 120000, + ); -for (const variant of ["livekit-v1", "livekit-v1-latest"]) { for (const recover of [false, true]) test.sequential( `${variant} ${recover ? "recovered" : "interrupted"} order answer`, async () => { await withScenarioHarness(async (harness) => { - await harness.runNodeScenarioDir({ - scenarioDir, - entry: "scenario.mjs", - timeoutMs: 90000, - nodeArgs: ["--import", "braintrust/hook.mjs"], - env: { - LIVEKIT_PACKAGE: variant, - LIVEKIT_PROVIDER: "1", - LIVEKIT_AUDIO: "1", - LIVEKIT_INTERRUPT: "1", - LIVEKIT_RECOVER: recover ? "1" : "0", - BRAINTRUST_DISABLE_INSTRUMENTATION: "", - }, - runContext: { - variantKey: variant, - cassette: { - variantKey: `${variant}-${recover ? "recovered" : "order"}`, + await harness.runNodeScenarioDir( + scenarioOptions(variant, { + cassette: recover ? "recovered" : "order", + env: { + LIVEKIT_INTERRUPT: "1", + LIVEKIT_RECOVER: recover ? "1" : "0", }, - originalScenarioDir, - }, - }); - const raw = harness.events(); - assertAudioTrace(raw); - const events = [...new Set(raw.map((e) => e.span.name))].flatMap( - (name) => findAllSpans(raw, name!), + }), ); - const turn = events.find( + const events = assertAudioTrace(harness.events()); + const interrupted = events.find( (e) => e.span.name === "agent_speech" && - e.row.metadata?.["contrib.livekit.interrupted"], + e.metadata?.["contrib.livekit.interrupted"], ); + expect(interrupted?.metadata?.["audio.selections"]).not.toEqual([]); if (recover) { const resumed = findLatestSpan(events, "agent_speech"); - expect(resumed?.span.id).not.toBe(turn?.span.id); - expect( - resumed?.row.metadata?.["contrib.livekit.interrupted"], - ).not.toBe(true); - expect(resumed?.row.output).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - role: "assistant", - content: expect.stringMatching(/Friday/i), - }), - ]), - ); - expect(resumed?.row.metadata?.["audio.selections"]).toEqual( - expect.arrayContaining([ - expect.objectContaining({ channel_index: 1 }), - ]), - ); + expect(resumed?.span.id).not.toBe(interrupted?.span.id); + spoken(resumed, /Friday/i); } - expect(turn?.row.metadata?.["contrib.livekit.interrupted"]).toBe( - true, - ); - expect(turn?.row.metadata?.["audio.selections"]).toEqual( - expect.arrayContaining([ - expect.objectContaining({ channel_index: 1 }), - ]), - ); - expect( - events.find((e) => e.span.id === turn?.row.metadata?.["turn.id"]) - ?.row.metadata?.["contrib.livekit.playback_events"], - ).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - attributes: expect.objectContaining({ interrupted: true }), - }), - ]), - ); - const stable = normalizer(); - await matchSpanTreeSnapshot( - events.map((event) => ({ - event, - fields: stable({ - ...spanTreeFields(event), - context: event.row.context, - }) as Record, - })), - resolveFileSnapshotPath( - import.meta.url, - `${variant}-${recover ? "recovered" : "interrupted"}.span-tree.json`, - ), + await snapshotTrace( + events, + `${variant}-${recover ? "recovered" : "interrupted"}`, ); }); }, 120000, ); -} -for (const variant of ["livekit-v1", "livekit-v1-latest"]) { - test.sequential.each([0, 137])( - `${variant} progressive order recording (%i ms start delay)`, - async (startDelayMs) => { + // Rotation is anchored to session time, so a delayed playback start changes the + // number of files. Assert complete, contiguous coverage instead of a snapshot. + test.sequential( + `${variant} progressive order recording`, + async () => { await withScenarioHarness(async (harness) => { - const result = await harness.runNodeScenarioDir({ - scenarioDir, - entry: "scenario.mjs", - timeoutMs: 90000, - nodeArgs: ["--import", "braintrust/hook.mjs"], - env: { - LIVEKIT_PACKAGE: variant, - LIVEKIT_PROVIDER: "1", - LIVEKIT_AUDIO: "1", - LIVEKIT_SEGMENTS: "1", - LIVEKIT_PLAYBACK_START_DELAY_MS: String(startDelayMs), - BRAINTRUST_DISABLE_INSTRUMENTATION: "", - }, - runContext: { - variantKey: variant, - cassette: { variantKey: `${variant}-order` }, - originalScenarioDir, - }, - }); - const raw = harness.events(); - assertAudioTrace(raw); - const events = [...new Set(raw.map((e) => e.span.name))].flatMap( - (name) => findAllSpans(raw, name!), + const result = await harness.runNodeScenarioDir( + scenarioOptions(variant, { + cassette: "order", + env: { + LIVEKIT_SEGMENTS: "1", + LIVEKIT_PLAYBACK_START_DELAY_MS: "137", + }, + }), ); - const root = findLatestSpan(events, "livekit.agent_session")!; - const descriptors = root.row.metadata?.["audio.recordings"] as { + const events = assertAudioTrace(harness.events()); + const root = findLatestSpan(events, "session")!; + const recordings = root.metadata?.["audio.recordings"] as { id: string; state: string; - mime_type: string; - recording_group_id: string; duration_ms: number; - attachment: { span_id: string; ref: string }; timeline: { recording_start_offset_ms: number }; }[]; - // Rotation is anchored to session time, so startup latency changes the - // number of files. Assert complete playback coverage rather than a fixed - // segment-count snapshot; the ordinary audio case snapshots trace shape. - expect(descriptors.length).toBeGreaterThan(1); + expect(recordings.length).toBeGreaterThan(1); const attachments = ( - root.row.input as { - audio: Record< - string, - { key: string; filename: string; content_type: string } - >; - } + root.row.input as { audio: Record } ).audio; expect(Object.keys(attachments).sort()).toEqual( - descriptors.map((r) => r.id).sort(), + recordings.map((r) => r.id).sort(), ); - const requests = harness.requestsAfter(0); - for (const [index, recording] of descriptors.entries()) { + for (const [index, recording] of recordings.entries()) { expect(recording).toMatchObject({ id: `call-${String(index).padStart(4, "0")}`, state: "ready", - mime_type: "audio/pcm", - recording_group_id: "call", - attachment: { - span_id: root.span.id, - ref: `/input/audio/${recording.id}`, - }, }); - expect(recording.duration_ms).toBeGreaterThan(0); expect(recording.duration_ms).toBeLessThanOrEqual(200.05); - if (index > 0) { - const previous = descriptors[index - 1]; + if (index > 0) expect(recording.timeline.recording_start_offset_ms).toBeCloseTo( - previous.timeline.recording_start_offset_ms + - previous.duration_ms, + recordings[index - 1].timeline.recording_start_offset_ms + + recordings[index - 1].duration_ms, 1, ); - } - const attachment = attachments[recording.id]; - expect(attachment).toMatchObject({ - filename: `${recording.id}.pcm`, - content_type: "audio/pcm", - }); - expect( - requests.some( - (r) => - r.path === "/attachment/status" && - (r.jsonBody as { key?: string })?.key === attachment.key && - (r.jsonBody as { status?: { upload_status?: string } })?.status - ?.upload_status === "done", - ), - ).toBe(true); } - const diagnostic = result.stdout - .split("\n") - .find((line) => line.startsWith('{"playedDurationMs":')); - expect(diagnostic).toBeDefined(); - const { playedDurationMs, completedUploads } = JSON.parse(diagnostic!); - expect(playedDurationMs).toBeGreaterThan(0); + const { playedDurationMs, completedUploads } = JSON.parse( + result.stdout + .split("\n") + .find((line) => line.startsWith('{"playedDurationMs":'))!, + ); // A successful upload must precede the final frame, without forceFlush. expect( completedUploads.some( @@ -525,40 +325,28 @@ for (const variant of ["livekit-v1", "livekit-v1-latest"]) { ), ).toBe(true); for (const name of ["agent_turn", "agent_speech"]) { - const owner = findLatestSpan(events, name)!; - const selections = owner.row.metadata?.["audio.selections"] as { + const selections = findLatestSpan(events, name)!.metadata?.[ + "audio.selections" + ] as { recording_id: string; - recording_span_id: string; - channel_index: number; start_offset_ms: number; end_offset_ms: number; }[]; expect(selections.map((s) => s.recording_id)).toEqual( - descriptors.map((r) => r.id), + recordings.map((r) => r.id), ); let selectedMs = 0; let previousEnd: number | undefined; for (const selection of selections) { - const recording = descriptors.find( + const offset = recordings.find( (r) => r.id === selection.recording_id, - )!; - expect(selection.recording_span_id).toBe(root.span.id); - expect(selection.channel_index).toBe(1); - expect(selection.start_offset_ms).toBeGreaterThanOrEqual(0); - expect(selection.end_offset_ms).toBeGreaterThan( - selection.start_offset_ms, - ); - expect(selection.end_offset_ms).toBeLessThanOrEqual( - recording.duration_ms + 0.05, - ); - const start = - recording.timeline.recording_start_offset_ms + - selection.start_offset_ms; + )!.timeline.recording_start_offset_ms; if (previousEnd !== undefined) - expect(start).toBeCloseTo(previousEnd, 1); - previousEnd = - recording.timeline.recording_start_offset_ms + - selection.end_offset_ms; + expect(offset + selection.start_offset_ms).toBeCloseTo( + previousEnd, + 1, + ); + previousEnd = offset + selection.end_offset_ms; selectedMs += selection.end_offset_ms - selection.start_offset_ms; } expect(selectedMs).toBeCloseTo(playedDurationMs, 1); @@ -567,168 +355,32 @@ for (const variant of ["livekit-v1", "livekit-v1-latest"]) { }, 120000, ); -} -// Automatic setup and recording opt-in, with no optional audio package installed. -for (const variant of ["livekit-v1", "livekit-v1-latest"]) { - for (const mode of [ - "off", - "audio", - "unsampled", - "redacted", - "integration-off", - "worker", - "fork", - "env", - "defaults", - ]) { + // Automatic setup in other runtimes and next to an application OTel provider. + for (const setup of ["unsampled", "integration-off", "worker"] as const) test.sequential( - `${variant} automatic setup ${mode}`, + `${variant} automatic setup ${setup}`, async () => { await withScenarioHarness(async (harness) => { - await harness.runNodeScenarioDir({ - scenarioDir, - entry: ["worker", "fork"].includes(mode) - ? "worker.mjs" - : "automatic.mjs", - timeoutMs: 60000, - nodeArgs: ["--import", "braintrust/hook.mjs"], - env: { - LIVEKIT_PACKAGE: variant, - LIVEKIT_AUTO_MODE: mode, - NODE_PATH: "", - BRAINTRUST_CAPTURE_ATTACHMENTS: "true", - BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS: - mode === "env" ? "true" : "", - BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS: - mode === "env" ? "true" : "", - }, - runContext: { - variantKey: variant, - originalScenarioDir, - cassette: false, - }, - }); - const events = harness.events(); - assertAudioTrace(events); - if (mode === "integration-off" || mode === "unsampled") { + await harness.runNodeScenarioDir( + scenarioOptions(variant, { + recording: false, + entry: setup === "worker" ? "worker.mjs" : "scenario.mjs", + env: { + LIVEKIT_OTEL: setup === "unsampled" ? "unsampled" : "", + LIVEKIT_INTEGRATION: setup === "integration-off" ? "off" : "", + }, + }), + ); + const events = assertAudioTrace(harness.events()); + if (setup === "integration-off") { expect(events).toHaveLength(0); return; } - const roots = findAllSpans(events, "livekit.agent_session"); - expect(roots).toHaveLength(1); - const root = roots[0]; - const metadata = root.row.metadata as - | Record - | undefined; - if (mode === "audio" || mode === "env") { - // Verify wire ordering, not just the final merged trace. - const requests = harness.requestsAfter(0); - const uploaded = requests.findIndex( - (r) => - r.path === "/attachment/status" && - (r.jsonBody as { status?: { upload_status?: string } })?.status - ?.upload_status === "done", - ); - const ready = requests.findIndex((r) => { - if (r.path !== "/logs3") return false; - const body = r.jsonBody as { - rows?: { - metadata?: { "audio.recordings"?: { state: string }[] }; - }[]; - }; - return body.rows?.some((row) => - row.metadata?.["audio.recordings"]?.some( - (s) => s.state === "ready", - ), - ); - }); - expect(uploaded).toBeGreaterThanOrEqual(0); - expect(ready).toBeGreaterThan(uploaded); - expect(metadata?.["audio.recordings"]).toMatchObject([ - { - state: "ready", - mime_type: "audio/pcm", - }, - ]); - } else expect(metadata?.["audio.recordings"]).toBeUndefined(); - const turn = findLatestSpan(events, "agent_turn"); - expect(turn).toBeDefined(); - if (mode === "redacted") - expect(JSON.stringify(events.map((e) => e.row))).not.toContain( - "Your order arrives Friday.", - ); - else - expect( - JSON.stringify( - findLatestSpan(events, "agent_speech")?.row.output, - ), - ).toContain("Your order arrives Friday."); + expect(findAllSpans(events, "session")).toHaveLength(1); + spoken(findLatestSpan(events, "agent_speech"), /Fixture playback/); }); }, 90000, ); - } -} - -for (const variant of ["livekit-v1", "livekit-v1-latest"]) { - test.sequential( - `${variant} automatic cascade conversation`, - async () => { - await withScenarioHarness(async (harness) => { - await harness.runNodeScenarioDir({ - scenarioDir, - entry: "scenario.mjs", - timeoutMs: 90000, - nodeArgs: ["--import", "braintrust/hook.mjs"], - env: { - LIVEKIT_PACKAGE: variant, - LIVEKIT_AUTOMATIC: "1", - LIVEKIT_PROVIDER: "1", - LIVEKIT_AUDIO: "1", - }, - runContext: { - variantKey: variant, - originalScenarioDir, - cassette: { - variantKey: `${variant}-order`, - }, - }, - }); - const events = harness.events(); - assertAudioTrace(events); - expect(findAllSpans(events, "livekit.agent_session")).toHaveLength(1); - const turns = findAllSpans(events, "agent_turn"); - const turnIds = new Set(turns.map((t) => t.span.id)); - for (const response of findAllSpans(events, "llm_response")) - expect( - turnIds.has( - (response.row.span_parents as string[] | undefined)?.[0], - ), - ).toBe(true); - expect( - turns.some((t) => { - const metadata = t.row.metadata as - | Record - | undefined; - const selections = metadata?.["audio.selections"]; - return Array.isArray(selections) && selections.length > 0; - }), - ).toBe(true); - expect(findAllSpans(events, "lookup_order")).toHaveLength(1); - expect(findAllSpans(events, "llm_response").length).toBeGreaterThan(0); - expect( - findLatestSpan(events, "livekit.agent_session")?.row, - ).toMatchObject({ - metadata: { - "audio.recordings": [{ state: "ready", mime_type: "audio/pcm" }], - }, - }); - expect( - JSON.stringify(findLatestSpan(events, "agent_speech")?.row.output), - ).toContain("Friday"); - }); - }, - 120000, - ); } diff --git a/e2e/scenarios/livekit-instrumentation/websocket-cassette.mjs b/e2e/scenarios/livekit-instrumentation/websocket-cassette.mjs index d7bed105b..3b441b440 100644 --- a/e2e/scenarios/livekit-instrumentation/websocket-cassette.mjs +++ b/e2e/scenarios/livekit-instrumentation/websocket-cassette.mjs @@ -4,21 +4,13 @@ import { readFile, writeFile, mkdir } from "node:fs/promises"; import { setImmediate } from "node:timers/promises"; import { dirname } from "node:path"; import assert from "node:assert/strict"; -export async function websocketCassette( - path, - record, - { concurrentAudio = false, burst = false } = {}, -) { +export async function websocketCassette(path, record) { const events = record ? [] : JSON.parse(await readFile(path, "utf8")); let index = 0, failure, socket, upstream; - let disconnected = false; - let connectionCount = 0; const ids = new Map(); - const consumed = new Set(); - const isAudio = (message) => message.type === "session.input_audio.append"; const server = new WebSocketServer({ port: 0, host: "127.0.0.1" }); await new Promise((resolve) => server.once("listening", resolve)); function remap(value) { @@ -60,21 +52,11 @@ export async function websocketCassette( pumping = true; try { while (index < events.length && socket.readyState === WebSocket.OPEN) { - if (events[index].direction === "send") { - if (!consumed.delete(index)) break; - index++; - } else if ( - events[index].direction === "disconnect" || - events[index].direction === "connect" - ) - break; - else { - const message = remap(events[index++].message); - socket.send(JSON.stringify(message)); - // Preserve protocol order without waiting on the instrumented code. - // Burst replay also exercises completion arriving before async setup. - if (!burst) await setImmediate(); - } + if (events[index].direction === "send") break; + const message = remap(events[index++].message); + socket.send(JSON.stringify(message)); + // Yield between recorded responses, preserving protocol ordering. + await setImmediate(); } } catch (error) { failure = error; @@ -84,24 +66,11 @@ export async function websocketCassette( } }; server.on("connection", (client, request) => { - if (socket && !disconnected) { + if (socket) { failure ??= new Error("Unexpected realtime reconnect"); client.close(); return; } - if (connectionCount > 0) { - if (record) events.push({ direction: "connect" }); - else { - assert.equal( - events[index]?.direction, - "connect", - "Expected recorded reconnect", - ); - index++; - } - } - connectionCount++; - disconnected = false; socket = client; if (record) { const url = new URL(request.url, "wss://api.openai.com"); @@ -136,24 +105,13 @@ export async function websocketCassette( client.on("message", (data) => { try { const actual = JSON.parse(data.toString()); - // A duplex microphone keeps sending while tools finish. Validate both - // ordered lanes in full without depending on their scheduler interleave. - const expected = concurrentAudio - ? events.findIndex( - (event, i) => - i >= index && - event.direction === "send" && - !consumed.has(i) && - isAudio(event.message) === isAudio(actual), - ) - : index; assert.equal( - events[expected]?.direction, + events[index]?.direction, "send", `Unexpected outgoing message at ${index}`, ); - match(actual, events[expected].message); - consumed.add(expected); + match(actual, events[index].message); + index++; pump(); } catch (error) { console.error("WebSocket cassette mismatch at", index, error); @@ -166,27 +124,6 @@ export async function websocketCassette( }); return { baseURL: `http://127.0.0.1:${server.address().port}/v1`, - disconnect() { - assert( - socket?.readyState === WebSocket.OPEN, - "No active connection to disconnect", - ); - if (record) events.push({ direction: "disconnect" }); - else { - assert.equal( - events[index]?.direction, - "disconnect", - "Disconnect before recorded messages completed", - ); - index++; - } - disconnected = true; - socket.terminate(); - upstream?.terminate(); - }, - get connections() { - return connectionCount; - }, async close() { socket?.terminate(); upstream?.terminate(); diff --git a/e2e/scenarios/livekit-instrumentation/worker.mjs b/e2e/scenarios/livekit-instrumentation/worker.mjs index 0bab711be..89040166d 100644 --- a/e2e/scenarios/livekit-instrumentation/worker.mjs +++ b/e2e/scenarios/livekit-instrumentation/worker.mjs @@ -1,11 +1,5 @@ -import { fork } from "node:child_process"; import { Worker } from "node:worker_threads"; -const env = { ...process.env, LIVEKIT_AUTO_MODE: "off" }; -const entry = new URL("./automatic.mjs", import.meta.url); -const worker = - process.env.LIVEKIT_AUTO_MODE === "fork" - ? fork(entry, [], { env }) - : new Worker(entry, { env }); +const worker = new Worker(new URL("./scenario.mjs", import.meta.url)); await new Promise((resolve, reject) => { worker.on("error", reject); worker.on("exit", (code) => diff --git a/js/src/audio/README.md b/js/src/audio/README.md deleted file mode 100644 index 91b79971d..000000000 --- a/js/src/audio/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Recording utilities for SDK integrations - -Internal utilities shared by voice integrations. Audio recording buffers timestamped PCM, rotates bounded segments, renders each segment as raw PCM, and uploads attachments. Voice recording adds associations between speech spans and audio files. - -```ts -import { Attachment } from "../logger"; -import { createVoiceRecording } from "./index"; - -const voice = createVoiceRecording({ - span: sessionSpan, - flush: () => logger.flush(), - createAttachment: (options) => new Attachment(options), - options: { segmentDurationSeconds: 60 }, - snapshot: () => ({ - origin: sessionStartUnixMs, - basis: "local_capture", - source: (channel_index) => ({ channel_index }), - }), - speechSelections: () => speechSpans, // { span, intervals } in call-relative milliseconds. -}); - -voice.audio.record({ - pcm, - rate: 24000, - channels: 1, - channel: 0, - at: frameOffsetMs, -}); -voice.audio.advance(confirmedThroughMs); // No earlier frames will arrive on either channel. -voice.publishSelections(); // Republish after speech timestamps change. -await voice.finish(); -``` - -`createAudioRecording()` accepts the same audio configuration without `speechSelections`. Use it when no speech-to-recording associations are needed. Integrations supply timing; these utilities do not infer speech boundaries. - -| Setting | Default | -| -------------------------------- | ---------- | -| `options.segmentDurationSeconds` | `60` | -| `options.maxDurationSeconds` | `1800` | -| `options.maxBufferBytes` | `33554432` | -| `options.flushFraction` | `0.5` | - -Segment duration is a rotation target, not the total recording limit. Recording starts only when the integration explicitly enables capture. - -Each segment is uploaded as an `audio/pcm` attachment: headerless, interleaved stereo, signed 16-bit little-endian samples at 24kHz. Channel 0 is left and channel 1 is right; sources at other rates are resampled. The segment's `audio.recordings` descriptor carries `sample_rate_hz` and `channel_count`. diff --git a/js/src/audio/buffers.ts b/js/src/audio/buffers.ts deleted file mode 100644 index d4f17daf1..000000000 --- a/js/src/audio/buffers.ts +++ /dev/null @@ -1,60 +0,0 @@ -/** Owns PCM reservations across staging, recorder admission and export. */ -export class PcmBuffers { - private leases = new Map< - ArrayBufferLike, - { bytes: number; admitted: boolean } - >(); - private retained = 0; - constructor(private maximum: number) {} - get bytes() { - return this.retained; - } - copy(pcm: Int16Array): Int16Array { - const bytes = pcm.byteLength; - if (this.retained + bytes > this.maximum) { - throw new Error("capture_byte_limit"); - } - const owned = new Int16Array(pcm); - this.leases.set(owned.buffer, { bytes, admitted: false }); - this.retained += bytes; - return owned; - } - - admit(pcm: Int16Array): boolean { - const lease = this.leases.get(pcm.buffer); - if (!lease || lease.admitted) { - return false; - } - lease.admitted = true; - return true; - } - discard(pcm: Int16Array) { - if (!this.leases.get(pcm.buffer)?.admitted) { - this.release(pcm); - } - } - release(pcm: Int16Array) { - const lease = this.leases.get(pcm.buffer); - if (!lease) { - return; - } - this.leases.delete(pcm.buffer); - this.retained -= lease.bytes; - } - split(pcm: Int16Array, count: number): [Int16Array, Int16Array] { - const lease = this.leases.get(pcm.buffer); - if (!lease || pcm.byteLength !== lease.bytes) { - throw new Error("Invalid PCM ownership"); - } - const head = pcm.slice(0, count), - tail = pcm.slice(count); - this.leases.delete(pcm.buffer); - this.leases.set(head.buffer, { bytes: head.byteLength, admitted: true }); - this.leases.set(tail.buffer, { bytes: tail.byteLength, admitted: true }); - return [head, tail]; - } - close() { - this.leases.clear(); - this.retained = 0; - } -} diff --git a/js/src/audio/exporter.test.ts b/js/src/audio/exporter.test.ts deleted file mode 100644 index 95fa82c52..000000000 --- a/js/src/audio/exporter.test.ts +++ /dev/null @@ -1,282 +0,0 @@ -import { afterEach, expect, test, vi } from "vitest"; -import { AudioSegment } from "./segment"; -import { SegmentExporter } from "./exporter"; -import { VoicePublisher } from "./voice-publisher"; -import { TracePublisher } from "./publisher"; -class TestAttachment { - reference: { key: string; filename: string; content_type: string }; - constructor(options: { filename: string; contentType: string }) { - this.reference = { - key: "attachment", - filename: options.filename, - content_type: options.contentType, - }; - } - async upload(): Promise<{ - upload_status: "done" | "error"; - error_message?: string; - }> { - return { upload_status: "done" }; - } -} -afterEach(() => vi.restoreAllMocks()); - -function fixture() { - const span = { spanId: "root", log: vi.fn() }; - const turn = { log: vi.fn() }, - speaking = { log: vi.fn() }; - const segments: AudioSegment[] = []; - const flush = vi.fn(async () => {}); - const intervals = [ - { - recording_span_id: "root", - recording_id: "call", - channel_index: 1, - start_offset_ms: 100, - end_offset_ms: 140, - }, - ]; - const voice = new VoicePublisher( - () => segments, - () => [ - { span: turn, intervals, alias: true }, - { span: speaking, intervals }, - ], - ); - const publisher = new TracePublisher( - span, - flush, - () => ({ - segments, - origin: 1234, - basis: "test", - source: (channel) => ({ channel_index: channel }), - closed: false, - }), - () => voice.publish(), - ); - const executions = new Map(); - const exporter = { - publishRecordings: () => publisher.publishRecordings(), - publishSelections: () => voice.publish(), - publish: async (segment: AudioSegment) => { - await executions.get(segment)!.export(segment, () => {}); - await publisher.publish(segment); - }, - }; - function encode(error?: string, bytes = 16) { - const start = 100 + segments.length * 20; - const segment = new AudioSegment( - `call-${segments.length}`, - start, - start + 20, - [ - { - pcm: new Int16Array(480), - at: 0, - rate: 24000, - channels: 1, - channel: 1, - }, - ], - ); - segments.push(segment); - publisher.publishRecordings(); - executions.set( - segment, - new SegmentExporter( - async () => { - if (error) { - throw new Error(error); - } - return { - bytes: new Uint8Array(bytes), - durationMs: 20, - sampleRate: 24000, - mimeType: "audio/pcm", - }; - }, - (options) => new TestAttachment(options), - ), - ); - return segment; - } - const manifests = () => - span.log.mock.calls.flatMap( - ([row]) => row.metadata?.["audio.recordings"] ?? [], - ); - return { span, turn, speaking, exporter, encode, manifests }; -} - -test.each([16, 17 * 1024 * 1024])( - "%i encoded bytes remain pending until ordinary attachment upload succeeds", - async (bytes) => { - let complete!: (status: { upload_status: "done" }) => void; - const upload = vi - .spyOn(TestAttachment.prototype, "upload") - .mockImplementation( - () => - new Promise((resolve) => { - complete = resolve; - }), - ); - const f = fixture(), - segment = f.encode(undefined, bytes); - const publication = f.exporter.publish(segment); - try { - f.exporter.publishRecordings(); - f.exporter.publishSelections(); - expect(f.manifests().every((m) => m.state === "pending")).toBe(true); - expect(f.span.log.mock.calls.some(([row]) => row.input?.audio)).toBe( - false, - ); - for (const owner of [f.turn, f.speaking]) { - expect( - owner.log.mock.calls.flatMap( - ([row]) => row.metadata?.["audio.selections"] ?? [], - ), - ).toEqual([]); - } - await vi.waitFor(() => expect(upload).toHaveBeenCalledTimes(1)); - complete({ upload_status: "done" }); - await publication; - expect(f.manifests().at(-1)).toMatchObject({ - state: "ready", - attachment: { span_id: "root", ref: "/input/audio/call-0" }, - }); - expect(f.manifests()[0].state).toBe("pending"); - for (const owner of [f.turn, f.speaking]) { - expect( - owner.log.mock.calls.at(-1)![0].metadata["audio.selections"], - ).toMatchObject([ - { recording_id: "call-0", start_offset_ms: 0, end_offset_ms: 20 }, - ]); - } - const reference = f.span.log.mock.calls.find( - ([row]) => row.input?.audio, - )![0].input.audio[segment.id]; - expect(reference).toMatchObject({ - key: expect.any(String), - filename: "call-0.pcm", - content_type: "audio/pcm", - }); - expect(reference).not.toBeInstanceOf(TestAttachment); - const rows = f.span.log.mock.calls.length; - f.exporter.publishRecordings(); - f.exporter.publishSelections(); - expect(f.span.log.mock.calls).toHaveLength(rows); - } finally { - complete?.({ upload_status: "done" }); - await publication.catch(() => {}); - } - }, -); - -test.each(["status", "rejection"])( - "upload %s failure never publishes ready and preserves earlier audio", - async (mode) => { - const upload = vi - .spyOn(TestAttachment.prototype, "upload") - .mockResolvedValueOnce({ upload_status: "done" }); - const f = fixture(); - await f.exporter.publish(f.encode()); - if (mode === "status") { - upload.mockResolvedValue({ - upload_status: "error", - error_message: "upload unavailable", - }); - } else { - upload.mockRejectedValue(new Error("upload unavailable")); - } - await f.exporter.publish(f.encode()); - expect( - f - .manifests() - .filter((m) => m.id === "call-1") - .map((m) => m.state), - ).not.toContain("ready"); - expect(f.manifests().at(-1)).not.toHaveProperty("attachment"); - expect( - f.span.log.mock.calls.flatMap(([row]) => - Object.keys(row.input?.audio ?? {}), - ), - ).toEqual(["call-0"]); - expect(f.manifests().at(-1)).toMatchObject({ - id: "call-1", - state: "omitted", - reason: "recording_export_failed", - }); - expect( - f - .manifests() - .filter((m) => m.id === "call-0") - .at(-1).state, - ).toBe("ready"); - for (const owner of [f.turn, f.speaking]) { - expect( - owner.log.mock.calls.at(-1)![0].metadata["audio.selections"], - ).toMatchObject([{ recording_id: "call-0" }]); - } - }, -); - -test("encoding failure publishes an omission without uploading or selecting audio", async () => { - const upload = vi.spyOn(TestAttachment.prototype, "upload"); - const f = fixture(), - segment = f.encode("encoding_failed"); - await f.exporter.publish(segment); - expect(upload).not.toHaveBeenCalled(); - expect(f.manifests().map((m) => m.state)).toEqual(["pending", "omitted"]); - expect(f.manifests().at(-1)).toMatchObject({ reason: "encoding_failed" }); - expect(f.span.log.mock.calls.some(([row]) => row.input?.audio)).toBe(false); - expect(f.turn.log.mock.calls.at(-1)![0].metadata["audio.selections"]).toEqual( - [], - ); -}); - -test.each([false, true])( - "encoding failure=%s releases PCM only after encoding settles", - async (failed) => { - let finish!: () => void; - const encoding = new Promise((resolve) => { - finish = resolve; - }); - const pcm = new Int16Array(480); - const segment = new AudioSegment("call-0", 0, 20, [ - { pcm, at: 0, rate: 24000, channels: 1, channel: 0 }, - ]); - const release = vi.fn(); - const upload = vi.fn(async () => { - expect(release).toHaveBeenCalledExactlyOnceWith(pcm); - expect(segment.state).toBe("pending"); - return { upload_status: "done" }; - }); - const exporter = new SegmentExporter( - async () => { - await encoding; - if (failed) { - throw new Error("encoding_failed"); - } - return { - bytes: new Uint8Array(16), - durationMs: 20, - sampleRate: 24000, - mimeType: "audio/pcm", - }; - }, - () => ({ reference: "uploaded", upload }), - ); - const job = exporter.export(segment, release); - try { - expect(release).not.toHaveBeenCalled(); - expect(upload).not.toHaveBeenCalled(); - expect(segment.state).toBe("pending"); - } finally { - finish(); - await job; - } - expect(release).toHaveBeenCalledExactlyOnceWith(pcm); - expect(upload).toHaveBeenCalledTimes(failed ? 0 : 1); - expect(segment.state).toBe(failed ? "omitted" : "ready"); - }, -); diff --git a/js/src/audio/exporter.ts b/js/src/audio/exporter.ts deleted file mode 100644 index 383ffc25b..000000000 --- a/js/src/audio/exporter.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { AudioSegment, type Packet, type EncodedAudio } from "./segment"; - -export type Encoder = ( - packets: Packet[], - durationMs: number, -) => EncodedAudio | Promise; -export type CreateAttachment = (options: { - data: Uint8Array; - filename: string; - contentType: string; -}) => { - upload(): Promise<{ upload_status: string; error_message?: string }>; - reference: unknown; -}; - -/** Executes a sealed segment; recording policy and trace publication stay with callers. */ -export class SegmentExporter { - constructor( - private encode: Encoder, - private createAttachment: CreateAttachment, - ) {} - - async export( - segment: AudioSegment, - release: (pcm: Int16Array) => void, - ): Promise { - const packets = segment.dispatch({ type: "encode" }); - let data: EncodedAudio; - try { - data = await this.encode(packets, segment.end - segment.start); - segment.dispatch({ type: "encoded", format: data }); - } catch (error) { - segment.dispatch({ - type: "omitted", - reason: error instanceof Error ? error.message : "encoding_failed", - }); - return; - } finally { - // Encoded bytes are independent of the source; release it either way. - for (const packet of packets) { - release(packet.pcm); - } - packets.length = 0; - } - - try { - const attachment = this.createAttachment({ - data: data.bytes, - filename: `${segment.id}.pcm`, - contentType: data.mimeType, - }); - const result = await attachment.upload(); - if (result.upload_status !== "done") { - throw new Error("recording_export_failed"); - } - segment.dispatch({ type: "ready", reference: attachment.reference }); - } catch { - segment.dispatch({ type: "omitted", reason: "recording_export_failed" }); - } - } -} diff --git a/js/src/audio/index.ts b/js/src/audio/index.ts deleted file mode 100644 index 4b6ab5908..000000000 --- a/js/src/audio/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { createAudioRecording, type AudioRecordingConfig } from "./recording"; -export type { RecordingOptions, Packet } from "./recorder"; -export type { Selection } from "./selections"; -export * as timeline from "./timeline"; - -export { createVoiceRecording } from "./voice"; diff --git a/js/src/audio/pcm.test.ts b/js/src/audio/pcm.test.ts deleted file mode 100644 index 8e2c1b273..000000000 --- a/js/src/audio/pcm.test.ts +++ /dev/null @@ -1,159 +0,0 @@ -import { expect, test } from "vitest"; -import { encodePcm } from "./pcm"; -import type { Packet } from "./segment"; - -function frames(bytes: Uint8Array) { - const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); - return Array.from({ length: bytes.byteLength / 4 }, (_, i) => [ - view.getInt16(i * 4, true), - view.getInt16(i * 4 + 2, true), - ]); -} - -test("renders headerless 24kHz stereo PCM for the requested duration", () => { - const result = encodePcm( - [ - { - pcm: new Int16Array(240).fill(1), - rate: 24000, - channels: 1, - channel: 0, - at: 0, - }, - ], - 20, - ); - expect(result).toMatchObject({ - mimeType: "audio/pcm", - sampleRate: 24000, - durationMs: 20, - }); - expect(result.bytes.byteLength).toBe(480 * 4); - expect(frames(result.bytes).slice(238, 242)).toEqual([ - [1, 0], - [1, 0], - [0, 0], - [0, 0], - ]); -}); - -test("resampling interpolates linearly from each packet's offset and pads the timeline", () => { - const source = Int16Array.from( - { length: 12000 }, - (_, i) => (i % 97) * 100 - 4000, - ); - const actual = frames( - encodePcm( - [{ pcm: source, rate: 44100, channels: 1, channel: 1, at: 7.3 }], - 400, - ).bytes, - ); - expect(actual).toHaveLength(9600); - const start = Math.round((7.3 * 24000) / 1000), - length = Math.round((source.length / 44100) * 24000); - for (const [i, [left, right]] of actual.entries()) { - const position = ((i - start) * 44100) / 24000, - lo = Math.floor(position), - alpha = position - lo; - const expected = - i < start || i >= start + length - ? 0 - : Math.round( - source[Math.min(lo, source.length - 1)] * (1 - alpha) + - source[Math.min(lo + 1, source.length - 1)] * alpha, - ); - expect(left).toBe(0); - expect(right).toBe(expected); - } -}); - -test("rendering preserves packet overwrite order, channel separation and silence", () => { - const packets: Packet[] = [ - { - pcm: new Int16Array(4800).fill(123), - rate: 24000, - channels: 1, - channel: 0, - at: 50, - }, - { - pcm: new Int16Array(4800).fill(456), - rate: 24000, - channels: 1, - channel: 1, - at: 0, - }, - { - pcm: new Int16Array(4800).fill(789), - rate: 24000, - channels: 1, - channel: 0, - at: 0, - }, - ]; - for (const [i, [left, right]] of frames( - encodePcm(packets, 300).bytes, - ).entries()) { - expect(left).toBe(i < 4800 ? 789 : i < 6000 ? 123 : 0); - expect(right).toBe(i < 4800 ? 456 : 0); - } -}); - -test("mixed source rates retain channel values and infer duration", () => { - const result = encodePcm([ - { - pcm: new Int16Array(160).fill(1000), - rate: 8000, - channels: 1, - channel: 0, - at: 0, - }, - { - pcm: new Int16Array(960).fill(-1000), - rate: 48000, - channels: 1, - channel: 1, - at: 0, - }, - ]); - expect(result.durationMs).toBe(20); - expect(new Set(frames(result.bytes).map(String))).toEqual( - new Set(["1000,-1000"]), - ); -}); - -test("stereo sources are averaged onto their channel", () => { - const result = encodePcm([ - { - pcm: Int16Array.of(100, 300, 1000, -1000), - rate: 24000, - channels: 2, - channel: 1, - at: 0, - }, - ]); - expect(frames(result.bytes)).toEqual([ - [0, 200], - [0, 0], - ]); -}); - -test.each([ - [[], undefined, "invalid_duration"], - [[], 1800001, "invalid_duration"], - [ - [{ pcm: new Int16Array(1), rate: 24000, channels: 1, channel: 2, at: 0 }], - 20, - "invalid_packet", - ], - [ - [{ pcm: new Int16Array(1), rate: 4000, channels: 1, channel: 0, at: 0 }], - 20, - "invalid_packet", - ], -] as [Packet[], number | undefined, string][])( - "rejects unsupported input (%#)", - (packets, durationMs, reason) => { - expect(() => encodePcm(packets, durationMs)).toThrow(reason); - }, -); diff --git a/js/src/audio/pcm.ts b/js/src/audio/pcm.ts deleted file mode 100644 index ef8c761be..000000000 --- a/js/src/audio/pcm.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { msToSamples, samplesToMs, CALL_SAMPLE_RATE } from "./timeline"; -import type { EncodedAudio, Packet } from "./segment"; -/** - * Render a bounded call timeline as raw PCM: interleaved stereo, signed 16-bit - * little-endian at 24kHz. Each packet is resampled onto its channel; gaps are - * silence and later packets overwrite earlier overlapping audio. - */ -export function encodePcm( - packets: Packet[], - durationMs?: number, -): EncodedAudio { - const rate = CALL_SAMPLE_RATE; - const samples = - durationMs === undefined - ? Math.ceil( - packets.reduce( - (end, p) => - Math.max( - end, - msToSamples(p.at, rate) + - (p.pcm.length / p.channels / p.rate) * rate, - ), - 0, - ), - ) - : Math.round(msToSamples(durationMs, rate)); - if (!Number.isSafeInteger(samples) || samples <= 0 || samples > 1800 * rate) { - throw new Error("invalid_duration"); - } - const bytes = new Uint8Array(samples * 4); - const view = new DataView(bytes.buffer); - for (const p of packets) { - if ( - ![0, 1].includes(p.channel) || - ![1, 2].includes(p.channels) || - !Number.isFinite(p.rate) || - p.rate < 8000 || - p.rate > 96000 || - !Number.isFinite(p.at) || - p.at < 0 - ) { - throw new Error("invalid_packet"); - } - const start = Math.round(msToSamples(p.at, rate)); - const end = Math.min( - samples, - start + Math.round((p.pcm.length / p.channels / p.rate) * rate), - ); - for (let i = start; i < end; i++) { - // Linear interpolation, averaging interleaved source channels to mono. - const position = ((i - start) * p.rate) / rate, - lo = Math.floor(position), - alpha = position - lo; - let value = 0; - for (let channel = 0; channel < p.channels; channel++) { - const a = - p.pcm[Math.min(lo * p.channels + channel, p.pcm.length - 1)] ?? 0; - const b = - p.pcm[Math.min((lo + 1) * p.channels + channel, p.pcm.length - 1)] ?? - a; - value += a + (b - a) * alpha; - } - view.setInt16( - (i * 2 + p.channel) * 2, - Math.max(-32768, Math.min(32767, Math.round(value / p.channels))), - true, - ); - } - } - return { - bytes, - durationMs: samplesToMs(samples, rate), - mimeType: "audio/pcm", - sampleRate: rate, - }; -} diff --git a/js/src/audio/publisher.ts b/js/src/audio/publisher.ts deleted file mode 100644 index 9dc49b6ae..000000000 --- a/js/src/audio/publisher.ts +++ /dev/null @@ -1,133 +0,0 @@ -export type RecordingSpan = { - spanId: string; - log: (event: { input?: unknown; metadata?: Record }) => void; -}; -import type { Segment } from "./segment"; -import type { AudioSegment } from "./segment"; -export type RecordingContext = { - origin: number; - basis: string; - source: (channel: number) => Record; - closed: boolean; - metadata?: Record; -}; -type PublishedSegment = Pick< - AudioSegment, - "id" | "state" | "attachmentReference" ->; -type Snapshot = RecordingContext & { - segments: readonly Segment[]; - reason?: string; -}; -/** Publishes recording snapshots and uploaded attachment references. No framework types. */ -export class TracePublisher { - private publishedRecordings?: string; - constructor( - private span: RecordingSpan, - private flush: () => Promise, - private snapshot: () => Snapshot, - private onPublish: () => void = () => {}, - ) {} - async publish(segment?: PublishedSegment) { - // Retry telemetry once, independently of the completed export. - try { - await this.publishOnce(segment); - } catch { - await this.publishOnce(segment).catch(() => {}); - } - } - private async publishOnce(segment?: PublishedSegment) { - try { - // Retain only the reference so a logging failure can retry without uploading again. - if ( - segment?.state === "ready" && - segment.attachmentReference !== undefined - ) { - this.span.log({ - input: { audio: { [segment.id]: segment.attachmentReference } }, - }); - } - this.publishRecordings(); - this.onPublish(); - await this.flush(); - } catch (error) { - // A failed flush may not have delivered any queued updates. Retry snapshots - // as well as the uploaded reference, without re-encoding or re-uploading. - this.publishedRecordings = undefined; - throw error; - } - } - publishRecordings() { - const snapshot = this.snapshot(); - const descriptors: Record[] = snapshot.segments.map( - (s) => ({ - id: s.id, - recording_group_id: "call", - state: s.state, - ...(s.reason ? { reason: s.reason } : {}), - ...(s.state === "ready" - ? { - attachment: { - span_id: this.span.spanId, - ref: `/input/audio/${s.id}`, - }, - mime_type: s.mimeType, - duration_ms: s.durationMs, - channel_count: 2, - sample_rate_hz: s.sampleRate, - } - : {}), - sources: s.channels.map(snapshot.source), - timeline: { - origin_unix_ms: snapshot.origin, - recording_start_offset_ms: s.start, - basis: snapshot.basis, - }, - ...(s.state === "omitted" - ? { - gaps: [ - { - start_offset_ms: s.start, - end_offset_ms: s.end, - reason: s.reason, - }, - ], - } - : {}), - }), - ); - if (snapshot.reason) { - descriptors.push({ - id: "call", - recording_group_id: "call", - state: "omitted", - reason: snapshot.reason, - truncated: true, - }); - } - if (!descriptors.length) { - descriptors.push({ - id: "call", - recording_group_id: "call", - state: snapshot.closed ? "omitted" : "pending", - ...(snapshot.closed ? { reason: "no_audio_observed" } : {}), - }); - } - // Compare the serialized wire value: callbacks can return freshly allocated or - // mutated metadata. Identity/version checks would miss those changes. - const signature = JSON.stringify({ - recordings: descriptors, - metadata: snapshot.metadata, - }); - if (this.publishedRecordings === signature) { - return; - } - this.span.log({ - metadata: { - "audio.recordings": descriptors, - ...snapshot.metadata, - }, - }); - this.publishedRecordings = signature; - } -} diff --git a/js/src/audio/recorder.test.ts b/js/src/audio/recorder.test.ts deleted file mode 100644 index 1a770a420..000000000 --- a/js/src/audio/recorder.test.ts +++ /dev/null @@ -1,299 +0,0 @@ -import type { AudioSegment } from "./segment"; -import { expect, test } from "vitest"; -import { Recorder, type RecordingOptions } from "./recorder"; -import { SegmentExporter, type Encoder } from "./exporter"; -import type { EncodedAudio } from "./segment"; -import { encodePcm as encode } from "./pcm"; -// Exercise the recorder with real segment execution and in-memory remote storage. -function recording( - options: RecordingOptions, - encode: Encoder, - publish: (s: AudioSegment) => Promise, -) { - let encoded: EncodedAudio; - const exporter = new SegmentExporter( - async (...args) => { - encoded = await encode(...args); - return encoded; - }, - () => ({ - reference: encoded, - upload: async () => ({ upload_status: "done" }), - }), - ); - return new Recorder(options, exporter, publish); -} -function accept(segment: AudioSegment) { - return segment.attachmentReference as EncodedAudio | undefined; -} -function samples(value: number, seconds = 1) { - return new Int16Array(24000 * seconds).fill(value); -} -test("exports progressively with bounded source memory across a ten minute timeline", async () => { - const files: { start: number; bytes: Uint8Array }[] = []; - const r = recording({ segmentDurationSeconds: 30 }, encode, async (s) => { - const data = accept(s); - if (data) { - files.push({ start: s.start, bytes: data.bytes }); - } - }); - for (let i = 0; i < 600; i++) { - r.record({ - pcm: samples(1000), - at: i * 1000, - rate: 24000, - channels: 1, - channel: 0, - }); - r.record({ - pcm: samples(-2000), - at: i * 1000, - rate: 24000, - channels: 1, - channel: 1, - }); - r.advance((i + 1) * 1000); - await r.drain(); - expect(r.retainedBytes).toBeLessThan(4 * 1024 * 1024); - } - expect(files.length).toBe(20); - await r.finish(); - expect(r.retainedBytes).toBe(0); - for (const [i, f] of files.entries()) { - expect(f.start).toBe(i * 30000); - const view = new DataView(f.bytes.buffer); - expect(view.getInt16(0, true)).toBe(1000); - expect(view.getInt16(f.bytes.length - 2, true)).toBe(-2000); - } -}); -test("splits a packet crossing the cut without losing its tail", async () => { - const files: Uint8Array[] = []; - const r = recording({ segmentDurationSeconds: 1 }, encode, async (s) => { - const data = accept(s); - if (data) { - files.push(data.bytes); - } - }); - r.record({ - pcm: samples(321, 3), - at: 0, - rate: 24000, - channels: 1, - channel: 0, - }); - r.advance(1000); - await r.drain(); - await r.finish(); - expect(files.map((f) => f.length / 4)).toEqual([24000, 24000, 24000]); - expect(r.retainedBytes).toBe(0); -}); -test("rotated files reconstruct both source channels sample-for-sample including a partial final file", async () => { - const files: Uint8Array[] = []; - const recorder = recording( - { segmentDurationSeconds: 1 }, - encode, - async (s) => { - const data = accept(s); - if (data) { - files.push(data.bytes); - } - }, - ); - // Distinct nonconstant signals expose reordered, duplicated, or missing audio. - const length = 3 * 24000 + 1777; - const input = Int16Array.from( - { length }, - (_, i) => ((i * 17) % 30001) - 15000, - ); - const output = Int16Array.from( - { length }, - (_, i) => ((i * 31) % 28001) - 14000, - ); - // Packets deliberately cross the one-second file boundary. - for (let at = 0; at < length; at += 719) { - for (const [channel, source] of [input, output].entries()) { - recorder.record({ - pcm: source.slice(at, at + 719), - at: at / 24, - rate: 24000, - channels: 1, - channel: channel as 0 | 1, - }); - } - recorder.advance(Math.min(at + 719, length) / 24); - await recorder.drain(); - } - await recorder.finish(); - expect(files.map((file) => file.length / 4)).toEqual([ - 24000, 24000, 24000, 1777, - ]); - const expected = Buffer.alloc(length * 4); - for (let i = 0; i < length; i++) { - expected.writeInt16LE(input[i], i * 4); - expected.writeInt16LE(output[i], i * 4 + 2); - } - expect(Buffer.concat(files).equals(expected)).toBe(true); -}); - -test("hard duration limit preserves the prefix and reports truncation", async () => { - const r = recording({ maxDurationSeconds: 2 }, encode, async (s) => { - accept(s); - }); - for (let i = 0; i < 3; i++) { - r.record({ - pcm: samples(1), - at: i * 1000, - rate: 24000, - channels: 1, - channel: 0, - }); - } - await r.finish(); - expect(r.reason).toBe("duration_limit"); - expect(r.segments[0]).toMatchObject({ state: "ready", end: 2000 }); - expect(r.retainedBytes).toBe(0); -}); -test("slow publication bounds retained audio without erasing a completed segment", async () => { - let unblock!: () => void; - const blocked = new Promise((r) => { - unblock = r; - }); - const r = recording( - { segmentDurationSeconds: 1, maxBufferBytes: 100000 }, - encode, - async (s) => { - await blocked; - accept(s); - }, - ); - r.record({ pcm: samples(1), at: 0, rate: 24000, channels: 1, channel: 0 }); - r.advance(1000); - for (let i = 1; i < 8; i++) { - r.record({ - pcm: samples(1), - at: i * 1000, - rate: 24000, - channels: 1, - channel: 0, - }); - } - expect(r.retainedBytes).toBeLessThanOrEqual(100000); - expect(r.reason).toBe("capture_byte_limit"); - unblock(); - await r.finish(); - expect(r.segments.some((s) => s.state === "ready")).toBe(true); - expect(r.retainedBytes).toBe(0); -}); - -test.each(["encoding", "publication"])( - "%s failure retains earlier ready audio and releases source leases", - async (failure) => { - let count = 0, - encodings = 0; - const r = recording( - { segmentDurationSeconds: 1 }, - async (...args) => { - if (++encodings === 2 && failure === "encoding") { - throw new Error("encode failed"); - } - return encode(...args); - }, - async (s) => { - const data = accept(s); - if (data && ++count === 2 && failure === "publication") { - throw Error("export failed"); - } - }, - ); - for (let i = 0; i < 2; i++) { - r.record({ - pcm: samples(1), - at: i * 1000, - rate: 24000, - channels: 1, - channel: 0, - }); - r.advance((i + 1) * 1000); - await r.drain(); - } - await r.finish(); - expect(r.segments.map((s) => s.state)).toEqual([ - "ready", - failure === "encoding" ? "omitted" : "ready", - ]); - expect(r.retainedBytes).toBe(0); - }, -); - -test("a watermark behind the current origin cannot move a segment backwards", async () => { - const r = recording({ segmentDurationSeconds: 0.1 }, encode, async (s) => { - accept(s); - }); - r.record({ pcm: samples(1), at: 200, rate: 24000, channels: 1, channel: 0 }); - r.advance(500); - await r.drain(); - expect(r.segments.map((s) => [s.start, s.end])).toEqual([ - [200, 300], - [300, 400], - [400, 500], - ]); - r.advance(100); - await r.finish(); - expect(r.segments.map((s) => [s.start, s.end])).toEqual( - Array.from({ length: 10 }, (_, i) => [200 + i * 100, 300 + i * 100]), - ); -}); -test("soft byte pressure rotates before the duration threshold", async () => { - const r = recording( - { segmentDurationSeconds: 60, maxBufferBytes: 200000, flushFraction: 0.5 }, - encode, - async (s) => { - accept(s); - }, - ); - for (let i = 0; i < 3; i++) { - r.record({ - pcm: samples(1), - at: i * 1000, - rate: 24000, - channels: 1, - channel: 0, - }); - } - r.advance(2000); - await r.drain(); - expect(r.segments[0]).toMatchObject({ state: "ready", end: 2000 }); - await r.finish(); - expect(r.retainedBytes).toBe(0); -}); - -test.each([1, 60])( - "a delayed watermark drains %i-second clips before close without requiring more input", - async (seconds) => { - const durations: number[] = []; - const r = recording( - { segmentDurationSeconds: seconds }, - encode, - async (s) => { - const data = accept(s); - if (data) { - durations.push(data.durationMs); - } - }, - ); - for (let i = 0; i < 5 * seconds; i++) { - r.record({ - pcm: samples(123), - at: i * 1000, - rate: 24000, - channels: 1, - channel: 0, - }); - } - r.advance(5000 * seconds); - await r.drain(); - expect(durations).toEqual(Array(5).fill(1000 * seconds)); - await r.finish(); - expect(durations).toHaveLength(5); - }, -); diff --git a/js/src/audio/recorder.ts b/js/src/audio/recorder.ts deleted file mode 100644 index ceb429d75..000000000 --- a/js/src/audio/recorder.ts +++ /dev/null @@ -1,288 +0,0 @@ -import { msToSamples, samplesToMs, pcmBytesToMs } from "./timeline"; -import { AudioSegment, type Packet } from "./segment"; -export type { Packet } from "./segment"; -import { PcmBuffers } from "./buffers"; -import type { SegmentExporter } from "./exporter"; -export type RecordingOptions = { - segmentDurationSeconds?: number; - maxDurationSeconds?: number; - maxBufferBytes?: number; - flushFraction?: number; -}; -/** Framework-independent recorder. The adapter supplies a safe, monotonic cut watermark. */ -export class Recorder { - readonly options: Readonly>; - private packets: Packet[] = []; - readonly segments: AudioSegment[] = []; - readonly formats = new Map< - number, - Map - >(); - reason?: string; - private buffers: PcmBuffers; - get retainedBytes() { - return this.buffers.bytes; - } - private job?: Promise; - private segmentStartMs = 0; - private recordedEndMs = 0; - private earliestPacketMs = Infinity; - private closed = false; - private finishing?: Promise; - private confirmedThroughMs = 0; - constructor( - options: RecordingOptions, - private exporter: SegmentExporter, - private publish: (segment: AudioSegment) => Promise, - private pending: (segment: AudioSegment) => void = () => {}, - ) { - this.options = Object.freeze({ - segmentDurationSeconds: options.segmentDurationSeconds ?? 60, - maxDurationSeconds: options.maxDurationSeconds ?? 1800, - maxBufferBytes: options.maxBufferBytes ?? 32 * 1024 * 1024, - flushFraction: options.flushFraction ?? 0.5, - }); - validateOptions(this.options); - this.buffers = new PcmBuffers(this.options.maxBufferBytes); - } - - stop(reason: string) { - this.reason ??= reason; - } - copy(pcm: Int16Array): Int16Array | undefined { - if (this.closed || this.reason) { - return; - } - try { - return this.buffers.copy(pcm); - } catch (error) { - this.stop(error instanceof Error ? error.message : "capture_failed"); - return; - } - } - /** Discard staged audio; admitted audio belongs to the recorder until export. */ - release(pcm: Int16Array) { - this.buffers.discard(pcm); - } - append(packet: Packet): boolean { - const duration = pcmBytesToMs( - packet.pcm.byteLength, - packet.rate, - packet.channels, - ); - const reason = this.validatePacket(packet, duration); - if (reason) { - this.stop(reason); - } - if (this.closed || this.reason) { - this.release(packet.pcm); - return false; - } - if (!this.buffers.admit(packet.pcm)) { - this.stop("invalid_pcm_ownership"); - return false; - } - const formats = this.formats.get(packet.channel) ?? new Map(); - formats.set(`${packet.rate}:${packet.channels}`, { - sample_rate_hz: packet.rate, - channel_count: packet.channels, - }); - this.formats.set(packet.channel, formats); - this.packets.push(packet); - this.earliestPacketMs = Math.min(this.earliestPacketMs, packet.at); - this.recordedEndMs = Math.max(this.recordedEndMs, packet.at + duration); - return true; - } - private validatePacket( - packet: Packet, - durationMs: number, - ): string | undefined { - if (!isSupportedPacket(packet)) { - return "unsupported_audio_format"; - } - if (packet.at < this.segmentStartMs - samplesToMs(1)) { - return "capture_clock_discontinuity"; - } - if (packet.at + durationMs > this.options.maxDurationSeconds * 1000) { - return "duration_limit"; - } - if (this.packets.length >= 100000) { - return "packet_limit"; - } - return undefined; - } - - record(packet: Packet): boolean { - const pcm = this.copy(packet.pcm); - return pcm ? this.append({ ...packet, pcm }) : false; - } - advance(watermark: number) { - if ( - this.closed || - this.reason || - !Number.isFinite(watermark) || - watermark <= this.segmentStartMs - ) { - return; - } - this.confirmedThroughMs = Math.max(this.confirmedThroughMs, watermark); - this.pump(); - } - // One job per recorder. Completion resumes eligible work without requiring - // another frame or blocking the application. Source limits bound the backlog. - private pump() { - if (this.job || !this.packets.length || (this.reason && !this.closed)) { - return; - } - const limit = this.closed - ? this.recordedEndMs - : Math.min(this.confirmedThroughMs, this.recordedEndMs); - const duration = this.options.segmentDurationSeconds * 1000; - if (this.earliestPacketMs >= this.segmentStartMs + duration) { - this.segmentStartMs += - Math.floor( - (Math.min(this.earliestPacketMs, limit) - this.segmentStartMs) / - duration, - ) * duration; - } - const cut = this.segmentStartMs + duration; - if (limit >= cut) { - this.rotate(cut); - } else if ( - this.closed || - this.retainedBytes >= - this.options.maxBufferBytes * this.options.flushFraction - ) { - this.rotate(limit); - } - } - private rotate(cut: number) { - if (!this.packets.length || cut <= this.segmentStartMs) { - return; - } - const { before, later } = this.splitPackets(cut); - if (!before.length) { - return; - } - const segment = new AudioSegment( - `call-${String(this.segments.length).padStart(4, "0")}`, - this.segmentStartMs, - cut, - before, - ); - this.packets = later; - this.earliestPacketMs = later.reduce((v, p) => Math.min(v, p.at), Infinity); - this.segmentStartMs = cut; - this.segments.push(segment); - try { - this.pending(segment); - } catch { - // Pending telemetry is best effort; upload publication sends the full recording descriptors. - } - this.job = this.exportSegment(segment).finally(() => { - this.job = undefined; - this.pump(); - }); - // Capture never awaits this task; drain()/finish() observe completion. - void this.job.catch(() => {}); - } - - private async exportSegment(segment: AudioSegment): Promise { - await this.exporter.export(segment, (pcm) => this.buffers.release(pcm)); - if (segment.state === "omitted") { - this.stop(segment.reason!); - } - // Trace publication cannot change the outcome of an audio export. - await this.publish(segment).catch(() => {}); - } - - /** Partition at a sample boundary; only a crossing packet requires copies. */ - private splitPackets(cutMs: number): { before: Packet[]; later: Packet[] } { - const before: Packet[] = [], - later: Packet[] = []; - for (const packet of this.packets) { - const count = Math.min( - packet.pcm.length, - Math.max( - 0, - Math.round(msToSamples(cutMs - packet.at, packet.rate)) * - packet.channels, - ), - ); - if (!count) { - later.push(packet); - } else if (count === packet.pcm.length) { - before.push({ ...packet, at: packet.at - this.segmentStartMs }); - } else { - // Splitting preserves the original reservation: the two new allocations - // have the same total source size and the old allocation is discarded. - const [head, tail] = this.buffers.split(packet.pcm, count); - before.push({ - ...packet, - pcm: head, - at: packet.at - this.segmentStartMs, - }); - later.push({ - ...packet, - pcm: tail, - at: packet.at + samplesToMs(count / packet.channels, packet.rate), - }); - } - } - return { before, later }; - } - - async drain() { - while (this.job) { - await this.job; - } - } - finish(): Promise { - if (!this.finishing) { - this.finishing = this.finishOnce(); - } - return this.finishing; - } - private async finishOnce() { - this.closed = true; - this.pump(); - await this.drain(); - // Unsubmitted copies (e.g. cancelled output) have no export owner now. - this.buffers.close(); - this.packets = []; - } -} - -function validateOptions(options: Required): void { - const { - segmentDurationSeconds, - maxDurationSeconds, - maxBufferBytes, - flushFraction, - } = options; - const positiveLimits = [ - segmentDurationSeconds, - maxDurationSeconds, - maxBufferBytes, - ]; - if ( - !positiveLimits.every((value) => Number.isFinite(value) && value > 0) || - !Number.isInteger(maxBufferBytes) || - !(flushFraction > 0 && flushFraction < 1) - ) { - throw new Error("Invalid recording limits"); - } -} - -function isSupportedPacket(packet: Packet): boolean { - return ( - Number.isFinite(packet.at) && - packet.at >= 0 && - [0, 1].includes(packet.channel) && - [1, 2].includes(packet.channels) && - Number.isFinite(packet.rate) && - packet.rate >= 8000 && - packet.rate <= 96000 && - packet.pcm.length % packet.channels === 0 - ); -} diff --git a/js/src/audio/recording.test.ts b/js/src/audio/recording.test.ts deleted file mode 100644 index 8c63113c8..000000000 --- a/js/src/audio/recording.test.ts +++ /dev/null @@ -1,187 +0,0 @@ -import { expect, test, vi } from "vitest"; -import { createAudioRecording } from "./index"; - -test("public recording API exports PCM only after upload succeeds", async () => { - const log = vi.fn(); - const flush = vi.fn(async () => {}); - let complete!: () => void; - let started!: () => void; - const uploading = new Promise((resolve) => { - started = resolve; - }); - const uploaded = new Promise((resolve) => { - complete = resolve; - }); - const createAttachment = vi.fn( - (options: { data: Uint8Array; filename: string; contentType: string }) => ({ - reference: { - key: "uploaded", - filename: options.filename, - content_type: options.contentType, - }, - upload: async () => { - started(); - await uploaded; - return { upload_status: "done" }; - }, - }), - ); - const recording = createAudioRecording({ - // Explicit undefined must behave like an omitted optional setting. - options: { - segmentDurationSeconds: undefined, - maxDurationSeconds: undefined, - maxBufferBytes: undefined, - flushFraction: undefined, - }, - span: { spanId: "call", log }, - flush, - createAttachment, - snapshot: () => ({ - origin: 1234, - basis: "test", - - source: (channel_index) => ({ channel_index }), - }), - }); - recording.record({ - pcm: new Int16Array(480).fill(1000), - at: 0, - rate: 24000, - channels: 1, - channel: 0, - }); - const finishing = recording.finish(); - try { - await uploading; - recording.publishRecordings(); - expect( - log.mock.calls - .flatMap(([row]) => row.metadata?.["audio.recordings"] ?? []) - .every((r) => r.state === "pending"), - ).toBe(true); - expect(log.mock.calls.some(([row]) => row.input?.audio)).toBe(false); - const file = createAttachment.mock.calls[0][0]; - expect(file).toMatchObject({ - filename: "call-0000.pcm", - contentType: "audio/pcm", - }); - // 20ms of headerless stereo frames, with the source on the left channel. - expect(file.data.byteLength).toBe(480 * 4); - expect(Buffer.from(file.data).readInt16LE(0)).toBe(1000); - expect(Buffer.from(file.data).readInt16LE(2)).toBe(0); - complete(); - await finishing; - expect( - log.mock.calls - .flatMap(([row]) => row.metadata?.["audio.recordings"] ?? []) - .at(-1), - ).toMatchObject({ - state: "ready", - mime_type: "audio/pcm", - sample_rate_hz: 24000, - channel_count: 2, - }); - expect(flush).toHaveBeenCalled(); - } finally { - complete(); - await finishing; - } -}); - -test("staged audio is copied, can be discarded, and is bounded independently per recording", async () => { - const source = new Int16Array(12 * 1024 * 1024); - source[0] = 123; - const recordings = Array.from({ length: 3 }, () => - createAudioRecording({ - options: { maxBufferBytes: source.byteLength }, - span: { spanId: "session", log: () => {} }, - flush: async () => {}, - createAttachment: () => { - throw new Error("Discarded audio must not upload"); - }, - snapshot: () => ({ - origin: 0, - basis: "test", - - source: () => ({}), - }), - }), - ); - try { - // More than 64 MiB in aggregate must not trigger a hidden cross-session limit. - const staged = recordings.map((recording) => recording.copy(source)); - expect(staged.every((pcm) => pcm?.[0] === 123)).toBe(true); - source[0] = 456; - for (const [index, recording] of recordings.entries()) { - expect(staged[index]?.[0]).toBe(123); - recording.release(staged[index]!); - } - // Discarding returns capacity; exceeding this recording's own limit stops capture. - expect(recordings[0].copy(source)).toBeDefined(); - expect(recordings[0].copy(new Int16Array(1))).toBeUndefined(); - expect(recordings[0].reason).toBe("capture_byte_limit"); - expect(recordings[1].copy(new Int16Array(1))).toBeDefined(); - expect(recordings[1].reason).toBeUndefined(); - } finally { - await Promise.all(recordings.map((recording) => recording.finish())); - } -}); - -test("recording publication observes changed context and suppresses identical updates", async () => { - const log = vi.fn(); - const metadata = { source: "microphone" }; - const recording = createAudioRecording({ - span: { spanId: "session", log }, - flush: async () => {}, - createAttachment: () => { - throw new Error("No audio captured"); - }, - snapshot: () => ({ - origin: 0, - basis: "test", - - source: () => ({}), - metadata, - }), - }); - recording.publishRecordings(); - recording.publishRecordings(); - expect(log).toHaveBeenCalledTimes(1); - metadata.source = "replacement"; - recording.publishRecordings(); - expect(log).toHaveBeenCalledTimes(2); - expect(log.mock.calls.at(-1)?.[0].metadata.source).toBe("replacement"); - await recording.finish(); -}); - -test.each([undefined, "capture_byte_limit"])( - "finish publishes final state without audio (reason=%s) and is idempotent", - async (reason) => { - const log = vi.fn(); - const flush = vi.fn(async () => {}); - const recording = createAudioRecording({ - span: { spanId: "session", log }, - flush, - createAttachment: () => { - throw new Error("No audio to upload"); - }, - snapshot: () => ({ origin: 0, basis: "test", source: () => ({}) }), - }); - recording.publishRecordings(); - if (reason) { - recording.stop(reason); - } - await recording.finish(); - expect( - log.mock.calls.at(-1)?.[0].metadata["audio.recordings"], - ).toMatchObject([ - { state: "omitted", reason: reason ?? "no_audio_observed" }, - ]); - const count = log.mock.calls.length; - await recording.finish(); - expect(log).toHaveBeenCalledTimes(count); - expect(flush).toHaveBeenCalledTimes(1); - expect(recording.copy(new Int16Array(1))).toBeUndefined(); - }, -); diff --git a/js/src/audio/recording.ts b/js/src/audio/recording.ts deleted file mode 100644 index 00eaa217b..000000000 --- a/js/src/audio/recording.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Recorder, type RecordingOptions } from "./recorder"; -import { - TracePublisher, - type RecordingSpan, - type RecordingContext, -} from "./publisher"; -import { SegmentExporter, type CreateAttachment } from "./exporter"; -import { encodePcm } from "./pcm"; -import type { Packet, Segment } from "./segment"; - -export interface AudioRecordingConfig { - options?: RecordingOptions; - span: RecordingSpan; - flush: () => Promise; - snapshot: () => Omit; - /** Publish dependent metadata before the recording flush; retried on publication failure. */ - onPublish?: () => void; - createAttachment: CreateAttachment; -} -/** One recording session. Pipeline components remain private to the package. */ -class Recording { - private readonly recorder: Recorder; - private readonly publisher: TracePublisher; - private closed = false; - private finishing?: Promise; - - constructor(config: AudioRecordingConfig) { - this.recorder = new Recorder( - config.options ?? {}, - new SegmentExporter(encodePcm, config.createAttachment), - (segment) => this.publisher.publish(segment), - () => this.publisher.publishRecordings(), - ); - this.publisher = new TracePublisher( - config.span, - config.flush, - () => ({ - ...config.snapshot(), - closed: this.closed, - segments: this.recorder.segments, - reason: this.recorder.reason, - }), - config.onPublish, - ); - } - - /** Segment manifests for consumers mapping recording-relative intervals to files. */ - get segments(): readonly Segment[] { - return this.recorder.segments; - } - get reason() { - return this.recorder.reason; - } - get formats(): ReadonlyMap< - number, - ReadonlyMap - > { - return this.recorder.formats; - } - /** Copy a timestamped PCM frame into the recording. */ - record(packet: Packet): boolean { - return this.recorder.record(packet); - } - /** Confirm that no more frames will arrive before this recording offset. */ - advance(confirmedThroughMs: number): void { - this.recorder.advance(confirmedThroughMs); - } - stop(reason: string): void { - this.recorder.stop(reason); - } - drain(): Promise { - return this.recorder.drain(); - } - /** Finish the final segment and wait for encoding, uploads, and trace publication. */ - finish(): Promise { - if (!this.finishing) { - this.closed = true; - this.finishing = this.recorder - .finish() - .then(() => this.publisher.publish()); - } - return this.finishing; - } - - // Staged playback: copy now, then append only the audio actually played, or release it. - copy(pcm: Int16Array): Int16Array | undefined { - return this.recorder.copy(pcm); - } - append(packet: Packet): boolean { - return this.recorder.append(packet); - } - release(pcm: Int16Array): void { - this.recorder.release(pcm); - } - publishRecordings(): void { - this.publisher.publishRecordings(); - } -} - -/** Create a framework-independent recording session. */ -export function createAudioRecording(config: AudioRecordingConfig) { - return new Recording(config); -} diff --git a/js/src/audio/segment.test.ts b/js/src/audio/segment.test.ts deleted file mode 100644 index 584bd19a0..000000000 --- a/js/src/audio/segment.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { expect, test } from "vitest"; -import { AudioSegment } from "./segment"; - -const encoded = { - durationMs: 20, - sampleRate: 24000, - mimeType: "audio/pcm", -}; -function segment() { - return new AudioSegment("call-0000", 40, 60, [ - { pcm: new Int16Array(480), at: 0, rate: 24000, channels: 1, channel: 0 }, - ]); -} -test("segment becomes ready only after encoding and upload, retaining its descriptor", () => { - const s = segment(); - expect(() => s.dispatch({ type: "ready", reference: "uploaded" })).toThrow(); - const packets = s.dispatch({ type: "encode" }); - expect(packets[0].pcm).toHaveLength(480); - expect(() => s.dispatch({ type: "encode" })).toThrow(); - s.dispatch({ type: "encoded", format: encoded }); - expect(s.state).toBe("pending"); - s.dispatch({ type: "ready", reference: "uploaded" }); - expect(s).toMatchObject({ - id: "call-0000", - start: 40, - end: 60, - state: "ready", - channels: [0], - ...encoded, - attachmentReference: "uploaded", - }); - expect(() => s.dispatch({ type: "encoded", format: encoded })).toThrow(); - expect(() => - s.dispatch({ type: "omitted", reason: "late_failure" }), - ).toThrow(); - expect(s.state).toBe("ready"); -}); -test.each(["queued", "encoding", "uploading"])( - "omission during %s is terminal and preserves its original reason", - (phase) => { - const s = segment(); - if (phase !== "queued") { - s.dispatch({ type: "encode" }); - } - if (phase === "uploading") { - s.dispatch({ type: "encoded", format: encoded }); - } - s.dispatch({ type: "omitted", reason: "failed" }); - expect(s).toMatchObject({ state: "omitted", reason: "failed" }); - expect(() => s.dispatch({ type: "ready", reference: "late" })).toThrow(); - expect(() => s.dispatch({ type: "encoded", format: encoded })).toThrow(); - expect(() => s.dispatch({ type: "omitted", reason: "other" })).toThrow(); - expect(s.reason).toBe("failed"); - }, -); diff --git a/js/src/audio/segment.ts b/js/src/audio/segment.ts deleted file mode 100644 index d0a980463..000000000 --- a/js/src/audio/segment.ts +++ /dev/null @@ -1,118 +0,0 @@ -export type Packet = { - pcm: Int16Array; - rate: number; - channels: number; - channel: number; - at: number; -}; -export type EncodedAudio = { - bytes: Uint8Array; - durationMs: number; - mimeType: string; - sampleRate: number; -}; -export type Segment = Readonly<{ - id: string; - start: number; - end: number; - state: "pending" | "ready" | "omitted"; - reason?: string; - mimeType?: string; - sampleRate?: number; - durationMs?: number; - channels: readonly number[]; -}>; - -type AudioFormat = Omit; -type SegmentEvent = - | { type: "encode" } - | { type: "encoded"; format: AudioFormat } - | { type: "ready"; reference: unknown } - | { type: "omitted"; reason: string }; -type SegmentState = - | { phase: "queued"; packets: Packet[] } - | { phase: "encoding" } - | { phase: "uploading"; format: AudioFormat } - | { phase: "ready"; format: AudioFormat; reference: unknown } - | { phase: "omitted"; reason: string }; - -/** Owns segment transitions and its descriptor; the exporter owns encoded bytes. */ -export class AudioSegment implements Segment { - private current: SegmentState; - readonly channels: readonly number[]; - - constructor( - readonly id: string, - readonly start: number, - readonly end: number, - packets: Packet[], - ) { - this.current = { phase: "queued", packets }; - this.channels = [...new Set(packets.map((packet) => packet.channel))]; - } - - get state(): Segment["state"] { - const { phase } = this.current; - return phase === "ready" || phase === "omitted" ? phase : "pending"; - } - get reason() { - return this.current.phase === "omitted" ? this.current.reason : undefined; - } - private get format() { - return "format" in this.current ? this.current.format : undefined; - } - get mimeType() { - return this.format?.mimeType; - } - get sampleRate() { - return this.format?.sampleRate; - } - get durationMs() { - return this.format?.durationMs; - } - get attachmentReference() { - return this.current.phase === "ready" ? this.current.reference : undefined; - } - - dispatch(event: { type: "encode" }): Packet[]; - dispatch(event: Exclude): void; - dispatch(event: SegmentEvent): Packet[] | void { - const state = this.current; - switch (event.type) { - case "encode": - if (state.phase === "queued") { - this.current = { phase: "encoding" }; - return state.packets; - } - break; - case "encoded": - if (state.phase === "encoding") { - const { durationMs, mimeType, sampleRate } = event.format; - this.current = { - phase: "uploading", - format: { durationMs, mimeType, sampleRate }, - }; - return; - } - break; - case "ready": - if (state.phase === "uploading") { - this.current = { - phase: "ready", - format: state.format, - reference: event.reference, - }; - return; - } - break; - case "omitted": - if (state.phase !== "ready" && state.phase !== "omitted") { - this.current = { phase: "omitted", reason: event.reason }; - return; - } - } - throw new Error( - `Invalid audio segment transition: ${state.phase} -> ${event.type}`, - ); - } -} diff --git a/js/src/audio/selections.test.ts b/js/src/audio/selections.test.ts deleted file mode 100644 index f4d8beb4f..000000000 --- a/js/src/audio/selections.test.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { expect, test } from "vitest"; -import { - mergeSelections, - segmentSelections, - type Selection, -} from "./selections"; -const range = (start: number, end: number): Selection => ({ - recording_span_id: "root", - recording_id: "call", - channel_index: 1, - start_offset_ms: start, - end_offset_ms: end, -}); -test("compaction preserves recording identities, channels and real discontinuities", () => { - const result = mergeSelections([ - range(20, 40), - range(0, 20), - range(50, 60), - { ...range(40, 50), recording_id: "other" }, - { ...range(40, 50), recording_span_id: "another-root" }, - { ...range(40, 50), channel_index: 0 }, - ]); - expect(result).toHaveLength(5); - expect(result).toContainEqual(range(0, 40)); - expect(result).toContainEqual(range(50, 60)); -}); -test("thirty minutes of contiguous frames scale with files, not frames", () => { - const minutes = 30; - const ranges = Array.from({ length: minutes * 60 * 50 }, (_, i) => - range(i * 20, (i + 1) * 20), - ); - const merged = mergeSelections(ranges); - expect(merged).toEqual([range(0, minutes * 60000)]); - const segments = Array.from({ length: minutes }, (_, i) => ({ - id: `call-${i}`, - start: i * 60000, - end: (i + 1) * 60000, - state: "ready" as const, - channels: [1], - })); - expect(segmentSelections(merged, segments)).toHaveLength(minutes); -}); - -test("pending and failed segments never produce selections; a crossing turn uses local file coordinates", () => { - const selections = segmentSelections( - [ - { - recording_span_id: "root", - recording_id: "call", - channel_index: 0, - start_offset_ms: 29000, - end_offset_ms: 32000, - }, - ], - [ - { id: "first", start: 0, end: 30000, state: "ready", channels: [0] }, - { id: "second", start: 30000, end: 60000, state: "ready", channels: [0] }, - { id: "pending", start: 0, end: 60000, state: "pending", channels: [0] }, - { id: "failed", start: 0, end: 60000, state: "omitted", channels: [0] }, - ], - ); - expect( - selections.map((s) => [s.recording_id, s.start_offset_ms, s.end_offset_ms]), - ).toEqual([ - ["first", 29000, 30000], - ["second", 0, 2000], - ]); -}); diff --git a/js/src/audio/selections.ts b/js/src/audio/selections.ts deleted file mode 100644 index 538be0fb7..000000000 --- a/js/src/audio/selections.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { msToSamples, samplesToMs } from "./timeline"; -import type { Segment } from "./segment"; -export type Selection = { - recording_span_id: string; - recording_id: string; - start_offset_ms: number; - end_offset_ms: number; - channel_index: number; -}; -export function segmentSelections( - intervals: Selection[], - segments: readonly Segment[], -): Selection[] { - return segments - .filter((s) => s.state === "ready") - .flatMap((segment) => - intervals - .map((s) => ({ - ...s, - recording_id: segment.id, - start_offset_ms: Math.max( - 0, - samplesToMs( - Math.round(msToSamples(s.start_offset_ms - segment.start)), - ), - ), - end_offset_ms: Math.min( - segment.end - segment.start, - samplesToMs( - Math.round(msToSamples(s.end_offset_ms - segment.start)), - ), - ), - })) - .filter((s) => s.end_offset_ms > s.start_offset_ms), - ); -} - -export function mergeSelections(ranges: Selection[]): Selection[] { - const out: Selection[] = []; - for (const r of [...ranges].sort( - (a, b) => - a.recording_span_id.localeCompare(b.recording_span_id) || - a.recording_id.localeCompare(b.recording_id) || - a.channel_index - b.channel_index || - a.start_offset_ms - b.start_offset_ms, - )) { - const previous = out.at(-1); - if ( - previous && - previous.recording_span_id === r.recording_span_id && - previous.recording_id === r.recording_id && - previous.channel_index === r.channel_index && - previous.end_offset_ms >= r.start_offset_ms - samplesToMs(1) - ) { - previous.end_offset_ms = Math.max( - previous.end_offset_ms, - r.end_offset_ms, - ); - } else { - out.push({ ...r }); - } - } - return out; -} diff --git a/js/src/audio/timeline.ts b/js/src/audio/timeline.ts deleted file mode 100644 index cc1937b93..000000000 --- a/js/src/audio/timeline.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** Shared call-selection clock; source and encoded audio may use other rates. */ -export const CALL_SAMPLE_RATE = 24000; - -/** Fractional sample frames. Round only where an integer sample boundary is needed. */ -export function msToSamples( - milliseconds: number, - sampleRate = CALL_SAMPLE_RATE, -) { - return milliseconds * (sampleRate / 1000); -} - -export function samplesToMs(samples: number, sampleRate = CALL_SAMPLE_RATE) { - return samples / (sampleRate / 1000); -} - -/** Duration of interleaved signed 16-bit PCM. */ -export function pcmBytesToMs( - bytes: number, - sampleRate: number, - channels: number, -) { - return samplesToMs(bytes / 2 / channels, sampleRate); -} diff --git a/js/src/audio/voice-publisher.ts b/js/src/audio/voice-publisher.ts deleted file mode 100644 index 9cb48789e..000000000 --- a/js/src/audio/voice-publisher.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type { RecordingSpan } from "./publisher"; -import type { Segment } from "./segment"; -import { - mergeSelections, - segmentSelections, - type Selection, -} from "./selections"; -export type SpeechSelection = { - span: Pick; - intervals: Selection[]; - alias?: boolean; - metadata?: Record; -}; - -/** Maps voice spans onto ready audio files; does not encode or upload audio. */ -export class VoicePublisher { - private publishedSelections = new WeakMap(); - constructor( - private segments: () => readonly Segment[], - private speechSelections: () => Iterable, - ) {} - reset(): void { - this.publishedSelections = new WeakMap(); - } - publish() { - const segments = this.segments(); - for (const turn of this.speechSelections()) { - const selections = segmentSelections( - mergeSelections(turn.intervals), - segments, - ); - const metadata = { - "audio.selections": selections, - ...(turn.alias - ? { - "audio.selection": selections.length === 1 ? selections[0] : null, - } - : {}), - ...turn.metadata, - }; - const signature = JSON.stringify(metadata); - if (this.publishedSelections.get(turn.span) === signature) { - continue; - } - turn.span.log({ metadata }); - this.publishedSelections.set(turn.span, signature); - } - } -} diff --git a/js/src/audio/voice.test.ts b/js/src/audio/voice.test.ts deleted file mode 100644 index 4cdd22306..000000000 --- a/js/src/audio/voice.test.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { expect, test, vi } from "vitest"; -import { - createVoiceRecording, - type AudioRecordingConfig, - type Selection, -} from "./index"; - -test.each(["pending", "attachment", "manifest", "selection", "flush"])( - "%s publication failure preserves uploaded audio and subsequent capture", - async (failure) => { - const rows: Parameters[0][] = []; - const audioKeys = (row: (typeof rows)[number]) => - row.input && typeof row.input === "object" && "audio" in row.input - ? Object.keys(row.input.audio as object) - : []; - let fail = true; - const rejectOnce = (stage: string) => { - if (stage === failure && fail) { - fail = false; - throw new Error("temporary trace failure"); - } - }; - const log = (row: (typeof rows)[number]) => { - if (audioKeys(row).length) { - rejectOnce("attachment"); - } - const manifest = row.metadata?.["audio.recordings"]; - if (Array.isArray(manifest)) { - const ready = manifest.some( - (s: { state: string }) => s.state === "ready", - ); - rejectOnce(ready ? "manifest" : "pending"); - } - if (row.metadata?.["audio.selections"]) { - rejectOnce("selection"); - } - rows.push(row); - }; - const turn = { log }; - const upload = vi.fn(async () => ({ upload_status: "done" })); - const voice = createVoiceRecording({ - options: { segmentDurationSeconds: 0.02 }, - span: { spanId: "session", log }, - flush: async () => { - // A rejected flush need not have delivered the queued trace updates. - if (failure === "flush" && fail) { - rows.length = 0; - } - rejectOnce("flush"); - }, - createAttachment: ({ filename }) => ({ - reference: { key: filename }, - upload, - }), - snapshot: () => ({ - origin: 0, - basis: "test", - - source: (channel_index) => ({ channel_index }), - }), - speechSelections: () => [ - { - span: turn, - intervals: [ - { - recording_span_id: "session", - recording_id: "call", - channel_index: 0, - start_offset_ms: 0, - end_offset_ms: 40, - }, - ], - }, - ], - }); - const recording = voice.audio; - try { - for (const at of [0, 20]) { - expect( - recording.record({ - pcm: new Int16Array(480), - at, - rate: 24000, - channels: 1, - channel: 0, - }), - ).toBe(true); - expect(() => recording.advance(at + 20)).not.toThrow(); - await recording.drain(); - expect(rows.flatMap(audioKeys)).toContain( - at === 0 ? "call-0000" : "call-0001", - ); - const selected = rows - .filter((r) => r.metadata?.["audio.selections"]) - .at(-1); - expect(selected?.metadata?.["audio.selections"]).toHaveLength( - at / 20 + 1, - ); - } - } finally { - await voice.finish(); - } - recording.publishRecordings(); - voice.publishSelections(); - expect(fail).toBe(false); - expect(upload).toHaveBeenCalledTimes(2); - const manifest = rows - .flatMap((r) => - Array.isArray(r.metadata?.["audio.recordings"]) - ? r.metadata["audio.recordings"] - : [], - ) - .slice(-2); - expect(manifest).toMatchObject([{ state: "ready" }, { state: "ready" }]); - expect(new Set(rows.flatMap(audioKeys))).toEqual( - new Set(["call-0000", "call-0001"]), - ); - expect(rows.at(-1)?.metadata?.["audio.selections"]).toMatchObject([ - { recording_id: "call-0000" }, - { recording_id: "call-0001" }, - ]); - }, -); - -test("finish publishes late speech selections without uploading the segment again", async () => { - const log = vi.fn(); - const turn = { log: vi.fn() }; - const upload = vi.fn(async () => ({ upload_status: "done" })); - const intervals: Selection[] = []; - const voice = createVoiceRecording({ - options: { segmentDurationSeconds: 0.02 }, - span: { spanId: "session", log }, - flush: async () => {}, - createAttachment: () => ({ reference: { key: "audio" }, upload }), - snapshot: () => ({ - origin: 0, - basis: "test", - source: (channel_index) => ({ channel_index }), - }), - speechSelections: () => [{ span: turn, intervals }], - }); - const recording = voice.audio; - recording.record({ - pcm: new Int16Array(480), - at: 0, - rate: 24000, - channels: 1, - channel: 0, - }); - recording.advance(20); - await recording.drain(); - intervals.push({ - recording_span_id: "session", - recording_id: "call", - channel_index: 0, - start_offset_ms: 0, - end_offset_ms: 20, - }); - await voice.finish(); - expect(turn.log.mock.calls.at(-1)?.[0].metadata["audio.selections"]).toEqual([ - { - recording_span_id: "session", - recording_id: "call-0000", - channel_index: 0, - start_offset_ms: 0, - end_offset_ms: 20, - }, - ]); - expect(upload).toHaveBeenCalledTimes(1); -}); diff --git a/js/src/audio/voice.ts b/js/src/audio/voice.ts deleted file mode 100644 index 0934e154b..000000000 --- a/js/src/audio/voice.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { createAudioRecording, type AudioRecordingConfig } from "./recording"; -import { VoicePublisher, type SpeechSelection } from "./voice-publisher"; - -interface VoiceRecordingConfig extends Omit { - /** Existing speech/turn spans and their known call-relative audio intervals. */ - speechSelections: () => Iterable; -} - -/** Voice associations layered over an independently usable audio recording. */ -class VoiceRecording { - readonly audio: ReturnType; - private readonly publisher: VoicePublisher; - constructor(config: VoiceRecordingConfig) { - const { speechSelections, ...audioConfig } = config; - this.publisher = new VoicePublisher( - () => this.audio.segments, - speechSelections, - ); - this.audio = createAudioRecording({ - ...audioConfig, - onPublish: () => this.publisher.publish(), - flush: async () => { - try { - await config.flush(); - } catch (error) { - this.publisher.reset(); - throw error; - } - }, - }); - } - publishSelections(): void { - this.publisher.publish(); - } - finish(): Promise { - return this.audio.finish(); - } -} - -/** Publish voice playback associations using supplied bounds; no alignment is inferred. */ -export function createVoiceRecording(config: VoiceRecordingConfig) { - return new VoiceRecording(config); -} diff --git a/js/src/auto-instrumentations/configs/all.ts b/js/src/auto-instrumentations/configs/all.ts index 58f6bea77..072eff26d 100644 --- a/js/src/auto-instrumentations/configs/all.ts +++ b/js/src/auto-instrumentations/configs/all.ts @@ -1,4 +1,3 @@ -import { livekitConfigs } from "./livekit"; import type { InstrumentationConfig } from "../orchestrion-js"; import { isInstrumentationIntegrationDisabled, @@ -24,6 +23,7 @@ import { groqConfigs } from "./groq"; import { huggingFaceConfigs } from "./huggingface"; import { huggingFaceTransformersConfigs } from "./huggingface-transformers"; import { langchainConfigs } from "./langchain"; +import { livekitConfigs } from "./livekit"; import { langSmithConfigs } from "./langsmith"; import { mistralConfigs } from "./mistral"; import { langGraphSDKConfigs } from "./langgraph-sdk"; diff --git a/js/src/auto-instrumentations/configs/livekit.ts b/js/src/auto-instrumentations/configs/livekit.ts index 7ce86f161..a73a5bf33 100644 --- a/js/src/auto-instrumentations/configs/livekit.ts +++ b/js/src/auto-instrumentations/configs/livekit.ts @@ -1,63 +1,93 @@ import type { InstrumentationConfig } from "../orchestrion-js"; -import { livekitChannels } from "../../instrumentation/plugins/livekit-channels"; -// Private lifecycle hooks: widen only after validating the supported release matrix. -export const livekitConfigs: InstrumentationConfig[] = [ - ["pipeline", "agent_activity", "AgentActivity", "_pipelineReplyTaskImpl"], - ["conversation", "agent_session", "AgentSession", "_conversationItemAdded"], - ["userCompleted", "agent_activity", "AgentActivity", "userTurnCompleted"], - ["start", "agent_session", "AgentSession", "_startImpl"], - ["close", "agent_session", "AgentSession", "closeImpl"], - ["output", "agent_session", "AgentSession", "onAudioOutputChanged"], - ["input", "agent_activity", "AgentActivity", "attachAudioInput"], - ["activity", "agent_activity", "AgentActivity", "_startSessionImpl"], - ["userTurn", "agent_activity", "AgentActivity", "onEndOfTurn"], -].map(([channel, file, className, methodName]) => ({ - channelName: - livekitChannels[channel as keyof typeof livekitChannels].channelName, - module: { - name: "@livekit/agents", - versionRange: ">=1.9.1 <1.10.0", - filePath: `dist/voice/${file}.js`, - }, - functionQuery: { className, methodName }, -})); +import { livekitChannels } from "../../instrumentation/plugins/livekit-interceptors"; -// These factories create the async inference workers inside the scoped call. -// Suppressing here leaves tool execution and other session work instrumented. -for (const functionName of ["performLLMInference", "performTTSInference"]) { - livekitConfigs.push({ - channelName: livekitChannels.inference.channelName, - module: { - name: "@livekit/agents", - versionRange: ">=1.9.1 <1.10.0", - filePath: "dist/voice/generation.js", - }, - functionQuery: { functionName }, - }); -} +// Private lifecycle hooks: widen only after validating the supported release matrix. +const versionRange = ">=1.9.1 <1.10.0"; +const targets: [ + keyof typeof livekitChannels, + string, + InstrumentationConfig["functionQuery"], +][] = [ + [ + "start", + "voice/agent_session", + { className: "AgentSession", methodName: "_startImpl" }, + ], + [ + "close", + "voice/agent_session", + { className: "AgentSession", methodName: "closeImpl" }, + ], + [ + "conversation", + "voice/agent_session", + { className: "AgentSession", methodName: "_conversationItemAdded" }, + ], + [ + "activity", + "voice/agent_activity", + { className: "AgentActivity", methodName: "_startSessionImpl" }, + ], + [ + "input", + "voice/agent_activity", + { className: "AgentActivity", methodName: "attachAudioInput" }, + ], + [ + "pipeline", + "voice/agent_activity", + { className: "AgentActivity", methodName: "_pipelineReplyTaskImpl" }, + ], + [ + "speechStart", + "voice/agent_activity", + { className: "AgentActivity", methodName: "onStartOfSpeech" }, + ], + [ + "userTurn", + "voice/agent_activity", + { className: "AgentActivity", methodName: "onEndOfTurn" }, + ], + [ + "userCompleted", + "voice/agent_activity", + { className: "AgentActivity", methodName: "userTurnCompleted" }, + ], + [ + "stt", + "voice/audio_recognition", + { className: "AudioRecognition", methodName: "processSTTEvent" }, + ], + // These factories create the async inference workers inside the scoped call. + // Suppressing here leaves tool execution and other session work instrumented. + ["inference", "voice/generation", { functionName: "performLLMInference" }], + ["inference", "voice/generation", { functionName: "performTTSInference" }], + // Observe the native tracer at its stable function boundary; preserve providers. + [ + "startSpan", + "telemetry/traces", + { className: "DynamicTracer", methodName: "startSpan" }, + ], + [ + "startActiveSpan", + "telemetry/traces", + { className: "DynamicTracer", methodName: "startActiveSpan" }, + ], + [ + "startActiveSpanSync", + "telemetry/traces", + { className: "DynamicTracer", methodName: "startActiveSpanSync" }, + ], +]; -// Observe the native tracer at its stable function boundary; preserve providers. -for (const methodName of [ - "startSpan", - "startActiveSpan", - "startActiveSpanSync", -] as const) { - livekitConfigs.push({ - channelName: livekitChannels.trace.channelName, +export const livekitConfigs: InstrumentationConfig[] = targets.map( + ([channel, file, functionQuery]) => ({ + channelName: livekitChannels[channel].channelName, module: { name: "@livekit/agents", - versionRange: ">=1.9.1 <1.10.0", - filePath: "dist/telemetry/traces.js", + versionRange, + filePath: `dist/${file}.js`, }, - functionQuery: { className: "DynamicTracer", methodName }, - }); -} -livekitConfigs.push({ - channelName: livekitChannels.provider.channelName, - module: { - name: "@livekit/agents", - versionRange: ">=1.9.1 <1.10.0", - filePath: "dist/telemetry/traces.js", - }, - functionQuery: { functionName: "setTracerProvider" }, -}); + functionQuery, + }), +); diff --git a/js/src/exports.ts b/js/src/exports.ts index d136af75c..7ce3f6650 100644 --- a/js/src/exports.ts +++ b/js/src/exports.ts @@ -231,10 +231,7 @@ export { wrapGoogleADK } from "./wrappers/google-adk"; export { wrapGenkit } from "./wrappers/genkit"; export { wrapHuggingFace } from "./wrappers/huggingface"; export { wrapHuggingFaceTransformers } from "./wrappers/huggingface-transformers"; -export { - LiveKitSpanProcessor, - wrapLiveKitSession, -} from "./instrumentation/livekit/processor"; +export { wrapLiveKit } from "./wrappers/livekit"; export { wrapOpenRouterAgent } from "./wrappers/openrouter-agent"; export { wrapOpenRouter } from "./wrappers/openrouter"; export { wrapMistral } from "./wrappers/mistral"; diff --git a/js/src/instrumentation/braintrust-plugin.ts b/js/src/instrumentation/braintrust-plugin.ts index 09360940f..009f1e8a5 100644 --- a/js/src/instrumentation/braintrust-plugin.ts +++ b/js/src/instrumentation/braintrust-plugin.ts @@ -1,4 +1,3 @@ -import { LiveKitPlugin } from "./plugins/livekit-plugin"; import { BasePlugin } from "./core"; import { OpenAIPlugin } from "./plugins/openai-plugin"; import { OpenAICodexPlugin } from "./plugins/openai-codex-plugin"; @@ -29,6 +28,7 @@ import { LangSmithPlugin } from "./plugins/langsmith-plugin"; import { PiCodingAgentPlugin } from "./plugins/pi-coding-agent-plugin"; import { StrandsAgentSDKPlugin } from "./plugins/strands-agent-sdk-plugin"; import { ElevenLabsPlugin } from "./plugins/elevenlabs-plugin"; +import { LiveKitPlugin } from "./plugins/livekit-plugin"; import { VoyageAIPlugin } from "./plugins/voyageai-plugin"; import { TypeSafePlugin } from "./plugins/typesafe-plugin"; import { CloudflareAIChatPlugin } from "./plugins/cloudflare-ai-chat-plugin"; @@ -37,6 +37,7 @@ import type { InstrumentationIntegrationsConfig } from "./config"; export interface BraintrustPluginConfig { integrations?: InstrumentationIntegrationsConfig; + streamingAttachmentBufferBytes?: number; } /** @@ -84,13 +85,13 @@ export class BraintrustPlugin extends BasePlugin { private bedrockRuntimePlugin: BedrockRuntimePlugin | null = null; private genkitPlugin: GenkitPlugin | null = null; private gitHubCopilotPlugin: GitHubCopilotPlugin | null = null; - private livekitPlugin: LiveKitPlugin | null = null; private fluePlugin: FluePlugin | null = null; private langChainPlugin: LangChainPlugin | null = null; private langSmithPlugin: LangSmithPlugin | null = null; private piCodingAgentPlugin: PiCodingAgentPlugin | null = null; private strandsAgentSDKPlugin: StrandsAgentSDKPlugin | null = null; private elevenLabsPlugin: ElevenLabsPlugin | null = null; + private liveKitPlugin: LiveKitPlugin | null = null; private voyageAIPlugin: VoyageAIPlugin | null = null; private typeSafePlugin: TypeSafePlugin | null = null; private cloudflareAIChatPlugin: CloudflareAIChatPlugin | null = null; @@ -101,27 +102,8 @@ export class BraintrustPlugin extends BasePlugin { this.config = config; } - configureLiveKit(value: InstrumentationIntegrationsConfig["livekit"]) { - this.livekitPlugin?.configure(typeof value === "object" ? value : {}); - if (value === false) { - this.livekitPlugin?.disable(); - this.livekitPlugin = null; - } else if (!this.livekitPlugin) { - this.livekitPlugin = new LiveKitPlugin( - typeof value === "object" ? value : {}, - ); - this.livekitPlugin.enable(); - } - } - protected onEnable(): void { const integrations = this.config.integrations ?? {}; - if (integrations.livekit !== false) { - this.livekitPlugin = new LiveKitPlugin( - typeof integrations.livekit === "object" ? integrations.livekit : {}, - ); - this.livekitPlugin.enable(); - } // Enable OpenAI integration (default: true) if (integrations.openai !== false) { @@ -229,6 +211,13 @@ export class BraintrustPlugin extends BasePlugin { this.elevenLabsPlugin.enable(); } + if (integrations.livekit !== false) { + this.liveKitPlugin = new LiveKitPlugin( + this.config.streamingAttachmentBufferBytes, + ); + this.liveKitPlugin.enable(); + } + if (integrations.voyageai !== false) { this.voyageAIPlugin = new VoyageAIPlugin(); this.voyageAIPlugin.enable(); @@ -308,8 +297,6 @@ export class BraintrustPlugin extends BasePlugin { } protected onDisable(): void { - this.livekitPlugin?.disable(); - this.livekitPlugin = null; if (this.openaiPlugin) { this.openaiPlugin.disable(); this.openaiPlugin = null; @@ -409,6 +396,11 @@ export class BraintrustPlugin extends BasePlugin { this.elevenLabsPlugin = null; } + if (this.liveKitPlugin) { + this.liveKitPlugin.disable(); + this.liveKitPlugin = null; + } + if (this.voyageAIPlugin) { this.voyageAIPlugin.disable(); this.voyageAIPlugin = null; diff --git a/js/src/instrumentation/config.ts b/js/src/instrumentation/config.ts index 7e07ea42e..588cd3a61 100644 --- a/js/src/instrumentation/config.ts +++ b/js/src/instrumentation/config.ts @@ -1,4 +1,3 @@ -import type { LiveKitOptions } from "./livekit/options"; export type SpanExportData = Record; export interface SpanCustomizer { @@ -24,7 +23,6 @@ export interface SpanCustomizer { } export interface InstrumentationIntegrationsConfig { - livekit?: boolean | LiveKitOptions; openai?: boolean; anthropic?: boolean; vercel?: boolean; @@ -64,9 +62,23 @@ export interface InstrumentationIntegrationsConfig { voyageai?: boolean; typesafe?: boolean; elevenlabs?: boolean; + livekit?: boolean; } +export const DEFAULT_STREAMING_ATTACHMENT_BUFFER_BYTES = 4 * 1024 * 1024; + export interface InstrumentationConfig { + /** + * Target attachment payload size in bytes for each segmentable media stream. + * Defaults to 4 MiB. Must be a positive safe integer. + * Instrumentations flush at valid media boundaries and on recording completion. + * Counts binary bytes after decoding and format conversion, excluding metadata. + * Whole-file responses remain intact and may exceed this threshold. + * This is not a total memory limit and does not enable attachment capture. + * Configure before initializing the SDK or enabling instrumentation. + */ + streamingAttachmentBufferBytes?: number; + /** * Configuration for individual SDK integrations. * Set to false to disable instrumentation for that SDK. @@ -86,8 +98,6 @@ const envIntegrationAliases: Record< string, keyof InstrumentationIntegrationsConfig > = { - livekit: "livekit", - "@livekit/agents": "livekit", openai: "openai", "openai-codex": "openaiCodexSDK", "openai-codex-sdk": "openaiCodexSDK", @@ -172,6 +182,8 @@ const envIntegrationAliases: Record< "@typesafe-ai/sdk": "typesafe", elevenlabs: "elevenlabs", "@elevenlabs/elevenlabs-js": "elevenlabs", + livekit: "livekit", + "@livekit/agents": "livekit", }; export function getDefaultInstrumentationIntegrations(): Record< @@ -179,7 +191,6 @@ export function getDefaultInstrumentationIntegrations(): Record< boolean > { return { - livekit: true, openai: true, openaiCodexSDK: true, anthropic: true, @@ -216,6 +227,7 @@ export function getDefaultInstrumentationIntegrations(): Record< voyageai: true, typesafe: true, elevenlabs: true, + livekit: true, piCodingAgent: true, strandsAgentSDK: true, cloudflareAgents: true, diff --git a/js/src/instrumentation/livekit/audio-options.test.ts b/js/src/instrumentation/livekit/audio-options.test.ts deleted file mode 100644 index 3765b90f5..000000000 --- a/js/src/instrumentation/livekit/audio-options.test.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { beforeEach, afterEach, expect, test, vi } from "vitest"; -import * as extension from "../../audio/index"; -import iso from "../../isomorph"; -import { resolveAudioOptions } from "./audio-options"; -beforeEach(() => { - vi.spyOn(iso, "getEnv").mockImplementation((name) => process.env[name]); - for (const key of [ - "BRAINTRUST_CAPTURE_ATTACHMENTS", - "BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS", - "BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS", - ]) - vi.stubEnv(key, undefined); -}); -afterEach(() => { - vi.unstubAllEnvs(); - vi.restoreAllMocks(); -}); -test("disabled capture never loads the recorder, even when installed and environment-enabled", () => { - vi.stubEnv("BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS", "true"); - const load = vi.fn(() => extension); - expect(resolveAudioOptions({ captureAudio: false }, load)).toEqual({ - user: false, - agent: false, - }); - expect(load).not.toHaveBeenCalled(); -}); -test.each(["true", "1", " TRUE "])( - "participant options override the %s audio environment opt-in", - (value) => { - vi.stubEnv("BRAINTRUST_CAPTURE_ATTACHMENTS", "false"); - vi.stubEnv("BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS", value); - vi.stubEnv("BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS", "false"); - const load = vi.fn(() => extension); - expect(resolveAudioOptions({}, load)).toEqual({ - user: false, - agent: true, - extension, - }); - expect( - resolveAudioOptions( - { captureAudio: false, captureAgentAudio: true }, - load, - ), - ).toEqual({ user: false, agent: true, extension }); - }, -); -test("enabled capture uses the SDK recorder without an extension", () => { - expect(resolveAudioOptions({ captureAudio: true })).toMatchObject({ - user: true, - agent: true, - extension, - }); -}); - -test("generic attachment capture does not enable voice recording or load the extension", () => { - vi.stubEnv("BRAINTRUST_CAPTURE_ATTACHMENTS", "true"); - const load = vi.fn(() => extension); - expect(resolveAudioOptions({}, load)).toEqual({ user: false, agent: false }); - expect(load).not.toHaveBeenCalled(); - vi.stubEnv("BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS", "true"); - expect(resolveAudioOptions({}, load)).toEqual({ - user: true, - agent: false, - extension, - }); -}); diff --git a/js/src/instrumentation/livekit/audio-options.ts b/js/src/instrumentation/livekit/audio-options.ts deleted file mode 100644 index c74bcd983..000000000 --- a/js/src/instrumentation/livekit/audio-options.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { AudioRecordingModule } from "./audio"; -import * as audio from "../../audio"; -import iso from "../../isomorph"; -import type { LiveKitOptions } from "./options"; - -export function resolveAudioOptions( - options: LiveKitOptions, - loadRecording: () => AudioRecordingModule = () => audio, -) { - const flag = (name: string) => { - const value = iso.getEnv(name); - return ( - value !== undefined && ["1", "true"].includes(value.trim().toLowerCase()) - ); - }; - const user = - options.captureUserAudio ?? - options.captureAudio ?? - flag("BRAINTRUST_CAPTURE_USER_AUDIO_ATTACHMENTS"); - const agent = - options.captureAgentAudio ?? - options.captureAudio ?? - flag("BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS"); - if (!user && !agent) return { user, agent }; - return { user, agent, extension: loadRecording() }; -} diff --git a/js/src/instrumentation/livekit/audio.ts b/js/src/instrumentation/livekit/audio.ts deleted file mode 100644 index 98ff4bfff..000000000 --- a/js/src/instrumentation/livekit/audio.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type * as audio from "../../audio"; - -/** Shared recorder types used by the LiveKit integration. */ -export type { RecordingOptions, Packet, Selection } from "../../audio"; -export type AudioRecordingModule = typeof audio; -export type Recording = ReturnType< - AudioRecordingModule["createAudioRecording"] ->; diff --git a/js/src/instrumentation/livekit/capture-state.ts b/js/src/instrumentation/livekit/capture-state.ts deleted file mode 100644 index 5b7a388ac..000000000 --- a/js/src/instrumentation/livekit/capture-state.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import type { Capture, Packet } from "./runtime"; -const MAX_PACKETS = 100000; -export function omit(c: Capture, reason: string) { - c.recording.stop(reason); -} -export function release(c: Capture) { - c.inputStream = undefined; -} -export function advance(c: Capture) { - const wall = Date.now() - c.origin - 1000; - c.recording.advance( - Math.min( - wall, - c.user ? (c.inputEnd ?? 0) : wall, - ...c.outputHolds.values(), - ), - ); -} -export function copyFrame(c: Capture, frame: any): Int16Array | undefined { - if (c.closed || c.recording.reason) return; - if ( - !(frame?.data instanceof Int16Array) || - !Number.isInteger(frame.sampleRate) || - frame.sampleRate < 8000 || - frame.sampleRate > 96000 || - ![1, 2].includes(frame.channels) || - frame.data.length % frame.channels - ) { - omit(c, "unsupported_frame_format"); - return; - } - if (!frame.data.length) return; - return c.recording.copy(frame.data); -} -export function packet(c: Capture, p: Packet): boolean { - return c.recording.append(p); -} -export function select( - c: Capture, - owner: string | undefined, - start: number, - end: number, - channel: number, -) { - if (!owner || !(end > start)) return; - const list = c.selections.get(owner) ?? []; - const previous = list.at(-1); - if ( - previous && - previous.channel_index === channel && - start >= previous.start_offset_ms && - start <= previous.end_offset_ms + 1 / 24 - ) { - previous.end_offset_ms = Math.max(previous.end_offset_ms, end); - return; - } - if (list.length >= MAX_PACKETS) { - omit(c, "selection_limit"); - return; - } - list.push({ - recording_span_id: c.row.span.spanId, - recording_id: "call", - start_offset_ms: start, - end_offset_ms: end, - channel_index: channel, - }); - c.selections.set(owner, list); -} diff --git a/js/src/instrumentation/livekit/capture.test.ts b/js/src/instrumentation/livekit/capture.test.ts deleted file mode 100644 index 9fe67ea17..000000000 --- a/js/src/instrumentation/livekit/capture.test.ts +++ /dev/null @@ -1,355 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ -import { EventEmitter } from "node:events"; -import { afterEach, expect, test, vi } from "vitest"; -import { - createAudioRecording, - timeline, - type RecordingOptions, -} from "../../audio/index"; -import { mergeSelections } from "../../audio/selections"; -import { instrumentInput, instrumentOutput, release } from "./capture"; -import type { Capture } from "./runtime"; -type AudioFile = { bytes: Uint8Array; durationMs: number }; -const captures: Capture[] = []; -function capture( - options: RecordingOptions = {}, -): Capture & { files: AudioFile[] } { - const files: AudioFile[] = []; - const c: Capture & { files: AudioFile[] } = { - files, - timeline, - session: { - activity: { - currentSpeech: { - _agentTurnSpan: { spanContext: () => ({ spanId: "turn" }) }, - }, - }, - }, - row: { span: { spanId: "session" } } as any, - user: true, - agent: true, - origin: Date.now() - 100, - recording: createAudioRecording({ - options, - span: { spanId: "session", log: () => {} }, - flush: async () => {}, - snapshot: () => ({ - origin: c.origin, - basis: "test", - source: (channel_index) => ({ channel_index }), - }), - createAttachment: ({ data }) => ({ - reference: {}, - upload: async () => { - files.push({ bytes: data, durationMs: data.length / 96 }); - return { upload_status: "done" }; - }, - }), - }), - inputTimeline: [], - inputDurationMs: 0, - outputHolds: new Map(), - closed: false, - selections: new Map(), - events: new Map(), - cleanups: [], - }; - captures.push(c); - return c; -} -const frame = (samples = 480, value = 1234) => ({ - data: new Int16Array(samples).fill(value), - sampleRate: 24000, - channels: 1, -}); -afterEach(async () => { - for (const c of captures.splice(0)) { - for (const f of c.cleanups) f(); - await c.recording.finish(); - release(c); - } - vi.restoreAllMocks(); -}); -test("input tap preserves read values, cancellation and locks; copies mutable PCM", async () => { - const c = capture(), - f = frame(); - let cancelled = false; - const stream = new ReadableStream({ - start(ctrl) { - ctrl.enqueue(f); - }, - cancel() { - cancelled = true; - }, - }); - instrumentInput(c, stream); - const reader = stream.getReader(); - expect((await reader.read()).value).toBe(f); - f.data.fill(0); - await c.recording.finish(); - expect( - new DataView(c.files[0].bytes.buffer).getInt16( - c.files[0].bytes.length - 4, - true, - ), - ).toBe(1234); - await reader.cancel(); - reader.releaseLock(); - expect(cancelled).toBe(true); - expect(stream.locked).toBe(false); -}); -test("disabled capture does not wrap input or output", () => { - const c = capture({ segmentDurationSeconds: 0.02 }); - c.user = false; - c.agent = false; - const stream = new ReadableStream(), - getReader = stream.getReader; - const sink = new EventEmitter() as any; - sink.captureFrame = async () => {}; - const original = sink.captureFrame; - instrumentInput(c, stream); - instrumentOutput(c, sink, false); - expect(stream.getReader).toBe(getReader); - expect(sink.captureFrame).toBe(original); -}); -test("interruption includes only sink progress ranges, excluding queued tail and pauses", async () => { - const c = capture(), - sink = new EventEmitter() as any; - sink.captureFrame = async () => {}; - sink.flush = () => {}; - sink.clearBuffer = () => {}; - instrumentOutput(c, sink, false); - await sink.captureFrame(frame(2400)); // 100ms generated - sink.emit("playbackProgressed", { - startedAt: c.origin + 10, - offset: 0, - duration: 20, - }); - sink.emit("playbackProgressed", { - startedAt: c.origin + 60, - offset: 40, - duration: 20, - }); - sink.emit("playbackFinished", { - playbackPosition: 0.04, - interrupted: true, - synchronizedTranscript: "private", - }); - const ranges = mergeSelections(c.selections.get("turn")!); - expect(ranges.map((s) => [s.start_offset_ms, s.end_offset_ms])).toEqual([ - [10, 30], - [60, 80], - ]); - - expect( - c.events.get("turn")![0].attributes.synchronizedTranscript, - ).toBeUndefined(); - await c.recording.finish(); - const file = c.files[0]; - expect(file.durationMs).toBe(80); - expect(file.bytes.length).toBe(1920 * 4); - const view = new DataView(file.bytes.buffer); - expect(view.getInt16(240 * 4 + 2, true)).toBe(1234); - expect(view.getInt16(960 * 4 + 2, true)).toBe(0); -}); -test("synchronous completion during an in-flight capture is settled after acceptance", async () => { - const c = capture(), - sink = new EventEmitter() as any; - sink.captureFrame = async () => { - sink.emit("playbackStarted", { createdAt: c.origin + 10 }); - sink.emit("playbackFinished", { - playbackPosition: 0.02, - interrupted: false, - }); - }; - instrumentOutput(c, sink, true); - await sink.captureFrame(frame()); - await c.recording.finish(); - expect(c.files).toHaveLength(1); - expect(c.selections.get("turn")![0].end_offset_ms).toBe(30); -}); -test("failed capture preserves the original exception and cannot claim retained output", async () => { - const c = capture(), - sink = new EventEmitter() as any, - error = new Error("sink failure"); - sink.captureFrame = async () => { - throw error; - }; - instrumentOutput(c, sink, false); - await expect(sink.captureFrame(frame())).rejects.toBe(error); - expect(c.recording.reason).toBe("output_capture_failed"); - await c.recording.finish(); - expect(c.files).toHaveLength(0); -}); -test("unknown interrupted playout is omitted rather than guessed from span timestamps", async () => { - const c = capture(), - sink = new EventEmitter() as any; - sink.captureFrame = async () => {}; - instrumentOutput(c, sink, false); - await sink.captureFrame(frame()); - sink.emit("playbackFinished", { playbackPosition: 0.01, interrupted: true }); - expect(c.recording.reason).toBe("output_playout_mapping_unavailable"); -}); -test("byte budget stops capture and releases staged output without changing I/O", async () => { - const c = capture({ maxBufferBytes: 960 }), - sink = new EventEmitter() as any; - let accepted = 0; - sink.captureFrame = async () => { - accepted++; - }; - instrumentOutput(c, sink, false); - await sink.captureFrame(frame()); - await sink.captureFrame(frame()); - expect(accepted).toBe(2); - expect(c.recording.reason).toBe("capture_byte_limit"); - sink.emit("playbackFinished", { playbackPosition: 0.04, interrupted: false }); - await c.recording.finish(); - expect(c.files).toHaveLength(0); -}); -test("buffered input frames retain all samples instead of overwriting equal arrival times", async () => { - const c = capture(); - const stream = new ReadableStream({ - start(controller) { - controller.enqueue(frame(480, 1000)); - controller.enqueue(frame(480, 2000)); - controller.close(); - }, - }); - instrumentInput(c, stream); - const reader = stream.getReader(); - await reader.read(); - await reader.read(); - reader.releaseLock(); - await c.recording.finish(); - const file = c.files[0], - view = new DataView(file.bytes.buffer); - const last = file.bytes.length - 4; - expect(view.getInt16(last, true)).toBe(2000); - expect(view.getInt16(last - 480 * 4, true)).toBe(1000); -}); -test("input source replacement is explicit and concurrent sessions cannot steal capture", () => { - const a = capture(), - b = capture(); - const stream = new ReadableStream(); - instrumentInput(a, stream); - instrumentInput(b, stream); - expect(a.recording.reason).toBe("shared_input_unsupported"); - expect(b.recording.reason).toBe("shared_input_unsupported"); - const c = capture(); - instrumentInput(c, new ReadableStream()); - instrumentInput(c, new ReadableStream()); - expect(c.recording.reason).toBe("input_source_change_unsupported"); -}); - -test("confirmed playback rotates during a still-open utterance and interruption discards only its queued tail", async () => { - const c = capture({ segmentDurationSeconds: 0.02 }); - c.user = false; - c.origin = Date.now() - 5000; - const sink = new EventEmitter() as any; - sink.captureFrame = async () => {}; - instrumentOutput(c, sink, false); - await sink.captureFrame(frame()); - sink.emit("playbackProgressed", { - startedAt: c.origin, - offset: 0, - duration: 20, - }); - await c.recording.drain(); - expect(c.files).toMatchObject([{ durationMs: 20 }]); - expect(c.closed).toBe(false); - await sink.captureFrame(frame()); - sink.emit("playbackFinished", { playbackPosition: 0.02, interrupted: true }); - await c.recording.finish(); - expect(c.files).toMatchObject([{ durationMs: 20 }]); - expect(c.selections.get("turn")).toMatchObject([ - { start_offset_ms: 0, end_offset_ms: 20 }, - ]); -}); - -test("continuous input uses sample time despite late delivery and preserves actual silent samples", async () => { - let now = 10020; - const clock = vi.spyOn(Date, "now").mockImplementation(() => now); - const c = capture(); - c.origin = 10000; - const stream = new ReadableStream({ - start(controller) { - for (const value of [1234, 0, 2345]) - controller.enqueue(frame(480, value)); - controller.close(); - }, - }); - try { - instrumentInput(c, stream); - const reader = stream.getReader(); - for (const time of [10020, 10041, 10062]) { - now = time; - await reader.read(); - } - reader.releaseLock(); - await c.recording.finish(); - const view = new DataView(c.files[0].bytes.buffer); - expect(c.files[0].bytes.length / 4).toBe(1440); - for (let i = 0; i < 1440; i++) - expect(view.getInt16(i * 4, true)).toBe( - i < 480 ? 1234 : i < 960 ? 0 : 2345, - ); - } finally { - clock.mockRestore(); - } -}); - -test("shared output stops both recordings without changing application playback", async () => { - const a = capture(), - b = capture(); - a.user = b.user = false; - const sink = new EventEmitter() as any; - const delivered: unknown[] = []; - sink.captureFrame = async (value: unknown) => { - delivered.push(value); - return "played"; - }; - instrumentOutput(a, sink, false); - instrumentOutput(b, sink, false); - const audio = frame(); - expect(await sink.captureFrame(audio)).toBe("played"); - sink.emit("playbackFinished", { playbackPosition: 0.02, interrupted: false }); - await Promise.all([a.recording.finish(), b.recording.finish()]); - expect(delivered).toEqual([audio]); - expect(a.files).toEqual([]); - expect(b.files).toEqual([]); - expect(a.recording.reason).toBe("shared_output_unsupported"); - expect(b.recording.reason).toBe("shared_output_unsupported"); -}); - -test("multiple playback runs in one assistant turn keep selections on each speaking span", async () => { - const c = capture(); - const sink = Object.assign(new EventEmitter(), { - captureFrame: async (_frame: unknown) => {}, - flush() {}, - }); - instrumentOutput(c, sink, false); - for (const [id, start] of [ - ["ack", 10], - ["answer", 100], - ] as const) { - c.session.agentSpeakingSpan = { spanContext: () => ({ spanId: id }) }; - await sink.captureFrame(frame(480)); - sink.emit("playbackProgressed", { - startedAt: c.origin + start, - offset: 0, - duration: 20, - }); - sink.emit("playbackFinished", { - playbackPosition: 0.02, - interrupted: false, - }); - sink.flush(); - } - expect(c.selections.get("ack")).toMatchObject([ - { start_offset_ms: 10, end_offset_ms: 30 }, - ]); - expect(c.selections.get("answer")).toMatchObject([ - { start_offset_ms: 100, end_offset_ms: 120 }, - ]); - expect(c.selections.get("turn")).toHaveLength(2); -}); diff --git a/js/src/instrumentation/livekit/capture.ts b/js/src/instrumentation/livekit/capture.ts deleted file mode 100644 index 2c9f0fa20..000000000 --- a/js/src/instrumentation/livekit/capture.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { observe, type Capture } from "./runtime"; -import { omit, copyFrame, packet, advance } from "./capture-state"; -export { select, release } from "./capture-state"; -export { instrumentOutput } from "./playback"; -const readers = new WeakMap(); -// Tap the reader already requested by LiveKit. No tee, prefetch, or extra consumer. -// Keeping the original stream lets LiveKit release/reacquire its lock on handoff. -export function instrumentInput(c: Capture, stream: any) { - if (!c.user || c.closed || !stream?.getReader) return; - if (c.inputStream && c.inputStream !== stream) { - omit(c, "input_source_change_unsupported"); - return; - } - const previous = readers.get(stream); - if (previous && previous !== c && !previous.closed) { - omit(previous, "shared_input_unsupported"); - omit(c, "shared_input_unsupported"); - return; - } - c.inputStream = stream; - readers.set(stream, c); - const marker = Symbol.for("braintrust.livekit.input"); - if (stream[marker]) return; - stream[marker] = true; - const getReader = stream.getReader; - stream.getReader = function (...args: any[]) { - const reader: any = Reflect.apply(getReader, this, args); - const read = reader.read; - reader.read = async function (...readArgs: any[]) { - const value: any = await Reflect.apply(read, this, readArgs); - observe(() => { - const owner = readers.get(stream); - if (!owner || owner.closed || value.done) return; - const frame = value.value; - const pcm = copyFrame(owner, frame); - if (!pcm) return; - const duration = owner.timeline.pcmBytesToMs( - pcm.byteLength, - frame.sampleRate, - frame.channels, - ); - // This input is an ordered PCM stream, including silent samples. Anchor - // once to the session epoch; scheduler jitter is not missing audio. - // Source replacement is rejected above rather than joining unrelated clocks. - const at = - owner.inputEnd ?? Math.max(0, Date.now() - owner.origin - duration); - owner.inputEnd = at + duration; - if ( - packet(owner, { - pcm, - rate: frame.sampleRate, - channels: frame.channels, - channel: 0, - at, - }) - ) { - const previous = owner.inputTimeline.at(-1); - if ( - previous && - previous.rate === frame.sampleRate && - previous.channels === frame.channels - ) - previous.duration += duration; - else - owner.inputTimeline.push({ - at, - duration, - rate: frame.sampleRate, - channels: frame.channels, - sampleStart: owner.inputDurationMs, - }); - owner.inputDurationMs += duration; - if (owner.inputTimeline.length > 100000) - omit(owner, "input_alignment_limit"); - advance(owner); - } - }); - return value; - }; - return reader; - }; -} diff --git a/js/src/instrumentation/livekit/node/auto.ts b/js/src/instrumentation/livekit/node/auto.ts deleted file mode 100644 index aa451f3bd..000000000 --- a/js/src/instrumentation/livekit/node/auto.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions -- structural boundary for the pinned LiveKit/OTel versions. */ -import { createRequire } from "node:module"; -import { join } from "node:path"; -import { currentLogger } from "../../../logger"; -import { runtime, observe, setPreparation } from "../runtime"; -import type { LiveKitOptions } from "../options"; -import { LiveKitSpanProcessor } from "../processor"; - -const observed = Symbol.for("braintrust.livekit.observed-tracer"); - -/** Only called by LiveKit's native tracer hooks, never by ordinary SDK startup. */ -function prepareLiveKit( - dynamic: any, - options: LiveKitOptions, - allowContent: boolean, -) { - const active = runtime(); - // A manually installed processor already receives native span callbacks. - if (active && !active.automatic) return true; - const logger = currentLogger(); - if (!logger) return false; - let processor = active as - | (LiveKitSpanProcessor & { automatic: boolean }) - | undefined; - const pii = process.env.LIVEKIT_TELEMETRY_ALLOW_PII; - const content = - process.env.OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT; - const captureContent = - (options.captureContent ?? true) && - allowContent && - content !== "false" && - !["0", "false", "no", "off"].includes(pii?.trim().toLowerCase() ?? ""); - - // With no provider configured, use the OTel dependency already installed by - // LiveKit. Register only against an undelegated API proxy. Existing providers, - // samplers, processors, and LiveKit Cloud provider setup remain untouched. - const provider = dynamic.getProvider(); - if ( - typeof provider.getDelegateTracer === "function" && - provider.getDelegateTracer("livekit-agents") === undefined - ) { - const app = createRequire(join(process.cwd(), "package.json")); - let entry: string; - try { - entry = app.resolve("@opentelemetry/sdk-trace-node"); - } catch { - entry = createRequire(app.resolve("@livekit/agents")).resolve( - "@opentelemetry/sdk-trace-node", - ); - } - const { NodeTracerProvider } = app(entry); - const owned = new NodeTracerProvider(); - owned.register(); - process.once("beforeExit", () => { - void owned.shutdown().catch(() => {}); - }); - } - if (!processor) { - processor = Object.assign( - new LiveKitSpanProcessor({ logger, ...options, captureContent }), - { automatic: true }, - ); - const owned = processor; - process.once("beforeExit", () => { - void owned.shutdown().catch(() => {}); - }); - } - processor.setContentCapture(captureContent); - const tracer = dynamic.getTracer(); - if (tracer[observed]) return true; - const target = processor; - const track = (span: any) => { - if (!span.isRecording()) return span; - observe(() => target.onStart(span)); - const end = span.end; - let ended = false; - span.end = function (...args: any[]) { - try { - return end.apply(this, args); - } finally { - if (!ended) { - ended = true; - // Native processors (including LiveKit redaction) see the span first. - observe(() => target.onEnd(span)); - } - } - }; - return span; - }; - // Decorate only LiveKit's tracer, not the application provider or global API. - dynamic.tracer = { - [observed]: true, - startSpan: (...args: any[]) => track(tracer.startSpan(...args)), - startActiveSpan: (...args: any[]) => { - const callback = args[args.length - 1]; - args[args.length - 1] = (span: any) => callback(track(span)); - return tracer.startActiveSpan(...args); - }, - }; - return true; -} - -export function configureLiveKit(): void { - setPreparation(prepareLiveKit); -} diff --git a/js/src/instrumentation/livekit/options.ts b/js/src/instrumentation/livekit/options.ts deleted file mode 100644 index 5c258901e..000000000 --- a/js/src/instrumentation/livekit/options.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { RecordingOptions } from "./audio"; - -export interface LiveKitOptions { - captureContent?: boolean; - captureAudio?: boolean; - captureUserAudio?: boolean; - captureAgentAudio?: boolean; - recording?: RecordingOptions; -} diff --git a/js/src/instrumentation/livekit/playback.ts b/js/src/instrumentation/livekit/playback.ts deleted file mode 100644 index f9800aa2a..000000000 --- a/js/src/instrumentation/livekit/playback.ts +++ /dev/null @@ -1,295 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { nativeId, observe, type Capture, type Packet } from "./runtime"; -import { omit, copyFrame, packet, advance, select } from "./capture-state"; -const MAX_PACKETS = 100000; -const outputs = new WeakMap(); -type PlaybackRun = { - frames: Packet[]; - duration: number; - owner?: string; - speaking?: string; - unclaimed: { start: number; end: number }[]; - started?: number; - ranges: { offset: number; duration: number; startedAt: number }[]; - finished?: any; - inFlight: number; - hold: number; - processed: number; - hadProgress: boolean; -}; -export function instrumentOutput( - c: Capture, - sink: any, - captureContent: boolean, -) { - if (!c.agent || c.closed || !sink?.captureFrame || !sink.on) return; - if (outputs.get(sink) === c) return; - const previous = outputs.get(sink); - if (previous) { - if (!previous.closed) omit(previous, "shared_output_unsupported"); - omit(c, "shared_output_unsupported"); - return; - } - outputs.set(sink, c); - let current: PlaybackRun | undefined; - const segments: PlaybackRun[] = []; - function settle(segment: PlaybackRun) { - if (segment.inFlight || (!segment.finished && !segment.ranges.length)) - return; - const index = segments.indexOf(segment); - if (index < 0) return; - const finishing = !!segment.finished; - if (finishing) { - segments.splice(index, 1); - if (current === segment) current = undefined; - } - if (c.closed || c.recording.reason) { - for (const frame of segment.frames) c.recording.release(frame.pcm); - segment.frames = []; - c.outputHolds.delete(segment); - return; - } - segment.speaking ??= nativeId(c.session.agentSpeakingSpan); - const ev = segment.finished; - const ranges = segment.ranges.splice(0); - if ( - finishing && - !segment.hadProgress && - segment.started !== undefined && - !ev.interrupted - ) - ranges.push({ - startedAt: segment.started, - offset: 0, - duration: Math.min(segment.duration, ev.playbackPosition * 1000), - }); - if ( - finishing && - !ranges.length && - !segment.hadProgress && - segment.duration - ) { - omit(c, "output_playout_mapping_unavailable"); - for (const f of segment.frames) c.recording.release(f.pcm); - segment.frames = []; - c.outputHolds.delete(segment); - return; - } - const moved = new Set(); - for (const range of ranges) { - if ( - ![range.startedAt, range.offset, range.duration].every( - Number.isFinite, - ) || - range.offset < segment.processed - c.timeline.samplesToMs(1) || - range.duration < 0 - ) { - omit(c, "invalid_playout_range"); - break; - } - const end = range.offset + range.duration; - for (const frame of segment.frames) { - const duration = c.timeline.pcmBytesToMs( - frame.pcm.byteLength, - frame.rate, - frame.channels, - ); - const from = Math.max(frame.at, range.offset), - to = Math.min(frame.at + duration, end); - if (to <= from) continue; - const lo = - Math.round(c.timeline.msToSamples(from - frame.at, frame.rate)) * - frame.channels; - const hi = - Math.round(c.timeline.msToSamples(to - frame.at, frame.rate)) * - frame.channels; - const at = Math.max( - 0, - range.startedAt - c.origin + from - range.offset, - ); - const pcm = frame.pcm.subarray(lo, hi); - const whole = lo === 0 && hi === frame.pcm.length; - if (whole) moved.add(frame.pcm.buffer); - const accepted = whole - ? packet(c, { ...frame, pcm, at }) - : c.recording.record({ ...frame, pcm, at }); - if (accepted) { - select( - c, - segment.owner, - at, - at + - c.timeline.pcmBytesToMs( - pcm.byteLength, - frame.rate, - frame.channels, - ), - 1, - ); - const end = - at + - c.timeline.pcmBytesToMs(pcm.byteLength, frame.rate, frame.channels); - const previous = segment.unclaimed.at(-1); - if ( - previous && - at >= previous.start && - at <= previous.end + c.timeline.samplesToMs(1) - ) - previous.end = Math.max(previous.end, end); - else if (segment.unclaimed.length < MAX_PACKETS) - segment.unclaimed.push({ start: at, end }); - else omit(c, "selection_limit"); - } - } - segment.processed = end; - // Only confirmed output advances this hold. Generated/queued audio never does. - segment.hold = Math.max(0, range.startedAt - c.origin + range.duration); - c.outputHolds.set(segment, segment.hold); - } - if (segment.speaking) - for (const range of segment.unclaimed.splice(0)) - select(c, segment.speaking, range.start, range.end, 1); - segment.frames = segment.frames.filter((frame) => { - const consumed = - finishing || - c.recording.reason || - frame.at + - c.timeline.pcmBytesToMs( - frame.pcm.byteLength, - frame.rate, - frame.channels, - ) <= - segment.processed + c.timeline.samplesToMs(1); - if (consumed && !moved.has(frame.pcm.buffer)) - c.recording.release(frame.pcm); - return !consumed; - }); - if (finishing) { - c.outputHolds.delete(segment); - if (segment.owner) { - const events = c.events.get(segment.owner) ?? []; - if (events.length < 256) - events.push({ - name: "playbackFinished", - time_unix_ms: Date.now(), - attributes: { - playbackPosition: ev.playbackPosition, - interrupted: ev.interrupted, - ...(captureContent && ev.synchronizedTranscript !== undefined - ? { synchronizedTranscript: ev.synchronizedTranscript } - : {}), - }, - }); - c.events.set(segment.owner, events); - } - c.publishSelections?.(); - } - advance(c); - } - const started = (ev: any) => - observe(() => { - const s = segments[0]; - if (s) s.started = ev.createdAt; - }); - const progressed = (ev: any) => - observe(() => { - const s = segments[0]; - if (s && s.ranges.length < MAX_PACKETS) { - s.hadProgress = true; - s.ranges.push({ - startedAt: ev.startedAt, - offset: ev.offset, - duration: ev.duration, - }); - settle(s); - } else if (s) omit(c, "playout_range_limit"); - }); - const finished = (ev: any) => - observe(() => { - const s = segments.find((s) => !s.finished); - if (s) { - s.finished = ev; - settle(s); - } - }); - sink.on("playbackStarted", started); - sink.on("playbackProgressed", progressed); - sink.on("playbackFinished", finished); - c.cleanups.push(() => { - sink.off?.("playbackStarted", started); - sink.off?.("playbackProgressed", progressed); - sink.off?.("playbackFinished", finished); - if (segments.some((s) => s.frames.length)) - omit(c, "unfinished_output_segment"); - for (const segment of segments) - for (const frame of segment.frames) c.recording.release(frame.pcm); - segments.splice(0); - c.outputHolds.clear(); - current = undefined; - }); - const captureFrame = sink.captureFrame; - sink.captureFrame = async function (frame: any, ...args: any[]) { - let segment: PlaybackRun | undefined; - let pcm: Int16Array | undefined; - observe(() => { - if (c.closed || c.recording.reason) return; - if (!current) { - current = { - frames: [], - unclaimed: [], - duration: 0, - owner: nativeId(c.session.activity?.currentSpeech?._agentTurnSpan), - ranges: [], - inFlight: 0, - hold: Math.max(0, Date.now() - c.origin - 1000), - processed: 0, - hadProgress: false, - }; - segments.push(current); - c.outputHolds.set(current, current.hold); - } - segment = current; - segment.inFlight++; - pcm = copyFrame(c, frame); - }); - try { - const result = await Reflect.apply(captureFrame, this, [frame, ...args]); - observe(() => { - if (segment && pcm && !c.recording.reason) { - segment.frames.push({ - pcm, - rate: frame.sampleRate, - channels: frame.channels, - channel: 1, - at: segment.duration, - }); - segment.duration += c.timeline.pcmBytesToMs( - pcm.byteLength, - frame.sampleRate, - frame.channels, - ); - } - }); - return result; - } catch (error) { - observe(() => omit(c, "output_capture_failed")); - throw error; - } finally { - observe(() => { - if (segment) { - segment.inFlight--; - settle(segment); - } - if (pcm && c.recording.reason) c.recording.release(pcm); - }); - } - }; - for (const method of ["flush", "clearBuffer"] as const) { - const original = sink[method]; - if (typeof original !== "function") continue; - sink[method] = function (...args: any[]) { - current = undefined; - return Reflect.apply(original, this, args); - }; - } -} diff --git a/js/src/instrumentation/livekit/processor.test.ts b/js/src/instrumentation/livekit/processor.test.ts deleted file mode 100644 index b603f0ec3..000000000 --- a/js/src/instrumentation/livekit/processor.test.ts +++ /dev/null @@ -1,628 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ -import { afterEach, expect, test, vi } from "vitest"; -import { EventEmitter } from "node:events"; -import { configureNode } from "../../node/config"; -configureNode(); -import { LiveKitSpanProcessor } from "./processor"; -import * as audioOptions from "./audio-options"; -import * as audioExtension from "../../audio/index"; -import { Attachment } from "../../logger"; -import { channel, defineInterceptor } from "../core/interceptor-definitions"; -import { traceAsyncCall } from "../core/tracing"; -let processor: LiveKitSpanProcessor | undefined; -afterEach(async () => { - await processor?.shutdown(); - processor = undefined; -}); -function fixture( - captureContent = false, - options: Partial[0]> = {}, -) { - const rows: { - args: any; - parent?: string; - logs: any[]; - end: any; - spanId: string; - }[] = []; - function owner(parent?: string): any { - return { - flush: async () => {}, - startSpan(args: any) { - const row = { - args, - parent, - logs: [] as any[], - end: undefined as any, - spanId: (rows.length + 1).toString(16).padStart(16, "0"), - }; - rows.push(row); - return { - ...owner(row.spanId), - spanId: row.spanId, - rootSpanId: "1234567890abcdef1234567890abcdef", - log(event: any) { - row.logs.push(event); - }, - end(event: { endTime?: number } = {}) { - row.end ??= { endTime: event.endTime ?? Date.now() / 1000 }; - return row.end.endTime; - }, - }; - }, - }; - } - processor = new LiveKitSpanProcessor({ - logger: owner(), - captureContent, - captureUserAudio: false, - captureAgentAudio: false, - ...options, - }); - const span = ( - id: string, - name: string, - parent?: string, - attributes: any = {}, - ) => ({ - name, - spanContext: () => ({ spanId: id, traceId: "trace" }), - parentSpanContext: parent ? { spanId: parent } : undefined, - startTime: [1, 0] as [number, number], - endTime: [2, 0] as [number, number], - attributes, - events: [], - status: { code: 0 }, - }); - return { rows, span, p: processor }; -} -test("content opt-out retains timing and IDs without logging transcript or tool content", () => { - const { rows, span, p } = fixture(false), - root = span("s", "agent_session"), - turn = span("t", "agent_turn", "s", { - "lk.pii.user_input": "secret", - "lk.speech_id": "speech", - "gen_ai.input.messages": "secret", - }); - p.onStart(root); - p.onStart(turn); - p.onEnd(turn); - p.onEnd(root); - expect(JSON.stringify(rows)).not.toContain("secret"); - expect(JSON.stringify(rows)).toContain("livekit.speech_id"); -}); -test("concurrent sessions keep parents separate; closing one does not clear another", () => { - const { rows, span, p } = fixture(), - a = span("a", "agent_session"), - b = span("b", "agent_session"), - child = span("t", "agent_turn", "a"); - p.onStart(a); - p.onStart(b); - p.onStart(child); - p.onEnd(a); - expect(rows[2].parent).toBe(rows[0].spanId); - const laterChild = span("later", "agent_turn", "b"); - p.onStart(laterChild); - p.onEnd(laterChild); - p.onEnd(child); - p.onEnd(b); - expect(rows[3].parent).toBe(rows[1].spanId); - expect(rows[3].end).toEqual({ endTime: 2 }); - expect(rows[1].end).toEqual({ endTime: 2 }); -}); -test("late tool completion keeps its native owner after the session ends", () => { - const { rows, span, p } = fixture(true); - const root = span("root", "agent_session"), - turn = span("turn", "agent_turn", "root"), - tool = span("tool", "function_tool", "turn", { - "gen_ai.tool.name": "late_tool", - "gen_ai.tool.call.result": '{"ok":true}', - }); - for (const s of [root, turn, tool]) p.onStart(s); - p.onEnd(turn); - p.onEnd(root); - expect(rows[2].end).toBeUndefined(); - p.onEnd(tool); - expect(rows[2].logs.find((event: any) => event.output)?.output).toEqual({ - ok: true, - }); - expect(rows[2].parent).toBe(rows[1].spanId); -}); -test("committed messages retain identity and honor content opt-out", () => { - const { rows, span, p } = fixture(false), - root = span("root", "agent_session"); - p.onStart(root); - p.conversation( - { sessionSpan: root }, - { type: "message", id: "item", role: "user", textContent: "private" }, - ); - p.onEnd(root); - expect(JSON.stringify(rows)).not.toContain("private"); -}); -test("inference suppression preserves results and leaves provider calls in user tools visible", async () => { - const { rows, span, p } = fixture(true); - const root = span("root", "agent_session"); - const turn = span("turn", "agent_turn", "root"); - p.onStart(root); - p.onStart(turn); - const channels = defineInterceptor("livekit-test-provider", { - request: channel<[], Promise>({ channelName: "request" }), - }); - const unsubscribe = channels.request.intercept((target, self, args) => - traceAsyncCall( - () => Reflect.apply(target, self, args), - { arguments: args }, - { - instrumentationName: "openai", - name: "provider-request", - type: "llm", - extractInput: () => ({ input: "request", metadata: undefined }), - extractOutput: (value) => value, - extractMetrics: () => ({}), - }, - ), - ); - try { - const request = () => - channels.request.invoke(async () => "answer", undefined, [], {}); - await p.scope(turn, async () => { - expect( - await p.inference(async () => { - await Promise.resolve(); - return request(); - }), - ).toBe("answer"); - expect(await request()).toBe("answer"); // e.g. a provider call inside a user tool - }); - expect( - rows.filter((row) => row.args.name === "provider-request"), - ).toHaveLength(1); - } finally { - unsubscribe(); - } - p.onEnd(turn); - p.onEnd(root); -}); - -test("common voice operations expose standard messages, metrics, and native provenance", () => { - const { rows, span, p } = fixture(true); - const root = span("s", "agent_session"); - const user = span("u", "user_turn", "s", { - "lk.pii.user_transcript": "Where is order 1042?", - }); - const turn = span("a", "agent_turn", "s"); - const model = span("m", "llm_node", "a", { - "gen_ai.request.model": "gpt-4.1-nano", - "gen_ai.provider.name": "openai", - "gen_ai.usage.input_tokens": 10, - "gen_ai.usage.output_tokens": 3, - "lk.response.ttft": 0.2, - "gen_ai.output.messages": JSON.stringify([ - { - role: "assistant", - parts: [ - { - type: "tool_call", - id: "call-1", - name: "lookup_order", - arguments: { order_id: "1042" }, - }, - ], - }, - ]), - }); - for (const s of [root, user, turn, model]) p.onStart(s); - for (const s of [model, user, turn, root]) p.onEnd(s); - expect(rows.map((r) => r.args.name)).toEqual([ - "livekit.agent_session", - "user_turn", - "agent_turn", - "llm_response", - ]); - expect(rows[1].logs.some((e) => e.input)).toBe(false); - expect( - rows[3].logs.some( - (e) => e.metrics?.tokens === 13 && e.metrics?.time_to_first_token === 0.2, - ), - ).toBe(true); - expect(rows[3].logs.some((e) => e.metadata?.model === "gpt-4.1-nano")).toBe( - true, - ); - expect( - rows[3].logs.some((e) => e.output?.[0]?.tool_calls?.[0]?.id === "call-1"), - ).toBe(true); - expect( - rows[3].logs.some((e) => e.metadata?.["turn.id"] === rows[2].spanId), - ).toBe(true); -}); -test("content opt-out also excludes system instructions and tool definitions", () => { - const { rows, span, p } = fixture(false); - const root = span("s", "agent_session"); - const model = span("m", "llm_node", "s", { - "gen_ai.system_instructions": "private instructions", - "gen_ai.tool.definitions": "private definitions", - }); - p.onStart(root); - p.onStart(model); - p.onEnd(model); - p.onEnd(root); - expect(JSON.stringify(rows)).not.toContain("private"); -}); - -test("tool-only responses retain tool requests on the model without inventing speech", () => { - const { rows, span, p } = fixture(true); - const root = span("s", "agent_session"), - turn = span("a", "agent_turn", "s"), - model = span("m", "llm_node", "a", { - "gen_ai.output.messages": JSON.stringify([ - { - role: "assistant", - parts: [ - { - type: "tool_call", - id: "call-1", - name: "lookup_order", - arguments: { order_id: "1042" }, - }, - ], - }, - ]), - }); - for (const s of [root, turn, model]) p.onStart(s); - for (const s of [model, turn, root]) p.onEnd(s); - expect( - rows[2].logs.some((e) => e.output?.[0]?.tool_calls?.[0]?.id === "call-1"), - ).toBe(true); -}); - -test("upload failure corrects recording descriptors and selections even when logger flush resolves", async () => { - // Exporter-level tests cover rejection/status propagation; this checks wiring. - const resolve = audioOptions.resolveAudioOptions; - const load = vi - .spyOn(audioOptions, "resolveAudioOptions") - .mockImplementation((options) => resolve(options, () => audioExtension)); - const upload = vi.spyOn(Attachment.prototype, "upload").mockResolvedValue({ - upload_status: "error", - error_message: "upload unavailable", - }); - try { - const { p, rows, span } = fixture(false, { captureUserAudio: true }); - const root = span("session", "agent_session"), - turn = span("user", "user_turn", "session"); - p.onStart(root); - p.onStart(turn); - const session = { sessionSpan: root }, - activity = { agentSession: session }; - p.begin(session); - const source = new ReadableStream({ - start(controller) { - controller.enqueue({ - data: new Int16Array(480).fill(1234), - sampleRate: 24000, - channels: 1, - }); - controller.close(); - }, - }); - p.input(activity, source); - const reader = source.getReader(); - await reader.read(); - reader.releaseLock(); - p.userTurn(activity, { - userTurnSpan: turn, - startedSpeakingAt: Date.now() - 1000, - stoppedSpeakingAt: Date.now() + 1000, - }); - p.onEnd(turn); - p.onEnd(root); - await p.forceFlush(); - const descriptors = rows[0].logs - .filter((event) => event.metadata?.["audio.recordings"]) - .at(-1).metadata["audio.recordings"]; - expect(descriptors).toContainEqual( - expect.objectContaining({ - id: "call-0000", - state: "omitted", - reason: "recording_export_failed", - }), - ); - expect( - rows[1].logs - .filter((event) => event.metadata?.["audio.selections"]) - .at(-1).metadata["audio.selections"], - ).toEqual([]); - expect(upload).toHaveBeenCalledTimes(1); - } finally { - upload.mockRestore(); - load.mockRestore(); - } -}); - -test("failed shutdown flush still releases the runtime for another processor", async () => { - const failure = new Error("export unavailable"); - fixture(false, { - logger: { - flush: async () => { - throw failure; - }, - } as any, - }); - const failed = processor!; - processor = undefined; - await expect(failed.shutdown()).rejects.toBe(failure); - expect(() => fixture()).not.toThrow(); -}); - -test("native speech preserves overlap, segmentation, late transcript timing and session ownership", () => { - const { rows, span, p } = fixture(true); - const root = span("root", "agent_session"); - const agent = span("agent", "agent_speaking", "root"); - const caller = span("caller", "user_speaking", "root"); - agent.endTime = [6, 0]; - caller.startTime = [3, 0]; - caller.endTime = [4, 0]; - for (const native of [root, agent, caller]) p.onStart(native); - p.onEnd(caller); - p.conversation( - { sessionSpan: root }, - { - type: "message", - id: "late", - role: "user", - textContent: "Wait, order 1042", - metrics: { startedSpeakingAt: 3 }, - }, - ); - p.conversation( - { sessionSpan: root }, - { - type: "message", - id: "agent-message", - role: "assistant", - textContent: "It arrives Friday.", - metrics: { startedSpeakingAt: 1 }, - }, - ); - p.onEnd(agent); - expect(rows.map((r) => r.args.name)).toEqual([ - "livekit.agent_session", - "agent_speech", - "user_speech", - ]); - expect(rows[1].end.endTime).toBe(6); - expect(rows[2].args.startTime).toBe(3); - expect(rows[2].end.endTime).toBe(4); - expect(rows[2].logs).toContainEqual({ - input: [{ role: "user", content: "Wait, order 1042" }], - }); - expect(rows[1].logs).toContainEqual({ - output: [{ role: "assistant", content: "It arrives Friday." }], - }); - expect(rows[2].parent).toBe(rows[0].spanId); -}); - -test("tool request, continuation, input speech and generated speech use exported link identities", () => { - const { rows, span, p } = fixture(true); - const root = span("s", "agent_session"); - const turn = span("turn", "agent_turn", "s"); - const user = span("u", "user_speaking", "s"); - const model = span("m", "llm_node", "turn", { - "lk.pii.chat_ctx": { - items: [ - { type: "message", id: "caller", role: "user", content: ["Order?"] }, - ], - }, - "lk.pii.response.function_calls": [ - { call_id: "call", name: "lookup_order" }, - ], - }); - const tool = span("tool", "function_tool", "turn", { - "gen_ai.tool.call.id": "call", - }); - const continuation = span("next", "llm_node", "turn", { - "lk.pii.chat_ctx": { - items: [ - { type: "function_call_output", call_id: "call", output: "Friday" }, - ], - }, - }); - for (const native of [root, turn, user, model, tool]) p.onStart(native); - // Late request/transcript resolution also works after the consuming operation ended. - p.onEnd(tool); - p.onEnd(model); - p.onEnd(user); - p.conversation( - { sessionSpan: root }, - { - type: "message", - id: "caller", - role: "user", - textContent: "Order?", - metrics: { startedSpeakingAt: 1 }, - }, - ); - p.scope(turn, () => { - p.inference(() => { - p.onStart(continuation); - return [null, { id: "answer" }]; - }); - const tts = span("tts", "tts_node", "turn"); - const speech = span("speech", "agent_speaking", "turn"); - p.onStart(tts); - p.onStart(speech); - p.conversation( - { sessionSpan: root }, - { - type: "message", - id: "answer", - role: "assistant", - textContent: "Friday", - }, - ); - p.onEnd(speech); - p.onEnd(tts); - }); - p.onEnd(continuation); - const links = (i: number) => - rows[i].logs.filter((log) => log.metadata?.links).at(-1)?.metadata?.links ?? - []; - const link = (target: number, type: string) => ({ - context: { - traceId: "1234567890abcdef1234567890abcdef", - spanId: rows[target].spanId, - traceFlags: 1, - }, - attributes: { "braintrust.relationship.type": type }, - }); - expect( - rows.flatMap((row) => row.logs).every((log) => !("links" in log)), - ).toBe(true); - expect(links(3)).toEqual([link(2, "input_context")]); - expect(links(4)).toEqual([link(3, "requested_by")]); - expect(links(5)).toEqual([link(4, "consumes_tool_result")]); - expect(links(6)).toEqual([link(5, "generated_by")]); - expect(links(7)).toEqual([link(5, "generated_by")]); - expect(JSON.stringify(rows)).not.toContain("continuation.tool_call_ids"); - expect(JSON.stringify(rows)).not.toContain("request_span_id"); -}); - -test.each([undefined, "Heard prefix"])( - "interrupted speech uses only synchronized playback text (%s)", - (synchronizedTranscript) => { - const { rows, span, p } = fixture(true); - const root = span("s", "agent_session"), - speech = span("a", "agent_speaking", "s"); - p.onStart(root); - p.onStart(speech); - const sink = Object.assign(new EventEmitter(), { - captureFrame: async () => {}, - flush() {}, - clearBuffer() {}, - }); - const session: any = { - sessionSpan: root, - agentSpeakingSpan: speech, - output: { audio: sink }, - }; - p.output(session); - sink.emit("playbackFinished", { - interrupted: true, - synchronizedTranscript, - }); - p.conversation(session, { - type: "message", - id: "answer", - role: "assistant", - textContent: "Heard prefix and unheard suffix", - interrupted: true, - }); - expect(rows[1].logs.filter((log) => log.output)).toEqual( - synchronizedTranscript === undefined - ? [] - : [ - { - output: [{ role: "assistant", content: synchronizedTranscript }], - }, - ], - ); - }, -); - -test("output replacement removes stale transcript evidence and can restore an earlier output", () => { - const { rows, span, p } = fixture(true); - const root = span("s", "agent_session"), - speech = span("a", "agent_speaking", "s"); - p.onStart(root); - p.onStart(speech); - const first = new EventEmitter(), - second = new EventEmitter(); - const session: any = { - sessionSpan: root, - agentSpeakingSpan: speech, - output: { audio: first }, - }; - p.output(session); - session.output.audio = second; - p.output(session); - expect(first.listenerCount("playbackFinished")).toBe(0); - session.output.audio = first; - p.output(session); - expect(second.listenerCount("playbackFinished")).toBe(0); - first.emit("playbackFinished", { synchronizedTranscript: "partial suffix" }); - p.conversation(session, { - type: "message", - id: "first", - role: "assistant", - textContent: "Fully played prefix and partial suffix", - interrupted: true, - }); - expect(rows[1].logs).toContainEqual({ - output: [ - { role: "assistant", content: "Fully played prefix and partial suffix" }, - ], - }); - first.emit("playbackFinished", { interrupted: true }); - p.conversation(session, { - type: "message", - id: "unverified", - role: "assistant", - textContent: "unheard", - interrupted: true, - }); - expect(JSON.stringify(rows)).not.toContain("unheard"); -}); - -test("text injected into conversation is not attributed to an earlier untranscribed speech interval", () => { - const { rows, span, p } = fixture(true); - const root = span("s", "agent_session"), - speech = span("u", "user_speaking", "s"); - p.onStart(root); - p.onStart(speech); - p.onEnd(speech); - p.conversation( - { sessionSpan: root }, - { type: "message", id: "typed", role: "user", textContent: "Typed input" }, - ); - p.onEnd(root); - expect(rows[1].logs.some((log) => log.input)).toBe(false); - expect(rows[0].logs).toContainEqual({ - metadata: { - "contrib.livekit.unassociated_messages": [ - { - id: "typed", - role: "user", - text: "Typed input", - started_speaking_at: undefined, - }, - ], - }, - }); -}); - -test("native recognition ownership survives independently sampled speech timestamps", () => { - const { rows, span, p } = fixture(true); - const root = span("s", "agent_session"), - user = span("u", "user_turn", "s"), - speech = span("speech", "user_speaking", "u"); - speech.startTime = [1, 5_000_000]; - p.onStart(root); - p.onStart(user); - p.onStart(speech); - p.onEnd(speech); - const session = { sessionSpan: root }; - p.userTurn( - { agentSession: session }, - { userTurnSpan: user, startedSpeakingAt: 1000, stoppedSpeakingAt: 2000 }, - ); - p.conversation(session, { - type: "message", - id: "caller", - role: "user", - textContent: "Where is my order?", - metrics: { startedSpeakingAt: 1 }, - }); - expect(rows[2].logs).toContainEqual({ - input: [{ role: "user", content: "Where is my order?" }], - }); - expect(rows[2].args.startTime).toBe(1.005); -}); diff --git a/js/src/instrumentation/livekit/processor.ts b/js/src/instrumentation/livekit/processor.ts deleted file mode 100644 index 1e2b5d68a..000000000 --- a/js/src/instrumentation/livekit/processor.ts +++ /dev/null @@ -1,701 +0,0 @@ -import type { AudioRecordingModule, RecordingOptions } from "./audio"; -import type { LiveKitOptions } from "./options"; -import { resolveAudioOptions } from "./audio-options"; -/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ -import type { - AgentSession, - AgentActivity, - EndOfTurnInfo, - ChatMessage, - AudioFrame, - AudioOutput, -} from "./types"; -import iso from "../../isomorph"; -import { runWithAutoInstrumentationSuppressed } from "../auto-instrumentation-suppression"; -import { - parse, - operation, - isContentKey, - messages, - modelFields, -} from "./schema"; -import { SpeechTracker } from "./speech"; -import { Relationships } from "./relationships"; -import { - Attachment, - currentSpan, - withCurrent, - type Logger, -} from "../../logger"; -import { - installRuntime, - nativeId, - nativeFields, - observe, - seconds, - type NativeSpan, - type Capture, - type Row, -} from "./runtime"; -import { instrumentInput, instrumentOutput, release, select } from "./capture"; -import { - withSpanInstrumentationName, - INSTRUMENTATION_NAMES, -} from "../../span-origin"; - -export { wrapLiveKitSession } from "./wrap"; - -/** - * Export native LiveKit traces through the SDK, with optional bounded audio recording. - * Install in LiveKit's tracer provider INSTEAD OF another Braintrust span processor. - * Media capture requires the normal braintrust/hook.mjs loader (LiveKit 1.9.x). - */ -export class LiveKitSpanProcessor { - private execution = iso.newAsyncLocalStorage<{ model?: Row }>(); - readonly rows = new Map(); - readonly captures = new WeakMap(); - private active = new Set(); - private speakingByTurn = new Map>(); - private jobs = new Set>(); - private uninstall: () => void; - private captureContent: boolean; - private audio?: AudioRecordingModule; - private user: boolean; - private agent: boolean; - private sessions = new Map< - string, - { speech: SpeechTracker; relationships: Relationships } - >(); - private outputCleanups = new Map void>(); - private outputs = new Map(); - - private state(id: string | undefined) { - return id ? this.sessions.get(id) : undefined; - } - constructor( - private options: LiveKitOptions & { - logger: Logger; - recording?: RecordingOptions; - }, - ) { - this.captureContent = options.captureContent ?? false; - const audio = resolveAudioOptions(options); - this.user = audio.user; - this.agent = audio.agent; - this.audio = audio.extension; - this.uninstall = installRuntime(this); - } - /** @internal Applies the native content policy to automatic instrumentation. */ - setContentCapture(enabled: boolean): void { - this.captureContent = enabled; - } - onStart(native: any): void { - const id = nativeId(native); - if (!id || this.rows.has(id) || this.rows.size >= 8192) return; - const parent = native.parentSpanContext?.spanId ?? native.parentSpanId; - const parentRow = this.rows.get(parent); - if (native.name !== "agent_session" && !parentRow) return; - // Native request spans duplicate the public inference lifecycle. - if ( - parentRow && - ["llm_request", "llm_request_run", "tts_request_run"].includes( - native.name, - ) - ) { - const context = native.spanContext(); - this.rows.set(id, { - ...parentRow, - native: { name: native.name, spanContext: () => context }, - parent, - // Retain the native identity for transcript association, not trace grouping. - folded: true, - ended: false, - }); - return; - } - const span = (parentRow?.span ?? this.options.logger).startSpan( - withSpanInstrumentationName( - { - name: operation(native.name), - type: - native.name === "llm_node" - ? ("llm" as const) - : native.name === "function_tool" - ? ("tool" as const) - : ("task" as const), - startTime: seconds(native.startTime), - }, - INSTRUMENTATION_NAMES.LIVEKIT, - ), - ); - // Keep only identity after export; retaining the native SDK span would also - // retain every historical chat context until session/recording finalization. - const nativeContext = native.spanContext(); - const row: Row = { - span, - start: seconds(native.startTime), - native: { name: native.name, spanContext: () => nativeContext }, - parent, - replyTo: parentRow?.replyTo, - session: native.name === "agent_session" ? id : parentRow?.session, - turn: ["agent_turn", "user_turn"].includes(native.name) - ? id - : parentRow?.turn, - }; - this.rows.set(id, row); - if (native.name === "agent_session") { - const relationships = new Relationships(); - this.sessions.set(id, { - relationships, - speech: new SpeechTracker(relationships, this.captureContent), - }); - } - const state = this.state(row.session); - if (["user_speaking", "agent_speaking"].includes(native.name)) - state?.speech.add(row); - const execution = this.execution.getStore(); - if (native.name === "llm_node" && execution) execution.model = row; - if ( - ["tts_node", "agent_speaking"].includes(native.name) && - execution?.model - ) - state?.relationships.link(span, execution.model.span, "generated_by"); - if (["agent_speaking", "user_speaking"].includes(native.name) && row.turn) { - const speaking = this.speakingByTurn.get(row.turn) ?? new Set(); - speaking.add(row); - this.speakingByTurn.set(row.turn, speaking); - } - if (native.name === "agent_session" && (this.user || this.agent)) - span.log({ - metadata: { - "audio.recordings": [ - { - id: "call", - state: "pending", - }, - ], - }, - }); - if (native.name === "function_tool") { - const request = [...this.rows.values()].find( - (r) => - r.span.spanId === currentSpan().spanId && - r.native.name === "llm_node" && - r.session === row.session, - ); - if (request) - state?.relationships.link(span, request.span, "requested_by"); - } - if (native.name === "agent_turn") { - const input = [...this.rows.values()].find( - (r) => - r.span.spanId === currentSpan().spanId && - r.native.name === "user_turn" && - r.session === row.session, - ); - if (input) { - row.replyTo = input.span.spanId; - span.log({ - metadata: { "turn.reply_to": input.span.spanId }, - }); - } - } - if (row.turn) - span.log({ - metadata: { - "turn.id": this.rows.get(row.turn)?.span.spanId, - }, - }); - } - onEnd(native: NativeSpan): void { - const row = this.rows.get(nativeId(native)!); - if (!row) return; - const attrs = nativeFields(native.attributes); - for (const key of Object.keys(attrs)) - if (!this.captureContent && isContentKey(key)) delete attrs[key]; - const metadata = Object.fromEntries( - Object.entries(attrs).filter( - ([key]) => !isContentKey(key) && !key.startsWith("langfuse."), - ), - ); - if (row.folded) { - if (native.name === "llm_request") { - const fields = modelFields(attrs); - row.span.log({ - ...fields, - metadata: { - ...fields.metadata, - }, - }); - } - row.ended = true; - return; - } - const events = (native.events ?? []).slice(0, 256).map((e) => ({ - name: e.name, - time_unix_ms: seconds(e.time) * 1000, - attributes: Object.fromEntries( - Object.entries(nativeFields(e.attributes)).filter( - ([key]) => this.captureContent || !isContentKey(key), - ), - ), - })); - const toolName = - attrs["contrib.livekit.function_tool.name"] ?? attrs["gen_ai.tool.name"]; - row.span.log({ - metadata: { - ...metadata, - ...(events.length ? { "contrib.livekit.events": events } : {}), - }, - ...(toolName - ? { span_attributes: { name: toolName, type: "tool" } } - : {}), - ...(native.status?.code === 2 - ? { - error: this.captureContent - ? (native.status.message ?? "LiveKit operation failed") - : "LiveKit operation failed", - } - : {}), - }); - const fields = modelFields(attrs); - row.span.log({ - metadata: fields.metadata, - ...(native.name === "llm_node" ? { metrics: fields.metrics } : {}), - }); - if (this.captureContent) { - if (native.name === "llm_node") { - const input = - messages(attrs["contrib.livekit.pii.chat_ctx"]) ?? - messages(attrs["gen_ai.input.messages"]); - let output = messages(attrs["gen_ai.output.messages"]); - if (!output?.length) { - const text = attrs["contrib.livekit.pii.response.text"]; - const calls = - parse(attrs["contrib.livekit.pii.response.function_calls"]) ?? - messages(attrs["gen_ai.output.messages"])?.flatMap( - (message) => message.tool_calls ?? [], - ); - output = messages([ - ...(typeof text === "string" - ? [{ role: "assistant", content: text }] - : []), - ...(Array.isArray(calls) - ? calls.map((call) => ({ - ...call, - type: "function_call", - call_id: call.call_id ?? call.callId ?? call.id, - })) - : []), - ]); - } - row.span.log({ - ...(input ? { input } : {}), - ...(output?.length ? { output } : {}), - }); - } else if (native.name === "tts_node") { - const text = attrs["contrib.livekit.pii.input_text"]; - if (typeof text === "string") - row.span.log({ - input: { text }, - output: [{ role: "assistant", content: text }], - }); - } - if (toolName) - row.span.log({ - input: parse( - attrs["contrib.livekit.pii.function_tool.arguments"] ?? - attrs["gen_ai.tool.call.arguments"], - ), - output: parse( - attrs["contrib.livekit.pii.function_tool.output"] ?? - attrs["gen_ai.tool.call.result"], - ), - }); - } - this.correlate(row, attrs); - const replyTo = row.replyTo ?? this.rows.get(row.turn ?? "")?.replyTo; - if (replyTo) row.span.log({ metadata: { "turn.reply_to": replyTo } }); - if (native.name === "user_speaking") { - const capture = [...this.active].find( - (c) => c.row.session === row.session, - ); - if (capture?.user) { - for (const packet of capture.inputTimeline) { - const from = Math.max( - packet.at, - seconds(native.startTime) * 1000 - capture.origin, - ); - const to = Math.min( - packet.at + packet.duration, - seconds(native.endTime) * 1000 - capture.origin, - ); - if (to > from) { - select(capture, nativeId(native)!, from, to, 0); - } - } - this.publishSelections(capture); - } - } - row.end = seconds(native.endTime); - row.ended = true; - row.span.end({ endTime: seconds(native.endTime) }); - if (native.name === "agent_session") { - const capture = [...this.active].find((c) => c.row === row); - if (capture) this.track(this.finish(capture.session)); - else { - if (this.user || this.agent) - row.span.log({ - metadata: { - "audio.recordings": [ - { - id: "call", - state: "omitted", - reason: "capture_hooks_not_observed", - }, - ], - }, - }); - this.clearSession(nativeId(native)!); - } - } else if ( - row.session && - this.rows.get(row.session)?.ended && - ![...this.active].some((c) => c.row.session === row.session) - ) { - this.clearSession(row.session); - } - } - scope(native: any, fn: () => T): T { - const row = this.rows.get(nativeId(native)!); - return row - ? this.execution.run( - { - model: row.native.name === "llm_node" ? row : undefined, - }, - () => withCurrent(row.span, fn), - ) - : fn(); - } - inference(fn: () => T): T { - // Only the inference worker is suppressed, not the pipeline or user tools. - // An installed processor must not suppress unrelated/untracked sessions. - const execution = this.execution.getStore(); - if (!execution) return fn(); - const result = runWithAutoInstrumentationSuppressed(fn); - // LiveKit's inference factory returns [task, generationData]. The data ID - // is the committed message ID, not the provider's response ID. - const data = Array.isArray(result) ? result[1] : undefined; - if (execution.model && typeof data?.id === "string") - this.state(execution.model.session)?.relationships.register( - `generation:${data.id}`, - execution.model.span, - ); - return result; - } - conversation(session: AgentSession, item: ChatMessage): void { - if (item?.type !== "message") return; - const sessionId = nativeId(session.sessionSpan); - const current = [...this.rows.values()].find( - (r) => r.span.spanId === currentSpan().spanId && r.session === sessionId, - ); - const turn = - current?.turn ?? - (item.role === "assistant" - ? nativeId(session.activity?.currentSpeech?._agentTurnSpan) - : undefined); - // LiveKit falls back to the entire generated text on partial playback when - // its output has no synchronized transcript. That fallback is not heard text. - const verified = this.rows.get( - nativeId(session.agentSpeakingSpan) ?? "", - )?.playedText; - const played = - item.role === "assistant" && item.interrupted - ? verified === undefined - ? undefined - : // A pipeline commit can include earlier fully played segments followed - // by the synchronized partial suffix. Preserve that verified prefix too. - item.textContent?.endsWith(verified) - ? item.textContent - : verified - : item.textContent; - this.state(sessionId)?.speech.message( - { ...item, textContent: played }, - { turn }, - ); - } - private context(row: Row, context: unknown) { - const parsed = parse(context) as any; - const items = Array.isArray(parsed) ? parsed : parsed?.items; - if (!Array.isArray(items)) return; - const relationships = this.state(row.session)?.relationships; - for (const item of items) { - if (item?.type === "function_call_output") { - const callId = item.call_id ?? item.callId; - if (typeof callId === "string") - relationships?.reference( - row.span, - `tool:${callId}`, - "consumes_tool_result", - ); - } else if ( - typeof item?.id === "string" && - (!item.type || item.type === "message") - ) - relationships?.reference( - row.span, - `speech:${item.id}`, - "input_context", - ); - } - } - private correlate(row: Row, attrs: Record) { - const relationships = this.state(row.session)?.relationships; - const calls = - parse(attrs["contrib.livekit.pii.response.function_calls"]) ?? - messages(attrs["gen_ai.output.messages"])?.flatMap( - (message) => message.tool_calls ?? [], - ); - if (Array.isArray(calls)) - for (const call of calls) { - const id = call?.call_id ?? call?.callId ?? call?.id; - if (typeof id === "string") - relationships?.register(`request:${id}`, row.span); - } - const callId = - attrs["gen_ai.tool.call.id"] ?? attrs["contrib.livekit.function_tool.id"]; - if (row.native.name === "function_tool" && typeof callId === "string") { - relationships?.register(`tool:${callId}`, row.span); - relationships?.reference(row.span, `request:${callId}`, "requested_by"); - } - if (row.native.name === "llm_node") - this.context(row, attrs["contrib.livekit.pii.chat_ctx"]); - } - - begin(session: AgentSession): void { - if ( - this.captures.has(session) || - !this.audio || - (!this.user && !this.agent) - ) - return; - const row = this.rows.get(nativeId(session.sessionSpan)!); - if (!row) return; - const voice = this.audio.createVoiceRecording({ - options: this.options.recording, - span: row.span, - flush: () => this.options.logger.flush(), - createAttachment: (options) => new Attachment(options), - snapshot: () => ({ - origin: capture.origin, - basis: "local_input_arrival_and_output_playout", - source: (channel) => ({ - channel_index: channel, - boundary: channel === 0 ? "session_input" : "local_audio_output", - }), - metadata: { - "contrib.livekit.audio.input_formats": [ - ...(capture.recording.formats.get(0)?.values() ?? []), - ], - "contrib.livekit.audio.output_formats": [ - ...(capture.recording.formats.get(1)?.values() ?? []), - ], - }, - }), - speechSelections: () => this.speechSelections(capture), - }); - const capture: Capture = { - session, - row, - user: this.user, - agent: this.agent, - origin: Date.now(), - recording: voice.audio, - timeline: this.audio.timeline, - inputTimeline: [], - inputDurationMs: 0, - outputHolds: new Map(), - closed: false, - selections: new Map(), - events: new Map(), - cleanups: [], - }; - capture.publishSelections = () => voice.publishSelections(); - this.captures.set(session, capture); - this.active.add(capture); - row.span.log({ - metadata: { "audio.recordings": [{ id: "call", state: "pending" }] }, - }); - } - input(activity: AgentActivity, stream: ReadableStream): void { - const capture = this.captures.get(activity.agentSession); - if (capture) instrumentInput(capture, stream); - } - output(session: AgentSession): void { - const sink = session.output?.audio; - if (this.outputs.get(session) !== sink) { - this.outputCleanups.get(session)?.(); - this.outputCleanups.delete(session); - this.outputs.delete(session); - if (sink) { - const finished = (event: any) => - observe(() => { - const row = this.rows.get( - nativeId(session.agentSpeakingSpan) ?? "", - ); - if (row) - row.playedText = - this.captureContent && - typeof event.synchronizedTranscript === "string" - ? event.synchronizedTranscript - : undefined; - }); - sink.on("playbackFinished", finished); - this.outputs.set(session, sink); - this.outputCleanups.set(session, () => - sink.off?.("playbackFinished", finished), - ); - } - } - const capture = this.captures.get(session); - if (capture) - instrumentOutput(capture, session.output?.audio, this.captureContent); - } - userTurn(activity: AgentActivity, info: EndOfTurnInfo): void { - const turnId = nativeId(info.userTurnSpan); - if (turnId && info.startedSpeakingAt !== undefined) - this.state(nativeId(activity.agentSession.sessionSpan))?.speech.recognize( - turnId, - info.startedSpeakingAt, - ); - const c = this.captures.get(activity.agentSession); - if (!c || c.closed || !c.user) return; - const id = nativeId(info.userTurnSpan); - // Native recognition speech boundaries share the local wall clock. Clip actual captured - // samples; never derive selection from the broader user_turn span's start/end timestamps. - if ( - !id || - !Number.isFinite(info.startedSpeakingAt) || - !Number.isFinite(info.stoppedSpeakingAt) - ) - return; - for (const p of c.inputTimeline) { - const from = Math.max(p.at, info.startedSpeakingAt! - c.origin); - const to = Math.min( - p.at + p.duration, - info.stoppedSpeakingAt! - c.origin, - ); - if (to > from) select(c, id, from, to, 0); - } - this.publishSelections(c); - } - finish(session: AgentSession): Promise { - this.outputCleanups.get(session)?.(); - this.outputCleanups.delete(session); - this.outputs.delete(session); - const c = this.captures.get(session); - if (!c) return Promise.resolve(); - if (!c.finish) { - c.finish = this.finalize(c); - this.track(c.finish); - } - return c.finish; - } - private track(job: Promise) { - this.jobs.add(job); - void job.finally(() => this.jobs.delete(job)).catch(() => {}); - } - private publishSelections(c: Capture) { - c.publishSelections?.(); - } - private *speechSelections(c: Capture) { - for (const [native, intervals] of c.selections) { - if (this.rows.get(native)?.folded) continue; - const span = this.rows.get(native)?.span ?? c.externalSpans?.get(native); - if (!span) continue; - yield { - span, - intervals, - alias: true, - metadata: c.events.has(native) - ? { "contrib.livekit.playback_events": c.events.get(native) } - : {}, - }; - const speaking = [...(this.speakingByTurn.get(native) ?? [])]; - if ( - speaking.length === 1 && - !c.selections.has(nativeId(speaking[0].native)!) - ) - yield { span: speaking[0].span, intervals }; - } - } - private async finalize(c: Capture) { - for (const cleanup of c.cleanups.splice(0)) observe(cleanup); - c.closed = true; - const id = nativeId(c.row.native)!; - try { - await c.recording.finish(); - c.row.span.log({ - metadata: { - "contrib.livekit.audio.input_clock": - "arrival_anchored_ordered_samples", - }, - }); - } finally { - release(c); - this.captures.delete(c.session); - c.session = undefined; - this.active.delete(c); - this.clearSession(id); - } - } - private clearSession(id: string) { - // Native children (notably tools) can outlive session end. Retain ownership until - // every native operation finishes, even after the recording has finalized. - if ([...this.rows.values()].some((row) => row.session === id && !row.ended)) - return; - const root = this.rows.get(id); - if (root) this.state(id)?.speech.finish(root.span); - for (const [key, row] of this.rows) - if (row.session === id) { - this.rows.delete(key); - if (row.turn) this.speakingByTurn.delete(row.turn); - } - this.sessions.delete(id); - } - async forceFlush(): Promise { - await Promise.all([...this.active].map((c) => c.recording.drain())); - await Promise.all([...this.jobs]); - await this.options.logger.flush(); - } - async shutdown(): Promise { - await Promise.all([...this.active].map((c) => this.finish(c.session))); - for (const row of this.rows.values()) - if (!row.ended && !row.folded) { - row.span.log({ - metadata: { - ...(row.turn === nativeId(row.native) - ? { "turn.incomplete": true } - : { "contrib.livekit.incomplete": true }), - "contrib.livekit.termination": "processor_shutdown", - }, - }); - row.span.end(); - } - for (const [id, state] of this.sessions) { - const root = this.rows.get(id); - if (root) state.speech.finish(root.span); - } - this.rows.clear(); - this.speakingByTurn.clear(); - this.sessions.clear(); - for (const cleanup of this.outputCleanups.values()) cleanup(); - this.outputCleanups.clear(); - this.outputs.clear(); - try { - await this.forceFlush(); - } finally { - this.uninstall(); - } - } -} diff --git a/js/src/instrumentation/livekit/relationships.ts b/js/src/instrumentation/livekit/relationships.ts deleted file mode 100644 index 9e61bf5bb..000000000 --- a/js/src/instrumentation/livekit/relationships.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { debugLogger } from "../../debug-logger"; -import type { Span } from "../../logger"; - -type Relationship = - | "input_context" - | "requested_by" - | "consumes_tool_result" - | "generated_by" - | "transcribed_by"; -type Link = { - context: { traceId: string; spanId: string; traceFlags: number }; - attributes: { "braintrust.relationship.type": Relationship }; -}; - -/** Session-local identity resolution. A late transcript/tool can resolve an earlier link. */ -export class Relationships { - private warned = false; - private targets = new Map(); - private waiting = new Map>(); - private links = new Map>(); - - register(id: string, target: Span): void { - this.targets.set(id, target); - for (const [source, relationship] of this.waiting.get(id) ?? []) - this.link(source, target, relationship); - this.waiting.delete(id); - } - - reference(source: Span, id: string, relationship: Relationship): void { - const target = this.targets.get(id); - if (target) this.link(source, target, relationship); - else if (this.waiting.size < 8192) { - const waiting = this.waiting.get(id) ?? new Map(); - waiting.set(source, relationship); - this.waiting.set(id, waiting); - } - } - - link(source: Span, target: Span, relationship: Relationship): void { - if (source.spanId === target.spanId) return; - // Legacy UUID ID generators cannot be represented as OTel contexts. Do not - // fabricate an identity that would point at a different exported span. - if ( - !/^[0-9a-f]{32}$/.test(target.rootSpanId) || - !/^[0-9a-f]{16}$/.test(target.spanId) || - /^0+$/.test(target.rootSpanId) || - /^0+$/.test(target.spanId) - ) { - if (!this.warned) - debugLogger.warn( - "LiveKit span links require OpenTelemetry-compatible Braintrust IDs; disable BRAINTRUST_LEGACY_IDS.", - ); - this.warned = true; - return; - } - const links = this.links.get(source) ?? new Map(); - const key = `${relationship}:${target.rootSpanId}:${target.spanId}`; - if (links.has(key)) return; - links.set(key, { - context: { - traceId: target.rootSpanId, - spanId: target.spanId, - traceFlags: 1, - }, - attributes: { "braintrust.relationship.type": relationship }, - }); - this.links.set(source, links); - // Prototype transport until hosted queries expose top-level OTel links. - source.log({ metadata: { links: [...links.values()] } }); - } -} diff --git a/js/src/instrumentation/livekit/runtime.ts b/js/src/instrumentation/livekit/runtime.ts deleted file mode 100644 index 550ec647f..000000000 --- a/js/src/instrumentation/livekit/runtime.ts +++ /dev/null @@ -1,137 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ -// Structural boundaries intentionally avoid a runtime dependency on LiveKit/OTel. -import { debugLogger } from "../../debug-logger"; -import type { - AgentSession, - AgentActivity, - EndOfTurnInfo, - ChatMessage, - AudioFrame, -} from "./types"; -import type { AudioRecordingModule, Recording } from "./audio"; -import type { Span } from "../../logger"; -import type { Message } from "./schema"; -import type { LiveKitOptions } from "./options"; - -export type NativeSpan = { - name: string; - spanContext(): { spanId: string; traceId: string; traceFlags?: number }; - parentSpanContext?: { spanId: string }; - parentSpanId?: string; - startTime: [number, number]; - endTime: [number, number]; - attributes: Record; - events: { - name: string; - time: [number, number]; - attributes?: Record; - }[]; - status: { code: number; message?: string }; -}; -export type { Packet } from "./audio"; -import type { Selection } from "./audio"; -export type { Selection } from "./audio"; -export type Row = { - span: Span; - native: Pick; - parent?: string; - turn?: string; - session?: string; - playedText?: string; - start?: number; - end?: number; - ended?: boolean; - folded?: boolean; - replyTo?: string; - messages?: Map; -}; -export type Capture = { - session: any; - row: Row; - user: boolean; - agent: boolean; - origin: number; - recording: Recording; - timeline: AudioRecordingModule["timeline"]; - inputTimeline: { - at: number; - duration: number; - rate: number; - channels: number; - sampleStart: number; - }[]; - inputDurationMs: number; - outputHolds: Map; - frameCount?: number; - inputEnd?: number; - inputStream?: object; - closed: boolean; - selections: Map; - events: Map; - externalSpans?: Map; - cleanups: (() => void)[]; - finish?: Promise; - publishSelections?: () => void; -}; -interface LiveKitRuntime { - automatic?: boolean; - rows: Map; - captures: WeakMap; - begin(session: AgentSession): void; - input(activity: AgentActivity, stream: ReadableStream): void; - output(session: AgentSession): void; - userTurn(activity: AgentActivity, info: EndOfTurnInfo): void; - finish(session: AgentSession): Promise; - conversation(session: AgentSession, item: ChatMessage): void; - scope(span: any, fn: () => T): T; - inference(fn: () => T): T; -} -const key = Symbol.for("braintrust.livekit.runtime"); -export function runtime(): LiveKitRuntime | undefined { - return (globalThis as any)[key]; -} -export function installRuntime(value: LiveKitRuntime): () => void { - if (runtime()) - throw new Error("Only one LiveKitSpanProcessor may be active per process"); - (globalThis as any)[key] = value; - return () => { - if (runtime() === value) delete (globalThis as any)[key]; - }; -} -export function observe(fn: () => void): void { - try { - fn(); - } catch { - debugLogger.debug("LiveKit instrumentation observation failed"); - } -} -export const nativeId = (span: any): string | undefined => - span?.spanContext?.().spanId; -export const seconds = (time: [number, number]) => time[0] + time[1] / 1e9; -export const nativeFields = (fields: Record = {}) => - Object.fromEntries( - Object.entries(fields).map(([k, v]) => [ - k.startsWith("lk.") ? `contrib.livekit.${k.slice(3)}` : k, - v, - ]), - ); - -// The Node entrypoint supplies platform-specific setup without extending the -// core isomorphic interface with integration-specific operations. -type Prepare = ( - tracer: unknown, - options: LiveKitOptions, - allowContent: boolean, -) => boolean; -const prepareKey = Symbol.for("braintrust.livekit.prepare"); -export function setPreparation(prepare: Prepare): void { - (globalThis as any)[prepareKey] = prepare; -} -export function prepare( - tracer: unknown, - options: LiveKitOptions, - allowContent: boolean, -): boolean { - const setup: Prepare | undefined = (globalThis as any)[prepareKey]; - return setup?.(tracer, options, allowContent) ?? false; -} diff --git a/js/src/instrumentation/livekit/schema.ts b/js/src/instrumentation/livekit/schema.ts deleted file mode 100644 index 7c9d1385f..000000000 --- a/js/src/instrumentation/livekit/schema.ts +++ /dev/null @@ -1,174 +0,0 @@ -// LiveKit's native OTel payloads are JSON values, not OpenAI message objects. -// Normalize just the conversational surface; audio bytes are handled by capture. -import { isObject } from "../../../util"; - -export function parse(value: unknown): unknown { - if (typeof value !== "string") return value; - try { - return JSON.parse(value); - } catch { - return value; - } -} -export function operation(name: string): string { - switch (name) { - case "user_turn": - return "user_turn"; - case "agent_turn": - return "agent_turn"; - case "user_speaking": - return "user_speech"; - case "agent_speaking": - return "agent_speech"; - case "stt_node": - return "stt"; - case "llm_node": - return "llm_response"; - case "tts_node": - return "tts"; - default: - return `livekit.${name}`; - } -} -export function isContentKey(key: string): boolean { - return ( - key.includes(".pii.") || - /^gen_ai\.(input\.|output\.|system_instructions|tool\.(definitions|call\.(arguments|result)|description))/.test( - key, - ) - ); -} - -export type Message = { - role: string; - content: string | null; - tool_calls?: { - id: string; - type: "function"; - function: { name: string; arguments: string }; - }[]; - tool_call_id?: string; -}; -function stringify(value: unknown): string { - return typeof value === "string" ? value : (JSON.stringify(value) ?? ""); -} -function text(value: unknown): string { - if (typeof value === "string") return value; - if (Array.isArray(value)) return value.map(text).join(""); - if (!isObject(value)) return ""; - if (value.type === "text") - return typeof value.content === "string" - ? value.content - : typeof value.text === "string" - ? value.text - : ""; - // Do not serialize inline image/audio frames into text or metadata. - return typeof value.transcript === "string" ? value.transcript : ""; -} -export function messages(value: unknown): Message[] | undefined { - const parsed = parse(value); - const items = Array.isArray(parsed) - ? parsed - : isObject(parsed) && Array.isArray(parsed.items) - ? parsed.items - : undefined; - if (!items) return; - const result: Message[] = []; - for (const item of items) { - if (!isObject(item)) continue; - if (item.type === "function_call") { - const id = item.call_id ?? item.callId; - if (typeof id === "string" && typeof item.name === "string") - result.push({ - role: "assistant", - content: null, - tool_calls: [ - { - id, - type: "function", - function: { - name: item.name, - arguments: stringify(item.arguments ?? item.args), - }, - }, - ], - }); - } else if (item.type === "function_call_output") { - const id = item.call_id ?? item.callId; - if (typeof id === "string") - result.push({ - role: "tool", - content: stringify(item.output), - tool_call_id: id, - }); - } else if (typeof item.role === "string") { - const parts = Array.isArray(item.parts) ? item.parts : []; - const message: Message = { - role: item.role, - content: text(item.content ?? parts) || null, - }; - for (const part of parts) { - if (!isObject(part)) continue; - if ( - part.type === "tool_call" && - typeof part.id === "string" && - typeof part.name === "string" - ) { - (message.tool_calls ??= []).push({ - id: part.id, - type: "function", - function: { name: part.name, arguments: stringify(part.arguments) }, - }); - } else if ( - part.type === "tool_call_response" && - typeof part.id === "string" - ) { - message.tool_call_id = part.id; - message.content = stringify(part.response); - } - } - result.push(message); - } - } - return result; -} - -export function modelFields(attrs: Record) { - const metrics: Record = {}; - for (const [target, sources] of Object.entries({ - prompt_tokens: ["gen_ai.usage.input_tokens"], - completion_tokens: ["gen_ai.usage.output_tokens"], - cache_read_input_tokens: [ - "gen_ai.usage.cache_read.input_tokens", - "gen_ai.usage.input_cached_tokens", - ], - cache_creation_input_tokens: ["gen_ai.usage.cache_write.input_tokens"], - reasoning_tokens: [ - "gen_ai.usage.reasoning.output_tokens", - "gen_ai.usage.reasoning_tokens", - ], - time_to_first_token: [ - "contrib.livekit.response.ttft", - "gen_ai.response.time_to_first_chunk", - ], - })) { - const value = sources - .map((key) => attrs[key]) - .find( - (value) => - typeof value === "number" && Number.isFinite(value) && value >= 0, - ); - if (typeof value === "number") metrics[target] = value; - } - if ( - metrics.prompt_tokens !== undefined && - metrics.completion_tokens !== undefined - ) - metrics.tokens = metrics.prompt_tokens + metrics.completion_tokens; - const metadata: Record = {}; - const model = attrs["gen_ai.response.model"] ?? attrs["gen_ai.request.model"]; - const provider = attrs["gen_ai.provider.name"]; - if (typeof model === "string") metadata.model = model; - if (typeof provider === "string") metadata.provider = provider; - return { metrics, metadata }; -} diff --git a/js/src/instrumentation/livekit/speech.ts b/js/src/instrumentation/livekit/speech.ts deleted file mode 100644 index d528d169a..000000000 --- a/js/src/instrumentation/livekit/speech.ts +++ /dev/null @@ -1,132 +0,0 @@ -import type { Span } from "../../logger"; -import type { Row } from "./runtime"; -import type { ChatMessage } from "./types"; -import { Relationships } from "./relationships"; - -/** Native speech owns transcripts; transcript arrival never changes its timing. */ -export class SpeechTracker { - private rows: Row[] = []; - private recognition = new Map(); - private owners = new Map(); - private messageIds = new Map>(); - private pending = new Map(); - - constructor( - private relationships: Relationships, - private content: boolean, - ) {} - - add(row: Row): void { - this.rows.push(row); - for (const { item, turn } of this.pending.values()) - if (item.metrics?.startedSpeakingAt !== undefined) - this.message(item, { turn }); - } - - recognize(turn: string, startedAt: number): void { - const speech = this.rows.filter( - (row) => row.native.name === "user_speaking" && row.turn === turn, - ); - if (speech.length !== 1 || !Number.isFinite(startedAt)) return; - const start = startedAt / 1000; - this.recognition.set( - start, - !this.recognition.has(start) || this.recognition.get(start) === speech[0] - ? speech[0] - : undefined, - ); - } - - finish(root: Span): void { - if (this.pending.size) - root.log({ - metadata: { - "contrib.livekit.unassociated_messages": [ - ...this.pending.values(), - ].map(({ item }) => ({ - id: item.id, - role: item.role, - text: item.textContent, - started_speaking_at: item.metrics?.startedSpeakingAt, - })), - }, - }); - } - - message( - item: ChatMessage, - { - turn, - speech: observed, - transcribed = false, - }: { turn?: string; speech?: Row; transcribed?: boolean } = {}, - ): Row | undefined { - // Keep only transcript observations, never ChatMessage audio/context payloads. - item = { - type: item.type, - id: item.id, - role: item.role, - textContent: this.content ? item.textContent : undefined, - interrupted: item.interrupted, - metrics: item.metrics && { - startedSpeakingAt: item.metrics.startedSpeakingAt, - }, - }; - if (item.role !== "user" && item.role !== "assistant") return; - const name = item.role === "user" ? "user_speaking" : "agent_speaking"; - const start = item.metrics?.startedSpeakingAt; - const candidates = this.rows.filter((row) => { - if (row.native.name !== name) return false; - if (start !== undefined && Number.isFinite(start)) - return ( - row.start !== undefined && - start >= row.start - 0.001 && - (row.end === undefined || start <= row.end + 0.001) - ); - if (turn) return row.turn === turn; - // A transcription event is evidence of speech; a conversation message can - // instead be typed input. Do not assign that to old audio. - return transcribed - ? !row.ended || !this.messageIds.has(row) - : item.role === "assistant" && !row.ended; - }); - const row = - this.owners.get(item.id) ?? - (item.role === "user" && start !== undefined - ? this.recognition.get(start) - : undefined) ?? - (candidates.length === 1 ? candidates[0] : observed); - if (!row) { - if (this.pending.size < 8192) this.pending.set(item.id, { item, turn }); - return; - } - this.pending.delete(item.id); - this.owners.set(item.id, row); - const ids = this.messageIds.get(row) ?? new Set(); - ids.add(item.id); - this.messageIds.set(row, ids); - this.relationships.register(`speech:${item.id}`, row.span); - if (item.role === "assistant") - this.relationships.reference( - row.span, - `generation:${item.id}`, - "generated_by", - ); - row.messages ??= new Map(); - if (this.content && item.textContent !== undefined) { - row.messages.set(item.id, { role: item.role, content: item.textContent }); - row.span.log( - item.role === "user" - ? { input: [...row.messages.values()] } - : { output: [...row.messages.values()] }, - ); - } - row.span.log({ - metadata: { - "contrib.livekit.message_ids": [...ids], - ...(item.interrupted ? { "contrib.livekit.interrupted": true } : {}), - }, - }); - return row; - } -} diff --git a/js/src/instrumentation/livekit/types.ts b/js/src/instrumentation/livekit/types.ts deleted file mode 100644 index 1648c317b..000000000 --- a/js/src/instrumentation/livekit/types.ts +++ /dev/null @@ -1,42 +0,0 @@ -import type { NativeSpan } from "./runtime"; - -/** Relevant LiveKit 1.9.x boundaries, vendored to avoid a runtime dependency. */ -export interface AudioFrame { - data: Int16Array; - sampleRate: number; - channels: number; -} -export interface SpeechHandle { - _agentTurnSpan?: NativeSpan; -} -export interface AgentSession { - sessionSpan?: NativeSpan; - agentSpeakingSpan?: NativeSpan; - _userSpeakingSpan?: NativeSpan; - activity?: AgentActivity; - output?: { audio?: AudioOutput | null }; -} -export interface AgentActivity { - agentSession: AgentSession; - currentSpeech?: SpeechHandle; -} -export interface AudioOutput { - captureFrame(frame: AudioFrame): Promise; - flush(): unknown; - clearBuffer(): unknown; - on(event: string, callback: (...args: never[]) => void): unknown; - off?(event: string, callback: (...args: never[]) => void): unknown; -} -export interface EndOfTurnInfo { - userTurnSpan?: NativeSpan; - startedSpeakingAt?: number; - stoppedSpeakingAt?: number; -} -export interface ChatMessage { - type: string; - id: string; - role?: string; - textContent?: string; - interrupted?: boolean; - metrics?: { startedSpeakingAt?: number; stoppedSpeakingAt?: number }; -} diff --git a/js/src/instrumentation/livekit/wrap.ts b/js/src/instrumentation/livekit/wrap.ts deleted file mode 100644 index 3f93bd76c..000000000 --- a/js/src/instrumentation/livekit/wrap.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions */ -import type { AudioFrame, ChatMessage, EndOfTurnInfo } from "./types"; -import { livekitChannels } from "../plugins/livekit-channels"; - -const wrapped = Symbol.for("braintrust.livekit.wrapped"); -function method( - target: any, - name: string, - channel: Exclude, - before?: () => void, - receiver?: object, -) { - const original = target[name]; - if (typeof original !== "function" || original[wrapped]) return; - const fn = function (this: unknown, ...args: unknown[]) { - before?.(); - const self = receiver ?? this; - if (channel === "inference") - return livekitChannels.inference.invoke(original, self, args, {}); - if (channel === "conversation") - return livekitChannels.conversation.invoke( - original, - self, - args as [ChatMessage], - {}, - ); - if (channel === "input") - return livekitChannels.input.invoke( - original, - self, - args as [ReadableStream], - {}, - ); - if (channel === "userCompleted") - return livekitChannels.userCompleted.invoke( - original, - self, - args as [EndOfTurnInfo, unknown?], - {}, - ); - if (channel === "userTurn") - return livekitChannels.userTurn.invoke( - original, - self, - args as [EndOfTurnInfo], - {}, - ); - if (channel === "output") { - return livekitChannels[channel].invoke(original, self, args, {}); - } - return livekitChannels[channel].invoke(original, self, args, {}); - }; - Object.defineProperty(fn, wrapped, { value: true }); - target[name] = fn; -} -/** Wrap a LiveKit 1.9.x AgentSession before start when the Node loader cannot be used. */ -export function wrapLiveKitSession(session: T): T { - const target = session as any; - if ( - typeof target._startImpl !== "function" || - typeof target._conversationItemAdded !== "function" - ) { - throw new TypeError("Expected a LiveKit 1.9.x AgentSession"); - } - method(target, "_startImpl", "start"); - method(target, "closeImpl", "close"); - method(target, "onAudioOutputChanged", "output"); - // AgentOutput saves the callback during construction, before manual wrapping. - if (target.output) - method(target.output, "audioChanged", "output", undefined, target); - // Native handoff inserts a conversation item after assigning the next activity, - // before it starts or attaches input. Use that lifecycle for each new activity. - method(target, "_conversationItemAdded", "conversation", () => { - const activity = target.activity; - if (!activity) return; - // Without a loader, wrap the node entrypoints that start provider work. - if (activity.agent) { - method(activity.agent, "llmNode", "inference"); - method(activity.agent, "ttsNode", "inference"); - } - for (const [name, channel] of [ - ["attachAudioInput", "input"], - ["_startSessionImpl", "activity"], - ["onEndOfTurn", "userTurn"], - ["userTurnCompleted", "userCompleted"], - ["_pipelineReplyTaskImpl", "pipeline"], - ] as const) - method(activity, name, channel); - }); - return session; -} diff --git a/js/src/instrumentation/plugins/livekit-channels.ts b/js/src/instrumentation/plugins/livekit-channels.ts deleted file mode 100644 index 1ccc732d7..000000000 --- a/js/src/instrumentation/plugins/livekit-channels.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { AudioFrame, EndOfTurnInfo, ChatMessage } from "../livekit/types"; -import { channel, defineInterceptor } from "../core/interceptor-definitions"; -export const livekitChannels = defineInterceptor("@livekit/agents", { - trace: channel({ - channelName: "telemetry.trace", - }), - provider: channel({ - channelName: "telemetry.provider", - }), - inference: channel({ - channelName: "generation.inference", - }), - conversation: channel<[ChatMessage], unknown>({ - channelName: "session.conversation", - }), - userCompleted: channel<[EndOfTurnInfo, unknown?], unknown>({ - channelName: "activity.userCompleted", - }), - pipeline: channel({ - channelName: "activity.pipeline", - }), - start: channel({ - channelName: "session.start", - }), - close: channel({ - channelName: "session.close", - }), - input: channel<[ReadableStream], unknown>({ - channelName: "activity.input", - }), - output: channel({ - channelName: "session.output", - }), - activity: channel({ - channelName: "activity.start", - }), - userTurn: channel<[EndOfTurnInfo], unknown>({ - channelName: "activity.userTurn", - }), -}); diff --git a/js/src/instrumentation/plugins/livekit-interceptors.ts b/js/src/instrumentation/plugins/livekit-interceptors.ts new file mode 100644 index 000000000..b430cc8bd --- /dev/null +++ b/js/src/instrumentation/plugins/livekit-interceptors.ts @@ -0,0 +1,57 @@ +import type { + AudioFrame, + EndOfTurnInfo, + ChatMessage, + LiveKitSpan, + TraceOptions, + PipelineOptions, + SpeechEvent, +} from "../../vendor-sdk-types/livekit"; +import { channel, defineInterceptor } from "../core/interceptor-definitions"; + +export const livekitChannels = defineInterceptor("@livekit/agents", { + startSpan: channel<[TraceOptions], LiveKitSpan>({ + channelName: "telemetry.startSpan", + }), + startActiveSpan: channel< + [(span: LiveKitSpan) => Promise, TraceOptions], + Promise + >({ channelName: "telemetry.startActiveSpan" }), + startActiveSpanSync: channel< + [(span: LiveKitSpan) => unknown, TraceOptions], + unknown + >({ channelName: "telemetry.startActiveSpanSync" }), + inference: channel({ + channelName: "generation.inference", + }), + conversation: channel<[ChatMessage], void>({ + channelName: "session.conversation", + }), + userCompleted: channel<[EndOfTurnInfo, unknown?], Promise>({ + channelName: "activity.userCompleted", + }), + pipeline: channel<[PipelineOptions], Promise>({ + channelName: "activity.pipeline", + }), + start: channel<[unknown], Promise>({ + channelName: "session.start", + }), + close: channel<[string, unknown?, boolean?], Promise>({ + channelName: "session.close", + }), + input: channel<[ReadableStream], void>({ + channelName: "activity.input", + }), + activity: channel<[unknown], Promise>({ + channelName: "activity.start", + }), + userTurn: channel<[EndOfTurnInfo], Promise>({ + channelName: "activity.userTurn", + }), + speechStart: channel<[unknown?], void>({ + channelName: "activity.speechStart", + }), + stt: channel<[SpeechEvent], void>({ + channelName: "recognition.stt", + }), +}); diff --git a/js/src/instrumentation/plugins/livekit-plugin.test.ts b/js/src/instrumentation/plugins/livekit-plugin.test.ts new file mode 100644 index 000000000..c1016d26d --- /dev/null +++ b/js/src/instrumentation/plugins/livekit-plugin.test.ts @@ -0,0 +1,1208 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { + afterEach, + beforeAll, + beforeEach, + describe, + expect, + test, + vi, +} from "vitest"; +import { EventEmitter } from "node:events"; +import { configureNode } from "../../node/config"; +import { + Attachment, + _exportsForTestingOnly as logging, + initLogger, +} from "../../logger"; +import type { SpanTime } from "../../vendor-sdk-types/livekit"; +import { DEFAULT_STREAMING_ATTACHMENT_BUFFER_BYTES } from "../config"; +import { channel, defineInterceptor } from "../core/interceptor-definitions"; +import { traceAsyncCall } from "../core/tracing"; +import { _exportsForTestingOnly } from "./livekit-plugin"; + +configureNode(); +const { LiveKitTracing, Recording } = _exportsForTestingOnly; + +let logger: ReturnType; +let tracing: InstanceType; +let uploads: Uint8Array[]; +let now: number; + +beforeAll(() => logging.simulateLoginForTests()); +beforeEach(() => { + logger = logging.useTestBackgroundLogger(); + initLogger({ + projectName: "tmp-luca-livekit-unit", + projectId: "test-project-id", + }); + vi.stubEnv("BRAINTRUST_CAPTURE_ATTACHMENTS", ""); + now = 1_000_000; + vi.spyOn(Date, "now").mockImplementation(() => now); + uploads = []; + vi.spyOn(Attachment.prototype, "upload").mockImplementation(async function ( + this: Attachment, + ) { + uploads.push(new Uint8Array(await (await this.data()).arrayBuffer())); + return { upload_status: "done" }; + }); + tracing = new LiveKitTracing(DEFAULT_STREAMING_ATTACHMENT_BUFFER_BYTES); +}); +afterEach(async () => { + await tracing.shutdown(); + logging.clearTestBackgroundLogger(); + vi.unstubAllEnvs(); + vi.restoreAllMocks(); +}); + +type NativeSpan = ReturnType; +function nativeSpan() { + return { + spanContext: () => ({ spanId: "0000000000000000" }), + isRecording: () => false, + setAttribute() { + return this; + }, + setAttributes() { + return this; + }, + setStatus() { + return this; + }, + addEvent() { + return this; + }, + recordException() {}, + end: vi.fn(), + }; +} +/** Starts a native span the way LiveKit's tracer reports it. */ +function start( + name: string, + parent?: NativeSpan, + attributes: Record = {}, + startTime: SpanTime = [1, 0], +) { + const span = nativeSpan(); + tracing.observeSpan(span, { + name, + attributes, + startTime, + ...(parent ? { context: { getValue: () => parent } } : {}), + }); + return span; +} +async function rows() { + const all = (await logger.drain()) as any[]; + const named = (name: string) => + all.filter((row) => row.span_attributes?.name === name); + return { + all, + named, + one(name: string) { + const matches = named(name); + expect(matches, name).toHaveLength(1); + return matches[0]; + }, + }; +} +const frame = (samples = 480, value = 1234) => ({ + data: new Int16Array(samples).fill(value), + sampleRate: 24000, + channels: 1, +}); +const channelSamples = (bytes: Uint8Array, channel: number) => { + const view = new DataView(bytes.buffer); + return Array.from({ length: bytes.length / 4 }, (_, i) => + view.getInt16((i * 2 + channel) * 2, true), + ); +}; + +describe("tracing", () => { + test("maps a voice conversation to standard spans, messages, metrics and turn links", async () => { + const root = start("agent_session"); + const user = start("user_turn", root); + const agent = tracing.scope(user, () => start("agent_turn", root)); + const model = start("llm_node", agent, { + "lk.pii.chat_ctx": JSON.stringify({ + items: [ + { type: "message", id: "m1", role: "user", content: ["Order 1042?"] }, + { type: "function_call_output", call_id: "old", output: "Sunday" }, + ], + }), + "gen_ai.request.model": "gpt-4.1-nano", + "gen_ai.provider.name": "openai", + "gen_ai.system_instructions": "private instructions", + "lk.response.ttft": 0.2, + "lk.pii.response.text": "", + "lk.pii.response.function_calls": JSON.stringify([ + { call_id: "call-1", name: "lookup_order", arguments: '{"id":1042}' }, + ]), + }); + // Native request spans fold into the model span, contributing usage. + start("llm_request", model, { + "gen_ai.usage.input_tokens": 10, + "gen_ai.usage.output_tokens": 3, + }).end([2, 0]); + model.end([2, 0]); + const tool = start("function_tool", agent, { + "lk.function_tool.name": "lookup_order", + "lk.pii.function_tool.arguments": '{"id":1042}', + "lk.pii.function_tool.output": '{"delivery":"Friday"}', + }); + const tts = start("tts_node", agent, { + "lk.pii.input_text": "It arrives Friday.", + }); + for (const span of [tool, tts, agent, user, root]) span.end([3, 0]); + + const { all, one } = await rows(); + expect(all.map((r) => r.span_attributes.name).sort()).toEqual([ + "agent_turn", + "llm_response", + "lookup_order", + "session", + "tts", + "user_turn", + ]); + const [session, userTurn, agentTurn] = [ + "session", + "user_turn", + "agent_turn", + ].map(one); + expect(userTurn.span_parents).toEqual([session.span_id]); + expect(agentTurn.span_parents).toEqual([session.span_id]); + expect(agentTurn.metadata).toMatchObject({ + "turn.id": agentTurn.span_id, + "turn.reply_to": userTurn.span_id, + }); + const llm = one("llm_response"); + expect(llm).toMatchObject({ + span_parents: [agentTurn.span_id], + span_attributes: { type: "llm" }, + input: [ + { role: "user", content: "Order 1042?" }, + { role: "tool", content: "Sunday", tool_call_id: "old" }, + ], + output: [ + { + role: "assistant", + content: null, + tool_calls: [ + { + id: "call-1", + type: "function", + function: { name: "lookup_order", arguments: '{"id":1042}' }, + }, + ], + }, + ], + metrics: { + prompt_tokens: 10, + completion_tokens: 3, + tokens: 13, + time_to_first_token: 0.2, + start: 1, + end: 2, + }, + metadata: { + model: "gpt-4.1-nano", + provider: "openai", + "turn.id": agentTurn.span_id, + "turn.reply_to": userTurn.span_id, + }, + }); + expect(JSON.stringify(llm.metadata)).not.toContain("private"); + expect(one("lookup_order")).toMatchObject({ + span_attributes: { type: "tool" }, + input: { id: 1042 }, + output: { delivery: "Friday" }, + }); + expect(one("tts")).toMatchObject({ + input: { text: "It arrives Friday." }, + output: [{ role: "assistant", content: "It arrives Friday." }], + }); + }); + + test("links requests, tool results, input speech, transcripts and generated speech", async () => { + const root = start("agent_session"); + const user = start("user_turn", root); + const caller = start("user_speaking", user); + const recognition = { + userTurnSpan: user, + sttModel: "gpt-4o-mini-transcribe", + sttProvider: "openai", + }; + tracing.stt(recognition, { + type: 2, + alternatives: [{ text: "Order?", confidence: 0.9 }], + requestId: "req-1", + }); + tracing.stt(recognition, { type: 1, alternatives: [{ text: "interim" }] }); + caller.end(); + user.end(); + tracing.conversation( + { sessionSpan: root }, + { + type: "message", + id: "caller", + role: "user", + textContent: "Order?", + metrics: { startedSpeakingAt: 1 }, + }, + ); + const turn = start("agent_turn", root); + const model = start("llm_node", turn, { + "lk.pii.chat_ctx": JSON.stringify({ + items: [ + { type: "message", id: "caller", role: "user", content: ["Order?"] }, + ], + }), + "lk.pii.response.function_calls": JSON.stringify([ + { call_id: "call", name: "lookup_order" }, + ]), + }); + model.end(); + const tool = start("function_tool", turn, { + "lk.function_tool.name": "lookup_order", + "gen_ai.tool.call.id": "call", + }); + tool.end(); + let continuation!: NativeSpan; + tracing.scope(turn, () => { + tracing.inference(() => { + continuation = start("llm_node", turn, { + "lk.pii.chat_ctx": JSON.stringify({ + items: [ + { + type: "function_call_output", + call_id: "call", + output: "Friday", + }, + ], + }), + }); + return [null, { id: "answer" }]; + }); + // Created after the continuation started in this scope, so it generated them. + start("tts_node", turn).end(); + const speech = start("agent_speaking", turn); + tracing.conversation( + { sessionSpan: root }, + { + type: "message", + id: "answer", + role: "assistant", + textContent: "Friday", + }, + ); + speech.end(); + }); + continuation.end(); + const { named, one } = await rows(); + const link = (target: any, type: string) => ({ + context: { + traceId: target.root_span_id, + spanId: target.span_id, + traceFlags: 1, + }, + attributes: { "braintrust.relationship.type": type }, + }); + const [first, second] = named("llm_response"); + const stt = one("stt"); + expect(stt).toMatchObject({ + span_parents: [one("user_turn").span_id], + output: [{ role: "user", content: "Order?" }], + metadata: { + model: "gpt-4o-mini-transcribe", + provider: "openai", + "contrib.livekit.transcript_confidence": 0.9, + "contrib.livekit.provider_request_id": "req-1", + "turn.id": one("user_turn").span_id, + }, + }); + expect(one("user_speech").metadata.links).toEqual([ + link(stt, "transcribed_by"), + ]); + expect(first.metadata.links).toEqual([ + link(one("user_speech"), "input_context"), + ]); + expect(one("lookup_order").metadata.links).toEqual([ + link(first, "requested_by"), + ]); + expect(second.metadata.links).toEqual([ + link(one("lookup_order"), "consumes_tool_result"), + ]); + expect(one("tts").metadata.links).toEqual([link(second, "generated_by")]); + expect(one("agent_speech").metadata.links).toEqual([ + link(second, "generated_by"), + ]); + }); + + test.each([ + ["high resolution", [2, 500_000_000] as [number, number]], + ["milliseconds", 2500], + ["date", new Date(2500)], + ])( + "observes attributes, status and events without changing native spans (%s)", + async (_name, time) => { + const root = nativeSpan(); + const context = root.spanContext(); + const end = root.end; + tracing.observeSpan(root, { name: "agent_session", startTime: time }); + expect(root.isRecording()).toBe(true); + expect(root.setAttribute("lk.test", "value")).toBe(root); + expect(root.setAttributes({ "gen_ai.request.model": "test-model" })).toBe( + root, + ); + expect(root.setAttribute("__proto__", "safe")).toBe(root); + expect(root.addEvent("with attributes", { count: 1 }, time)).toBe(root); + expect(root.addEvent("with timestamp", time)).toBe(root); + expect(root.setStatus({ code: 2, message: "failed" })).toBe(root); + // Internal native work folds into its exported parent. + const internal = nativeSpan(); + tracing.observeSpan(internal, { + name: "session_start", + context: { getValue: () => root }, + }); + internal.end(); + root.end(time); + root.end(time); + expect(end).toHaveBeenCalledTimes(2); + expect(root.spanContext()).toEqual(context); + expect(root.isRecording()).toBe(false); + root.setAttribute("lk.test", "late"); + root.addEvent("late"); + root.recordException(new Error("late")); + expect(tracing.rows.size).toBe(0); + + const { all } = await rows(); + expect(all).toHaveLength(1); + expect(all[0]).toMatchObject({ + span_attributes: { name: "session" }, + error: "failed", + metrics: { start: 2.5, end: 2.5 }, + metadata: { + model: "test-model", + ["__proto__"]: "safe", + "contrib.livekit.test": "value", + "contrib.livekit.events": [ + { + name: "with attributes", + time_unix_ms: 2500, + attributes: { count: 1 }, + }, + { name: "with timestamp", time_unix_ms: 2500, attributes: {} }, + ], + }, + }); + expect(Object.getPrototypeOf(all[0].metadata)).toBe(Object.prototype); + }, + ); + + test("leaves spans outside tracked sessions unchanged", async () => { + const span = nativeSpan(); + const methods = { ...span }; + tracing.observeSpan(span, { name: "job" }); + expect(span).toEqual(methods); + expect((await rows()).all).toHaveLength(0); + }); + + test("concurrent sessions keep parents separate; closing one does not clear another", async () => { + const a = start("agent_session"); + const b = start("agent_session"); + const child = start("agent_turn", a); + a.end([2, 0]); + const later = start("agent_turn", b); + later.end([2, 0]); + child.end([2, 0]); + b.end([2, 0]); + const { named } = await rows(); + const [sa, sb] = named("session"); + expect(named("agent_turn").map((r) => r.span_parents)).toEqual([ + [sa.span_id], + [sb.span_id], + ]); + }); + + test("late children keep session ownership until they end", async () => { + const root = start("agent_session"); + const turn = start("agent_turn", root); + const tool = start("function_tool", turn, { + "lk.function_tool.name": "late_tool", + }); + turn.end([2, 0]); + root.end([2, 0]); + expect(tracing.rows.size).toBe(3); + tool.setAttribute("lk.pii.function_tool.output", '{"ok":true}'); + tool.end([3, 0]); + expect(tracing.rows.size).toBe(0); + const { one } = await rows(); + expect(one("late_tool")).toMatchObject({ + span_parents: [one("agent_turn").span_id], + output: { ok: true }, + }); + }); + + test("sessions inherit the current Braintrust parent", async () => { + const outer = start("agent_session"); + tracing.scope(outer, () => start("agent_session")); + const [first, second] = (await rows()).named("session"); + expect(second.span_parents).toEqual([first.span_id]); + }); + + test("inference suppression preserves results and leaves provider calls in user tools visible", async () => { + const root = start("agent_session"); + const turn = start("agent_turn", root); + const channels = defineInterceptor("livekit-test-provider", { + request: channel<[], Promise>({ channelName: "request" }), + }); + const unsubscribe = channels.request.intercept((target, self, args) => + traceAsyncCall( + () => Reflect.apply(target, self, args), + { arguments: args }, + { + instrumentationName: "openai", + name: "provider-request", + type: "llm", + extractInput: () => ({ input: "request", metadata: undefined }), + extractOutput: (value) => value, + extractMetrics: () => ({}), + }, + ), + ); + try { + const request = () => + channels.request.invoke(async () => "answer", undefined, [], {}); + await tracing.scope(turn, async () => { + expect( + await tracing.inference(async () => { + await Promise.resolve(); + return request(); + }), + ).toBe("answer"); + expect(await request()).toBe("answer"); // e.g. a provider call inside a user tool + }); + } finally { + unsubscribe(); + } + expect((await rows()).named("provider-request")).toHaveLength(1); + }); + + test("shutdown ends open spans as incomplete and makes observers inert", async () => { + const root = start("agent_session"); + const turn = start("agent_turn", root); + await tracing.shutdown(); + turn.end(); + start("agent_session").end(); + expect(root.isRecording()).toBe(false); + const { all, one } = await rows(); + expect(all).toHaveLength(2); + expect(one("agent_turn").metadata).toMatchObject({ + "turn.incomplete": true, + "contrib.livekit.termination": "processor_shutdown", + }); + expect(one("session").metadata).toMatchObject({ + "contrib.livekit.incomplete": true, + }); + }); +}); + +describe("speech", () => { + test("native speech owns overlap, late transcript timing and session ownership", async () => { + const root = start("agent_session"); + const agent = start("agent_speaking", root); + const caller = start("user_speaking", root, {}, [3, 0]); + caller.end([4, 0]); + const session = { sessionSpan: root }; + tracing.conversation(session, { + type: "message", + id: "late", + role: "user", + textContent: "Wait, order 1042", + metrics: { startedSpeakingAt: 3 }, + }); + tracing.conversation(session, { + type: "message", + id: "answer", + role: "assistant", + textContent: "It arrives Friday.", + metrics: { startedSpeakingAt: 1 }, + }); + agent.end([6, 0]); + const { one } = await rows(); + expect(one("user_speech")).toMatchObject({ + span_parents: [one("session").span_id], + metrics: { start: 3, end: 4 }, + input: [{ role: "user", content: "Wait, order 1042" }], + metadata: { "contrib.livekit.message_ids": ["late"] }, + }); + expect(one("agent_speech")).toMatchObject({ + metrics: { start: 1, end: 6 }, + output: [{ role: "assistant", content: "It arrives Friday." }], + }); + }); + + test("typed input is not attributed to an earlier untranscribed speech interval", async () => { + const root = start("agent_session"); + start("user_speaking", root).end([2, 0]); + tracing.conversation( + { sessionSpan: root }, + { type: "message", id: "typed", role: "user", textContent: "Typed" }, + ); + root.end([3, 0]); + const { one } = await rows(); + expect(one("user_speech").input).toBeUndefined(); + expect( + one("session").metadata["contrib.livekit.unassociated_messages"], + ).toEqual([{ id: "typed", role: "user", text: "Typed" }]); + }); + + test("native recognition ownership survives independently sampled speech timestamps", async () => { + const root = start("agent_session"); + const user = start("user_turn", root); + start("user_speaking", user, {}, [1, 5_000_000]).end([2, 0]); + const session = { sessionSpan: root }; + tracing.userTurn( + { agentSession: session }, + { userTurnSpan: user, startedSpeakingAt: 1000, stoppedSpeakingAt: 2000 }, + ); + tracing.conversation(session, { + type: "message", + id: "caller", + role: "user", + textContent: "Where is my order?", + metrics: { startedSpeakingAt: 1 }, + }); + expect((await rows()).one("user_speech")).toMatchObject({ + metrics: { start: 1.005 }, + input: [{ role: "user", content: "Where is my order?" }], + }); + }); + + function speakingSession() { + const root = start("agent_session"); + const speech = start("agent_speaking", root); + const sink = Object.assign(new EventEmitter(), { + captureFrame: async () => {}, + flush() {}, + clearBuffer() {}, + }); + const session: any = { + sessionSpan: root, + agentSpeakingSpan: speech, + output: { audio: sink }, + }; + tracing.output(session); + return { sink, session }; + } + + test.each([undefined, "Heard prefix"])( + "interrupted speech uses only synchronized playback text (%s)", + async (synchronizedTranscript) => { + const { sink, session } = speakingSession(); + sink.emit("playbackFinished", { + interrupted: true, + synchronizedTranscript, + }); + tracing.conversation(session, { + type: "message", + id: "answer", + role: "assistant", + textContent: "Heard prefix and unheard suffix", + interrupted: true, + }); + expect((await rows()).one("agent_speech").output).toEqual( + synchronizedTranscript && [ + { role: "assistant", content: synchronizedTranscript }, + ], + ); + }, + ); + + test("replaced outputs stop reporting heard text; a verified prefix is kept", async () => { + const { sink: first, session } = speakingSession(); + const second = new EventEmitter(); + session.output.audio = second; + tracing.output(session); + expect(first.listenerCount("playbackFinished")).toBe(0); + session.output.audio = first; + tracing.output(session); + expect(second.listenerCount("playbackFinished")).toBe(0); + first.emit("playbackFinished", { synchronizedTranscript: "partial" }); + tracing.conversation(session, { + type: "message", + id: "first", + role: "assistant", + textContent: "Fully played prefix and partial", + interrupted: true, + }); + first.emit("playbackFinished", { interrupted: true }); + tracing.conversation(session, { + type: "message", + id: "unverified", + role: "assistant", + textContent: "unheard", + interrupted: true, + }); + const speech = (await rows()).one("agent_speech"); + expect(speech.output).toEqual([ + { role: "assistant", content: "Fully played prefix and partial" }, + ]); + expect(JSON.stringify(speech)).not.toContain("unheard"); + }); +}); + +describe("recording", () => { + beforeEach(() => { + vi.stubEnv("BRAINTRUST_CAPTURE_ATTACHMENTS", "true"); + }); + /** A recorded session with one agent turn and an EventEmitter sink. */ + function session( + captureFrame: ( + sink: EventEmitter, + ) => (frame: unknown) => Promise = () => async () => {}, + ) { + const root = start("agent_session"); + const turn = start("agent_turn", root); + const sink: any = new EventEmitter(); + Object.assign(sink, { + captureFrame: captureFrame(sink), + flush() {}, + clearBuffer() {}, + }); + const agentSession: any = { + sessionSpan: root, + activity: { currentSpeech: { _agentTurnSpan: turn } }, + output: { audio: sink }, + }; + tracing.output(agentSession); + const origin = now; + return { + root, + turn, + sink, + session: agentSession, + origin, + async close() { + turn.end(); + await tracing.closeSession(root); + root.end(); + const result = await rows(); + const recordings = + result.named("session")[0].metadata?.["audio.recordings"]; + const selections = (name: string) => + result + .one(name) + .metadata?.[ + "audio.selections" + ]?.map((s: any) => [s.recording_id, s.start_offset_ms, s.end_offset_ms]); + return { ...result, recordings, selections }; + }, + }; + } + + test("disabled attachment capture leaves sinks and inputs untouched", async () => { + vi.stubEnv("BRAINTRUST_CAPTURE_ATTACHMENTS", ""); + const stream = new ReadableStream(); + const { getReader } = stream; + const { sink, session: agentSession, close } = session(); + const { captureFrame } = sink; + tracing.input({ agentSession }, stream); + tracing.output(agentSession); + expect(stream.getReader).toBe(getReader); + expect(sink.captureFrame).toBe(captureFrame); + expect((await close()).recordings).toBeUndefined(); + }); + + test("interruption records only confirmed progress ranges, excluding the queued tail and pauses", async () => { + const { sink, origin, close } = session(); + await sink.captureFrame(frame(2400)); // 100 ms generated + sink.emit("playbackProgressed", { + startedAt: origin + 10, + offset: 0, + duration: 20, + }); + sink.emit("playbackProgressed", { + startedAt: origin + 60, + offset: 40, + duration: 20, + }); + sink.emit("playbackFinished", { + playbackPosition: 0.04, + interrupted: true, + synchronizedTranscript: "heard", + }); + const { recordings, selections, one } = await close(); + expect(recordings).toMatchObject([ + { + id: "call-0000", + state: "ready", + duration_ms: 80, + sources: [{ channel_index: 1 }], + timeline: { origin_unix_ms: origin, recording_start_offset_ms: 0 }, + }, + ]); + expect(selections("agent_turn")).toEqual([ + ["call-0000", 10, 30], + ["call-0000", 60, 80], + ]); + expect( + one("agent_turn").metadata["contrib.livekit.playback_events"], + ).toMatchObject([ + { + name: "playbackFinished", + attributes: { interrupted: true, synchronizedTranscript: "heard" }, + }, + ]); + const played = channelSamples(uploads[0], 1); + expect(played).toHaveLength(1920); + expect([played[240], played[960]]).toEqual([1234, 0]); + }); + + test("synchronous completion during an in-flight capture is settled after acceptance", async () => { + let origin = 0; + const { sink, close, ...rest } = session((sink) => async () => { + sink.emit("playbackStarted", { createdAt: origin + 10 }); + sink.emit("playbackFinished", { + playbackPosition: 0.02, + interrupted: false, + }); + }); + origin = rest.origin; + await sink.captureFrame(frame()); + expect((await close()).selections("agent_turn")).toEqual([ + ["call-0000", 10, 30], + ]); + }); + + test.each([ + ["failed capture", "output_capture_failed"], + ["unknown interrupted playout", "output_playout_mapping_unavailable"], + ])("%s omits the recording instead of guessing", async (name, reason) => { + const error = new Error("sink failure"); + const failing = name === "failed capture"; + const { sink, close } = session(() => async () => { + if (failing) throw error; + }); + if (failing) await expect(sink.captureFrame(frame())).rejects.toBe(error); + else { + await sink.captureFrame(frame()); + sink.emit("playbackFinished", { + playbackPosition: 0.01, + interrupted: true, + }); + } + expect((await close()).recordings).toEqual([ + { + id: "call", + recording_group_id: "call", + state: "omitted", + reason, + truncated: true, + }, + ]); + expect(uploads).toEqual([]); + }); + + test("the internal ceiling stops capture without changing sink I/O", async () => { + let accepted = 0; + const { sink, close } = session(() => async () => { + accepted++; + }); + await sink.captureFrame(frame(16 * 1024 * 1024)); + await sink.captureFrame(frame()); + sink.emit("playbackFinished", { + playbackPosition: 0.04, + interrupted: false, + }); + expect(accepted).toBe(2); + expect((await close()).recordings).toMatchObject([ + { reason: "capture_byte_limit" }, + ]); + }); + + test("a sink shared by open sessions stops both recordings without changing playback", async () => { + const delivered: unknown[] = []; + const a = session(() => async (value) => { + delivered.push(value); + return "played"; + }); + const root = start("agent_session"); + tracing.output({ sessionSpan: root, output: { audio: a.sink } } as any); + const audio = frame(); + expect(await a.sink.captureFrame(audio)).toBe("played"); + expect(delivered).toEqual([audio]); + root.end(); + await tracing.closeSession(root); + expect((await a.close()).named("session")).toMatchObject([ + { + metadata: { + "audio.recordings": [{ reason: "shared_output_unsupported" }], + }, + }, + { + metadata: { + "audio.recordings": [{ reason: "shared_output_unsupported" }], + }, + }, + ]); + }); + + test("multiple playback runs in one turn keep selections on each speaking span", async () => { + const { sink, turn, session: agentSession, origin, close } = session(); + for (const [name, at] of [ + ["ack", 10], + ["answer", 100], + ] as const) { + const speaking = start("agent_speaking", turn, { "lk.name": name }); + agentSession.agentSpeakingSpan = speaking; + await sink.captureFrame(frame()); + sink.emit("playbackProgressed", { + startedAt: origin + at, + offset: 0, + duration: 20, + }); + sink.emit("playbackFinished", { + playbackPosition: 0.02, + interrupted: false, + }); + sink.flush(); + speaking.end(); + } + const { named, selections } = await close(); + expect( + named("agent_speech").map((r) => + r.metadata["audio.selections"].map((s: any) => s.start_offset_ms), + ), + ).toEqual([[10], [100]]); + expect(selections("agent_turn")).toEqual([ + ["call-0000", 10, 30], + ["call-0000", 100, 120], + ]); + }); + + test("confirmed playback rotates files during an open utterance; interruption discards the queued tail", async () => { + tracing = new LiveKitTracing(1920); // 20 ms of 24 kHz stereo + const { sink, origin, close } = session(); + now += 5000; + await sink.captureFrame(frame()); + sink.emit("playbackProgressed", { + startedAt: origin, + offset: 0, + duration: 20, + }); + await vi.waitFor(() => expect(uploads).toHaveLength(1)); + await sink.captureFrame(frame()); + sink.emit("playbackFinished", { + playbackPosition: 0.02, + interrupted: true, + }); + const { recordings, selections } = await close(); + expect(recordings).toMatchObject([{ id: "call-0000", duration_ms: 20 }]); + expect(selections("agent_turn")).toEqual([["call-0000", 0, 20]]); + }); + + test("input taps reads in sample time, preserving values, silence, cancellation and locks", async () => { + const { session: agentSession, origin, close } = session(); + const frames = [frame(480, 1234), frame(480, 0), frame(480, 2345)]; + let cancelled = false; + const stream = new ReadableStream({ + start(controller) { + for (const value of frames) controller.enqueue(value); + }, + cancel() { + cancelled = true; + }, + }); + tracing.input({ agentSession }, stream); + const reader = stream.getReader(); + // Late delivery does not shift the ordered sample clock. + for (const [index, delay] of [20, 41, 62].entries()) { + now = origin + delay; + expect((await reader.read()).value).toBe(frames[index]); + } + frames[0].data.fill(0); + await reader.cancel(); + reader.releaseLock(); + expect(cancelled).toBe(true); + expect(stream.locked).toBe(false); + await close(); + expect(channelSamples(uploads[0], 0)).toEqual([ + ...Array(480).fill(1234), + ...Array(480).fill(0), + ...Array(480).fill(2345), + ]); + }); + + test("user turns and speech select only captured input", async () => { + const { root, session: agentSession, origin, close } = session(); + const user = start("user_turn", root); + const speech = start("user_speaking", user, {}, origin + 5); + const stream = new ReadableStream({ + start(controller) { + controller.enqueue(frame(2400)); + }, + }); + tracing.input({ agentSession }, stream); + now = origin + 100; + await stream.getReader().read(); + tracing.userTurn( + { agentSession }, + { + userTurnSpan: user, + startedSpeakingAt: origin - 50, + stoppedSpeakingAt: origin + 40, + }, + ); + speech.end(origin + 500); + user.end(); + const { selections } = await close(); + expect(selections("user_turn")).toEqual([["call-0000", 0, 40]]); + expect(selections("user_speech")).toEqual([["call-0000", 5, 100]]); + }); + + test("input source replacement and shared input are explicit", async () => { + const a = session(); + const b = start("agent_session"); + const shared = new ReadableStream(); + tracing.input({ agentSession: a.session }, shared); + tracing.input({ agentSession: { sessionSpan: b } as any }, shared); + b.end(); + const c = start("agent_session"); + tracing.input( + { agentSession: { sessionSpan: c } as any }, + new ReadableStream(), + ); + tracing.input( + { agentSession: { sessionSpan: c } as any }, + new ReadableStream(), + ); + c.end(); + await Promise.all([b, c].map((span) => tracing.closeSession(span))); + const reasons = (await a.close()) + .named("session") + .map((r) => r.metadata["audio.recordings"][0].reason); + expect(reasons).toEqual([ + "shared_input_unsupported", + "shared_input_unsupported", + "input_source_change_unsupported", + ]); + }); +}); + +describe("recording files", () => { + const packet = (at: number, length = 24000, channel = 0) => ({ + pcm: Int16Array.from({ length }, (_, i) => ((i * 31) % 30000) - 15000), + at, + rate: 24000, + channels: 1, + channel, + }); + /** A recording whose wall-clock hold no longer limits uploads. */ + function recording(chunkBytes = DEFAULT_STREAMING_ATTACHMENT_BUFFER_BYTES) { + const log = vi.fn(); + const turn = vi.fn(); + const r = new Recording({ spanId: "root", log } as any, chunkBytes, (id) => + id === "turn" ? ({ span: { log: turn } } as any) : undefined, + ); + now += 3_600_000; + const last = (fn: typeof log, key: string) => + fn.mock.calls + .map(([event]) => event.metadata?.[key]) + .filter(Boolean) + .at(-1); + return { + r, + log, + files: () => + (last(log, "audio.recordings") as any[]).map((f) => [ + f.id, + f.state, + f.timeline?.recording_start_offset_ms, + f.duration_ms, + ]), + selections: () => + (last(turn, "audio.selections") as any[])?.map((s) => [ + s.recording_id, + s.start_offset_ms, + s.end_offset_ms, + ]), + }; + } + test("publishes attachment references and selections only after upload succeeds", async () => { + let complete!: () => void; + const blocked = new Promise((resolve) => { + complete = resolve; + }); + vi.mocked(Attachment.prototype.upload).mockImplementation(async () => { + await blocked; + return { upload_status: "done" }; + }); + const { r, log, files, selections } = recording(96000); + r.select("turn", 0, 1000, 0); + r.publish(["turn"]); + r.record(packet(0)); + r.advance(); + expect(files()).toEqual([["call-0000", "pending", 0, undefined]]); + expect(log.mock.calls.some(([event]) => event.input)).toBe(false); + expect(selections()).toEqual([]); + complete(); + await r.finish(); + expect(files()).toEqual([["call-0000", "ready", 0, 1000]]); + expect( + log.mock.calls.some(([event]) => event.input?.audio?.["call-0000"]), + ).toBe(true); + expect(selections()).toEqual([["call-0000", 0, 1000]]); + }); + + test("progressive digests reconstruct both sources exactly across file boundaries", async () => { + const { r, files } = recording(96000); + const length = 3 * 24000 + 1777; + const expected = Buffer.alloc(length * 4); + for (let at = 0; at < length; at += 719) { + for (let channel = 0; channel < 2; channel++) { + const pcm = Int16Array.from( + { length: Math.min(719, length - at) }, + (_, i) => (((i + at) * (channel ? 31 : 17)) % 30001) - 15000, + ); + expect( + r.record({ pcm, at: at / 24, rate: 24000, channels: 1, channel }), + ).toBe(true); + for (let i = 0; i < pcm.length; i++) + expected.writeInt16LE(pcm[i], ((at + i) * 2 + channel) * 2); + } + r.advance(); + } + await vi.waitFor(() => expect(uploads).toHaveLength(3)); + await r.finish(); + expect(uploads.map((f) => f.length / 4)).toEqual([ + 24000, 24000, 24000, 1777, + ]); + expect(Buffer.concat(uploads)).toEqual(expected); + expect(files().map(([id]) => id)).toEqual([ + "call-0000", + "call-0001", + "call-0002", + "call-0003", + ]); + }); + + test("slow uploads bound capture and keep the accepted prefix", async () => { + let complete!: () => void; + const blocked = new Promise((resolve) => { + complete = resolve; + }); + vi.mocked(Attachment.prototype.upload).mockImplementation(async () => { + await blocked; + return { upload_status: "done" }; + }); + const { r, files } = recording(8 * 1024 * 1024); + const samples = 2 * 1024 * 1024; + r.record(packet(0, samples)); + r.advance(); + for (let i = 1; i <= 9; i++) r.record(packet((i * samples) / 24, samples)); + expect(r.reason).toBe("capture_byte_limit"); + complete(); + await r.finish(); + expect(files().map(([, state]) => state)).toEqual([ + ...Array(9).fill("ready"), + "omitted", + ]); + }); + + test("a failed upload omits its file and selections without invalidating earlier files", async () => { + vi.mocked(Attachment.prototype.upload) + .mockResolvedValueOnce({ upload_status: "done" }) + .mockResolvedValueOnce({ + upload_status: "error", + error_message: "offline", + }); + const { r, files, selections } = recording(96000); + r.select("turn", 0, 2000, 0); + for (let i = 0; i < 2; i++) { + r.record(packet(i * 1000)); + r.advance(); + await vi.waitFor(() => + expect(Attachment.prototype.upload).toHaveBeenCalledTimes(i + 1), + ); + } + await r.finish(); + expect(files()).toEqual([ + ["call-0000", "ready", 0, 1000], + ["call-0001", "omitted", 1000, undefined], + ["call", "omitted", undefined, undefined], + ]); + expect(r.reason).toBe("recording_export_failed"); + expect(selections()).toEqual([["call-0000", 0, 1000]]); + }); + + test("late selections split across ready files and merge adjacent intervals", async () => { + const { r, selections } = recording(96000); + r.record(packet(0, 48000)); + await r.finish(); + r.select("turn", 500, 1000, 1); + r.select("turn", 1000, 1500, 1); + r.publish(["turn"]); + expect(selections()).toEqual([ + ["call-0000", 500, 1000], + ["call-0001", 0, 500], + ]); + }); + + test("the duration limit keeps accepted audio and finish is idempotent", async () => { + const { r, files } = recording(); + expect(r.record(packet(0))).toBe(true); + expect(r.record(packet(30 * 60 * 1000 - 500))).toBe(false); + const finishing = r.finish(); + expect(r.finish()).toBe(finishing); + await finishing; + expect(r.reason).toBe("duration_limit"); + expect(files()).toEqual([ + ["call-0000", "ready", 0, 1000], + ["call", "omitted", undefined, undefined], + ]); + expect(r.record(packet(1000))).toBe(false); + }); + + test("empty calls publish an omission without creating attachments", async () => { + const { r, log } = recording(); + await r.finish(); + expect(uploads).toEqual([]); + expect(log.mock.lastCall?.[0].metadata["audio.recordings"]).toEqual([ + { + id: "call", + recording_group_id: "call", + state: "omitted", + reason: "no_audio_observed", + }, + ]); + }); + + test("empty leading intervals are skipped and a late watermark drains without new input", async () => { + const { r, files } = recording(9600); + r.record(packet(200)); + r.advance(); + await vi.waitFor(() => expect(uploads).toHaveLength(10)); + expect(files().map(([, , start, duration]) => [start, duration])).toEqual( + Array.from({ length: 10 }, (_, i) => [200 + i * 100, 100]), + ); + await r.finish(); + }); + + test("holds delay cuts to a safe boundary and close flushes the remainder", async () => { + const { r, files } = recording(192000); + r.record(packet(0, 72000)); + const hold = {}; + r.holds.set(hold, 1000); + r.advance(); + expect(uploads).toHaveLength(0); + r.holds.set(hold, 2000); + r.advance(); + await vi.waitFor(() => expect(uploads).toHaveLength(1)); + await r.finish(); + expect(files()).toEqual([ + ["call-0000", "ready", 0, 2000], + ["call-0001", "ready", 2000, 1000], + ]); + }); +}); diff --git a/js/src/instrumentation/plugins/livekit-plugin.ts b/js/src/instrumentation/plugins/livekit-plugin.ts index 4a822b1dd..4cecad1a3 100644 --- a/js/src/instrumentation/plugins/livekit-plugin.ts +++ b/js/src/instrumentation/plugins/livekit-plugin.ts @@ -1,104 +1,1778 @@ -import type { LiveKitOptions } from "../livekit/options"; -/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions -- receivers are private, version-pinned LiveKit hook boundaries. */ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/consistent-type-assertions -- vendored LiveKit boundaries. */ import type { AgentSession, - ChatMessage, + AgentActivity, AudioFrame, + AudioRecognition, + AudioOutput, + ChatMessage, EndOfTurnInfo, -} from "../livekit/types"; + LiveKitSpan, + PlaybackFinishedEvent, + PlaybackProgressedEvent, + SpanTime, + SpeechEvent, + TraceOptions, +} from "../../vendor-sdk-types/livekit"; +import iso from "../../isomorph"; import { BasePlugin } from "../core"; -import { livekitChannels } from "./livekit-channels"; -import { runtime, observe, prepare } from "../livekit/runtime"; +import { observeResult, runInstrumentation } from "../core/observe-result"; +import { livekitChannels } from "./livekit-interceptors"; +import { v4 as uuidv4 } from "uuid"; +import { runWithAutoInstrumentationSuppressed } from "../auto-instrumentation-suppression"; +import { startSpan, withCurrent, type Span } from "../../logger"; +import { + withSpanInstrumentationName, + INSTRUMENTATION_NAMES, +} from "../../span-origin"; +import { isObject } from "../../../util"; +import { debugLogger } from "../../debug-logger"; +import { isAutoCaptureAttachmentsEnabled } from "../../wrappers/attachment-utils"; +import { DEFAULT_STREAMING_ATTACHMENT_BUFFER_BYTES } from "../config"; +import { + PcmAudio, + pcmBytesToMs, + msToSamples, + samplesToMs, +} from "../../pcm-audio"; + +// Bounds on per-session observation state, independent of the attachment threshold. +const MAX_ROWS = 8192; +const MAX_EVENTS = 256; +const MAX_RANGES = 100_000; +const MAX_RECORDING_MS = 30 * 60 * 1000; +const SAMPLE_RATE = 24000; +// The OTel API shares its context key through Symbol.for, including across copies. +const OTEL_SPAN_KEY = Symbol.for("OpenTelemetry Context Key SPAN"); +const FINAL_TRANSCRIPT = 2; // SpeechEventType.FINAL_TRANSCRIPT + +// Exported native spans. Every other span nested in a session folds into its parent. +const SPANS = new Map([ + ["agent_session", { name: "session", type: "task" }], + ["user_turn", { name: "user_turn", type: "task" }], + ["agent_turn", { name: "agent_turn", type: "task" }], + ["user_speaking", { name: "user_speech", type: "task" }], + ["agent_speaking", { name: "agent_speech", type: "task" }], + ["llm_node", { name: "llm_response", type: "llm" }], + ["tts_node", { name: "tts", type: "task" }], + ["function_tool", { name: "function_tool", type: "tool" }], +]); + +const METRICS = { + prompt_tokens: "gen_ai.usage.input_tokens", + completion_tokens: "gen_ai.usage.output_tokens", + cache_read_input_tokens: "gen_ai.usage.cache_read.input_tokens", + cache_creation_input_tokens: "gen_ai.usage.cache_write.input_tokens", + reasoning_tokens: "gen_ai.usage.reasoning.output_tokens", + time_to_first_token: "contrib.livekit.response.ttft", +} as const; + export class LiveKitPlugin extends BasePlugin { - private started = false; - private allowContent = true; - constructor(private options: LiveKitOptions = {}) { + private tracing?: LiveKitTracing; + constructor( + private streamingAttachmentBufferBytes = DEFAULT_STREAMING_ATTACHMENT_BUFFER_BYTES, + ) { super(); } - configure(options: LiveKitOptions) { - if (this.started) - throw new Error("Configure LiveKit before starting a session"); - this.options = options; - } protected onEnable(): void { + const tracing = (this.tracing = new LiveKitTracing( + this.streamingAttachmentBufferBytes, + )); + const observeActive = + (fn: (span: LiveKitSpan) => T, options: TraceOptions) => + (span: LiveKitSpan) => { + runInstrumentation(() => tracing.observeSpan(span, options)); + return tracing.scope(span, () => fn(span)); + }; this.unsubscribers.push( - livekitChannels.provider.intercept((target, self, args) => { - const options = args[1] as { allowPii?: boolean } | undefined; - this.allowContent = options?.allowPii ?? true; + livekitChannels.startSpan.intercept((target, self, args) => { + const span = Reflect.apply(target, self, args); + runInstrumentation(() => tracing.observeSpan(span, args[0])); + return span; + }), + livekitChannels.startActiveSpan.intercept((target, self, [fn, options]) => + Reflect.apply(target, self, [observeActive(fn, options), options]), + ), + livekitChannels.startActiveSpanSync.intercept( + (target, self, [fn, options]) => + Reflect.apply(target, self, [observeActive(fn, options), options]), + ), + livekitChannels.inference.intercept((target, self, args) => + tracing.inference(() => Reflect.apply(target, self, args)), + ), + livekitChannels.start.intercept((target, self, args) => + tracing.scope((self as AgentSession).sessionSpan, () => + Reflect.apply(target, self, args), + ), + ), + livekitChannels.activity.intercept((target, self, args) => { + const session = (self as AgentActivity).agentSession; + runInstrumentation(() => tracing.output(session)); + return tracing.scope(session.sessionSpan, () => + Reflect.apply(target, self, args), + ); + }), + // Each reply re-checks the session's sink, so replaced outputs are observed. + livekitChannels.pipeline.intercept((target, self, args) => { + runInstrumentation(() => + tracing.output((self as AgentActivity).agentSession), + ); + return tracing.scope(args[0].span, () => + Reflect.apply(target, self, args), + ); + }), + livekitChannels.conversation.intercept((target, self, args) => { + runInstrumentation(() => + tracing.conversation(self as AgentSession, args[0]), + ); return Reflect.apply(target, self, args); }), - livekitChannels.trace.intercept((target, self, args) => { - observe(() => { - const prepared = prepare(self, this.options, this.allowContent); - this.started ||= prepared; - }); + livekitChannels.input.intercept((target, self, args) => { + runInstrumentation(() => tracing.input(self as AgentActivity, args[0])); return Reflect.apply(target, self, args); }), - ); - this.unsubscribers.push( - livekitChannels.inference.intercept((target, self, args) => { - const invoke = () => Reflect.apply(target, self, args); - const rt = runtime(); - return rt ? rt.inference(invoke) : invoke(); + livekitChannels.userTurn.intercept((target, self, args) => { + runInstrumentation(() => + tracing.userTurn(self as AgentActivity, args[0]), + ); + return Reflect.apply(target, self, args); + }), + livekitChannels.speechStart.intercept((target, self, args) => + tracing.scope( + (self as AgentActivity).audioRecognition?.userTurnSpan, + () => Reflect.apply(target, self, args), + ), + ), + livekitChannels.stt.intercept((target, self, args) => { + runInstrumentation(() => + tracing.stt(self as AudioRecognition, args[0]), + ); + return Reflect.apply(target, self, args); }), + livekitChannels.userCompleted.intercept((target, self, args) => + tracing.scope(args[0].userTurnSpan, () => + Reflect.apply(target, self, args), + ), + ), + livekitChannels.close.intercept((target, self, args) => { + // closeImpl clears sessionSpan, so resolve the session before calling it. + const span = (self as AgentSession).sessionSpan; + const finish = () => tracing.closeSession(span); + return observeResult(Reflect.apply(target, self, args), finish, finish); + }), + ); + } + + protected onDisable(): void { + for (const unsubscribe of this.unsubscribers.splice(0)) unsubscribe(); + void this.tracing?.shutdown(); + this.tracing = undefined; + } +} + +type Row = { + id: string; + name: string; + span: Span; + /** Set when this native span folds into an exported ancestor. */ + owner?: Row; + session: string; + turn?: string; + replyTo?: string; + start: number; + end?: number; + ended: boolean; + attributes: Map; + events: { + name: string; + time: number; + attributes?: Record; + }[]; + status: { code: number; message?: string }; + playedText?: string; + messages?: Map; +}; +type SessionState = { + root: Row; + relationships: Relationships; + speech: SpeechTracker; + /** STT spans per user turn, for transcribed_by links. */ + transcripts: Map; + recording?: Recording; + playback?: Playback; + closing?: Promise; + closed: boolean; +}; + +// Native no-op spans all share one OTel ID. Keep our observation identity +// separately without altering the application's span context or provider. +const observedSpanIds = new WeakMap(); +const observedId = (span: LiveKitSpan | undefined) => + span && observedSpanIds.get(span); + +class LiveKitTracing { + // No-op OTel spans still need parent propagation across LiveKit's async work. + // `inference` is shared by a scope and its unobserved children; it holds the + // latest model response started there, which generated later speech. + private context = iso.newAsyncLocalStorage<{ + native: LiveKitSpan; + row?: Row; + inference: { model?: Row }; + }>(); + readonly rows = new Map(); + private sessions = new Map(); + // Callbacks already handed to LiveKit can outlive interceptor unsubscription. + private disabled = false; + + constructor(private streamingAttachmentBufferBytes: number) {} + + private rowOf(span: LiveKitSpan | undefined): Row | undefined { + return this.rows.get(observedId(span) ?? ""); + } + private sessionOf(session: AgentSession): SessionState | undefined { + return this.sessions.get(this.rowOf(session.sessionSpan)?.id ?? ""); + } + + /** Observe LiveKit's span API without installing or changing an OTel provider. */ + observeSpan(span: LiveKitSpan, options: TraceOptions): void { + if (this.disabled || observedSpanIds.has(span)) return; + // LiveKit passes explicit OTel contexts for long-lived session/turn spans. + const parent = + (options.context?.getValue(OTEL_SPAN_KEY) as LiveKitSpan | undefined) ?? + this.context.getStore()?.native; + const row = this.start(options, this.rowOf(parent)); + if (!row) return; + observedSpanIds.set(span, row.id); + const finish = () => this.end(row); + const { + isRecording, + recordException, + setAttribute, + setAttributes, + setStatus, + addEvent, + end, + } = span; + Object.assign(span, { + // LiveKit only produces content and metrics for recording spans. Record its + // lifecycle locally even when its OTel provider is a no-op or samples it out. + isRecording(this: LiveKitSpan) { + return !row.ended || isRecording.call(this); + }, + recordException(this: LiveKitSpan, error: unknown, time?: SpanTime) { + recordException.call(this, error, time); + if (!row.ended) row.span.log({ error }); + }, + setAttribute(this: LiveKitSpan, key: string, value: unknown) { + const result = setAttribute.call(this, key, value); + if (!row.ended) row.attributes.set(key, value); + return result; + }, + setAttributes(this: LiveKitSpan, attributes: Record) { + const result = setAttributes.call(this, attributes); + if (!row.ended) + for (const [key, value] of Object.entries(attributes)) + row.attributes.set(key, value); + return result; + }, + setStatus(this: LiveKitSpan, status: { code: number; message?: string }) { + const result = setStatus.call(this, status); + if (!row.ended) row.status = { ...status }; + return result; + }, + addEvent( + this: LiveKitSpan, + name: string, + attributesOrTime?: Record | SpanTime, + time?: SpanTime, + ) { + const result = addEvent.call(this, name, attributesOrTime, time); + if (!row.ended && row.events.length < MAX_EVENTS) { + const attributes = + isObject(attributesOrTime) && !(attributesOrTime instanceof Date) + ? attributesOrTime + : undefined; + row.events.push({ + name, + attributes, + time: spanTimeSeconds( + time ?? (attributes ? undefined : (attributesOrTime as SpanTime)), + ), + }); + } + return result; + }, + end(this: LiveKitSpan, time?: SpanTime) { + const result = end.call(this, time); + if (!row.ended) { + row.ended = true; + row.end = spanTimeSeconds(time); + runInstrumentation(finish); + } + return result; + }, + }); + } + + private start(options: TraceOptions, parent?: Row): Row | undefined { + const name = options.name; + if (this.rows.size >= MAX_ROWS || (name !== "agent_session" && !parent)) + return; + const kind = SPANS.get(name); + const start = spanTimeSeconds(options.startTime); + const owner = kind ? undefined : (parent!.owner ?? parent!); + const args = + kind && + withSpanInstrumentationName( + { name: kind.name, type: kind.type, startTime: start }, + INSTRUMENTATION_NAMES.LIVEKIT, + ); + const id = uuidv4(); + // Keep our own data, without retaining LiveKit's span or historical chat context. + const row: Row = { + id, + name, + span: !args + ? owner!.span + : parent + ? parent.span.startSpan(args) + : startSpan(args), + owner, + session: name === "agent_session" ? id : parent!.session, + turn: name === "user_turn" || name === "agent_turn" ? id : parent?.turn, + replyTo: parent?.replyTo, + start, + ended: false, + attributes: new Map(Object.entries(options.attributes ?? {})), + events: [], + status: { code: 0 }, + }; + this.rows.set(id, row); + if (owner) return row; + if (name === "agent_session") { + const relationships = new Relationships(); + this.sessions.set(id, { + root: row, + relationships, + speech: new SpeechTracker(relationships), + transcripts: new Map(), + recording: isAutoCaptureAttachmentsEnabled() + ? new Recording(row.span, this.streamingAttachmentBufferBytes, (id) => + this.rows.get(id), + ) + : undefined, + closed: false, + }); + } + const state = this.sessions.get(row.session)!; + const scope = this.context.getStore(); + if (name === "user_speaking" || name === "agent_speaking") + state.speech.add(row); + if (name === "user_speaking") + for (const stt of state.transcripts.get(row.turn ?? "") ?? []) + state.relationships.link(row.span, stt.span, "transcribed_by"); + if (name === "llm_node" && scope) scope.inference.model = row; + if ( + (name === "tts_node" || name === "agent_speaking") && + scope?.inference.model + ) + state.relationships.link( + row.span, + scope.inference.model.span, + "generated_by", + ); + const current = scope?.row?.session === row.session ? scope.row : undefined; + if (name === "function_tool" && current?.name === "llm_node") + state.relationships.link(row.span, current.span, "requested_by"); + if (name === "agent_turn" && current?.name === "user_turn") + row.replyTo = current.span.spanId; + if (row.turn || row.replyTo) + row.span.log({ + metadata: { + ...(row.turn + ? { "turn.id": this.rows.get(row.turn)?.span.spanId } + : {}), + ...(row.replyTo ? { "turn.reply_to": row.replyTo } : {}), + }, + }); + return row; + } + + private end(row: Row): void { + const attrs = nativeFields(row.attributes); + const events = row.events; + row.attributes = new Map(); + row.events = []; + const state = this.sessions.get(row.session); + if (!row.owner) { + row.span.log(endEvent(row, attrs, events)); + if (state) correlate(row, attrs, state.relationships); + if (row.name === "user_speaking") + state?.recording?.selectInput( + row.id, + row.start * 1000, + row.end! * 1000, + ); + row.span.end({ endTime: row.end }); + } else if (row.name === "llm_request") { + // Native request spans duplicate the public inference lifecycle. + row.span.log(modelFields(attrs)); + } + if (row.name === "agent_session") void this.closeSession(row.id); + if (state?.closed) this.clearSession(row.session); + } + + scope(native: LiveKitSpan | undefined, fn: () => T): T { + if (!native) return fn(); + const found = this.rowOf(native); + // Unobserved spans keep parenting local but inherit the enclosing session row. + const outer = this.context.getStore(); + const row = found ? (found.owner ?? found) : outer?.row; + const inference = found + ? { model: found.name === "llm_node" ? found : undefined } + : (outer?.inference ?? {}); + return this.context.run({ native, row, inference }, () => + found ? withCurrent(row!.span, fn) : fn(), + ); + } + + inference(fn: () => T): T { + // Only tracked sessions suppress duplicate provider spans. The suppressed + // inference worker excludes the pipeline and user tools. + const scope = this.context.getStore(); + if (!scope?.row) return fn(); + const result = runWithAutoInstrumentationSuppressed(fn); + // LiveKit's inference factory returns [task, generationData]. The data ID + // is the committed message ID, not the provider's response ID. + const data: any = Array.isArray(result) ? result[1] : undefined; + const model = scope.inference.model; + if (model && typeof data?.id === "string") + this.sessions + .get(model.session) + ?.relationships.register(`generation:${data.id}`, model.span); + return result; + } + + /** LiveKit records STT only as user turn attributes; give each final transcript a span. */ + stt(recognition: AudioRecognition, event: SpeechEvent): void { + const alternative = event.alternatives?.[0]; + if (event.type !== FINAL_TRANSCRIPT || !alternative?.text) return; + const turn = this.rowOf(recognition.userTurnSpan); + const parent = + turn && !turn.ended + ? turn + : this.rowOf( + recognition.rootSpanContext?.getValue(OTEL_SPAN_KEY) as + | LiveKitSpan + | undefined, + ); + const state = parent && this.sessions.get(parent.session); + if (!parent || !state) return; + const transcripts = + parent === turn ? (state.transcripts.get(turn.id) ?? []) : []; + const end = event.createdAt ?? Date.now(); + const aligned = + alternative.startTime && recognition.inputStartedAt !== undefined + ? recognition.inputStartedAt + alternative.startTime * 1000 + : undefined; + const start = Math.min( + end, + aligned ?? transcripts.at(-1)?.end ?? parent.start * 1000, + ); + const { model = recognition.sttModel, provider = recognition.sttProvider } = + recognition.sttIdentity?.() ?? {}; + const span = parent.span.startSpan( + withSpanInstrumentationName( + { name: "stt", type: "task" as const, startTime: start / 1000 }, + INSTRUMENTATION_NAMES.LIVEKIT, + ), ); - for (const key of [ - "pipeline", - "conversation", - "userCompleted", - "start", - "input", - "output", - "activity", - "userTurn", - ] as const) { - this.unsubscribers.push( - livekitChannels[key].intercept( - (target: any, self: any, args: unknown[]): any => { - observe(() => { - const rt = runtime(); - if (key === "conversation") - rt?.conversation(self, args[0] as ChatMessage); - if (key === "start") rt?.begin(self); - if (key === "input") - rt?.input(self, args[0] as ReadableStream); - if (key === "output") rt?.output(self); - if (key === "activity") rt?.output(self.agentSession); - if (key === "userTurn") - rt?.userTurn(self, args[0] as EndOfTurnInfo); - }); - const rt = runtime(); - if (rt && (key === "userCompleted" || key === "pipeline")) { - const first = args[0] as any; - return rt.scope( - key === "userCompleted" ? first?.userTurnSpan : first?.span, - () => Reflect.apply(target, self, args), - ); - } - return Reflect.apply(target, self, args); + span.log({ + output: [{ role: "user", content: alternative.text }], + metadata: { + ...(model ? { model } : {}), + ...(provider ? { provider } : {}), + ...(alternative.confidence !== undefined + ? { "contrib.livekit.transcript_confidence": alternative.confidence } + : {}), + ...(alternative.language + ? { "contrib.livekit.language": alternative.language } + : {}), + ...(event.requestId + ? { "contrib.livekit.provider_request_id": event.requestId } + : {}), + ...(parent.turn + ? { "turn.id": this.rows.get(parent.turn)?.span.spanId } + : {}), + }, + }); + span.end({ endTime: end / 1000 }); + if (parent !== turn || transcripts.length >= MAX_EVENTS) return; + transcripts.push({ span, end }); + state.transcripts.set(turn.id, transcripts); + for (const row of this.rows.values()) + if (row.name === "user_speaking" && row.turn === turn.id) + state.relationships.link(row.span, span, "transcribed_by"); + } + + conversation(session: AgentSession, item: ChatMessage): void { + const state = this.sessionOf(session); + if (item?.type !== "message" || !state) return; + const current = this.context.getStore()?.row; + const turn = + (current?.session === state.root.id ? current.turn : undefined) ?? + (item.role === "assistant" + ? this.rowOf(session.activity?.currentSpeech?._agentTurnSpan)?.id + : undefined); + // LiveKit falls back to the entire generated text on partial playback when + // its output has no synchronized transcript. That fallback is not heard text. + // A pipeline commit can include earlier fully played segments followed by the + // synchronized partial suffix, so keep a verified prefix too. + const heard = this.rowOf(session.agentSpeakingSpan)?.playedText; + const textContent = + item.role === "assistant" && item.interrupted + ? heard !== undefined && item.textContent?.endsWith(heard) + ? item.textContent + : heard + : item.textContent; + state.speech.message({ ...item, textContent }, turn); + } + + input(activity: AgentActivity, stream: ReadableStream): void { + this.sessionOf(activity.agentSession)?.recording?.attachInput(stream); + } + + output(session: AgentSession): void { + const state = this.sessionOf(session); + const sink = session.output?.audio ?? undefined; + if (!state || state.closing || state.playback?.sink === sink) return; + state.playback?.close(); + state.playback = sink + ? new Playback( + sink, + session, + (text) => { + const row = this.rowOf(session.agentSpeakingSpan); + if (row) row.playedText = text; }, + state.recording, + ) + : undefined; + } + + userTurn(activity: AgentActivity, info: EndOfTurnInfo): void { + const state = this.sessionOf(activity.agentSession); + const turn = this.rowOf(info.userTurnSpan)?.id; + const { startedSpeakingAt, stoppedSpeakingAt } = info; + if (!state || !turn || startedSpeakingAt === undefined) return; + state.speech.recognize(turn, startedSpeakingAt); + // Native recognition speech boundaries share the local wall clock. Clip actual captured + // samples; never derive selection from the broader user_turn span's start/end timestamps. + if (stoppedSpeakingAt !== undefined) + state.recording?.selectInput(turn, startedSpeakingAt, stoppedSpeakingAt); + } + + closeSession(session: LiveKitSpan | string | undefined): Promise { + const state = this.sessions.get( + typeof session === "string" ? session : (this.rowOf(session)?.id ?? ""), + ); + if (!state) return Promise.resolve(); + if (!state.closing) { + state.playback?.close(); + state.playback = undefined; + const done = () => { + state.closed = true; + this.clearSession(state.root.id); + }; + state.closing = state.recording + ? state.recording.finish().then(done) + : Promise.resolve(done()); + } + return state.closing; + } + + private clearSession(id: string) { + const state = this.sessions.get(id); + // Native children (notably tools) can outlive session end. Retain ownership until + // every native operation finishes, even after the recording has finalized. + if ( + !state || + [...this.rows.values()].some((row) => row.session === id && !row.ended) + ) + return; + state.speech.finish(state.root.span); + for (const [key, row] of this.rows) + if (row.session === id) this.rows.delete(key); + this.sessions.delete(id); + } + + async shutdown(): Promise { + this.disabled = true; + await Promise.all( + [...this.sessions.keys()].map((id) => this.closeSession(id)), + ); + for (const row of this.rows.values()) { + if (row.ended) continue; + row.ended = true; + if (row.owner) continue; + row.span.log({ + metadata: { + [row.turn === row.id + ? "turn.incomplete" + : "contrib.livekit.incomplete"]: true, + "contrib.livekit.termination": "processor_shutdown", + }, + }); + row.span.end(); + } + for (const state of this.sessions.values()) + state.speech.finish(state.root.span); + this.rows.clear(); + this.sessions.clear(); + } +} + +function spanTimeSeconds(time: SpanTime = Date.now()): number { + if (Array.isArray(time)) return time[0] + time[1] / 1e9; + return (time instanceof Date ? time.getTime() : time) / 1000; +} +function nativeFields(fields: Iterable<[string, unknown]>) { + return Object.fromEntries( + [...fields].map(([key, value]) => [ + key.startsWith("lk.") ? `contrib.livekit.${key.slice(3)}` : key, + value, + ]), + ); +} +function isContentKey(key: string): boolean { + return ( + key.includes(".pii.") || + /^gen_ai\.(input\.|output\.|system_instructions|tool\.(definitions|call\.(arguments|result)|description))/.test( + key, + ) + ); +} + +function endEvent( + row: Row, + attrs: Record, + events: Row["events"], +) { + const { metrics, metadata: model } = modelFields(attrs); + const toolName = attrs["contrib.livekit.function_tool.name"]; + return { + metadata: { + ...Object.fromEntries( + Object.entries(attrs).filter( + ([key]) => !isContentKey(key) && !key.startsWith("langfuse."), ), + ), + ...(events.length + ? { + "contrib.livekit.events": events.map((event) => ({ + name: event.name, + time_unix_ms: event.time * 1000, + attributes: nativeFields(Object.entries(event.attributes ?? {})), + })), + } + : {}), + ...model, + }, + ...(row.name === "llm_node" ? { metrics } : {}), + ...(typeof toolName === "string" + ? { span_attributes: { name: toolName, type: "tool" as const } } + : {}), + ...(row.status.code === 2 + ? { error: row.status.message ?? "LiveKit operation failed" } + : {}), + ...content(row.name, attrs), + }; +} + +// LiveKit's native OTel payloads are JSON values, not OpenAI message objects. +// Normalize just the conversational surface; audio bytes are handled by Recording. +function content(name: string, attrs: Record) { + if (name === "llm_node") { + const input = messages(attrs["contrib.livekit.pii.chat_ctx"]); + const text = attrs["contrib.livekit.pii.response.text"]; + const calls = parse(attrs["contrib.livekit.pii.response.function_calls"]); + const output = messages([ + ...(typeof text === "string" && text + ? [{ role: "assistant", content: text }] + : []), + ...(Array.isArray(calls) + ? calls.map((call) => ({ ...call, type: "function_call" })) + : []), + ]); + return { + ...(input ? { input } : {}), + ...(output?.length ? { output } : {}), + }; + } + if (name === "tts_node") { + const text = attrs["contrib.livekit.pii.input_text"]; + return typeof text === "string" + ? { input: { text }, output: [{ role: "assistant", content: text }] } + : {}; + } + if (name === "function_tool") + return { + input: parse(attrs["contrib.livekit.pii.function_tool.arguments"]), + output: parse(attrs["contrib.livekit.pii.function_tool.output"]), + }; + return {}; +} + +function parse(value: unknown): unknown { + if (typeof value !== "string") return value; + try { + return JSON.parse(value); + } catch { + return value; + } +} +function stringify(value: unknown): string { + return typeof value === "string" ? value : (JSON.stringify(value) ?? ""); +} +function text(value: unknown): string { + if (typeof value === "string") return value; + return Array.isArray(value) ? value.map(text).join("") : ""; +} + +type Message = { + role: string; + content: string | null; + tool_calls?: { + id: string; + type: "function"; + function: { name: string; arguments: string }; + }[]; + tool_call_id?: string; +}; +function messages(value: unknown): Message[] | undefined { + const parsed = parse(value); + const items = isObject(parsed) ? parsed.items : parsed; + if (!Array.isArray(items)) return; + return items.flatMap((item): Message[] => { + if (!isObject(item)) return []; + const callId = item.call_id; + if (item.type === "function_call") + return typeof callId === "string" && typeof item.name === "string" + ? [ + { + role: "assistant", + content: null, + tool_calls: [ + { + id: callId, + type: "function", + function: { + name: item.name, + arguments: stringify(item.arguments), + }, + }, + ], + }, + ] + : []; + if (item.type === "function_call_output") + return typeof callId === "string" + ? [ + { + role: "tool", + content: stringify(item.output), + tool_call_id: callId, + }, + ] + : []; + return typeof item.role === "string" + ? [{ role: item.role, content: text(item.content) || null }] + : []; + }); +} + +function modelFields(attrs: Record) { + const metrics: Record = {}; + for (const [target, source] of Object.entries(METRICS)) { + const value = attrs[source]; + if (typeof value === "number" && Number.isFinite(value) && value >= 0) + metrics[target] = value; + } + if ( + metrics.prompt_tokens !== undefined && + metrics.completion_tokens !== undefined + ) + metrics.tokens = metrics.prompt_tokens + metrics.completion_tokens; + const model = attrs["gen_ai.response.model"] ?? attrs["gen_ai.request.model"]; + const provider = attrs["gen_ai.provider.name"]; + return { + metrics, + metadata: { + ...(typeof model === "string" ? { model } : {}), + ...(typeof provider === "string" ? { provider } : {}), + }, + }; +} + +/** Links native call, message, and tool identities between exported spans. */ +function correlate( + row: Row, + attrs: Record, + relationships: Relationships, +) { + const calls = parse(attrs["contrib.livekit.pii.response.function_calls"]); + if (Array.isArray(calls)) + for (const call of calls) + if (typeof call?.call_id === "string") + relationships.register(`request:${call.call_id}`, row.span); + const callId = attrs["gen_ai.tool.call.id"]; + if (row.name === "function_tool" && typeof callId === "string") { + relationships.register(`tool:${callId}`, row.span); + relationships.reference(row.span, `request:${callId}`, "requested_by"); + } + if (row.name !== "llm_node") return; + const context = parse(attrs["contrib.livekit.pii.chat_ctx"]); + const items = isObject(context) ? context.items : undefined; + if (!Array.isArray(items)) return; + for (const item of items) { + if ( + item?.type === "function_call_output" && + typeof item.call_id === "string" + ) + relationships.reference( + row.span, + `tool:${item.call_id}`, + "consumes_tool_result", ); + else if (item?.type === "message" && typeof item.id === "string") + relationships.reference(row.span, `speech:${item.id}`, "input_context"); + } +} + +type Relationship = + | "input_context" + | "requested_by" + | "consumes_tool_result" + | "generated_by" + | "transcribed_by"; +type Link = { + context: { traceId: string; spanId: string; traceFlags: number }; + attributes: { "braintrust.relationship.type": Relationship }; +}; + +/** Session-local identity resolution. A late transcript or tool can resolve an earlier link. */ +class Relationships { + private warned = false; + private targets = new Map(); + private waiting = new Map>(); + private links = new Map>(); + + register(id: string, target: Span): void { + this.targets.set(id, target); + for (const [source, relationship] of this.waiting.get(id) ?? []) + this.link(source, target, relationship); + this.waiting.delete(id); + } + + reference(source: Span, id: string, relationship: Relationship): void { + const target = this.targets.get(id); + if (target) this.link(source, target, relationship); + else if (this.waiting.size < MAX_ROWS) { + const waiting = this.waiting.get(id) ?? new Map(); + waiting.set(source, relationship); + this.waiting.set(id, waiting); } - this.unsubscribers.push( - livekitChannels.close.intercept(async (target, self, args) => { - try { - return await Reflect.apply(target, self, args); - } finally { - try { - const rt = runtime(); - const finished = rt?.finish(self as AgentSession); - if (rt?.automatic) await finished; - else void finished?.catch(() => {}); - } catch { - /* Keep shutdown usable. */ + } + + link(source: Span, target: Span, relationship: Relationship): void { + if (source.spanId === target.spanId) return; + // Legacy UUID ID generators cannot be represented as OTel contexts. Do not + // fabricate an identity that would point at a different exported span. + if ( + !/^[0-9a-f]{32}$/.test(target.rootSpanId) || + !/^[0-9a-f]{16}$/.test(target.spanId) || + /^0+$/.test(target.rootSpanId) || + /^0+$/.test(target.spanId) + ) { + if (!this.warned) + debugLogger.warn( + "LiveKit span links require OpenTelemetry-compatible Braintrust IDs; disable BRAINTRUST_LEGACY_IDS.", + ); + this.warned = true; + return; + } + const links = this.links.get(source) ?? new Map(); + const key = `${relationship}:${target.rootSpanId}:${target.spanId}`; + if (links.has(key)) return; + links.set(key, { + context: { + traceId: target.rootSpanId, + spanId: target.spanId, + traceFlags: 1, + }, + attributes: { "braintrust.relationship.type": relationship }, + }); + this.links.set(source, links); + // Native rows have no top-level links field, and OTel ingestion does not keep + // links yet. Metadata carries them until links are first-class. + source.log({ metadata: { links: [...links.values()] } }); + } +} + +/** Native speech owns transcripts; transcript arrival never changes its timing. */ +class SpeechTracker { + private rows: Row[] = []; + private recognition = new Map(); + private owners = new Map(); + private pending = new Map(); + + constructor(private relationships: Relationships) {} + + add(row: Row): void { + this.rows.push(row); + for (const { item, turn } of this.pending.values()) + if (item.metrics?.startedSpeakingAt !== undefined) + this.message(item, turn); + } + + recognize(turn: string, startedAt: number): void { + const speech = this.rows.filter( + (row) => row.name === "user_speaking" && row.turn === turn, + ); + if (speech.length !== 1 || !Number.isFinite(startedAt)) return; + const start = startedAt / 1000; + this.recognition.set( + start, + !this.recognition.has(start) || this.recognition.get(start) === speech[0] + ? speech[0] + : undefined, + ); + } + + finish(root: Span): void { + if (this.pending.size) + root.log({ + metadata: { + "contrib.livekit.unassociated_messages": [ + ...this.pending.values(), + ].map(({ item }) => ({ + id: item.id, + role: item.role, + text: item.textContent, + started_speaking_at: item.metrics?.startedSpeakingAt, + })), + }, + }); + } + + message(item: ChatMessage, turn?: string): void { + if (item.role !== "user" && item.role !== "assistant") return; + // Keep only transcript observations, never ChatMessage audio/context payloads. + item = { + type: item.type, + id: item.id, + role: item.role, + textContent: item.textContent, + interrupted: item.interrupted, + metrics: item.metrics && { + startedSpeakingAt: item.metrics.startedSpeakingAt, + }, + }; + const name = item.role === "user" ? "user_speaking" : "agent_speaking"; + const start = item.metrics?.startedSpeakingAt; + const candidates = this.rows.filter((row) => { + if (row.name !== name) return false; + if (start !== undefined && Number.isFinite(start)) + return ( + start >= row.start - 0.001 && + (row.end === undefined || start <= row.end + 0.001) + ); + if (turn) return row.turn === turn; + // A user message can be typed input. Do not assign it to old audio. + return item.role === "assistant" && !row.ended; + }); + const row = + this.owners.get(item.id) ?? + (item.role === "user" && start !== undefined + ? this.recognition.get(start) + : undefined) ?? + (candidates.length === 1 ? candidates[0] : undefined); + if (!row) { + if (this.pending.size < MAX_ROWS) + this.pending.set(item.id, { item, turn }); + return; + } + this.pending.delete(item.id); + this.owners.set(item.id, row); + this.relationships.register(`speech:${item.id}`, row.span); + if (item.role === "assistant") + this.relationships.reference( + row.span, + `generation:${item.id}`, + "generated_by", + ); + const messages = (row.messages ??= new Map()); + messages.set(item.id, item.textContent); + row.span.log({ + ...(item.textContent !== undefined + ? { + [item.role === "user" ? "input" : "output"]: [...messages.values()] + .filter((content) => content !== undefined) + .map((content) => ({ role: item.role, content })), + } + : {}), + metadata: { + "contrib.livekit.message_ids": [...messages.keys()], + ...(item.interrupted ? { "contrib.livekit.interrupted": true } : {}), + }, + }); + } +} + +type Packet = { + pcm: Int16Array; + rate: number; + channels: number; + channel: number; + /** Session-clock offset in milliseconds; relative to its run while staged. */ + at: number; +}; +type Interval = { start: number; end: number; channel: number }; +type AudioFile = { + id: string; + start: number; + end: number; + channels: number[]; + metadata: NonNullable>["metadata"]; + state: "pending" | "ready" | "omitted"; + reason?: string; +}; + +const inputs = new WeakMap(); +const sinks = new WeakMap(); + +/** LiveKit's call clock, upload queue, and speech-to-file references. PcmAudio owns the bytes. */ +class Recording { + readonly origin = Date.now(); + /** Session-clock playout that each pending output run may still add audio before. */ + readonly holds = new Map(); + private pcm: PcmAudio; + private files: AudioFile[] = []; + private formats = [ + new Map(), + new Map(), + ]; + private selections = new Map(); + private playbackEvents = new Map(); + private confirmedThroughMs = 0; + private stagedBytes = 0; + private inputStream?: object; + private inputStart?: number; + private inputEnd?: number; + private job?: Promise; + private finishing?: Promise; + reason?: string; + closed = false; + + constructor( + private span: Span, + private chunkBytes: number, + private resolve: (owner: string) => Row | undefined, + ) { + this.pcm = new PcmAudio({ + sampleRate: SAMPLE_RATE, + channels: 2, + maxBufferBytes: Math.min( + Number.MAX_SAFE_INTEGER, + Math.max(32 * 1024 * 1024, 2 * chunkBytes), + ), + }); + } + + get active(): boolean { + return !this.closed && !this.reason; + } + stop(reason: string): void { + this.reason ??= reason; + } + + /** Validates a LiveKit frame, returning its samples while capture continues. */ + private samples(frame: AudioFrame): Int16Array | undefined { + if (!this.active) return; + if ( + !(frame?.data instanceof Int16Array) || + !Number.isInteger(frame.sampleRate) || + frame.sampleRate < 8000 || + frame.sampleRate > 96000 || + ![1, 2].includes(frame.channels) || + frame.data.length % frame.channels + ) { + this.stop("unsupported_frame_format"); + return; + } + return frame.data.length ? frame.data : undefined; + } + + record(packet: Packet): boolean { + if (!this.active) return false; + const durationMs = pcmBytesToMs( + packet.pcm.byteLength, + packet.rate, + packet.channels, + ); + if (packet.at + durationMs > MAX_RECORDING_MS) { + this.stop("duration_limit"); + return false; + } + const bytes = + Math.round( + ((packet.pcm.length / packet.channels) * SAMPLE_RATE) / packet.rate, + ) * 2; + if ( + this.pcm.bufferedByteLength + this.stagedBytes + bytes > + this.pcm.maxBufferBytes + ) { + this.stop("capture_byte_limit"); + return false; + } + try { + this.pcm.update(packet.pcm, { + sampleRate: packet.rate, + channels: packet.channels, + channel: packet.channel, + offsetMs: packet.at, + }); + } catch (error) { + this.stop(error instanceof Error ? error.message : "capture_failed"); + return false; + } + this.formats[packet.channel].set(`${packet.rate}:${packet.channels}`, { + sample_rate_hz: packet.rate, + channel_count: packet.channels, + }); + return true; + } + + /** Copies an output frame until playout confirms or discards it. */ + stage(frame: AudioFrame): Int16Array | undefined { + const data = this.samples(frame); + if (!data) return; + if ( + this.stagedBytes + this.pcm.bufferedByteLength + data.byteLength > + this.pcm.maxBufferBytes + ) { + this.stop("capture_byte_limit"); + return; + } + this.stagedBytes += data.byteLength; + // LiveKit may reuse the frame while captureFrame is awaiting the sink. + return data.slice(); + } + unstage(pcm: Int16Array): void { + this.stagedBytes -= pcm.byteLength; + } + + attachInput(stream: ReadableStream): void { + if (!this.active || typeof stream?.getReader !== "function") return; + if (this.inputStream && this.inputStream !== stream) { + this.stop("input_source_change_unsupported"); + return; + } + const previous = inputs.get(stream); + if (previous && previous !== this && !previous.closed) { + previous.stop("shared_input_unsupported"); + this.stop("shared_input_unsupported"); + return; + } + this.inputStream = stream; + inputs.set(stream, this); + tapInput(stream); + } + + recordInput(frame: AudioFrame): void { + const pcm = this.samples(frame); + if (!pcm) return; + const duration = pcmBytesToMs( + pcm.byteLength, + frame.sampleRate, + frame.channels, + ); + // This input is an ordered PCM stream, including silent samples. Anchor + // once to the session epoch; scheduler jitter is not missing audio. + // Source replacement is rejected rather than joining unrelated clocks. + const at = + this.inputEnd ?? Math.max(0, Date.now() - this.origin - duration); + if ( + !this.record({ + pcm, + rate: frame.sampleRate, + channels: frame.channels, + channel: 0, + at, + }) + ) + return; + this.inputStart ??= at; + this.inputEnd = at + duration; + this.advance(); + } + + /** Select captured input between two wall-clock times for a span. */ + selectInput(owner: string, fromUnixMs: number, toUnixMs: number): void { + if ( + this.inputStart === undefined || + !Number.isFinite(fromUnixMs) || + !Number.isFinite(toUnixMs) + ) + return; + this.select( + owner, + Math.max(this.inputStart, fromUnixMs - this.origin), + Math.min(this.inputEnd!, toUnixMs - this.origin), + 0, + ); + this.publish([owner]); + } + + select(owner: string, start: number, end: number, channel: number): void { + if (!(end > start)) return; + const list = this.selections.get(owner) ?? []; + const previous = list.at(-1); + if ( + previous && + previous.channel === channel && + start >= previous.start && + start <= previous.end + samplesToMs(1) + ) { + previous.end = Math.max(previous.end, end); + return; + } + if (list.length >= MAX_RANGES) { + this.stop("selection_limit"); + return; + } + list.push({ start, end, channel }); + this.selections.set(owner, list); + } + + playbackEvent(owner: string, event: unknown): void { + const events = this.playbackEvents.get(owner) ?? []; + if (events.length < MAX_EVENTS) events.push(event); + this.playbackEvents.set(owner, events); + } + + /** Only cut where neither input nor a queued playback run can still add audio. */ + advance(): void { + const wall = Date.now() - this.origin - 1000; + this.confirmedThroughMs = Math.max( + this.confirmedThroughMs, + Math.min( + wall, + this.inputStream ? (this.inputEnd ?? 0) : wall, + ...this.holds.values(), + ), + ); + this.upload(); + } + + finish(): Promise { + return (this.finishing ??= (async () => { + this.closed = true; + this.upload(); + while (this.job) await this.job; + this.publishFiles(); + })()); + } + + private upload(): void { + if ( + this.job || + !this.pcm.bufferedByteLength || + (this.reason && !this.closed) + ) + return; + const id = `call-${String(this.files.length).padStart(4, "0")}`; + let result: ReturnType; + try { + result = this.pcm.digest({ + maxBytes: this.chunkBytes, + endOffsetMs: this.closed + ? undefined + : Math.min(this.confirmedThroughMs, this.pcm.endOffsetMs), + flush: this.closed, + filename: `${id}.pcm`, + }); + } catch (error) { + this.stop( + error instanceof Error ? error.message : "recording_export_failed", + ); + return; + } + if (!result) return; + const { attachment } = result; + const file: AudioFile = { + id, + start: result.startOffsetMs, + end: result.endOffsetMs, + channels: result.channels, + metadata: result.metadata, + state: "pending", + }; + this.files.push(file); + this.publishFiles(); + // One ordinary SDK attachment upload at a time; capture continues into the next digest. + this.job = (async () => { + try { + const status = await attachment.upload(); + file.state = status.upload_status === "done" ? "ready" : "omitted"; + } catch { + file.state = "omitted"; + } + if (file.state === "ready") { + this.span.log({ input: { audio: { [id]: attachment.reference } } }); + } else { + file.reason = "recording_export_failed"; + this.stop(file.reason); + } + this.publishFiles(); + if (file.state === "ready") + this.publish( + [...this.selections] + .filter(([, list]) => + list.some((s) => s.start < file.end && s.end > file.start), + ) + .map(([owner]) => owner), + ); + })().finally(() => { + this.job = undefined; + this.upload(); + }); + } + + private publishFiles(): void { + const recordings: Record[] = this.files.map((f) => ({ + id: f.id, + recording_group_id: "call", + state: f.state, + ...(f.reason ? { reason: f.reason } : {}), + ...(f.state === "ready" + ? { + attachment: { + span_id: this.span.spanId, + ref: `/input/audio/${f.id}`, + }, + ...f.metadata, + } + : {}), + sources: f.channels.map((channel_index) => ({ + channel_index, + boundary: channel_index === 0 ? "session_input" : "local_audio_output", + })), + timeline: { + origin_unix_ms: this.origin, + basis: "local_input_arrival_and_output_playout", + recording_start_offset_ms: f.start, + }, + ...(f.state === "omitted" + ? { + gaps: [ + { + start_offset_ms: f.start, + end_offset_ms: f.end, + reason: f.reason, + }, + ], } + : {}), + })); + if (this.reason) + recordings.push({ + id: "call", + recording_group_id: "call", + state: "omitted", + reason: this.reason, + truncated: true, + }); + else if (!recordings.length && this.closed) + recordings.push({ + id: "call", + recording_group_id: "call", + state: "omitted", + reason: "no_audio_observed", + }); + this.span.log({ + metadata: { + "audio.recordings": recordings, + "contrib.livekit.audio.input_formats": [...this.formats[0].values()], + "contrib.livekit.audio.output_formats": [...this.formats[1].values()], + }, + }); + } + + /** Publish each owner's selections within the files uploaded so far. */ + publish(owners: Iterable): void { + const ready = this.files.filter((f) => f.state === "ready"); + const toSample = (ms: number) => samplesToMs(Math.round(msToSamples(ms))); + for (const owner of owners) { + const row = this.resolve(owner); + const intervals = this.selections.get(owner); + if (!row || row.owner || !intervals) continue; + const events = this.playbackEvents.get(owner); + row.span.log({ + metadata: { + "audio.selections": ready.flatMap((f) => + intervals + .map((s) => ({ + recording_span_id: this.span.spanId, + recording_id: f.id, + channel_index: s.channel, + start_offset_ms: Math.max(0, toSample(s.start - f.start)), + end_offset_ms: Math.min( + f.end - f.start, + toSample(s.end - f.start), + ), + })) + .filter((s) => s.end_offset_ms > s.start_offset_ms), + ), + ...(events ? { "contrib.livekit.playback_events": events } : {}), + }, + }); + } + } +} + +// Tap the reader already requested by LiveKit. No tee, prefetch, or extra consumer. +// Keeping the original stream lets LiveKit release/reacquire its lock on handoff. +function tapInput(stream: any) { + const marker = Symbol.for("braintrust.livekit.input"); + if (stream[marker]) return; + Object.defineProperty(stream, marker, { value: true }); + const getReader = stream.getReader; + stream.getReader = function (this: unknown, ...args: unknown[]) { + const reader: ReadableStreamDefaultReader = Reflect.apply( + getReader, + this, + args, + ); + const read = reader.read; + reader.read = async function (this: unknown, ...readArgs: unknown[]) { + const result: ReadableStreamReadResult = await Reflect.apply( + read, + this, + readArgs, + ); + if (!result.done) + runInstrumentation(() => inputs.get(stream)?.recordInput(result.value)); + return result; + }; + return reader; + }; +} + +// The sink keeps its patch for later sessions and routes to its current owner. +function patchSink(sink: any) { + const marker = Symbol.for("braintrust.livekit.output"); + if (sink[marker]) return; + Object.defineProperty(sink, marker, { value: true }); + const { captureFrame, flush, clearBuffer } = sink; + sink.captureFrame = function (this: unknown, ...args: [AudioFrame]) { + const call = (): Promise => Reflect.apply(captureFrame, this, args); + const playback = sinks.get(sink); + return playback ? playback.capture(args[0], call) : call(); + }; + sink.flush = function (this: unknown, ...args: []) { + sinks.get(sink)?.endRun(); + return Reflect.apply(flush, this, args); + }; + sink.clearBuffer = function (this: unknown, ...args: []) { + sinks.get(sink)?.endRun(); + return Reflect.apply(clearBuffer, this, args); + }; +} + +type Run = { + /** Accepted frames awaiting playout confirmation, positioned within the run. */ + frames: Packet[]; + duration: number; + /** The agent_turn and agent_speaking rows this playout belongs to. */ + owner?: string; + speaking?: string; + /** Played ranges recorded before the speaking row is known. */ + unclaimed: { start: number; end: number }[]; + started?: number; + ranges: PlaybackProgressedEvent[]; + finished?: PlaybackFinishedEvent; + inFlight: number; + processed: number; + hadProgress: boolean; +}; + +/** One session's audio sink: heard transcripts and, when recording, confirmed playout. */ +class Playback { + private runs: Run[] = []; + private current?: Run; + private listeners: [string, (event: any) => void][]; + private recording?: Recording; + + constructor( + readonly sink: AudioOutput, + private session: AgentSession, + private heard: (text: string | undefined) => void, + recording?: Recording, + ) { + this.listeners = [ + [ + "playbackFinished", + (event) => runInstrumentation(() => this.finished(event)), + ], + ]; + const previous = recording && sinks.get(sink); + if (previous?.recording) { + previous.recording.stop("shared_output_unsupported"); + recording!.stop("shared_output_unsupported"); + } else if (recording) { + this.recording = recording; + sinks.set(sink, this); + patchSink(sink); + this.listeners.push( + [ + "playbackStarted", + (event) => + runInstrumentation(() => { + if (this.runs[0]) this.runs[0].started = event.createdAt; + }), + ], + [ + "playbackProgressed", + (event) => runInstrumentation(() => this.progressed(event)), + ], + ); + } + for (const [event, listener] of this.listeners) + sink.on(event as "playbackFinished", listener); + } + + close(): void { + for (const [event, listener] of this.listeners) + this.sink.off(event, listener); + if (!this.recording) return; + if (this.runs.some((run) => run.frames.length)) + this.recording.stop("unfinished_output_segment"); + for (const run of this.runs.splice(0)) this.discard(run); + this.current = undefined; + sinks.delete(this.sink); + } + + endRun(): void { + this.current = undefined; + } + + async capture(frame: AudioFrame, call: () => Promise): Promise { + const recording = this.recording!; + let run: Run | undefined; + let pcm: Int16Array | undefined; + let queued = false; + runInstrumentation(() => { + if (!recording.active) return; + run = this.current ??= this.startRun(); + run.inFlight++; + pcm = recording.stage(frame); + }); + try { + const result = await call(); + runInstrumentation(() => { + if (!run || !pcm || !recording.active) return; + queued = true; + run.frames.push({ + pcm, + rate: frame.sampleRate, + channels: frame.channels, + channel: 1, + at: run.duration, + }); + run.duration += pcmBytesToMs( + pcm.byteLength, + frame.sampleRate, + frame.channels, + ); + }); + return result; + } catch (error) { + runInstrumentation(() => recording.stop("output_capture_failed")); + throw error; + } finally { + runInstrumentation(() => { + if (run) { + run.inFlight--; + this.settle(run); } - }), + if (pcm && !queued) recording.unstage(pcm); + }); + } + } + + private startRun(): Run { + const run: Run = { + frames: [], + duration: 0, + owner: observedId(this.session.activity?.currentSpeech?._agentTurnSpan), + unclaimed: [], + ranges: [], + inFlight: 0, + processed: 0, + hadProgress: false, + }; + this.runs.push(run); + this.recording!.holds.set( + run, + Math.max(0, Date.now() - this.recording!.origin - 1000), ); + return run; } - protected onDisable(): void { - for (const unsubscribe of this.unsubscribers.splice(0)) unsubscribe(); + + private progressed(event: PlaybackProgressedEvent): void { + const run = this.runs[0]; + if (!run) return; + if (run.ranges.length >= MAX_RANGES) { + this.recording!.stop("playout_range_limit"); + return; + } + run.hadProgress = true; + run.ranges.push({ + startedAt: event.startedAt, + offset: event.offset, + duration: event.duration, + }); + this.settle(run); + } + + private finished(event: PlaybackFinishedEvent): void { + this.heard( + typeof event.synchronizedTranscript === "string" + ? event.synchronizedTranscript + : undefined, + ); + const run = this.recording && this.runs.find((r) => !r.finished); + if (!run) return; + run.finished = event; + this.settle(run); + } + + private discard(run: Run): void { + for (const frame of run.frames.splice(0)) + this.recording!.unstage(frame.pcm); + this.recording!.holds.delete(run); + } + + /** Map confirmed playout ranges onto staged frames, recording only heard audio. */ + private settle(run: Run): void { + const recording = this.recording!; + const { finished } = run; + if ( + run.inFlight || + (!finished && !run.ranges.length) || + !this.runs.includes(run) + ) + return; + if (finished) { + this.runs.splice(this.runs.indexOf(run), 1); + if (this.current === run) this.current = undefined; + } + if (!recording.active) return this.discard(run); + run.speaking ??= observedId(this.session.agentSpeakingSpan); + if (run.speaking) + for (const played of run.unclaimed.splice(0)) + recording.select(run.speaking, played.start, played.end, 1); + const ranges = run.ranges.splice(0); + if (finished && !run.hadProgress) { + // Sinks without progress events confirm one contiguous run from its start. + if (run.started !== undefined && !finished.interrupted) + ranges.push({ + startedAt: run.started, + offset: 0, + duration: Math.min(run.duration, finished.playbackPosition * 1000), + }); + else if (run.duration) { + recording.stop("output_playout_mapping_unavailable"); + return this.discard(run); + } + } + for (const range of ranges) { + if ( + ![range.startedAt, range.offset, range.duration].every( + Number.isFinite, + ) || + range.offset < run.processed - samplesToMs(1) || + range.duration < 0 + ) { + recording.stop("invalid_playout_range"); + break; + } + const end = range.offset + range.duration; + for (const frame of run.frames) { + const frameEnd = + frame.at + + pcmBytesToMs(frame.pcm.byteLength, frame.rate, frame.channels); + const from = Math.max(frame.at, range.offset); + const to = Math.min(frameEnd, end); + if (to <= from) continue; + const pcm = frame.pcm.subarray( + Math.round(msToSamples(from - frame.at, frame.rate)) * frame.channels, + Math.round(msToSamples(to - frame.at, frame.rate)) * frame.channels, + ); + const at = Math.max( + 0, + range.startedAt - recording.origin + from - range.offset, + ); + if (!recording.record({ ...frame, pcm, at })) continue; + const played = { + start: at, + end: at + pcmBytesToMs(pcm.byteLength, frame.rate, frame.channels), + }; + if (run.owner) recording.select(run.owner, played.start, played.end, 1); + if (run.speaking) + recording.select(run.speaking, played.start, played.end, 1); + else if (run.unclaimed.length < MAX_RANGES) run.unclaimed.push(played); + else recording.stop("selection_limit"); + } + run.processed = end; + // Only confirmed output advances this hold. Generated/queued audio never does. + recording.holds.set( + run, + Math.max(0, range.startedAt - recording.origin + range.duration), + ); + } + run.frames = run.frames.filter((frame) => { + const consumed = + finished || + !recording.active || + frame.at + + pcmBytesToMs(frame.pcm.byteLength, frame.rate, frame.channels) <= + run.processed + samplesToMs(1); + if (consumed) recording.unstage(frame.pcm); + return !consumed; + }); + if (finished) { + recording.holds.delete(run); + if (run.owner) + recording.playbackEvent(run.owner, { + name: "playbackFinished", + time_unix_ms: Date.now(), + attributes: { + playbackPosition: finished.playbackPosition, + interrupted: finished.interrupted, + ...(finished.synchronizedTranscript !== undefined + ? { synchronizedTranscript: finished.synchronizedTranscript } + : {}), + }, + }); + recording.publish( + [run.owner, run.speaking].filter((id): id is string => !!id), + ); + } + recording.advance(); } } + +export const _exportsForTestingOnly = { LiveKitTracing, Recording, Playback }; diff --git a/js/src/instrumentation/registry.test.ts b/js/src/instrumentation/registry.test.ts index fb8707de4..b0a36ba5e 100644 --- a/js/src/instrumentation/registry.test.ts +++ b/js/src/instrumentation/registry.test.ts @@ -18,6 +18,13 @@ vi.mock("../isomorph", () => ({ })); import { configureInstrumentation, registry } from "./registry"; +import { LiveKitPlugin } from "./plugins/livekit-plugin"; + +afterEach(() => { + delete (globalThis as Record)[ + Symbol.for("braintrust.instrumentation.config") + ]; +}); const mockNewInvocationHook = newGlobalInvocationHook as ReturnType< typeof vi.fn @@ -124,6 +131,75 @@ describe("Plugin Registry", () => { } }); + it("shares startup integration settings with a separately bundled registry", () => { + const bootstrap = new (registry.constructor as any)(); + const sdk = new (registry.constructor as any)(); + bootstrap.configure({ integrations: { openai: false, livekit: false } }); + mockNewInvocationHook.mockClear(); + try { + sdk.enable(); + const names = mockNewInvocationHook.mock.calls.map(([name]) => name); + expect(names.some((name) => name.startsWith("orchestrion:openai:"))).toBe( + false, + ); + expect( + names.some((name) => name.startsWith("orchestrion:@livekit/agents:")), + ).toBe(false); + expect( + names.some((name) => name.startsWith("orchestrion:@anthropic-ai/sdk:")), + ).toBe(true); + } finally { + sdk.disable(); + } + }); + + it.each([undefined, 8192])( + "passes the %s-byte threshold from a separately bundled registry to LiveKit", + (streamingAttachmentBufferBytes) => { + const bootstrap = new (registry.constructor as any)(); + const sdk = new (registry.constructor as any)(); + const thresholds: number[] = []; + const enable = vi + .spyOn(LiveKitPlugin.prototype, "enable") + .mockImplementation(function (this: LiveKitPlugin) { + thresholds.push(Reflect.get(this, "streamingAttachmentBufferBytes")); + }); + try { + bootstrap.configure({ streamingAttachmentBufferBytes }); + // A later integration-only update must preserve the shared threshold. + sdk.configure({ integrations: { openai: false } }); + sdk.enable(); + expect(thresholds).toEqual([ + streamingAttachmentBufferBytes ?? 4 * 1024 * 1024, + ]); + } finally { + sdk.disable(); + enable.mockRestore(); + } + }, + ); + + it.each([0, 1.5])( + "rejects an invalid threshold (%s) without changing startup settings", + (streamingAttachmentBufferBytes) => { + const testRegistry = new (registry.constructor as any)(); + testRegistry.configure({ streamingAttachmentBufferBytes: 1024 }); + expect(() => + testRegistry.configure({ streamingAttachmentBufferBytes }), + ).toThrow( + "streamingAttachmentBufferBytes must be a positive safe integer", + ); + expect( + Reflect.get( + globalThis, + Symbol.for("braintrust.instrumentation.config"), + ), + ).toMatchObject({ + streamingAttachmentBufferBytes: 1024, + }); + }, + ); + it("should allow configuration before enable", () => { const testRegistry = new (registry.constructor as any)(); const warnSpy = [] as string[]; diff --git a/js/src/instrumentation/registry.ts b/js/src/instrumentation/registry.ts index 7bd4809fd..2d1260082 100644 --- a/js/src/instrumentation/registry.ts +++ b/js/src/instrumentation/registry.ts @@ -44,34 +44,26 @@ function getSharedState(): Record | undefined { : undefined; } +// The standalone instrumentation entrypoint is bundled separately from the SDK. +// Share startup settings just as we share the active registry and span customizers. +const CONFIG_KEY = Symbol.for("braintrust.instrumentation.config"); +const sharedConfig: typeof globalThis & { + [CONFIG_KEY]?: InstrumentationConfig; +} = globalThis; + class PluginRegistry { private braintrustPlugin: BraintrustPlugin | null = null; - private config: InstrumentationConfig = {}; private enabled = false; + private get config(): InstrumentationConfig { + return sharedConfig[CONFIG_KEY] ?? {}; + } + /** * Configure which integrations should be enabled. - * This must be called before any SDK imports to take effect. LiveKit-only - * options may also be configured before its first native span. + * This must be called before any SDK imports to take effect. */ configure(config: InstrumentationConfig): void { - // Importing braintrust enables plugins before users can call this API. - // Forward LiveKit-only settings so its integration can accept configuration - // until first use; the LiveKit plugin owns that restriction. Other plugins - // retain their existing configuration lifecycle. - if ( - this.enabled && - Object.keys(config).every((k) => k === "integrations") && - config.integrations && - "livekit" in config.integrations && - Object.keys(config.integrations).every((k) => k === "livekit") - ) { - const disabled = this.readEnvConfig().integrations?.livekit === false; - this.braintrustPlugin?.configureLiveKit( - disabled ? false : config.integrations.livekit, - ); - return; - } if (this.enabled) { // eslint-disable-next-line no-restricted-properties -- preserving intentional console usage. console.warn( @@ -80,10 +72,19 @@ class PluginRegistry { ); return; } + if ( + config.streamingAttachmentBufferBytes !== undefined && + (!Number.isSafeInteger(config.streamingAttachmentBufferBytes) || + config.streamingAttachmentBufferBytes <= 0) + ) { + throw new Error( + "streamingAttachmentBufferBytes must be a positive safe integer", + ); + } if ("spanCustomizers" in config) { setSpanCustomizers(config.spanCustomizers); } - this.config = { ...this.config, ...config }; + sharedConfig[CONFIG_KEY] = { ...this.config, ...config }; } /** @@ -110,6 +111,8 @@ class PluginRegistry { // Read config from environment variables const envConfig = this.readEnvConfig(); const finalConfig = { + streamingAttachmentBufferBytes: + this.config.streamingAttachmentBufferBytes, integrations: { ...this.getDefaultConfig(), ...this.config.integrations, diff --git a/js/src/node/config.ts b/js/src/node/config.ts index 8d7c6c05f..6b3f37802 100644 --- a/js/src/node/config.ts +++ b/js/src/node/config.ts @@ -1,4 +1,3 @@ -import { configureLiveKit } from "../instrumentation/livekit/node/auto"; import { AsyncLocalStorage } from "node:async_hooks"; import * as path from "node:path"; import * as fs from "node:fs/promises"; @@ -25,9 +24,6 @@ const BRAINTRUST_ENV_SEARCH_PARENT_LIMIT = 64; export function configureNode() { iso.buildType = "node"; - // Register LiveKit's Node-only setup without exposing package loading to - // browser plugins. Recording resources are created only after opt-in. - configureLiveKit(); iso.getRepoInfo = getRepoInfo; iso.getPastNAncestors = getPastNAncestors; diff --git a/js/src/pcm-audio.test.ts b/js/src/pcm-audio.test.ts new file mode 100644 index 000000000..578354fb6 --- /dev/null +++ b/js/src/pcm-audio.test.ts @@ -0,0 +1,177 @@ +import { expect, test } from "vitest"; +import { PcmAudio } from "./pcm-audio"; + +const MAX = Number.MAX_SAFE_INTEGER; +// Without a chunk-sized limit, flush consumes everything through the cut. +const all = { maxBytes: MAX, flush: true }; +async function bytes(result: ReturnType) { + return Buffer.from(await (await result!.attachment.data()).arrayBuffer()); +} +const samples = (data: Buffer) => + Array.from({ length: data.length / 2 }, (_, i) => data.readInt16LE(i * 2)); +const mono = (sampleRate: number, offsetMs = 0, channel = 0) => ({ + sampleRate, + channels: 1, + channel, + offsetMs, +}); + +test("positioned sources are downmixed and resampled onto separate channels with silent gaps", async () => { + const audio = new PcmAudio({ + sampleRate: 24000, + channels: 2, + encoding: "s16le", + }); + audio.update(new Int16Array([100, 300, 300, 500]), { + sampleRate: 12000, + channels: 2, + channel: 0, + offsetMs: 0, + }); + audio.update(new Int16Array([-1, -2]), mono(24000, 2 / 24, 1)); + const result = audio.digest({ ...all, filename: "speech.pcm" }); + expect(samples(await bytes(result))).toEqual([ + 200, 0, 300, 0, 400, -1, 400, -2, + ]); + expect(result).toMatchObject({ + channels: [0, 1], + startOffsetMs: 0, + metadata: { + mime_type: "audio/pcm", + sample_rate_hz: 24000, + channel_count: 2, + sample_format: "s16le", + duration_ms: 4 / 24, + }, + }); + expect(result!.attachment.reference).toMatchObject({ + filename: "speech.pcm", + content_type: "audio/pcm", + }); + expect(audio.bufferedByteLength).toBe(0); +}); + +test("updates copy input and digests cannot be changed by later writes", async () => { + const audio = new PcmAudio({ sampleRate: 1000, channels: 1 }); + const source = new Int16Array([1, 2, 3, 4]); + audio.update(source, mono(1000)); + source.fill(0); + // Later writes win at overlaps. + audio.update(new Int16Array([9, 8]), mono(1000, 1)); + const first = audio.digest({ ...all, endOffsetMs: 2 }); + expect(samples(await bytes(first))).toEqual([1, 9]); + expect(() => audio.update(new Int16Array([7]), mono(1000, 1))).toThrow( + "capture_clock_discontinuity", + ); + const rest = audio.digest(all); + expect(samples(await bytes(rest))).toEqual([8, 4]); + expect(rest!.startOffsetMs).toBe(first!.endOffsetMs); +}); + +test("cuts preserve resampled audio sample-for-sample", async () => { + const whole = new PcmAudio({ sampleRate: 24000, channels: 2 }); + const split = new PcmAudio({ sampleRate: 24000, channels: 2 }); + const source = Int16Array.from( + { length: 4410 }, + (_, i) => ((i * 157) % 60001) - 30000, + ); + for (const audio of [whole, split]) audio.update(source, mono(44100, 0, 1)); + const pieces = []; + for (const endOffsetMs of [7 / 24, 13.5, 33.125, 99, 100]) + pieces.push(await bytes(split.digest({ ...all, endOffsetMs }))); + expect(Buffer.concat(pieces)).toEqual(await bytes(whole.digest(all))); + expect(split.bufferedByteLength).toBe(0); +}); + +test("bounds storage and output allocation without consuming data on failure", async () => { + const audio = new PcmAudio({ + sampleRate: 1000, + channels: 1, + maxBufferBytes: 4, + }); + audio.update(new Int16Array([1, 2]), mono(1000)); + expect(() => audio.update(new Int16Array([3]), mono(1000, 2))).toThrow( + "capture_byte_limit", + ); + expect(audio.bufferedByteLength).toBe(4); + expect(samples(await bytes(audio.digest(all)))).toEqual([1, 2]); + audio.update(new Int16Array([7]), mono(1000, 1000000)); + expect(() => audio.digest(all)).toThrow("capture_byte_limit"); + expect(audio.digest({ ...all, endOffsetMs: 1000000 })).toBeUndefined(); + expect(samples(await bytes(audio.digest(all)))).toEqual([7]); +}); + +test("rejects invalid formats, incomplete frames, cuts and byte limits", () => { + expect(() => new PcmAudio({ sampleRate: 0, channels: 1 })).toThrow(); + expect(() => new PcmAudio({ sampleRate: 24000, channels: 0 })).toThrow(); + const audio = new PcmAudio({ sampleRate: 24000, channels: 2 }); + const stereo = { sampleRate: 24000, channels: 2, channel: 0, offsetMs: 0 }; + expect(() => audio.update(new Int16Array([1]), stereo)).toThrow( + "incomplete_pcm_frame", + ); + expect(() => + audio.update(new Int16Array([1, 2]), { ...stereo, channel: 2 }), + ).toThrow("unsupported_audio_format"); + expect(() => + audio.update(new Int16Array([1, 2]), { ...stereo, offsetMs: NaN }), + ).toThrow("unsupported_audio_format"); + audio.update(new Int16Array([1, 2]), stereo); + for (const endOffsetMs of [1000, -1]) + expect(() => audio.digest({ ...all, endOffsetMs })).toThrow( + "invalid_digest_offset", + ); + for (const maxBytes of [0, -1, 1.5, NaN, Infinity, MAX + 1]) + expect(() => audio.digest({ maxBytes })).toThrow( + "invalid_digest_byte_limit", + ); + expect(audio.bufferedByteLength).toBe(2); +}); + +test("byte-limited digests wait for confirmed full chunks and flush a final remainder", async () => { + const audio = new PcmAudio({ sampleRate: 1000, channels: 2 }); + const source = Int16Array.from({ length: 6 }, (_, i) => i + 1); + audio.update(source, mono(1000)); + expect(audio.digest({ maxBytes: 8, endOffsetMs: 1 })).toBeUndefined(); + const first = audio.digest({ maxBytes: 8, endOffsetMs: 3 }); + expect(first).toMatchObject({ startOffsetMs: 0, endOffsetMs: 2 }); + expect(audio.digest({ maxBytes: 8, endOffsetMs: 3 })).toBeUndefined(); + const second = audio.digest({ maxBytes: 8, endOffsetMs: 3, flush: true }); + expect(second).toMatchObject({ startOffsetMs: 2, endOffsetMs: 3 }); + const third = audio.digest({ maxBytes: 8 }); + expect(audio.digest({ maxBytes: 8 })).toBeUndefined(); + const last = audio.digest({ maxBytes: 8, flush: true }); + const data = Buffer.concat( + await Promise.all([first, second, third, last].map(bytes)), + ); + expect(samples(data)).toEqual([1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0]); + expect(audio.bufferedByteLength).toBe(0); +}); + +test.each([ + { channels: 1, maxBytes: 1, sizes: [2, 2, 2, 2, 2] }, + { channels: 2, maxBytes: 9, sizes: [8, 8, 4] }, + { channels: 3, maxBytes: 13, sizes: [12, 12, 6] }, +])( + "byte limits align to complete frames for $channels channels", + async ({ channels, maxBytes, sizes }) => { + const audio = new PcmAudio({ sampleRate: 1000, channels }); + audio.update(new Int16Array([1, 2, 3, 4, 5]), mono(1000)); + const files: Buffer[] = []; + while (audio.bufferedByteLength) + files.push(await bytes(audio.digest({ maxBytes, flush: true }))); + expect(files.map((f) => f.length)).toEqual(sizes); + }, +); + +test("byte-limited digests skip empty intervals and retain silence inside a file", async () => { + const audio = new PcmAudio({ sampleRate: 1000, channels: 1 }); + audio.update(new Int16Array([7]), mono(1000, 5)); + audio.update(new Int16Array([9]), mono(1000, 8)); + const first = audio.digest({ maxBytes: 4 }); + expect(first).toMatchObject({ startOffsetMs: 4, endOffsetMs: 6 }); + expect(samples(await bytes(first))).toEqual([0, 7]); + expect(audio.digest({ maxBytes: 4 })).toBeUndefined(); + const last = audio.digest({ maxBytes: 4, flush: true }); + expect(last).toMatchObject({ startOffsetMs: 8, endOffsetMs: 9 }); + expect(samples(await bytes(last))).toEqual([9]); +}); diff --git a/js/src/pcm-audio.ts b/js/src/pcm-audio.ts new file mode 100644 index 000000000..0db45e996 --- /dev/null +++ b/js/src/pcm-audio.ts @@ -0,0 +1,204 @@ +import { Attachment } from "./logger"; + +const MAX_CHUNKS = 100_000; + +type Chunk = { samples: Int16Array; start: number; channel: number }; + +/** + * Incremental signed 16-bit little-endian PCM on a shared sample clock. + * update() copies, resamples, and downmixes a positioned source onto one + * output channel; digest() consumes a prefix into an ordinary attachment. + */ +export class PcmAudio { + private chunks: Chunk[] = []; + private start = 0; + private end = 0; + private bytes = 0; + readonly sampleRate: number; + readonly channels: number; + readonly maxBufferBytes: number; + + constructor(options: { + sampleRate: number; + channels: number; + encoding?: "s16le"; + maxBufferBytes?: number; + }) { + if ( + !Number.isInteger(options.sampleRate) || + options.sampleRate <= 0 || + !Number.isInteger(options.channels) || + options.channels <= 0 || + (options.encoding !== undefined && options.encoding !== "s16le") + ) { + throw new Error("unsupported_audio_format"); + } + this.sampleRate = options.sampleRate; + this.channels = options.channels; + this.maxBufferBytes = options.maxBufferBytes ?? 32 * 1024 * 1024; + if (!Number.isSafeInteger(this.maxBufferBytes) || this.maxBufferBytes <= 0) + throw new Error("invalid_buffer_limit"); + } + + get bufferedByteLength() { + return this.bytes; + } + get endOffsetMs() { + return samplesToMs(this.end, this.sampleRate); + } + + /** Later writes win where sources overlap; digested audio cannot change. */ + update( + data: Int16Array, + { + sampleRate, + channels, + channel, + offsetMs, + }: { + sampleRate: number; + channels: number; + channel: number; + offsetMs: number; + }, + ): this { + if ( + !Number.isInteger(sampleRate) || + sampleRate <= 0 || + !Number.isInteger(channels) || + channels <= 0 || + !Number.isInteger(channel) || + channel < 0 || + channel >= this.channels || + !Number.isFinite(offsetMs) || + offsetMs < 0 + ) + throw new Error("unsupported_audio_format"); + if (data.length % channels) throw new Error("incomplete_pcm_frame"); + const start = Math.round(msToSamples(offsetMs, this.sampleRate)); + if (start < this.start) throw new Error("capture_clock_discontinuity"); + const sourceFrames = data.length / channels; + const frames = Math.round((sourceFrames * this.sampleRate) / sampleRate); + if (this.bytes + frames * 2 > this.maxBufferBytes) + throw new Error("capture_byte_limit"); + if (this.chunks.length >= MAX_CHUNKS) throw new Error("packet_limit"); + let samples: Int16Array; + if (sampleRate === this.sampleRate && channels === 1) + samples = data.slice(); + else { + // Linear interpolation, averaging source channels into the target channel. + samples = new Int16Array(frames); + for (let i = 0; i < frames; i++) { + const position = (i * sampleRate) / this.sampleRate; + const lo = Math.min(Math.floor(position), sourceFrames - 1); + const hi = Math.min(lo + 1, sourceFrames - 1); + const alpha = position - Math.floor(position); + let value = 0; + for (let c = 0; c < channels; c++) { + const a = data[lo * channels + c]; + value += a + (data[hi * channels + c] - a) * alpha; + } + samples[i] = Math.round(value / channels); + } + } + if (frames) this.chunks.push({ samples, start, channel }); + this.bytes += frames * 2; + this.end = Math.max(this.end, start + frames); + return this; + } + + /** + * Consume at most maxBytes through an optional confirmed offset; future + * updates may continue. Waits for a full chunk unless flush is set. Cuts align + * to complete sample frames (at least one), skipping wholly empty intervals. + */ + digest(options: { + maxBytes: number; + endOffsetMs?: number; + flush?: boolean; + filename?: string; + }) { + if (!Number.isSafeInteger(options.maxBytes) || options.maxBytes <= 0) + throw new Error("invalid_digest_byte_limit"); + let end = + options.endOffsetMs === undefined + ? this.end + : Math.round(msToSamples(options.endOffsetMs, this.sampleRate)); + if (!Number.isSafeInteger(end) || end < this.start || end > this.end) + throw new Error("invalid_digest_offset"); + const frames = Math.max( + 1, + Math.floor(options.maxBytes / (this.channels * 2)), + ); + const first = this.chunks.reduce((min, c) => Math.min(min, c.start), end); + // Skip empty chunks without allocating silence or emitting attachments. + this.start += Math.floor((first - this.start) / frames) * frames; + const cut = this.start + frames; + if (end < cut && !options.flush) return; + end = Math.min(end, cut); + const start = this.start; + if (end === start) return; + const included = this.chunks.filter((c) => c.start < end); + if (!included.length) { + this.start = end; + return; + } + const size = (end - start) * this.channels * 2; + if (size > this.maxBufferBytes) throw new Error("capture_byte_limit"); + const bytes = new Uint8Array(size); + const view = new DataView(bytes.buffer); + for (const chunk of included) { + const count = Math.min(end - chunk.start, chunk.samples.length); + for (let i = 0; i < count; i++) + view.setInt16( + ((chunk.start - start + i) * this.channels + chunk.channel) * 2, + chunk.samples[i], + true, + ); + } + const channels = [...new Set(included.map((c) => c.channel))].sort( + (a, b) => a - b, + ); + this.chunks = this.chunks.flatMap((chunk) => { + if (chunk.start >= end) return [chunk]; + const consumed = Math.min(chunk.samples.length, end - chunk.start); + this.bytes -= consumed * 2; + // Copy the tail so it doesn't retain the already digested prefix's allocation. + return consumed === chunk.samples.length + ? [] + : [{ ...chunk, start: end, samples: chunk.samples.slice(consumed) }]; + }); + this.start = end; + return { + attachment: new Attachment({ + data: bytes, + filename: options.filename ?? "audio.pcm", + contentType: "audio/pcm", + }), + metadata: { + mime_type: "audio/pcm", + sample_rate_hz: this.sampleRate, + channel_count: this.channels, + sample_format: "s16le", + duration_ms: samplesToMs(end - start, this.sampleRate), + }, + startOffsetMs: samplesToMs(start, this.sampleRate), + endOffsetMs: samplesToMs(end, this.sampleRate), + channels, + }; + } +} + +export function msToSamples(milliseconds: number, sampleRate = 24000) { + return milliseconds * (sampleRate / 1000); +} +export function samplesToMs(samples: number, sampleRate = 24000) { + return samples / (sampleRate / 1000); +} +export function pcmBytesToMs( + bytes: number, + sampleRate: number, + channels: number, +) { + return samplesToMs(bytes / 2 / channels, sampleRate); +} diff --git a/js/src/vendor-sdk-types/livekit.ts b/js/src/vendor-sdk-types/livekit.ts new file mode 100644 index 000000000..4ba0ec976 --- /dev/null +++ b/js/src/vendor-sdk-types/livekit.ts @@ -0,0 +1,128 @@ +/** Relevant LiveKit 1.9.x boundaries, vendored to avoid a runtime dependency. */ +export interface AudioFrame { + data: Int16Array; + sampleRate: number; + channels: number; +} +export interface SpeechHandle { + _agentTurnSpan?: LiveKitSpan; +} +export interface AgentSession { + sessionSpan?: LiveKitSpan; + agentSpeakingSpan?: LiveKitSpan; + activity?: AgentActivity; + output?: { audio?: AudioOutput | null }; +} +export interface AgentActivity { + agent?: Agent; + agentSession: AgentSession; + audioRecognition?: AudioRecognition; + currentSpeech?: SpeechHandle; +} +export interface AudioRecognition { + userTurnSpan?: LiveKitSpan; + rootSpanContext?: { getValue(key: symbol): unknown }; + inputStartedAt?: number; + sttModel?: string; + sttProvider?: string; + sttIdentity?: () => { model?: string; provider?: string } | undefined; +} +export interface SpeechEvent { + type: number; + alternatives?: { + text: string; + confidence?: number; + language?: string; + startTime?: number; + }[]; + requestId?: string; + createdAt?: number; +} +export interface PlaybackStartedEvent { + createdAt: number; +} +export interface PlaybackProgressedEvent { + startedAt: number; + offset: number; + duration: number; +} +export interface PlaybackFinishedEvent { + playbackPosition: number; + interrupted: boolean; + synchronizedTranscript?: string; +} +export interface AudioOutput { + captureFrame(frame: AudioFrame): Promise; + flush(): void; + clearBuffer(): void; + on( + event: "playbackStarted", + callback: (ev: PlaybackStartedEvent) => void, + ): unknown; + on( + event: "playbackProgressed", + callback: (ev: PlaybackProgressedEvent) => void, + ): unknown; + on( + event: "playbackFinished", + callback: (ev: PlaybackFinishedEvent) => void, + ): unknown; + off(event: string, callback: (...args: never[]) => void): unknown; +} +export interface EndOfTurnInfo { + userTurnSpan?: LiveKitSpan; + startedSpeakingAt?: number; + stoppedSpeakingAt?: number; +} +export interface ChatMessage { + type: string; + id: string; + role?: string; + textContent?: string; + interrupted?: boolean; + metrics?: { startedSpeakingAt?: number }; +} + +export interface LiveKitSpan { + isRecording(): boolean; + spanContext(): { spanId: string }; + setAttribute(key: string, value: unknown): this; + setAttributes(attributes: Record): this; + setStatus(status: { code: number; message?: string }): this; + recordException(error: unknown, time?: SpanTime): void; + addEvent( + name: string, + attributesOrTime?: Record | SpanTime, + time?: SpanTime, + ): this; + end(time?: SpanTime): void; +} +export type SpanTime = number | Date | [number, number]; +export interface TraceOptions { + name: string; + attributes?: Record; + startTime?: SpanTime; + context?: { getValue(key: symbol): unknown }; +} +export interface LiveKitTracer { + startSpan(options: TraceOptions): LiveKitSpan; + startActiveSpan( + fn: (span: LiveKitSpan) => Promise, + options: TraceOptions, + ): Promise; + startActiveSpanSync( + fn: (span: LiveKitSpan) => T, + options: TraceOptions, + ): T; +} +export interface Agent { + llmNode(...args: unknown[]): unknown; + ttsNode(...args: unknown[]): unknown; +} +export interface PipelineOptions { + span: LiveKitSpan; +} +export interface LiveKitModule { + voice: { AgentSession: new (...args: unknown[]) => AgentSession }; + telemetry: { tracer: LiveKitTracer }; +} diff --git a/js/src/wrappers/livekit.test.ts b/js/src/wrappers/livekit.test.ts new file mode 100644 index 000000000..0e8c486bf --- /dev/null +++ b/js/src/wrappers/livekit.test.ts @@ -0,0 +1,31 @@ +import { expect, test, vi } from "vitest"; +import { wrapLiveKit } from "./livekit"; +import { livekitChannels } from "../instrumentation/plugins/livekit-interceptors"; + +test("wraps ESM namespaces and preserves return identity when wrapped twice", () => { + const result = Promise.resolve(); + class AgentSession { + _startImpl() { + return result; + } + } + // Real ESM namespace objects have a null prototype. + const module = Object.assign(Object.create(null), { + voice: Object.assign(Object.create(null), { AgentSession }), + telemetry: Object.assign(Object.create(null), { tracer: {} }), + }); + const observed = vi.fn(); + const remove = livekitChannels.start.intercept((target, receiver, args) => { + observed(receiver); + return Reflect.apply(target, receiver, args); + }); + try { + const wrapped = wrapLiveKit(wrapLiveKit(module)); + const session = new wrapped.voice.AgentSession(); + expect(session).toBeInstanceOf(AgentSession); + expect(session._startImpl()).toBe(result); + expect(observed).toHaveBeenCalledExactlyOnceWith(session); + } finally { + remove(); + } +}); diff --git a/js/src/wrappers/livekit.ts b/js/src/wrappers/livekit.ts new file mode 100644 index 000000000..98d9caff5 --- /dev/null +++ b/js/src/wrappers/livekit.ts @@ -0,0 +1,112 @@ +/* eslint-disable @typescript-eslint/consistent-type-assertions -- vendored LiveKit boundaries. */ +import { livekitChannels } from "../instrumentation/plugins/livekit-interceptors"; +import type { + AgentActivity, + AgentSession, + LiveKitModule, +} from "../vendor-sdk-types/livekit"; + +const wrapped = Symbol.for("braintrust.livekit.wrapped"); + +function wrapMethod( + target: object, + name: string, + hook: { + invoke( + target: (...args: Args) => Result, + receiver: unknown, + args: Args, + additional: object, + ): Result; + }, + before?: () => void, +) { + const methods = target as Record; + const original = methods[name]; + if (typeof original !== "function" || Reflect.get(original, wrapped)) return; + const invoke = original as (...args: Args) => Result; + const fn = function (this: unknown, ...args: Args): Result { + before?.(); + return hook.invoke(invoke, this, args, {}); + }; + Object.defineProperty(fn, wrapped, { value: true }); + methods[name] = fn; +} + +function wrapActivity(activity: AgentActivity | undefined) { + if (!activity) return; + if (activity.agent) { + wrapMethod(activity.agent, "llmNode", livekitChannels.inference); + wrapMethod(activity.agent, "ttsNode", livekitChannels.inference); + } + // The recognizer exists once the activity starts, before it receives audio. + wrapMethod(activity, "attachAudioInput", livekitChannels.input, () => { + if (activity.audioRecognition) + wrapMethod( + activity.audioRecognition, + "processSTTEvent", + livekitChannels.stt, + ); + }); + wrapMethod(activity, "_startSessionImpl", livekitChannels.activity); + wrapMethod(activity, "onEndOfTurn", livekitChannels.userTurn); + wrapMethod(activity, "onStartOfSpeech", livekitChannels.speechStart); + wrapMethod(activity, "userTurnCompleted", livekitChannels.userCompleted); + wrapMethod(activity, "_pipelineReplyTaskImpl", livekitChannels.pipeline); +} + +function wrapSession(session: AgentSession): AgentSession { + wrapMethod(session, "_startImpl", livekitChannels.start); + wrapMethod(session, "closeImpl", livekitChannels.close); + // AgentActivity is not exported. LiveKit reports each new activity's handoff + // item through _conversationItemAdded before activity.start(), so that is the + // first call where the activity exists and none of its hooks have run yet. + wrapMethod( + session, + "_conversationItemAdded", + livekitChannels.conversation, + () => wrapActivity(session.activity), + ); + return session; +} + +/** Wrap the @livekit/agents module before constructing sessions. */ +export function wrapLiveKit(module: T): T { + if ( + !module || + typeof module !== "object" || + !("voice" in module) || + !("telemetry" in module) + ) + return module; + const livekit = module as unknown as LiveKitModule; + const tracer = livekit.telemetry?.tracer; + if (typeof livekit.voice?.AgentSession !== "function" || !tracer) + return module; + wrapMethod(tracer, "startSpan", livekitChannels.startSpan); + wrapMethod(tracer, "startActiveSpan", livekitChannels.startActiveSpan); + wrapMethod( + tracer, + "startActiveSpanSync", + livekitChannels.startActiveSpanSync, + ); + const AgentSession = new Proxy(livekit.voice.AgentSession, { + construct(target, args, newTarget) { + return wrapSession( + Reflect.construct(target, args, newTarget) as AgentSession, + ); + }, + }); + const voice = new Proxy(livekit.voice, { + get(target, key, receiver) { + return key === "AgentSession" + ? AgentSession + : Reflect.get(target, key, receiver); + }, + }); + return new Proxy(module, { + get(target, key, receiver) { + return key === "voice" ? voice : Reflect.get(target, key, receiver); + }, + }); +} From 3c0995141c8636b1fc37170eebf184b7ed7a892c Mon Sep 17 00:00:00 2001 From: lforst <8118419+lforst@users.noreply.github.com> Date: Wed, 21 Oct 2026 09:53:56 +0000 Subject: [PATCH 4/5] test(livekit): Type native span test helper The helper's methods took no parameters, so tsconfig.test.json rejected calls that pass attributes, statuses and times. --- js/src/instrumentation/plugins/livekit-plugin.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/js/src/instrumentation/plugins/livekit-plugin.test.ts b/js/src/instrumentation/plugins/livekit-plugin.test.ts index c1016d26d..18471a8cd 100644 --- a/js/src/instrumentation/plugins/livekit-plugin.test.ts +++ b/js/src/instrumentation/plugins/livekit-plugin.test.ts @@ -15,7 +15,7 @@ import { _exportsForTestingOnly as logging, initLogger, } from "../../logger"; -import type { SpanTime } from "../../vendor-sdk-types/livekit"; +import type { LiveKitSpan, SpanTime } from "../../vendor-sdk-types/livekit"; import { DEFAULT_STREAMING_ATTACHMENT_BUFFER_BYTES } from "../config"; import { channel, defineInterceptor } from "../core/interceptor-definitions"; import { traceAsyncCall } from "../core/tracing"; @@ -56,7 +56,7 @@ afterEach(async () => { }); type NativeSpan = ReturnType; -function nativeSpan() { +function nativeSpan(): LiveKitSpan { return { spanContext: () => ({ spanId: "0000000000000000" }), isRecording: () => false, @@ -73,7 +73,7 @@ function nativeSpan() { return this; }, recordException() {}, - end: vi.fn(), + end: vi.fn<(time?: SpanTime) => void>(), }; } /** Starts a native span the way LiveKit's tracer reports it. */ From 7488476416c621f98a1123f4697f6e0aae163187 Mon Sep 17 00:00:00 2001 From: lforst <8118419+lforst@users.noreply.github.com> Date: Wed, 21 Oct 2026 13:22:35 +0000 Subject: [PATCH 5/5] Update PR #2633 --- dev-packages/seinfeld/src/recorder.ts | 16 +- ...9c5eb2b8d386ba6310cea42c4474d513109648.bin | Bin 0 -> 240000 bytes ...e04ee0db55759c4f0ca7ca181a8444f29d5847.bin | Bin 206400 -> 0 bytes .../livekit-v1-latest-order.cassette.json | 1321 +++++------ ...b727c336637ab92c12ee48cc3229ce26a981ea.bin | Bin 0 -> 129600 bytes ...bed88a67959f022f2975055939ba23aa40913d.bin | Bin 201600 -> 0 bytes ...f914ba97d5c3581878e7ff0fd35b94e78feac3.bin | Bin 223200 -> 0 bytes ...7051e89909a662510de7faf1e35135f689a1b6.bin | Bin 0 -> 129600 bytes .../livekit-v1-latest-recovered.cassette.json | 1308 +++++------ ...d3cbe895067775db0591ee1e08ea2ab97e27bc.bin | Bin 259200 -> 0 bytes ...f54d44abf10884ada2a59d6ab4894d7fca10ba.bin | Bin 0 -> 240000 bytes ...-v1-latest-streaming-cascade.cassette.json | 1073 ++++----- ...v1-latest-streaming-cascade.websocket.json | 238 +- ...vekit-v1-latest-interrupted.span-tree.json | 10 +- ...ivekit-v1-latest-interrupted.span-tree.txt | 10 +- .../livekit-v1-latest-order.span-tree.json | 12 +- .../livekit-v1-latest-order.span-tree.txt | 12 +- ...livekit-v1-latest-recovered.span-tree.json | 24 +- .../livekit-v1-latest-recovered.span-tree.txt | 24 +- ...v1-latest-streaming-cascade.span-tree.json | 69 +- ...-v1-latest-streaming-cascade.span-tree.txt | 69 +- .../livekit-instrumentation/package.json | 19 +- .../livekit-instrumentation/pnpm-lock.yaml | 2017 +--------------- .../livekit-instrumentation/scenario.mjs | 2 +- .../livekit-instrumentation/scenario.test.ts | 41 +- .../versions/livekit-v1-latest/package.json | 12 + .../versions/livekit-v1-latest/pnpm-lock.yaml | 2024 +++++++++++++++++ .../versions/livekit-v1/package.json | 12 + .../versions/livekit-v1/pnpm-lock.yaml | 2023 ++++++++++++++++ js/src/auto-instrumentations/configs/all.ts | 2 +- .../plugins/livekit-plugin.test.ts | 80 +- .../instrumentation/plugins/livekit-plugin.ts | 151 +- js/src/pcm-audio.test.ts | 1 - js/src/pcm-audio.ts | 4 +- js/src/span-origin.ts | 2 +- js/src/wrappers/livekit.ts | 35 +- 36 files changed, 6464 insertions(+), 4147 deletions(-) create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-order.cassette.blobs/6927f56132ae314ce4810364e39c5eb2b8d386ba6310cea42c4474d513109648.bin delete mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-order.cassette.blobs/de150e425fc4cbc47fcd174020e04ee0db55759c4f0ca7ca181a8444f29d5847.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/2408f498df37204f4fd6a53cfdb727c336637ab92c12ee48cc3229ce26a981ea.bin delete mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/3749808ddea87d9af00f9fcd4fbed88a67959f022f2975055939ba23aa40913d.bin delete mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/80bce2b7603b863a773cf80bc0f914ba97d5c3581878e7ff0fd35b94e78feac3.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/c9b6fdecbdbfecada54e270cfe7051e89909a662510de7faf1e35135f689a1b6.bin delete mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.blobs/45057717a88ef704629c6da591d3cbe895067775db0591ee1e08ea2ab97e27bc.bin create mode 100644 e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.blobs/e747dec0066fda3248873cdbaff54d44abf10884ada2a59d6ab4894d7fca10ba.bin create mode 100644 e2e/scenarios/livekit-instrumentation/versions/livekit-v1-latest/package.json create mode 100644 e2e/scenarios/livekit-instrumentation/versions/livekit-v1-latest/pnpm-lock.yaml create mode 100644 e2e/scenarios/livekit-instrumentation/versions/livekit-v1/package.json create mode 100644 e2e/scenarios/livekit-instrumentation/versions/livekit-v1/pnpm-lock.yaml diff --git a/dev-packages/seinfeld/src/recorder.ts b/dev-packages/seinfeld/src/recorder.ts index a4599072f..f6abf4902 100644 --- a/dev-packages/seinfeld/src/recorder.ts +++ b/dev-packages/seinfeld/src/recorder.ts @@ -807,15 +807,25 @@ async function writeFetchResponse( const reader = response.body.getReader(); try { - for (;;) { + while (!res.destroyed) { const { done, value } = await reader.read(); if (done) break; if (!res.write(Buffer.from(value))) { - await new Promise((resolve) => res.once("drain", resolve)); + // A client that disconnects mid-stream never drains. + await new Promise((resolve) => { + const resume = () => { + res.off("drain", resume); + res.off("close", resume); + resolve(); + }; + res.on("drain", resume); + res.on("close", resume); + }); } } } finally { res.end(); - reader.releaseLock(); + if (res.destroyed) await reader.cancel(); + else reader.releaseLock(); } } diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-order.cassette.blobs/6927f56132ae314ce4810364e39c5eb2b8d386ba6310cea42c4474d513109648.bin b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-order.cassette.blobs/6927f56132ae314ce4810364e39c5eb2b8d386ba6310cea42c4474d513109648.bin new file mode 100644 index 0000000000000000000000000000000000000000..60a87ff08b2319c6b86d30dee4ef16e0ce385845 GIT binary patch literal 240000 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℘YFYqeaH<@Q1v6YG~5qXpG7Ur}%u5#28&*wjn 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 Yinuv~xCe_}Gre)E^x`H>k^RqRX_tF*Vo6|0( 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�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 diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/80bce2b7603b863a773cf80bc0f914ba97d5c3581878e7ff0fd35b94e78feac3.bin b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.blobs/80bce2b7603b863a773cf80bc0f914ba97d5c3581878e7ff0fd35b94e78feac3.bin deleted file mode 100644 index 79afd29da340ca9385bf9b49eda00f1aaa938860..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223200 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 z 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 i(JO_Ga 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 DHz5Y_ literal 0 HcmV?d00001 diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.json b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.json index e844a40c8..4143ec5b4 100644 --- a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.json +++ b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-recovered.cassette.json @@ -4,7 +4,7 @@ "callIndex": 0, "id": "0d3776eeb1283b4d", "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-10-09T05:26:50.047Z", + "recordedAt": "2026-10-21T12:47:24.109Z", "request": { "body": { "kind": "json", @@ -53,16 +53,16 @@ "response": { "body": { "chunks": [ - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null,\"tool_calls\":[{\"index\":0,\"id\":\"call_0RwgHcEEw5E8ZuTCXMToa8Xd\",\"type\":\"function\",\"function\":{\"name\":\"lookup_order\",\"arguments\":\"\"}}],\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"Vv\"}", - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"{\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"whiWCRbDiesp8\"}", - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"order\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"KPJT5Jd4Ry8\"}", - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"_id\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"RcuChgId59hTf\"}", - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\":\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"fMGNVWJaWnc\"}", - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"104\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"mIMxRdeYSTZfG\"}", - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"2\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"E4uXwfEqIkAmokC\"}", - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\"}\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"TUTNcBMg7lY1o\"}", - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"usage\":null,\"obfuscation\":\"gR3gU8LsgesQPB\"}", - "data: {\"id\":\"chatcmpl-EWxQ14SAzibIVWEaVk6EBrylRS03B\",\"object\":\"chat.completion.chunk\",\"created\":1791523609,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[],\"usage\":{\"prompt_tokens\":84,\"completion_tokens\":16,\"total_tokens\":100,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"v4Sk4Fo2\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null,\"tool_calls\":[{\"index\":0,\"id\":\"call_GqsRFv0PbsPUIykmjf3gTiNJ\",\"type\":\"function\",\"function\":{\"name\":\"lookup_order\",\"arguments\":\"\"}}],\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"Oc\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"{\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"BhFK0AO6sNgZm\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"order\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"VtWcuhk0Pfn\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"_id\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"o47mHl1tuwwcX\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\":\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"wuiA50Qe32E\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"104\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"3UuXP6dH0HaBN\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"2\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"bJmTBkwEVb82hRL\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\"}\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"XUaWZJ6BUHRM7\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"usage\":null,\"obfuscation\":\"OTh59GevRRwEFo\"}", + "data: {\"id\":\"chatcmpl-EbQ0xc7sYTWrLzRJ4KUFkteoK7w4D\",\"object\":\"chat.completion.chunk\",\"created\":1792586843,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[],\"usage\":{\"prompt_tokens\":84,\"completion_tokens\":16,\"total_tokens\":100,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"CVeP9RMS\"}", "data: [DONE]" ], "kind": "sse" @@ -71,16 +71,18 @@ "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", "alt-svc": "h3=\":443\"; ma=86400", "cf-cache-status": "DYNAMIC", - "cf-ray": "a47af8ffc9ed98a7-ORD", + "cf-ray": "a4e05edcb8ad697c-CDG", + "connection": "keep-alive", "content-type": "text/event-stream; charset=utf-8", - "date": "Fri, 09 Oct 2026 05:26:49 GMT", + "date": "Wed, 21 Oct 2026 12:47:24 GMT", "openai-organization": "braintrust-data", - "openai-processing-ms": "326", + "openai-processing-ms": "218", "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version": "2020-10-01", "server": "cloudflare", "set-cookie": "[REDACTED]", "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "transfer-encoding": "chunked", "x-content-type-options": "nosniff", "x-openai-proxy-wasm": "v0.1", "x-ratelimit-limit-requests": "30000", @@ -89,133 +91,17 @@ "x-ratelimit-remaining-tokens": "149999950", "x-ratelimit-reset-requests": "2ms", "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_5d01586f234d474db99ec2ef898501f8" + "x-request-id": "req_052f71bf4f734005b674be4f7383c0b7" }, - "status": 200 - } - }, - { - "callIndex": 1, - "id": "f009eddbef8e0921", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-10-09T05:26:50.427Z", - "request": { - "body": { - "kind": "json", - "value": { - "messages": [ - { - "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", - "role": "system" - }, - { - "content": "Hi, could you check order 1042 for me?", - "role": "user" - }, - { - "role": "assistant", - "tool_calls": [ - { - "function": { - "arguments": "{\"order_id\":\"1042\"}", - "name": "lookup_order" - }, - "id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd", - "type": "function" - } - ] - }, - { - "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", - "role": "tool", - "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" - } - ], - "model": "gpt-4.1-nano", - "parallel_tool_calls": true, - "stream": true, - "stream_options": { - "include_usage": true - }, - "tool_choice": "auto", - "tools": [ - { - "function": { - "description": "Look up an order delivery status.", - "name": "lookup_order", - "parameters": { - "additionalProperties": false, - "properties": { - "order_id": { - "type": "string" - } - }, - "required": ["order_id"], - "type": "object" - } - }, - "type": "function" - } - ] - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "chunks": [ - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"WRxx87lr\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Your\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"guhmvL\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" order\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"A9Xq\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" \"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"H2ozhR0uv\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"104\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"oz1DfWt\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"2\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"iERMitcjx\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" will\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"MGC6F\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" be\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"xmKZy9v\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" delivered\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" on\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"hNdCFXW\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Friday\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"w2p\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"VVwfRl99k\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"usage\":null,\"obfuscation\":\"4eKD\"}", - "data: {\"id\":\"chatcmpl-EWxQ2XV2CDIs2O6BX1CRb04Wg0q3P\",\"object\":\"chat.completion.chunk\",\"created\":1791523610,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[],\"usage\":{\"prompt_tokens\":125,\"completion_tokens\":12,\"total_tokens\":137,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"wEYc76f\"}", - "data: [DONE]" - ], - "kind": "sse" - }, - "headers": { - "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "a47af902fb9ef859-ORD", - "content-type": "text/event-stream; charset=utf-8", - "date": "Fri, 09 Oct 2026 05:26:50 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "179", - "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", - "openai-version": "2020-10-01", - "server": "cloudflare", - "set-cookie": "[REDACTED]", - "strict-transport-security": "max-age=31536000; includeSubDomains; preload", - "x-content-type-options": "nosniff", - "x-openai-proxy-wasm": "v0.1", - "x-ratelimit-limit-requests": "30000", - "x-ratelimit-limit-tokens": "150000000", - "x-ratelimit-remaining-requests": "29998", - "x-ratelimit-remaining-tokens": "149999835", - "x-ratelimit-reset-requests": "4ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_29e4106c750e44ba8b3f2989ae20d4d3" - }, - "status": 200 + "status": 200, + "statusText": "OK" } }, { "callIndex": 0, "id": "ca41920661a27eb5", "matchKey": "GET api.openai.com/v1/models", - "recordedAt": "2026-10-09T05:26:51.474Z", + "recordedAt": "2026-10-21T12:47:24.610Z", "request": { "body": { "kind": "empty" @@ -234,7 +120,7 @@ "id": "tts-1", "object": "model", "owned_by": "openai-internal", - "shutdown_date": null + "shutdown_date": "2027-01-06" }, { "created": 1754425928, @@ -251,95 +137,95 @@ "shutdown_date": "2026-12-11" }, { - "created": 1712601677, - "id": "gpt-4-turbo-2024-04-09", + "created": 1744133506, + "id": "o4-mini-2025-04-16", "object": "model", "owned_by": "system", "shutdown_date": "2026-10-23" }, { - "created": 1782254706, - "id": "gpt-realtime-2.1-mini", + "created": 1772654062, + "id": "gpt-5.4-2026-03-05", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1756271773, - "id": "gpt-realtime-2025-08-28", + "created": 1706048358, + "id": "gpt-3.5-turbo-0125", "object": "model", "owned_by": "system", - "shutdown_date": null - }, - { - "created": 1687882411, - "id": "gpt-4", - "object": "model", - "owned_by": "openai", "shutdown_date": "2026-10-23" }, { - "created": 1699046015, - "id": "tts-1-hd", + "created": 1754426384, + "id": "gpt-5-nano", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1771461469, - "id": "gpt-realtime-1.5", + "created": 1762988221, + "id": "gpt-5.1-codex", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-07-23" }, { - "created": 1756271701, - "id": "gpt-realtime", + "created": 1773451123, + "id": "gpt-5.4-mini", "object": "model", "owned_by": "system", - "shutdown_date": "2027-01-20" + "shutdown_date": null }, { - "created": 1765343983, - "id": "gpt-5.2-pro", + "created": 1742251791, + "id": "o1-pro", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-10-23" }, { - "created": 1754073306, - "id": "gpt-5-chat-latest", + "created": 1712601677, + "id": "gpt-4-turbo-2024-04-09", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": "2026-10-23" }, { - "created": 1750865219, - "id": "o3-deep-research-2025-06-26", + "created": 1782254706, + "id": "gpt-realtime-2.1-mini", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": null }, { - "created": 1744133506, - "id": "o4-mini-2025-04-16", + "created": 1756271773, + "id": "gpt-realtime-2025-08-28", "object": "model", "owned_by": "system", - "shutdown_date": "2026-10-23" + "shutdown_date": null }, { "created": 1739331543, "id": "gpt-4o-2024-11-20", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-14" + }, + { + "created": 1750865219, + "id": "o3-deep-research-2025-06-26", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-07-23" }, { "created": 1762800673, "id": "gpt-5.1", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-04-01" }, { "created": 1677532384, @@ -363,29 +249,36 @@ "shutdown_date": null }, { - "created": 1754075360, - "id": "gpt-5-2025-08-07", + "created": 1776894349, + "id": "gpt-5.5-pro", "object": "model", "owned_by": "system", - "shutdown_date": "2026-12-11" + "shutdown_date": null }, { - "created": 1749166761, - "id": "o3-pro-2025-06-10", + "created": 1765610545, + "id": "gpt-4o-mini-transcribe-2025-03-20", "object": "model", "owned_by": "system", - "shutdown_date": "2026-12-11" + "shutdown_date": "2027-01-20" }, { - "created": 1777704602, - "id": "chat-latest", + "created": 1756256146, + "id": "gpt-audio-2025-08-28", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1777950216, - "id": "gpt-realtime-translate", + "created": 1749166761, + "id": "o3-pro-2025-06-10", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-12-11" + }, + { + "created": 1777704602, + "id": "chat-latest", "object": "model", "owned_by": "system", "shutdown_date": null @@ -398,74 +291,74 @@ "shutdown_date": null }, { - "created": 1699053241, - "id": "tts-1-1106", + "created": 1777950216, + "id": "gpt-realtime-translate", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1776894470, - "id": "gpt-5.5-pro-2026-04-23", + "created": 1773451076, + "id": "gpt-5.4-mini-2026-03-17", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1759512137, - "id": "gpt-audio-mini-2025-10-06", + "created": 1756271701, + "id": "gpt-realtime", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": "2027-01-20" }, { - "created": 1765343959, - "id": "gpt-5.2-pro-2025-12-11", + "created": 1699046015, + "id": "tts-1-hd", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-06" }, { - "created": 1706048358, - "id": "gpt-3.5-turbo-0125", + "created": 1771461469, + "id": "gpt-realtime-1.5", "object": "model", "owned_by": "system", - "shutdown_date": "2026-10-23" + "shutdown_date": null }, { - "created": 1772654062, - "id": "gpt-5.4-2026-03-05", + "created": 1765343983, + "id": "gpt-5.2-pro", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1754426384, - "id": "gpt-5-nano", + "created": 1754073306, + "id": "gpt-5-chat-latest", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-07-23" }, { - "created": 1773451123, - "id": "gpt-5.4-mini", + "created": 1732734466, + "id": "omni-moderation-2024-09-26", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1742251791, - "id": "o1-pro", + "created": 1785168034, + "id": "gpt-live-transcribe", "object": "model", "owned_by": "system", - "shutdown_date": "2026-10-23" + "shutdown_date": null }, { - "created": 1762988221, - "id": "gpt-5.1-codex", + "created": 1782228658, + "id": "gpt-5.6-luna", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": null }, { "created": 1712361441, @@ -486,7 +379,7 @@ "id": "gpt-4o-2024-08-06", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-14" }, { "created": 1749840121, @@ -510,99 +403,71 @@ "shutdown_date": "2026-07-23" }, { - "created": 1776894349, - "id": "gpt-5.5-pro", + "created": 1692634615, + "id": "babbage-002", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-09-28" }, { - "created": 1756256146, - "id": "gpt-audio-2025-08-28", + "created": 1705953180, + "id": "text-embedding-3-large", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1765610545, - "id": "gpt-4o-mini-transcribe-2025-03-20", + "created": 1715368132, + "id": "gpt-4o-2024-05-13", "object": "model", "owned_by": "system", - "shutdown_date": "2027-01-20" + "shutdown_date": "2026-10-23" }, { - "created": 1744321707, - "id": "gpt-4.1-nano", - "object": "model", - "owned_by": "system", - "shutdown_date": "2026-10-23" - }, - { - "created": 1776399795, - "id": "gpt-image-2", + "created": 1731689265, + "id": "omni-moderation-latest", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1683758102, - "id": "gpt-3.5-turbo-16k", - "object": "model", - "owned_by": "openai-internal", - "shutdown_date": null - }, - { - "created": 1671217299, - "id": "text-embedding-ada-002", - "object": "model", - "owned_by": "openai-internal", - "shutdown_date": null - }, - { - "created": 1782254687, - "id": "gpt-realtime-2.1", + "created": 1778006032, + "id": "gpt-realtime-2", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1744316542, - "id": "gpt-4.1", + "created": 1759514629, + "id": "gpt-5-search-api", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1776824847, - "id": "gpt-5.5", + "created": 1776839241, + "id": "gpt-5.5-2026-04-23", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1773451076, - "id": "gpt-5.4-mini-2026-03-17", + "created": 1765610407, + "id": "gpt-4o-mini-transcribe-2025-12-15", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1692634615, - "id": "babbage-002", - "object": "model", - "owned_by": "system", - "shutdown_date": "2026-09-28" - }, - { - "created": 1715368132, - "id": "gpt-4o-2024-05-13", + "created": 1759469707, + "id": "gpt-5-pro-2025-10-06", "object": "model", "owned_by": "system", - "shutdown_date": "2026-10-23" + "shutdown_date": "2026-12-11" }, { - "created": 1705953180, - "id": "text-embedding-3-large", + "created": 1782228018, + "id": "gpt-5.6-sol", "object": "model", "owned_by": "system", "shutdown_date": null @@ -621,13 +486,6 @@ "owned_by": "system", "shutdown_date": "2026-07-23" }, - { - "created": 1686588896, - "id": "gpt-4-0613", - "object": "model", - "owned_by": "openai", - "shutdown_date": "2026-10-23" - }, { "created": 1762800353, "id": "gpt-5.1-2025-11-13", @@ -635,6 +493,13 @@ "owned_by": "system", "shutdown_date": null }, + { + "created": 1686588896, + "id": "gpt-4-0613", + "object": "model", + "owned_by": "openai", + "shutdown_date": "2026-10-23" + }, { "created": 1771905534, "id": "gpt-4o-search-preview", @@ -643,624 +508,645 @@ "shutdown_date": null }, { - "created": 1759517133, - "id": "gpt-realtime-mini", + "created": 1764030620, + "id": "gpt-image-1.5", "object": "model", "owned_by": "system", - "shutdown_date": "2027-01-20" + "shutdown_date": "2026-12-01" }, { - "created": 1758845821, - "id": "gpt-image-1-mini", + "created": 1738010200, + "id": "o3-mini-2025-01-31", "object": "model", "owned_by": "system", - "shutdown_date": "2026-12-01" + "shutdown_date": "2026-10-23" }, { - "created": 1782228459, - "id": "gpt-5.6-terra", + "created": 1771550885, + "id": "gpt-audio-1.5", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1694122472, - "id": "gpt-3.5-turbo-instruct-0914", + "created": 1772659601, + "id": "gpt-5.4-pro", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1738010200, - "id": "o3-mini-2025-01-31", + "created": 1765612007, + "id": "gpt-realtime-mini-2025-12-15", "object": "model", "owned_by": "system", - "shutdown_date": "2026-10-23" + "shutdown_date": null }, { - "created": 1771550885, - "id": "gpt-audio-1.5", + "created": 1742403959, + "id": "gpt-4o-mini-tts", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1764030620, - "id": "gpt-image-1.5", + "created": 1763671532, + "id": "gpt-5.1-codex-max", "object": "model", "owned_by": "system", - "shutdown_date": "2026-12-01" + "shutdown_date": "2026-07-23" }, { - "created": 1759708615, - "id": "sora-2", + "created": 1741391161, + "id": "gpt-4o-mini-search-preview", "object": "model", "owned_by": "system", - "shutdown_date": "2026-09-24" + "shutdown_date": null }, { - "created": 1744318173, - "id": "gpt-4.1-mini", + "created": 1754075360, + "id": "gpt-5-2025-08-07", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-12-11" }, { - "created": 1721172741, - "id": "gpt-4o-mini", + "created": 1699053241, + "id": "tts-1-1106", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1762547951, - "id": "gpt-5.1-chat-latest", + "created": 1765343959, + "id": "gpt-5.2-pro-2025-12-11", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": null }, { - "created": 1734326976, - "id": "o1-2024-12-17", + "created": 1759512137, + "id": "gpt-audio-mini-2025-10-06", "object": "model", "owned_by": "system", - "shutdown_date": "2026-10-23" + "shutdown_date": "2026-07-23" }, { - "created": 1754425777, - "id": "gpt-5", + "created": 1776894470, + "id": "gpt-5.5-pro-2026-04-23", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1742068596, - "id": "gpt-4o-mini-transcribe", + "created": 1699053533, + "id": "tts-1-hd-1106", "object": "model", "owned_by": "system", - "shutdown_date": "2027-02-26" + "shutdown_date": null }, { - "created": 1776399994, - "id": "gpt-image-2-2026-04-21", + "created": 1772691852, + "id": "gpt-5.4", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1765344352, - "id": "gpt-5.2-chat-latest", + "created": 1749685485, + "id": "o4-mini-deep-research", "object": "model", "owned_by": "system", - "shutdown_date": "2026-08-10" + "shutdown_date": "2026-07-23" }, { - "created": 1741377021, - "id": "computer-use-preview-2025-03-11", + "created": 1771905621, + "id": "gpt-4o-search-preview-2025-03-11", "object": "model", "owned_by": "system", "shutdown_date": "2026-07-23" }, { - "created": 1759708663, - "id": "sora-2-pro", + "created": 1705948997, + "id": "text-embedding-3-small", "object": "model", "owned_by": "system", - "shutdown_date": "2026-09-24" + "shutdown_date": null }, { - "created": 1692901427, - "id": "gpt-3.5-turbo-instruct", + "created": 1744318173, + "id": "gpt-4.1-mini", "object": "model", "owned_by": "system", - "shutdown_date": "2026-09-28" + "shutdown_date": "2027-01-14" }, { - "created": 1785168027, - "id": "gpt-transcribe", + "created": 1721172741, + "id": "gpt-4o-mini", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-14" }, { - "created": 1744321025, - "id": "gpt-4.1-nano-2025-04-14", + "created": 1759708615, + "id": "sora-2", "object": "model", "owned_by": "system", - "shutdown_date": "2026-10-23" + "shutdown_date": "2026-09-24" }, { - "created": 1732734466, - "id": "omni-moderation-2024-09-26", + "created": 1744133301, + "id": "o3-2025-04-16", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-12-11" }, { - "created": 1785168034, - "id": "gpt-live-transcribe", + "created": 1772236571, + "id": "gpt-5.3-chat-latest", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-08-10" }, { - "created": 1782228658, - "id": "gpt-5.6-luna", + "created": 1765313028, + "id": "gpt-5.2-2025-12-11", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1731689265, - "id": "omni-moderation-latest", + "created": 1765925279, + "id": "chatgpt-image-latest", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-12-01" }, { - "created": 1765610837, - "id": "gpt-4o-mini-tts-2025-12-15", + "created": 1677610602, + "id": "gpt-3.5-turbo", + "object": "model", + "owned_by": "openai", + "shutdown_date": "2026-10-23" + }, + { + "created": 1692634301, + "id": "davinci-002", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-09-28" }, { - "created": 1745517030, - "id": "gpt-image-1", + "created": 1737146383, + "id": "o3-mini", "object": "model", "owned_by": "system", "shutdown_date": "2026-10-23" }, { - "created": 1756339249, - "id": "gpt-audio", + "created": 1773450870, + "id": "gpt-5.4-nano", "object": "model", "owned_by": "system", - "shutdown_date": "2027-01-20" + "shutdown_date": "2027-04-01" }, { - "created": 1770537915, - "id": "gpt-5.3-codex", + "created": 1765760008, + "id": "gpt-audio-mini-2025-12-15", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1760043960, - "id": "gpt-5-search-api-2025-10-14", + "created": 1750866121, + "id": "o4-mini-deep-research-2025-06-26", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-07-23" }, { - "created": 1715367049, - "id": "gpt-4o", + "created": 1742251504, + "id": "o1-pro-2025-03-19", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-10-23" }, { - "created": 1778006032, - "id": "gpt-realtime-2", + "created": 1765344352, + "id": "gpt-5.2-chat-latest", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-08-10" }, { - "created": 1759514629, - "id": "gpt-5-search-api", + "created": 1776399994, + "id": "gpt-image-2-2026-04-21", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1776839241, - "id": "gpt-5.5-2026-04-23", + "created": 1742068596, + "id": "gpt-4o-mini-transcribe", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-02-26" }, { - "created": 1766164985, - "id": "gpt-5.2-codex", + "created": 1741377021, + "id": "computer-use-preview-2025-03-11", "object": "model", "owned_by": "system", "shutdown_date": "2026-07-23" }, { - "created": 1721172717, - "id": "gpt-4o-mini-2024-07-18", + "created": 1692901427, + "id": "gpt-3.5-turbo-instruct", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-09-28" }, { - "created": 1744315746, - "id": "gpt-4.1-2025-04-14", + "created": 1759708663, + "id": "sora-2-pro", + "object": "model", + "owned_by": "system", + "shutdown_date": "2026-09-24" + }, + { + "created": 1754425777, + "id": "gpt-5", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1698959748, - "id": "gpt-3.5-turbo-1106", + "created": 1785168027, + "id": "gpt-transcribe", "object": "model", "owned_by": "system", - "shutdown_date": "2026-09-28" + "shutdown_date": null }, { - "created": 1765610731, - "id": "gpt-4o-mini-tts-2025-03-20", + "created": 1744321025, + "id": "gpt-4.1-nano-2025-04-14", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": "2026-10-23" }, { - "created": 1765313051, - "id": "gpt-5.2", + "created": 1734326976, + "id": "o1-2024-12-17", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-10-23" }, { - "created": 1773450837, - "id": "gpt-5.4-nano-2026-03-17", + "created": 1765610837, + "id": "gpt-4o-mini-tts-2025-12-15", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-06" }, { - "created": 1734375816, - "id": "o1", + "created": 1745517030, + "id": "gpt-image-1", "object": "model", "owned_by": "system", "shutdown_date": "2026-10-23" }, { - "created": 1765610407, - "id": "gpt-4o-mini-transcribe-2025-12-15", + "created": 1756339249, + "id": "gpt-audio", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-20" }, { - "created": 1754426303, - "id": "gpt-5-nano-2025-08-07", + "created": 1770537915, + "id": "gpt-5.3-codex", "object": "model", "owned_by": "system", - "shutdown_date": "2026-12-11" + "shutdown_date": "2027-04-01" }, { - "created": 1742068463, - "id": "gpt-4o-transcribe", + "created": 1760043960, + "id": "gpt-5-search-api-2025-10-14", "object": "model", "owned_by": "system", - "shutdown_date": "2027-02-26" + "shutdown_date": null }, { - "created": 1744225351, - "id": "o4-mini", + "created": 1759512027, + "id": "gpt-audio-mini", + "object": "model", + "owned_by": "system", + "shutdown_date": "2027-01-20" + }, + { + "created": 1744317547, + "id": "gpt-4.1-mini-2025-04-14", "object": "model", "owned_by": "system", - "shutdown_date": "2026-10-23" + "shutdown_date": "2027-01-14" }, { - "created": 1734655677, - "id": "computer-use-preview", + "created": 1744321707, + "id": "gpt-4.1-nano", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": "2026-10-23" }, { - "created": 1763007109, - "id": "gpt-5.1-codex-mini", + "created": 1776399795, + "id": "gpt-image-2", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": null }, { - "created": 1759469707, - "id": "gpt-5-pro-2025-10-06", + "created": 1683758102, + "id": "gpt-3.5-turbo-16k", "object": "model", - "owned_by": "system", - "shutdown_date": "2026-12-11" + "owned_by": "openai-internal", + "shutdown_date": null }, { - "created": 1782228018, - "id": "gpt-5.6-sol", + "created": 1671217299, + "id": "text-embedding-ada-002", "object": "model", - "owned_by": "system", + "owned_by": "openai-internal", "shutdown_date": null }, { - "created": 1772659601, - "id": "gpt-5.4-pro", + "created": 1782254687, + "id": "gpt-realtime-2.1", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1742403959, - "id": "gpt-4o-mini-tts", + "created": 1744316542, + "id": "gpt-4.1", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-14" }, { - "created": 1765612007, - "id": "gpt-realtime-mini-2025-12-15", + "created": 1776824847, + "id": "gpt-5.5", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1763671532, - "id": "gpt-5.1-codex-max", + "created": 1766164985, + "id": "gpt-5.2-codex", "object": "model", "owned_by": "system", "shutdown_date": "2026-07-23" }, { - "created": 1699053533, - "id": "tts-1-hd-1106", + "created": 1744315746, + "id": "gpt-4.1-2025-04-14", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-14" }, { - "created": 1789406102, - "id": "gpt-6-luna", + "created": 1721172717, + "id": "gpt-4o-mini-2024-07-18", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-14" }, { - "created": 1788563162, - "id": "gpt-image-2.5-sunburst", + "created": 1759517133, + "id": "gpt-realtime-mini", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2027-01-20" }, { - "created": 1788851006, - "id": "gpt-image-2.5-flare-2026-09-08", + "created": 1758845821, + "id": "gpt-image-1-mini", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-12-01" }, { - "created": 1749685485, - "id": "o4-mini-deep-research", + "created": 1782228459, + "id": "gpt-5.6-terra", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": null }, { - "created": 1772691852, - "id": "gpt-5.4", + "created": 1694122472, + "id": "gpt-3.5-turbo-instruct-0914", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1771905621, - "id": "gpt-4o-search-preview-2025-03-11", + "created": 1754426303, + "id": "gpt-5-nano-2025-08-07", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": "2026-12-11" }, { - "created": 1705948997, - "id": "text-embedding-3-small", + "created": 1734655677, + "id": "computer-use-preview", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-07-23" }, { - "created": 1788851010, - "id": "gpt-image-2.5-sunburst-2026-09-08", + "created": 1744225351, + "id": "o4-mini", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-10-23" }, { - "created": 1788563147, - "id": "gpt-image-2.5-flare", + "created": 1763007109, + "id": "gpt-5.1-codex-mini", "object": "model", "owned_by": "system", - "shutdown_date": null + "shutdown_date": "2026-07-23" }, { - "created": 1772236571, - "id": "gpt-5.3-chat-latest", + "created": 1742068463, + "id": "gpt-4o-transcribe", "object": "model", "owned_by": "system", - "shutdown_date": "2026-08-10" + "shutdown_date": "2027-02-26" }, { - "created": 1744133301, - "id": "o3-2025-04-16", + "created": 1788851010, + "id": "gpt-image-2.5-sunburst-2026-09-08", "object": "model", "owned_by": "system", - "shutdown_date": "2026-12-11" + "shutdown_date": null }, { - "created": 1765313028, - "id": "gpt-5.2-2025-12-11", + "created": 1789405937, + "id": "gpt-6-sol", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1765925279, - "id": "chatgpt-image-latest", + "created": 1762547951, + "id": "gpt-5.1-chat-latest", "object": "model", "owned_by": "system", - "shutdown_date": "2026-12-01" + "shutdown_date": "2026-07-23" }, { - "created": 1677610602, - "id": "gpt-3.5-turbo", + "created": 1790552874, + "id": "gpt-6.1-sol", "object": "model", - "owned_by": "openai", - "shutdown_date": "2026-10-23" + "owned_by": "system", + "shutdown_date": null }, { - "created": 1787853604, - "id": "gpt-6-astra", + "created": 1789406102, + "id": "gpt-6-luna", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1692634301, - "id": "davinci-002", + "created": 1715367049, + "id": "gpt-4o", "object": "model", "owned_by": "system", - "shutdown_date": "2026-09-28" + "shutdown_date": "2027-01-14" }, { - "created": 1773450870, - "id": "gpt-5.4-nano", + "created": 1788563147, + "id": "gpt-image-2.5-flare", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1737146383, - "id": "o3-mini", + "created": 1698959748, + "id": "gpt-3.5-turbo-1106", "object": "model", "owned_by": "system", - "shutdown_date": "2026-10-23" + "shutdown_date": "2026-09-28" }, { - "created": 1750866121, - "id": "o4-mini-deep-research-2025-06-26", + "created": 1765610731, + "id": "gpt-4o-mini-tts-2025-03-20", "object": "model", "owned_by": "system", - "shutdown_date": "2026-07-23" + "shutdown_date": "2027-01-06" }, { - "created": 1765760008, - "id": "gpt-audio-mini-2025-12-15", + "created": 1765313051, + "id": "gpt-5.2", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1742251504, - "id": "o1-pro-2025-03-19", + "created": 1734375816, + "id": "o1", "object": "model", "owned_by": "system", "shutdown_date": "2026-10-23" }, { - "created": 1788889407, - "id": "gpt-live-1", + "created": 1773450837, + "id": "gpt-5.4-nano-2026-03-17", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1759512027, - "id": "gpt-audio-mini", + "created": 1687882411, + "id": "gpt-4", "object": "model", - "owned_by": "system", - "shutdown_date": "2027-01-20" + "owned_by": "openai", + "shutdown_date": "2026-10-23" }, { - "created": 1744317547, - "id": "gpt-4.1-mini-2025-04-14", + "created": 1788889407, + "id": "gpt-live-1", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1790552874, - "id": "gpt-6.1-sol", + "created": 1787853604, + "id": "gpt-6-astra", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1741391161, - "id": "gpt-4o-mini-search-preview", + "created": 1788563162, + "id": "gpt-image-2.5-sunburst", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1789405937, - "id": "gpt-6-sol", + "created": 1788851006, + "id": "gpt-image-2.5-flare-2026-09-08", "object": "model", "owned_by": "system", "shutdown_date": null }, { - "created": 1716336369, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbI2Q:ckpt-step-390", + "created": 1716329250, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvl6lN", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716329250, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvl6lN", + "created": 1716331110, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPmgCG", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716362623, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac3tn7:ckpt-step-100", + "created": 1716330832, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIKb5", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716331110, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPmgCG", + "created": 1716336369, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbI2Q:ckpt-step-390", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716336302, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWxd8", + "created": 1716362623, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac3tn7:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716330832, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIKb5", + "created": 1713573280, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyeDN8:ckpt-step-90", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1713573280, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyeDN8:ckpt-step-90", + "created": 1716336302, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWxd8", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" @@ -1273,85 +1159,85 @@ "shutdown_date": "2026-10-23" }, { - "created": 1716336351, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJmyv:ckpt-step-380", + "created": 1716329249, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvlWn2:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1715851953, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRlAx:ckpt-step-50", + "created": 1713573280, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyefHN:ckpt-step-80", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716333310, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFxEO", + "created": 1716330832, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIfx5:ckpt-step-200", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716329249, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvlWn2:ckpt-step-100", + "created": 1716336369, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbj09:ckpt-step-195", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716331343, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTXyGA:ckpt-step-100", + "created": 1716336351, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJmyv:ckpt-step-380", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716339335, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYRGkA", + "created": 1716336352, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJSe8", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716362498, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2l8E:ckpt-step-200", + "created": 1715853777, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErmVj:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716331343, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTX8uk:ckpt-step-200", + "created": 1716362498, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2l8E:ckpt-step-200", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716329335, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9tlM:ckpt-step-80", + "created": 1716333310, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFxEO", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716336352, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJSe8", + "created": 1716339335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYRGkA", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1715853777, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErmVj:ckpt-step-100", + "created": 1716329249, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvli2C:ckpt-step-50", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716362498, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2Nvc:ckpt-step-100", + "created": 1716329335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9tlM:ckpt-step-80", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" @@ -1364,197 +1250,197 @@ "shutdown_date": "2026-10-23" }, { - "created": 1716333026, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSug5k7:ckpt-step-190", + "created": 1716362498, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2Nvc:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716329249, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvli2C:ckpt-step-50", + "created": 1716336302, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWMsA:ckpt-step-380", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716329241, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdpE3:ckpt-step-60", + "created": 1715851953, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRlAx:ckpt-step-50", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716336302, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWMsA:ckpt-step-380", + "created": 1716339335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYRyU2:ckpt-step-380", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716329335, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9zAB", + "created": 1716331343, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTXyGA:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716362078, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTGp2X", + "created": 1716333026, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSug5k7:ckpt-step-190", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716336351, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJgKG:ckpt-step-190", + "created": 1716362498, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2g2t", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1713573281, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyegS7", + "created": 1716331110, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPmMV8:ckpt-step-200", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716331110, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPl83J:ckpt-step-100", + "created": 1716333026, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSug3RE", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1713573280, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyefHN:ckpt-step-80", + "created": 1716331343, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTX8uk:ckpt-step-200", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716330832, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIfx5:ckpt-step-200", + "created": 1716331344, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTXTUN", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716362498, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Raa2g2t", + "created": 1716336302, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWVsA:ckpt-step-190", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716331110, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPmMV8:ckpt-step-200", + "created": 1716336351, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmJgKG:ckpt-step-190", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716331344, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSTXTUN", + "created": 1715851953, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRzXm:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716362078, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTG7lD:ckpt-step-50", + "created": 1716332961, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStdzjn:ckpt-step-180", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716329241, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdKr0:ckpt-step-80", + "created": 1715853272, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6iZg1:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716336369, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbj09:ckpt-step-195", + "created": 1716339335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYQIXR:ckpt-step-190", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716336369, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbTRx", + "created": 1716329241, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdpE3:ckpt-step-60", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1715853777, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErVBb:ckpt-step-200", + "created": 1713573281, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9FsyegS7", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716362623, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac3rrg", + "created": 1716329241, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRvdKr0:ckpt-step-80", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716362078, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTGd3R:ckpt-step-100", + "created": 1716331110, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSPl83J:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716333309, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFKKN:ckpt-step-200", + "created": 1716332961, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStdh74", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716333309, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFcrA:ckpt-step-400", + "created": 1716329335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9zAB", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1715853272, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6i40V:ckpt-step-50", + "created": 1716362078, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTGp2X", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716329335, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9HqT:ckpt-step-90", + "created": 1716362078, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTG7lD:ckpt-step-50", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716362623, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac38GU:ckpt-step-50", + "created": 1715853777, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PSErVBb:ckpt-step-200", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716339335, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYRyU2:ckpt-step-380", + "created": 1716330832, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIu9M:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716332961, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStdzjn:ckpt-step-180", + "created": 1716336369, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTmbTRx", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" @@ -1567,71 +1453,71 @@ "shutdown_date": "2026-10-23" }, { - "created": 1716339335, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RUYQIXR:ckpt-step-190", + "created": 1716362078, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RaTGd3R:ckpt-step-100", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716336302, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RTlWVsA:ckpt-step-190", + "created": 1715851954, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRXjc", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716333026, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSug3RE", + "created": 1716333309, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFKKN:ckpt-step-200", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1715851953, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRzXm:ckpt-step-100", + "created": 1716333026, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSugSr3:ckpt-step-380", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716332961, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RStdh74", + "created": 1716329335, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RRx9HqT:ckpt-step-90", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { "created": 1715853272, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6iZg1:ckpt-step-100", + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6irTy", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716330832, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSLIu9M:ckpt-step-100", + "created": 1716362623, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac3rrg", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1716333026, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSugSr3:ckpt-step-380", + "created": 1716362623, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9Rac38GU:ckpt-step-50", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1715853272, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6irTy", + "created": 1716333309, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9RSzFcrA:ckpt-step-400", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" }, { - "created": 1715851954, - "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PRlRXjc", + "created": 1715853272, + "id": "ft:gpt-3.5-turbo-0125:braintrust-data::9PS6i40V:ckpt-step-50", "object": "model", "owned_by": "braintrust-data", "shutdown_date": "2026-10-23" @@ -1644,32 +1530,152 @@ "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", "alt-svc": "h3=\":443\"; ma=86400", "cf-cache-status": "DYNAMIC", - "cf-ray": "a47af8ffcd1ff859-ORD", + "cf-ray": "a4e05edca9f2026d-CDG", + "connection": "keep-alive", "content-encoding": "gzip", "content-type": "application/json", - "date": "Fri, 09 Oct 2026 05:26:51 GMT", - "openai-processing-ms": "1822", + "date": "Wed, 21 Oct 2026 12:47:24 GMT", + "openai-processing-ms": "724", + "openai-version": "2020-10-01", + "server": "cloudflare", + "set-cookie": "[REDACTED]", + "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "transfer-encoding": "chunked", + "x-content-type-options": "nosniff", + "x-openai-proxy-wasm": "v0.1", + "x-request-id": "e87aeec6-4945-4fd3-ab45-69ba0a0b1630" + }, + "status": 200, + "statusText": "OK" + } + }, + { + "callIndex": 1, + "id": "ad942050f35df3cc", + "matchKey": "POST api.openai.com/v1/chat/completions", + "recordedAt": "2026-10-21T12:47:24.677Z", + "request": { + "body": { + "kind": "json", + "value": { + "messages": [ + { + "content": "You help customers check orders. Always call lookup_order when an order number is supplied. Answer with one short sentence giving the delivery day.", + "role": "system" + }, + { + "content": "Hi, could you check order 1042 for me?", + "role": "user" + }, + { + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": "{\"order_id\":\"1042\"}", + "name": "lookup_order" + }, + "id": "call_GqsRFv0PbsPUIykmjf3gTiNJ", + "type": "function" + } + ] + }, + { + "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", + "role": "tool", + "tool_call_id": "call_GqsRFv0PbsPUIykmjf3gTiNJ" + } + ], + "model": "gpt-4.1-nano", + "parallel_tool_calls": true, + "stream": true, + "stream_options": { + "include_usage": true + }, + "tool_choice": "auto", + "tools": [ + { + "function": { + "description": "Look up an order delivery status.", + "name": "lookup_order", + "parameters": { + "additionalProperties": false, + "properties": { + "order_id": { + "type": "string" + } + }, + "required": ["order_id"], + "type": "object" + } + }, + "type": "function" + } + ] + } + }, + "headers": {}, + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions" + }, + "response": { + "body": { + "chunks": [ + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"XYmmyo86\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"The\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"mipaBDK\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" order\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"EJe0\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" will\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"IUSKs\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" be\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"ZaeYoUi\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" delivered\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" on\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"ijvUS3E\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Friday\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"S64\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"dMSJLTmza\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"usage\":null,\"obfuscation\":\"2TXL\"}", + "data: {\"id\":\"chatcmpl-EbQ0yLqtcueOAAmcuy4tP0VGPTwHd\",\"object\":\"chat.completion.chunk\",\"created\":1792586844,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[],\"usage\":{\"prompt_tokens\":125,\"completion_tokens\":9,\"total_tokens\":134,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"DmGKO7MA\"}", + "data: [DONE]" + ], + "kind": "sse" + }, + "headers": { + "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", + "alt-svc": "h3=\":443\"; ma=86400", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a4e05edfcb38697c-CDG", + "connection": "keep-alive", + "content-type": "text/event-stream; charset=utf-8", + "date": "Wed, 21 Oct 2026 12:47:24 GMT", + "openai-organization": "braintrust-data", + "openai-processing-ms": "247", + "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version": "2020-10-01", "server": "cloudflare", "set-cookie": "[REDACTED]", "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "transfer-encoding": "chunked", "x-content-type-options": "nosniff", "x-openai-proxy-wasm": "v0.1", - "x-request-id": "e9c8bb75-d16b-4473-b121-6eb996bafefc" + "x-ratelimit-limit-requests": "30000", + "x-ratelimit-limit-tokens": "150000000", + "x-ratelimit-remaining-requests": "29999", + "x-ratelimit-remaining-tokens": "149999932", + "x-ratelimit-reset-requests": "2ms", + "x-ratelimit-reset-tokens": "0s", + "x-request-id": "req_b190301603134103a3c38b2a8a6a004f" }, - "status": 200 + "status": 200, + "statusText": "OK" } }, { "callIndex": 0, - "id": "f66584bd01355bcc", + "id": "876a8b94b456bc7f", "matchKey": "POST api.openai.com/v1/audio/speech", - "recordedAt": "2026-10-09T05:26:51.637Z", + "recordedAt": "2026-10-21T12:47:25.670Z", "request": { "body": { "kind": "json", "value": { - "input": "Your order 1042 will be delivered on Friday.", + "input": "The order will be delivered on Friday.", "model": "gpt-4o-mini-tts", "response_format": "pcm", "speed": 1, @@ -1684,23 +1690,25 @@ "body": { "contentType": "audio/pcm", "kind": "binary", - "path": "livekit-v1-latest-recovered.cassette.blobs/80bce2b7603b863a773cf80bc0f914ba97d5c3581878e7ff0fd35b94e78feac3.bin", - "sha256": "80bce2b7603b863a773cf80bc0f914ba97d5c3581878e7ff0fd35b94e78feac3" + "path": "livekit-v1-latest-recovered.cassette.blobs/c9b6fdecbdbfecada54e270cfe7051e89909a662510de7faf1e35135f689a1b6.bin", + "sha256": "c9b6fdecbdbfecada54e270cfe7051e89909a662510de7faf1e35135f689a1b6" }, "headers": { "access-control-expose-headers": "X-Request-ID, CF-Ray", "alt-svc": "h3=\":443\"; ma=86400", "cf-cache-status": "DYNAMIC", - "cf-ray": "a47af9054894f859-ORD", + "cf-ray": "a4e05ee34e74026d-CDG", + "connection": "keep-alive", "content-type": "audio/pcm", - "date": "Fri, 09 Oct 2026 05:26:51 GMT", + "date": "Wed, 21 Oct 2026 12:47:25 GMT", "openai-organization": "braintrust-data", - "openai-processing-ms": "501", + "openai-processing-ms": "333", "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version": "2020-10-01", "server": "cloudflare", "set-cookie": "[REDACTED]", "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "transfer-encoding": "chunked", "x-content-type-options": "nosniff", "x-openai-proxy-wasm": "v0.1", "x-ratelimit-limit-requests": "30000", @@ -1709,16 +1717,17 @@ "x-ratelimit-remaining-tokens": "149999990", "x-ratelimit-reset-requests": "2ms", "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_a84ada1ce4c246be8db5131d7bdc5bee" + "x-request-id": "req_a2e1d83b5278435faf2daf2233ea0569" }, - "status": 200 + "status": 200, + "statusText": "OK" } }, { "callIndex": 2, - "id": "ce75995916c68eae", + "id": "c31093d5abbf16dc", "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-10-09T05:26:52.309Z", + "recordedAt": "2026-10-21T12:47:26.373Z", "request": { "body": { "kind": "json", @@ -1740,7 +1749,7 @@ "arguments": "{\"order_id\":\"1042\"}", "name": "lookup_order" }, - "id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd", + "id": "call_GqsRFv0PbsPUIykmjf3gTiNJ", "type": "function" } ] @@ -1748,10 +1757,10 @@ { "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", "role": "tool", - "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" + "tool_call_id": "call_GqsRFv0PbsPUIykmjf3gTiNJ" }, { - "content": "Your order 1042 will be delivered on Friday.", + "content": "The order will be delivered on Friday.", "role": "assistant" }, { @@ -1793,20 +1802,15 @@ "response": { "body": { "chunks": [ - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"deyKkdCs\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Your\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"xtS9Ig\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" order\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"xDDe\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" \"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"s7NmKURvy\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"104\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"YqIshU4\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"2\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"vQzZAqgbn\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" will\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"tTlwh\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" be\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"6TZndqp\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" delivered\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" on\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"c97mPkM\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Friday\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"R22\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"nBsTBZwjY\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"usage\":null,\"obfuscation\":\"wetR\"}", - "data: {\"id\":\"chatcmpl-EWxQ4o8DBDqicJY6KvLKbFHkgJbZ5\",\"object\":\"chat.completion.chunk\",\"created\":1791523612,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_71b24f5eef\",\"choices\":[],\"usage\":{\"prompt_tokens\":152,\"completion_tokens\":12,\"total_tokens\":164,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"CroCeze\"}", + "data: {\"id\":\"chatcmpl-EbQ10mvLkagMajmCEIiopjC45CgOP\",\"object\":\"chat.completion.chunk\",\"created\":1792586846,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"ILcCCBDO\"}", + "data: {\"id\":\"chatcmpl-EbQ10mvLkagMajmCEIiopjC45CgOP\",\"object\":\"chat.completion.chunk\",\"created\":1792586846,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"The\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"wGgBnfo\"}", + "data: {\"id\":\"chatcmpl-EbQ10mvLkagMajmCEIiopjC45CgOP\",\"object\":\"chat.completion.chunk\",\"created\":1792586846,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" delivery\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"Y\"}", + "data: {\"id\":\"chatcmpl-EbQ10mvLkagMajmCEIiopjC45CgOP\",\"object\":\"chat.completion.chunk\",\"created\":1792586846,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" day\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"VGTPcR\"}", + "data: {\"id\":\"chatcmpl-EbQ10mvLkagMajmCEIiopjC45CgOP\",\"object\":\"chat.completion.chunk\",\"created\":1792586846,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" is\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"9qZToYV\"}", + "data: {\"id\":\"chatcmpl-EbQ10mvLkagMajmCEIiopjC45CgOP\",\"object\":\"chat.completion.chunk\",\"created\":1792586846,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Friday\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"C1w\"}", + "data: {\"id\":\"chatcmpl-EbQ10mvLkagMajmCEIiopjC45CgOP\",\"object\":\"chat.completion.chunk\",\"created\":1792586846,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"rXbl1U5uu\"}", + "data: {\"id\":\"chatcmpl-EbQ10mvLkagMajmCEIiopjC45CgOP\",\"object\":\"chat.completion.chunk\",\"created\":1792586846,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"usage\":null,\"obfuscation\":\"y2Vy\"}", + "data: {\"id\":\"chatcmpl-EbQ10mvLkagMajmCEIiopjC45CgOP\",\"object\":\"chat.completion.chunk\",\"created\":1792586846,\"model\":\"gpt-4.1-nano-2025-04-14\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_85c1d50586\",\"choices\":[],\"usage\":{\"prompt_tokens\":149,\"completion_tokens\":7,\"total_tokens\":156,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"egR5e9mk\"}", "data: [DONE]" ], "kind": "sse" @@ -1815,16 +1819,18 @@ "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", "alt-svc": "h3=\":443\"; ma=86400", "cf-cache-status": "DYNAMIC", - "cf-ray": "a47af90e5d23f859-ORD", + "cf-ray": "a4e05eeaebd0026d-CDG", + "connection": "keep-alive", "content-type": "text/event-stream; charset=utf-8", - "date": "Fri, 09 Oct 2026 05:26:52 GMT", + "date": "Wed, 21 Oct 2026 12:47:26 GMT", "openai-organization": "braintrust-data", - "openai-processing-ms": "222", + "openai-processing-ms": "226", "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version": "2020-10-01", "server": "cloudflare", "set-cookie": "[REDACTED]", "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "transfer-encoding": "chunked", "x-content-type-options": "nosniff", "x-openai-proxy-wasm": "v0.1", "x-ratelimit-limit-requests": "30000", @@ -1833,21 +1839,22 @@ "x-ratelimit-remaining-tokens": "149999912", "x-ratelimit-reset-requests": "2ms", "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_be3a4a907c5f4042be178a793ea4e259" + "x-request-id": "req_0c06acfde3f546a2b6b5bc8e7648d42f" }, - "status": 200 + "status": 200, + "statusText": "OK" } }, { "callIndex": 1, - "id": "e0307b5406d3d559", + "id": "0b47af46a2adff22", "matchKey": "POST api.openai.com/v1/audio/speech", - "recordedAt": "2026-10-09T05:26:53.580Z", + "recordedAt": "2026-10-21T12:47:27.282Z", "request": { "body": { "kind": "json", "value": { - "input": "Your order 1042 will be delivered on Friday.", + "input": "The delivery day is Friday.", "model": "gpt-4o-mini-tts", "response_format": "pcm", "speed": 1, @@ -1862,34 +1869,37 @@ "body": { "contentType": "audio/pcm", "kind": "binary", - "path": "livekit-v1-latest-recovered.cassette.blobs/3749808ddea87d9af00f9fcd4fbed88a67959f022f2975055939ba23aa40913d.bin", - "sha256": "3749808ddea87d9af00f9fcd4fbed88a67959f022f2975055939ba23aa40913d" + "path": "livekit-v1-latest-recovered.cassette.blobs/2408f498df37204f4fd6a53cfdb727c336637ab92c12ee48cc3229ce26a981ea.bin", + "sha256": "2408f498df37204f4fd6a53cfdb727c336637ab92c12ee48cc3229ce26a981ea" }, "headers": { "access-control-expose-headers": "X-Request-ID, CF-Ray", "alt-svc": "h3=\":443\"; ma=86400", "cf-cache-status": "DYNAMIC", - "cf-ray": "a47af9110a91f859-ORD", + "cf-ray": "a4e05eedddf7026d-CDG", + "connection": "keep-alive", "content-type": "audio/pcm", - "date": "Fri, 09 Oct 2026 05:26:52 GMT", + "date": "Wed, 21 Oct 2026 12:47:26 GMT", "openai-organization": "braintrust-data", - "openai-processing-ms": "501", + "openai-processing-ms": "338", "openai-project": "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version": "2020-10-01", "server": "cloudflare", "set-cookie": "[REDACTED]", "strict-transport-security": "max-age=31536000; includeSubDomains; preload", + "transfer-encoding": "chunked", "x-content-type-options": "nosniff", "x-openai-proxy-wasm": "v0.1", "x-ratelimit-limit-requests": "30000", "x-ratelimit-limit-tokens": "150000000", "x-ratelimit-remaining-requests": "29999", - "x-ratelimit-remaining-tokens": "149999990", + "x-ratelimit-remaining-tokens": "149999995", "x-ratelimit-reset-requests": "2ms", "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_3718b4436f9c49d7937a3c785fe4abbd" + "x-request-id": "req_b4a35c170be74c9398ad4946dac091af" }, - "status": 200 + "status": 200, + "statusText": "OK" } } ], diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.blobs/45057717a88ef704629c6da591d3cbe895067775db0591ee1e08ea2ab97e27bc.bin b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.blobs/45057717a88ef704629c6da591d3cbe895067775db0591ee1e08ea2ab97e27bc.bin deleted file mode 100644 index 9dc39845f67404a0438540d5174127e974b3f60f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259200 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 XomUTX}bms4j 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 Ezh&zm7XSbN diff --git a/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.blobs/e747dec0066fda3248873cdbaff54d44abf10884ada2a59d6ab4894d7fca10ba.bin b/e2e/scenarios/livekit-instrumentation/__cassettes__/livekit-v1-latest-streaming-cascade.cassette.blobs/e747dec0066fda3248873cdbaff54d44abf10884ada2a59d6ab4894d7fca10ba.bin new file mode 100644 index 0000000000000000000000000000000000000000..2d4ed07cbeee8cc59ce25b595b75bfe6f1a63eec GIT binary patch literal 240000 zcmXtf1(@47)3B2`%*?#JWwvQ5JOsfI^t-+R!Vrcvzy>S~+Wmjn&cM4exKj!k`rlQquqB8!+VGG&MjHc&dSFDxkQbum8P^0N&R?6$3yTpot1{ zOps&!PMHuF3~`cV*uJAkdI*ypc2C(7!3+y zF^mNH0S5mY#xOsanFtmHFo1AXkr>u^OxnGlEhT$Xl>#tOB!QCae;aj38&h44}pc$`!v`*sxOYloiz0gI+A4 z4<~4if_y#Z!CWAX0-P7T-2>(c0~AET+=Rj0G=zrlfCT7gfgBf%gbhX_25G}+8^$aB zElbMZ99ICYGz2Z+kRI@@fxitL)j@HfJ`vogJd>HHx-HkStbH` z4PY?HqhJ=pAm1S4|Knf~aL@_L5iplwz*7X28}b<7Z9_f^+7X}-fH3GU3R;Fi9uN6` z%R_@CKoI)-`37vmlMtXG1Zojb7Xfn=0DXA@HUi!b0c=BG5zsdda)JH=pe_VjxdF}t z<~s_a17K}nrcoe0bpTrh(jZ$VfT_mHfkadSX>ovP0@w;5MKwTTj6h1tKwbUs zXWXEr1N2`9`geghpy167R0Y9X8phY~HA8?;c)-sF9YzLRC;#TO2ynMSZiN3gH)>F7 zn74)*i~}(V$U;1n0@66B5tItj=D*XH05*bJK}~VDwt~;n8gMS8^$PrR}C`m1{`sNu{DgT0&t-m%fSk;4D1{B3wwvX z1>qs~6vWHe9qb}@61#$(!1iHhu#^C`QjpHZ=3|SnF(6LH zCSY^0sn{@V9yS~s1xkN`{3L8Bfa9VDQ9fP(K!%g-yh!foB`S z642)oY#p`%#J%9Hhp?mAc|gg1>^k-adkN^v1=JRUS*ixHK{_aavm(IDM!)&f1L_0~ zhDJf-p-Ip}Xg;(K+5&Bd4nfDEGtgD&26PvC3B88iL+Q{@C?6_@N+1(d3spi6s1CA0 z9>@;4Arz_y5P_;d*#Q{<-T)Oq7n=^o+6_y>k})=h#31ZfEIsxtb}qI%wkI|}HYGMO z);88PrjJQutQa+Biy~1&^hY!=`ZD@3`aF6Sglo~$(UZ}0(e2Um(LK>q(S6bD(Y+vE z1~reOU!rfKh0%(rIf{=#F-mya{xr1(zwzw!U!ALFy}0lc2jl`w&@g>aGZj!;Fw z!(zAv+!-DR&w^LM+u&31S@;3`5Pk>0hJV4I;UDl9kben3h0nof;QjDgcm+HW?gMv% zH82JC6AXl>ggb;ygue+r2x@{AUyMJ4UyL7x*Wn$wOxzLNWL#$)0ha}(0j?%M9w3iv zvA$R=mIrt>7;wlKJrMaoJ_>`{0feE{$<*o88PtW;QPjVwU8pUn zEGnI9p=49;Qg%}QrnIAk$W`Pt@*46`GKXv+JtNI0^(2W%--&05Gl+>q1il9^gWJG# z_zhtfVH5#J$i(l)_r+83<$$JPI4Q0W+6xTlEm4fYRGgT}z_z^Fh{z~bNM-|Uz9W4}NF z&?@u@dI4RHPDMwclhKaoFti)m7#)fBLMNb`LER}d3$>vMzB#^4zCxee-{1ev&kXbn zJP0U)bAq_g^w5{k#PIuY^GH@?dNe<}KE}XSVokwU*%g`wxNEDK` zl6d6xWQa0~@{Gcv&ZT~(3TfSGCuv`32(1x)7=04`JpCa31^o>O_vz2++v&ULYv@Dh zo#_(#SK4jbQd&=%o>oOYLR~^-Q1dBil+F|eC7-;G+?gC9T_MdQrH~4Vmxv>XVqylo z6Yc@?;MYJpyAfje3?P|(@mhR7?i6kTt}U(#`V1`tdY1-0#&!bTrN@e54`Q=ojbr@S ztLSdPSyA*;5v3v>y_=*ZaH*hHZ7|AhwO zvT*b9KKvqr2z~?qN&HHjLwZ0OL(V4mr+lOIpzfg})M>PfG%|e}Nb@JY?Kq9A}(ntYgez3}ZBA1n4>Rlk^qz{&WpJmv)9Wl$JvKNxeuNNsUl$ zQYKTll(*zfRfJ$AKAv#sRngpns8H;ji(1_Z{~Q^fmHfKrYXr{{ne!geId9`V7fJ?jpO9cgR1; zGGqm^5b1@iL3SWhkPS$0qK%~+=qZd5j7N+b27@_`xtw{7nazC6{KX`*Dwt*_k9C9jn)!@5k2#f@!mMF@ zWh`L~WyCSQ(D%}Z(#vSiXk%$n>O<-r>JQ2#N(ah!@?~;AaslZKsSW8ZaWAnQu?jv0 z_lI4CG{Ovm8~+}^9p46T#y!Hd!_@<6o&mUQ!yaLsF%kAPwgLQyNU^NwoM^A8BXTk_ zHIfv`4Q~&34Vyx5LVtxQq1xb~VEdpf_$n|o&^7SYf80Oauk;&zw|$*`G+&(WHhK%_ zfOyo75YdCkK_m|ufeb-LBNQYKS&Z1cBt(Ved#OmZ*W?X)Bi@JJRDelB{zHZ#OOU;Q z-v*>B+8bSi+JO!^;H&ht@Q?DB`v(A>y(m}|oE-WVY7+hwJ{9R6&5o{$RmCP?eIP#W zH11!#oUnl~6{Zm{68|Hq$*0M)C|@X}r~=v&S|05V-9}%;_{pF#dok0QHf9RzIO_oG z6sv;uo@Hg>*ww6D7RuVmy3U%<>cmQBg_-A>x0wT(3}!K78AHK{(l63`(fzd3v>vnw zbuqOyH9)yRNu^lHi^*DY8R;6SEvbaKl*lJm!iV5^*g^P@peGpcH}PZfY*o6k`cCva z{G`C5K=aD03Ck4Q9fIU0%%1-8pu>=m>Q7r0LpSvOb@0l$N+N35HyE38GVZLDRi zuAnxXd4{>2*^C)tm>G*0R7Q|q4kTPpzf7A&p8Hs%76~( zAKe%^7Ac6Vi?k2#2tNqdhtLo!^eDJC^iQyH&>4&d%>MBKVqly9SD=~yf`6V*@B7c! zAAI{f-w*UNVnq}{hY->0=q7}SbVbs=>ydcW?QMm8@b>l&MDBSvcx#Z=UYFPG9qU~M z=Aqo%7w8iTYDTsIdB2RjMr+Yh)aN?_G`-1}=UW(v1Shvpz#i&`+kl@!(8CJi9HN7Gf}|lgqtsJ6QccubGzxt+eJEoN1J7K_oXH%@ z>cJYwx()cPVQbj0*@M~b*uB7luOIs#Hq1_8Ut{%S-D8bn)i6h~jx)8)Va$_^3qTL? z88^Yd6QX0ZgS2rp9BmMlO6^ODk|$H%lkb!JkTs+lVinOq%pw-T>4cH+Y{Dh{I)ak0 z5+A_vas8o3xLRl`u)up^N~|QNz~05K$IQ`w(MJ(>R2H>FomEmz=INUlMA6^_n zgU^G9f!)FHhQt@4n)QxP5d1-S|I%~P)yIfcGL z*P;`AcMv}^+jkRf8ZZW)`kMt_2Y&h|26bUHv?wwpk`T#^{D^*uiJ@xf8-&A6!9{WR z2r6O(zE0{#>PXs7c944mz0!|1pLUzRpWdB8Va;G#nRezX)+bgrYYlrGdkVV^hr(IS z*}?hAZpE1o%2jL{$HWe>6zqen%d7>gc-BK^D$qvz8Lt_A7-#7)qkz_yzLkbj1JtS1 z3ls%)JH<~fCwoW(Ngqi=NI!sf(Gcmd8)%jdgmb_;$;Ab6ZE!?fGHx|kb^Zs*uzRsN zz|#9K)<5<-@@I5K^dzwIQlpE*_rjL|*Vlxcq0b>-aA-&ydKOq0{4+Q)xF9e((8J%( z|I)R~wIcPDlsLb*;mabA^Yl&3k;-Lu`D=*{(VJ>NWC+^=2lJrle;J##%ekITKt+r*>x-1J0{ zYwjEF0uSV!jePYA5Qj&C?DZ}He_%4&AI!;e6!IPSUkI!TNc{u+cYJ|>J7f!2gx5sk z!dQ4=bV6)1RDxRo&BZZrFy2LYNOX~MNz2LofgLf1!lR9#w_==S3}@ss_A(o>>R4~s zZ`dl1meZFrjdPj%jQfB)kM}S44fh(?$Z5rW%IV8(&pXT=$z91A%6`gnvLdYQ?49hn zEGDpD9y4Aso-x>r74#5oH2oX3ih7Xx4y=J*P)L-;)qv^>7GBl zOF_Ko9p%+~ccAs?Ro`p>7jz@a_b~&lLmA;K5pHC3_(XV3xGpvrw-Y}e&%#Hc(S$7G zO7h=eMUze$Ls?6W(b_VvvL>)Uv-8;PfJCq29OgNB|MAE0uk$zZdkc055`{;EF9bFG zH2wsBXTeNCnxKV%#y`#TaA$Ij-1gi)oEPkM>|^XL>_6FJ7K_mfSm$a6#2_-((Udei zHJ^Hc`i&w1ntU+%Gifg1w2pLuL?O9hH{2X904sbv;XA$$VH>_NVFP{{?kB{>(y%{( zuciZ(5o?aEiLC)E?bLAFaG&Vs@YvAHpg7PZ;0=rqeD_xZ4PA|VK$PA>U{&An)OkYQ zE$&gS#_lTTT-SNmUT0Ucf-xbO@i#P5wR=L9g#PYlxXkh=*Z0Q zhv3TKN1!Kv`gi!=fE9MS*9R=-$DRz&XIFn$b9Za!T1Rt7U;B2u*tyDf&^FI@t+u>Q zTvNoamK~3Y@`kLz6Q?JznNEEvy{UsEsQc9Ngm!--t%kL^U%JYf}#S8^s@ljSGyCzGN zCCl0J0$B&?HZfIPC2T92B)lW|!0!Z{){D8vIqQL)B4(Xn$QkG8SHYToG(CfsMjb+3 zL8&6y$Q{WU z8-Og_CS1YIfriH(M>C@IXeEf7BCkU|f?Wa;|3075x6*eNad_8z`ntR>hO^kgaMaj~ zY!;iWzC#UG)1+o;^~37Fs?w|4Rf{Xt)*Dt`Wyn%(9%15IE?b6Ht~cw=$4r|{mF5() z%W}u^-u%?UuIz43shnPQ*^1RT>yFedbPTrBY)|cC1NF>yI@ z0ep%;fu|Ez5y}Zq@e!OJ-wTpp&0{5z4v~~FKb#rb5^NNT56IAYNOR9Qm%x?c`s5nr zYUkA3%ys)~v#L|7W>(s*mde-GZdSeJzGc5D$vCGXVxSwQmiH>3QGUX3-7wtn!hn{o zF3T=mRFYcCEf*Tb8nTUaV>eTQafdn6GSqsY?o(~=y2`p1^$TsiT_JDxz+kW@tOb5k zX>0>_2Uh_PqS%@9*&F#RK~G_x@Vj7~=$Gia^pe7$KB!Z~t&SU~YolMF^=cIQn6{-p z3^1SLuEn*~(KR^r5e25$qTHnzq6o`+Nta6=iK_+81p~RwIiJ{F*)i57U^!o5Y@)ZL zO{Nx5mXbe^uacXB)sK@xqxPl@1eS6$l9e==Jdbjp+JQEnwi0-tmQp7IZLg=^qV5JB zECt;PtPTNHMHZ3r;Z!0_%m-e*bV3lf7E{GWMUuk4kSn+%G&bP%eMd3R7k9F=r~RbO zZp)}&SihQyJAAwz_Kl6<;53E(u#K#wJ+{c)VXk7 zQCe|HQF3Wc@%y3&#m|b~7ix;nmnN0N=C@V3)rW08Ymlm7wXjNRi*vy~OXLCe4{i?O z25u#OBWxhlQ8qBob8E#@rHg2C6`1U_be;q!IU}Nq3i+M*@3`mLLsPc0;N~6hAVJqKVnqC?yo>@#P@fG$g>Q*=WGwOiAH@> zJx)77drViU`=~eS>eY4f{gR`C_go40U-od;zib?918X#+J2gW3oA4F)Co~=GPb`4G z;mo*i_+0!JLKFN`d>Z~wypa%ro00yaKBcW>AgmJha`smamotGol{b}-7hV%S6?GC{ z7OfE)1+VxwxfI@B4w*yalraU&EZSrWk?bUF$B)CM#ZE+zhcW+j-#70?*M8?FTj#o` zHBGDERW_@vHQ6hA8qSqlw$( z(r|xr2lLNM@$%8yl6Yy7Ii-2Z&XmK++mpT|(vpuQe@LM;?vpyQ(VLWRK=vd$fm*1V zrd*=%DMrivVx?#fuLnoQnnS13wgbEJAaNMHg3tl~4J(apjopgwi(QD3vGveBNC7-y zdVEWQ7rsWkMEOD8PnWT7v0_{Tzn;HFBp1CC_m;Mm9hN^=)XN7cD2he$H2G%Pcxfle zYvCM08eh&u**jV9X#db)@_Qh^>DZL$_RvXx33Agzc3rjeZT=c-)t<_u<~WnKVs-i8 z(#gfM3+Luv&Ap%VJ$pyi!K`hWuQO$tmotWDJpVN^W6;mY&uc#xeLwtj{tt6{myEg$ zTK1T{CWS{!X(qS%cJ-6$9<|f!KG^lH^u|3g7(fV-T@Z`ww2q$_4>>|yC?&1E#-yzH-J|!6_ zzi7jl&)DmDON9f(=cMOlF4+fpPsLSbP}M~E<0@yEyBQlB^ktWdD+`Aeh{3nF zBPTU`b#}AtF2EUbW~Ajd$z_(zGSnLD zYF^Z&*Uxb1T$j9GP;%%_s1ej07LgCJ3fSERa!FI^6lH<>n^qj>kN=)fmWU-zO1hT# zGBG7_Q$lva(1bq{cnNTPzW%WGzPd;rlWq{j0gHPrCyuRRvS@QD6{LRf62b|bCAKft zEqV^D`o4x11P1}{{@Flb@I&ZSq<_qeLHON-LB!tVtCUIf&P+ACAMY_=DiTZg$tcPf zs_E(qO|q7vd!&1(E6{D#616x@o$9@^nc{}*r#M+e;xFY;SyUx&X3qIGYi+FhhE)c>$fp%w$~%-2i_aFdERYr)$S=xmnj6SwWIxZMXJeTyvi`^% zoe{~n{p)zf>tEboZGIh0Ka;UI^J6wX_iLf2jTop4~L1-rcisl zgvg<-pikm51ii(#WEy1?ZM=R&!rjD-BwzBRRQsUN7c zN|Kx-eIS}GsN#R%H0Nw)CetR7-@(~9IW#0z6uK2W7_j;02b93Sw#Z)%Jn5p~fzTbW zPO6D6!8o`ye1LF@m`ARp&Sb1&7jxGM&Wm42XDG<(-kNPddlK}+^iq9uJw+$gHq%t8 zGL1X_!cIU}RuSFc}7Gj?RM zv*u?%&O27nx+KmRH2qPttbU|puJ@9!JhUnL1UHv}Ck>!|pw+T?+*W){cu;&;eo{G1 zJ5v8R{%T^QBwF&9Bv$g~#Q4Oi@$>YPbP^3uwMX7wrV=LzJM)R$&YXFyfy_bljnsDJ zSMXHAU|a%}9{m(nhFS!^_y_sg`+9>NpiBhptNH&3&JLR*{jdalE`d+}L0L?XF!`Kj zyxxMbqBJo@HdH=9*;-A~oX|ee5##=f+ZC^iA0Ia{uD4F3rK$TWx5@U2w+I#7KiC?^ zG0Hg7Y{D?;Ggv*#0{whPy*PKwvC;OZu4_#Wu+(Ih6{emQXt}VgO=)#;^WvvPxdpt! zXZh{(Z{&~5&(C|Am!FrI*E7$Mo0Ws)EX$5&UCQQWkIi|M^Evlt{@tQmWfc{-tbv*V z_KqH$?_l^|%t`1^nnCT&q_PRTT>fog3$V(10yO;)r9~yxj@50`XT?$D8z(GHIGE5Y zVS4w+5tf&e~n%fH(H z&8PEyLFK;XzWIJ6a4=XFUJ5QY+1}JCeSlM81>rjTxq$Bu|0=#j#?C!>ZFUFhVV*1JYTiWsJ3dJ~?RrHSEkJFCX zn%0E80hZ#(F+uoZ;D_%P`VAT5&G&rwP`sajclrtNkj7Ane{tY-a97wGk;hPM6HY_0 z!!mM=x`^?DeS^1Ect&zq-d`2f+}6*CACYKFT%7zl`BQRg^0!29{7wBLZCLfMf+g!M z8p=P%UdC8UC6lCtuF$k7KD;%s#FycH?(XGmWB;puTJ7TM`_^7ywInm0t$0!XqHK5R z(~{XB3@)Bre79(H(W4?~p|~isAhTdp{_y7^tCj1k z>$@BFjzePTOMiT5S)@L;2G@s>PrOJTPkl_^!koY!&TYZx3RA=%C4b50Dk!RT>So%1 zbhq@n_^kM}1b4#zg!l1#<38$m+Fhz!a-!sb;4!B=qZws6yboI+X&+Fa>7IMee)h)o zf7Z^bK2SBox~8&qPtE3r$0enH84|`wWB250=d=om}E9Zc;R_=tY4m|6u-; z+u~ z%d`+#Kzxg998-q71*E=b-g0-AbFpKeeXYHfgWy!ScDm<#8~f%2*G1e|OM-&bnc9NU zgFS!;3p7 z)0}2XG<~mVR583fzHEPqyKsHM!d!XI)GT3URR;3wPR8-f+-!ONwqlK8wfSImZ~J#o z-=GE?1lLk^EGe(M*eum4!>a45`|3pXAay6TQ58|1P;{0*m9~&xmfRF$qRC)wJy+-w z(1h0o_xJ{$6j*_yfNc)ZH&Qy0itz$0C!7&z;(P2BxfeN>+XmLF>KD~tww zA)3Iu@CU4lkVd{jU(X)Tzajc6-Kn^uI-_}`-KgX1Q}mnlpY((EA9XWyXTS`NsAr(jpg=6@4IfI$QXa%HXf*bn~)&y1~R#()nuYXfBrRp^}6j^HOZ0crO zZDN{Rn6u3NEln)#D_xe+m7OZ*S)Q4nnRZvKHb7-}i?a)_=gD&CW_QfuWSz=flD$30 zRPb+!wt`{})m(9QMPG(3`0r#VvomjwC{LEA9HTj<<><6pwH8$`P@humRiLt3NlY|d zcula8zlO)-o#$NP;5fI~``F)D<5`)&&koVXQbMF;Vi|ra)FjFXt@bO?pPpB)2aeM= zUwvKuOxsO6)oF80_ipkH4K0b~;#-o3)8Dbn`HRFoks_Gpr4n$u_7 zSl78`M^#bfRm&%H2lF?R)ZELQVXiihw9K~bu#{V_S-M+ZnNv*HD=3CfrSTHEZI zB&oH!(LM?#DEUHUZbAoah>5%Mn5A>v`eFfR|hc>wc2I-V9G!=y~YecTyrd6XKi z4=8*w?@9M)=O6aO`jfTk)w8OaT9YdeSUOuO%{WW0d8b)!)|nC0f2MfTR->kZWMGxu zC>c?lRrssmT>iEEnfXP9<;5S$Mw-Nx!)hAauX-v2`(y86h?c^Z3)GTl3RD%)RB7LV z&_#PkBT*k$*2)@5?g>}&8*z8B!_2;nEA+#(7}x=*p!5ej0Qsa4F^RYV-U!y8KcI)P zKO&cctNl~ZdERU8ozC8lN%rw}vLn~g(pBT$j9l@*3{QpT!!4=zm`3gd(QsL^s;Bmv z{z$wh;cViU#0`lv5-!9Q>iTQE%7t=+20YnBjzGgA<#EXO&5&^D~1`i zmHk&LFBw~WvuI4=lA^?-!s4#wRAaKmS+%xa>>PpK3-yI^NXzN3INe33rMHzIG&i($ zx~IAxy4l(jngZ2XMF$y6tQVZ-c4pI<`{}?$q)wnXz?rc|+0duIXc*tz-ylDjJQ5}exRJ-g~%*iTauIJV9yc!C;6r5sL|`6 z#}7^%m1IbonRGRAW0PcS<2?7Vw(X;YZJNOmTj0k88es)K1ok)+vHWN-axgqM z*u=j8N%Gj8105f2>+4_CrPUp(C)rb+*={QOE#Ql^#b=V=FsAX|i3tj@Dv47k-br?) zoJ;+d8cvy-{3fwS{B+$cHBWI^GFCW{7h&IHcBF5jZY38I-@tDPOYqZhBW(oLt*<^>#delO|RTy>1dv15}FPf_Zqt!^DBB)tTL=BA6+)KG_fRH z)U4?5!tsT%f@Q_6O5NqK<*rp;cfk1{A_%K-QnHRQg3A!KkRP{$|3A6w9T@MYs6vxtXlTj3SztdY3$clnIv*F5uNTDl|8i8W|lb^xsDN zd8fFzjt=#&YF<=*scdV>F`YC{sK_>i%lDL@DIZwwF56yqsI*(jyyA96Zwtc(jS6-Z z94mNP^t@DQTwnRVrh_BXvnhB1lag*QnsEu@@$$daWAuaK=OnaC(8iC^2ejwa1C{4x zZN>8hL%4R9h|z=Ao}wU~1X>a$JR&3!uH&!a?m|mqA0q=ob$*&}inq?S-yyLzuG?C> zrG{M7w`Nc+1+2?vdWw9f!aE={aUs1Uw_H>sXK4KTQwfujN2EfHG8)yS&P%zO^k009 zPO90jK%^>hJ3)6|j4c2cPR7tSQ0{~M10&%lz8cp7YKak}4?}GO$54+)<7#bRRCm96 zo7HEbn;#oDSBy7QmoF;sQf@ChUY1oBE&aQ+U5Ti8b74-w>HPP3-}7JOGm9N%JB_BQ zIrZ;c-+U{gFg%{tojX97FKevM(W(+s6H^mKiSOd}>+Wi5l$eYqfrS;^M(hG6LVHK; zM6nSM5dVS?6C{K;V5g`$mJ;0Jesa4Y4gm(J3nk%ZaGLEF9U^Ay9>l=L=T}Eq0B~ez9))Du^bKp$E zdb}Ch9qSfZ9&G08>h0?c)xWHXS+84az+Zf{g>6+;->TC)NKWS^qhSa}P6{*hTK1qi7w)#?yOm$R|Fa1}NCNc^73X=F7-eYh|<0_NLctLGN zZVwA^;ut@C&A$TpSz0@c_4T!$YDLw*m5`;W88t05<(b4l_B)xZ6$g!{3}s~nCFO;8 z3ts10a}ENJ%h+rz_s^nMhAIobF4J|Exk_aJ)r3 zU#(K2vc1wv;ymFLfuGlc*N>aP;j%|D?*jW^KiLSYaFNKzz&k|m{%+q_H^2I%m0vjv z{QVkR`dg-3l$FOT2U&^M>dK_bYrvnGVVGYUEP9^5B6nZ*lgzw~G1=d9dlsKJrB@wt z&h@v(?ok_aLy~2x>AJZI>ypTg;6}Ss7bky=>!Y2mz)Rx!D%NIN4E%-l#I3{v(r0oL zN`GoGrJC}P+?6;U&yFRBUZX1aJ=@4?vn8*hEwJWkrP8tuhGet5n(AnYu8LeD%%sbC zb0lY#-L?DUN)m1+eMrV7lahudG>J3m_G(_L(iFqwr)0-vZDc*AttG2P9N|Cwf4GlX zH|X~%Er~<$C16#YJHa*tb(maD}Pk3uv)F{s&-c8Rt>FgUoEb#w+^Uu zn2%LVEw3v|EgpEKgcDxTah{b{holmZQZr%GV2=a zPiy0<)zu$rthFcVr`Yz|ZrO&^TWXutys`$(%Z!)G0>!8Ei*k~)`(>Q{)jDHPW-O;; zairp6-AB*PFgU-!93i}_sMYMzABr=_h4pFrC0c>HR-uz*2y1u;+1Hr0^uKBQs8K3H zJHfclG_j=Y`K-x|=hVx@>)7AH)t>S7X;!guZ`q6Di$y<+y`_Ium@UlO4~{!%qv$-s z9qMZKAi-eiUrK{ot?i`2RHe#`@_%G)r8e;{Nxbxtys0W#GfH<~|3d#&*IN5kiAr6< zZCo8QgYp_~25}u@eSNp+;-floLL+dX9DLQyFY6dvkzScR#}!^VZSAcyROYck9$4W~*yMbu(;NvQmWxm!(tN4~c#I2l}llu)?z3(TeL=iFm_ zqhONgmbk6-AK7F1IE6`pQ#zHM)Gah*-AUbO{cAm>FV+rFTV=C_^Vp{;NAStfzt=-OY7Fx)Ks0ZHm>BGCB}Q@;?nG*L-}iRdSufw;Djzx>JWd-aI5gDJ_7T=sYAlF~ut>x`+^5%oRY z&HQzcPJ ztNeiElOUH}PuoUXi4VpsVSC`RZyfp&2_d7ngU7uOD9nS3R>N zng&-m$_S;lB1S>Sy!7npS@*IYXFkfd=XEK1VwzI>)iW{Hju>P967G_3*L>IR(=Jj) zWu=mOVOL=_{}E5kpCwo%dL(@+U#&388_T~+FyWv4Im}8j8Q(0D63F%baE`6NUWJ%@ z7o8lu{fEC#gh=z0T(71~kyD5JWKj4mGo`^7X&7X_zLslYQWH9;-{RK{c zPeo@VeLN4G99vzrtuoz|Sdm#CUrH}YEan&PD{Pm4Cr^=oEjJ^7aM7>QUFN)6wRd}D z6g-N#m%mW9UhP(wY6d9xOO28TLW6LfaI?TCbcp)ME-1z*>y_2=uw<|3D38lNLG1@? zu*;zd{)=9Q>umj}szUShib>_Hvd^V^%Zd#XEaPhrIeYpt!{edxu%0}dI)pZa_K9|c zp1}OTPUfeJSn@gQ8Txk#&yrfCq@{FD)+FtZYpeaNOqUjma(G(yBl<@2CAbsrX^a@T z7;G2F^Ud_F@!5Qs?}3lx`+&UhOmQ8w2WnqbO|cXh0|sJwQdzfBM#-JxVMQwnyBF@w z|6I_!KvLAI>`TSQ>ea5d{tvi;R3f)na#guncTM+DQ>vOHO9dxs;)G$r9DZZLcu_wI zDw`oU$ofe4iy8xOBa<>VrOYr`tEz9 zitk|`V@#qdN!9oh*tBSqaFgKBK+MPT@A2RD+x%I+p~x6F!?B`nSoK8<)$|j*8C(N1 zOfWdhzm;)I|1Opm{VKp0e9rG)KrMb}SWqQ#Q$wZr&I~*6z1*kC*PoA@u6d~U5j>x?%|ukYlvKuk@SJ$pzUYP;!PGw!CXGjZ%-^tUXxm$ z`aPw2vLSw)j;8uo+C!MhF)_wazY|FW3Z##%i_8nZ4pj!H26@4Yfzm*wzo+kt_pWP$ z{Yc&J>f@DpCPKyLaxS0Qq^O-)6Gz01t>WVVl zrS`sc^y)OrL=)Y(q{2~=W>lJ0){8YO?K&{Z?xC~Mwa|Y20C3j^B1VZS@;h2TRsrv* zxT|8GR*;aJY)Gw1os#k>F&6hkyGnUlsucF*4r8^Vf24dTe#8%jI>vmFrIA>;Abc}C zJq(4JA+P@flIo_~SJy7C8fBSc!WqX`u#FVcB-2IHLZjJWC>NE*m+mbYTKuylu6(!g zL5;(S`Hj#fvW@*iG*$6l6Hx!59-){dT_Fhy+X#mV?(>s`t;8LrUF8qtF4+X>7||U5 zHI|%u3%@w>#HaGqIo8!*s)?>$bnGXvwn-uWV(-S0Ab^u#Iv(^xpNI43&1t)i7(g@>J!%%Knv3u-+h; zmx7Vjmp>`(UOK*1U-sOzr)sBTOdt+J$Q#)-QN6soDykAIGo`!4dLhF1@>=nZ@m}$F z3cEX<3DxteuT@{JPOcHvwyUqV z|LLyrX8A4#|BXOc6;zKqj6X?a6vJF{#w577jbg;oA!Zly<&V2zZNEw2hhf|Qh7H-<+4K6TWv=@ zrdzJ9R&AGOia+qPf!)!F_K=cGt|cubZ6{{IY?w|sic>-JWBVef!rMcSgVw-Za0YlD zdJ4JfJ?Clb>FyroPH_v|6W#A!+g0Xk*#y>@w$4=O&lcrS&8u+t6Bnqu`0q+eq)26$7VUaOd#P2~UX+ zDG%vl_9@-~QJjpc91gteJk@6TYVk@woBfKmkbD@NYkGsH68r=c{DSBr{s+7w&+yNo z+c5~7a*~EBf~~=s{`0{*!Qr9zA$53F_(oVB$%yocE{P6}E{yaIQ$kk%brkk$U3=}H z>Xz1us&lHIR86cZs@_-I#n#WY5M2~H5&MgPCl^znGBFm7wVm0K<_Gup@TAow9Jv#@ z3-wQWch=vWSzIdb9%nFnCaC{NI*Ct?9SLpqA4Fey`*?=B=eTyd@b0eeHSSC940oAl z3t~oB`(Fi0f)m16gcbV~IkO%K1{Dbd{yNqdK8Icd+ZK2!2b%Ex7rf&_B=3iekEJ- zBI&WIxB+k~c^mZseHt^5mB;q8r?F?VJdD|NI_(e2Wl|M9oWRCcgS-CMz#ZQC;3ni; zaD!fjx&9wfX93h9k7WPIK; z?C<})%#)Bb$=tc;%3L|;^JVHWf6|kvhGcU>i_gR=eQsY4M&Vb<%XAxdHF88SLbMJ% zWJR(?vSqRhvU?C=yi)o>(p0ip+)kV=DirP!z69^hX#NIXJ@z$yjeJDB!ru6npv4}4 z&mPxQ=Rn8R+Hp12RsU3WsGL#pr6Rb}uc~gX*%^Y0$oou|ph7%Q{#|uatbrP>Z*Llvk(i{)$9qc{q z&tcD}m#e8K8@-3!Cvb8dWu{ltN9c9*M7l4HFbCL=$U$MWUz z;hzwrI+gzzxyI|u=F{QS2_gnR=sO8}=@y8Q8RgZY+30cKZEObKiwGfakUOa6bR}KQ zEM%KQY(04CA*&!BZ6neWX^%`r5|MrUc7iIwMq!#zBFYzb5%v^F_-A>4uv3`F^iVp4 zZb5g17Tc1}q5gsx?QNuuEFwsvA^D43Mg`J0Xay6^bYeo78k&TN|JFyV= zFrdtOM$f#XH`6QVwe&SQgSJDwUk(rk)`BN`I2}qirvC)Oz)+@wnE?ceA-w&-L{K6j z5NEdmgdC05}c1fo_lh+>0OVefAnq7}h}B31-V6 z5`G!ej-eoy_&g94cF?=&_4Ian71X)|z*%@p<8(b{E8}Dag9n@i7!v>T1V~3@HnJPJ zgnUBmhymJ7BYp%#aa14=kd;VN$k9WHznaY(%xev8RR<)HO8D(*hy(7zMzcCr#`59e z5AAmdyOKQz5tKQ=;Sc~Vf@60y=C$PY1rEb%-U;44-fN&z9mgiHZP-q~IUIA?bx;DgfdWziR}}$v9nV|N+Y2#Hw;^Y* zd2iuLp7S2@uJbPO&cJaDcpCe8>*0#0fQ{S3FC@HjAalHBA49%hLCI!7>Kp~56c{6) zAbRm2&_c!o38W`bK_;*ZfFiOR>~kBg@B{lE$Rl^y>+DUSW!!+0x(x5rfv;i#%k%~N zuZ1f)32B~&=Q9u)ei5$X9xymQ@;>uEK>NDN+r?YK8wdmt8h-bHJ;DCXE(4Yb#~bMh zwW&F9H*64ZD`nL{->^ZxI|HX=8(bBaiXX2DuQ$X&ui@k2WNtDy|9K?HazL^*nRJ{|#wgICT=0*ju5)Rsei z9swzFM3rXHjshUXayZL%h{>M~d27zbvyo7{;~~Wk@O~oXYa6uUn{ZXBKxgqmP0|31 zC>(Ou1Y)*&KyLm3>m7qS{hpTwbsQGcfv55>)UuV(a$*c1!vy^SAHMrMKUi7m@T=`l2U=$ z@)rJf6;jy;pRa%(V;sb%wt-(5fgV!;_3s+g&ef3SU}&u^!G?|C?2XvgY-KO>;qa*e`UH;t#PPg1hF1=xlgxgBvwwx>MD`c7K91DI zT^Yw!@&Yl6BdX~jH}TLTc7jqG2K~@v-VAt*2YdI0zcmG0aAYeve3K*9$$$5C9OsD3 zFUM}mfHNolPT?z9^9R`d8>GnPDG^#)+W)LeLhY2pp#XbvbTW=)$JvY{T+z@{zn*XIy4Rw;^U~wETuI9Oazvk-cf9V%O zezW0`1La!;`K*D@|F3*G3vvHAi@}NEYB=^GS5G*0A(vmSZgS*Aj$p`@x)!d9`j1cc+l@!#3G`ol3Bx%0|?=hXl$j-!TgBsq>6_8&7W8eT>G zZf*XMYc8i;x&Bv&VWRc>6<1q)zjMgh7y{YgfXO%Hv>Nj3_+4IHy8qQBj;zSh?Kqy8 z4btQK6^@(uf5(4pMb54qb&(@6svw{L^*CI*Tut?WwK&^yXSajxxW|8`TLr29_u$gD z!#6!p2MDkuSNAy!s-QeMwxJmgt_(TGAjfCq`Zg|Yzu(XQz5kB^$#Dj`8pg3DxfYE7 zE>Er`%c0~7pbq8!Zmp^R>j@H}Kll!>xz@|E0qtJ-sy937)s}H?+ zW9W05z|kBYjo>e_(2jz^9$X*95$!mpS~a9p2q|U$KDeIYzuqAS{+9QYqQ@Sq-+~L*Bf;QrK|Hx%wGBVpV+4DK*}VJy@UK8t~? z62h1{3u?zx7?qub`|{uL*uw6InFBX2{R9>+fc)s;TnX@-ZZP&91!oxqBhT(IBH%_8 zHb_ebIpFMs{VoSPlnB?}vY?+Mpj3qLsgLDoj7qQo*H@XL?uJ6{xq8oWNI7n&5z4~` z-{FXm7D&wsuR6frTEczS0;#ot=N9m5Df~Vg`l2GZzGA4;kHH>JsEK}Hhd`JaaC3!~ zFgm^tBd%PY1d+p-wlC5jS&Hn0x!4Jyt$je=Aa9X0CY8YGnD6u}`Vl=DX000fBb7*HQa7k{ z;0Ij;!pbMAkaAJ^ln|IJW9d8e1BlQxFVP|OlFf*bJ>p}#OoFiTL%zX)@;8srS*bQq8`WRP1GqKCO-Dfr3;$g54Sd0M>()<>k3ODhgn z460aM(Y`XQYHRh|+UdX!@OoDG&JvI5&pe^i69oYT9S0qnByxs$Ih;d)bfO(A+b16jk51=#L;;SSMFahYV0>=SqxTvW+5Gqia+e?x*X z#I(+oVahk{F(p9sT029b&Z=#y4pXMcrc26&z4<8nFTI~!iJ$k~@{aNhbkB8pom-t^ zI4Fn8*~8h#8Q~-y8ID~Jx#Nm`NA0j0MfJtXSrwkLW~FsY>J>=}qYC=u-^feNbLUm( z4=&6owwBGT>|Y~wKJ!H4+v$URhghv>rNQ;{%;T(=Z3lw7hTIJ~8@eK_Dzsndg5b5b z4%RskX=~QMRfj1qN}3BBBU_lqqyf)EanBLA#vSAO3cQPBPP41pb;7;dljv8mpi`N@7hn> z)9tGrjhr55mTQ{3r$^=e>>Y$&Lm#4((L}Gm*W}4?HFc)jlWOW$_o?h&-k@}Eai7An z{3dy8a^<-fa^~b5&25}lzo4q9XX(C*Pt{NCc6U$g6Ll9U5&a`eQcc#S8oOIC>q;97 z(P1gUMInzuwgqc~RtMDc@8KsfUDvDFz zJ#>JtJ7&jFya~_?)wG*l$t+`G>pinQ2nibq3NW1 zss8~{486>K{r<4@^mqGrx5}+W{ww?`pdlog$C{=XOu7r|Ttz$C3h_-r6)y(7t50GE z^oTpfDR8W>{Z=EbIaqxd2n1KEC)HHcq|_GMPdN5DV_olDbKTqAGu#c`Q(S*JAA$d> zf9>e%4wY@nmzFLpeq30Q-!kuV&b#cM*%et)+0q%%23S&C7*+ z(HqfY@hb@6s6O=U~5uJga-H^%f# zU#7`Z=E~-a;{~7C(Nu3d8lB}=}mNftz5ebgpW-uD~R-?hmwwsKakX+=+Y_H9Y!dbZu08Z{0V|*f+@m4ky+eLvQe5RTdxRHy;A?F-K$@0>}QU!Jn%md&?qoC z$P_FJ!Gf!T4+QTEdK%c@*2yZd3^g^?XRDVhD9HxlN1la#h%ZBDx*t0l)Q+mwR=uj| zUeU0kSH;VUt(CKYUs1QVx4p{I+cnjF$P?$adzYiD&@sRfGI?V>A6}&j z*jF~IB)+Ia0h9X<>@+)LeR@E8SeiQRURs;S#7BN5aT$C$%B={pfj(!>01-!N%1fI7(^J{KAsf|#LlQk805p3m| z89%BC@eA|E*7^GTuK0fV24ErhdHfY|k32adYG{1e<*@T%4Z?bd;t)H~)^^?hvbm=r zT@$ZdDJ>LQkWF+j@e(a{H*==eDr#<2{REHaVU>SZhE|=g+F9+aG24$g8oL_0*L&_k z55V_r@s0Cs@>zVN&{W_@UUiRky@vt$u$om>k1N`hw=7*-{JD_HADVX|Cop?wW`_(i ztwq|#)ETMSsV&k{fEBPSXHLOa@avb=j0GxD9;rZ_BA4Qz_N1}Ue|g~kkmV8mqTWZp zk7*U#EB01wK+LA7jS+&-Re{ykLUTWZKzl*aSvpT7=kI{sg(KuD!i9(61Mys(2VB)Z z$V&1pwU-vay7dCs(YOpN!1LIPaQ8pP4ukc^YlvKc3QmY-Ner@a3R<;Q+sY7Z{$lAL zP#AbAxP9nb@C(WaZxeAhTompK)rTNKy91V40!~ zoxLL8T)Y(GAq=j5zBTk{fm}98bJqCGUmN@=Y-yB#%(7TM_~0hRFOHud_ddoERUY0d zq?PTP<)d++u0S`Wjh_I+HQTw9M$drgq z;gZmQgZQ@hmM5kN{Ty|ce7Bh3FJOJ-2K*X&+|$f`!l`%ecC2%}cPwzWaSd?a_FV9; z2aZ%Qb`~=MEmwob;m@%x5W#!Fr}cG3_W+kP&)whsr|UF~6@nb&?7M0Y)-0}WTlKvn zqFh#1uViUai^9SA%X2?uPs!Y#J~Va6FJp4`&u%{xet!KaOfLQ<&WO)mm2WGptsCFxq)=U1bYm*m#ig~)GDB9%pzXlhw+{;qN>4K0_XNSom z|Dxx!j}Vv8EZweHs~Kt_&7ZAtL8T$L!!sjWN3W<;FQ#tH^EwNn_e4$&Ul`IVP;TvH zKB-q}dMjATci}{240D0(f{y}U^k1It9=rP%a4p*aSuxx@%PU7wbe2zn9mA5aXuK&< z1>M+lppy;&Zju~J1!ij{x&m#1KJZ3)b3K^5gS(|`jB~O>V&747tLj3<)3TK%?TWe; z)X%$@y)09gZcZ^KpZjt9n=etA==i!OvH7>qp9#P6(st#j3)hz|s2SiMPdwzMO4_Om z4SrU?;DCtnb!Nty>m91sI3XdSWxYLh+s4(_aYpjPwgkPjzA|?;wARwf)AA?MK=Eeb zWqvX5Av=~a(p{zIVQOVB<#POYuwi9Uuh@@y9^Q?TfX+tiW@XU_Mm`nHpm$V@;`-Tt$@gdklR0TWR>A?6nUG=^EQpuY_CNDlGKeK0gyVUl-;*(52 z$ZwCo-ucq@OZ(4~FRQ;WU&TM7lXs*Y%b8Tzy+PO)i1+wBwPz$Zm9`IzG87JT<<%1bdQp_9Tyw zOhcr|Ro)a<0e5~m@xqtl!JGqYja6;Rii>XMyP&o`OY4v_=vU6qw?Afo|B@Jx_~Z-u zdD@r$pLc!<{kl8x@()?^ru3+s7lkt_!fKCuzmRnW9~C^E+tM&-d6-|!yV!t)dJP8E zZ_;2^LjSsR;=a_m1GP>Pyv6D?k2GQ$Ts1^dBKaZ?6z<}GLkQS6D52|6bHTr;1v{2S^uO&g^Y@t}VTwoMD;t%E<`M-cN+@7ar zN775l6ZlErLhnm=u`|UXay+xgIgU6^Ix*LJ&);Y*HkuSL=Xn);T)0gcZ+)H3Mr$I%c~1c-LTeNhv#r&k8$B?t_>6CLraONS2BJ6dL$5*cz$~ zM|`m!xpPr%WOYF0-ST5)Yf6ul$V&DUttkANZ_jmQ=VdNVpO^YI`TWne-;=&x{@mtM z;s^7G(;qf|-2P?6kNK(5xf9Di)cSnIyfxBcx+qIra7;u+v@edSyEmbEgNlT&_0YIB zut54LL>G9(KiKb^p`)JF&evR57pYb&gBAT{{t`xrBG*|5^$EX+2D<;ThgEm2m|ga` z?OCTz*$x9w81mgy)FX*q(gvdXm*yz2n{bGw^2Y@%=sz`5G z>)@ldz5eUXQ;atKN9}CQ2=xfnJH=pdm0jAlrHiJj`1dI%vMhhl*DqB6>28dk4FxI5X|B_J%O?KI*`nHSSz* zcPxN>O1I|i^C_uEObG{s;Fr&w-UxwLcHmss6F9ZLyLjx z(cFKzIm&oUU!-lS#ndMCFXdgiM)pHg2NrQRVGrENwLdB!l?^XxR@|U?N=a~eLiGv9 z81J9N6n3z1o6N3iqE9g$vM2-Q*xCeM47>pxgOb3Ipou|QK}&+i0R!b|*#2-yL@h+l z--YPOuEA9SahBVLC+f4ZdqNlcmTZCz@s4y0Txm|3%jnMV0J$HVMhK|8^eX86Cn6gD z6-0-0bbkan;)L z$`XFDuyA;OtGw(SclONeD_PGoH)OWS7@a;aEh%NhuY*Zrf2{hZO!R$O_w~=O!@liJ zx}EwVw_$mSgCM60Pb+&E8(E8jHDPxnlo1!g!ozApBq901V!Z$xcM6f) zD$Q;5zm#7k7X;hbYm|}rjt$0IV_k6-@rF19)T0wr7%ikDs66r>5k%a?FXL12Ww;NY zPb?uY zb-Mxu(psycXZdS$E@pmDLsIz3#Xq`zPy99~G5PDuukXLS|JpvW>Ra}Y-N~Nx-MLRo zZO(r9L4KSZ)l4@D{7V8x+lqiiV6ncnKCAqa2rbbt>u5?yO`%-DStMX;-4cB)xg51WeMjC^+P$S`E!3x0( z!E|ANak?}?`AS=4O!ZF>S`gMT>U^E3*qqomv69&2I@ajV5oba>2CcPDG%wfxr7o0T zl!S<;31awC{&HBA#o^Hz(ec_dh2&yDol5scj~?CTGhj3pivPqCa2K`#R{)L23H-)o z(s!x=!x78+z`dalBJM_Yi!O;86}c#UMd-ZX;GnCvhXJ3hyZrB4X8TFa$BmQp-?bvO zMR`L;h-=|~G>uKC_(ZYK=luo5>JHw$=q+q5agv(KWUwi`nXqc#2F7e-Koi9TJ|b~Q zFh5=p1-$$HqMxE?q7I^V!X$nX#D|`wMgVR2lQ-4<1?FNmYx%HV@T+1I%q1=q8uFLs zD6`(B-%d58+)93w)H|u$&-Fh;f0%!K`@ZG-+MivLS|)Eu^Uu7QXDM$~8;WV!E5ZQ9 z4D|w?#XuPX40ZM0^ndE#7}b_9HY&s(Q8y+eHaJchn-%pee0R_w|2n3}n%Ro$QbIUZ za0B@PUS-QDA29+K_=cmGJiFa>+ySn!u1T&Nt^)TS@CrTWljCbi6JtbLiNvyTs+l^y zsiS3;l@54hJ76mb=oYZTI@yX^^8+3S1_qx5rkEUevt%z3hVAG@a%JIT~i#xz-RdzM8!Euw-u)roX-u+nF*WW zb<*=v4Qb6%%TsE8olKsV^ySB%A3c5){!k`QOI@4!XW`_E_RjglM2L;4BONE(D*puZ z-IlV0vLA}s>V1Yt|BRsgh^8@n;&gRGK=P?5yjRdV{|TnMx*wWJYC;vD{zv^lJxx7W zbxFQYa#PTs-A)e2_ITg8t6d?k7OoR6p}VVRgx7<9$9@t~^jsE2+6V`VJ(2;k?sA#J zuE)Q`GW~6Mt9z{7r+uewsJpJ)rmNH@ zYJMq4$}N&|K`64E`IlNvegyXaV}eJvg;`cHv5>IiuW=jx5Ss;zrNh34Fl$@wyX2dR z?Z!<+5V?n33ykB_#J~7Su$~3QJh;1=dyMP6^PS_NePyk+rnU;N_)$KjtXIjH;)R8S z3cBQf&uyLCJZFElIlFsSWL8P$^vqsaEwe4TfrYb6dREmq>Uv)iy=XU#z_VFS1#lfZ z6uHM=AbKS`tJ9?R>ER3hp8B7s*(1K(}| zXc}~qK9x3>mCMe{XDHe#FDoS~r}8A|6Es!q0Dk9F87Uht$K|^e8H!THM#U}pKeA!K zQLPqyDh-m;8XEbd?vxb>dp?J{g)Aq zi9UD_&>TobFQ7kB9NplH1(IAAMqsb8d7!ot?%Raw&==nM-VxpopbrxPO!j|4UE>F6 z4E%6)cKMtyojaX-oSU4x;CZaGqq7OD$JB8yan?HTxNf_Tcs_ee(Wk!Emvf?Lv_DykDaab{5(Ow}_yppe#Hh4M2;hMEXH`NxBla>ouTs)LBv^J`3ZHdSVY~#B2oRl5$`_n1KG!O7MffmERTg zVf1_xU&}Z1VVxelX^qGx@ZkD`bup)y*-Q^+6f=zJ&$MN1OfGnIhS684c2o|zn2Z5+ zhjYYaA{Kb6FY#meV$k6k0G{$ToWLGo(_m%curJDY4;_XILEGU1XzQ#6Z{eBVsi0}p z*vt2R@Jt8l{b_e=cdl!btCuU%Wd!zmGuKS$#rW>2?x*fXo)aF*GXp5@;pi5$3LWfA zgI1x#KjK%2{V=jRMPFsEvln?gk$L=Pf=ai3SqsNAV%?cyW+8MYKi~3R)T6gx^3hDw97B$RfMJ zd$j_*DyM+IfeUt#XMzsQW2PHuzzn6cso4}l-2@AE2bG-&&})by14s>!)}IsWiRMHN zei9#s2jf-Pckr}+fIWn@tyl1PjQs=pQFE|b_ciwkeM#s!bQanM zRigRcTi$KpJKfAH_m+FUd9Hc(c{X@>=5vOOgNZM3t@8c^Xf!oKGgejF&1^%Z6c=Ym~NLVR_)WWJP;E|rzZ8p#)eYRe<} zJNYMhqC8oiD$kHtfOZru7lO_OD$kSuE8iubC~p9|E+0U*Xc;IMHJ6!XPU#oWidrCT zCzVRSNe)UTNa{)il4S82@e=T%mx{lMj*2FU8i)j<9N`1u0pToRE1^jE5xB@)sW zQUxB?e#k4>2?*zvftTWP@X8c|9>#3YinB_|Sh>jrg|WHhaIz=amFz`!BU_UR z5Fy|pz7v;;ZJ;bP9qR2YVjeLYo`-?WWkd$l;E8xcT!0s0pRk+Q8EhBO{U-u*QV1)G zhkPSIAtn{wj}AgDXtwvFcOmo?Hm}!H<#B?JRC7?)`Q`0|{)@Kp-3RjGMX05#aR>B5 zZm?@J&^h}=A7vH;@tu!6K}PUv_=^N?!F-`ZxI`p^dK3bBW+BpD(o$(G(2O_8j>&Gw z9?1TcCCYxuvSg{Uce2N_BeJEkQL<(-jm#%alfDB*vwz??F5M&D1Vr57(w@-btx_#S z7v@QlB#$MhLC<9v@TO7mRq-e>COQL}F4@A>!g|6I!DYb^fmx6a+GY*-dEjRrjeG~6 z%Q`$Kcv4OSe`-7Pl-a-x0A;ge`WASq52f4E(X^a)QyJ7p>OOUWItR)+JE;v&mq$=t zsJfu$CZ~!aqU`~B1|nqU!OB@nVA_Y0QqoCqx;wjwNkjtzA%21`$r#WjQ9vBQd#KT? zpr`18HNq624D$&TVb*}9TY|n61L|Af(ATiHcmw?h`tAFmd1m!Z_dWAzp$)vnEcj^r zG@b<`j|s$6qB;4V97{3OWx5Yj26nClJ%b$HFeDWj!{gC=Jy}<75+o9Gxmt$(zc1$@|Jj$cF+&x{16c^r`JYm8gY0ST2Q?gDap;)Ix?! zuS>^D!=$;AtI!Y3ku;MSK}GJ8coNK&e~MNCXDJDy0$U5q1*ZgqK!wi@%23DPZny+` zg;?kpwtyC3J0t=k1dfA`On>l!Y6YH8IQxX%489))(Blqfq>K{Oq6UFi{#xjHn==e3 z5ysNTsA!5N3rP``3pQRyZh|`9j%-F&5`0klzz7$#;Ag~P;v_tVgPv3o{si=2?&2g) z;9u||cpn_a?t;w@V<_|+i?B_;LFh@)IVyJ_a<_Bq+_kQM-DR-vej9p?UaR&5|vL(OZfvNp=`|h9M9i zVv{6_cZ;`+FG6qgR4kKNKn3aqM2vWZbA_FRONC#B%|%5p%egB40By!Baf=VYe1`^Q zzz?F6qTAr~=@A*kq2jNi0+Cg;4|EY*2=e)R`7uD8xek#TdeHB?4!+8j5GR$+1TZ7$ zn^Z5*I_ymipqf%B=p7alV~7i&4mBB+&YJj6qjO zE69(BQ{Aq1iBAxh&sFny`8*vP_yX^%5c3s zLp?n`8qm*L4zrk(t_-Kok!W92+p~tM%C3}EhE-fCFD(lwn^8KkB)B-fD5b!a@0V}N z>zjKgCpnwRI-GqW`$W#$Ja2w&5mGLwE_61+Zj!&4&AfPsf{25dgCoMLl0J$_+QY^- z7Ik24aAinB=&|62fx`kC`#b#_S_WBm`G*Gt*^b%P+1^_lTcS*iwztYGcZ%-`&4PW% z2=FbN0&yLk*yEu7xtiWb6_KM!E7_lHK~1F*h#oEEGr}Q~eKMCKUj0FXYrp6y-BG>7 zkZx#d8e_Iu{`I#7G`8)uMcAHLe_D3Kc>0Lmr_I#xH67KvRW4-*rAaYcc3BcFy2_u- zbI~m+IqAmBaT(E+*a|)80-`>#0(N?bV&8lpd`Em%Yz6GK`7j~u<#@5FIEw#C2uO^$ z1R5>lFdSX(wRsp&vuWf^bL?<*c4XL}*M`?9s=AavDrsJ%E?AwnAooem+MKfNTiIxq zC@VBGDSda^!PJf^j$eaPuBT+C6SZe%PYe~QZtHnRdJXfEl;>+3zrm)>8 zf8sFy2Odg@K=~{IR9B@;J^B|FL`@kyLW4@$ss#&i{m;NEXDJ&Jthsdllh}K#w z=*C~l%cXmeZ?N@fbMJLekascK5o=34C2Js(jH2SHV6qHnV1)G%JC5G~y`=k8F!Z)c z<}2NS9!%MZe)uV$82t=NZ;wIKW)4{LE$FP^)eWl_S9C8cEPhe=KEGX_Hg|N+_v}re zs$j_SWVB6}r)@|X^Gp7#NAmmRKT<}gR%aZ}_T+9UXO+xsYRri2*XEU0T}J8#KMUqWIo-M9nKqzR6^7VXehJKK`VDFs2%p9 z%jp%&a!?Z73lUu5Y+afnc4C>{S#FQx9?V-E&_lW_H&<3xTrVG1wz#BoQDnir+}7FK zGQXyuO*@s=C+&RNC|D8Lmp(2%GHrcoV2btEzrO-g`lQLSF64eLX;ho*4dHzf&6j-# z9?m3~|2&oY%Q58~&0XVp>#2|l(c9x%*1J=8du+p~>%n!ctBlRGXI1-@Vj$-Hp`EYK zGA!3$(9TtU5>>E=@dQsiXhG!Fj&?kB1*2_<#dH&%14-b|&4#>8_C8Sb_K{cdL|=h7)-%r4-f^lnwR%9+@XB7m8R`f+ z3>Ba#aKEriL0rBf_hNQ~tYaC6(*4tSru|I&BmHH%BfVM1jr5`E8#De+Ka%-(wlME` z$;s+o9*n*zuuJ+X3gw0JTsbQ{Bac!}Q@_@~vaAb=h&&qOjGG=mEoNw>G(===Vw$FN ztDdXwsy3*1Yj5b5=|AXtYfdU|it<<+F~!@7+i!$mfF#c%>=-qS=i)1c?*zN~QluKx zuG{k(^S#37(htg!y4$94{`+lYV5^{sfr#yg^_hQff7){2ve;7Px5ux$-+J>a(;(wE z{RZtUbvLCX zXk?3^T)16yQsyR zWZcY*$bOPDui!?>hUy_6AN5jDF2$8wR72He%6p1W@-yHccv5}qg&E+-9k=o|^UIs?DSlvga6x^mTG!ImCKH9H2y1M1QPsCoP z9a76*A<%(NU?M0?*Wu3-OcLcueZYi@fKFwN?+bn`oE znr5tL*r_kkjnKW(^0kdLJ|IdNWoJcikU%D$TnGws({YkGL9JnM){OK)YI%oQBcq@W z6W?K6d7X%(>M=`s&-iDAHdwOGCOAO&fJ{2 zI&)>_!;B3XRp|*Cn=SH%NmfqITE z&U^xtEmlV*#k7sP7jrpkYv|Je+;l@bS~*E}LpoPBSYc9!YggzlXs4_Hls6E)W}6e3 z_lzsvIo&CDk3x;aFlIf{O_(hjBzJGw11lAQy-fHAPLwG`Cwz9MarE#Pw=#kOYF(qAZo zJU}{#`NT(9V;X@?^nLNV+*h2g+9lPED_fU8D|MGNE16Kzu4HUUr;<^{ONvqpg7R&- zi?f+bP3F#w7a2`5k7rKGO3FHsg=f9Z>X`jAXLIhvg7qc8Dt0=)`EWW^NJ(sRkD{Yu zxuQTWQjAyTsTS*l{kjA$3)j_2jy1-aVqzoZA=j-7Oqa9^R7Vw3YR=? z_P3n0<_7GyO|T^gys@VH7g;dBc7ChO)utAvbH)NgmHwFS9PBg)s#BCP3W;own1mh4 zZEP5mLCL6E(g-8xD|8R$45%4npkv&P+75mjHH4MCM{c6l)6bZF;K4r(Rt)w+q^KFz zq)Fx|Xr8Cg4WV`xk$yltn1>(5_JT@dL+?EI8RusEgqq=1Un(w?Gob6WvMi@mTWTxW zTlB6VH7_NnMK+lkoY^w7Po^(3IqPP2r<^r8V{^`C-^^Z}U7I~T_iC07-Qr=!GHO`H3Vv&f!gyf zMYRgkjx#(nP6VE8qH2%y6rZ3bVOgH8?k(=o-W6B}Dwn;-KPem{suETK#kDhXk0(V! z`Td05B>%|gtNrxDO~3q%{!jhK`8zGcEsvlNy=}Ic51M+L{7jX`gGQAx!BAhX)a7g5 zs_Ouy)n7JETrHS^%we5$5_Jh84H|$qd?E7~qIxE@G?U8A$-I|&D6@a&UztxcBeTck zWaPapGL~(x>F552C9pmCjYRb%ZzQ;Mx~#Rlu41dQu4cD>jNd!kwa{^qFQWBz{)jR} z%nvyqaL_MVk7&Mv#`6j_sZGPnRSzaW3#9kzKf!}in%FX1f^91tao7KzRa+9Q=vNA{DuNEHP8of34G_EpNXA%-Ky#h?SY*?7(HSwBbL zU4K#E-=Hu?m`rBYyvuK(-&^x$(|LnRpRT#C%2FJa&5<6Fu;K!^^Ry8U5gif|{C|-a zyd>r+eUh38y(zHOVb^3I*@={p^?~wmguG9tkYN-_4g=-Z7|;-X3*4n1uzJ#+oJdXr zHTgZnL(n%L?bCpEDD4{U)H+()|Ez6V`>Cc&&93TsRZS|Nls7D!UvjD_wD6z&DS2^u zt8%aBiu3Ywm*+jnYmzr1uU&4PoLSjJvtDJj%Pz>#6x;#^VLiLo^N>tt{zWDT%J}OA zm>@)WNK_%YBo}Mm8s*mVU|WPF>PFPP2wPZ5P`P!arI)Fdp(o6}yO^H&jrPyA&IYnK zZmiP0m1l|)kQ6$DEFo@@FKCMW0IlCB$`r;5T)ZdDC7`xECH{iFhA`f7K^w^?`FK@l zO)t=FtqWczTFpiEE_EMGswPaAq}LlinogR3n*TC)HBp9rdL#4!OV#yME`>zVPySif zLpD;{UIL1LzsblSU}bPPYhvD0_el%1?s!5>RKpCe6Rf(a$q`^ZC7B01EETYS-wfx& zs-6f|PuAlZcnR=w>I2E^Dqe^YJ|8;9o9-Uv%5~hfr`OtR=GG)vkEm8v@2z@QnOo7Y zyiIBEVsqi%{FQmRxw5>&d6V;Brpt9`9}B+U{n6tw2|=0^%X3Y&-plJ`J7+AI(wIm`pNkI=+;@-nrT ziAPonE{X<8jM9zLj-Zz9Cmkp4B%35JP)t(2SNm&2bPsgldXfIFZmLeG^J>$zdDmLpKjw@B~l-Y{$io>uLK2o+&dP}lh+(`6XKq7N_$xJ3q!iwrrSb^#SyQ{k)#dgFJ zd?a?vr}uq_b^3e0M&KX(3_FCa!z@?^toI)V)tZl9k2f0ahW-Js!n}IVOV>l^2FE^o zQEmO&FEs~i3^j+Uv#ah_-me%0>SDIiCMA!HUlrwnUctA*(}kZ4_7qV08}kR`|DC@r ze`-N=Vc(+c5@Gp+szdhn?k{K>){>NhR^}7t5&I1(7IYH>EL=TUpJX0v?QatVcC|gQ zIxMF^#q+xPieIfo2yqEHL4uG)!D)dnt?A}B`tF(s;1l)(b_4Dy5|zVM^FZ-ER&hxB zQgo9a$h!(^kqDyz_3c3ZJ3(`ZcvvQ$0jh|NMJt72LaT7AaDwQHxU;lWc1EFB$w1Nk zyn3p-P_*U(0we@PLny)p>YAULSRUfaqQ>m|NU0qsR@}cBL$@&t!WPYiy^ld!UO@4nGm+HT0 zjappumv%cS1@|&cH&p94>y~INs$udDKzCjvS`CplDdI1Zhftm3Dro}iby30# zg7t!O!A{|R(K7KeiB!5sdS1FgIv#dou1O|>0%%{@lhI4}N*lm_L!Qho+bOFfn=E}G z!NkMFnV?hISL82p3Lgo_3d;n;1(*1RFgxwao5dbuRLoAg9_^rRga5pUS_8_adqIbM z9G-;rg4MtwupYPwHK9*{7v%4K;aLPkr1$Q9?r!c#ce(2-~(Rs#L%gkwAS&rfzlI=uF+_AYjRyPv(E{k%QUancdtyy5Kc zdf{5*uIKT3ioFNWVLpd%75FH8#!nI3$urbdI**a^dLRq=YrrQ55&Z-8ZkJdn*(`~K zoq!sdSP`bQs?t>x)X&s4YF6!5C#xT;U#Okx9-8~0hrLvLOZ!p#Lc2xVT>BZc$N8G? z>NDy?>ci^Y>dopo>Q-v6>M*E}Ur{zzK2mg36wCL+ZbE?E0eZ}vVD}(hI#pT-domwE z?>t+yR#abv3Ev1e3VVYO?KMGPSgD@FXJ8)J9U@8#c&~uTa*($e;$b6r4v5^G%o^B4 zSSudF!~ta|5oT6>XbF9v8cT_(8{`mJo&N^&-T6d&LJ#z=Gx$(kjNic)W1X;YOb?o1 z7!V^1e5tT+c+)9Chv6E zuk8Z+iQ!(Q*W=0by!6}zRrq6`e?0dgzKZt1h}nDFi+Y=(%V57o>zm+v3)=7hfXDd* zydU8t_K?xk6RJ0mkLEIJ*s+_$^9NSbCVp!{v0%N>UvyE_O#DtfNKzqLD>VRBtGWEC zygsO@+7&I7tCg>na@9c9G0=gpuU@Ratp&qmrt%QB7B=kMRG2TSaqeo!{d?&gMV!<}U zjyCta30;S-1&!Rf5M?+59e{R+UEJnq0veA-p`mCXYKAsrMg!0|vI{ zw1Iv?ji;nQAe#guxoqML?AW#>R74@vt}RfUGqKky@qJCVjto2!&+b?u?^S_EEh9EyvrI`3Gw0$i6z9pz{wjzUINg>XwayS zp%2m$=17TGC9sstw z0sUsRs2^xQg?*Q8e zLmbOv@JX18b%1%H0(Q(YpibWK9rgX?TloKIIt#eAvgYq6H*(|dic?zZ-lgr)nYRb%Ay#^id7nbOmk95_$oCKAZbkZ&VP#+B7lH-67r+LmfGRmEv3?BZGp`Pl0Y0L zANG3*;r!5MAkY;8F|BQ|I&d~H9K0K8p#AC$bLnHyiFNdOy&t^$q2=Sf9?wr$6|VD) z^K|eCJzlrk{R3L`7L56W(7xLsj=mkT6^}q)+<@5SOZR8@FLxEphd2-4li=y%8R|*) zEcfh$yr27U|Kxe9Jq`~JteL`_2nwo^pvT?hJ>|U*S{to5>{a-B_)>g3efJ>G5QWJ8 zN`ES3%qIlqK+8J|$$|+=ugIq!W0ulKG+ECtYQ5heKXnh}Q;mRqPXs8w93HhN%kvJjBey)4 zp_j{Lt8(FXwyefm=t+*khMni3ZO5$cn81;p94FneV{^l=>6m^ zfaqV)%kste{_u?ewaOOX85jXSKrM)Y`>+S>TKD)L`^)`g$X#3#xD}`fh=XHbMUW3w zx|2h<;2!7}-UsB8W` zIE%3dz{}|X+QLjAag+iVWE3#veufT&2Ez=H4&21SK^o*5oC-_}G=m8JC;v&92|9wV zMCE(r+XJIA$tUu8yd_|buR?#U@FshQd3$=>LO!M3%l9(8B#4qCpz9&S=oY|y(Hh40 z0Ph%3`z-XX_U`l^^Vy5U|}5_$+TKo?-seFIv`L{LUH zV7g&6OMzIghl*|xD%8QHexi)m)p?$Xb~C! zWl&GjM9@s_BAtfS`a{xlxLe-C@s{+G^qBN7={#u~(MU)otR!@Xy5R4Cz1b5V!o9(*!L`BFA~%uAkhztC-3c5`I}qJw1F@zQ z2x>#aM9@`j2z3hCK?AfHDi)gq4+AR$T?0rU3oP$ke<$#-l=>d}cKMQFP8RrFpd@?e zy#aH>2CyF!V2cQj-NFY&I2IsBCOCgdfic?-QJ z$YU0OhoLuUvKGRaKLJ^~AAAKqGiY4IpgJDnp9Naji@#gm?H33B2uuZ%=lwtdSpSw_ z{|`ai+k*+P<2x713DJR4xDWU;RNxRE1O6TlI}v*pTMk~*nLsP41*XRWPzKfDV(~NZ zm+(b+7OYFw6YdjKFgLd*P9$yw4a!Gi1<_07LFKUC=s0vP`Zrjty)dVqM$e;{&EEdchxR1_Zzzz;V<8 zRqr@22deNi0z02K+m=aY|C!qVbK3vBwhi9>kU}VUIZoGVYq+R5f{L33?_DlaZd$B zP#Mhm*9bcx{?HwEuXZ@^RnQU*!$(8)s|?%)=!ecY1eb-J29;IyL)`0tG1VE{I6zeN{dc%%M$33FzW9U{}mOCuCHU{5e?;b;zdIi`Wa!?5r*?}-NR>4gCFXXM4 z2R%RoY7-g;y2$;Ze?#9v6-R;<#$TWcI0+;s4GGv_7Fp@Bs&>O5yOHjyi2?XH6>+rwuuYfGH7rz)k9O$`hd?W4`?g8!q zZXT{LE&}I+c*1QM5hIak!~qq(rJLAyz>IQWDL}&g6B&;z1={ZgJyi4K)i1LU_my)PW615557S@^y#+9}4aU3h=t% zir|vqBA{8#1UoT3m;%Sl;2hZDEe4MIdeE5e17h&m;0<6TzX*N~=D-*>0V$aj62W=9 z!fId=jO9(CgV5s-fpL`&oF-R@{F^)58!XHmPy+9VwdX@%ZRP>h%n>F60WA^ql|zA$ zx)i9s2VtzIf>y z)?nAdV-@yq>@sMdc|e+;hMj^P14OSu@K=9e+X2Tm3M+LstZm zw@hFMe+63C`|vv$^-qA{^$?D`K=t?sc*j>Dzxx8Ps?NboaS{lx$Ki1TSYJnh`E>wD zUx$Gyb{L)=gYQSfXMVrl^xK!<_pbmSp9Ih)v=|6^!25$~G# zlufk8CN3!R_w%N!{vYkIiO0O!#cuhRMCgvv&K1I{NCW4^n_h+=jr?vb({zpmFLsYL8Mu-s}O&mP+?-o}>t83wT z6WOqdQK^;rn6u^!G?57*ap-A(k?VpyYh z0Z(gx7++R6QxiwB8MGf3Mw2NV3s!I)a4Q`^4wis5jE8fHp(mrD*Cs(OXXcN6L4t_$x*x}0bz_pjd zXI25*u!$Dh#CldiOVmP-Wd3f|LKtykc#kH|stPQD3EBn&bdfu7hwq0rEQD7439a-5 zUM>0Ea!oAYd*IDn16JTQv}`4`)Hz^g-+|U`;uNPt+ZRF0eg{i3AMC<&;Q8jmdhHgR z=@wXseekn-XxU=0A1UD&ur>)84Sb^Gz}}7qP1?WVZlJ1o1y<%AwDb}9OrtSG;7Y%Q zcP$0hbWylFrU=fW3mL<^q4f{Kbtc1XmU+(ZKEDiHtC=L82r-7R&2pKSc5K2R~a1UY+?CH>w@LKR?eS<6zEjAZd zgzXwW8O#h_49COnYCz~vurKKM_?Y)t65%ZR6yF0c3qB7QVf29<+%dwkz*z6HU@;*V z<&r$G`^RG52A5% zBeXCmK)ztw!H(M#1Zy9Djolyeg?fN=19{I0&xcD8&Tko~-e0+rOlzTK; z=X+?Mi1~taC9Dh`!d%7)4MLA6jK}(I4fejYE&hw%G|XpT7I~ZRA#M%Si>(E3-b4Qp z`~glRX}Px(ZVYmcvKSk-&Y~qyhTvJD$Jiv|ah!m1F>u_;!JQ{uq3rV{K>X`5RKYd{ zce^wFWtg$y<1V+yK|bp58xoQ8(S!!6>ld{<+QD`$+>QLuTY{SrcouRI`nfM59_RSL zBI11aaQqvb+c74LQsj=&jy;TJ7=ov*=Re0s?z9lbK&3{~n*~;cdRW__CPJ8;3 z_t^}zVL`4#M5*wMv|I`wAjLHfwFdFuXtV40**rv-{XYH-c17JGcTwmq3GuD7@X-|V zP+vc*8FL+f&U-s-ba%rJ^X7(n(YO0bZS$}n@w9-^-ZdP;8G~y2=pf(viF6LH@cmUg z0Mkdh8Jl2giEW@i43BWn3s*2a0V{qT^4ao(!e$--ztvON4g7^33~unQCH}-;C+zlp zL4x$Yu=@Xq4F=MH=(vWs9CO~e0li0$3Z~#sU~+?*NVTtJsDQ~LG;^QuEJbb924a$L zRInc_8Q;}O4tF6$;4Fme$Wf9lkm8X;2Gf0ay{Ce7iPj}FH>ib*3uiEC#5!pE6<$o} z3GFO~;ZYGQsWqWGr!=^M{5N_tZ1;V_^3a=5hh&96h4B_M%CQQ64m{M{kQsWI*l6{pe*KP6&TsHSu#~hp9z1F|Z)73e^$?{5jU?E4)YRMglNmK&+7A=Q7 zg))KJk9Undh#tZG!h&MUP+c*XmBNkS8CdH%Pxuu)9D6Gh_*;1_77f%br?!U3fp&#keT z>9xBJTtkUrbFH!VVqNRTP-Bj5x@)n0oLvi?tW-Zg{1<47T%cvHBt%1u_dJD8(U3Y& zTQPRAwy~G-jtMUDsyRd0+c~=g=R{)24IeF8Ej}*%mv@o>NVrj)F4al2;+7(dz{_*- z7V^LHp775LdkOmSllV)y3eIWvYj#&o2gn)GaE5boSTU^b?7JKf<1%wTX9s&YyA`XB z*`LK=qI3ph0yB$dqn9@&blFB^|oH#BUhUtQPVyt?MQ;Y7_ML!54z4x{O+b!$=e4)utt z%M~3e_LU}<-YmPR;#VY=#g{Y`_Ajn3tt(ZjqST1)56zECdznvVtccb!O+52etES;s zt<#iix(vX4joTKy0qo@w2)Q+XGD!3sdM4v<<~E2c7eSQyB{PAcre9|aWyNuJaZqSY|BiA~TxNn)Zs4O`3?N5hp{ny&&Nct_skEpu0;d?oj-1;o%~3 zagWlgs<)L-HP0)H%Xpgtt=-}28VLJXf%d^G!D7r1(&EjHVB!f2Jl=CA4nzA&gcG2fYt{1Em%`#YR#h^#yGdEsegO-i(T+tRw}| zMr7<(+-4PsI4{0n?+A0Oh}Yuyp9_Renh z`wjCf%=(b|T>Xi6+vI~EP zc#^z|R!r~3V6&`Xu@7^N+*$l2kzSlB?Jna=cZ$1+5K%X=Ty{>5D%vTg$*RORgpc?g z1f4}*&=yaTsDw`LT=o%`iuI8DgSP_eBi>{Q7+>gDX`AW&=wUjKK8{vIJ4$^`^;4?J z6o^{iCZDEgp!QY_brNM1IT>9|tRv1NJt6-Ena%wm*Ju@fIBpF74n7}mfM|AWoDkbS zYz&qL%z=-fNmc}!`PkkM?%R$}_OCXxl>nOJNA*|h`q!bZbm84G(Mv zu!%LUeIB*D&^stNFWei~idc*)Awqea`h%9n*v`shzv5KzjDk&~b>jWPeu4(Uc)@v5 zC+S()Sh-d@2rT?3p+fYRsE>HA1SjQ58-+YRpKD?D1~vCk{#n6#9>Uqj;M2AA@r*}| z^USeKCF2kJ80shTchIw7sNF%|Vj$O&a!I!!3b%?h3atT3c!;nD_+%8c2k{AB0{$fq zl7gK9w1(ZlX~+y02UGoLfE*(7)qt+9%JDu1Wd@wo+|-s7>DDcVss>lO*v0aq;02r7+*M9oP#_PltqAc z0Co*tlprLCM@WWC1^_P!Cn*;n5WN*W6jh6I#R=kc(Iyc|P{wm|H*;6>uknPusay%W z2b<1%!u-y>$p|ry(c|fF>9c5EAtpbYvJ<#Pr^wsMf07@QK7i^Z8fAd)XFR$Ma@bf_>o#@(S?`I?1UR%#MN+COm zXW3fEt4#(gUSX^;WE39Ez*@o{mT$S9mAd@AIMmW%d?c;d%my0~2UKro1ZgO|ta%NxZ{ z6li#txEI;uS*6TF%#o~KtgS2>>m)skwvIZL%Aif5j;BteiYZ$ma@dO04J?lsoe$Zn zp9vociwJ!Pw{aVhMc4clW;oQdAB^@QiN1Yrb=WW4&Eq>(`jy z@T}pOCAFSVzpE~yHfWq+oNTb_{rYW?E4omdrp{1Ds4rEG*Aao{ma0t!vz&t3W%%T5c z>|tHt6ma%%3A`H4Fy2hwIQ~%4B~fcJPh1b#ULyrIem~)DVQ=wx$sJLID3^bZ`wzDp zcMd;8u!8?DKZ+a4zQTIQEM_Kxj_f5=GdDA2kkM2D><P+X%clTi+UvaTkUC;)Bdi?j zPs@|~iuzCHnRTm8M9?lzGjucT)>CvQ?PASTO^t@2O{ks?nKyH_ud8V4N1C(`{9bPBR-4a%@Nx>^&41`kS2{htnVmf5JzND^UoMH}Q zso5xp!d=2`#r1GSaIG&yTSO@$gAg>gf+|6ruobk>1Cd9VE*QiA2Qm*%a8E+Z9pxYA z3OTb`_n19c$;_6lzgQEPxr|O=lOt$#R1ai}@22hn1y=*P4D$4~q@ko-vZ-h6+v&=1ZJ#fBuT(^I)*?<`4s&_yI zcaphxZD!37;|%>6y;s{qn+J1MP<=tuMe|7CRhM7YtZG%o8MRt>%%H1r8%hnuI+wPG z(Nn9jlv~rRry9rG(rp**^PTNHFa49kX}})Y24OWJ(uf~G3Q#XF4l|Z9w=&K#6i z%ri_K;~R^}?E^EG0>;OD+74UjM194t*ft@23e{ajyCSG9kL&{`y98N z6FoWp@=zZnhH#5G4+ zgMWix#xE9DOU_9PC6OW*uQQjynaZi>3IvM;THZy@CgxLmF8vWbpRt2Eli8N(q9wuV zzXN$Rc{;fhrGbJ{XHsU68_`kdTjCpt^sggKCB#9b^bw&uo`G;ND?>!^o8rLJxI45D z=$we#4(yVJ&i*dHgJ-{HRo4%#TWZ=+Q(Cjd_);IMrvl}7rWtVKz24CfNHrPCMQ?Te=7M9tFu*E3o3z&XXi5-s5IIES}*!S<``x*-9tS{QG?>=5osB@E3jrRlfRN~ zp~s2Gh|P%)AmV$L(29@`N(UdZ37dd99d?I?Ko;I5Si=r&%3gMFbI!Li(Mf~yLY^{#lM?q9t|JwVmFq`L5HX`pgXb&gSJxKlkzJ*X<6 z8(oucKHPAtG24E^@xZyobqXBlbA!t;k%Z-7uMU!P$up^$^sB5V90e4Jyu^#`7o$&%86(2tB?{T2X~!-Mg4db zDG0R=i2W@-A<8_P2oNAt5_p+92A{c*Fi?ma!bmf1mf+g+C-l?ut z{L=QgUoa&Ozff0(v} z1C(Nhfcc5;qczfiguuNeI3ccw}qeX>WCYu9Uelu8wu*%=ZzRRqm@1SjlT*TFs6d;H^pgL*oXf8?z>QM@gvXdN1 z>QC~M4^xFe7&%UfCA}f;#_z-t3G0cIfDG~(DB?GQef?)a|ML`BJ~r26$Nk1S%gee^ zHEZ<)b(b_z+WXo~n#&cFN-q?eayu5ZPzkH}>hCIb;fmbC++ih#s$IIdhHcf`)uXCT zsGWwV=7NT?_Ti3p?&+`(`r`j9Gz}S#&Zo|19AhqK5?Bk^+qrvz4qqcllpdAsk!huC zrJKdCMExYKWgq1K$3NoH>R;riw`C2t5dV^dqVz zUnXOT*MNnJ_YLs4Tyl3`_XXEL$FxSHInOXhCxqQ=fA#sQ)fMhCRpE<#a^BtSUIq7y z*OmoUiwigAB;-i)rk6cZk2FNqywVL;^VHXLOX?;zo^w5fng0#M!xo0`WB$Y?pyy~c zoS%YWqE+I0!7#pFFikj5@>(9PJQ;}vPHUC)Pccn+Lx2+n#TTTrq*mcG-YNDs#%+2t z`hI#N;{vRCp3zQ#4|5G@0%D0<&@}QO%AYWz5pp`Zk@ydhPWp%XnYkS@Y3z*0G&v|R zuhMogU$YNzws08if0&8%Oz@y)60Z`i#Cqal{86NDDAl{eDYLb)A`KHPm(Aa6cIjVK zy(-TudtY*)$elke=S24I>@z>NnOqQB84OZOtUZDBZ8> z3w37O9nTMp2Tw-v0a^Ef&|U&$qzNHIiyMs`&8OiGmTKJDoX(pK-7#zC#s?zdKrL3Z-1*E)l*$aN|&DfH`_;K-jQVt>Cm!Db4_|^Dx z-LKgEU{#j!L;Z8>in^0Er%bOb>pg#AaA*US%iPH7$eaW_y(IP+flGEOYEI1Js09&| zWq4^@*%9dh`6+pf43U#1slsJkl&J-V^#@8E_!COeVZ__`^~l)p_dst@P@E4Ihd+bw z;1<-svSYS^`qqxCgsWZ69KjXy4}k4g@^B1`cYz-Yxz;& z<*b*sl;R~tl83TEisZ=LNL=K-)!V}Q041I&haZw08(lLI`=3S=<4i&{dv4B50Ms9k@VUo8nJf|0V=HLj*0yW48 z;%uZ1_8|5&ZUk)~E1jPwjZqRKWs!U2Z6!NIdqwv}J;WO&?Ib;=c2NZXE=x(yLa^aO z!3&|;m~q%H;obfVZm<1UQEop){%;lQK4tP z3myej_!hVd8!wm_8Ir47mv>kFD8FBMzbd}`SINQruW*;{${dx+&T5@CFkAjB_veFO zw{v%vJuq~v9a7uU_*2)j#?Wxue+=KA{DIN{yfZlkp}BxtbeL-pEs^=;&m?2{9H=;T zmz~9J%ew?#*YWgOp>OW&fOjkq5HU_i@mZ@Y-{a468MhoMaUqu zBX%T>rj*mKa!UAd~U#UnGAdN&E=J4 zM~hY#EGsC>|C!$zDtA=m&n{w@qSY~GSwnYgs)-N&k9FoN?&e_;`3$WKttAj(2cZS% zPEuz|CG!ezop7hf$lJ%()2Y-7DAbvapMozZb_Rx41%6RD$J^F9%XY%H%5l%#2Pkw} z(5QxdSx~{fjek=(3-^umhSrZcpZf~D{KLc{afVc?cp8}=o8HWnaJJd9cvtM**mp4# zqg=|din;RHvK^8h0x>6wE}=|7)dUUx3Gz2)NN6+T~hRMZ2=M1(v*F`Cam=3XT_zE}mRbp+8u6#7Z>h82&MAFzRgY z0<(x3+Fvvd{X3~1df_Os1-XFQhB=(KhChZYWbdP6ft){=xCF@tl~Ipy9PSXohwF%K z=|i3GpvJ&P8{)d*KM{J4X@|WKW{1{?Hef#Edr|r_CU8~?)`*`=m9j0eee$--QITJx zd2x^9n>E|rtT=8}%*)6-@?p|akzCkL5a2E1lru|cQi_RGN*sm{V#`9=f%pDD0(}A< zU~d`nq`EMUEw=BC3#@w^W?Kf;lg*=Ruhm%eTdQT-x~gvF2TKx*a0OlRzvuVPx8~m~ zyjN6Lv8lSO_N8S=T~f_BV}9)tM@(=S(LmwR2GhP!)>HDScd11{*L9jW(CnSLfcQj==y`K4= zbCjPeS}fBk2S(S%5aT+>8)5^ot75-LhocTgj8V*&|C05WZIrwdPUU@K_M>egO(Cqt zPr%h6Cy`~?EKGKIWaxMx71(kU!8d;1vle{4MXsSvhGTMLY{SC(6}2JbHGRM8&AOx7 z`|3C4qf6!&{GHq8moxjn?CIHAc}PjBI^WE-S}Z?mBMsjT$LiBv@ zWY0I>1BiIeqAdhrOTI}!8fK5hl?r(lF|E3b$nWwf9q10{1g?GSAXbuM)b#nkZ0 z*50l4u)M$A*{%VeJ>GBrwW0eM4W3NSqhZ+JxOU+i=|Y7!;!)($s29-_ViIGY$KHuM z8TSf$R1(=n>6M)j`FU~d&-8aR8MPZFg}evV62v$Tb}ew(QlQ585l~!o#vH`HN4ns? z;;tY)v6n-K0z&^h?*Y$oSDk%y{M^};G(5^H0aWjM;BzcO? z(UEayn_Wp5-0Wi9tmxE;66H1J-iY|fnut?CZ0j%T#39jgfCt!@kVwQquE!&^1MGJi zz%%v|^7i_Ix^ECN8c2@^LC@g^Pf-n08H(}maz{J2*fOnuHe}TAsg)XAXnR!ttx7C8 zUHBvC`Omi*h3U-nvFXz@X8(Ab^P$MDxn=F*+U9%gp6nRx&hlNr^`{(ynhVvuQ^HT8 z0ufED;KedGQZ^Bvfd8siBSDYWomNgXyY?S$D`%V5@ZMeQ(0c2_MMu zu-2PQPhxK8OyYNx1Qn`iUc!JD(!?o1RJj>j3H6WmNluDeOR#W^5GM#rI5X)Xvh{~}lQCUXe+?-iIQ@^eI8csW!w*BkL^p4p`ar^2a_Fch^;2jtN*(@{t z3D{&Zj((QQ2kP1uc+Bu^Q!h% zLn~*Aw{sAKoI>Mh|FGn2I$O_q!y7E_qBs(1h3Xzv35yd`5(h$^AAZbz zS~!)xjLb%^_#>V57HZw3+MxLZO~#SpJ}-P2rHdl3(+)1evqG7k$hBn)bCYJ>y4i_R=CnRiN&Uw+qe;clvIi-#ss?-(46Z9}@nSj5*!J}J6HcZ)N}r#F){!^JCN3!}S4Wk!CER7N7o<+7t9EicHv zNgqauMO)y#*zp(%#7Qp_e~^z-<@8zf!}LVDg}R^GkvfN(OFPPV#M%nn&UTz%%yYCT zQg7VnpvL{DJ*lC(E@<)?Cm8ltS7;=a+e>jpMY&a3qkjm~TYsJYuOg0PbQ3;N_Kn+<*rm0jb!_XUiQf}u z#65^QtSps}lOK~0mdDBBq?05vQ6_gF<32hSn;n<}MD_AeCXP)?rhcR;AvYdno@Op& z#xkoI1crzHh_RE!;H0uQvi@caqh3XcNMvB4E2{BQ{VCHQhW@&*>JC+PP=#n-$-M$i z&Vo$jTlS~u553;6d7ttr=3D=tp~4gD_LhQxoH&m9nzEDh1dT%HQ$#cz@b)(|=d+J< zllfN!OSvX`A2b!S(noMq*2mR+uI^HeH>gda`ja5XEpoJWb@x>IHU?LPo`nC!rV)Nn zUvX%Xml0rs6VJ9Hx0&C1PRqm1+s3nF*ijcFS}Q-vPDxlIpCADK=2h%u`V}b6T_0)@ z936a*X@PHzhA4~ay;+|*6S*qx8qQAE2V1s>o8^FYQqBsjwUDXijFl`=a^y?0wbyBOj)GW@fzpm0z~TKzCdUyYRKZ zA)Z4XPWeUc%0L-RMlx+Uu*^;|#hj5=FeMYwcXKvWqW6vf<$$^Ec&vdmxL^s z#CgxU#tN~Uaer|-vO6<&P+Y_#_Ydp46y zr&8?bG~zm_bAuDLyKV{}Y}0#-#*K|W8*JI511^@7!mFl9Pw#|Lm4qzB@M955o@PDCg= z+HJ-rCWSSfb&A!E^@1@GRAWTaX1LO8IN-_$uY1S4`q&K(dFJgkld3DLE~sXetSo$z zSMkf9N&C+EdM+(FZD*R}^YL%Tf28Los=~%S_QJpt9G#Fs?2Gn=D!1(@@5mQP7}Sb7 z$hT;C<|6QY{eVig=W(sV3ZK%Uv~;Q6Sd&__zjmZ~mc?wvI68SI1yaL*B6&C(aTqCv zx)3T{f916k{gmpIy<^gwElNyn)w=axt%xm8x9}#U#P5vGQ^ZS1g6-TJ!0Qduk5LCv zs6bgBLA6rGlAXjld_Cmt?8grwm(iNRw?X;tJQ=qspxw?E|d?Q-9D z9JD>Rp0o@xzc8IJRO-srhKkW;J&N|{CS@JYXp#Qp+v9K9>D_*Wf8NV8mR{9nn$I}4 z`6h*?Vc5tD+(P^WyaKllYYB@mpRg_QkBMQlAMDTjLEO%O&H`zEUTBr?m}{$Jj-3MB zkBjzO4!uk4GXzIqCHOAH5b7eEsFNATS?xHlxJ3R(fkDKTisTa%t&|nYxe@Op)<(Qi z9#`PxbEId*UxZmufr7%B#+t!A#<0@&(tpz0(%yluFqP7eQck`Nu`6GSJ)EF4X(^0b*oHiMx(w!m!lD> zH$oMS`Q>Q&xN>pDg-Wu9S&cV7H0`U~XpXJlQSYzcWO-&Owg?*jZa8X{+cNAuodaFN z-4{H)VYhZO_%yT#@&(plrel5B706+zSg{1Mn+`)|^_7GZL=&1rzD`|9r-A4A8LKV3 zKYKDefvsdi1!0JJwdLe;4BYnos{*qyTQo_$P&`76idTzF!bIUs!4^1j1tGylLA2mc zelqU?m&hH#naf@ZY6J!I31a{wmoA};Ximy$a#vU{4k6Uz_9Ic)kKulyM?e>z>&kT%O!J*+Uv#$eWe!FjH#-r$S5yVO;RPRa#fk-x)IgS^!<$4HP>tJnd>ZL8n@V|JMmEab+PxHFV~L-M}%&Knb=cEbNm-V z3hF1lrW~OqGdi=(?B(3AJT*Topo+|*kK#!ZwPb?yzEmtbAj8Vf%6lq)DaI(@DzOpG zBDzIHMNlHLlq;1^MSsOMs0#gFs+I61e}Oh56;ub8_^Ww?xMEHGPZ`RYgwqiu_wGLOQy z#(y+$IhYn=W7c8sBc(VBu+WRqE#xH7M*A2lRsrWYFG?_5*g^DIFc zMEU_DKo8`v6>F9CN^wMsi1rb&5wwV(%GJtfWr5;>Vza_4Z!T{wYYB?XTjKWOEYVQW z6QM?6`5Q_iPRAD`Be2iH<{&@N!8h4+%2nd9+ZwFzEDOw- z+U>@+dY-Po<~qc-W|ZG4t1b~0?=PHEa4-L3{^`m#Y(w?PrO4X%# zWr^jcisCAbrbJh#m)1no-ZsC2{pwq%*kko>^S=+&1!du-m>1Z8kXyK)csa2geMC;B zX3IV^H=L_DX$;FbAp(WPhy~RnzV~epR-%6BaEr8+pMEzNNrTT&4U5&Z+R(**z z-l1`^yia^Oe@)Y#mCltV%fZ*JG$_YMyp0$gnGhw5z7zc-`arZhiWAi-a#X|yWvU`yPLdCh zt&%>F5F`i1AyH4!O5s>R4X-`71G_!*5BhNGA+i}AMSKHf`v=&%unVdg|KpwGj&ZV~ ziuJ07@AXpi)Y@$|>kU(?$7+YFM^-K>KT!6hL{rqf@L7IJ-oo6@xf!|R^1BtH#dAso zrS#ITCFe@=OIDPwE97$G^()RVEV5ejev z1`@BMO!7aJK{O7dh&hjq;ojrP1U-Z;L=rIpuDKtKZJBJKtgmdc?6It~+$Yab+*b~X zxDcU_7!dg*vS-x8D0VbI`dJh$N*3u>-d2p3$IFIFcS*j8sp1Zz9>V^D8K5XKbMf3C z>~XA>j2<)$B@=y0NW;0YQ!vj$xL`N`Snn#Rg_dS-ZM$YAHVgw*@CMT~;|Tq9-D!=s zDyDKn`SY@8C69{o3OeMM=lXK8a>nK!$eU6yyJ&LB{ZeU}qzox@mkubSs`{7nD;a8^ zMy-3PKV*DlT5K+AcxJ!g4*ODrr^8<`#aKM9In*AAC(=-^n}4J;Ao5jLi;eN0y-0Z#T{_J$wV{PNDYb~eDZ)$65VvQ^G?{os~9QDgePQ@M-wroX-v1nLf zM*h6KKDn23F64~Ly`Q(IU~Q4Rm|c3eR9W_{?4YWmd}HM}^>8h#`jx)B@lDN@T5dhd zy3-!--sT$~oE`RKW+NrI)dVSeo}?p}Q_fQR(-?F4 zh5SBHQT$7ZqtsG%SCv%mE&o~ZzA|2YU(;2muijt~)PzkF%`F?Q*`~Ox-e$q`;T2dv zvKdbzZb$P-8RUhOGzydYi29D!jX`Dw+11?he7Z1E)KxrGGFG}owoEQiOjit7SmZ0^ z963hb4_YHuF;=lwaaN&Kj903at0HP5gpuBe!x1{AT~Q778Q)94OLD~dqE9fRUFE0p zD!J{rhd71oMpia+9^)5{N1aH1g|>!>_9)yFY&aYbUiYg$Kh#yf=XBbmY(uTE4lxtz zW|)2$M;Z#NC+Q5DC2B&|ql#taBUH`HG$s3sy$S?uWkOLf<;B$O5T)S zD;uCHQvF>%tl~hWOkJ#bty`ma7^c>|H7%_BQGe4~ZU4)?#wQF80Sa_Favnby^elJC zb(8|?0op(q0~Q8>)e&kPNO^1dm4X4Ho#Ho=kd!U=%Wo+N%0HAHloBOLDOPq=#w!u! zOT}EpAjKrbD_GH;R5mE75yXhE%CX8~MNh?c`9rAVcS$l+j1!#^wBlR2Hcm^co7p{1A0x~dkcGF6G? zFUxOMJg=mvEgHS_FD=kK9D&V5cH{pb7N7&j=O~}3R$2$f zYUVALij8t3dGq)m1QgLxv0E}h_EP>(v0Uj^_KlbwF)Si3BBU%F6GzC zk5@dX?4ed`*62|EGDDVendxZVY|GuoKb_w_U;U#)3ouED9DI-`(XQlml%v$`w2k!R zpcKBydIxr~BkvZ!x6mUxED1|z%J(U@DRHoxLnEFjQ(`vhY}3ds{GN8Vad2dlm(%2&$ua9`|GNEFZHyX6CcDt<-QO-7fIWD{g= z**3XG&R4J%8u>YSFL}P~PuY6u4arZjT2v@}1=@gaJQ=q+XCC_@%flSbyv+zfWwQgc z6V#2A31lHD6Y@fS;iSj_%+k=+fC(yy4D|GOFK{gf?JU*)qHzo`?l;%Rnu}|1nda7T zjfeFrm^;>}SylBFNJUGi7~m|uRMM&V|FLuy&`o9C-_FgAd(t*d+N7x~Ra^&mcXxLN zcNt*t!5Q4$oxvRn)Tq0ADsjL0e*brUD=Vy7YYNQVbI&>Z?6ddt)MXknreqAsD9-TC zx|=;L_g>z)d`-c$f?EZ#g*}Q66o;1nDD$rvTe+&LclFSktlI4Q6^*lXZ*Y$7?x=Bv z(d392w9HiYMy``LK=3a*UF4D}((ST?9*aD?qv}!Q-C40qndj5!`$07rRWdBUu6|Sf z7W&QgTj{p}d&dZ@rM=bnRB065ZcCv4l567poa-bs4 zTOeQW8SD`+i$m4mM)aWgh)K~#K{aan4|6wh{$)iop29xx9JSUboqZfCdq>*>>rsmq z#JvMXmSMB*antI?X$_h6hwCgg0oCU!8_GMB%`IJC@~P}Es;H<^*H+Xm*18(rHce|@r8}lyZ1`zhZ*I06w@r6+ zbX{|Aq<29lYA$yR|FvM2P$t?hT7}LYQuvE6?)5^MEHcGZt9GtmH%J<2mOQnFJUD~@(b~Msa~P}tRCt&P%{oYOH@FGf3p7+|HGQ` zehXA8pTpk%URkoOlKmn&Dv0R(5xgX@v+BA2yocq>M>g z@pD|_U*9~xw*0*G)1psnKUI8Te;@sG!0$IXRB0Ej(@^c0L~LVncz&WzvWuQfFQvyb zQ4Vi0+X~w2O8N&H?zmm=oN7=Xgzh->Pxb+S(a*h^I_2_qa_v>{gssAvEl*Vx+7PoLVnw&{7p<@)^Ey6X8= zri%RXq_R$BJ4;8E^eG-x*fD=WZs%-nCM!KIHS^c^A6efDz8wFe_}mFMF}D-BX`OP? zN;Wj)n?6yqSOGkVMCH-ji%{(G%9nYIKC{P>x83Q^BaZ#HDDZ#pTRvLPB9EKl9OJ5W z+TpHJI%xJ1%VDs9r&+q&7gEJ^CFi^_(j!Tk@4qeVe)N<0AuR{CTp9mo?6wwNBaVl> z^w0B+^;UR{mdp`(qn@z0AXzX&cvyH$*uekIea$}13}yU*d_jBgNJo)lnJYN)f-jO5 zUOknOYNr3uzyZOg;7K92pbr7Xe$RY9z*(Fxl<;0MhtX5rb6vBYOfYt3AnLCG8_fsL z=s4aVnL(w$r&H^0G}CkfT`&DS!&+lYleg)XQDD$E_i21l7gXJ)oL!udKORog3GM0Y(mFBt`K@x z)+OF`akj@5;!0zBMPGV=CI4k&bP*`A&rh}@3 zV!Ovk@kss^_6TNI^i{8jKB0a+aT+=5KT);JD_K~}^l_^l z6D>Q8M-5JWm0^Wxu33i8Td`vS42D<1!r5;B+gc5>W1X!fWupJV%@OfEr}-?i1He!``;9xZ~V?b>h%v#KhWNanBk_n7? zjMI$u%m@~T(~);VkSfXaY*G}ferjq0nIShqwuIad@(NhxH`FKH>$lWfh#F@&vOUO570VRmV86dnUkLaM?A33Iq-1DDH$kX~kGcI=S*3cWe=s zABHzgyX&*6pP=UT8EzzQ<&DgFn-!Y1H8Uxbn>9IeWX7l8r&G1bilj|HO+U{4Sp38A z^W3jqDfco?=XqBwZ#39?GXD^!dgOVZ_c^B4XeMaht9IaKdIc|l@dEdxE^D&+t|{Hf z0bM%VJlWC~W}kn+{ab4Fgb}p`jGg_h&GwJ(WX2-iFUcJFT-Dyd!m#Hp`ozsin2{ih z``O}kxH7oC#-u#yDV6jSEa!G(|HVv!`|dMiEVB%hxChK{$YbuN6Lb}_*$?P?)cTs) z1Nb$fN?E!00o8W@?4WlciJ@hoGeX`6)%y2V%a!Lmev2mZ?y+*oe_%E^N43XZ`e=O(8VX2&_MS=2T68(KVamA;IX3~xp+oVsmpq3g1($`q)d+c>HI zT+OhmX%&6Tj+PuK(iP<8dE{Qro}QJHxgeu=y5je{)I}*5lbAP zJyRXOS7e_nGFLhq*$xLIMtH&Fz4uGsaKEXV8=BSXEk4htPpMA5X&h!EH z(xs+YuyZ?Gk}c&RupS0S@e~+~Hfy%+i*pAtoy``e%4~|gehoon#PH}5@h@ARX!$8V zB4&D|I<($@hU%qvM~~TJxnL`IDwy_3%tavWjbuK7HRC2-NE~s01x@G?Wu^Y2aY%x- zgi8py(t}#YbEamE4azHGcnLN5p8I@+`Fk` z*ta@43ov_Efl#;JF%ND=ha=V5mb&Avrg_jWfo^t$?n{4(3WXDJmSj6(ZSBoB^!J*Y zwZrOEH59-ykI^mpwoqQsl-D-TnX?2jmo0tlZ*6K`N_G1dE#DxNeI5#e7DO-$hL~Cyf4VO?PF|X>;o_FH2Srg8C}VBcoH0U2=&f&fZ9p(Co`FY zxXXktX|Y`3yVlPXP#+W?%n7ay>>Ti)-zZ;n1$lZ)b_*2Tl`J76mVN>DX{LK4b?UPHCC4IyoVkmK>8jCwXd$ zJ~jFGpIJTg+n1^8dl(bl^Eff63_XAv!V&)20V@KI`e}T=c)0n!SvQDw)OJTKo@9pU zqAAU^%Cy7W3f$#OwuAQfAnbJl;V{?css`Of*Y^_%Kmj>j+Y~TSU^h`gkuT%HWg;2B5H7)p-;-@}0(hXm>Y zxLQ5IknI5WUI(`?JR&FIbXf>q+*?-)Rqj4T8$mn-mg4QO=)P7c zO@01*ZuZ=Q0cA_-7a2RbhjUeuG_M}034iQ=G+Vh>ATPDA#B!Hnfx<^RCX?#oj~d&NivLNzytwUpdI#LyUc zC!e@Fxj3%lPM5Pa2xeN>8`oafU>D(%xyHCCS2TD%-Ql~R4Vqd%RO$>Q-hgFeajkKf zEbWZ#nn!8x*3Pb8Re8I7N$EZ0-5U!O1yA#%^E>4Y%uUFt%9@ZlBYkLEeo8}fanh}% z=}D)OdL`dUev)cU&&e(-O0N97aj3l=*^9qay3^~H&ph=&|NDXO{7d}SDJx_hgGH==&E-nIh&m;T}IbQY5-_t7VtXrz!Dnbeg^`> zMOfXx*^gLrO(MhU<~t3Y>yOu*t84*im#(N+;rM(ddXipd_sXu$`jFK>%balp8Lr1^ z`&0i(d7G?BZbD_Pyp<)sb@|4%?$O-wk_YlPz8^L9LH~rb4lM~1Yl;;= zr91h9SX^*@9CofP4+L=!YX_?rn7oticO1K%^WcM&I_KEatUs;2?HQ=}P9q<&?fl)6 zGOv%m7XucArAMud`54qo*V9K$uN6dv?u#uZ9%$J79-AcP^uqG~m5l9d08Q`ngrpi-n_B=1H z@eCnIgGut9h3pu{oomb$v$7kg96DpUaEAiwp(*3UcyS=Xb~-ocCvLpPV;Y z9+{)looTVDjmc}1HvbI!dG?3p=iH>Y)DD>k^4gdEsBbonq21=xi`&W9`gZp(3o?iF z4q*f}sn2>VWub!B>;igMO72LrE&`4EkcDmKzz4C*eii0auIs#WnWLrs9!vqRZ2KI` zsmVkd!^&AN)XUNpLe1u2ZiG4NUi7jUDtdj3#)zJwivopy=ag!%Qi z3^=YCpl9qcE(*`ZQHmUMpnYB2j(3zi@_fPJJ zoWVJna9IkocW1rN%s?Kt&F{CV!&9iFv|j^%UHJ7aX?W_ajP%^blEw8+rj4}A+>?^k z-sjaZK_9~SkwKBe!WIXd@Y&_DTey+4j7+8K?Mtl7;20>eyt1a)cH^!!h6-}0QfaRK z&LQ?mHi2!gtCru#PmVO0XLmKv>KHz~~1^>`OyF~M%y#(v6J8cg!g&fZe<+SB*6TOty zdkPhHpB?IOja@_c57cZ|7yG~oB)mT(wU)7>Bm+w5NG9#J`0f+RG|xzw=?=b*#rQoM^>tsaf7>burNR9-3z zE-@EI6uiw_k-I(TME2aQivNC3UUAJQWJBNmgsk8(N^?4GtP^miC-368tY zUQ~au&jjvFm&*Cx-eh}d^S2X@70&b2pTq@b7EdSH=KY_#ebDEy$f$p#FUPEn84)dx z;)e$XchtoCNW3~qf(2tZ8`JCM+J0oju7A@;o=AukZ<|sI9%hMjFMyE!lPD^F~ zUXa;8_ge9e>VeHLy3+%BW@&{YOVc`Jbp$u6HZnClIJmDSOF7Sz5^dmSFl;mi)zhH` zciW9;+QlJoZK6gZvon(l1*7Jioez_g)IPypXJ6uMq(0G;*l&bs9>d3cYB9OH3Jo~m4~T88R^v6`2Dv(;aGXDDaL(`Ca&N!(S; zQ^Z}Wi?h4^i}i|yZTSQ%$|wsR27*%CS$KN99bdtHUvGP7WmyMU4j>ZrFdZ`{7@xq% z*Tp~>HtDzM;$gLI)*9=M)oiXBRuPZ4Ra;n`pPd_+b0|xa*)3yrdT{#w-=?(5Y2InA z(l)0Z`yH7s$&}_C%3oEwu12l<({_W#;VcuK^tz>*9_SNxEMj70MR--nvw(T(8pTeJ zHKO6%0Ol5AFuJgQCUJ>!KcpdxYfphpYObgXM#05TE35nRDpNXan5$Kv&)3 zZb^GdONVdvU)o~YI@&K<2jT)zMugH|(jUPydY?U(w?#Nz(%U23D_r4;n@=y*I8_xG zKW7#1y%x!Sh~Dsc?1^MFZJx_zufuIsG?-zYrZFbE*=DY{lv_{PiV-)zuua5@b;X)) zd0-x4N;52je{Dx|Q`4NLg2s-GYa1?TbLy+=w6$+*W>#la22|Kf-xu#M?2$h@cXf6? zPU~LjjcH#}8L5j?ex|HQJ)71iy*_hpZok6U<*Vwt>Cf9`#5T5%ebsg~3as;zq(c#1ymvxudCV})AiD74S9 z|FoS1x#X#1A2pT!kTrmxES}-%RJ2z|2aFB2ga$-}M2?T_91$KiKX^jG3v~ydcXF$2 zsCYC#pZ$R`hW?ZGz&*^}9>m%}cU$*ha2>bOB*a@njWfK6t|vn1@9D{81ako^hSP?( zSkNq*EZyUA#%qIjvEn=Wa|SCDy{~v#WKQulfe-g2Gn{UtqMaXXH!KOTR{k<-jnhn8 z({Xd4WwPahB@rHu{pfFs$9#Wnh|u3`UfDFEv2VjDZU6c%b+c=q*BGjoRHs!@l@XPl zD`LtyWtk=0i$@pL73|0l&m(fbWY5d;&y-~hN~fjIOs`GflKD0#KYvsyuV!cC5%X7P zC^?%qNAgzQSM{I&;h_59yTO(~hyMz{CB9Ncv}dg3xnLG|JZmIl1uR^jX*)r`9|gv6 zKCv8>+>T(IF9s2EGj+zb$N2!O)ftD=+0ktxN*NCJzx>_eR~~VS@v83r_k-d?J;Q&a zOXqahKOrT7$(re^Yl<3AmxL$W#huAYCxhszAj3X!k3mLgi2H)OHO)#pPB^f_egenW z6I9+|gn_t4zetua`lBL^$%_$e5!FjPJ^Z|WptfoxDlEEszd`@zUg}^)LLpR{aQMr^i@f1v8(7h_O6|ID|1q_MrA(Cu%$oA&}Uk* zf9G>b{;mpXIBj@pPoj-y*9m<+A1Q6>F##2UUO`I(Yy7kQmZ`2OzjQ(>-WPLZq9rF5s!lITO2M>!n? z!zCL%&nh;nESlGW=HN-8{IH5p@6g@BBLg>U#;YDE8a+EpUkZ=%jO<**S7r1sgqHR< zZ3GD6JBUbn2G-Nj@#B=a~bO{ZUKu?;}s@)A#N=lChP6- z-s7=HdyiPzdC7TEfFP7x%6voL<38f7x9z~4ZJyz_{; zU-+cpdH%D!ce(DI>p8=7RJqUc;tRW%##gPbpRb#0?(6(Yzs)%+UgmYd=a^qWz{5a$ z;DtcXz^?vgwbN&W_Y03gaTkGrJDlYtKhv)gYP>U32n(^7?t-;35dFJNAkhzGM3EW9 z5!z8V1-rT!9PIYAxx_$n9kUOo5C67kw5-`{x$<9C2hI8bMNmZWwcw+{cZ0$M3pGuu zhsr?t8`(T@Yr!1uRaP5@gP1{^?=FI``UEJdS+osAFT?-^%2741zLY|;Cxc+e5utu1T z28(V&Gp|X|*uCMdHbh%nf3^Nt{iJ$P{e?Pl-T2!3HJR1lt1eg0tjH^SSGup{K{2B^ zq3B-WmO@#fqOg6Tci|s}y$c%(J{HU_kQKBpc%ARe-(PT~@JDfM+3Bk9bv>Hq8&6u( zT}Ma{E>qmba}7?^`~2z=TelAQ(;xTxe!qPeDtn_^dxT`VFo$=W`x(E-{@LPcXnbU(5($sX5nqD})0igFPbU|0%lr z_ES@S%l)SXR0li`_~_qL6Q+KK>h0m^J-Q~oA~19NvCA3V$@|0u5SRBMdOPNJxcAY< z5EA-b`c{|)9-@zCAxJ~%%q(UQYXPhQA6O+UHM_m0(2px6 zH=1*gS1MR0&XBhE%#x2(p7fohPWGFp*`XPVzV=`0)vC`vrxkTx4w*=z7B1w`Iay3A z*^ypGtqlny1RwC>5jW)rZ;?g@J>|$%Z>AGR5ZeY{chU4|wwG(T~ zs;*T2Taj5lu>3-qPuYdiu+sdJQzh$4=9RQ4sVVLc8d&S1%Y~xCg#~x=3-Y*mCv(-g z{M>oDuH0|=cwb8vRkWzNp}p8FGAB!7%kYtYvvpT_w77##^ab_#@xzr&WWg8qgcMV62hBbv2?9mv)3Dg=?@V^XH)Sou_ix6f|h+p25owtn;cSblzL z^ad$Yz5ns*;Bil)7VYBOIiFcC!75ox459UMU&P6N4QxuwL7cuw>x3NBb^0u_mK+Cf z!eW>cf*8rD`qv`wltoN}Luwq@(|6q~u?M>09Z19P{7zj%{^YAG!ZpXa6HKv5Hl}r| z`7tU&19c0Ut~J=}d)Ga$=~Z1)d7xr(dFQeTrI$*0B{#9AmKFU~)V1hW;j+R$h0cO& z1@j9^^8d)^2D4@7}}we*~X|CtMsQ zWEpmqK6t8a8E*0}90x4&HY^1uWGnaJOVYQ{=a5}d$)3rY$JxM36|lvvr12gquR8fX zMUYQdU#2QS#Z>M0edx1B$yBtKxAlyWRfwMp*Ymq_+q2s;Cy?)mX|(C?zbHOpkKV49 zFjj7czo9FP0xGz{%iRfxRg!2V5k_=^10QUcb67q&BH~XH~~aS9xw(MX9Bvb;+jU z??r8~U&R)FFF01vwZMj|qkZ|G^6mMH3R)Ekie?wvOK9a!D^Jx_)h9Gn>TjF#?L*wJ z$Wfdrg2fW4=OFJ@J{ol&4I`i-;BerBz`p})1IqlzX*R0=@|~<4=N;#j;Ng}eqB_>f zTf&{e8N%MrN@w~r@4FddE zj3La8ECa|RrM!g#f#{)loU~jv+Vi;Aarpvou41xco}#7VmA6eUkn26KdHBf2O4f?D z2)6J}qejnxyP{h}DD69S)Aa^!`y;R=b%MWoha<_+$NAei%_XLeQ=zaIxZQ(j%kXIn z;`(BkExS;wT~D1lhaC=}K46+v!Wj3(tTOL46&fcS(+sT)NA!t09W1OZntC?2Xo%42 zV7I+cGo^ZPRf|emg}9t3)8M}S&*GFK-=fpl#}W%p6wHE?{X>DO&{BveU*bT8=fSE; zwL`Senws_B%xCOBsX$T(YUy>6NjllfPf_3#sebPl<=^1H8Fk5P0@D3IYmWQXs>b-< zQGWEUNB!|z=@)SgXpt4Xm)ujF4eZOTd{|BhW-j9`;}xtZhhX^G##o4(&DIP%`GY)2 zE+qSqz9g5dr_*5X*h%sjHyCr79a*i|gTR$bvxV^NOtgDCA^9$-?j(a`! zIts$>P0t#Sdf7WvJpB^I2{-b8aCw~WtX1f~7ZBUrew4{s3=7jxoJ|(ML)H`atE(`F zO}D4p2f~dP;oRd)b2d3S$XS=+{&<#?<@^i&@G15?Hm9|#b%W(2m|*dyrN*}gnPGuG zSr@H4-fV0d+w`iD*SMzPi&mkXTEC(0eC^ko+-h1ivnsN(XT|99on<#l1*Nk}ii$TB zPbeN!{J6MJiM>Q#_IG)k%7xXHwX3zuoBHYhGU=_0ol4pTQo!!S>mlqfam#kYOaBk} zuai(GI@~YQkMjHM*U@j0`lRZ(?|dJ*@)(|R7teh%r(~npPxM8wgFllug1ZEL98C5m z77uP_Kiq!K#Ivo1)2{>hi~c8FftYs>vhN)1Bo~nbI0mx{lUP6$67%R@*c0C{t}*{( zC9?}T4z4FZKoBVm5?Mvh#p5Jts9szmT`cV?&64z$90a{1SC}lgg};-_y~ysyDg{rd z6YTci-A}1|u0osycQ||;H|%R+OzHr(co%zrn8Jp^wKUZ}+ddjDGKoFKw#gQ3`(&L3 zAL3?<9d=JPRtLIit+B~4$55%CskiA?>MYI6o6F#?{n8lMc&kCsuvq)9o?kzv?pm#* zrbo^0>b$D>s{NI;%C!}q6(7p?l^-jAUG86zSaGiMbrq-PW$o4aPYo@bPwU5;I$GO; zL^PRL%9zBC=NSbX#I;hPr`Bt~ce#S$Q|PnJH_x}q_k-^k-xQy4pV7)CiuvB%WsH6MERdY9hA~ly?%i7ISz{ot2X@jk&8>0s1!j@zqj5N{o zQsOu>}GUtc+jGE394URvyKT<~ez{`9lT21qpCK z|1I1ioQR&@r{Fm4<)`!XAgxL`d^QWUy#?fN`UfHr*?+>_0WM*ibE%Vb-gJzI87a+v z+CJaj%^qTB+v{!LY)5S~;CHLH-i9wy1H14Xcx+FbyrE;0pN?h-H7&J#xAk^@q&gGVaZ}u%vx>K0uv*kkl7eo!sh*R- zn$4E~;l0)SAAE;JYo$$Rwv^akQ2F_hpFS+obVqcEABp*^Qn!0ESu z_(~+u@6+30jhW7HgKONARnA()X25b=%IU;ij~=Lx+}H40PUceZ^9eZX;iQaVZD4*v z%}QU?_xxY|$$pv*T&E_mGGx?abUhNN0+{QJbe21=!9wNjNQL#WwY?nH$+ot9_$Ga= zFJSXDn~$1XnzKyn;2!^JTxnFnn>`Ot{H1<^p02;68vt+fuI8BL?@fzfXnxT+xlz#g zx?yEQY(t~=nRX8-jD59Twf(fKwU@L_+7S)O4Qm=ZHpMn4=;rHR88oI_<{?(5J=1a8 zwZPquaMM3AR>8vga0(gD(P z5CI%77}ysGxTu^Rh_1K;yeQsV?oe(%XC|kfy%eUxMeyTI!wNnD zZ{a+ck`B^i5n1iSa}Ok#L^JMIOt_~>ASV9LAQuQT(_5IarjR$tCNhFC4xMF}8BZDS z87~>P;rX1#h=tYaK8#ih5*49zFZz2}th|Viu&l;_+kY1pu2#6KeFHbw2ued~U3Xlo zTpe64tk4@^wbME-IfgsXdjJm}X}@6`ZZo0oVYtR#%O>6YpS;e73@6YA(XN3*-x*(}zD==$q6>AvVZ z^&9jC{We30vD$bCw(MP&qt++3QoF)A()BNuKvXBH5fzJ4L@z~GL_0;(L~TV}tfF^>8-@LZGGT_`kYJ#I6g=h6 z;B!%H*bCK-e{z{%)p>Kyu>G-nhOr)lV3x|5h3?Gr@Kx#QH{qs=gS8`#xCd{+2E6H$ zh*7v3AA;`)e8%B324mBY=!p|e9HD`$&5k*djG1wnwi_|U6qsCE(E?x!qTpXCh8N`v z93?k#+TMx#;0f+-aDB4i7)W0@Jh1{>ir5 z7GW#3p0tjEX|=#|$+E!G4j$nw^DXmcIGdx)q&d@c*R6X({Xs>bJI}a!M0qn6`kr7@_TS}V^yVh_x zh+4xlq`)ns3nrIh*rVR!Ek6(I)L$^q%y&;jZmuhgZE8Gq9qNrf!VS2Mnntz5eQ-IR z{a>)D$z27`OU^m4=ruW>IMzA3JGhSDa2d|Aw*$>S2QJ!;m#&959bHM9?azHc?IYjxy;+Z z8wz@BC4S#jt|#{+XBLOUxdx_f4(m@A3+K#s%uK}SevI$1y2T-0e29_ggW4ej@f+u# z6ENV+Cq@(9;0^X59H9X9_-nht>SPBM_yG(&3t`rYL*0W7T#{7kEo=%`s1wvb z)J|#xTzT{1haF0FrD7=`ib*x$F8;0S8mxg!;g4C5kU1yzU z9e@hrK-@vmtj(z4$_Gy)$?^-Ibo_IJg$wWVVCyCr)GgM|wj;I%Sj<1z(ldtQo8)EE;ed-frv@0R&cpRL z#@*WO3EF5O-ts%tF=V+H!(BI+>WpU|0-K$PqElAXl9ak~aKro^p1em`|IfG%!;`n# zwZJvOH3(HF!7ho*gTRvlxPPU@(z_eC11e3-Sa>Fy=5m zF*M9SkyVr8>0Mxzvi#YTVMtA46P$R?WX>+mBThQ(&SGvbw>5a^eYt(O-MAgN5nKYcEELFzRADB(fd}(6wIAcLnp%KW ze=NqNFHW8DR3IhAxxNnL@gDcnM_?nIg)wONzcFw*>z#$p6uga3VVb?@JPz0AF6S2K z8W=xkI>*5J*~uB>)HuaX%25Mrf;-jIL5G#K(Eii@946s^?YrzN z?K9wX{=?qN4l3Bvy`b~jfCs`70d++b~pHI z_rNHe#I9qrIDQzLZk!JTm+W(5WK>dXg7=dRWf%(9p%y{+%u2js0*RCh9MqYEB$4&Mz_^kK3b|62q z3VZV`*Lc@3S0BubIE;(8i;tB`@2qj=!N~a*Ug8U=B-jQ^=XB?AaN6RX{umL5qY7u> zkMMq;LjGZiV+{6`aEA;ThGP3SJlUgg49`Q1)eBDf|Fh(J!jcQgJHArbaf1=}_QP0h zwO@t}*JKaHN#tKgt|P#?1hdi;|4k|IJfEPP)HKYC80?F7^vAx(ezAd`joOnfIC(0O zbGd}IDi9g{!_2Qt3p0{63OUkytPGZe<%czAJbO9Tu8ZvZ@MfcBg8d8MkL>5{>+Hkq zHE;^If;XUw^&B?g39Kl%guj96GZp)_6|?RDBF|vZ9sVPCkV8ooSxbM0^V$E6MLqF? z_zTgJ23(I1v?Fjjw}+#y22s#C7(6Gt|A5Jj=We7jF)OZ8hhXrWOO2uWP;KF#_ojFh z4P&BpRbY333kx>RH?C)x8CS7N9mSYzMJ?QX*A(m+eGs+Az_==bbw=+jccz0e_}FyBzioO3gB8xdGFi(TERi@1}SjsL$8 zQ{9o3d5g1Y0&@=YBq-rlW-x0AYZdDZ>n$wLR+fw% z&hEhO3x@WD|9!@?hhjBq&kkjaK@-kmJ!KtbEoSv$saQ=|>yF}2X@j-tH%`Zkkgp_= zkv&Du!mjPcZQOZ8{aq3FSK`j|2=?smxKpyxGH4HBAzcXnXAJHv4KVb*g<)@>dj;a7 zfw&nC!&=3`xj;)5Acy;zdJ4PhS?T~HrIj$Oj>T%#3GQKEjE~J#<;rw@LF9DN^$+Z- z^IhXG7Oh+XE)mYn)y`C`+83R>VJ06AU$>u=a8|=h{K#OI@n!sPKKR*VasD1-UuHjGe+(x#WsgNf@Gs_< z0yR;0urdvI-E=V!(|w^L5QXU7!(l&_!=RdpQ|f+GRRMVG)bn1|804qxgD%#Q)cqzAi2Sg&fRTq+5(J!ac`9RJo48 zJM4u>su=6a9azrS!M!~M9_~Op%dWST*nYxge;qlF?Y1?xdA6yx3FxEg2WNdxTQ_|B zBMP1Y&;4%OIs9COjg2w;6JuCoPr&G=IsBa)5yAGwO6rgErHPt>XuJdBL^=GvwZvfh zBf1By!P)4&*ultWgfW*epTpYHm9?JrjMc;nz;oWrzQs;w+t^A@Th1Wt4oeVK?c(gg z?btr}gEnwhaHetka}toX&|x>Zj-MaOR-&A5Jw;&4t zjgfhT(;HlZSiM#w!X54I>5g|Rv9mW(zc5Sw#+dYlCzwqYB33!!TIL#nUBZMazGKLF z_J9Mr3HfJKa>Di84SRB>{iXc`*8UDy^9|U0&*5yb+BVP@14BI>d8Mz`{nkO&1S{8S zvs9y!Vv}VaIFx5B+bumTfvBoz1-3TFVlew!=oZQxVd-cYZ21SL^L$GvqFJYP1L|&P z*{ke_9KDfy{qFjU>VccctF#FO2bG>(P%`q@mwD+7dfLs&M!o|XE>V?JGJMCIA!b?7>E9B zFLpNTENc>O;PRMP=U^KhQ- zjZuigX}S%fsqQ#g_rdoMxHU$?jNB0!K3`-)T&S)nqovYbVD22EZNcfUBRr;A?i=n! zSik7*A6TurA-eqnm-8s>(D(56t5MOv23~U`-qFQ&AA7Ft2Hxr@o5A|ty45<#8f>ky zJhc36nQm!sv6&OiSIi5{-ONVQBh%leSd+{6pK%eGkrjsLhApVHQW$jlkNOMx1N!aA zU#!xv*6-9`(U<5ohFOMG!%$wfJo(Y=Sj0;?tQ*)-dcjg(%Y2J-^<3s3aHCrpHH>UT zW$zddai+MB?-Ryj%#DvQq2I@i!CuA|#tP)L2Qnf-D5@vZ$cMO_S&aMK0MbDJ3@`oE z|L>*Wg*`o#D5qV43%&RM`kF4nu_|zXqqb1dRE}$n%fodI8H_6QPy{({+dCs0z1YUH zUAOkOW?L5GT|I9eVs@EsB6FlQUNsIf>J8@&0}Z5MzurgxM%PbQ+q|h+(0sZnsOf3r z&_)}KRs9-R4ezw8w4JqK+7|e9)Xvc!)fQ>zHz+_q+ST-^Iae2J_+spDCarn4ca9?X zFH4C`@(FVty9;`Lw+otup<1rc^ zy0$89ymnK4VjZ_`MQwRa-*w@*_EFwUsS%VEU8piZL8{79aj@vJGM@s zEojg;P1b)gjlFP1vl--oobiHYO(}%{;#$yc*?R@Rs`X_YdAk#TU!5zsL^aU?gEcEeIO;fK^ zuT{11C6pFZ6q#%V(Dk zF5XyJm_H&iAxJlFeL<*vWz12{Ti ziib{dSXJY<%71YHH!wDEYQRswe|*k){gg})gmWZ}j_xl~}H*t?*IH%YsvnQ%7o%+Z6O8qi} zkFnC|Wp1!&>?hzxe&@anGT1n}61nZ&^e?pY)IcZ0{>#$NB-d|kd|tP?`clQ-vZ|7s zAPoG7j>bXlQMBXfm zmh=!Ygc(}D_uzQq)%XI*lzA%AzjM# z+Mqn8*7^?$(goLr{2O{9bW(^ukfj;wGsA0`M9p8#yy&j66&VT8u&cBs^$+VuYd18~ z^vBHe9Z%i2$TsYH-a%1}^a5^rI!o7!ql9yL9oSLiRVv4J!t_wrt5H^8P_3%`r;I?q zT5!qIk_#m}OBR((2d7S0daU$vX=tgg*ssV88dATUxUA>tytH4*%%s!5*h!OIHJ`OMxdYgfMQ6QEs)T_{LR_Ji(6ynJA)kXk27b~c`_dGhy+HEw z$dLufCQA28N6HR+7(5So#e0={`*ErS3z;EG-n6vSdTJ~vqDSkINm+8UH>Ywru@!xC?ZI-RsU~Ssha9{gEThlPM z`G`Sb^>cNlw}YF8Cr*}5_ek|P>akcBD)AGBbAK={(B3&m+NPKj4QF(sX8)#?MtkGA zrh(0in#tzo#t#kqwT?QfMqTAu{!G*ldIj6GXGT)-FSDu!U@=tPQk|1ecQf5+m z@~zYfza5!HdD`+O?FRE|%7gKZw@G?Q8SEbtyd$J#&`7@@-gl+1_;yB!%c|c{Llu9? zYlF8sIcHj)s<6CtS}kAypW_`v$ZwRa^2%4fQU9rl)AUvk@u4f`;`Vf#XCIG_GOhHQ zEWqoCqMgcLGv7ZbAOS31AOCUcF3LoYEMW~>M@)BmTkh)5HpMnZHlc>W^w1XX4q%0f za^;Ww8bVG+?T!5&zb?Tu!4x~S#g@>KnxTpyX*>Q{))#_8|C}eXKf@h&T!FMadL45v z$HD6(>?xWh8Y{H$SM%<1mb2C{8i;(ig1Uus_YP_e&LaWnxvE4abQrCcayUL&`gN0i;u@!MsjeIh?G%UDN2GBpd!#An4D1o0db89;00DzW`Ao@(-|Yh9II{;q6) zS#fDf>EP1drRLJtWi!f$mLDknulP$rue?<`jTuAJ5|RddPyBNG)2@$RpZz|!`tG0d zBP+HN4m$T|-Z1HH#XU7A@LbrY(6)gQJ}-o)$hY`IEBMdHaeERJ^F$ z)%e=*!P<$6Vw_+Ha~Faq^%WVPO~`pJL{{M%H$qh7m8x13xIFBABtJ$GKPF*i!j70f z!e#zEZ;5y?d!#$Ux=>%#xVq8Og!^ub-C0T(a1+I+O zo5vp6Fxe)Lj)=?Vc?%WmlyN?BK7q?pKcrSUep-eYYjn9y%WxyNi;|mYx=4C0GdYr)dI<^pEf@@nq}g|5jMY5V5vL1d6} z#%}t1_a#>gsy{7+JjztDi+IZ=Y2F$B2@&UF-r;%q$90dn7}YPVyMMOaSMZW9aVo8I zK}0xUF11Fu9P|Y4Ly=CJ=~3?m?y_>HPk-fJ`3eu2tW-KgcE@wQ+(&WJ=eXK8fCvc- ziw|29azF5v-+g6!50xO9*@pJYsc>Aik9Lf722eeTBIW}ARqev;!+<1%yUXZby)+r1}hJ_p?n@d{G- z{2^JyxL_Y<R+umBQddG(xP2ij>FDR)KS`6QqTI6w^-Ci z`b^dny$Lc95C?K6;pRM_^O|=__(PVdNYES#J{-O$a%a@~C|aZ=v{%3}pVuIEZ|9z6 z&LO)X6Rl)KveMXL+#p_SelLC#&x?16oq;;+9>^GH(@zmMQ9HVX7)EYHtR70PA;!Ad zE+0n=>w4qR=Ae3JRdQ)bkuUlfcjq6@*XDiCGv>a}S(*JY!wGZ3{%-{zC%*gfYVfPo zubuBq-(P3^stC7HtaP!D;)PFFb%B4iri)LSRKzyf4d8%J)V9;E(4NpvZEUOm*CInD z;5XL@=NOv}eHPnvog4Pl4X@SJ6*sHx3dT9Xzn(u-?SlwJQshwg^U@PI&5RKL2M23_u$#cdU(6rG8^F25JVf8(euz71 zC3VQXgT|&mr@QH>nq;0}Iv62j2ikFGSDVvxQa`rob$zeeN!2!xxzCpGE?rtYyU>;Y zN1io%VdlcL(B#8E|NGYTnfmB>U-VA@ZuQ5-U&sAgmAj(mzWF+Hui%W35>J(WmHK$3 zOS1Xb=x6K$O$+p-skL=FawOO7I_ChlnOf^wV4bCZ+Z5cewcb+aT^CyStzN0;IyA%)a(4l_*JUyzWtTs?R%CE@cj(~m?lw3K?k$W z*}vzB&_Wjjw|tGfP23TD%#nQ5Ob9VFA@^OM6LbQ0QeCg}bwHX-Cmtn?C$1%{spFY9Sfk)6Im-w# z6s+UysoZ|NoBT$?;UckAFV9WClDR(XS?0X-0WvUUa8mTAR3%wQ+)B6#{o({%1)Q|E zfn5VhSflkKt%5=y#=Fu}H3(rdC1|MI2r{v`=}bM4z~ll9l<0HL9I(0 zo0@zE743_txyW;vc__*J$d4e~zuD{Zw0Hk-k=?7k>%#vfO}N8k6GcUxKz#1RkjU5b!=38dNL>8EZ#I#2+w8j_}+*< z@?ZR0>OFAC^YLn23eyf5kt~e%3_1O!-U9D5-vVEDfE?z<+aZl`8;N8R4{Aq)p)MFF zwIes845ndOJ$PG0Ht8G1u8iqft+H2S@iS&AZb~1EFNl5%S)vId8g!h`kWeID#Yco^ z1&?{@oW0ETv^SL5KtenS$Kf*ODb`^YmED>>pEa4ehdztep2mYS`EBYDs(`u`JXc=o zBg$k_Z^9njKS1gmh$1D2Ln5wz+#0(Y85pV?SmeFnJ_<&R4z2e4al&+&5k=lCYRn(yQX_-pv}_-*({_)7#W!7nElEf$>=-4#s{ zJry1ijOO>|4dGtmB-oSLT2>3z8Kx9EPS=6|;~f=GJwz!ZF9uqB2I(d70`XtsQDR5p z6v9aSWZZSA%gx5jLdy{}DlN4-sZ8vTtD|?rXM<{g7vE)1!o_!Xw&z=?)HbR4RK=kj0ju!4{dV>#-!vdW=?dF6|X%G?_?xL|A~2V}}CY z)01kDTn`+K7Ln(nF2S#Uk&ox0xzG-_trPG?7FLck_cU!TFER`)wUw;aHPB);+~S?; z&1!@CTk#jo7Oh>2*Ui-lOUCHqr9a9Z7#CD@v$U=v)TnEVZRZ^)U5`B{e3JvU!BOG5 zQD01-aHM`9CoywzRrtZg3#6-%IonKaNu$$W(#JFCOcnD5OUZu4xdB%AG=2g9pkNrh z4ckP&L>7@wlqEhQPKozO1k#Vvl`@9BhkS*6n!LBXkvu7TDC;77Cmjsj#P?%{Uku-If%r_UDHd` zS9@MZ(N~pTEL&_`S~1Y_ch%>bhPLMps+-_d`ql?JhQ>x##||g{OZ`Ot16s^_0+Y0n z{4eD+u<<;!rO@d(k-=sDVt!`*U|;1N;Lhh|@44#cd zDDfllI!Sl18y86JQU|O#ucb?*VyRlPTQWwHDKUsQiS42cQ8OV*@QHVkyOFb;J)MPT z9;Ii}bYL(zLfS|iM6lzAVRxaAqb?<{#D7Qek-tJ4fQRtX^TGAUp|Mo~<(6Jm-_p5a zkg-qM*wS+)i0-B4YVi$q5A_1|ef7-ZRB^J{Rct6`0@r+i?p4X%(#vH#jf*NMmamnG z>h{(%cD&2$KI+B$=LhD6PDJj;QVHnfLsw$@;*Q||5LD3f`Gnk`@{ZD<>Y%=%9ity$ z++)6DJz^i_Oyu_Gb>(LX0)mr5kFXnzKVMuW-XKW_hW{H`PoUa*<#a_BxPl_`H_+k# zUN%fdmKmjIr30nql8%zq;&r0#LW~7+03bq2IMqByJ{J~@|r<7%vE-3k|ZLayPzFy=~y;Nlu zeJ(np?o!;fxNY&1;`y2p+NZkS`X&Zid7g1}MTUh}^;gY**2#{Wu75qleO7;dupo?$ zjZZvEJwm2q%CLj+CkbX^BXU!UlG2)bl{%j`n4ZlT$o!YJp52+_=3M5^<&6e&c`qSP zG()sSR3MrlrbyJ13)1N_p?s5ECvT%zt$3oSRCpBE6<&D`uw8Ry3uLQh9b^}!n-qm+Cu3t&2Jqy(+q|{->Czp=!#DIU0ustJ_wxu(Tf- z7$2F0W}AgvJ+fA5>*Va{HhPBos{Gm@J+eNQOiV*9Mt8^haPtVCi70Y}{EE^9dP(ck z>eD9yxwbBQHfIJm!X3wRz%Gg^$QN`H9ud9}mI?bqCS51~A~_{Zm#vpwmc5qY<$dL= z~t-NfOrH!-#Jjo~?CFsBx z@PeHG*jrhRm=Eb0w1t#ABrQRMyMh^lU{lI?F|fRwgxUtUzBlfPPP1)GZS(4&MOksn zxTCBP?T8!qJI=_fkWK^+=))ZNaTtMTkEE=e;S3FT;&>krHyY%m}enwG+-K?pM zS5L8Cv%hs7b9eG0{$QX%I4{~fk)NtU-ea~vFLzJkb|6>pqs*sf&;;~!MmOdv);o3? z=RfXro{ra^|DC@^Fj^=PJrre%w}?rSACjd~$Sca~$@j`Na*QHd(Ol657|zQT6BInf zDS4Lsk8Fm_ChaEeEompt5{ZQk1@*yl{fJYay_WfrPNhwwyd}|zz3{Vug3t;@NfyQO zBS%AX0)P2x-2XV6*sFnC{-|<`xvwcw_N(-6$#rc>aZfd>sIiKm>JJ9ZvqhJR_80Xi zY7Cz|te&gsq-(36Ww>4b%yh)Ot8#humD*Zc+~Ief^YroM1ad=`$hNp5wGG*g=>*n1 zF0m(R4tX_YA9Ww?I@k()OdMOrk#OttF%Savrki%=Yvy z)Jfzm#LM`6>~3^7lr3>Pb_^^t9|HG$lRRo?efvci--zXB#dG7avTddFN~USg7dKSP zi{`6Fs5Yw1s(M8x)eY5ERZx{E8e05Gvsd?z{(|9I`EFA)GqI9eJ+bzw?X%;uE7#M{ zcQMd7td5RPJV})x?=Wj|UT_ATB)uocC~auN=*Jj^OgVcV=N#3T~Bcl|_I{-3Xp% zo6sO|^KHDx+<}~%tV#xt-iq3fypVVb{|;M*evF!vOvW}w8iuO;$Gv^r?;UMzUusrX zjkENspc{3D%lfmrhnjMAyCS1fqO=qqP)<;NP?=P#R1;NIs!K&~^#)BB-C}*d;Z6BV z(+%^DN>6n+>tg#_X9Kszqw-}3pM?9wo+pZ6jXsN+fD;iu5?hfsQ;ty2(yHmbnU}ys zk>Z%SuX#)OIRcLGnQ)FsA$}rmFIgWq;t&wH`zfRf zs=^3kJW0-z|B@Y%iDkW{{UkK;SK%Q+PdpnFh8#uH|UfsuL<1)R?|17pe+Wg{qsX(W)h? zu0@^I$BTPw871j3N4GIHt6*BPss`3W7E;>nU4aBs|#ewKEX1!Nn6r#?h6 zN3lThw_>7VHmpp$6~`1?6$5~}KMqEAqbw@z3^Ns8YzC_MZ~lGW0xpAdj>Turp&y{0 zBp)Ph!*9l}MNdU#C$+H+k(^MCf15YWebdq1R$H^Ps;ebrx?jG*Fh)N{w?}hVEh};> zsY-w0Smh&SdlgGns~n+vqk2)4RlH6!O?O`Z$>1yZm>!$SRl{oTTbYhhn5X7?=lQFG z$0CaOtE3*a8$AT8#VsP#hrCI9>OZsxbTTu8RhK=JbAtO5ECVY9C4#=fx59U#3h_(H z4Cz(r1K44;kzD}u!V0-c-b^t~aYpe)aZ9mYF<60t_jkX%ncNM0`LQyRY>afIq@TEs zh$<8ag1oETR-98T26I2Xn%a@lkJOcrjtikxsH@1OXA?gvuSnWgIaeav)P)?}m z2VMz#&2ZZgM;{l}Q|+A@h=mSC+a$)O`Xim8!OnqyL+l0PT1y4?2kbO1vrKFbB+91q zI|(9!-Ef*XA!;sGi)TTKFCghCy)JDnQ_DukZ^3L_2l%rm6jv1IU_KtN7^G;a;41!r zIjD=gRyJ35Q+f(4emzAQU{!bV?s6w_LacGj=kz$0K#3EL_#fDN=ryPYP@ozf2?k&K zH+eg_b&e@EU(FF1*|_O)`8Y#2eSffMoKPE7)0N{3%>@k$j~1eo-IWw&sBo2XlIluP zyJEfOoNm2-vSCZP+LQ+FL3<6uCU?Z0dUvHaEATorD{74Armi5HF~e~Q{3T*{@(oIY z+LAtl@txU*eFoN^KfDtD9l<;yU-U!-<0HXJmD07c&oTp?A;!vo$$P+O^npQUQQFD0 z=V{NZe?;|=X{08E z<~Sba1FB>4d8~KD9lYru@5Q_Sb%<;?Y6eu1EE?18@{;BS|5g#I{F9hB^gW`7%6om(~8zy0T_SRTE3y zidM$-vdq$EB@?tai-qbRs-H@h@@FAOIaT>ZDOcsFwyPQzwN-B|PH7(K*6O<&nB@}F z9P^*bDK$T>E_>V=aVNaJ0-rM6L*xI zhqLoD$$Uwg4auOnB)!Ln~N8!?X443uu<2Sg@eCT<62AF?vlHo*i( zH!Z{n_`HAIH=Q%=Bdt?w=2V@sJgxX(RG0lMW$CBreruK#w^2)q=BVnc*sAd=i>h7G z(IT|^q55#~LAbNqTOugMm-))|rj&V7)r*=oFv9m-7S9LYmjE%`Cb~18N)AD8VSeD= z5B#NMo58;($QND}%@bqb+#irEmwLf&uwAwvYOGJ-nVtYU z#_w_q?5G}q=U_aXkW#Y$WP@cNrLCj~B|OO&@j&rIQ4JV@F7WsBW^(&;+Oq@9a|{7} z6%|c6N@_)f(>d-4<_+>ZbvIEOlSgNTKL-AnhkDldP7Q#RtSx zab3|q;SIrezKGwHHyw5vKGq3lYsP!pW@-*4K`H>I!8Ke4b{_g3s%~m?qAb=W`geF^ z@Ufrn+XU30DbDwHueE#a?rKlv21^_Bds7c%v}}iAW@$%#ladoUyY`uOq_(y8p|(Kl z(Jt0?EV)v$7}z%ZpjNch=r$cTcdv|Bd25QT&+U5WQ+FOzYx@N|f#>b7_^jk$a3PJr z67Y8jqey=82gkIdeJ# zPrpfBP8mg(k_^BiS%7PXT?~ozdMRGADqafRlzHKjATMy$Hyd1Un_NN1OZy<3rS?uu z%j!>+*vd>xQyBk?Mt*q@gT6GsRHL_)Wazd3@4G1|r5I)!dX&|aJu7c!ylYZd2rO4C z7gp11KU%-pw>k&9Q=Xf?p@Co!=)lo>KooVQ-XVBQ1UnM$OHYt0DdVX5w2$u|d2}yclX=W5gcO zJ5jdimhhQiyWpT;6u$+}$Yt|9oNnxQtOu-#U^1La?@XOT5s+_@CJ^7@??GLCJn&Oz zBOFxo)RJT>wlJ!RehoJd=Lci{w~)2W^)_&eTq@UO$2i-2+f?ZNGE`Souc|y;sjIYB z^@fRQ0~G1m^_(VCE7E=L&lW1AKk_lBY~`NL3n{@aNxhdU6`v9Ub;i#9Ov$2yJs6|m)Mv!g4!*$Ad{=IR`aSwl`Sn} zs=8KAtaw>jT(#58s(e`4u$on+tgNUe*a|DtYTG;c)-LvEj?3_IhU@Y`P z?+MpLDe-3s4WyVqKw8v}P2d#-6p>0cl6O*fQ8qFRG$kX0wVQp5Y2+;9UgqrLZslh4 zv-o_TlCR|T5Y*+j;x`s{;x*u35~{d2`E&Rj-Xrb}epl{Tb`HNChs?zCmNA;M+pv02 z%Q3EF~;~%IO1G3wM!4j4m7oX+Oiqxz8LxyTBgH9mLqi zUdKVh=bX!$&$6?-unfE~xRaLhH!uZYRG!JpWUV5M>EEIEP+UKIiI)7FlNPKggbHDJQ?UO^ZoEvM029`K)d(;ksv!{QP zdy4adYqM)u;Eto7_lomC@Stm>pXgcc{}wvy8{s<;Q3nlSTxfJ~8ER&DTKFzzPGm&v zJ9c6GD`X^ZC%NQJNd)(p7{*4COF&wrVx*K(+Fa~v>TvoZ;wefcJwpCTZ%J-Tmvc{` zS8{R~m828EpnFNb#mFR0Wxr;A$G+j_Fo&Zj2q%z^Qkzh5w0ts$j;3rQHNuYJprBf} z57Dw*nA~`7RD#>8KMTdd4D?JeOU=QzM*1L+aom?*s66w2k?)gN8%e$ zog+Q)tahp_z-AP3gN8w@LL+Ff9*_|+TNo>l1_%c>DrYDV(;$xG{$Ai@qvrZ=B-h5U;VPs{fC$L|dvHF`=^uuHBc5oP9FbfadybLB zTO?5E=`nCJr#?qe_{&K-W^e2vYAJoQ>l$?lwps8j$$@(qTar9Q>x&v3sn2*3*@@34 zb&PZ)e83Ju=3(ogR^W0_3Hp=ZIpjAxE%tBd8RvN7F!BhvQAa5~LMmJhF$3~!6_lCC zceFQt2)~ik*WZrT9ZVKD>hU-~ktCJJexT?ss@%WCHQ;NV`<$U^_}lFgIyLP4h}fdy@Nn6Hq&2Sy*=JZ^v!iMcVwz zjVKk}>7EgrKw!jnBw8dnQ8MAJpONT5-tHw}>m#?qM$)z5jrcq481#IP6-IKfZzhEs z-4+*Jhi0w?;lu z&nCab2cS+<{*Dwx2pn0YBJ3uYq#|Jg>2;8bK4u8$TbSvSwi)dpD69;I05sqJM(TtRJx?Z<6;Xj-ju{ z&JYqQLTV>aO&QqlF$=C`G(fnC?i{#ESb=l8p3@oOWU?{gm7B^s7#Z!a&&Z1sfQ@SuA|Vftph`8&%+t1msCNrD0q_~Wz8Xup4%)y)`Oz?Zr>q*4OKGYE6z`$pGFH)9sH2I&n3J4$W&?2%dycQXN zCxtg7T~LMbp?G0pv!^}Q4+K{~R=pat1nFwZbof@qQv@7oHftg>Du|(lYVCY6;}2 zxa%n*@;>$xeqd%yVQFYO$QVpGXy!-fNzM|+R>}JZz)NAWp(o8}!@*4B6_X;TuyCQrz zc^0Wb*AIDdv!fOO`oD8Np|r>M_U^;Yie)1`$qO84)GFLP(zL)<&s6@F(A7v|f-KoF z;KG$*4#YM7$M^??h(9ke7B@S!2Vq1Q$Z)dMg%BQ*4*K=z-RNV{m86ETF@6H+M{;p$ zD0aW+E%_>WyMK7{DRvgIJTf4;3t5LnA-d>V>?=|ZnjCGKJWjnE*P{RUdJ*`{vF`W8 z7pSL*oO8p`GclI>8QU(o-sK0g&JNV|*t5Vpx|Ouw(Hr%FI4FTZEsJ!-P|*i4vyiR< zJ8lg=5c(75<7Q(Q1-4?&MCIt~#LIz(v26rvd`aS8)Rv?!S_fYMeE)5zvGhLCdG>tb zA#y%upLId3ov3}R*sj9ll4l^PKr_^2tQsjmun}i+34S{I>;I*f$T8H^Xm|8K1V{2` z_C7A1|A<1ookMXDI!AUCm50(Kr$5n}!SZnfAVkb5& z)}0bT%Dr}6Idx&IL#QQoAt40mS8bvb*ATj3n?)-kxf9@Q3T>sxup!Txgcx@@c^7jp zhz4`{IOqkaNrvzrU6N!v{%!bE$`WlA?|_U;{fOR)w1Z^%Gq86pj?ay*0b=9$WF)#T z&>g8v2qGn@ZN9&d2ZTL=zR@emu1ErN!TURyz;z?mM!x#yAXoy>bi+vC6^=-#m#{_o z$O%+e>=~qU@*Ac<7Cd<|Uh*~e2;n!TOL7=`2_^=%jfbhe$=Ui=sVfNq%8AcO4##aqWh9CdpHm+qM=*+1C*Oam zZg_oit^Z^o54Y9Vyob_$A6|s-MjSz1MH&rE5Et+*R^f(X&)_~{l(;aV zDN=&U!*)%bO)f;aAVn!o(joErIhlbhO?(P*Lv_JuGXhxh-2*niC6RU)O1lZ{c;BqkYJ1vq9s8idjfNo;TQ3vfN&#;2n$A#KpD(DN}2NSCew@1~yo z7iBeNF8MwwMb^>kGILlymX7s-d5FQGx1kTA+Zi6#An49{47ZcV={QD1dLQ89N$B+< zLsXBtn_5WI&|XqsQf0InsKDUhl*gbfr3Qfabb`8{k|N&)7ETW35_KW%AZ;*h4`l** zD&;uYMVdj`M7~L`Pl=MoK_2fGF+mtW7>0{ur(!-p5~dY8iDaNZpjW5b#wJDk#`lA< zwKhB;@-6HDztRNg2z%h&=pNw7a-&^1`*YiH$2lhb+Woa?d9rI z)jcgY%w$VTb5`a1s-{)#E9+W*Rz9nFVQuCpbM&_#w62C5B$LDE7W+>HD_}n|Cj2Oz z7xqM+B`7Ew#*G_Dz!3`wW5GaIO?d-0#42hIy*0zaTEy+ZE8*sI_OKVT+AuSiKbe== zJK-)ojXRv(o>`annsSxWo;n1cnEEscbgk4SUxV)4R)nAUpZKSQOTYEHS3Dl?LB}6N}9?parioOFJoS&#lASX!@Ex|T7EBr8o1Qq@PzJ^{haK8R_cX17L zT(ljl)mQhco>|?Xnp177I#^j^VVZxM?wCx*Ri^W%kESsd5z{$SEwFTBXDjLe$uWm zHZeu4KCFAJFYJ@t9Kki=H(`*E;r-&g;ShNq{&ZmrVL$#rZY}E<5ZV6F+b}8_2N;j( zuc-pc5n=#%F>(BLNP5-;J@ zEicb5ix?go_Lq$)KU?0j{6X1WgVK;JJ!Lot9Ng2UE9Pz0qpk02nYA6N#Fe9}`&kdV zY`%NJ`e9=DM@RxLrfadbNiuo{PDJDbx9b>GOlxQ{-~vpdUZiF+N_g&CPR4dX6bNHP&rx=rfmw1^PpfzD!VK5oH!3daz|BmSlM52Az7Df#rs}IM-?a8~vC2=+E zt?bL3HBg-o@!A0Yel%Oeax#8_Q+XS;8RaAC3-Jdb2j3SuH9w^a6E?_mtP4AWy8>(c zC%j@$%1LrewH>U@t1(oURrRiPnzg2N#s$Vt<@$10d86_MW%kl9dVfh-No~n2{rXaO z=}v>j@VgXO$^!0fkMhap2UQcTORWLOy>6;%RFh?2=KkStAC^W-qs@Q}GBMsM`3cnr zDKee%&wRYC=m~8s;0~2BUj3c*Y)JuVa>@iQohNkYb`Xz|N9_ zpA2tkK8Z$}MZ7`0M%qmA(f(mBV0Y&B;QirU<$d5L;Hi#s8u32zD+N7-D+OSFd z)0zJ;e$tIJJS~f=A@3laAh@s#(WNPDQW}@X2+^P6&7p~b0lpvZec-D9XkAddwdO~) zy~|#FeUaSwluyo!A)*V{YEs{LnI&VFIHoYf-{_r zu!lqHjKY@-w}_WX`^!qeOg}^NR#Ylr3kvzW1zUtuM4Lq|g=Bt;UBkFVYfJ4%*-809 zX+Z5v#Y2Z`cYGVnOVlLbi=BdWpB~*8lZ{!5E=BaH-awYoq28bm;;6(fzz1AQSwm?= zc}?+BZ_?2$9Xr6?!`}k6-7SKV{NcPL_aWTPU*cEu%lXH62f1_(k@cL8gRZZ!Lp9^9YHP#V zdo|qJsMY2g>$iom31xCGYAr%WP9a{T4dyKVBl!j+llz{ZC+Hwp%WKAM!Oi1J1+PV1 z>0o)OyoFpVZ6SUmc*@J-R&%Ct(|ObQo%mgO3eHW&cItJ~VZvM3C(wYPu@9I^Cj1WU zZDe`Mm)Mz zth2P4cs1n7X2YCQkELN%vV&|4JH@z4T}zsS$6$NF^Hq)MjjM$}AFw9yL%#zoCC=kbo{A3QG7_1TBOiAqDz+ z&O^Vg3M%ai-geGM)>r0FV6mQ|PoXuXrjgqb24m&O8}RVT<40oNs3LkPYzpr4pYbqV z8{jr6$6D9A%DUe=+1jr5V)dTNZssMX*2bUZ8;pBRhbwxT%@waqG$R7}-2wVceZF2_ zTBmG78L{k7DIZ*aYTd39N9ly}Bj(Z7Ppops6}!~_FZ|AN_Cn`ULuvw2{9nR!K`!)H?+{KDcY%JL4zm9wT}2%J7PbyL zaE{Piw0`tQuwNt7mQuXLnfOzf)<`xOr%s}7BL~o23>WhfII>NV7pRq}&d3DxKrCeL zi5WnVR8W^wd9)|ANA&T~+5L-K&3_==C)z9OF1jO}B0MPkE!-&@AnqsbD6SPU1a9so zc0NQVAtoELi-nFw~I&Ov_QmoLrR(7n<5!=ADoupP23 zu^FtP+G#cFDq`ha^SO%Y714^8mIlB%xLi5WvZF#_>{s@wbWAA&*42LHAIh1=tL06~ zIEJ12vn4M}hUjM)z8E`NNVP}pYUe-hDXzHlrSqP1s;AZ`2=__g(IW^Jayy!zmPVTn ztkE^pNAyxw2Yyd69_$HC(r>1v%lAvP!ZQ96{tdoM@J8en-;(IWJB1y1Qr1k`3+N9R z2t*qS(FZK9YW!Z@3(Owm6ue2M1R=RM*(ha9jQ|R)4Ez-1(5=BlT7#QJsDduhp36JUe;{}wY$&=Ya*Il!gYE}(!uJ&A0WrO&pds+m2XV?-!+_A1`)6A#+dZqy`lVJ- zd#OfHGqBoM)dt)M<12?+KAJh^u@#Fd?4~*un2N`yOD2c0nX#g*qhY&VuVd*P+6B5~ z$&1oH8k!9&tR6B3tsx;k2~~x>!3@KlhQ7S5a31+ZT}z+EWV45Gx^VY$ zRa`l5KhFfVdmH#Du1R0Z@?|1fvE-MiLJ;Te;GW}rVNYZ)XFXy5%P4|$?hKL=-v#>^ zv84JW+a>zMx5Vy8%OW?!4MML2)BU}C3%v_H*WE(*W|!P`3W(;d9OLZUY*y=8>p|Fi z^tAq}?Oc1bCa-#AmBG^3OsL2-Ee5;9OydWm!#L5nue{9Q&~MW{)@&|rR2(i|r9Dz| z#Go>rsC;cjJL9fjo~ZjT&pyw3&tBi6z?8_*}ucu(T-~s;zx0W4eZD6U{ zBY2;LM(MD$s~O!gF&SeNk0f;AYA%jFhpC2aOjBlS<~~LndNb-nk_jKiEJ3!XCM16X zX>Arb3R)!^!%uGF9aPR6q(-7@kS&;|xP|z=gtf$OV1zMHKGIT*j_~gOf!nk)(O=@} zVy&o=h%aJ@-iz#FkE9KBd5x7dkk%2q1Y}-6wwiH*CWd{=OGsU`CfvnUVmhMVpa!Qx ziJkFibaLcW$P^gq&+)ATx{l7f)Q9p%d_CZP`K7zFE9O{c*V|UX8$I1#Ywzr^+MTw` z)>KVz=-}j8R27nnIVPS-WvpwQQvRmwu;FCs7`;dLSo>I$EVdRm(R9`JDd}!-nO;i^&I(`fBDbA)Rp4(KJ9NbsVa{J&u2t(-5sd&0ev zvGS*i`e`Nd#!|a*Kle5BFWN-%3*vFYO<;$d!dc+-kcH79$51mWSRIJjQn?J)vBnU7+7!xEWL7{PL7Ffs+Pwj(ei>lG8FA7^$Br{PK6Q zX43ECzeG90DT15)X?zcFGcU}&$a&AI2To}kDFc52vl#iBx|#eB2&#m{fVeHTGdeet z6Fwf)1swj_{!9MNenMbeUGmRw&B)^wexHK zs@_(0pmL*Sg?UxQ6XV@-q-;s)CB0fF)t%QYDE_XVSM;=K8ub4DS6oNy)bB7Zu4LOk zxlw_K;a!odz}4#)>k+RL7o;rcSA;$EDCf7RR>nIfmRKyTp6@QXcNf9|!u|zRYF;`w9 z)ryx1L%hBm1Jg(sf<0jwTCg?uJz9M$fK@~-{R<*w9qq>=HrXkbps$J?P2UkXm6T}o6 z^&zzzNTKr7EJTAVCog0b2sX;385gq_WOK46rSFsFimG{SfZ9;Y+RGl!P4U`6{-Kee z5s$>)P74v+VHKzXa0KBZ7s85&J%WlwW0&J|f%Ixkkb(MI7npwMQpaHiT#2cJ+eN4Y zw0;WH&MxE)7w#4Jk&2)*rlaf{^c6RdoDeS;KM)_1Y?ls{70K?&WU>vCO``Yw+ng)R z3$!+r;iMP=Md*t^i7N#gj2Kf6bn$j6MY05JFAJg_BFDjB+bL`b&yDPhE{!z;GG?#% zrdXS(AksS2D3}vi0DNk(U+Y`wd++_|*#}o!{pLsdY7(& zZkBeCMxmJiJ<6Ah)Jlf3i?Uzg7?ru`oMxEeRz;fCQzX4@wJa1???E%og)x z!mcncEKkeMxRZg-h@=_hpW(f|Ei}RTW}4sySW5;9zYEIveRvV}bY^o}Q}O~ZMK!@F zkq?l6wxwRBUIJN8o_Yca)~!IZJQ2?ZUY{Q3jArqz@x1sB;F$@MGm_n*&Z$bofcRPx z{X238(iujd4k}djocHVlZ1!41&8zAWRV9{w=9Z@1^8SWl`Ww3Enmxs>)#r*<6`56S zi!xR3l=qaT!U3w=s@>|W`QQ~%0srbXX(+W1tG>W4 zk!0M-{#N(DdcN$}8TVv&1yasJIzpXJZb_C0uCHc|`k|_YvR>iVf)NEs z!Ki|71&0d%g@96?=BK`Xxu^22eYwvRTZVkbPoxNGNjjZwq;94BLvBm8)B3S{3HC_V zrt`Dc)*VvMn%z7@B5Nl&!n#O(PdtfRgnfh2W0b&RI|uYN7t$SdKG8TPjeHI+3AFJW zeFOa%sB51KEsOYKSCSHR4sIo}8?`ZGJ-Zq2K7Tx%&JscsBw`SeNHjs|QvW5!f$c&9 zL|b`sZz>(QL}##V@XHA4z(rm}7=b^CZHj4(Y))}ft$}o^P2EGiM#Sj*NDow>Bqnw_ zROajErZ^^Ao7VKJVppy;pRbUaewQyUGnP)&+jV5^g5vh-ud2SPwMuQFtuO&yyax(= zf1VfIC@53zRQJ$5DN|dHIg0(s#1Eh=U7&mD&zVu?FWP+C7Yd*1r{7?W<7bPn$O##3 zv*u*q$;78WmR9k{vDZ?wh@-F;)NH7As1j7Ldk;z8NVHD?ZxNVXW^j6D2B!Ka`j!67 z;PcShNS%0x)Eo32e1Gy3I-PCi^%LEYn&ggHE!qL;xxtcNviXVu>DMzB zWqe6*ptvaME2z(&N*hWN;p<|%VbGY%n5|HSl;RuU=izd|R5%~WL5)rwgXfEwlA<0X z1Q^kF_&o#{@fm40`3$)~aKDA5^TbPp_drH0hLH|{ZSD}NY3gI5eSB+F8GaUg=kMkH z?uyyNwQ1F9mRwU-c_nxS*OcH(HtC4E@7ik3P)(g;Z_y{!38kxWa$$8rS;3J4TA^C0 zQVrHLD4AfmYhGLX)KebaiqsNs(_XMl+|j%Mw-@^!BTj2ZGt+CC+qj2?o20MOK4oY! zS7eYC|BBahGw5Z6g-CUr9(e=Q`lrDK;StdbvET9E@tn9bIz6&JR1r}5&Hg$;e)v-~ zDfC8CTd#`QyZ$WmbhaePjCO^xbLMih;7jl6m56@lo**Nge42DOz?_ zI#Yrcl?@rfK z`{~-bRrAgFjJaheOVjl7lCHX~+LxO8nlZ)2>W1ojMGK3j7IiM#TSPBaAzU0`fD87dCl3qOb~04m#)WDC?3 zgoas&V-qh@<}+yA8lg(oDkCF1T*p&KmHjRAdfFP4+`>K3g@WJFYeUEP+K*kX4k2&>1*}K9@e4 z-heKq$7qA-t>{DPtLRT@AE{r-PC_2G3G#2^ShPA63&i}R{WAXyUpH^A8}F=dtEs+f zX>ICP7SS7YTwSiVu6BjCv39z4jkdlvOY7In&@|U5i#rteDBiCAT=b@BY|#S9&&YMR zOUsPL%Bju;!9eOMQAz*7{YP+G6chCneCBQgZ(v>83YwO2mff9?5ogNgKuXgr(}_NC zJ2ScwKcnX*-i7N1&-#kIx4l2SYkVf(46vTQ4%`ij!^a~%ViOY`Qv(q*+J-R$e_%f0 zHmL=5D+A9ND0nMDr)|i5ll{2P(K-jR4`+T&tCH;(_Y>~tZ{ZE$6?2zxL!1|obGFj2 zP}UL?SUs{XwK&lMCVM11pVgB2o_2uDBMingK`l&71_yhyupsm#(AWP6a`WSzjqQ$Fq$X9_ z+Cr?DZTze3K&h&vk*>a0q4`<-u-I9=Pt!rG*D`f0bXXljw@kZ4^Q`!#dNSk*dux!A zD~5U%iP}M)ma(qbc9fCqWk8_nFPbcv#=F97O4m_4P!05hOca+d>@E&VyGR#^S%TNB zv9vvedYI;^*|D*aSa5paxzF$U?f&L^l(*>`&Sk4tzA+v}fg&uGXbq!?@ zX*ppd?loo=+6T_0Gs(Na;XVW;bZMeqax7{r+J~tSSZ; zc#uj+bL$}C*^vI6CZlbptR@xU??DyEnwS`~g---4{AJ!F9*661C&e+u_PMrxP4lWt zme~~-jlaqeLrTB3 z?zSwm4)hO=55%6Qc4X%BFv9P`r0@!F8HdEG%TO|OuoIcjn#Uf>JI(u#-;Cdsdy=iB zKcT!PEXIsaZH>l)i+p$799OQRnZxDKJ8yd4`}>9O$5kmhFh=hX-VmFUZh^(YOl(Y^ zNX=pFV?W@B#LX4wGWKPC&c2^rl65E(m0l^2OD>DN{N3C}>`cZZs+`Ow_99U6qi|-d z5Ik+OFl*3#kTt;g+5^Pw-EnJT42pp{j~@m%rj1$WfvtIyHviOaj96s7uy}F6Z*>^@u*yO#|FCzD*l^mx>g^rx==X? z_BTB%mYO;kBW2qRQT^kR3Ghvl;C-fObG1!$_jGMa`jmXu&DZtOGPLuxC$uk0S{t4N zYi^!%PiQ*oKRk^-lYNK(MkE)Rg|B%hICzeo`G)nGxt~d5A7@cHH9$;z#QF}Dg#a~= z93srbE=LWI4-OCY|KqlRX{?L=t)s^E)b}}*jCoVjG1Kt|;z{xb%65*)TKn1~<&i*}!g?IoU8XGc%K8J5J1!Ey=QF3un5& zYd`P#|1)Ro5e;-#S65fvs%yF!_&#`O*w)BB(f-(>CDf&cmVRH_SjJJRS;>^x9Z~hd z>jv|t2;CLcDurC`6NZ8Z;0*tcAA~x!3ET>9A-H2&@g0TMz%qK(Erv|Ct(uuh>*gA)R8nK~PW>so52!TY~XUR5R+{zhFFB^x3QMrN!YbuhvU zefcSlWA>xgvDxd)Z!)`P#HQa%U6-=p*Y7_EC0F>-BB@Jae8R$nc?mNURwq13SetM? zp} zXZV?r2|>01mnqK}X_Sn5)ZU5=+=aO2T2rARU$4~lQ~#!T&u3GcufCh+C*|(25$i*1 zeS6is{DS$O8DdE?SNN_NsqUmbk6d|$af-9^A07ECdRLsi*z@|1pUSF{jmAS8i zsg_snRhC5M;v8Ll z{M6goJI1ri-5Iqb{AkIQ$T6O5iO4FIF+1&Y%79<#$!C8&NU|nQP3)RDBJpx!a8j+L zh$Mev@5KEHKfiB|zX`o)`!ep!urIH^M0~pyADdV{xmIdp^J)7&_ZqfP(NkYG;J=U- z;fjd#@E@T8A>r_QB?j68Y6dV<2h$Z(J5!?ZhVisvxS>C+$t<->`B3Oi7Ky2z7KPPN zwJ+B0u${JFaLjTZbhYuxX)^a%-dO!m`%vG^=r=70lm(9s-WU8LI4lI|VPQ?fCq|Tx zlEwI96HAOL*|p?^68mGXMu$dbg)RvqrYE|)>R(uy9OCY?`Lq$3S9ELuP-}t0Ls_D{ zBx*m;QI%2Ws29U;mZ;mT?}YkwJ&nKM1#%fhV+qqV(__;yQ)km4qg!82S6y>T86qFS zFJ*y}-KX;IbWd_MC>&TY)7c@vVIIvLYkzC~mHoqm#2Qpq8BSNDQT zAYV+C8Z$FFjyZa%qKxX7y1I6{uD<@B{*-i5b8@&I8m=9qu{KF?`ayMjvj(;ZcF%h~JM+FHvZXJw8#JF`Yc>$I6E*M2IK z|4I5i(FM&I7hnF{{jb}<&iz{QoAm8Md_1^)`zDl1uzf%A{lWL`3BM9dKZ1Xzq#Vzh zXq#GaNnFIQQDqwaSk;W8#B5EHs(jV8CG&C@D z(?{rg zL*$P)4!Ie!JoHWIP~@Xp!#_q`h^!Fx9Q6?D#vDXuTiKXb$cNt^mKwY@Ak^?(6QX)3 z*U7f>k=!_P5KLqW@)EJsW2mzdth}RYr>Ud0YRl+WYx`(7f+4Dxda0_1%A*WaIg}Ta zOOzUAnxctftNfs>vtZ!okDY$*m?*SW)2IDTnDT5Pr zQ4ShV3sN7g^{Zzp&&t;Fy;*hCyz1_m=ek)i&Dq;|%jqj<;(qJBF6OeP!Ue@l%`bf$ z)2cuR>gzTMeIDuvtr1o-tbW*=u;}n>;ngGf$ODmAqIO0L$UKjTSsFbz>R7~>&NTj4}J^yR{Go5uQR{>_*VVPS#-P@B)izgGRGyc0=Cj}#m19x5263V9uG8*tZ>}#`>d$n1S-DK* z)I{p@44+MN0{P(5AtyrKhm;R(A387eS?DFS>fEs4a54NxMBB&&$mYbT0a2eK-$&F7 zpC8&SI4tmhF;4$Lvs|@bQCqH(H4+|!J!TPa=NqE_ya48_WniC=lGl>IMrHb)V6ffH z-vQn&5k822z#wLkc1x?JR#H2uoODbaB`)zF^4;~$@CMshb>>=u3`w>e%4rY!;@U~c_QtSdb z$sds&P#jmS*EG`w7-j*{G&6t(Oh>KyW&hloV1m1Q6wXfv{cI%4;N6=)e>jz0(H z!ULoN*$vL)N%W9Z0Tug8i7))C{q_8Uf4?u>x50Y@oTi_Ef!tg0r_+#s&(Rsxu8vq2 zpw8z{v&yW?>XLaR<92#L`uMcZsl!rB!rMJBWp&D6q;#J4s=9^hgrdECwCuLf zS?CUicc1W9Rv@pZT(8Pjm)FkJP1XNy_+e;foMOCSyl>1yCAiL}&+z&V3$O=-2c8K0 z71$+51I*|*kE&E98(XUbqX}{P|Jm`=1@AI|xee?bemXyz)$DXm^m$>XM?R82HZwKughbT4&UeLwve{dN5heTbpEVYA_jp}cXS(QfQ* z+G%=a@|)634^01pkNCE+k8!g>YZ$9PrK_SluI;TYr{%Ro+d{iROA+IC=oacf>IdKq zX@&^nD&qmHrtC(wNpDh{c-XNIjhl^wp-(i%?S@*0ufS%$(*2>^p|xx3XlAP8!2#9| zNEJPBg?nXIK`AW2_)aIAV1ZUdM5{VoE=5U;#3b-u-S_qPUGg>ov)^=2CC>%-c6T&* z7Vo**xc+t73txi$vT0#VVQPUB@vWH!`hri+JE*VM-FYE@Q-1IK2Ki<4r{s0cE0Z_Y zk?4>+?&RLfy_~xv_wU@^j^>W}j&qL6d4+jr@>=Jw2d_tSXJhA9XZ3>Ef~Ex*k$2g@ zFsN`WJ=E>ewFS?nS-VX8Oq-+msA;Cj zQSSpgND5E{)l~<;S2Rjl4Kd02;KWmc;dGX~Xr1H%Lz^A=sek!1+$rudDGmAkfVKM~ zdX+W;PfT+uO#Ci3^1BdwuzT0|yZUXO6!0!>@Er4A^*nV;p0Vyc6lwn9y6sx${_JY# znveR4@vaotBi8}<71v4kLDvcQEYEG%G|x(p8lTB#@+q{(n{K090)G37E)V@AU3mKdPVD#&ukr+hSr}Cq)8L-R8HiAgm=WriTp0I zoOkex!J}DDHe7yNo-JRf7!BUWm-4${t7#$sEI*|9L$O|=Rum{&%j0D$6ik+=*sAy` zyP=q*D5tEdx}XRHU+GlE7J0nfpiD!qQV!6tE#)?7p7L^qOeGiPZtgy+cLWRN6kYiD zvhMNqCizy8&eB)kOcE&NNlG$BdLgZpRx^zlCLW|4 zkRk5`E7@)7sPse(r7r(xe?v(lz46}{t>OS?@bwf;V2k<&mg@-Mk5BlQ`}b1f`{pmp zj`&CT3+QeC7O&@-}LU>q!^sJhQOTG!k)@#BK)J zg*1|U0NdLQ!o=VCdrV7~gXd}ly^R>mKQx^@Z9oS%Q5x0q675Z^s zS#J_T{G6Mf=dJ7&Z6yVwBJm zJ>FmVjkM)^l84}Fo=j=ZYlk_~0Me1Q7t@%BS;=qU3>w5Y zq`#9Vd|z6X^yQ|B)40XJ$9>`qtTvwl*2dY~32_;BQ5+@}#bo#39`a<*gmLUIFb#;J zk)=snX&stK8GB9%`g9i6agC+6yq=AvJ!Osj^T8$6MZ7M^XEC7c7Q3AZvr`PxsWGdaxzab~+2Kgj%jrKuSL|>Lm9*L_6;cBonn$K5ZcK$SXjPJ*Z zv_Po9rjnU-DamC!(IWd~d!%hL#x(qRexp~rj#U&*O`Kgk;ZSJr|*>|4dBlA}_0vOq9P)40Fr zbh;nhhH_~GD&N=SUbDr*UFjYf0`}NTbTwTjJ_56H1lqGNSw{B@YorY6Jm(b~lDBL) z;(z_5L^6|9p$TLQe@XfmEO!&Rv!cXKgL|+q`JE0Fa>-c>bMj{$nk7URpw;n4LRAhauy(8f(QjVq0iw)VVH!Hn>iEpqE_iU#zLp z$OhJf>|(9yUUC$ii5j*X+=(Yh05=>w(idqQG6|oP-?*dF1!0D`1CnZ>A!H~SDjB)P z+(YRNxc*jy5n#Gh2~X<>hy7pD8Ezy!#p(E3><%}GE+GAhnN}wM(i@Ol2{Y{_t|Q4{ zBe)%6G9mNDElD~}WCNk~vT0|2AuOiyq#^s4`z%>d zN4Y8V!(_fMd&rujn(`L(^GWuAPG^J29H|3Immaftw0aZhi`}w+Su^#&COLEtR{&kT0=S1hL`9NV6|lOPh=<-`*AXM##66&C*|jep0FNLj%>1jBdf%h5JTuDt`+?UoZ-E|^fZvwC#UIjt`JNy9`30$pBqXG z$qv?tv}Y5zBw7mcFb;9;Rp7HuCf7+B)}PzMde9-H2t9%fMz(|u1EbnMw#@*3FhCqs3x6Co&o*66|M3_`h)K(er9^EtJIX&5RqPI&AF=LJ&e?z^d%5hGiVlR zLvwKLbUJ~2XQ9xwZ%NU}e@`Bflk_C%$sWDC6`T_SSsss9&W8tl+982t>ItpXQ9i>h6AAnVv9au3oxk&Tw>kwj$I#E}W? zB)!TFWYwfUI4{1_5N-Dc%sP)b36f=!FEfR7%DCQ#7_~vH}ACHJ&+~{s&&OlI#l`#a)x`vY}jQ8qalP0_3$O z^U$em1e*h9%s%WMagpZi2B{3zv+i^OH-+toUZ2JMTto7oRGPcOZs9&xvm@*+>Mnc$ zAGQ*`n8xKvPG~zBYfHLwYoym?HfzDQur2s>2vD@2=|G%mJM?*Vw0c>J>ISe}-f%T& zC}x{yq%xPm>hZrYj}(xNbT~H&_C+i^P6m)i^b$7@yqtHrP>l5y5`cF7!Ok)jsY#a8 z@5I46Nt5_lu!l-Y@4_R{-w8hYt8wBb^=2rRKx@!oqjm0c%&$PTpo zGrlIqumf6vQ^{m{lx*VfNeNtA@e~*k zqeu-dncXD|p))R!Wza%@lW_37He%DzUscI-&O+bPw_I!DpdI)C`kLtl1;$Mr7t3~Y zU!+)!@7b)7`k*InA!C0X1men* zfb>ixR(2bDW+Ql*1+s!Fx%;FBs|0CVfmtt+#;_rnz5gT2nTh*K(`Ze8w{!vLj3)W0 z=`@HlK`*=qxA|s_rF~$lp2bZgbufO1vj0%W?KYS^Vo40kgkDgQa5je@Om2X2ybry^ zPo&qFhI=A?Lc6EaG2{p=>NvK6uP!A5n=_Ga1RwT9Mz}WQ7R_f&`W>>SB^SAPX)vny z5Zat;g|Rb{TgzUv3XsPTSm$24jY|e^z!I)L@zGtdfcjuQn@%pHMMr`Au_XJ+z_Klw z`S0LD{QxP=p=0sOTcjzQ553=pMC04(QZJ0d2+VAExZBbSaH+0`mF%Nk*nYkzy~INJ z8d4jzJybWA+*TV9g|L?XY?V&&Kz7Dg&!j8|elmcuQfDcmLS>(&Qb+GoghNwi@% ztOGW4tGEE-Cd2SdZRvg3k%NdDcYFkR?zQYY=BU-Q6BoqRK>p*{zx+`a%Ke8*3oe=o zE2SLz>@;$|_aM$QjyujiKtr`e50%3x$YaxKE4rFYgl+IQ?aP+{bL=iMPuhn2SVgej zL*JBOU!dPgV>HxfS4b=y#PuaR5qm0yvDy-r?Hh7|G?dOluMEL@>>lk0t8N6%Cx63+ zjo|09TC5Z|PAUsc@f*3!)#Qefbd0LWtP|Txez02@(G^G&ex>w+y9FInox`e!Y~!lY z-`G5^309p}=tBqF$$b&e^I)sOxLP9xa?4q5tVgFx99Naxrpvhgw^I54k#`r__jZDLu)y3_BU2>f~qld_8^vYPS1os)EtPOa-caWcu^!c<2 z*PJY(jf9F)IzLaENb3|k>lIma@Z$Yv!O8ZbXpHF$NBDax7 zaF59s$juLM_6}zPJqBywlhjIf3nTYmE}EM{J7X@cL$4C67!E7W02J=;oSf{2jr5XC zS2bK+Qi_a{h9ZycDO)aNq4(QhZXC&GlUTYCEaEEqoa?~G z&}p#k)97<*5I)k$TuZi3DxfM@4^L3x;47=gRc5~<4k5?9;e$2`h3+^)df~~J!2_5_kB#`H14A5LlaP>3v2+JeSsUJFO z0)0w4lNJoCBD9o9wzCI7em#LM`oz|7y|_`BXSew4@(ytk&Ey73G5lLtv(-ryB8Pj} z1F?kAkyep{W$mONG?w>CTRBe=*9)q_c49KVBGx(QNlDs_dxG`GIPN0itse57c1QHJ zA6Y1^!YJ4X8)Gy3z?EPdu#Rs;%FxTKEb<$gpgz9W*|wD9v|wo+%ywYRz98>l z#Y@r;vWFdIJk}*k*#n-!+N=UCo<-L{ca)ULr3b{%R~9#NZMbad4hMn8%H|uX%?~0L z=#m@o9Mq#0BEv6YNJVx9c1ks@l^*dkF^=bRAK6AJiZ5gd+nE=r{fVHy*aIpUPm}KczGHl6Y#hEE4O_P~n#Ujr1q8iGBF;bP-pH9H9Sj*B~3$ z*hKygY}$i@fF5SJN*PvzFH3q##}M;-OwYhW)sn5l%C{cYQiJFlT>Tr?8(Z;gbI3Jm z6*Ehv$s5Ryo?ApGuz!dNF5_XsP*Mp`{Dx^*1MUhRCzaw>kkR58eg%9!M3_Mbal@nx zT<6?O``WVSW9Ydy`4uW&QCl~|STp-k!p`@I)4&?_{6 z4Wr{ob#4T-^uOFM*tozQwd_LPl=f4LlLAYqk*Ob$Q03EXuqyNr1{hWm+C=N_&H zRyP^YU5!Z>SWsnQVO$^~tPtz{;oMT%*bWno&U!E#Ms}!Ol%%~%+AnS z>^vCi7h?VXFYYh`qb!$Hfn-jCpYJ@2f-HM!2Uv9vF~{v7evHfuh)rnNDCn>;IAb0y z&AOpY=fDd5$!c%~u<9p65~9frtYyyQlLhb!8Od`tgS8@K3CDehO|XiHuu|^8A21)Y z_$9U(&s7$yox$*q3<0xwI96d%7*R%icM&PX+}Rq|-6nim6RUod-A3E>Ml1Ft9M;4g zkOMu0tb_jV%B=^Z@=UHSx0EXdB-m5T(kG$yze0;sQjrtjd$qx*^awtN=dkwwA$MRG zkH$6rCQqQXzQS{8!c1tw_65gRaLzlBrY-o^MzR6xsvxXcUIAPG7&5vGcHZwwc z>kv<|DlUU9x}qXi{#?FSK1g0eURLgsDdkR}_b-D(y_HNQ`%joFgbT0uxqK|}@r}6$ z7?CHK0ovIjO^|%zBt!{c`$zg?5w9NR`@@&x-R14&^`at3SI=|zEVtG@!9@$(7w#x% zRB+fC;#`)m$-fDHCA-hHl%*<$slRE<8XBQ8e@0N%kb$Abu+3pF z!%l<^2zwD~4#^Ha8`L{6)zs9uQ!gR*nWP%2%#oj$Z55XDCm`W}5(1z2Kk)u-gywTW zu6IGc{^2+N-Ld-m5OBIixA4J*_RNo2pCDRY6?q zkp4clmq70Psn_Wj=P@N%%6^K5aw2=m|IPhLIz4<56bIT|#w!B|MWKr7L10V(u?}YkaGH7ktz= z*RRJI*$wF(2QSnlSSHJbm9l^2%M|mJLsgB{VVW$>VQo8Iu5P~Gr=NNVGH*GboNSFC%w`-l54&sWcQuh%=n=k)dTpZ8OLBXNK@LhK=ih+q9< z{chh>-*ay%Z%@x0_b%7&!j;H_8=T)fubLw?*KYf4y@_1mr!b--prqPCfOH!@fbW7Sz#`on+N+YkBQ z+g#OLf~&e~r>nNx?{<0ueS`cD#isNMtITcZ-NNtk1&Z^^SE~2msW_k=4bJkT;G5rX z&>6=V&!fOubsz*rnMRt1n|cE~SP9u-myCUld4>^&XZlcm7u^)?bj@&eT~&eNKY1Hj z8b2ND_fuefD=m6`E^mOhGpf7PcjvpFxZb;nyPf;Ky8|-e_Ica*MBf>- zG08-I(j#eL3Pa<*k# zEX^(V%yrBsvVP0@kvTK7W~MdcLB>^VzcOlOKFwU8b<8Zw-k)>R7UhV~_Y`v8uHrGq z_|*zgy+Z%XWDmLFajt3BFvDCA_myC-VPob!c>$E8+`!f(@3mVl}V_fh7xg$V1xO9cvGIs6K2h&t>zCYDF z-=lS(DC}Bba%SXxbtoMjb3b4xyg z3v<*tW3%5`23yk1Ys?MI?yRgVOIDD1i8VVrpl|x&H=S6ggsvf;7`gC-M=mk+rA`8P?gp~_96v&$@>uYKjC~wIc!JnjZfZE~ z0PRVwN;ggSPS+6gRj^^NA=cWK&60prv9eG#>a*a`VG1++HBMd z|E#DfUoJSfktB>+r2?_Gc*x(`U&Y_ef6)J%NW~;cfL+^%+rr-z3S@FczT&yEnQEKr zm}ZH{lwT|VTi%|$zIh$;D&@ss z3(hm;De^uzwm7;t@^UxlmdxF4FJ)hA3$bmpRvOKaZ%-)a_XG^h9%QF`X+{ zs8!LmV;09~V|qkKL`{xZ8`dObU*H4dX&}E3DsBlwxM(nG-SqeOO+huad7dktO5O}F z_5B8U66rv4n=38U0y?Iu;;mwY@;)k)b-)wvQ(acYtIDeW3YCQq3U(K)MGj$`0(HS{=V+%je@=d0-r&3kj_Qt$x$@lU_Cnh< zTcquzb)>bCHP%|y+Ri%2I?uYqy52h0y2x7F>dv{AgDl(ZBufp;A+slIPgduw3R%mu z1ani1F{g^HpJTN1f@{9-we*hrBEO;zFzg7>g;WZk5V{hTl;E~~&wu7pIya#`Z-IhYckG|i1r@c45I^R;?a{n-Ko^+U=f^Wdir2yd@Dr+fg zD{CezC;Ls-3t6TS@++{0mnko(mMzZmU>8}?r`P!j=ncZFJ?&tZ#yTPXx-B^J~@Y7|x6-QNvG)7%- zeO<#A!&zvb!}?vw6v|RBQ}N32@^Z3!@JSpex3RMNmsX&;(lhD0v{Y&aq)JtBihrl? zs&}VnlDoG{TNqg2MjL;3JOIbI**4B5w-s8|wlLdR+eKS}t(X0b-DWS9J1BQx?#$d} zxlMB;bC273`zYHU>#dyo*=A^xQsyREgERj^HMQilA!&=#o}}$bACvi;xn#~kd&&GQ zuEV}hbeu3>`Aw@ey+HO@#mKSIwwPD3dEmoX7IQ4>Mnr?K;lXzTb{gJmC6!J1O1p9NrLWhc@6SfP%*i*k}W zSG&*<5s(=)FZ4sWBXVl=e=&o=P$!H15}g$}HGEn~MBpKVLAy%XKo-Jvr$({9FUb3s zr>`f;^Uzz~FN#X|a{d)I$)_r_kbSPzUf0&t^+6WcJ8dOxf6YSm9@PV-UO7&YC%-E{ zD!(qzlw0M=^5gRMa;vPj>=$xY1^yXgs>7w({&wDh?yiM1oe6oP9ldh**z4I1_Nw;2 z_6PRfxsKcyj#YVW^0V?AI{$LEc7Dn4mVYeojKiC&1?%NM&?O<(Z8^!=|DY<-JIr;nJgK{>uA>B+m+ysKpT>xK70{(XWVpy1?r*-Sa7y?fWB@rk zNbvFZ`2+lRWLB0It_Wjf&E=CZa?Gm6V6gkF`=mc>sAQ~cv>F`x6S_jp57l?YXju?{ zg0+`Q`b&C;xM|_T0=sjhGtSx3x!TDWEHB6}=w5iTaDCydLU%#Mg1+FW4$k8p9#qL% zYWrnfV6ASAu(q(Su~xJ_wzaoMLBj9m3XU_mQ**QIw`{kqb91g*{xQGJtPgy6U~1B@ z>p!Jrmb~icu3wu{V>6DMv#p==#=BpNJl|cpUi;WMCCC#pKm2XPT-4hb75O^iPPihh zeTXY?lc~MIpc|>NseYj@=4r)dtZbVrdMI>?L-KG`1#QaVC91N3qlP;PJhKm1?(7qPO= z@-;&hnJ%6j*OJ0aXN&xJ#~SG9r?&pKLADdNx^`pk&)j>CD|s#QJ^7809Z<@-CqF*# zu47+rHM`S#A!keWMazA24fC8Vb=KF+MVYfQ|H|y0**r5O^HD~rjC1McwE1aU)0U=P zOy8K<&9cfiH9ya-r>ljs>e`0-fr`*N;lCmlN17tDB4&h_0nUD0(D{H##zlIKZjt7h zy0bbOJkQ(IMop|nh4t<*)f2^EvX|Todd6QDjM>c!heIyPp$2IgZ%=V4>ms-mgEjg3 z>!x0)`_~c`*~Wxb3QG?)g?0=13(UqWup{d0WdK1ulcJvL11dgTLZ#0w@Og~ZJOz|tgzBBL zmGT?1zIrSAD~2hiD^@6mE6OSk${)bH5yST;L+J!@qwlR}p1ZQEZ{dGH%0?Cl1vyTq z^RROpT2$|RnLh$mX3pnz%*%GnaoBRZBq#+tREjtp}}NtOoSPY}+c^1Td$s zwtmQYnY|mekXmGw&+MPkFa1nfg|yYFtx{X2_Db!NHZr|&rp^35XQd;e@SblQ87l9l zNkvZ4fxy*42ZAhty1Sy7HR2s_9_O zlk@GFNjmG>?y2Q2<&p~bxOh(^UtQ^6;un@Ez3Nz92mN;aVZBG!MVF`@t_DVr_-DnBM~BR?&>CDawR@qhAn`EJ4}nH8E`rCy<#g&Js~x+mKAn%(N5s#L`> z`2^^`+58gj1ENEn5QQ$3T1t<_`ltxaV8#%Ypt-HpEoGz&f%@+GuN*u{|O;3)w)`f*x^vYou4kPmPF6`CzALG>uPR2@~5 zd(h)7g$&_K$jZq_qe9_yMH@vU`4?GF)Lf0kJECf;F5mb#$QZT(Hs;f)@Tj#B;bHTG zp9ZW%?%7S<5Yz(J>p#Ks@eH-|f(=Q!ncAc3?@Fh9oGePH2=w?Y?g*#mx1pwCjO?Rq zg*-^HL7`FhRnApzRd!aERqjy4C^pM~$QH>;%Hm|LWlLo5WF8qOzYMl-lW>r$O$Jc4 zwBEng_tfk5WO;^pN+5%Oq}z#gucEL?K^^CZytZI}ZkK!29&fvBYlfjhy%@^%(Ju`GM)ehhT8wSP(ehw&yEYsR1rD>3fnUVuu25t#b2B!o?2OSI8Yiy!V z(_B;KE8OzG<9cBsn219C`STjt}#`D5HSZVKNV)x#s@iSoX{PH$Co zSG$#k|IiFBF?M?O;SRWg+y_Qp!HpnJUY7TGq8m`Xw%AIi0YHNBLbgdesaB98%FX->(VMf9aFn@A61+zl4J{+(EJ zdVR}$jeT#uO7L}^a;LbuxGEJcFZk|E$e)V(OKtKp9E%(gs1wjJ_W?3eTH5Ye@8+as zk3%i+mX`14DduP9edev^(iVfoVP0rSFi(UZq&GZJE3z(RMwu&E24sJ=HE_&x&ULTw zdi|YX({DyT%CYa~a$h zexHyftDvwdPAESqk0=``&%r|>PQzXMuo2hE14%M8|#AzpJXK1%;|I!ZCR@CaX ziJGgLlbR)(`I;e`)~JM&s@|n`B8z_=e(#Z&kgt{n%DxLbg#*GSVS-Rau<(r`<564- z@(EbG+o;8qj<_KcSBf>@5k2CcfcQl%zsI-7=R~&iQqLE6Pq)i8-!;v(&o$lk$~D8) z()FycQQ>XW4s$tAJGVP`JE=3GpjN>YR1y2?Jmc))R5^Y5@%ah)b(~F{8=aS(SDkO2 z%blm3o1OnSKRaJI;|eAgoGb_`>{>XZ@OEKBVX$kfE6??xdy*&C%eT zRn<&oQ{}5lsK==9!e>8LvtF}S(@SI2Tvtz3S5RXeq~cIbyd|udR`|9XYxXg!DAgO~ zdgX9s3uRqpDWy^ARD46W_)6H4l@(_BBl&LmBzZe|Rk=oPL2O_f^nDq4kG2cLP-WG| zU*$LQ3;F5%K)wNA9({U~Tf=n+DlLyZ1P*!=qGh8oqc#ExGaD${6{zA=9SF%(`hlKA zEvNN#ByC4^G*vn)O++?`NlFkeifhF`#a3dBSm=N6Kk8owo3O3Fsz1=L^xJ$1z8}6f zzDK?rzH`2v*bex%`nDCvl8*S!`_B4~;drHQhHs#+gRc$7Ol#k8-xA*u-wR)cFVmNb z-yZU<^G)$h^ew`#U-%6Eo~Z73-T%V>%KzH`#D4{QnqMdO#0pU+^_C7x$*A4c91^pN z-lTR~5s}O5z=*cSvwb31>mgcqowIY5VHup^ZG1Ihws1=*5UR)qz{_?P^O#E(CvPer zE#D0N`w6Q$K~YjsP0>iv0u=|_W9y>mq-dw;tZ0e%>Y$Ff2@;$jzaU>L|5N^(JV>4= zdynYUZsb#rgcl$b`uLHsQs^g?LDhtZSl!G)+c)7$@QnKkK9mJqM=plTAh!|moDXbN zSD-@5Am;NE7@O6sKdX!!fzMd=?x4%)L^=>veCpF^%F&Y+u}9&6mN@H#mm^Q;?)iK!e59l#V_J7F$dY*UXh6a+Tt&!2JF0~ z#aW`IO0XeXNZq9Vh$BvvrXpTH3s;(teU7w3S}*OBu1WEdONv6=u{WIxEY4=S7a1gX z=o^}fEP^=J3MjUJfzy1;(h!N(lCr?8^g|4FKeC{mBnn8Mq3DNgsIU5%`^4pNO2}ec zejLA!zrugzb9uQCBUBUWBgb&CFjZKMv2;whF5DCD3O9tyINl9C@wc#0m@bSJMhZQI zHbN~SP7qLk^b>!P-;LPVRK6eIlCRE3@(R?#{RC9pA#MXV4Uz8dxOx>xyoU3URK#H~ zqGH)BU`?Bn5=4*qZ!)q8ZUgnT6VgAPb!UxO2}W23eMzs=BXm3J!>*=F={!0UD1)(d zIPHf>Y!})Q z_dDdwNW{pMo5D@t{=_*uAVaJ&V%>VqOLE9J%$;|E-T4n$ z9vjF~MEgepC)pD5_Bcf0dEmS=fv5NYOv3}*_gQwB?P1%1?pVlX0{`Bhy;Oxy1ZHX3+{KY`)y z4u4ul(w?*fHm3#lrsQ}0ZGsu0G4{I1nWzaIT3O(aLV-`vptmI8DICBzrlZ$>vLr}Z zJaB>^Fp6HF2k)`FsJ3_+xQh#@Cx01uma7Mq{Dj_ne* zbHJ1w2d@1jJH}1`*>xQM51>sCvfXIg-KeOrm+ip+y+B4B0>0x=@i)%mmsc@w-NzYU z0Au?eZ6A-jN&_xD8)(r2SZ*Fh(H9Z}JQo`ehA#r#7Z#5|Mi>2;V^`oYYZrOp*U1!zWa)kvHt4p%LStrYeWq+Idq68Izvdk~%^3|A|<(_m~t zKrI__)uL7)#n&xrrJ`0VIxi1I4IF^DCd0KPeB#3^0pAp`6@AVZ|4J&pD>v>c7j19F zZUZ(b3v!aqGJpX3g>jJxJbxnk=rj9>{Vk;CBmTYyUhy4d=sor~c>NZ=`3CzdZ10P| z^9gxyKhU$kSSrp|biNFnx9IE^mV@i%6<^bd`zvZM54OVM*2%{^1^Cp1SAN_%;912_ z<%diZ6ic!V=dt0}Ik?|kw6hmS9%P;rwYm&X=EPGg(Iyh+wIW$DqJIL=igD<*qW&yh zyp>1Jf6-p_w^H#@c~TK0r!rnuE8eO=50}A6Dp%YqWs0RC8vP$p+yh}aryiRDJ)y;4 z1&%evQdlGliekA`;T!exc2a_M#prlH#Ic9)CG_#~Gfrs5g9gnxg*5!*k`~ zc^t(pRWy2wdc}fvEE*^OYt2-&ZYugF38SZ|rHfwu#8DdBJQ+vH7+Xo$6N-B1SGvkqKme0v}uuim&D&#Y-Mm%8nRy!@0Z42 z2E9`bM@4;97X9+S-YSQFDmp6atD-)t0u)wNWZ)J3t%R*2Mo?LNRqW1rR&x_!r9HZFDoP_53OH__E!Sw?!-uN6ia>q z#(dEe6-jE*m^VQ})#w!idO-!5%f;ux#cf{~tyKZ@NC}J@FMc0}`J^MpKpgZ2L*7Pj zU?w}Fb&L8i1TEYaTf^edi}Y_ej_YC0ELS`t{@3pzn1w20oUmdkR-uo>id$F)`z;qw zl85v1K+NW$ZOv$zqWuN7TWGtV#q#wObIX3rNAK{?L;OF2`Q;wk;tl4VMVQ6^#p_$p zJ5Sj~%s+dI=bBxZ!S-RUxq=yJ2QXRtif8x?{Qe}qF%!7Wb(ndItj9I5Q-)&Yv9nl` zi?rK(ww!IkIX}V3*-ekfs<7r3#>kB8JA{#NHS2*uh7<_G!iKAPqd~mo9<`% ze1!NX`%U&5_DK`uvaR4M@n?~Lp#Tc@4`hRNWu<{C?MzDWAvBo;%UpB|*O}W&cL<|| zqsSoW!<7Rnw+-JO*+Xr(N!$}5iVx;QZXG#`?5c1uQ~!pT=UGKdVJqr0L;!g#S8i8E zDDLr3{fWqjG|10tw8{s_3H>5gL;lGa_$2da65A|@{4d!i)Xdl}ufRPN=E@C%Ti8T& z$QnI`nqfZSlRT6UVE2Th{-&;q^n>!Efy!2}!@et)U!G(kOI*dSN+F(bZ)wj!+FmtK z*GP)vo5@V{fTF+rv-g6kzF`u7Lq1*T;9|mD)pn_-LZ{lorb*ouLEv@Q8J9@Tyc+VR ziXrk*TvyjH_i#-wnS}a4uO*9rg}8vb;omIn5(aVOU|}EjUhy{9K9YZTx}xXr&wKakdRi$iMNz?-xM+4m*G68oFui(U8lcJ-g>?& zCfm-k4a$qosbZdNr@6V}yy1yWO_ODD_Um-Ns!74)+*gWF#k0&o?w#rz{sl54iFJhe z{vppejnL8k*_%XaarLA-(rM&1kDz}44*w?qL~fa;f>6)eTWGF7o~I#=^wXSmT~z;= zf8*d~8`ScAcVR`%T=^#9Q(*%aRiCAmrE-R8EX?*yAFV8(7p%J|zfe$@)=+#@c93_% zdVHaft*9*D;is&gs+nw#SWWT4ALCEeWh?HmzAh^E(mB)zz1`Sya2g)>r)aw<9(tzu zyDM`gHA^=g^C@y?8F>9Mr^fG7&ft22!#oZ->~r{G+*sKoI$r!!eM!}nyW{?UY`q7V z6vgxZzcaJ(awO*{ASehZB2fhaK@kuI1QZZN1rdF0;b1Levo$mLrMrvvhZ%IN3s=!bSzj1+9Pbn->;2s? z>rtzDz~^{HKLwibkCA@Zm-o>F&IGP#n-hNseH3^Ztk-w^Q(SX>Wpm#Nq$JjIrMkYf zUM(7HUUN1hb8OJs6dp+YPOx}T((r_zZdEY{CSEFR?S0z&YVLVwvUh|3qV~DFTF~c8 z4d?lPb${ZW9!&xh`xPt6`MkHG^=QzQ@Vg`G-%SRt`|VlIj_z*$)@HY)4tTG%^L`wD z#`O7K#wYz#y{?|3O^BS76 zC^nPv^8|6$Uc6mfYyH8>d?k9(*HLR@HX;)KhUXt*q#rasCOZ2i{U7JsffLbXo{+hd z44qY+H}Dbf1s2LXTF9B>JRkkioN2e#P2+V&dVd;sXyf&PM%7RsZKq>bC_(?wd&){Q z+q#!BTI=mduyV0?7do40vqM*-!;Qq~ch0NETcPhAk%X18tXV?=bOFpx7+BjU5lg5?8l;a*a35!KF4TbPY*UD z{&NfHEdwKcLyud{jdwk7IUlxrhv!F!TAxKbxQp~5!5<(m@8@ta=L3|oe=8C-|!jzdPz$UqRD{gLy|=FWbGQ@>#B zF~@}FlA&;)^#qX}1Bv^+id;&d6tC&WtoOq;qtl&}v~7W>&8kET{N|eI7!k}1rkjhj zeMX}87fASZKq~4@oz4Mi_IdYVXD7RJIMZ=J->)syzCZ?U3vIDx7#ke#5uclvLbWsG@df#W&%RL2WMbvFtpqbUuI{GgxLXOm_9MC5v?oVj2Bki0@$oRjU- zp+vG3tkv#!H(_4mDOU&g577D4QDPr1>n-yJO;bGs$+8lWa%%UP~6>)|=^zrzKA0#f+Z9Nqo z>$08m@g3<&yigT`XsBp6ZKoD8T7wwT(R$v#NSxTGk=M1p&J^tpGf3{wEzyUaM~Q^2 zU^ii2XSY4n`qDnnnQ6=@1@!)&!S*YW z0pRwYBF1l?SuT3JZV|D+-BAlap}D#(?FC=_D7-n)%j{=tbSAmZxSlkBiI~=;@T-pL zu3xnkdSj!V-PxQPJ*oK|=bah)J$PLNBE8LQi*kE|&R?QGGW$7=nEXG(pM!@}#~9(f zWY38K5Q z9cR>Z&vUkj28r~T7uja)cU{vKN4?RdSSg1^J@&E4oM^gMj;Ns5v{TFmUnXAgFJgfj zqHFGRr0T601Jou0YmfDf^`w1DdmSykzx|NiEKFE9F$sW)!?zHpmUeTFEJCDaN^T%k&QG*h#h>j!A@hHax<`Cb| z?$)1Vlrn@Ewx1my?HHH`4eh7wGf~q~Qy=T-Z_Z}KF^u@?@kEQw*4}a?S~G}JZmhW- z<+K+ZTgj>Yg<~lGV?WwE(R&@vQ+f@jn+#`jv5CBGU$$2|&gx-e_)8gM?GGH!5;=ZR zOR}fKLBG{{5TVtUUVN|i5E0|wkmEK}FRKl)>%!ARn%h|uO8JekOSYq$y~;64KMrBXH~K`>kVAZ^nT`Zk%?w!OOKw`$|K!p zw zt(YafVpTFWQcI8NYop1;)Q_;%TBD-pbW^|Nc+8q^f+GaZXM1NFQORq->gfap?gdw+ zUUUEv5F?4f|1Nwyl4n`O)PAfzqLn7bZB6u`mB9?>r;KBMwo|onL=?F8F59rslHpE`_uphQYTlX_(J_>A!RLAG`G;_K&g+6p38nQInmhVJpFt)VmAzz=$;ZfeQI zNf%oO?cLawJ=#Y`XQP_-T(qub;1M2(mcv*2Wqk>;#=Y!RdT4(@**7Cmwm7zFpJ+=Q z|9}Bf9lVOxjQ?DAU1B)Da&*Qc#$nXc?sN=-HzyJq{Udexi~cIM)srAusuH`ALM+iu&k zZdz`l52s^wctE=Y8hzV*+B|DN4HC!~+Bs$hv}hYUhz08%dk0VX6(pX0%x@P&&p7TU zvMLR`+kR%b>(RSbV)O7I3(sOBv>0!vG1Ghy9e0>M0^E%+?O)(R8t4_RiH#ggY@tmY z=cCNS)Ms94F>QU$_F`ul4lcz;?G$sPjB@N`W&?UNw_y=wzs>PQ^f~4YwxGd1fR*(C z`ru2BomgDo=-sPa*G>2CDYe%Wi5z&|I?pW1sXGY?$=;&xUaC1J7>d~^q zb$-O`&zI4b=(`dzIEr}oYqVG;=1qglK0HcI_hl|>u;Vm#p8LRac#qke2Wf>Q@WNU- zJ|TWG$o3w^M(+x%v`zo(_&>%*BreU*Rrn3%@$1Iqr6>WM+RR_LSayd0W0{AIEn^ z=V8mbjd_iqpmhr^q9sxMUi7!8nRi(QSGy0Sr6;hhEVA!JJE%wO<3ubs)u`tN%(sl@ zY2U#YW@3#?z)oY@x6nu@Vi$Oh*yb0oKl-rg%wiViD5&ZSqciyScC=?6=WJ-+P2JqX ztW-Z{^m3TpnNNw*u$}bMk{Ox)#w^oo%zQnAZ0L>^>kjNyODXwoddNAf$K|vf$1!Xm z6`{g+u^zT1GWRby)oA8=svwUJJAy==p2CuQf|<0-V61e;w(>rhE;E?1D#e`E3~W8C zv8>F;w)iH|{I_A1`4xn=&Ri>|?Pg%l*ufm_Zc3aFwGG8qbr;s9Ok&DE;k&=VlIXRo zfOS3ytDr?Z({XI^%d9b0d+SXs!oQ<`93}T`4{WyY;0-n#?zYuBfZcX2F;HJw#a3_R z;|OexoA})y;1*WGuK0zWM*MDlyRv=EYJt7-plw0HXW6d9zPS_2;zQVPCQ)9^v6>mN zAaT)a9qqvWUw|FA8J5Erv^(`#dVS+ZJb4qHK4*P=-(SR%zSLEO5ASsMSodM~HFqb^ zDk2aLdQ!co$>^Hpt>^9Ueck(#cc?ewx#Ia9zp>SxDV_;nV1MiR)$^F=4EFY!uBq7L z8{-dE&b6MW&cnOu2%3Bj_S}n5GV#FlIM6b%t$t&*u$W^qbICCBdZZQcHABL=p{GKp zg5L*c2HOUm;Nm9+w)2!n~{1gWkSlT z^zh1`^!D!1MwKWWVyORiVD{?fHd*ZPs2^yAB0FV(zM=hABzAGp}%V%Ll7 zFW$JQU+jKi?)fg~zBv~@cgOjo7g}B%b!pL+3s?Kx7=G)@tt~kf@v#0i??yq};u@ia zk#ivQECM^Uk#m@Hfy;7l@YYOxJb6g!-ZV$Xw2X1&RcMkmHmgq7hgny$+Gf`)b#JK` zO4-@ZWiQFo$yR@UvNI{3>aS<=Zr(fLVN`b zV}M>tPu4wn3A8i3&Z@3}tFmVYetNmy`o0`r_k>o7k0!NFemmvaR4r`==*T~$tx6k6 z9<-d)mEd-dN$rqYKDB?!{N%|=uEZJ%SH0QZcRZiDFS=^Eu90=OIU06H;%7^l4@dfj z`-H{^X9bQBUz}dtg$$cJ3tlL2Sizt#EH+?xY# z{!Bz%!SzYkn_lm6edD!;YWp^J?#ZNGHva*u0Y-S{D= zR^HgWMY%r_lYAz3Rl(BYk3-|lQ{Ypc($3?TS(~gqE!=0k9mu5QN`Elp$BaRlPi2nG zbY(q}RghJfU7!58+e&pU)uPnG?9a14%REiyw`Ws-Nx3^EJ!KjcX5g{D55(t9&PGO( zeoXsGOVo$!&*|0mnc97hhUn*Cf#k5$t_hOFd82@s#3in0!4MBP=epiTjuuX$w;yPOX*dOMNpnCGD%UyVHB5-=6+j+Hi(rW)IQlpq zaH}=1{-JWU*<&&?cHcU4%?$79yF)3qdM)l0cGgGpj&C;?*We>`JCHrhvUgqwM za_R4;CZ|M_+7SaapXiZJ38%f4J?ES|bQ_uZ6!PywtUli{@4w9c);bNYY;NQZ^9Wew zb)t_sMrr*RAJwKM`(Wf-;ymQK$1}p)IAKiUfu!Gw{CO#*UCN-8H&P-gD?s#4P9Ku~ ze0m^lK-%Z2zooQDc`^B7(tsp0aYtgO#J3YV`nGyHyQ{j!IIB6Y7-R59O4ifBU|D9* z1o`=IB8|&M9*aB@sS;ToJ|6lmxGnIPzmfk?ab9sJ|NF$(KIxxb{A$s?g-r`qLBp%^ zujK!pKRW-#yk~QJk!yDhkyxMKSVZjAIXoFVU(3Jp{FPaktxH*#pSv{m(k6UFS6;pZ z)h6A{zcoIuZC<0?WjXn`?#=zEU~TcT(0r>f`l=oz>Lbay&$wzl=g##$N9;=5jJjE0 zWxbU3WY&+F{WFJT4$5qnWn_=e)=T}KZDzI3dM9H}+V?37k|vO!dSSw62}VMpcdaMe zeV20tBc~Uc<<2$(k-qpnb+n$aj^L%%Ch|!5VrW|^0i@#v=4|^F^w}r$dipMHJ-x=S zKZt*0Q*U;Ho5-rm$hEbQz?%OueHl4JvQkbZRZsdUadYCn z!~)R1s}N5c@_y@?=^pKx<2+$hFgEL>@I&gR8~W>DQ5*(qubMp&RDv_+R=m|*R>(YP zwlTkr+!mP)0<#&K5^5PL3^osz4gM5Z5m)TmA^Hwbl!yA zYdK|d=8++(=FQ1BhF(v;_UBdW%8e`9)wizrFOR;w_tKn8J1)I;>G{j;uZ+Gn>1Jzi z%8%st$CJ8S?%#PW3(E&W;g9T>wLD|4t2LhCUEDR?PXP~mHnCso?)0Wvjk0TJr)T%a zCwVqCUOjVa<~y11Xa1R)mbo=!ZF={#b14N$4<*j`bq7)Wes?$5JNVjPB2wskutv{W z6U>eHW=6vmBGn=zA}>XzL|$btJ5nn0Rb;Zc&l&)R)E;I^uj#$;j~wb8>H-PcJIeQW z!nMT9Nj*U+*ps|2d0+DBFdG>O;u)kYVKO?e#an6CH_m{u#bk-`cy-+Qna|Q50lFdzodK zEzJ{=)nHslA|1i9XkqS*{1BcW8W;RB;0&Dg&+)IspLA#OBgOm3n)*e4$Gn~7A%8dL zog7z=Bj-gj`TB{Yt$F>mYyPWKukE>-dvzOV{U@)?y^?$R&MS4VOr`F--k6iKDStuX zZ$+C5PZi|kKT&Y2$PV~S3#{PruC|`Tp4#4xo}r$Lp7Or861$`{O7EJvA?sq+(yX1C z5prMun7%Cih4k5Epf%GU$k>;DA+3FCmE_|IN4zh129nwEZI|1%g}LA{#vl-Fb3na0 z7}*;>681#CkGx}6Li<~0jj(d?3(k-H9vNqTYjuov(Y7((U+i4qT;yEpbP}~T*t5=C zHlbVMk;Jc(E+wTUw@uDUz9+dEND=QQ_erjr98TJq^l8$}q^zWEWP9nD@QH7Y_kgFm zr=R->zNP`9lsl4Z<7MN9{vIB8%kc9W$%u3zHdPHzqD_obKfvE}}|tDPRZ48pxxBX6k&*B%0W*5#Z z*qGlg|3cpSybtp#=FQ99lhZP1=B+`u%HP^f^k)Lmh+p3L>&CttkKXj&ymaHnjfXg1 zdE?ZLaW~(;^=-}r`R5Aj`JWE14h{%z3iJt7BNioW?u}m44Oi5?l1xF%eT#fee1G`f zPq>wsp7KL#xAgWIGl=xLmHt%v?zF*aM^ihdZc3@0avd7|BDpcy=L-`S`;xt%x<|Sq zV7;g7uYrCvN81Y4-66*h;1w0ZSIgrGJ2$e*3|S2shYe@cxEYOgu^nQL1%y1k*m%t~ zn#hTFJ+nMtdj9g5p03`%ye|?DeIwzc#LT1~NzIc|lRiwWl=uRSb_h6cbACwXiN<(BdX4@1r~2J`5t+GaXp8V~e2&rFe*9m3jA*KBb-`5n zjoFQN!2x;%|A#vGIP~Ut9V40-vE{!UeUULnFY73C8vV`oM2l`hHk6KZ2Q&V$(EGt- zf%X2%{=vmHitj7didz@&D0-1B&36|j6@E}~EkCZNSKiLYtr)M+GIRvkWwl|Bj4i5&uw>No|()1K9%n+F|XQb_eq=<@Fl+VeK~kK#a0{w4Yad7mQk&RZIl`wk7D} zwa7@`%=+1U&ddRsr%L2N_|5R)(9F=mV9%f{_)%a;plZNIg1_f4=bu)5NAaGbuZt!Z ztt>iSbgQUkv4c$Ixttk628Pl_6N)w!^(jgz{=VpFQRCupQJdnL=&!+|&x&>yO)0uu zRE^9JweYN8Q8c6I6{55U6|F96RXopc27U=WM25_1YuPdB`Yj9Mc!*lko1XuV2CW2!y8X<71*7BeE4^uN1#^8g*-R{Jk##3g*=5c7 z5pU$X@H^oQz}CqR><(OIF@k#VWZ-(>y}+`-E41z> zfi{8Zfj0tU0>1<%1|AIb2>j{4>GuTo`X32o1{wr1IQ|aInfLu)_`CW&{yY7j6gT&$ z`>z)_^barYQCy+;dQs`(S;d7o$z=v>g;t0AL|T}SgF^F+IoW*J>SJ#NKW(Dn*TdwrI$)flPkqEp@NHU(R)+b>WAL7*;YBs!M1rZ-5G1j$!1(K~eWr!9 zw)*?z7;iUSkVaRhxMQJ&H5VsNBt+f%@^ns^oR9^da;%d)wuL~^f&ci zbW5*glr^dt78I0;eQ+0TJP^%mu-zUT9c&Y9tvw*vm*G&uVW^$4)ZC zaa5~CtW$N@9#=>Aad#EkYrChsx4n0)cO!XJ{N6IYyWna^eH9YgCzMH;?aT4Hyia(( zApYSnIam6-+PG54t2vv@^mFj&8Ae^c2}0^Ata3jww{;xMSGU%bJV+y%QF|XB{PD=8 zAG87x$hYeCjBQ36=XmEI&cB`8iM}`m-pRda6-(fkrYpr=-kt5%iAq}J8brq8YtCiP zx13EGy{xCdJwT*T0{#L!$zxStKZ)o0aAtDfgk}!Yk}dTf%$h%=_tpEMg)i36=w71@ zGwaV1JFv(&V`v~W)Nn?aubRqOsE2W<(b1^Nl5XrEN~SH+a}Lp6crGxDJppZHA^!YW zzL;@)(Q1UPvkUovKaY%zyg(bzi!85bTYXvNSjZYN#44 z7jy^D1o8qmLE$_QSgi4rQo~4Z-YI+G<$#u%I?9Jg5LxaLmNXi z!viBV%}&-+%o#r!O~UVNb2NiF$}!sWdZJNatar9^gAa5*S_(b^qgld zF6t@pv;Zk&qIZ?|74JjdEuN;H%|xu9g*RrpmO2MG>p4@Leq*!In;dJ4kzonsx*7%= zo(q@LbF_IGW|Ak78Pw9MAVu3E=U&HZa9FQ^)&78Sk8`dwLL6l;*Lc@#5HdEoes!&2 zJJG2AX>0HF^M&e>-q{}aZFmela{U> zz+?UstZ6;*DA>hpbaHe)u@^bkx3qXVh%zh9ap*&x7_rqi?_(sHZaU3vk&mH)di3vF zk?MHR^o+a{SrpkEIYxZ^&B(dPrN}j6<$sQhjr5PyWfbI%oPaL=3I7cR93=i}O?XDQ zI{13KLSKYlWAs-slpHdHzXUIk!RMFYx!}6s+2E%^uycahw5uJ+Ko00+`&k|IgocHt zg|>zkgqDM8_g&}!@?uNq_t1&Zq)^*%7c_tuq0RfuMo{cF`#t>X8{qLj(ovOO=+H00 z;Z6`Uxy!l4RSwQs)6>!OsmCCPUMFuaZx!!7UK>iltmP@qQ7P|L&opLbescG8pL0Fu z%5hF{mUjM4KYEs*V|f0j{91im0 zTSSufW)`~!a* zpvGq-tI(wPL@pC0_h;mj$Qz(PzE2qsgE!UO{KKqi`G{+pj}_>9$DLYN?Je!1mPIRF zWp;GEQQ!HU^FFdSbwRq`?-}E{KmbHtZyRrxx6re|)1CN32iOuf+#B6<$nR7YoW|9z zZuHmb&P3;W<6fe%*6UBvUN_OEr)UGT4tSN`!%|I4)S_6%+{6U6=ltiy5o!AKjN9GD zBT&WfMxIfXnf?LJG0v&Z55dq`;ao>qHWF7S$dAk62$P&|Iv;bUqZ58$G(@BSMDKuB zzn%8JPqXkbT7ng70M@kI@T$Fn@AFE=qvNo$KN}sy9Kfr1=Kg>Utu%MM$p|%v90V^D zy>v`-q6_rZ--d6j1v%iTenn3ruT(>#(dxo4vf)9OkT-MTC-{A7+rj^Asuf_zp1_mJ z@TMI^pL~Kv;(q3O)({1Dmz`|q6OF$U+sjAL&3J2}wZi%f>tz%)n;JxXRk59Rz&b%M z{muH$+Cu!|KC8%b*@adaJ7T%*5Z0R=*1J|WqWmtIyNER%4i9REm7}tmWhR(Kk<(Z^ z-iPzl#=?I!yahbZ8G=j%6@3|A48GVca6aoJcWNVvYDeyZ(%K-Ydcl!CjEn)p<8Np; z*{lVXc8x9f;Y-uRtYO~6+MG8vV*cP^vyb^6l)jOfv^>*mWn*c108L^j<$BcWXWc_| z;PY6V$W~j%eOS}zc0EoP6OBJ1QrJO^qTZy@=ToL!lR$aU6q zz3%!FB%PD4-Q){f;u_(4$khO>&kMBqOy?-)BScb`Cr0=R9OH8$S?@EFjKjoI4o9-2 z>Nl8|UZYKedM6@*CTX+LwfAW^wFJF0vu_`v?VYF3cQqyv(|wbiWRF5UKRVAjvs`z( zo^-w88i&-G>H5$$(KW=?!&Mg^bQ&5P>ul>xfXBUW+;2po!c9yZlK&)N)%xR26 zU#&t^$WFYv-$1h7&j_+Kb4wv2AayL34e{m~N;KFqthYDun6Hcdb|7Q!dDO>oM-iyJ z%^2^E)Fxv?TcdrieW$I{=3xUL0is@GddNBSrzwt?p{ok`$?wNo;A3dFMKsK~VG8kv zwV|vt)_Evqk+s|s&$4;g|F&CyTVX57u1Jhw8>H6=GCO^4FXlIeVDE~bTodTO7gp{M zVv+0%v4E~%?s*#a>mFRqz*p@ER=dxyA8hf1IRFYp(dxP!S`C3x0_FZWBDSK^MU!1`MJ5+Tw<;^za|#- zd-FTcH@_i1b-VeKdDPs?dcnL1%2U`pY5L84^E?r$C)mGf?&RnuR9BwZ)cdWctZ~+- z(Af#=jAhskTW3yHCt|X+oz7UQ9TAf2?2C3&{Ou1$Ti}0n0XZ;K`$fC1-4DGiA>(Nh zQtMq~1+&aa&JIx566aB8z*)uB97KmFT#qtFdB}CUE5lXfTuD~XhUgx@86)6KUdAoo z!5xR_o%FlFoAv5JG>s!fL;gy9=?fQtId_+st4idpPfGl?D z*oh@(L1OFvAiCoUcJ0#mF?3`EHHmn?zd;>N)#^h<&oDy%42u1oNX_G5K%dgiQogNF z+k4 z(W`y!Ebw`kGw;{gD#bhYo6F3(@U_8kw))Hg8qiNJGV35{s9&Q!eHqyVef=D{8p(+y zfau!}ikfF`CXPAB%(BW7vD^xsya)MdyAlKbAUvrP+^M_u81c)KttHk$>y}l6J~M`S z;B#cxxj#A#d9ablmjtZxozeNGkdx*nc`*7Rjdp`-ayK0QGsY*(4Kix12ghl_c%u{B zyBYuc(G=$DFY5Q|Y5G;7V%LIhKNUZ^caS1)@P8yVJTkWTG~OJYLGW%uZD$baovc-5 zY*dGQiJcg$Ooe0p!DuC4tI9mnJ)j;mWfHE?1F@i-@9a#*EJ%^r>f=^Re(D z`HE6yE%Uv-h~7@3RsytLA#HWq{DI9@LXm- zekZ5p4P7^~kc+KB?RpWJ{Q-K^G-HDCn$e#zRwKh<{KM?pV|>Tfn2gLp!x%?R-yZWp zk$A;q#`zubgPG5~q@lH>*4FaHwHU3<(f8uJ)R5TkNyZPxarCtM|?(WKb}ekzMjN&e}UhN+wnIXvnO67QT!J++Y9UukjGEp zopy&^laXA4?Sa2xgtHUj9u0`$9s*ze7V0&k)uWy8^O+5W93d(yir0t>4bwr-y9QVJ zl_=9Mi4b}dzYK{+?v3xt5cc09Vt+O_lPG*V1u_a=KEYpe*e_u>y$>Y{8 zQ2o}>lH-xUy+8xF)2d;Wvvg+D3yJc-Wgf%YwBP*A{MFn*FI!;FG$)v&%zkEP`cYLz zF&XHm<;~jY6U~tGPoQ6X1uyntZ5@Qx@ih`A02$o{SQ5zzBSVL5;TT`#&zQ&m<$Ezfdz2sjXKQD9D|#W z(i>r2+kxEdO$2*{X!aG3sYuz^;QW&rfox>n+X7K_5aYtD^s)hH4af22>;R=MM4R}> z@Eb04iz?3AvH5^$D2s4hKPoSchz% zWWKM= z9DtwMHRxh2S>EqJ=h}=6t%|%JiXQekb9i5|Ol5y0^A6p}vt0wJoX>dWFSPX~;75#N z&i-CzWp7a5vuX8v!Fjj<6-f560gMkjk^FX8eq%kO&xy?ZK5n!_4pcBA`enwjUo%GN4W}*u8v!3=%@2Qj9eQx# zkF*Xit~X=cVLTpe8{h;9#L>Ts-`8a@gW7A)GgGx5RE59M7k+{kKILl%!2v5GkALF( zpTZX`2@kTL(8>lOl@p>D;mQ;72CQZmS=->*L#=jDfY&+?*2izi`UVjiZS5v@ zdBz=u(9%YzZk9C_%6l8%vNvLAAcK)FZ-62?+xmoY%r-p8ilMN|=!$K5)6000t%Y-4 zA_7C>EtRlNG(qmSM;mAd$7qb)YC^7vC(w@jLjw;nWBL#}f^d%4(UwQT|Hd&klW6|$ zh`u}muXLmTwquTUGCkxF-i9?mqX$2x(d$+Xfmwv#v>4VQSv>WvQ6)~birUd5_Olvx8t zYc0^6pJ68J1MZZzTZpc(nRT1>Q*1Wl3!eEdPk4@JykX6R^Z$sBoo}U~S#$=YWFq5; zmGtplXi&Gv_LvC`HICj%yLM*e@D%=xFXLl5i}CLcM%G2pd<86v&FB;D!S;9v|I^O2 zVt0C9PdH~EdgD;m5pe1k!KIka82U8*qavD7cV>&WGZR66IA&~C=_}FM6TrW2#SHC( z=+j-{$WJmVyN@w>Ds6HRJ#C%-A+x>DG0%86T-t|TRtT<40s8KBH1czd1}|XoD_|zb zgS<$?B2yX6na0pbE0#7`i@HHUFEGnL1nbh%{O?cucGPc&mpHJ$ZNmS#H{2wOkLNe= zk7w{xtwGd%1RvZpvH0t~wCitpxc&(LUWb4CLi}OBKp*&sQSe0Cb|Ue-laZBz4)Ot7 z!hC34&@H}#5~eW%8%rJbp?8!e{`V+-av}16JP0!{q60iaY(>i$c1#EKmyWbY2asXf zve%09P3=Z#Zg;c2pEEt_htGq_^AY}{ThI^pgMxJ3CNEbsKn|WC>=pc} z1N;}9h)cvZUn5ey2y3~-{incH8<6R@8QS8b%-2kXW>&x_1v6zLdhsl{`%-$^8mtXF z;OnRG(Y;9a!(6z91O8tQw4a*j;I$YPRnaOjSDb*%&A{?>C!D)8dbrFQ%wmR@`hogJ-fVbX_9Ie2NLrwglTT{nfsr|laq_2{BaV-2~ zI6bo$GPft%*`xH=RxB-`wB~SO!MdpoCQe1TbtZXJ^k@-%`v{m*2jM=4Sa!4SAxdKx zGdkPsziID-_Fy1HQh&K*C3lC%M|u=VyP`v>m+1Fi3c6W5|h6Wk8tra|ADdaUV7dkmc7u>d5{YVVmKgzIubyNq*IGcKoaOd4G)KECc~Fk zv-|<7&L8CB+2c4#4!e`sM)DjQqwPf6uK_gE4f+^_mhe0j@;)Q+xwQWzX3&Re&q6m( zGL9aqy~-TUR7PswpbH2t(g}3h^IDi}ST3w0USy36v@gGQ3rVyWi^VFUHr_{L9fRB- zj}|xytfVRMm+Aj|`WT)nm`T;}qzOXJhu}Et$Xm4-s$UMxuYumbVB9o?|6`$=DQJ!p z&~HW|XNG{L@DRPFJctZe!Aki)Hd1*58hC~=_%le|5y;$e;1zrYm-+@NO9o-;^=0(5 z`{<)((F+Jej`4|$_Gu*fby~x+$(>HSRRkj`fyj_T&Yp(~4nq(7>|;p#t1&7FK@m9| z{Y~3{0!~$baIQq3s05}}Mf}T~!8>}xpWdd$7ojt5kG1$wc+@GLa+>8FZ#)mJT!)&j zLuFEelVl*h%((*S%mAmUI@Y)rF}c%??|BB@awKx|eYom$xb0*(?VE6)K~PUO=)F6% z{~Wz#8kDjTZtW)vKy&oK!DwV}Q*RUCC?k?bZ6!KI+G!D1iI3n*(`l=v%&_cZ4$7&OhML;L z8J=YP&;^^wUGRcr#;TXm6Mkbp@f(nzmhp?v`1J=+=)08eJ?t6pL#rS1%oRL+HyXu7 zo_3MUS9^Ku21+%9?|2TG+JU77Hjs9-e|L1qfkaNdf=((_@gj2vPk^y;AKz0B9FG8_ z%_GDZY$f90JE&j->sq2OmJ&ztDRuY}H8~soWC0TDTR6_I;96{rJG?NqYAVO1%!*xfpF}9?R#HaV7Wv#rRp! zYXnoo1;@n56>H0D%$WRxj6TaZ3;vU!C|PX7L@|Upqi}&_MnZ6(+(;XR`Q+yJNg$b| z#L$rhRi+Gem%%v~Qr{1MxrLl6=1E?trW%%pX3WmrkCxL89{vzqyag21kU5(>h&8#B zqqbb@jV3q*Ira*g&nvXhAmVR&U}JtHhP>4e?nEvkT68q)%Utir)rWarD`t;dv9#wY z9l85qe$$obb>fXJc=KJn<#y!8ZAAG9eocKMS!$!9RHW2`A(hECgYuVy56YJaHkDY- zWd0#aeF);qb@=8GBRp3|2P_v*og}GnmRCJyr&lMakLEI8dnG{;lNy~b8 zZ%XW%AZ%5l9xBApYm&G|Goo=wDf4-&;6(}6kdLyJCR(T_bt$N4g7s60r5wMk#O!}H z%5fVr`?s?dB%$)mCT36qF9=LTpiweG&5`m8LQy%c%aYAkd(dnIokr^IBz1NXYAWK} zb*>0rkl>AZp+F~35Hu&jf0D8bLYE*z`M4%DEYw@Xw*yH^iG}h7Ge@wIq-LdV)mCaD znI{WvOHFv$Pvu!<`3|WI!7UOzGpRfIX2GG7vsM1LROO2+#=b5!RyHY@73)KSClzK9 z1TgW#N{p2>iLKyO`Pj<$NDF82KIubJ??Q+2K0!%JrHq2yBp6C{Xxm0mb0aADHfmJ0 zP%6(LYjdpaD$w%PxU(8ptH<_g$6BWWeeAASf4h?w5kx0JJCl0^(WzFf?WFFdwH@@} zV2m3GTAH9s#aqkfyx^$G`9O^NgbIWUr1SoaSZOn2b(zjqz9=*HB?`Aq>auFAWHtCN zc?IQqa;#0H&V~LmxL+`-s`CxCSQLVk(2^j+sWJ;y)rs}v+hSi@g?bQVt5UH=TBi(W z6opGY3U-^cTfDsmiB6EigiZt{%o*!j2JJ4$cG51YofN{DP*xI)plS)?o1zfem-dsb zVBh&-tBf`c5F->;63PFE&jLM3$JR5Cf10S zQkYtDf1Ow@NRJl2B#3vZyhTcd)ot`fILDdpd&m0SSo=6e#D=ZUh)ta=4w2E+5XN@>Hp5p;Dm-;X=a8 z)FS)RtEDD|y9h^+K{tFiuJT*BZHCi)9MOCO( z=|L4@UoLd5WP_AOxQNh#w4z|E3EG=biPVOaNcyLsFA61y#8Z7l`iU$;Gs0)&i==j3 z|7&ZZartKXR>5yn6ehh#C{5~G&dB%5D!pIcP>Lr?%Sk_$vdSv_Oua|wS5ck%y`nqy z1@azMdkPa$o+VV88GE$(IT@P`zKth7z7Fb*i2tbtsD*%ku>1QZ4bbs`llJ)RWbh zNm-PHS2e6^RBBjs04c31x7wGjyhCs^<+<_}d0%{AcwPLx@?Z6Fp%aD4Dcd*~kb0Fx zNkVBAReE`zJVn)ov}2r?D1IU>soo=RRlkwn#uxQnQg6~%q}M5qDXk-XG9lJNimIeN zWlx=rQ?bxN{H*XJSrp$DWJgcz3DU~yexU|=rnHg#PAEuZrYurU#XE#+2oDk|B0NTx z67C}$NBWlV6UAHPn`KY_%OX@9->N<+cd9+5E6IL*l{=;8;xZ}Db43Oz8dRkeI#vC% zq<_UJRMDxlxco{{jkJvLLwT}#zS=6Pjh~m^Caoshl07+=?~#6~zDw0foTDmv8Rx3P zv1N((Ug0>A@%?7ZCv`QFNxER!c>j-8TmH#74faqprUDY zPrMgNIb@BONcL2z)R(KaihqNAqdKG7RMms34?)6|ual7|@kP;&JVm}n$|Yr2eI(xZ6(5ZE9#to@jW4Qa38$1ZQkUwCJWJ|8&dM|5 zi*S*W{dirgU#n;S-#S)wAf;5)q$n#+VN!0@!s@@OU&U#p1f^r|SI>->HC|Fx4mEZW zN)QT`FNrUz2S^!Jnd9aAHy2S{Oj=)+LePO#IpcJ!Xjo`jT2}SNacbFkL0)N3BtK#U#_eD_#Nuo)z_(asOJkk3vDZ&7$3_h?kKv3 zXmN5jPWf>PkAG?W&FZ-1Y`hOC4yD>mwPDFt&dPOZQ(4t-r1n%lm3OJPD_*U1XwjcV zdz8_n;0253R2MBtkZ46;61}NGOt+TN&YiJ6nPCuJ`c8Ce*^}ct|F^v}cDK^C>hla) zXBsHd1*{Xf1K`DQ{PLTBir-`C}utm=0%wvbhxs_H8KMrk?Kc0xUh#)MWB?~`666sp=m^?Jo=6~9vY zh2mV&zvWo2$N7K!7t(&JCFNPFB}-aU(Wase)v|FeEYe2KE3T``B)?PTQIw)+C*Jeb z(@Wk_vKQxIiZjSlN@%mBU&QHDNqIR^eJS2Qq?V*lsL_Yg2!saZtn>qERcXnRmX?-{ zpOJlOU)f3vD4K}3MF|bad39B_m*^m>4NFGtLKo7$YWe@$Q}m-W7&UT|XUZ74qzvj! zB@|dfopB0PUnSosi~3IWKVBE{uaEPAlA4HrgS=0uPs&>L|0}i7tBmmEo8t5;|J9NF z|Mz+IwThzS->&LJ#**sE@jj!zSy6jQ?Z&@BeTn)S`O1=ZQ&-|`C$$o9xsn$7zk5|< zZ6#ZoQ;D~m>cxsb$}dXJtD}EE_uu8I8mr-|F$$A<6$+CQ%A#}(sdcp~DNw?#%7iPz1) zd6U$qw5Fna*-9(N`IzElYW^xdi>3O(zqdjw@{9Nq??LL<@-~@qiO(viHj?+oDMq!F zoDtN2)nd}Fa$UCZ>+$|9$0aQ;_sc3@ueMSn|E`OY{djHv_ip*UT#^6rMLkm;sXG7n zGgS-AnYf0aGzQrUCzGw{E~3MzJ)s^sQtN-WaVfiUt)76t@Pu?oOl>3CXL@KLe zITtTUd|&-SwsKGW&E;dimUk$QtN5^z3~}zSq=85QSwt$t<Dth-&Ky3e2!m_%kBRw$K%H(|CPQi zGG0AF=85D;w(;_-x5d9#&dMUPT5XloE|K6$w~L>RAIbNtdt^@?#m~u;RBfoO9LH-! zU5P)fiT-=H z9F>ffRPCy5{MYIze$T((7yqry{>R_(-?GJz;&c#iANi%sUrF7muaiBw``=qRmbXi( z)p>O$eowsJ<+tkhQcoqVBekjOUd~AmQ~gEuR4-M!W_(^j`nBwf{w1TexNfL4G`S|6 zLGiFSuZaIw=Y^-pUYvU=ej`V5E~WUD;*!Fzgqtc3EdP}Rj&pCteHEww_x8X1Ur7v+ z3Mwl`{8;^3&WdiJczOIya!tvVxO`B2UY!-$5HF2-uiPbf$eT;H@@$ckBFp66vZth` zNK4sM(oVKY8p>I96qk-lM#d$j(lC{*lsiOUi%Z_PeifI@a#fxy@2nBqsxwNqs{9~w zNBjw@Oma{B3364*eRWoj)ffDCPwr9rmF!9V{@+#3#IMM`|E?`{ELv6dSbK|=QCT6Y zK^M~Ea)-1=TziqdcngR;6Nx4*quNDXQ}_ORD_7%Bkl!e}ivLQ<`*_Q$r^$O2t*QIt z<&J-W`cBc=r8cG3WKU{H>Py-uzLd14(tF~XveKf(>MB+jHBJ=UN)3+HR%{0{c2!#$ zHOtsp>}Tvc&th(l4a{$LD>N)j7^zgl`C^5l*DIkm5*jDIuAr zgnz{s;b3toCcIA03l9~JSh5xVCwD2SD7;Ty{Vz`xE+|is>v0R1(lX>oc$~6WNx7t) zvXwa-`2v~0l5)#;iO!|?UR;BUYg8rrmDo_FrbIhawe#r<+xrRG(g#OqwidZ}HxCN(K_F4jts z^x~r+a!F|;awKw4Y~pfne5O$DkeN}j{HZ;edn^^3e->MZntfC=jmm-|bCJrsLS`Yw zE+!TiW!q9#qvY5bv73oSOsqd*qf)C_jZR8SsuqtbzSV3e} zTd~&3bLGi$x7hCGiE%4{WKff1DVHjhvQ|rJRk`C~~JCscd0lK@=NP+`6x9{IV5WsQ90VO)43Sl)NeaJUJ_6 zk!{ldY*b>al5)saelJ!k*~(GLDkWE?S2W_|*~+KBcb2 z-$l`gw0|-+E)*>`Q`suZXS^p!Mn35i(iTDu(mK-mS+uRRSQ+-Dy`_&TJz2H6;%LH6 z<+uV{#Q{Vg6P}% zw{cCpifXZyGvcM9B$Lei$~AQ?vZ@Zpl1WaUA-}E7lho5hs>!jEf$~PRFTav!t2e1! zXYv-AT^6~f?v&EWv*a$3dU1&-5?H79R;+rxKl^U)X zt98jRsQRA#7rRMWC_s8>8ryiUR(9+}&MF=vtuDPIf&W4|vZ($cTTkqY(6G>!lWSr- z6$`BLauM6P_iKG>p70Iad38mGE$B|HNT%VUc zrIm?3EnX`n^s8nyWo}AnrAmwzt3rW7141WNViY4DkD})Yl?dI4ZYT6onKR<6Ct7G# z?ojVlvnx`rvYZiaE2tgPv$80u8lQ=WqHx$0R_W)ZVzr}uQG^=^cT+w&l8-a)!(r26 z;>}{qSx?i zl-zgX*?2YP-6)w&B}1Y3IbM$WI!dO~i}d=slzf%B{LhV*O-iZq9!j}Yyr|@ElpKyipL}eL;>1%>qgIq} zpm1gJp%l3)d{g`@q!z{RQ)*Y~YNDyA(WKJkWp+_~7-isZIVbl@8Re?vYLt2PxUQ~z`>JwQ@w&Qv-RsxtZFPF z6fRs+elKU_4b>=@^aC01iN;@>y+`Gnl&_I5R9s&yal+%J7Nq>jE+<=QjXJT~lX{a{l>gEub!iQ$*9QOF zHsIQwoEPt^J2=;fyTm70_V0?V;%|2s_uo#t-Nk<6m=|6XekFU#Tdy%!?%|AhE;qwZ zPrUV7aQ$9<$D6UXV6P?q^Ud)?ZpL2g*txcBB~P$q3Vwj~eiq3e`~Yhk{L)(y{q-P6 zZDMESY8$S|B6rDCSD?C=wYP=T+)e1GLZ%{S@@rV}c5-u&gTk@N#`3a#+kp&{N zWyU~_ctmE%ct~kCGA5I8TV*(etV)WP;tmPNQ_Tewlc~}Wh;KVWn&z%6g*L+sBlK{&lWlB;V#i+MG`x?CUQF^#!(ZI=c31I zToIi?VhKdbi{uv_LFBr|p6CUV)7wIG5HEW9h3FL`g^bwNNd$t6>tW7_hqlTw?1$GE zu-=68UysRz3&@7END0XlE;(CI5uG6!jt>z7aX1zUA(=^cb8Z(A5c^}X4w7MeA9w6w zJKyNq?6M-i&hYlLG4FGUkdR!y$61cXp0l6l z9wgpu7r&OQ%ZGXEKF;i9{hRF}A~F8p%4T8(wh>3NljwkL#6E6_t!s%LSVB~Z%G|w> zxQ?YnA}t{5Xg>cX^7Tvhmc-Tt{9nnsiX0P5iC9__iws;#M9NR>Z6NMsHCH53X+8Uk zI4haKza{QtIq?WfxbJ(m>$!6=d+WISd(Lg(jvv_jnYgem#EAVGi(L4FT0F!mwRDtk zK1yAk%rX;U$5%g9}EP?2~ z4yfG*mq4^(8E?u~d69~?Dx)+RNoCQKD#rS<@crg+>n_BW^d^p|A8{(fh#`_VsmVke zeL%GCERaFw5!2SS7hWox49Ee(807-l8(^&ruW^}sywfMOUWLM)e< z!rzHW{DH{zWyGO=Kt$OX(2m9sb2f}DMZNgnljRZORXY$l-<`~5J!5-axYmR0Dg9VS z5&!xgznu;`$P)W|;$?Refp!&?igaQk8xj%MiHN2bh)|kGJNyC#oTFxw;B_5{7<-%V z{*Fj2jX1rBwIM_SZUo;UOkTYOJVya#&455{hgEj03@)O0p- zHUYilQLyj&fNs(QB%&71dq8nc1%DzB)Y*d|6nzffMPH*QxC7Znp?(0=(n-X)HwK;V z81bjWL6Q;Nfl)}5Lg?igBI6DbN!i`Dtvy6@x3H3}Enqf0YP!hjF+0*Rk`*}`o*RBV zTmgLl&q6&zl|n~@3xdxFYX*x!j(sQ4KTtam^8e#s>YwC)#^1_c(eLsX74I)TTD-M* zNAYjPyNk~kJN$M0Pxu%5Px|i)d=c;mUI)u`Y^Zv8cX&{w0SHc?SZ~;k7(tzLEY(Kn z?ZIr_;vDa)>OSwD0^0e0Z$IB@U+;un3AGZZC7wzwpENLOY|@uW>si(&El!$|G$`qT zq-f%n#F2^R6SpP2oZw1W?d$Hl;GOQh!}~kfq_=r4x)-@$cHigDa)(`~Kvv$*dfauB zOf#0NlDiBzv#s6W(t`xs-rd4o$L)0Ifi5}4H2|E_Jz&aJ1~I0;aZ?{nZ01{<4Snv9 zwg>$=$$s5BX0|pLL_CpU;gg}qLca&w2Y(K<4E#)8>@MzEe4}U_2+1o8+ZFC97+#Q8 z@O6G?(5$EAb*y(kF@6!A_pw+XjYXT~9an zyP!>90I9a8zL`kluh6Z|zzaWxCv9b9)R*Y!vD)qWP5pagyz_NeS9fzyU9et{`xYj2 zPBfCHCnY6+n0!9DY0Bu74^kGT%u0DarFlw0@|@(F$qSR*NnH~cBpmc5_#W`~_e^!K zavcOov5wJJ|3Lc%j?)d~%si{VwF!)wWs%yE_2Gu$o#0jaLOX)PgVlnk0`mh;gG-$2 z-{^nK-`wvn-cZ~Xl<8ST_ZIzB*tBq0LG6MS`F7qjdB5hC%Y7|p*R7`Hm#}a2z46!e z4%e4lt9Nbn)k;?nT^W6)&Xv+ve!qO|asin8zh3Ebwf(i$*B9NWersRO!Mx1{X~n$) zIib1cBhfVdQ)e5`Jl~bXhAG~(K>GO1y;;|?ca(ah^q-~kN}nvfwREr2g{8)o+Lm1> zyGd5h%;6a?r>{uclNuruiYM7j{D-go#=F8Z%iYKIu+tABz$(Xk(Q)=@>oc&fheX_w z3t+w$g@;7~k^QD--x2-M(M12-nCNQaN%Cz=n37aE<=fP<>5pU#%)C3RFl%J?;q0_h znWc#{p%Z^#N}Hp*<9F(7?N+8e2_ru0pIG^u)G`GhoIlDC|vg1dsNfwPX$T(760 z@kguJ^{r;)u^1R09a!D!!{KQ(W8?!=r&$>dY9?^ z!!{0io=%*V;!po9>!H#E%chl|T%m8p)|G}=`lwQ+O2aEotME?wIpv0weXdNI((ALI z&-y3h=k)i|hNbpMsh@l;ael(XK9~0kYW9#ZMh`hwkYzStu8+JD9vk|J9@sAUYVc-o zZD?{hH}aM>F?vL6=se(V-@Sm!4MY?(9D^CuX!tPe?nIGBLSM(%FPjzI(m-?$xdd&fAU4+Go^ip7oXa zQlwY7edzh%xWGUDd;D99hZNTX8@o|)@8Yk)#(v2ErT>QizQBaQy1<`-C4s@@i5TqP zS$wGISmB0(-uW%^R_2VmrQe)Nj+u>De!KkYr4bhwTzK>R-{(%B)z3b3rtRqorzV_S z{m=drz7vlhUwiD1W8tGGjy5@V_Sh%KTm7^7WScXM&NsVcU+sFcabC}&)4@Njar$7- z`-!VkKg?WNs%yEu6}nZfShabziq(5n|D<}g>MvDmQ+0XeZk1+L=u>`f+5FO0_NC0s zjEB?Cq|8meFKJ`KZN9OdfNQSvLF2IYw&SSX%{m^L815hH80;AsMP`@w{&W8PKvrmX z_-nIF)YK}vHh8NhElkbLs8woE*-jPeR_;}`arM_~bgH?n=ASj+s=2ks;_44pTT?}= z+`Qu0@^i}WEPWz7J?p8AV`+m@E2eyx)HgB5_lCEM=Wo}O&P-#d7K*+?#`n3A#7?w9TXUxrm*Kb|zab@wPdoP|p|H-*;&VG32$m!6jHmAm(-0@Gr3H`)l$2%Px zcXZd0!o#Hxe{|^N!R-e_2L~P+ad`NVna939(e(76=XPA0dHva(lZDaXM!T%5TEdmo zN?EPTOs~+Wa!$2HHJa4YYhS4~yVlK`YiiW0UaRWaN}DRIE%#ZOqEa7at;iUk_AboX`5Gb-rcJMM~3v(`tZh9(AnD!#9%Ug6UPk^Gc`odtD@n)u%eE{UwS z-_eh`lM`>I_Q@Jo=A{bXRQ{*h=$e~qzgFk}adZygaqV3fpPA!x#-7+oZQH!HZQH)J zZQFKJ-Gr&l!IE{hoP}OgfDY{@82n^;=N;bM3vgZ`Znn&6bI-5q<)_Pm$tx@{XEj;a#Kp$Bu~q zn=m(VWa7Jo-1uv8KVovDT1J>dYc!dv>&lDr_Ogx=LUc;-nfXTZ==Ef0qAB*1SHPJS zxa7<72&wck9S05<8l{-kM+4W=qx@!s-@1J8o>f%tp{F(K=K zQ0kaSFzHm==F0jX2Cz}TtC+ZK?+^rs1HK?Lh`Ki*uCC!R|79K9B zn_rx_I=4wqP1e24(;0o!d!!+$4gO^R+VJaC%BB?j*UOZFzg52*q`K20GZlGf^JkQr zD_iQ$SgtxY_~!8jkV}Q3vR|qfp>dJTW6s9O6G{{C#F+_$5`M&`#rlw+Og4=V4Y_9YW`#Po7-CR zZNr_D*g8HoI31Zr)Ccy`OvO;mlsk!47SOTNO0kjj{;E5tl(3zEd;1WmpR9+KVWS_4F> zevVd-VU8rH!#UhNjVnDbtXse_IoyHB_~&L@IWcrIj2i{$AL!fXG+nnRDW^i!#?{bWLxVrv0P%Q~GP& zuT?4iQ|OexKWF}m{`Kki+*Cn&P1cgUV})4x?<${OVcp^41S*jd${?IAd##!fS{C7m zPK{j~&r66-XpmryFN^yW`!{-PWLU(&Ff4SV=Cx|PqJ_*VHV9J%YxuR9-&8Xqh#uvw z1a5J_H^!U9K5*iW*0z7F+bl24N6cr<_bp3oUmcU(9IrS~8%Eg<)M7zEGFVYd6CPGS zvM9PhThlk)z4uj+YFSp zqoOr}PK=fOitj_4@G61@{;%Hdo^l)O|tsYj@siJoInNmT?v!Vfo z2lLzi{hce$shxc}^FYR#^l52FQn&oM^4t7N_N&RS?38Z58vIuNzVW9tH9TWRcALNY z!aHRvs*Jh|mf6lm{`F+6 zy{+wS@%EdJdafw;r}siY#9NP*kV9b>vq>o>uGt(~7M>n?ESie-$9{>U;(Nz;ixrQu)0E{1jrd8Db*8b4; zz`DxP%}klxh9~+Hx|KCev>mD?Rmw_k#m};nrLiTtq9cXd3i{`Ww+ zpCM0wokpZRNexL$NOPsl&Nz@6%zl?Qs$hD_;__kDyY#2bOB|TzO+bP)BQR#2@R#JX ze2Z$GW=80XuqWYkWS7Vnk*_10Mb3(JMMxs6BUVT7BjUrig*^%l4_zFxK+{$IOo=F3 z%a%$GijE7GFly>Kega*_yUM8!2>d&|ojmMrBu(Np(ss)J)c#)?C$W(Dc;gsOPFvR4P?xWjlpm z_Ch*F@>euhSjz9mR8r%~0DcsULO=7Cau;z%2ImJh`H%TtdNtmjo{Nx$Kh^CA#)$-Y zL(Sn>wgb}N0sA1k(0<9*-j-$EU~ORiWEpNrHSaKon*W%l!Tzfh_E~+6>4pb}Lxx5M zf#IUQzdlKSTsKr#T5|>Hf2G>vTDJOr^~`Er)z_+hRjsSSt2~vDDswAcl`-&ni|WVK zkF|Lg}3ydF3t1N!&D!b6R+huhR@f`C$_BnxI-jXwzyOwtvd5czI2oX;%q4v>b zj7m^nI2pK}eI#|IRnoh%w(_rXr#xN}uMj9QEoerYV!is9{%}#B^uo zFngIN%uD7w^ND%J++fx-y@8(djowAKrOT*Ql$^Q_1P?QD6DX=8;w?~aqVb>DYOEFP z)Rv<-x&iVtr@+oI2-Wq8Kv@3+JhUFZf4w(7I<^IS*e!!Ku*o^i`OEQ-BiBCEuCtA^ zm0A~Dt(J3^ILl}AaC3#}jH#;$H+?d$F?KP!4Id0U4HFFQ4JrexPt!lt@6^xN_te+b ztMq;#aTNiD>!&VFm#O;!AGJD{E=j*Ye_2l%mKYp{^TtjlfjQg!&~nnc-L}=f!m->r z+cnlbnVsXA4{O7v{uO~e!GoN;+zg;)DX~Pn7crDvL!F|JF*o>!1q*}&MPl(!@id85 zGD(^t)yU?_F38elEQDnAh#u2F!=I zY=7Xu>~|-*(_G_ST-PyYBRJagU>AHJu5s3O%{JC1vHi5}wEklawN_g`T8>)gTl!d% zEUdZM{MdZRycFsV4b2j>&h*Rl%yinc%e2X~#I(lruW7gGqAA&wX7ZZC%|p%m%sx!CTA;`&Gpj#FFV+i=tX>0zHk1=flI-ioaNl9yxvGt zG#v9{h4_EOX>tYCgBCGAm=*k3!5hIaVWDt1aQULe^TiLuS}`Swl{A*Lm9z$?XM_Zm zl!`x#FN!ybCx|@_>OBYagpce%R`1>lm98|PB(-qyTwh@~w;X6lwVi~s z!12Pd&oRl-2sl^opvD7hY5RNILR(9l(fZ7~**eHt*UDH+EGd@fmK*T6V!3R&X}M>4 zX8BXJGM9w=YD6b>$z)$+wZ=? z_V*Bwl|I*38&a1~0l!)R`C~hQIOgI#113jP%z@p-ClfOAB~;50pjy^uZZmcG=lKG` zV!>}gf^Zrf!(1UxR7ccJG)y#8v`DlPsH#guGepB-B#9DXqGI7Y;Su31VN1A@{|F8X zMhYSYrBGj+#E;|77|2K1Cr-hV*Ehy>pCQc!FDK)O@?U@jyGHiRR-)!!VlNRRq@0-yDXcP{WysytUc zGl6MoVV|*U*)Bje`QttWEF+OS)wKg?RUYR(7+n&am9Vp(c3~z#?!7 zSb>YLiTOY=lH}35~6RP9(xUyWg zfDbke2w}BdBA4A+?EDOrsO!#S&aKXs&IQhyaQr4aM>)qj$HTK3@GmQ!o8ihm?Y!xH zopEot%wafLul?F_zcy~V_5IuKSyF=O0>~S`ijr2?dwhacO-BYj1 zw-R#w2l!w48$zu<2DFk`&t-S+5fv=Okv!+}KP!Dj(quQ7RwG?P84 zbCiy1Nw20~!&#^YY_YA(b><86m#JY`#?3ewBRu~D?A5c(24*PJ1W4Ff^ksT6-I*5B zsnii_0u@bFz(_Kgj3dj4OT<(no~XdD;M0J4S_#CVML-C%15;!fRO4CXKIHtyLUQ?D z$o}*|PTxdGYG4Wa@C{&SF~8U~cF>yVh-%;$v)#(v;w)CcoP zy5|OPz6L?XlkcepV#_UHxUFO-!n&{{TZavUJAri@+(n{mUX=9aj{zy2RKoyfNuWC zo#_s^>#^h6Lu?8wg5Thrr^?d`=u}nSE@=>O@Ci4}h#T2EU41@#e$|;w52$70yI*3;BTjL)MTyN<~Fc^{M7S1?vLu z+fXg3L?DdEz$n6{tYjgXLw+W2ktfM@F8>GJ2TBMZ_S9#9bgV-1f!fpubdL9suGoTWgxtf)uyZMd`t<_H#tni_ za}X4s*gz#DTF-;@f7)N}d+gion+i$QlrJByx}DzX-qt{#^?3?C&pl^6Ydw>Is?)*~ z?ZJSWlLw@v+w5ib2)l({&n{zU10{YS+nenM45k)v*VJcY*;?>u&URwE!-{?sI}+}u zrEqMI0(<8Jo5@zNe&FwD;7)4`+?|=8ot}rDR1fP(0EY55;1yJQ86c=kg?T8`r-tO+ zhro0h3kmA3KtIU3%MB($s^Cvf2zM^<2I3)4IG@)5?)n!V$t;U{TluzomjOj70L&Y+`wE-u zA$<=a)87$DgTzl2=LV>SuOY3r4=9FXfM<})nF~q4eIZde5?BQyAPgNsF>DN`#>K=k zLP}mFXtF)Ip0ty7s0$QJ^`@`WCG;=gR32r7{80W*#zWtv>(jmIMf4c@EzM_C%rK^q zScFT!j8E||Fq2^|{sHuuF7$ZXLuFA{sXmk!SZXX#w(1h+@U{4VSVK@~ zYCs*_&ntv{(GYGiq&ceL8mEF|1Lb~>{}<%*-}1JH5q*P)>uJV@y0^L-z}n@r)9HNZ zoagN8+~z2;PqweN*-?2a)P8zp4G7x=-W#Mf|ieAbz5L_2# zfuYkcNtWiz?#Ul2YLur`!_|w`6V-@%iK?!uNXb+6Ql+R~sqU*Pm75jQ<;Bu8$p}fR z__cVOSSj8N9Qw}!6TcDvGY}%7|-h8l~XHBC_oKnn5W$PDh7V2!WByNdnm(m3bYOqK_x(}v~x zRW+H_5mjHyg=IHNW)#;c9$d7t@NPj=e(c{yc^z`IbN=K^%*o6t&neB`n3JA0J8Mu@ z_sqRnda!Pwxkb4h^F(=Da-(vW<@C&r{=4<>-eP}A`^pD3?RCcuE%i~l>$>xXA(oGh zL~p}DIkyhXG$gFMB;+!B2!E(3Oi`-Z5js0O5OzO&Q24(Q-J|r;W8xy>7bToau*Bbu z9}@Q`)*0iDc@Q%-CL?-i)bWVhVWUH;)J3Y>%2vu_@>-=D9Y+N}R^# zA=zB;eL~*)aQ~FRcFr?Mo!`&B6`Te+-6sQP&VJ-5c8Xk1{i4H|eRL%q#a!i6q8SpN zyt$&j@*kyCnWUVeG%MSwqSPByv8pP#FUl1i6f@-zNV&9 z+pl^|RqKk=rPqoZ7aH7E zU6@goUX=DLZAAKt^fQ?SS?@Emaum6(@^eawvJ;i+ikqbu%h2)}+SkTA_7iTgPYMj~ zjR7FX1&rK0{9nOd*%Ea>jZb}0wO`pm{a?t+$nuzA!o9?SiBA)partqd;!ejq<7+4K z5|<<}3AVV**r_q+qJBn1g>%C`hAh+6QI{*^@?>d^__C;h;4N(;+Yt-#RB%K*Ll*FA zI2GU?se!rN>Fewt7Z5`xW(l~D&Vk=}4EHUsH5QL|Bq{1Ug))tq-TY3%6wyoRVEGG$ zUg=Tj6t5I}6_iS*KCI@2bl2F`lcmrWZCYeE;`b-lbeg&cW=8 ztP7dFvN~m!X0FVv%8+GVNxzr=Px|JxY3aApL(-Yd!5NJ*`Pn-%n`iCH`jvJ3?}6gg zxgszVE^&SyaRkl@Kc}-8c*)#H

      ?jaA9Yor=Xux9VEh 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

      =s7^8z|!_BP9c(9Oy20~@b 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 tc@!!)t_a;)GCDS4^>`Gz_Jr@poEv5LITu!W" }, "metrics": { - "completion_tokens": 12, + "completion_tokens": 13, "prompt_tokens": 125, "time_to_first_token": 0, - "tokens": 137 + "tokens": 138 } }, { @@ -150,7 +150,7 @@ "contrib.livekit.function_tool.name": "lookup_order", "gen_ai.agent.name": "default_agent", "gen_ai.operation.name": "execute_tool", - "gen_ai.tool.call.id": "call_BkfCAV8jhVgzswMe2B76auwE", + "gen_ai.tool.call.id": "call_HQLmJqXQjluw8pUu5jho6X49", "gen_ai.tool.name": "lookup_order", "gen_ai.tool.type": "function", "links": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt index 739f6f074..2628c4a44 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-interrupted.span-tree.txt @@ -216,12 +216,12 @@ span_tree: │ │ { │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", │ │ "role": "tool", - │ │ "tool_call_id": "call_BkfCAV8jhVgzswMe2B76auwE" + │ │ "tool_call_id": "call_HQLmJqXQjluw8pUu5jho6X49" │ │ } │ │ ] │ │ output: [ │ │ { - │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "content": "Your order 1042 is scheduled for delivery on Friday.", │ │ "role": "assistant" │ │ } │ │ ] @@ -253,10 +253,10 @@ span_tree: │ │ "turn.id": "" │ │ } │ │ metrics: { - │ │ "completion_tokens": 12, + │ │ "completion_tokens": 13, │ │ "prompt_tokens": 125, │ │ "time_to_first_token": 0, - │ │ "tokens": 137 + │ │ "tokens": 138 │ │ } │ ├── lookup_order [tool] │ │ input: { @@ -272,7 +272,7 @@ span_tree: │ │ "contrib.livekit.function_tool.name": "lookup_order", │ │ "gen_ai.agent.name": "default_agent", │ │ "gen_ai.operation.name": "execute_tool", - │ │ "gen_ai.tool.call.id": "call_BkfCAV8jhVgzswMe2B76auwE", + │ │ "gen_ai.tool.call.id": "call_HQLmJqXQjluw8pUu5jho6X49", │ │ "gen_ai.tool.name": "lookup_order", │ │ "gen_ai.tool.type": "function", │ │ "links": [ diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json index d91158be9..32084c335 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.json @@ -90,12 +90,12 @@ { "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", "role": "tool", - "tool_call_id": "call_BkfCAV8jhVgzswMe2B76auwE" + "tool_call_id": "call_HQLmJqXQjluw8pUu5jho6X49" } ], "output": [ { - "content": "Your order 1042 will be delivered on Friday.", + "content": "Your order 1042 is scheduled for delivery on Friday.", "role": "assistant" } ], @@ -127,10 +127,10 @@ "turn.id": "" }, "metrics": { - "completion_tokens": 12, + "completion_tokens": 13, "prompt_tokens": 125, "time_to_first_token": 0, - "tokens": 137 + "tokens": 138 } }, { @@ -150,7 +150,7 @@ "contrib.livekit.function_tool.name": "lookup_order", "gen_ai.agent.name": "default_agent", "gen_ai.operation.name": "execute_tool", - "gen_ai.tool.call.id": "call_BkfCAV8jhVgzswMe2B76auwE", + "gen_ai.tool.call.id": "call_HQLmJqXQjluw8pUu5jho6X49", "gen_ai.tool.name": "lookup_order", "gen_ai.tool.type": "function", "links": [ @@ -203,7 +203,7 @@ "children": [], "output": [ { - "content": "Your order 1042 will be delivered on Friday.", + "content": "Your order 1042 is scheduled for delivery on Friday.", "role": "assistant" } ], diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt index 65d8fd6cb..bd9de0996 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-order.span-tree.txt @@ -216,12 +216,12 @@ span_tree: │ │ { │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", │ │ "role": "tool", - │ │ "tool_call_id": "call_BkfCAV8jhVgzswMe2B76auwE" + │ │ "tool_call_id": "call_HQLmJqXQjluw8pUu5jho6X49" │ │ } │ │ ] │ │ output: [ │ │ { - │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "content": "Your order 1042 is scheduled for delivery on Friday.", │ │ "role": "assistant" │ │ } │ │ ] @@ -253,10 +253,10 @@ span_tree: │ │ "turn.id": "" │ │ } │ │ metrics: { - │ │ "completion_tokens": 12, + │ │ "completion_tokens": 13, │ │ "prompt_tokens": 125, │ │ "time_to_first_token": 0, - │ │ "tokens": 137 + │ │ "tokens": 138 │ │ } │ ├── lookup_order [tool] │ │ input: { @@ -272,7 +272,7 @@ span_tree: │ │ "contrib.livekit.function_tool.name": "lookup_order", │ │ "gen_ai.agent.name": "default_agent", │ │ "gen_ai.operation.name": "execute_tool", - │ │ "gen_ai.tool.call.id": "call_BkfCAV8jhVgzswMe2B76auwE", + │ │ "gen_ai.tool.call.id": "call_HQLmJqXQjluw8pUu5jho6X49", │ │ "gen_ai.tool.name": "lookup_order", │ │ "gen_ai.tool.type": "function", │ │ "links": [ @@ -317,7 +317,7 @@ span_tree: │ └── agent_speech [task] │ output: [ │ { - │ "content": "Your order 1042 will be delivered on Friday.", + │ "content": "Your order 1042 is scheduled for delivery on Friday.", │ "role": "assistant" │ } │ ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json index 71dd119ac..bec57919f 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.json @@ -90,12 +90,12 @@ { "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", "role": "tool", - "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" + "tool_call_id": "call_GqsRFv0PbsPUIykmjf3gTiNJ" } ], "output": [ { - "content": "Your order 1042 will be delivered on Friday.", + "content": "The order will be delivered on Friday.", "role": "assistant" } ], @@ -127,10 +127,10 @@ "turn.id": "" }, "metrics": { - "completion_tokens": 12, + "completion_tokens": 9, "prompt_tokens": 125, "time_to_first_token": 0, - "tokens": 137 + "tokens": 134 } }, { @@ -150,7 +150,7 @@ "contrib.livekit.function_tool.name": "lookup_order", "gen_ai.agent.name": "default_agent", "gen_ai.operation.name": "execute_tool", - "gen_ai.tool.call.id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd", + "gen_ai.tool.call.id": "call_GqsRFv0PbsPUIykmjf3gTiNJ", "gen_ai.tool.name": "lookup_order", "gen_ai.tool.type": "function", "links": [ @@ -316,10 +316,10 @@ { "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", "role": "tool", - "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" + "tool_call_id": "call_GqsRFv0PbsPUIykmjf3gTiNJ" }, { - "content": "Your order 1042 will be delivered on Friday.", + "content": "The order will be delivered on Friday.", "role": "assistant" }, { @@ -329,7 +329,7 @@ ], "output": [ { - "content": "Your order 1042 will be delivered on Friday.", + "content": "The delivery day is Friday.", "role": "assistant" } ], @@ -371,10 +371,10 @@ "turn.id": "" }, "metrics": { - "completion_tokens": 12, - "prompt_tokens": 152, + "completion_tokens": 7, + "prompt_tokens": 149, "time_to_first_token": 0, - "tokens": 164 + "tokens": 156 } }, { @@ -410,7 +410,7 @@ "children": [], "output": [ { - "content": "Your order 1042 will be delivered on Friday.", + "content": "The delivery day is Friday.", "role": "assistant" } ], diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt index d24c8443b..827fbf9a7 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-recovered.span-tree.txt @@ -245,12 +245,12 @@ span_tree: │ │ { │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", │ │ "role": "tool", - │ │ "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" + │ │ "tool_call_id": "call_GqsRFv0PbsPUIykmjf3gTiNJ" │ │ } │ │ ] │ │ output: [ │ │ { - │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "content": "The order will be delivered on Friday.", │ │ "role": "assistant" │ │ } │ │ ] @@ -282,10 +282,10 @@ span_tree: │ │ "turn.id": "" │ │ } │ │ metrics: { - │ │ "completion_tokens": 12, + │ │ "completion_tokens": 9, │ │ "prompt_tokens": 125, │ │ "time_to_first_token": 0, - │ │ "tokens": 137 + │ │ "tokens": 134 │ │ } │ ├── lookup_order [tool] │ │ input: { @@ -301,7 +301,7 @@ span_tree: │ │ "contrib.livekit.function_tool.name": "lookup_order", │ │ "gen_ai.agent.name": "default_agent", │ │ "gen_ai.operation.name": "execute_tool", - │ │ "gen_ai.tool.call.id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd", + │ │ "gen_ai.tool.call.id": "call_GqsRFv0PbsPUIykmjf3gTiNJ", │ │ "gen_ai.tool.name": "lookup_order", │ │ "gen_ai.tool.type": "function", │ │ "links": [ @@ -442,10 +442,10 @@ span_tree: │ │ { │ │ "content": "{\"order_id\":\"1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", │ │ "role": "tool", - │ │ "tool_call_id": "call_0RwgHcEEw5E8ZuTCXMToa8Xd" + │ │ "tool_call_id": "call_GqsRFv0PbsPUIykmjf3gTiNJ" │ │ }, │ │ { - │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "content": "The order will be delivered on Friday.", │ │ "role": "assistant" │ │ }, │ │ { @@ -455,7 +455,7 @@ span_tree: │ │ ] │ │ output: [ │ │ { - │ │ "content": "Your order 1042 will be delivered on Friday.", + │ │ "content": "The delivery day is Friday.", │ │ "role": "assistant" │ │ } │ │ ] @@ -497,10 +497,10 @@ span_tree: │ │ "turn.id": "" │ │ } │ │ metrics: { - │ │ "completion_tokens": 12, - │ │ "prompt_tokens": 152, + │ │ "completion_tokens": 7, + │ │ "prompt_tokens": 149, │ │ "time_to_first_token": 0, - │ │ "tokens": 164 + │ │ "tokens": 156 │ │ } │ ├── tts [task] │ │ metadata: { @@ -528,7 +528,7 @@ span_tree: │ └── agent_speech [task] │ output: [ │ { - │ "content": "Your order 1042 will be delivered on Friday.", + │ "content": "The delivery day is Friday.", │ "role": "assistant" │ } │ ] diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json index 004c21be5..d9526e3fc 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.json @@ -84,6 +84,63 @@ "contrib.livekit.provider_request_ids": [ "" ], + "contrib.livekit.stt.events": [ + { + "received_at": 0, + "transcript_length": 5, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 8, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 11, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 17, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 18, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 20, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 22, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 25, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 26, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 27, + "type": "interim_transcript" + }, + { + "received_at": 0, + "transcript_length": 27, + "type": "final_transcript" + } + ], "contrib.livekit.transcript_confidence": 1, "contrib.livekit.transcription_delay": 0, "gen_ai.provider.name": "", @@ -211,12 +268,12 @@ { "content": "{\"order_id\":\"DMO1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", "role": "tool", - "tool_call_id": "call_4tFPyMMP6FxlSRzxe4Akq7st" + "tool_call_id": "call_Ie5qm8NbeCNBc2WpfJcc08G4" } ], "output": [ { - "content": "Your order DMO1042 is scheduled for delivery on Friday.", + "content": "Your order DMO1042 will be delivered on Friday.", "role": "assistant" } ], @@ -259,10 +316,10 @@ "turn.reply_to": "" }, "metrics": { - "completion_tokens": 14, + "completion_tokens": 13, "prompt_tokens": 127, "time_to_first_token": 0, - "tokens": 141 + "tokens": 140 } }, { @@ -282,7 +339,7 @@ "contrib.livekit.function_tool.name": "lookup_order", "gen_ai.agent.name": "default_agent", "gen_ai.operation.name": "execute_tool", - "gen_ai.tool.call.id": "call_4tFPyMMP6FxlSRzxe4Akq7st", + "gen_ai.tool.call.id": "call_Ie5qm8NbeCNBc2WpfJcc08G4", "gen_ai.tool.name": "lookup_order", "gen_ai.tool.type": "function", "links": [ @@ -337,7 +394,7 @@ "children": [], "output": [ { - "content": "Your order DMO1042 is scheduled for delivery on Friday.", + "content": "Your order DMO1042 will be delivered on Friday.", "role": "assistant" } ], diff --git a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt index 1d1cafe13..a8e6f52ad 100644 --- a/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt +++ b/e2e/scenarios/livekit-instrumentation/__snapshots__/livekit-v1-latest-streaming-cascade.span-tree.txt @@ -125,6 +125,63 @@ span_tree: │ "contrib.livekit.provider_request_ids": [ │ "" │ ], + │ "contrib.livekit.stt.events": [ + │ { + │ "received_at": 0, + │ "transcript_length": 5, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 8, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 11, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 17, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 18, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 20, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 22, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 25, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 26, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 27, + │ "type": "interim_transcript" + │ }, + │ { + │ "received_at": 0, + │ "transcript_length": 27, + │ "type": "final_transcript" + │ } + │ ], │ "contrib.livekit.transcript_confidence": 1, │ "contrib.livekit.transcription_delay": 0, │ "gen_ai.provider.name": "", @@ -343,12 +400,12 @@ span_tree: │ { │ "content": "{\"order_id\":\"DMO1042\",\"status\":\"in_transit\",\"delivery\":\"Friday\"}", │ "role": "tool", - │ "tool_call_id": "call_4tFPyMMP6FxlSRzxe4Akq7st" + │ "tool_call_id": "call_Ie5qm8NbeCNBc2WpfJcc08G4" │ } │ ] │ output: [ │ { - │ "content": "Your order DMO1042 is scheduled for delivery on Friday.", + │ "content": "Your order DMO1042 will be delivered on Friday.", │ "role": "assistant" │ } │ ] @@ -391,10 +448,10 @@ span_tree: │ "turn.reply_to": "" │ } │ metrics: { - │ "completion_tokens": 14, + │ "completion_tokens": 13, │ "prompt_tokens": 127, │ "time_to_first_token": 0, - │ "tokens": 141 + │ "tokens": 140 │ } ├── lookup_order [tool] │ input: { @@ -410,7 +467,7 @@ span_tree: │ "contrib.livekit.function_tool.name": "lookup_order", │ "gen_ai.agent.name": "default_agent", │ "gen_ai.operation.name": "execute_tool", - │ "gen_ai.tool.call.id": "call_4tFPyMMP6FxlSRzxe4Akq7st", + │ "gen_ai.tool.call.id": "call_Ie5qm8NbeCNBc2WpfJcc08G4", │ "gen_ai.tool.name": "lookup_order", │ "gen_ai.tool.type": "function", │ "links": [ @@ -457,7 +514,7 @@ span_tree: └── agent_speech [task] output: [ { - "content": "Your order DMO1042 is scheduled for delivery on Friday.", + "content": "Your order DMO1042 will be delivered on Friday.", "role": "assistant" } ] diff --git a/e2e/scenarios/livekit-instrumentation/package.json b/e2e/scenarios/livekit-instrumentation/package.json index eceb2f522..be73f668e 100644 --- a/e2e/scenarios/livekit-instrumentation/package.json +++ b/e2e/scenarios/livekit-instrumentation/package.json @@ -6,18 +6,17 @@ "dependencies": { "livekit-v1-latest": { "package": "@livekit/agents", - "range": "~1.9.1" + "range": "~1.9.1", + "targetDependency": "@livekit/agents", + "targetManifest": "versions/livekit-v1-latest/package.json" + }, + "livekit-openai-v1-latest": { + "package": "@livekit/agents-plugin-openai", + "range": "~1.9.1", + "targetDependency": "@livekit/agents-plugin-openai", + "targetManifest": "versions/livekit-v1-latest/package.json" } } } - }, - "dependencies": { - "livekit-v1": "npm:@livekit/agents@1.9.1", - "livekit-v1-latest": "npm:@livekit/agents@1.9.1", - "@livekit/rtc-node": "1.1.0", - "@opentelemetry/sdk-trace-node": "2.0.1", - "@livekit/agents-plugin-openai": "1.9.1", - "zod": "3.25.76", - "ws": "8.18.3" } } diff --git a/e2e/scenarios/livekit-instrumentation/pnpm-lock.yaml b/e2e/scenarios/livekit-instrumentation/pnpm-lock.yaml index 76e95fdca..9b60ae178 100644 --- a/e2e/scenarios/livekit-instrumentation/pnpm-lock.yaml +++ b/e2e/scenarios/livekit-instrumentation/pnpm-lock.yaml @@ -6,2019 +6,4 @@ settings: importers: - .: - dependencies: - '@livekit/agents-plugin-openai': - specifier: 1.9.1 - version: 1.9.1(@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76))(@livekit/rtc-node@1.1.0)(zod@3.25.76) - '@livekit/rtc-node': - specifier: 1.1.0 - version: 1.1.0 - '@opentelemetry/sdk-trace-node': - specifier: 2.0.1 - version: 2.0.1(@opentelemetry/api@1.9.1) - livekit-v1: - specifier: npm:@livekit/agents@1.9.1 - version: '@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76)' - livekit-v1-latest: - specifier: npm:@livekit/agents@1.9.1 - version: '@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76)' - ws: - specifier: 8.18.3 - version: 8.18.3 - zod: - specifier: 3.25.76 - version: 3.25.76 - -packages: - - '@bufbuild/protobuf@1.10.1': - resolution: {integrity: sha512-wJ8ReQbHxsAfXhrf9ixl0aYbZorRuOWpBNzm8pL8ftmSxQx/wnJD5Eg861NwJU/czy2VXFIebCeZnZrI9rktIQ==} - - '@datastructures-js/deque@1.0.8': - resolution: {integrity: sha512-PSBhJ2/SmeRPRHuBv7i/fHWIdSC3JTyq56qb+Rq0wjOagi0/fdV5/B/3Md5zFZus/W6OkSPMaxMKKMNMrSmubg==} - - '@emnapi/runtime@1.11.3': - resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} - - '@img/colour@1.1.0': - resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} - engines: {node: '>=18'} - - '@img/sharp-darwin-arm64@0.35.4': - resolution: {integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==} - engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.35.4': - resolution: {integrity: sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==} - engines: {node: '>=20.9.0'} - cpu: [x64] - os: [darwin] - - '@img/sharp-freebsd-wasm32@0.35.4': - resolution: {integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==} - engines: {node: '>=20.9.0'} - os: [freebsd] - - '@img/sharp-libvips-darwin-arm64@1.3.3': - resolution: {integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.3.3': - resolution: {integrity: sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.3.3': - resolution: {integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-arm@1.3.3': - resolution: {integrity: sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-ppc64@1.3.3': - resolution: {integrity: sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-riscv64@1.3.3': - resolution: {integrity: sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-s390x@1.3.3': - resolution: {integrity: sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linux-x64@1.3.3': - resolution: {integrity: sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@img/sharp-libvips-linuxmusl-arm64@1.3.3': - resolution: {integrity: sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@img/sharp-libvips-linuxmusl-x64@1.3.3': - resolution: {integrity: sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@img/sharp-linux-arm64@0.35.4': - resolution: {integrity: sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==} - engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-arm@0.35.4': - resolution: {integrity: sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==} - engines: {node: '>=20.9.0'} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-ppc64@0.35.4': - resolution: {integrity: sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==} - engines: {node: '>=20.9.0'} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-riscv64@0.35.4': - resolution: {integrity: sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==} - engines: {node: '>=20.9.0'} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-s390x@0.35.4': - resolution: {integrity: sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==} - engines: {node: '>=20.9.0'} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@img/sharp-linux-x64@0.35.4': - resolution: {integrity: sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==} - engines: {node: '>=20.9.0'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@img/sharp-linuxmusl-arm64@0.35.4': - resolution: {integrity: sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==} - engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@img/sharp-linuxmusl-x64@0.35.4': - resolution: {integrity: sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==} - engines: {node: '>=20.9.0'} - cpu: [x64] - os: [linux] - libc: [musl] - - '@img/sharp-wasm32@0.35.4': - resolution: {integrity: sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==} - engines: {node: '>=20.9.0'} - - '@img/sharp-webcontainers-wasm32@0.35.4': - resolution: {integrity: sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==} - engines: {node: '>=20.9.0'} - cpu: [wasm32] - - '@img/sharp-win32-arm64@0.35.4': - resolution: {integrity: sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==} - engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [win32] - - '@img/sharp-win32-ia32@0.35.4': - resolution: {integrity: sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==} - engines: {node: ^20.9.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.35.4': - resolution: {integrity: sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==} - engines: {node: '>=20.9.0'} - cpu: [x64] - os: [win32] - - '@livekit/agents-plugin-openai@1.9.1': - resolution: {integrity: sha512-sspmJ9aQiW/tNdMrYy81xRMT89Z375uXRzZJbKwOH751PrPj5mP7kqRXrTYN6AmqO2rKwZ2d/9mVavoKONPQ6w==} - peerDependencies: - '@livekit/agents': 1.9.1 - '@livekit/rtc-node': ^1.1.0 - zod: ^3.25.76 || ^4.1.8 - - '@livekit/agents@1.9.1': - resolution: {integrity: sha512-M8AxdKwzYzE9maO2cfPtGIXGqt9lpb3rsnBnC0vxZwRND+4y/GcW0t+c5CFDZGPHJ45bKvKALqI5aWnpCwgmWg==} - hasBin: true - peerDependencies: - '@livekit/rtc-node': ^1.1.0 - zod: ^3.25.76 || ^4.1.8 - - '@livekit/av-darwin-arm64@10.0.0': - resolution: {integrity: sha512-wf6C/eMKzZT88/4HvOlGZJMA/C5mewKlGG56HMJaAP6U/gUHRVDagDvce7+sZWz5RMsj2CAMUWZ+jiF1UgAAxA==} - cpu: [arm64] - os: [darwin] - - '@livekit/av-darwin-x64@10.0.0': - resolution: {integrity: sha512-Muw1jR+dpRHi0FLu8fHOCxDP/F/xGz1KOO9iIjAV+ObBCj0iPb1zXItWlpcVweU6JiaJpRN2HoI5FKpX+w0UeQ==} - cpu: [x64] - os: [darwin] - - '@livekit/av-linux-arm64@10.0.0': - resolution: {integrity: sha512-HVnzYLSKFrrR49epK37fV8eIbPuuWqbGoC7xXbmw0ziag1z0xUEZt072EEvmLcuCYMlX93At0se7Glh507751g==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@livekit/av-linux-x64@10.0.0': - resolution: {integrity: sha512-ZODmZ2bhfzjGrYF5KpwK7QHoaSVH96cX0o8sOGQT73VpgUCMDzcH+OSZWOlgFwUozk4jT/pjLfgGGPZtD2Dj7w==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@livekit/av-win32-x64@10.0.0': - resolution: {integrity: sha512-zvgdIvuu8C5aM+rSkOTZLKqX0FsYaN5CXKysmkKLU+pEDz+pIzkFelxPYX7YreV111aTAY19Dzj2i0KGEFnOSQ==} - cpu: [x64] - os: [win32] - - '@livekit/av@10.0.0': - resolution: {integrity: sha512-i39au9JY9qqZ9b0yKa5+2E3BQD9JtbGlCxqDbSvFjxprdHTdP96NgsLHOViwLk84J+eCLIyNzcGw5G3zIK2ZhQ==} - engines: {node: '>=18.0.0'} - - '@livekit/local-inference-darwin-arm64@0.2.7': - resolution: {integrity: sha512-di4SAKcV/i9tCozvbtwZLBtRPAJYWCcLNNVWduqAQSaV2/klT2CZsGpoN0s7t8NamvL78q1LxzL2iJVc6pc75g==} - cpu: [arm64] - os: [darwin] - - '@livekit/local-inference-darwin-x64@0.2.7': - resolution: {integrity: sha512-5e2HnjLSOwh1QfHQKbAgy0HDxAZhpOMLpwcUSXWIPeQEGOu+iu0s1f8xsRvz/LWxPOsZJn0bxFkfadnh5dvPMg==} - cpu: [x64] - os: [darwin] - - '@livekit/local-inference-linux-arm64-gnu@0.2.7': - resolution: {integrity: sha512-zUP9RverLt66kQ9slr+T3FY1Ad9IwJ3BPnJsEB/NxUeflq5g0dbUjIjGvjBCL6DktqLRyXixEJx1J5QUKUWUsw==} - cpu: [arm64] - os: [linux] - - '@livekit/local-inference-linux-x64-gnu@0.2.7': - resolution: {integrity: sha512-QG/0k0BwqnSz/qMU+Z/k0411iXkbVEdZ8XMBPjZGOorVYTQuMlovYd9hkSZvgnD84o/xeAMJekC6NcXv45FlGg==} - cpu: [x64] - os: [linux] - - '@livekit/local-inference-win32-x64-msvc@0.2.7': - resolution: {integrity: sha512-8KB0xfDgYstfvOtAshRsL0zRkwGOIGzOI4NqGMq1HBr+3wMuCrVEjspjpHvuMHCYVzihprE9L/ivYqpXBAGrXw==} - cpu: [x64] - os: [win32] - - '@livekit/local-inference@0.2.7': - resolution: {integrity: sha512-3XniFtpZHiIlAgVibhIU1YDaHbh8uScYojwtqaI1Em440w+fzix3wPXLv+IPePAmuusJzvHLrEFaTwojaBLk4w==} - engines: {node: '>=18.0.0'} - - '@livekit/mutex@1.1.1': - resolution: {integrity: sha512-EsshAucklmpuUAfkABPxJNhzj9v2sG7JuzFDL4ML1oJQSV14sqrpTYnsaOudMAw9yOaW53NU3QQTlUQoRs4czw==} - - '@livekit/protocol@1.51.0': - resolution: {integrity: sha512-kEDEDaFvIcp5VlYBromdSKMJMEJKfPvXPfEaJPdEz1Qgo84gZAoLF2g58CcMlVYGsjrwE5XYgQxRS5B7KuEj3w==} - - '@livekit/protocol@1.52.1': - resolution: {integrity: sha512-X8DxKlNbzk6Lh+v630+mjdFHSotdAFwIyzxSRSUql2DbTxCnlpa7JsvFGc6Na3mXiex2OFh0iiQtWwOBP0rIYA==} - - '@livekit/rtc-ffi-bindings-darwin-arm64@0.12.73': - resolution: {integrity: sha512-gIGftVyO1Jl266AZPRzoL6dxck969dmIiaut3+D1aCZRkDb/gLz98BEGRfOSU3X0LS4QBkmiaYWsjN9ot/zmwg==} - engines: {node: '>= 18'} - cpu: [arm64] - os: [darwin] - - '@livekit/rtc-ffi-bindings-darwin-x64@0.12.73': - resolution: {integrity: sha512-esPwYCbUnDD/KxBo0YU8awTFglRG7SvOT/sfiP19KChS5SH8TgXc7JwfSvnjRx1PndUqHFzQAbQDcYaeL9PFTg==} - engines: {node: '>= 18'} - cpu: [x64] - os: [darwin] - - '@livekit/rtc-ffi-bindings-linux-arm64-gnu@0.12.73': - resolution: {integrity: sha512-2YBatXjuaumnaNVqRC63flX5XZTvHcQWRsABw6e2yp+Hlxl3ocjVVyk5PrAsRzCdeyxbHLduqV9ctqGbpTA27Q==} - engines: {node: '>= 18'} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@livekit/rtc-ffi-bindings-linux-x64-gnu@0.12.73': - resolution: {integrity: sha512-BrP3IyNkcjldeO+SbnF0hX2mipst8aHiBIiGJcQCd8HEjsaabfkYk4Y5uoNsTVMrUSyrNrJte2itAhuxP9FCSA==} - engines: {node: '>= 18'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@livekit/rtc-ffi-bindings-win32-x64-msvc@0.12.73': - resolution: {integrity: sha512-2RnKXMTnNfvjJ3kbuhE1jqFNAQNmqSrxy3GlEnByY61tbtY14QPFn8X/0lh+Mjst8pZdfxkXvtbRyPt5KYHvMA==} - engines: {node: '>= 18'} - cpu: [x64] - os: [win32] - - '@livekit/rtc-ffi-bindings@0.12.73': - resolution: {integrity: sha512-ZxkCQlsfTG7Eqi6KBXulEWJBUxeRVRYqCc795CsmKsGfqmBX5gE5CnTiynN8fFdzSGwApaVogeGSB6JszCf/Xw==} - engines: {node: '>= 18'} - - '@livekit/rtc-node@1.1.0': - resolution: {integrity: sha512-KFNvPz7qQSJBTttDukanhMJ+bCNxj6O3A3fXl6GJvOEamJJk7GqKCWgAdLW3JLjuT1pPQDyQPJJnYdR25N+MXA==} - engines: {node: '>= 18'} - - '@livekit/throws-transformer@0.1.8': - resolution: {integrity: sha512-AaSwQfIaG6YArKOCO+5/DgI8HfL19oHdrkyI0LJJVCqGeZXzPsZIO/Nm/SKUHbT1ERGhF5c34X8CcVWeOePpIQ==} - hasBin: true - peerDependencies: - typescript: '>=4.7.0' - - '@livekit/typed-emitter@3.0.0': - resolution: {integrity: sha512-9bl0k4MgBPZu3Qu3R3xy12rmbW17e3bE9yf4YY85gJIQ3ezLEj/uzpKHWBsLaDoL5Mozz8QCgggwIBudYQWeQg==} - - '@opentelemetry/api-logs@0.220.0': - resolution: {integrity: sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==} - engines: {node: '>=8.0.0'} - - '@opentelemetry/api@1.9.1': - resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} - engines: {node: '>=8.0.0'} - - '@opentelemetry/context-async-hooks@2.0.1': - resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/context-async-hooks@2.11.0': - resolution: {integrity: sha512-Tr79DyWI8itsBdg+jH+opjfrwLzX+erk1/ExkIwhWoAVjVrJIn2y5+cGjTC0Vy8fyNIA/y8wuJPZwr1T3xCZeQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/core@2.0.1': - resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/core@2.11.0': - resolution: {integrity: sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/core@2.9.0': - resolution: {integrity: sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/exporter-logs-otlp-proto@0.220.0': - resolution: {integrity: sha512-8LZAxdJ0ENDAFwr4j0oY35mHBltiSzvlhdQAPGiC7p9VnxtuSq4SW1gfBAdW6t6hiQG6OwUl8w7KHaOdJPKHWg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-metrics-otlp-http@0.220.0': - resolution: {integrity: sha512-Yqt3RBw/bRVncaE9qIIhk4WfjbAQqXuP9FgAaU+IKPndnLEp/cUqZlSC324+bpmduRz7DoTjig8Ub0PeILWXUA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-metrics-otlp-proto@0.220.0': - resolution: {integrity: sha512-lyO+IQBdSvqHN/ZOW/OzrSWemtfD+HgWngn+HBNLhjy0YrCQQTz0OE/kSekH2Pl340dn9DWzhqHdz5Eftr+HLA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/exporter-trace-otlp-proto@0.220.0': - resolution: {integrity: sha512-voTAD8XgJxlK7zLkXh8EzMB09zrQr3tyY/BsnDTlDiQU/UdK58MZ63A3mUjdEDrxMjCVmBHU3WQJhRmQe+Dvzg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-pino@0.66.0': - resolution: {integrity: sha512-RMAtAYuyouaMbHkQG8E97nJfwHftxmCbOURdD3n5s2Yd5zctLNudXB5hAfW18lsfUbePwQCND6QUXZixFN92Pw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation@0.220.0': - resolution: {integrity: sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-exporter-base@0.220.0': - resolution: {integrity: sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-transformer@0.220.0': - resolution: {integrity: sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/resources@2.0.1': - resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/resources@2.11.0': - resolution: {integrity: sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/resources@2.9.0': - resolution: {integrity: sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-logs@0.220.0': - resolution: {integrity: sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.10.0' - - '@opentelemetry/sdk-metrics@2.11.0': - resolution: {integrity: sha512-7GXXcObyHyDUUSG+L+kJoquty01bzm7ivE7+SSgXXJcHuPzGviptxwARmI2c+bnnxjexGQbJnyNlN8HxBP/Y7A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.9.0 <1.10.0' - - '@opentelemetry/sdk-metrics@2.9.0': - resolution: {integrity: sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.9.0 <1.10.0' - - '@opentelemetry/sdk-trace-base@2.0.1': - resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-trace-base@2.11.0': - resolution: {integrity: sha512-H19x/TX/LZdqiYOjM7fqtSxwlplC5pgelavqbQdHbhdq0q/AI/TGkM2dfGuuynTXmJPeF2HoZVoPDu+TGoW78A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-trace-node@2.0.1': - resolution: {integrity: sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/sdk-trace-node@2.11.0': - resolution: {integrity: sha512-CuvCMJmZxswhNLlM2LfuLOW3h3fZujA4hsG4B+Sz4dX2zvaXO8Ng74cnDHWD64gLszTlhiG3c0iNUjj4g+0/sA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/sdk-trace@2.11.0': - resolution: {integrity: sha512-fFnTqGm8/G73GQVnxYi7LXa1ZVYEUvgL6XI1LpvV0bPC7WQ/ZGgKxCSl8FnlZBKto9JHHEFTO6s6CUpvvtwFrA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-trace@2.9.0': - resolution: {integrity: sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/semantic-conventions@1.43.0': - resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} - engines: {node: '>=14'} - - '@pinojs/redact@0.4.0': - resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} - - '@types/pidusage@2.0.5': - resolution: {integrity: sha512-MIiyZI4/MK9UGUXWt0jJcCZhVw7YdhBuTOuqP/BjuLDLZ2PmmViMIQgZiWxtaMicQfAz/kMrZ5T7PKxFSkTeUA==} - - '@typescript/typescript-aix-ppc64@7.0.2': - resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} - engines: {node: '>=16.20.0'} - cpu: [ppc64] - os: [aix] - - '@typescript/typescript-darwin-arm64@7.0.2': - resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [darwin] - - '@typescript/typescript-darwin-x64@7.0.2': - resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [darwin] - - '@typescript/typescript-freebsd-arm64@7.0.2': - resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [freebsd] - - '@typescript/typescript-freebsd-x64@7.0.2': - resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [freebsd] - - '@typescript/typescript-linux-arm64@7.0.2': - resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [linux] - - '@typescript/typescript-linux-arm@7.0.2': - resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} - engines: {node: '>=16.20.0'} - cpu: [arm] - os: [linux] - - '@typescript/typescript-linux-loong64@7.0.2': - resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} - engines: {node: '>=16.20.0'} - cpu: [loong64] - os: [linux] - - '@typescript/typescript-linux-mips64el@7.0.2': - resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} - engines: {node: '>=16.20.0'} - cpu: [mips64el] - os: [linux] - - '@typescript/typescript-linux-ppc64@7.0.2': - resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} - engines: {node: '>=16.20.0'} - cpu: [ppc64] - os: [linux] - - '@typescript/typescript-linux-riscv64@7.0.2': - resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} - engines: {node: '>=16.20.0'} - cpu: [riscv64] - os: [linux] - - '@typescript/typescript-linux-s390x@7.0.2': - resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} - engines: {node: '>=16.20.0'} - cpu: [s390x] - os: [linux] - - '@typescript/typescript-linux-x64@7.0.2': - resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [linux] - - '@typescript/typescript-netbsd-arm64@7.0.2': - resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [netbsd] - - '@typescript/typescript-netbsd-x64@7.0.2': - resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [netbsd] - - '@typescript/typescript-openbsd-arm64@7.0.2': - resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [openbsd] - - '@typescript/typescript-openbsd-x64@7.0.2': - resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [openbsd] - - '@typescript/typescript-sunos-x64@7.0.2': - resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [sunos] - - '@typescript/typescript-win32-arm64@7.0.2': - resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} - engines: {node: '>=16.20.0'} - cpu: [arm64] - os: [win32] - - '@typescript/typescript-win32-x64@7.0.2': - resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} - engines: {node: '>=16.20.0'} - cpu: [x64] - os: [win32] - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - async@0.2.10: - resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} - - balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} - engines: {node: 18 || 20 || >=22} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - brace-expansion@5.0.12: - resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} - engines: {node: 20 || >=22} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - cjs-module-lexer@2.2.1: - resolution: {integrity: sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} - - dateformat@4.6.3: - resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - destr@2.0.5: - resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} - engines: {node: '>=8'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-module-lexer@3.0.2: - resolution: {integrity: sha512-BuIB67FngDSyQ/dpQNOZybwdEBDUGJQvOqwWr4ha/ufYiqzuEwPkKO2zLhRAgay28tStRIHUeWmszZAJo3GCOg==} - - es-object-atoms@1.1.2: - resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - fast-copy@3.1.0: - resolution: {integrity: sha512-IuCOCDFM1F/s4LtG7Bjr3yUUwPHybyhqN74xk2cMYoP51vVeErMy8+6HGFchi/+45lW8uzhs6lBeEqks2GWt6A==} - - fast-copy@4.1.1: - resolution: {integrity: sha512-A4QTJmuiztpGtr6AMeJts9R4hbj2ZBUwtOaKrG6rw2y7t6+IaJKjz5M3XDs8BUznxDH43FVc6A0y/gWlMl4UtA==} - - fast-redact@3.5.0: - resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} - engines: {node: '>=6'} - - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - - fluent-ffmpeg@2.1.3: - resolution: {integrity: sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==} - engines: {node: '>=18'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - form-data@4.0.6: - resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} - engines: {node: '>= 6'} - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - glob@13.0.6: - resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} - engines: {node: 18 || 20 || >=22} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.4: - resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} - engines: {node: '>= 0.4'} - - heap-js@2.7.1: - resolution: {integrity: sha512-EQfezRg0NCZGNlhlDR3Evrw1FVL2G3LhU7EgPoxufQKruNBSYA8MiRPHeWbU+36o+Fhel0wMwM+sLEiBAlNLJA==} - engines: {node: '>=10.0.0'} - - help-me@5.0.0: - resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - import-in-the-middle@3.5.2: - resolution: {integrity: sha512-WseIA/4o56+GYO3RmlOPvejYi771OFeJEeK/ejROsr9bdjW+E5NXTOD1Di8TL40Qgg3JJX9aa97Hf8iiSVIKZw==} - engines: {node: '>=18'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jose@5.10.0: - resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - - jsonrepair@3.15.0: - resolution: {integrity: sha512-wy8OTjwsJwQRnQJkKnMJJ9vcytRdBPAgIF/Hy6+s1dAj42BHMKiyL8JzEieIl3JY7idt8eyHwBWTO8mh/+mtwA==} - hasBin: true - - livekit-server-sdk@2.19.1: - resolution: {integrity: sha512-tqjM5oPDDNBrkb/64YReta9UWP32l1a2m0HHXq8WOuEzwxh4zsaXjeZZtPG4Er4eVAk4kjR+EMxH7lPKzg1g6g==} - engines: {node: '>=19'} - - lru-cache@11.5.3: - resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==} - engines: {node: 20 || >=22} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - minimatch@10.2.6: - resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} - engines: {node: 18 || 20 || >=22} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@7.1.3: - resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} - engines: {node: '>=16 || 14 >=14.17'} - - module-details-from-path@1.0.4: - resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - node-fetch-native@1.6.7: - resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - - ofetch@1.5.1: - resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} - - on-exit-leak-free@2.1.2: - resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} - engines: {node: '>=14.0.0'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - openai@6.49.0: - resolution: {integrity: sha512-aYCc0C6L864eR6WSYIwQGyXriw/nIyZx0ObvhzOEVuk0zoBDpynjSbrionWI7q65B5H8jJX0DXR9snEzM6bfPg==} - peerDependencies: - '@aws-sdk/credential-provider-node': '>=3.972.0 <4' - '@smithy/hash-node': '>=4.3.0 <5' - '@smithy/signature-v4': '>=5.4.0 <6' - ws: ^8.18.0 - zod: ^3.25 || ^4.0 - peerDependenciesMeta: - '@aws-sdk/credential-provider-node': - optional: true - '@smithy/hash-node': - optional: true - '@smithy/signature-v4': - optional: true - ws: - optional: true - zod: - optional: true - - path-scurry@2.0.2: - resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} - engines: {node: 18 || 20 || >=22} - - pidusage@4.0.1: - resolution: {integrity: sha512-yCH2dtLHfEBnzlHUJymR/Z1nN2ePG3m392Mv8TFlTP1B0xkpMQNHAnfkY0n2tAi6ceKO6YWhxYfZ96V4vVkh/g==} - engines: {node: '>=18'} - - pino-abstract-transport@1.2.0: - resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} - - pino-abstract-transport@2.0.0: - resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} - - pino-abstract-transport@3.0.0: - resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} - - pino-pretty@11.3.0: - resolution: {integrity: sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==} - hasBin: true - - pino-pretty@13.1.3: - resolution: {integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==} - hasBin: true - - pino-std-serializers@6.2.2: - resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} - - pino-std-serializers@7.1.0: - resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==} - - pino@8.21.0: - resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} - hasBin: true - - pino@9.14.0: - resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} - hasBin: true - - process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} - - process-warning@5.1.0: - resolution: {integrity: sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - pump@3.0.4: - resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} - - quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - - readable-stream@4.7.0: - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - real-require@0.2.0: - resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} - engines: {node: '>= 12.13.0'} - - require-in-the-middle@8.0.1: - resolution: {integrity: sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==} - engines: {node: '>=9.3.0 || >=8.10.0 <9.0.0'} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} - - secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - - secure-json-parse@4.1.0: - resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} - - semver@7.8.5: - resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} - engines: {node: '>=10'} - hasBin: true - - sharp@0.35.4: - resolution: {integrity: sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==} - engines: {node: '>=20.9.0'} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - sonic-boom@3.8.1: - resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} - - sonic-boom@4.2.1: - resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strip-json-comments@5.0.3: - resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} - engines: {node: '>=14.16'} - - thread-stream@2.7.0: - resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} - - thread-stream@3.2.0: - resolution: {integrity: sha512-zLBvqpwr4Esa0kRjcrzGU6zL25lePWaCLMx0RQFrmteozIfeNdaMLpG5U7PeHzvlFkAWaRKA9/KVW4F60iB+qw==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - typescript@7.0.2: - resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} - engines: {node: '>=16.20.0'} - hasBin: true - - ufo@1.6.4: - resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.22.0: - resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - zod-to-json-schema@3.25.2: - resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} - peerDependencies: - zod: ^3.25.28 || ^4 - - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - -snapshots: - - '@bufbuild/protobuf@1.10.1': {} - - '@datastructures-js/deque@1.0.8': {} - - '@emnapi/runtime@1.11.3': - dependencies: - tslib: 2.8.1 - optional: true - - '@img/colour@1.1.0': {} - - '@img/sharp-darwin-arm64@0.35.4': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.3.3 - optional: true - - '@img/sharp-darwin-x64@0.35.4': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.3.3 - optional: true - - '@img/sharp-freebsd-wasm32@0.35.4': - dependencies: - '@img/sharp-wasm32': 0.35.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.3.3': - optional: true - - '@img/sharp-libvips-darwin-x64@1.3.3': - optional: true - - '@img/sharp-libvips-linux-arm64@1.3.3': - optional: true - - '@img/sharp-libvips-linux-arm@1.3.3': - optional: true - - '@img/sharp-libvips-linux-ppc64@1.3.3': - optional: true - - '@img/sharp-libvips-linux-riscv64@1.3.3': - optional: true - - '@img/sharp-libvips-linux-s390x@1.3.3': - optional: true - - '@img/sharp-libvips-linux-x64@1.3.3': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.3.3': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.3.3': - optional: true - - '@img/sharp-linux-arm64@0.35.4': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.3.3 - optional: true - - '@img/sharp-linux-arm@0.35.4': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.3.3 - optional: true - - '@img/sharp-linux-ppc64@0.35.4': - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.3.3 - optional: true - - '@img/sharp-linux-riscv64@0.35.4': - optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.3.3 - optional: true - - '@img/sharp-linux-s390x@0.35.4': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.3.3 - optional: true - - '@img/sharp-linux-x64@0.35.4': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.3.3 - optional: true - - '@img/sharp-linuxmusl-arm64@0.35.4': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 - optional: true - - '@img/sharp-linuxmusl-x64@0.35.4': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.3.3 - optional: true - - '@img/sharp-wasm32@0.35.4': - dependencies: - '@emnapi/runtime': 1.11.3 - optional: true - - '@img/sharp-webcontainers-wasm32@0.35.4': - dependencies: - '@img/sharp-wasm32': 0.35.4 - optional: true - - '@img/sharp-win32-arm64@0.35.4': - optional: true - - '@img/sharp-win32-ia32@0.35.4': - optional: true - - '@img/sharp-win32-x64@0.35.4': - optional: true - - '@livekit/agents-plugin-openai@1.9.1(@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76))(@livekit/rtc-node@1.1.0)(zod@3.25.76)': - dependencies: - '@livekit/agents': 1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76) - '@livekit/mutex': 1.1.1 - '@livekit/rtc-node': 1.1.0 - openai: 6.49.0(ws@8.22.0)(zod@3.25.76) - ws: 8.22.0 - zod: 3.25.76 - transitivePeerDependencies: - - '@aws-sdk/credential-provider-node' - - '@smithy/hash-node' - - '@smithy/signature-v4' - - bufferutil - - utf-8-validate - - '@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76)': - dependencies: - '@bufbuild/protobuf': 1.10.1 - '@livekit/av': 10.0.0 - '@livekit/local-inference': 0.2.7 - '@livekit/mutex': 1.1.1 - '@livekit/protocol': 1.52.1 - '@livekit/rtc-node': 1.1.0 - '@livekit/throws-transformer': 0.1.8(typescript@7.0.2) - '@livekit/typed-emitter': 3.0.0 - '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.220.0 - '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/exporter-logs-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/exporter-metrics-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/exporter-trace-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-pino': 0.66.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-metrics': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-node': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - '@types/pidusage': 2.0.5 - commander: 12.1.0 - fluent-ffmpeg: 2.1.3 - form-data: 4.0.6 - heap-js: 2.7.1 - json-schema: 0.4.0 - jsonrepair: 3.15.0 - livekit-server-sdk: 2.19.1 - ofetch: 1.5.1 - openai: 6.49.0(ws@8.22.0)(zod@3.25.76) - pidusage: 4.0.1 - pino: 8.21.0 - pino-pretty: 11.3.0 - sharp: 0.35.4 - ws: 8.22.0 - zod: 3.25.76 - zod-to-json-schema: 3.25.2(zod@3.25.76) - transitivePeerDependencies: - - '@aws-sdk/credential-provider-node' - - '@smithy/hash-node' - - '@smithy/signature-v4' - - '@types/node' - - bufferutil - - supports-color - - typescript - - utf-8-validate - - '@livekit/av-darwin-arm64@10.0.0': - optional: true - - '@livekit/av-darwin-x64@10.0.0': - optional: true - - '@livekit/av-linux-arm64@10.0.0': - optional: true - - '@livekit/av-linux-x64@10.0.0': - optional: true - - '@livekit/av-win32-x64@10.0.0': - optional: true - - '@livekit/av@10.0.0': - optionalDependencies: - '@livekit/av-darwin-arm64': 10.0.0 - '@livekit/av-darwin-x64': 10.0.0 - '@livekit/av-linux-arm64': 10.0.0 - '@livekit/av-linux-x64': 10.0.0 - '@livekit/av-win32-x64': 10.0.0 - - '@livekit/local-inference-darwin-arm64@0.2.7': - optional: true - - '@livekit/local-inference-darwin-x64@0.2.7': - optional: true - - '@livekit/local-inference-linux-arm64-gnu@0.2.7': - optional: true - - '@livekit/local-inference-linux-x64-gnu@0.2.7': - optional: true - - '@livekit/local-inference-win32-x64-msvc@0.2.7': - optional: true - - '@livekit/local-inference@0.2.7': - dependencies: - node-gyp-build: 4.8.4 - optionalDependencies: - '@livekit/local-inference-darwin-arm64': 0.2.7 - '@livekit/local-inference-darwin-x64': 0.2.7 - '@livekit/local-inference-linux-arm64-gnu': 0.2.7 - '@livekit/local-inference-linux-x64-gnu': 0.2.7 - '@livekit/local-inference-win32-x64-msvc': 0.2.7 - - '@livekit/mutex@1.1.1': {} - - '@livekit/protocol@1.51.0': - dependencies: - '@bufbuild/protobuf': 1.10.1 - - '@livekit/protocol@1.52.1': - dependencies: - '@bufbuild/protobuf': 1.10.1 - - '@livekit/rtc-ffi-bindings-darwin-arm64@0.12.73': - optional: true - - '@livekit/rtc-ffi-bindings-darwin-x64@0.12.73': - optional: true - - '@livekit/rtc-ffi-bindings-linux-arm64-gnu@0.12.73': - optional: true - - '@livekit/rtc-ffi-bindings-linux-x64-gnu@0.12.73': - optional: true - - '@livekit/rtc-ffi-bindings-win32-x64-msvc@0.12.73': - optional: true - - '@livekit/rtc-ffi-bindings@0.12.73': - dependencies: - '@bufbuild/protobuf': 1.10.1 - optionalDependencies: - '@livekit/rtc-ffi-bindings-darwin-arm64': 0.12.73 - '@livekit/rtc-ffi-bindings-darwin-x64': 0.12.73 - '@livekit/rtc-ffi-bindings-linux-arm64-gnu': 0.12.73 - '@livekit/rtc-ffi-bindings-linux-x64-gnu': 0.12.73 - '@livekit/rtc-ffi-bindings-win32-x64-msvc': 0.12.73 - - '@livekit/rtc-node@1.1.0': - dependencies: - '@datastructures-js/deque': 1.0.8 - '@livekit/mutex': 1.1.1 - '@livekit/rtc-ffi-bindings': 0.12.73 - '@livekit/typed-emitter': 3.0.0 - pino: 9.14.0 - pino-pretty: 13.1.3 - - '@livekit/throws-transformer@0.1.8(typescript@7.0.2)': - dependencies: - glob: 13.0.6 - typescript: 7.0.2 - - '@livekit/typed-emitter@3.0.0': {} - - '@opentelemetry/api-logs@0.220.0': - dependencies: - '@opentelemetry/api': 1.9.1 - - '@opentelemetry/api@1.9.1': {} - - '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - - '@opentelemetry/context-async-hooks@2.11.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - - '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/core@2.11.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/exporter-logs-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) - - '@opentelemetry/exporter-metrics-otlp-http@0.220.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) - - '@opentelemetry/exporter-metrics-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/exporter-metrics-otlp-http': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) - - '@opentelemetry/exporter-trace-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) - - '@opentelemetry/instrumentation-pino@0.66.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.220.0 - '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.220.0 - import-in-the-middle: 3.5.2 - require-in-the-middle: 8.0.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/otlp-exporter-base@0.220.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) - - '@opentelemetry/otlp-transformer@0.220.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.220.0 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) - - '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/resources@2.11.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/sdk-logs@0.220.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.220.0 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/sdk-metrics@2.11.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) - - '@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - - '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/sdk-trace-base@2.11.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.1) - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.1) - - '@opentelemetry/sdk-trace-node@2.11.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/context-async-hooks': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.11.0(@opentelemetry/api@1.9.1) - - '@opentelemetry/sdk-trace@2.11.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/sdk-trace@2.9.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.43.0 - - '@opentelemetry/semantic-conventions@1.43.0': {} - - '@pinojs/redact@0.4.0': {} - - '@types/pidusage@2.0.5': {} - - '@typescript/typescript-aix-ppc64@7.0.2': - optional: true - - '@typescript/typescript-darwin-arm64@7.0.2': - optional: true - - '@typescript/typescript-darwin-x64@7.0.2': - optional: true - - '@typescript/typescript-freebsd-arm64@7.0.2': - optional: true - - '@typescript/typescript-freebsd-x64@7.0.2': - optional: true - - '@typescript/typescript-linux-arm64@7.0.2': - optional: true - - '@typescript/typescript-linux-arm@7.0.2': - optional: true - - '@typescript/typescript-linux-loong64@7.0.2': - optional: true - - '@typescript/typescript-linux-mips64el@7.0.2': - optional: true - - '@typescript/typescript-linux-ppc64@7.0.2': - optional: true - - '@typescript/typescript-linux-riscv64@7.0.2': - optional: true - - '@typescript/typescript-linux-s390x@7.0.2': - optional: true - - '@typescript/typescript-linux-x64@7.0.2': - optional: true - - '@typescript/typescript-netbsd-arm64@7.0.2': - optional: true - - '@typescript/typescript-netbsd-x64@7.0.2': - optional: true - - '@typescript/typescript-openbsd-arm64@7.0.2': - optional: true - - '@typescript/typescript-openbsd-x64@7.0.2': - optional: true - - '@typescript/typescript-sunos-x64@7.0.2': - optional: true - - '@typescript/typescript-win32-arm64@7.0.2': - optional: true - - '@typescript/typescript-win32-x64@7.0.2': - optional: true - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - async@0.2.10: {} - - asynckit@0.4.0: {} - - atomic-sleep@1.0.0: {} - - balanced-match@4.0.4: {} - - base64-js@1.5.1: {} - - brace-expansion@5.0.12: - dependencies: - balanced-match: 4.0.4 - - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - cjs-module-lexer@2.2.1: {} - - colorette@2.0.20: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@12.1.0: {} - - dateformat@4.6.3: {} - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - delayed-stream@1.0.0: {} - - destr@2.0.5: {} - - detect-libc@2.1.2: {} - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - end-of-stream@1.4.5: - dependencies: - once: 1.4.0 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-module-lexer@3.0.2: {} - - es-object-atoms@1.1.2: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.4 - - event-target-shim@5.0.1: {} - - events@3.3.0: {} - - fast-copy@3.1.0: {} - - fast-copy@4.1.1: {} - - fast-redact@3.5.0: {} - - fast-safe-stringify@2.1.1: {} - - fluent-ffmpeg@2.1.3: - dependencies: - async: 0.2.10 - which: 1.3.1 - - form-data@4.0.6: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.4 - mime-types: 2.1.35 - - function-bind@1.1.2: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.2 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.4 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.2 - - glob@13.0.6: - dependencies: - minimatch: 10.2.6 - minipass: 7.1.3 - path-scurry: 2.0.2 - - gopd@1.2.0: {} - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.4: - dependencies: - function-bind: 1.1.2 - - heap-js@2.7.1: {} - - help-me@5.0.0: {} - - ieee754@1.2.1: {} - - import-in-the-middle@3.5.2: - dependencies: - cjs-module-lexer: 2.2.1 - es-module-lexer: 3.0.2 - module-details-from-path: 1.0.4 - - isexe@2.0.0: {} - - jose@5.10.0: {} - - joycon@3.1.1: {} - - json-schema@0.4.0: {} - - jsonrepair@3.15.0: {} - - livekit-server-sdk@2.19.1: - dependencies: - '@bufbuild/protobuf': 1.10.1 - '@livekit/protocol': 1.51.0 - jose: 5.10.0 - - lru-cache@11.5.3: {} - - math-intrinsics@1.1.0: {} - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - minimatch@10.2.6: - dependencies: - brace-expansion: 5.0.12 - - minimist@1.2.8: {} - - minipass@7.1.3: {} - - module-details-from-path@1.0.4: {} - - ms@2.1.3: {} - - node-fetch-native@1.6.7: {} - - node-gyp-build@4.8.4: {} - - ofetch@1.5.1: - dependencies: - destr: 2.0.5 - node-fetch-native: 1.6.7 - ufo: 1.6.4 - - on-exit-leak-free@2.1.2: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - openai@6.49.0(ws@8.22.0)(zod@3.25.76): - optionalDependencies: - ws: 8.22.0 - zod: 3.25.76 - - path-scurry@2.0.2: - dependencies: - lru-cache: 11.5.3 - minipass: 7.1.3 - - pidusage@4.0.1: - dependencies: - safe-buffer: 5.2.1 - - pino-abstract-transport@1.2.0: - dependencies: - readable-stream: 4.7.0 - split2: 4.2.0 - - pino-abstract-transport@2.0.0: - dependencies: - split2: 4.2.0 - - pino-abstract-transport@3.0.0: - dependencies: - split2: 4.2.0 - - pino-pretty@11.3.0: - dependencies: - colorette: 2.0.20 - dateformat: 4.6.3 - fast-copy: 3.1.0 - fast-safe-stringify: 2.1.1 - help-me: 5.0.0 - joycon: 3.1.1 - minimist: 1.2.8 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 - pump: 3.0.4 - readable-stream: 4.7.0 - secure-json-parse: 2.7.0 - sonic-boom: 4.2.1 - strip-json-comments: 3.1.1 - - pino-pretty@13.1.3: - dependencies: - colorette: 2.0.20 - dateformat: 4.6.3 - fast-copy: 4.1.1 - fast-safe-stringify: 2.1.1 - help-me: 5.0.0 - joycon: 3.1.1 - minimist: 1.2.8 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 3.0.0 - pump: 3.0.4 - secure-json-parse: 4.1.0 - sonic-boom: 4.2.1 - strip-json-comments: 5.0.3 - - pino-std-serializers@6.2.2: {} - - pino-std-serializers@7.1.0: {} - - pino@8.21.0: - dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.5.0 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 1.2.0 - pino-std-serializers: 6.2.2 - process-warning: 3.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.5.0 - sonic-boom: 3.8.1 - thread-stream: 2.7.0 - - pino@9.14.0: - dependencies: - '@pinojs/redact': 0.4.0 - atomic-sleep: 1.0.0 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 - pino-std-serializers: 7.1.0 - process-warning: 5.1.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.5.0 - sonic-boom: 4.2.1 - thread-stream: 3.2.0 - - process-warning@3.0.0: {} - - process-warning@5.1.0: {} - - process@0.11.10: {} - - pump@3.0.4: - dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - - quick-format-unescaped@4.0.4: {} - - readable-stream@4.7.0: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - - real-require@0.2.0: {} - - require-in-the-middle@8.0.1: - dependencies: - debug: 4.4.3 - module-details-from-path: 1.0.4 - transitivePeerDependencies: - - supports-color - - safe-buffer@5.2.1: {} - - safe-stable-stringify@2.5.0: {} - - secure-json-parse@2.7.0: {} - - secure-json-parse@4.1.0: {} - - semver@7.8.5: {} - - sharp@0.35.4: - dependencies: - '@img/colour': 1.1.0 - detect-libc: 2.1.2 - semver: 7.8.5 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.35.4 - '@img/sharp-darwin-x64': 0.35.4 - '@img/sharp-freebsd-wasm32': 0.35.4 - '@img/sharp-libvips-darwin-arm64': 1.3.3 - '@img/sharp-libvips-darwin-x64': 1.3.3 - '@img/sharp-libvips-linux-arm': 1.3.3 - '@img/sharp-libvips-linux-arm64': 1.3.3 - '@img/sharp-libvips-linux-ppc64': 1.3.3 - '@img/sharp-libvips-linux-riscv64': 1.3.3 - '@img/sharp-libvips-linux-s390x': 1.3.3 - '@img/sharp-libvips-linux-x64': 1.3.3 - '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 - '@img/sharp-libvips-linuxmusl-x64': 1.3.3 - '@img/sharp-linux-arm': 0.35.4 - '@img/sharp-linux-arm64': 0.35.4 - '@img/sharp-linux-ppc64': 0.35.4 - '@img/sharp-linux-riscv64': 0.35.4 - '@img/sharp-linux-s390x': 0.35.4 - '@img/sharp-linux-x64': 0.35.4 - '@img/sharp-linuxmusl-arm64': 0.35.4 - '@img/sharp-linuxmusl-x64': 0.35.4 - '@img/sharp-webcontainers-wasm32': 0.35.4 - '@img/sharp-win32-arm64': 0.35.4 - '@img/sharp-win32-ia32': 0.35.4 - '@img/sharp-win32-x64': 0.35.4 - - sonic-boom@3.8.1: - dependencies: - atomic-sleep: 1.0.0 - - sonic-boom@4.2.1: - dependencies: - atomic-sleep: 1.0.0 - - split2@4.2.0: {} - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - strip-json-comments@3.1.1: {} - - strip-json-comments@5.0.3: {} - - thread-stream@2.7.0: - dependencies: - real-require: 0.2.0 - - thread-stream@3.2.0: - dependencies: - real-require: 0.2.0 - - tslib@2.8.1: - optional: true - - typescript@7.0.2: - optionalDependencies: - '@typescript/typescript-aix-ppc64': 7.0.2 - '@typescript/typescript-darwin-arm64': 7.0.2 - '@typescript/typescript-darwin-x64': 7.0.2 - '@typescript/typescript-freebsd-arm64': 7.0.2 - '@typescript/typescript-freebsd-x64': 7.0.2 - '@typescript/typescript-linux-arm': 7.0.2 - '@typescript/typescript-linux-arm64': 7.0.2 - '@typescript/typescript-linux-loong64': 7.0.2 - '@typescript/typescript-linux-mips64el': 7.0.2 - '@typescript/typescript-linux-ppc64': 7.0.2 - '@typescript/typescript-linux-riscv64': 7.0.2 - '@typescript/typescript-linux-s390x': 7.0.2 - '@typescript/typescript-linux-x64': 7.0.2 - '@typescript/typescript-netbsd-arm64': 7.0.2 - '@typescript/typescript-netbsd-x64': 7.0.2 - '@typescript/typescript-openbsd-arm64': 7.0.2 - '@typescript/typescript-openbsd-x64': 7.0.2 - '@typescript/typescript-sunos-x64': 7.0.2 - '@typescript/typescript-win32-arm64': 7.0.2 - '@typescript/typescript-win32-x64': 7.0.2 - - ufo@1.6.4: {} - - which@1.3.1: - dependencies: - isexe: 2.0.0 - - wrappy@1.0.2: {} - - ws@8.18.3: {} - - ws@8.22.0: {} - - zod-to-json-schema@3.25.2(zod@3.25.76): - dependencies: - zod: 3.25.76 - - zod@3.25.76: {} + .: {} diff --git a/e2e/scenarios/livekit-instrumentation/scenario.mjs b/e2e/scenarios/livekit-instrumentation/scenario.mjs index f5520c1e4..2a564cbaf 100644 --- a/e2e/scenarios/livekit-instrumentation/scenario.mjs +++ b/e2e/scenarios/livekit-instrumentation/scenario.mjs @@ -6,7 +6,7 @@ import { z } from "zod"; import { initLogger, setFetch, wrapLiveKit } from "braintrust"; import { scopedName } from "../../helpers/provider-runtime.mjs"; import { AudioFrame, dispose } from "@livekit/rtc-node"; -const livekit = await import(process.env.LIVEKIT_PACKAGE); +const livekit = await import("@livekit/agents"); const { voice, llm, telemetry, initializeLogger } = process.env.LIVEKIT_WRAP === "1" ? wrapLiveKit(livekit) : livekit; initializeLogger({ pretty: false, level: "silent" }); diff --git a/e2e/scenarios/livekit-instrumentation/scenario.test.ts b/e2e/scenarios/livekit-instrumentation/scenario.test.ts index 2b58fa223..0128bcc28 100644 --- a/e2e/scenarios/livekit-instrumentation/scenario.test.ts +++ b/e2e/scenarios/livekit-instrumentation/scenario.test.ts @@ -1,3 +1,5 @@ +import { promises as fs } from "node:fs"; +import path from "node:path"; import { expect, test } from "vitest"; import { assertAudioTrace } from "./assertions"; import { @@ -22,7 +24,7 @@ function normalizer() { }; function stable(value: unknown, key = ""): unknown { if (typeof value === "number" && VOLATILE_NUMBER.test(key)) return 0; - if (typeof value === "string" && key.endsWith("_metrics")) { + if (typeof value === "string" && /(_metrics|\.stt\.events)$/.test(key)) { try { return stable(JSON.parse(value)); } catch {} @@ -45,9 +47,36 @@ function normalizer() { } const originalScenarioDir = resolveScenarioDir(import.meta.url); -const scenarioDir = await prepareScenarioDir({ - scenarioDir: originalScenarioDir, -}); +const variants = ["livekit-v1", "livekit-v1-latest"]; +// Plugins pin an exact @livekit/agents peer, so aliases in one install root would +// share a single peer copy. Generate one install root per version instead. +const scenarioDirs = Object.fromEntries( + await Promise.all( + variants.map(async (variant) => { + const sourceDir = path.resolve( + originalScenarioDir, + `../../.bt-tmp/generated-scenarios/livekit-instrumentation-${variant}`, + ); + await fs.rm(sourceDir, { force: true, recursive: true }); + await fs.cp(originalScenarioDir, sourceDir, { + recursive: true, + filter: (source) => + ![ + "node_modules", + "versions", + "__cassettes__", + "__snapshots__", + ].includes(path.basename(source)), + }); + await fs.cp( + path.join(originalScenarioDir, "versions", variant), + sourceDir, + { recursive: true }, + ); + return [variant, await prepareScenarioDir({ scenarioDir: sourceDir })]; + }), + ), +); type RunOptions = { mode?: "auto" | "wrapped" | "wrapped-auto"; @@ -66,6 +95,7 @@ function scenarioOptions( recording = true, }: RunOptions, ) { + const scenarioDir = scenarioDirs[variant]; return { scenarioDir, entry, @@ -80,7 +110,6 @@ function scenarioOptions( "braintrust/hook.mjs", ], env: { - LIVEKIT_PACKAGE: variant, LIVEKIT_WRAP: mode === "auto" ? "0" : "1", BRAINTRUST_CAPTURE_ATTACHMENTS: recording ? "true" : "", BRAINTRUST_DISABLE_INSTRUMENTATION: "", @@ -119,7 +148,7 @@ const spoken = (event: CapturedLogEvent | undefined, pattern: RegExp) => ]), ); -for (const variant of ["livekit-v1", "livekit-v1-latest"]) { +for (const variant of variants) { // Fixture playback through each setup path, including idempotent double wrapping. for (const mode of ["auto", "wrapped", "wrapped-auto"] as const) test.sequential( diff --git a/e2e/scenarios/livekit-instrumentation/versions/livekit-v1-latest/package.json b/e2e/scenarios/livekit-instrumentation/versions/livekit-v1-latest/package.json new file mode 100644 index 000000000..0f6b19649 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/versions/livekit-v1-latest/package.json @@ -0,0 +1,12 @@ +{ + "name": "@braintrust/e2e-livekit-instrumentation-v1-latest", + "private": true, + "dependencies": { + "@livekit/agents": "1.9.3", + "@livekit/agents-plugin-openai": "1.9.3", + "@livekit/rtc-node": "1.1.0", + "@opentelemetry/sdk-trace-node": "2.0.1", + "ws": "8.18.3", + "zod": "3.25.76" + } +} diff --git a/e2e/scenarios/livekit-instrumentation/versions/livekit-v1-latest/pnpm-lock.yaml b/e2e/scenarios/livekit-instrumentation/versions/livekit-v1-latest/pnpm-lock.yaml new file mode 100644 index 000000000..6cb5bf503 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/versions/livekit-v1-latest/pnpm-lock.yaml @@ -0,0 +1,2024 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@livekit/agents': + specifier: 1.9.3 + version: 1.9.3(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76) + '@livekit/agents-plugin-openai': + specifier: 1.9.3 + version: 1.9.3(@livekit/agents@1.9.3(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76))(@livekit/rtc-node@1.1.0)(zod@3.25.76) + '@livekit/rtc-node': + specifier: 1.1.0 + version: 1.1.0 + '@opentelemetry/sdk-trace-node': + specifier: 2.0.1 + version: 2.0.1(@opentelemetry/api@1.9.1) + ws: + specifier: 8.18.3 + version: 8.18.3 + zod: + specifier: 3.25.76 + version: 3.25.76 + +packages: + + '@bufbuild/protobuf@1.10.1': + resolution: {integrity: sha512-wJ8ReQbHxsAfXhrf9ixl0aYbZorRuOWpBNzm8pL8ftmSxQx/wnJD5Eg861NwJU/czy2VXFIebCeZnZrI9rktIQ==} + + '@datastructures-js/deque@1.0.8': + resolution: {integrity: sha512-PSBhJ2/SmeRPRHuBv7i/fHWIdSC3JTyq56qb+Rq0wjOagi0/fdV5/B/3Md5zFZus/W6OkSPMaxMKKMNMrSmubg==} + + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.35.5': + resolution: {integrity: sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.35.5': + resolution: {integrity: sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [darwin] + + '@img/sharp-freebsd-wasm32@0.35.5': + resolution: {integrity: sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==} + engines: {node: '>=20.9.0'} + os: [freebsd] + + '@img/sharp-libvips-darwin-arm64@1.3.4': + resolution: {integrity: sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.3.4': + resolution: {integrity: sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.3.4': + resolution: {integrity: sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-arm@1.3.4': + resolution: {integrity: sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-ppc64@1.3.4': + resolution: {integrity: sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-riscv64@1.3.4': + resolution: {integrity: sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-s390x@1.3.4': + resolution: {integrity: sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-x64@1.3.4': + resolution: {integrity: sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linuxmusl-arm64@1.3.4': + resolution: {integrity: sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-libvips-linuxmusl-x64@1.3.4': + resolution: {integrity: sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-linux-arm64@0.35.5': + resolution: {integrity: sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-arm@0.35.5': + resolution: {integrity: sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==} + engines: {node: '>=20.9.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-ppc64@0.35.5': + resolution: {integrity: sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==} + engines: {node: '>=20.9.0'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-riscv64@0.35.5': + resolution: {integrity: sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==} + engines: {node: '>=20.9.0'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-s390x@0.35.5': + resolution: {integrity: sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==} + engines: {node: '>=20.9.0'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-x64@0.35.5': + resolution: {integrity: sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-linuxmusl-arm64@0.35.5': + resolution: {integrity: sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-linuxmusl-x64@0.35.5': + resolution: {integrity: sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-wasm32@0.35.5': + resolution: {integrity: sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==} + engines: {node: '>=20.9.0'} + + '@img/sharp-webcontainers-wasm32@0.35.5': + resolution: {integrity: sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==} + engines: {node: '>=20.9.0'} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.35.5': + resolution: {integrity: sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.35.5': + resolution: {integrity: sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==} + engines: {node: ^20.9.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.35.5': + resolution: {integrity: sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [win32] + + '@livekit/agents-plugin-openai@1.9.3': + resolution: {integrity: sha512-V7b4ydM5ASV58kYISqM0sn5X7+W2CO7IHLZODUJRIbrPGj9Z1q9jS5zqTCwZc6D8nuAIsAqLsR7jwUcT3k9+XA==} + peerDependencies: + '@livekit/agents': 1.9.3 + '@livekit/rtc-node': ^1.1.0 + zod: ^3.25.76 || ^4.1.8 + + '@livekit/agents@1.9.3': + resolution: {integrity: sha512-AWwRVjf6NUB9L4X3PP+VUL8pX5NSTS7D6HrZMaZobcbNZrOkdOO6hOmpMxQYL7z/Xx0Iq2EJV4pgnFQ/+aNlxA==} + hasBin: true + peerDependencies: + '@livekit/rtc-node': ^1.1.0 + zod: ^3.25.76 || ^4.1.8 + + '@livekit/av-darwin-arm64@10.0.0': + resolution: {integrity: sha512-wf6C/eMKzZT88/4HvOlGZJMA/C5mewKlGG56HMJaAP6U/gUHRVDagDvce7+sZWz5RMsj2CAMUWZ+jiF1UgAAxA==} + cpu: [arm64] + os: [darwin] + + '@livekit/av-darwin-x64@10.0.0': + resolution: {integrity: sha512-Muw1jR+dpRHi0FLu8fHOCxDP/F/xGz1KOO9iIjAV+ObBCj0iPb1zXItWlpcVweU6JiaJpRN2HoI5FKpX+w0UeQ==} + cpu: [x64] + os: [darwin] + + '@livekit/av-linux-arm64@10.0.0': + resolution: {integrity: sha512-HVnzYLSKFrrR49epK37fV8eIbPuuWqbGoC7xXbmw0ziag1z0xUEZt072EEvmLcuCYMlX93At0se7Glh507751g==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@livekit/av-linux-x64@10.0.0': + resolution: {integrity: sha512-ZODmZ2bhfzjGrYF5KpwK7QHoaSVH96cX0o8sOGQT73VpgUCMDzcH+OSZWOlgFwUozk4jT/pjLfgGGPZtD2Dj7w==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@livekit/av-win32-x64@10.0.0': + resolution: {integrity: sha512-zvgdIvuu8C5aM+rSkOTZLKqX0FsYaN5CXKysmkKLU+pEDz+pIzkFelxPYX7YreV111aTAY19Dzj2i0KGEFnOSQ==} + cpu: [x64] + os: [win32] + + '@livekit/av@10.0.0': + resolution: {integrity: sha512-i39au9JY9qqZ9b0yKa5+2E3BQD9JtbGlCxqDbSvFjxprdHTdP96NgsLHOViwLk84J+eCLIyNzcGw5G3zIK2ZhQ==} + engines: {node: '>=18.0.0'} + + '@livekit/local-inference-darwin-arm64@0.2.7': + resolution: {integrity: sha512-di4SAKcV/i9tCozvbtwZLBtRPAJYWCcLNNVWduqAQSaV2/klT2CZsGpoN0s7t8NamvL78q1LxzL2iJVc6pc75g==} + cpu: [arm64] + os: [darwin] + + '@livekit/local-inference-darwin-x64@0.2.7': + resolution: {integrity: sha512-5e2HnjLSOwh1QfHQKbAgy0HDxAZhpOMLpwcUSXWIPeQEGOu+iu0s1f8xsRvz/LWxPOsZJn0bxFkfadnh5dvPMg==} + cpu: [x64] + os: [darwin] + + '@livekit/local-inference-linux-arm64-gnu@0.2.7': + resolution: {integrity: sha512-zUP9RverLt66kQ9slr+T3FY1Ad9IwJ3BPnJsEB/NxUeflq5g0dbUjIjGvjBCL6DktqLRyXixEJx1J5QUKUWUsw==} + cpu: [arm64] + os: [linux] + + '@livekit/local-inference-linux-x64-gnu@0.2.7': + resolution: {integrity: sha512-QG/0k0BwqnSz/qMU+Z/k0411iXkbVEdZ8XMBPjZGOorVYTQuMlovYd9hkSZvgnD84o/xeAMJekC6NcXv45FlGg==} + cpu: [x64] + os: [linux] + + '@livekit/local-inference-win32-x64-msvc@0.2.7': + resolution: {integrity: sha512-8KB0xfDgYstfvOtAshRsL0zRkwGOIGzOI4NqGMq1HBr+3wMuCrVEjspjpHvuMHCYVzihprE9L/ivYqpXBAGrXw==} + cpu: [x64] + os: [win32] + + '@livekit/local-inference@0.2.7': + resolution: {integrity: sha512-3XniFtpZHiIlAgVibhIU1YDaHbh8uScYojwtqaI1Em440w+fzix3wPXLv+IPePAmuusJzvHLrEFaTwojaBLk4w==} + engines: {node: '>=18.0.0'} + + '@livekit/mutex@1.1.1': + resolution: {integrity: sha512-EsshAucklmpuUAfkABPxJNhzj9v2sG7JuzFDL4ML1oJQSV14sqrpTYnsaOudMAw9yOaW53NU3QQTlUQoRs4czw==} + + '@livekit/protocol@1.51.0': + resolution: {integrity: sha512-kEDEDaFvIcp5VlYBromdSKMJMEJKfPvXPfEaJPdEz1Qgo84gZAoLF2g58CcMlVYGsjrwE5XYgQxRS5B7KuEj3w==} + + '@livekit/protocol@1.52.1': + resolution: {integrity: sha512-X8DxKlNbzk6Lh+v630+mjdFHSotdAFwIyzxSRSUql2DbTxCnlpa7JsvFGc6Na3mXiex2OFh0iiQtWwOBP0rIYA==} + + '@livekit/rtc-ffi-bindings-darwin-arm64@0.12.73': + resolution: {integrity: sha512-gIGftVyO1Jl266AZPRzoL6dxck969dmIiaut3+D1aCZRkDb/gLz98BEGRfOSU3X0LS4QBkmiaYWsjN9ot/zmwg==} + engines: {node: '>= 18'} + cpu: [arm64] + os: [darwin] + + '@livekit/rtc-ffi-bindings-darwin-x64@0.12.73': + resolution: {integrity: sha512-esPwYCbUnDD/KxBo0YU8awTFglRG7SvOT/sfiP19KChS5SH8TgXc7JwfSvnjRx1PndUqHFzQAbQDcYaeL9PFTg==} + engines: {node: '>= 18'} + cpu: [x64] + os: [darwin] + + '@livekit/rtc-ffi-bindings-linux-arm64-gnu@0.12.73': + resolution: {integrity: sha512-2YBatXjuaumnaNVqRC63flX5XZTvHcQWRsABw6e2yp+Hlxl3ocjVVyk5PrAsRzCdeyxbHLduqV9ctqGbpTA27Q==} + engines: {node: '>= 18'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@livekit/rtc-ffi-bindings-linux-x64-gnu@0.12.73': + resolution: {integrity: sha512-BrP3IyNkcjldeO+SbnF0hX2mipst8aHiBIiGJcQCd8HEjsaabfkYk4Y5uoNsTVMrUSyrNrJte2itAhuxP9FCSA==} + engines: {node: '>= 18'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@livekit/rtc-ffi-bindings-win32-x64-msvc@0.12.73': + resolution: {integrity: sha512-2RnKXMTnNfvjJ3kbuhE1jqFNAQNmqSrxy3GlEnByY61tbtY14QPFn8X/0lh+Mjst8pZdfxkXvtbRyPt5KYHvMA==} + engines: {node: '>= 18'} + cpu: [x64] + os: [win32] + + '@livekit/rtc-ffi-bindings@0.12.73': + resolution: {integrity: sha512-ZxkCQlsfTG7Eqi6KBXulEWJBUxeRVRYqCc795CsmKsGfqmBX5gE5CnTiynN8fFdzSGwApaVogeGSB6JszCf/Xw==} + engines: {node: '>= 18'} + + '@livekit/rtc-node@1.1.0': + resolution: {integrity: sha512-KFNvPz7qQSJBTttDukanhMJ+bCNxj6O3A3fXl6GJvOEamJJk7GqKCWgAdLW3JLjuT1pPQDyQPJJnYdR25N+MXA==} + engines: {node: '>= 18'} + + '@livekit/throws-transformer@0.1.8': + resolution: {integrity: sha512-AaSwQfIaG6YArKOCO+5/DgI8HfL19oHdrkyI0LJJVCqGeZXzPsZIO/Nm/SKUHbT1ERGhF5c34X8CcVWeOePpIQ==} + hasBin: true + peerDependencies: + typescript: '>=4.7.0' + + '@livekit/typed-emitter@3.0.0': + resolution: {integrity: sha512-9bl0k4MgBPZu3Qu3R3xy12rmbW17e3bE9yf4YY85gJIQ3ezLEj/uzpKHWBsLaDoL5Mozz8QCgggwIBudYQWeQg==} + + '@opentelemetry/api-logs@0.220.0': + resolution: {integrity: sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.9.1': + resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@2.0.1': + resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/context-async-hooks@2.11.0': + resolution: {integrity: sha512-Tr79DyWI8itsBdg+jH+opjfrwLzX+erk1/ExkIwhWoAVjVrJIn2y5+cGjTC0Vy8fyNIA/y8wuJPZwr1T3xCZeQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.0.1': + resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.11.0': + resolution: {integrity: sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.9.0': + resolution: {integrity: sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-logs-otlp-proto@0.220.0': + resolution: {integrity: sha512-8LZAxdJ0ENDAFwr4j0oY35mHBltiSzvlhdQAPGiC7p9VnxtuSq4SW1gfBAdW6t6hiQG6OwUl8w7KHaOdJPKHWg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-http@0.220.0': + resolution: {integrity: sha512-Yqt3RBw/bRVncaE9qIIhk4WfjbAQqXuP9FgAaU+IKPndnLEp/cUqZlSC324+bpmduRz7DoTjig8Ub0PeILWXUA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-proto@0.220.0': + resolution: {integrity: sha512-lyO+IQBdSvqHN/ZOW/OzrSWemtfD+HgWngn+HBNLhjy0YrCQQTz0OE/kSekH2Pl340dn9DWzhqHdz5Eftr+HLA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-proto@0.220.0': + resolution: {integrity: sha512-voTAD8XgJxlK7zLkXh8EzMB09zrQr3tyY/BsnDTlDiQU/UdK58MZ63A3mUjdEDrxMjCVmBHU3WQJhRmQe+Dvzg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-pino@0.66.0': + resolution: {integrity: sha512-RMAtAYuyouaMbHkQG8E97nJfwHftxmCbOURdD3n5s2Yd5zctLNudXB5hAfW18lsfUbePwQCND6QUXZixFN92Pw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.220.0': + resolution: {integrity: sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.220.0': + resolution: {integrity: sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.220.0': + resolution: {integrity: sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/resources@2.0.1': + resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/resources@2.11.0': + resolution: {integrity: sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/resources@2.9.0': + resolution: {integrity: sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.220.0': + resolution: {integrity: sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.11.0': + resolution: {integrity: sha512-7GXXcObyHyDUUSG+L+kJoquty01bzm7ivE7+SSgXXJcHuPzGviptxwARmI2c+bnnxjexGQbJnyNlN8HxBP/Y7A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.9.0': + resolution: {integrity: sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.0.1': + resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.11.0': + resolution: {integrity: sha512-H19x/TX/LZdqiYOjM7fqtSxwlplC5pgelavqbQdHbhdq0q/AI/TGkM2dfGuuynTXmJPeF2HoZVoPDu+TGoW78A==} + engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.0.1': + resolution: {integrity: sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==} + engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.11.0': + resolution: {integrity: sha512-CuvCMJmZxswhNLlM2LfuLOW3h3fZujA4hsG4B+Sz4dX2zvaXO8Ng74cnDHWD64gLszTlhiG3c0iNUjj4g+0/sA==} + engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace@2.11.0': + resolution: {integrity: sha512-fFnTqGm8/G73GQVnxYi7LXa1ZVYEUvgL6XI1LpvV0bPC7WQ/ZGgKxCSl8FnlZBKto9JHHEFTO6s6CUpvvtwFrA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace@2.9.0': + resolution: {integrity: sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.43.0': + resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} + engines: {node: '>=14'} + + '@pinojs/redact@0.4.0': + resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} + + '@types/pidusage@2.0.5': + resolution: {integrity: sha512-MIiyZI4/MK9UGUXWt0jJcCZhVw7YdhBuTOuqP/BjuLDLZ2PmmViMIQgZiWxtaMicQfAz/kMrZ5T7PKxFSkTeUA==} + + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + async@0.2.10: + resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + cjs-module-lexer@2.2.1: + resolution: {integrity: sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@3.0.2: + resolution: {integrity: sha512-BuIB67FngDSyQ/dpQNOZybwdEBDUGJQvOqwWr4ha/ufYiqzuEwPkKO2zLhRAgay28tStRIHUeWmszZAJo3GCOg==} + + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-copy@3.1.0: + resolution: {integrity: sha512-IuCOCDFM1F/s4LtG7Bjr3yUUwPHybyhqN74xk2cMYoP51vVeErMy8+6HGFchi/+45lW8uzhs6lBeEqks2GWt6A==} + + fast-copy@4.1.1: + resolution: {integrity: sha512-A4QTJmuiztpGtr6AMeJts9R4hbj2ZBUwtOaKrG6rw2y7t6+IaJKjz5M3XDs8BUznxDH43FVc6A0y/gWlMl4UtA==} + + fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fluent-ffmpeg@2.1.3: + resolution: {integrity: sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==} + engines: {node: '>=18'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} + engines: {node: '>= 6'} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + + heap-js@2.7.1: + resolution: {integrity: sha512-EQfezRg0NCZGNlhlDR3Evrw1FVL2G3LhU7EgPoxufQKruNBSYA8MiRPHeWbU+36o+Fhel0wMwM+sLEiBAlNLJA==} + engines: {node: '>=10.0.0'} + + help-me@5.0.0: + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + import-in-the-middle@3.5.2: + resolution: {integrity: sha512-WseIA/4o56+GYO3RmlOPvejYi771OFeJEeK/ejROsr9bdjW+E5NXTOD1Di8TL40Qgg3JJX9aa97Hf8iiSVIKZw==} + engines: {node: '>=18'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jose@5.10.0: + resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + jsonrepair@3.15.0: + resolution: {integrity: sha512-wy8OTjwsJwQRnQJkKnMJJ9vcytRdBPAgIF/Hy6+s1dAj42BHMKiyL8JzEieIl3JY7idt8eyHwBWTO8mh/+mtwA==} + hasBin: true + + livekit-server-sdk@2.19.1: + resolution: {integrity: sha512-tqjM5oPDDNBrkb/64YReta9UWP32l1a2m0HHXq8WOuEzwxh4zsaXjeZZtPG4Er4eVAk4kjR+EMxH7lPKzg1g6g==} + engines: {node: '>=19'} + + lru-cache@11.5.3: + resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==} + engines: {node: 20 || >=22} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + openai@6.49.0: + resolution: {integrity: sha512-aYCc0C6L864eR6WSYIwQGyXriw/nIyZx0ObvhzOEVuk0zoBDpynjSbrionWI7q65B5H8jJX0DXR9snEzM6bfPg==} + peerDependencies: + '@aws-sdk/credential-provider-node': '>=3.972.0 <4' + '@smithy/hash-node': '>=4.3.0 <5' + '@smithy/signature-v4': '>=5.4.0 <6' + ws: ^8.18.0 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@aws-sdk/credential-provider-node': + optional: true + '@smithy/hash-node': + optional: true + '@smithy/signature-v4': + optional: true + ws: + optional: true + zod: + optional: true + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + pidusage@4.0.1: + resolution: {integrity: sha512-yCH2dtLHfEBnzlHUJymR/Z1nN2ePG3m392Mv8TFlTP1B0xkpMQNHAnfkY0n2tAi6ceKO6YWhxYfZ96V4vVkh/g==} + engines: {node: '>=18'} + + pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + + pino-abstract-transport@2.0.0: + resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} + + pino-abstract-transport@3.0.0: + resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} + + pino-pretty@11.3.0: + resolution: {integrity: sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==} + hasBin: true + + pino-pretty@13.1.3: + resolution: {integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==} + hasBin: true + + pino-std-serializers@6.2.2: + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + + pino-std-serializers@7.1.0: + resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==} + + pino@8.21.0: + resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} + hasBin: true + + pino@9.14.0: + resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} + hasBin: true + + process-warning@3.0.0: + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + + process-warning@5.1.0: + resolution: {integrity: sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + + require-in-the-middle@8.0.1: + resolution: {integrity: sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==} + engines: {node: '>=9.3.0 || >=8.10.0 <9.0.0'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + + secure-json-parse@4.1.0: + resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + + sharp@0.35.5: + resolution: {integrity: sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==} + engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + sonic-boom@3.8.1: + resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} + + sonic-boom@4.2.1: + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} + + thread-stream@2.7.0: + resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} + + thread-stream@3.2.0: + resolution: {integrity: sha512-zLBvqpwr4Esa0kRjcrzGU6zL25lePWaCLMx0RQFrmteozIfeNdaMLpG5U7PeHzvlFkAWaRKA9/KVW4F60iB+qw==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} + hasBin: true + + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.22.0: + resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: ^3.25.28 || ^4 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + +snapshots: + + '@bufbuild/protobuf@1.10.1': {} + + '@datastructures-js/deque@1.0.8': {} + + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@img/colour@1.1.0': {} + + '@img/sharp-darwin-arm64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.3.4 + optional: true + + '@img/sharp-darwin-x64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.3.4 + optional: true + + '@img/sharp-freebsd-wasm32@0.35.5': + dependencies: + '@img/sharp-wasm32': 0.35.5 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.3.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.3.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.3.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.3.4': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.3.4': + optional: true + + '@img/sharp-libvips-linux-riscv64@1.3.4': + optional: true + + '@img/sharp-libvips-linux-s390x@1.3.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.3.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.3.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.3.4': + optional: true + + '@img/sharp-linux-arm64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.3.4 + optional: true + + '@img/sharp-linux-arm@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.3.4 + optional: true + + '@img/sharp-linux-ppc64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.3.4 + optional: true + + '@img/sharp-linux-riscv64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.3.4 + optional: true + + '@img/sharp-linux-s390x@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.3.4 + optional: true + + '@img/sharp-linux-x64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.3.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 + optional: true + + '@img/sharp-wasm32@0.35.5': + dependencies: + '@emnapi/runtime': 1.11.3 + optional: true + + '@img/sharp-webcontainers-wasm32@0.35.5': + dependencies: + '@img/sharp-wasm32': 0.35.5 + optional: true + + '@img/sharp-win32-arm64@0.35.5': + optional: true + + '@img/sharp-win32-ia32@0.35.5': + optional: true + + '@img/sharp-win32-x64@0.35.5': + optional: true + + '@livekit/agents-plugin-openai@1.9.3(@livekit/agents@1.9.3(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76))(@livekit/rtc-node@1.1.0)(zod@3.25.76)': + dependencies: + '@livekit/agents': 1.9.3(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76) + '@livekit/rtc-node': 1.1.0 + openai: 6.49.0(ws@8.22.0)(zod@3.25.76) + ws: 8.22.0 + zod: 3.25.76 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - bufferutil + - utf-8-validate + + '@livekit/agents@1.9.3(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76)': + dependencies: + '@bufbuild/protobuf': 1.10.1 + '@livekit/av': 10.0.0 + '@livekit/local-inference': 0.2.7 + '@livekit/mutex': 1.1.1 + '@livekit/protocol': 1.52.1 + '@livekit/rtc-node': 1.1.0 + '@livekit/throws-transformer': 0.1.8(typescript@7.0.2) + '@livekit/typed-emitter': 3.0.0 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-pino': 0.66.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-node': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + '@types/pidusage': 2.0.5 + commander: 12.1.0 + fluent-ffmpeg: 2.1.3 + form-data: 4.0.6 + heap-js: 2.7.1 + json-schema: 0.4.0 + jsonrepair: 3.15.0 + livekit-server-sdk: 2.19.1 + ofetch: 1.5.1 + openai: 6.49.0(ws@8.22.0)(zod@3.25.76) + pidusage: 4.0.1 + pino: 8.21.0 + pino-pretty: 11.3.0 + sharp: 0.35.5 + ws: 8.22.0 + zod: 3.25.76 + zod-to-json-schema: 3.25.2(zod@3.25.76) + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - '@types/node' + - bufferutil + - supports-color + - typescript + - utf-8-validate + + '@livekit/av-darwin-arm64@10.0.0': + optional: true + + '@livekit/av-darwin-x64@10.0.0': + optional: true + + '@livekit/av-linux-arm64@10.0.0': + optional: true + + '@livekit/av-linux-x64@10.0.0': + optional: true + + '@livekit/av-win32-x64@10.0.0': + optional: true + + '@livekit/av@10.0.0': + optionalDependencies: + '@livekit/av-darwin-arm64': 10.0.0 + '@livekit/av-darwin-x64': 10.0.0 + '@livekit/av-linux-arm64': 10.0.0 + '@livekit/av-linux-x64': 10.0.0 + '@livekit/av-win32-x64': 10.0.0 + + '@livekit/local-inference-darwin-arm64@0.2.7': + optional: true + + '@livekit/local-inference-darwin-x64@0.2.7': + optional: true + + '@livekit/local-inference-linux-arm64-gnu@0.2.7': + optional: true + + '@livekit/local-inference-linux-x64-gnu@0.2.7': + optional: true + + '@livekit/local-inference-win32-x64-msvc@0.2.7': + optional: true + + '@livekit/local-inference@0.2.7': + dependencies: + node-gyp-build: 4.8.4 + optionalDependencies: + '@livekit/local-inference-darwin-arm64': 0.2.7 + '@livekit/local-inference-darwin-x64': 0.2.7 + '@livekit/local-inference-linux-arm64-gnu': 0.2.7 + '@livekit/local-inference-linux-x64-gnu': 0.2.7 + '@livekit/local-inference-win32-x64-msvc': 0.2.7 + + '@livekit/mutex@1.1.1': {} + + '@livekit/protocol@1.51.0': + dependencies: + '@bufbuild/protobuf': 1.10.1 + + '@livekit/protocol@1.52.1': + dependencies: + '@bufbuild/protobuf': 1.10.1 + + '@livekit/rtc-ffi-bindings-darwin-arm64@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-darwin-x64@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-linux-arm64-gnu@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-linux-x64-gnu@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-win32-x64-msvc@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings@0.12.73': + dependencies: + '@bufbuild/protobuf': 1.10.1 + optionalDependencies: + '@livekit/rtc-ffi-bindings-darwin-arm64': 0.12.73 + '@livekit/rtc-ffi-bindings-darwin-x64': 0.12.73 + '@livekit/rtc-ffi-bindings-linux-arm64-gnu': 0.12.73 + '@livekit/rtc-ffi-bindings-linux-x64-gnu': 0.12.73 + '@livekit/rtc-ffi-bindings-win32-x64-msvc': 0.12.73 + + '@livekit/rtc-node@1.1.0': + dependencies: + '@datastructures-js/deque': 1.0.8 + '@livekit/mutex': 1.1.1 + '@livekit/rtc-ffi-bindings': 0.12.73 + '@livekit/typed-emitter': 3.0.0 + pino: 9.14.0 + pino-pretty: 13.1.3 + + '@livekit/throws-transformer@0.1.8(typescript@7.0.2)': + dependencies: + glob: 13.0.6 + typescript: 7.0.2 + + '@livekit/typed-emitter@3.0.0': {} + + '@opentelemetry/api-logs@0.220.0': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/api@1.9.1': {} + + '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/context-async-hooks@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/core@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/exporter-logs-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-metrics-otlp-http@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-metrics-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-http': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-trace-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/instrumentation-pino@0.66.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + import-in-the-middle: 3.5.2 + require-in-the-middle: 8.0.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/otlp-exporter-base@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/otlp-transformer@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/resources@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-logs@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-metrics@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace-base@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-trace-node@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/context-async-hooks': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.11.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-trace@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/semantic-conventions@1.43.0': {} + + '@pinojs/redact@0.4.0': {} + + '@types/pidusage@2.0.5': {} + + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + async@0.2.10: {} + + asynckit@0.4.0: {} + + atomic-sleep@1.0.0: {} + + balanced-match@4.0.4: {} + + base64-js@1.5.1: {} + + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + cjs-module-lexer@2.2.1: {} + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@12.1.0: {} + + dateformat@4.6.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + delayed-stream@1.0.0: {} + + destr@2.0.5: {} + + detect-libc@2.1.2: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@3.0.2: {} + + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + fast-copy@3.1.0: {} + + fast-copy@4.1.1: {} + + fast-redact@3.5.0: {} + + fast-safe-stringify@2.1.1: {} + + fluent-ffmpeg@2.1.3: + dependencies: + async: 0.2.10 + which: 1.3.1 + + form-data@4.0.6: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 + mime-types: 2.1.35 + + function-bind@1.1.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + glob@13.0.6: + dependencies: + minimatch: 10.2.6 + minipass: 7.1.3 + path-scurry: 2.0.2 + + gopd@1.2.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + heap-js@2.7.1: {} + + help-me@5.0.0: {} + + ieee754@1.2.1: {} + + import-in-the-middle@3.5.2: + dependencies: + cjs-module-lexer: 2.2.1 + es-module-lexer: 3.0.2 + module-details-from-path: 1.0.4 + + isexe@2.0.0: {} + + jose@5.10.0: {} + + joycon@3.1.1: {} + + json-schema@0.4.0: {} + + jsonrepair@3.15.0: {} + + livekit-server-sdk@2.19.1: + dependencies: + '@bufbuild/protobuf': 1.10.1 + '@livekit/protocol': 1.51.0 + jose: 5.10.0 + + lru-cache@11.5.3: {} + + math-intrinsics@1.1.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.12 + + minimist@1.2.8: {} + + minipass@7.1.3: {} + + module-details-from-path@1.0.4: {} + + ms@2.1.3: {} + + node-fetch-native@1.6.7: {} + + node-gyp-build@4.8.4: {} + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 + + on-exit-leak-free@2.1.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + openai@6.49.0(ws@8.22.0)(zod@3.25.76): + optionalDependencies: + ws: 8.22.0 + zod: 3.25.76 + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.3 + minipass: 7.1.3 + + pidusage@4.0.1: + dependencies: + safe-buffer: 5.2.1 + + pino-abstract-transport@1.2.0: + dependencies: + readable-stream: 4.7.0 + split2: 4.2.0 + + pino-abstract-transport@2.0.0: + dependencies: + split2: 4.2.0 + + pino-abstract-transport@3.0.0: + dependencies: + split2: 4.2.0 + + pino-pretty@11.3.0: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 3.1.0 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pump: 3.0.4 + readable-stream: 4.7.0 + secure-json-parse: 2.7.0 + sonic-boom: 4.2.1 + strip-json-comments: 3.1.1 + + pino-pretty@13.1.3: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 4.1.1 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 3.0.0 + pump: 3.0.4 + secure-json-parse: 4.1.0 + sonic-boom: 4.2.1 + strip-json-comments: 5.0.3 + + pino-std-serializers@6.2.2: {} + + pino-std-serializers@7.1.0: {} + + pino@8.21.0: + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 6.2.2 + process-warning: 3.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 3.8.1 + thread-stream: 2.7.0 + + pino@9.14.0: + dependencies: + '@pinojs/redact': 0.4.0 + atomic-sleep: 1.0.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pino-std-serializers: 7.1.0 + process-warning: 5.1.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.1 + thread-stream: 3.2.0 + + process-warning@3.0.0: {} + + process-warning@5.1.0: {} + + process@0.11.10: {} + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + quick-format-unescaped@4.0.4: {} + + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + real-require@0.2.0: {} + + require-in-the-middle@8.0.1: + dependencies: + debug: 4.4.3 + module-details-from-path: 1.0.4 + transitivePeerDependencies: + - supports-color + + safe-buffer@5.2.1: {} + + safe-stable-stringify@2.5.0: {} + + secure-json-parse@2.7.0: {} + + secure-json-parse@4.1.0: {} + + semver@7.8.5: {} + + sharp@0.35.5: + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.8.5 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.35.5 + '@img/sharp-darwin-x64': 0.35.5 + '@img/sharp-freebsd-wasm32': 0.35.5 + '@img/sharp-libvips-darwin-arm64': 1.3.4 + '@img/sharp-libvips-darwin-x64': 1.3.4 + '@img/sharp-libvips-linux-arm': 1.3.4 + '@img/sharp-libvips-linux-arm64': 1.3.4 + '@img/sharp-libvips-linux-ppc64': 1.3.4 + '@img/sharp-libvips-linux-riscv64': 1.3.4 + '@img/sharp-libvips-linux-s390x': 1.3.4 + '@img/sharp-libvips-linux-x64': 1.3.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 + '@img/sharp-linux-arm': 0.35.5 + '@img/sharp-linux-arm64': 0.35.5 + '@img/sharp-linux-ppc64': 0.35.5 + '@img/sharp-linux-riscv64': 0.35.5 + '@img/sharp-linux-s390x': 0.35.5 + '@img/sharp-linux-x64': 0.35.5 + '@img/sharp-linuxmusl-arm64': 0.35.5 + '@img/sharp-linuxmusl-x64': 0.35.5 + '@img/sharp-webcontainers-wasm32': 0.35.5 + '@img/sharp-win32-arm64': 0.35.5 + '@img/sharp-win32-ia32': 0.35.5 + '@img/sharp-win32-x64': 0.35.5 + + sonic-boom@3.8.1: + dependencies: + atomic-sleep: 1.0.0 + + sonic-boom@4.2.1: + dependencies: + atomic-sleep: 1.0.0 + + split2@4.2.0: {} + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-json-comments@3.1.1: {} + + strip-json-comments@5.0.3: {} + + thread-stream@2.7.0: + dependencies: + real-require: 0.2.0 + + thread-stream@3.2.0: + dependencies: + real-require: 0.2.0 + + tslib@2.8.1: + optional: true + + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + + ufo@1.6.4: {} + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + wrappy@1.0.2: {} + + ws@8.18.3: {} + + ws@8.22.0: {} + + zod-to-json-schema@3.25.2(zod@3.25.76): + dependencies: + zod: 3.25.76 + + zod@3.25.76: {} diff --git a/e2e/scenarios/livekit-instrumentation/versions/livekit-v1/package.json b/e2e/scenarios/livekit-instrumentation/versions/livekit-v1/package.json new file mode 100644 index 000000000..169b0f49f --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/versions/livekit-v1/package.json @@ -0,0 +1,12 @@ +{ + "name": "@braintrust/e2e-livekit-instrumentation-v1", + "private": true, + "dependencies": { + "@livekit/agents": "1.9.1", + "@livekit/agents-plugin-openai": "1.9.1", + "@livekit/rtc-node": "1.1.0", + "@opentelemetry/sdk-trace-node": "2.0.1", + "ws": "8.18.3", + "zod": "3.25.76" + } +} diff --git a/e2e/scenarios/livekit-instrumentation/versions/livekit-v1/pnpm-lock.yaml b/e2e/scenarios/livekit-instrumentation/versions/livekit-v1/pnpm-lock.yaml new file mode 100644 index 000000000..8b3146594 --- /dev/null +++ b/e2e/scenarios/livekit-instrumentation/versions/livekit-v1/pnpm-lock.yaml @@ -0,0 +1,2023 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@livekit/agents': + specifier: 1.9.1 + version: 1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76) + '@livekit/agents-plugin-openai': + specifier: 1.9.1 + version: 1.9.1(@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76))(@livekit/rtc-node@1.1.0)(zod@3.25.76) + '@livekit/rtc-node': + specifier: 1.1.0 + version: 1.1.0 + '@opentelemetry/sdk-trace-node': + specifier: 2.0.1 + version: 2.0.1(@opentelemetry/api@1.9.1) + ws: + specifier: 8.18.3 + version: 8.18.3 + zod: + specifier: 3.25.76 + version: 3.25.76 + +packages: + + '@bufbuild/protobuf@1.10.1': + resolution: {integrity: sha512-wJ8ReQbHxsAfXhrf9ixl0aYbZorRuOWpBNzm8pL8ftmSxQx/wnJD5Eg861NwJU/czy2VXFIebCeZnZrI9rktIQ==} + + '@datastructures-js/deque@1.0.8': + resolution: {integrity: sha512-PSBhJ2/SmeRPRHuBv7i/fHWIdSC3JTyq56qb+Rq0wjOagi0/fdV5/B/3Md5zFZus/W6OkSPMaxMKKMNMrSmubg==} + + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.35.4': + resolution: {integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.35.4': + resolution: {integrity: sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [darwin] + + '@img/sharp-freebsd-wasm32@0.35.4': + resolution: {integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==} + engines: {node: '>=20.9.0'} + os: [freebsd] + + '@img/sharp-libvips-darwin-arm64@1.3.3': + resolution: {integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.3.3': + resolution: {integrity: sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.3.3': + resolution: {integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-arm@1.3.3': + resolution: {integrity: sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-ppc64@1.3.3': + resolution: {integrity: sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-riscv64@1.3.3': + resolution: {integrity: sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-s390x@1.3.3': + resolution: {integrity: sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-x64@1.3.3': + resolution: {integrity: sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linuxmusl-arm64@1.3.3': + resolution: {integrity: sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-libvips-linuxmusl-x64@1.3.3': + resolution: {integrity: sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-linux-arm64@0.35.4': + resolution: {integrity: sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-arm@0.35.4': + resolution: {integrity: sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==} + engines: {node: '>=20.9.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-ppc64@0.35.4': + resolution: {integrity: sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==} + engines: {node: '>=20.9.0'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-riscv64@0.35.4': + resolution: {integrity: sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==} + engines: {node: '>=20.9.0'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-s390x@0.35.4': + resolution: {integrity: sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==} + engines: {node: '>=20.9.0'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-x64@0.35.4': + resolution: {integrity: sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-linuxmusl-arm64@0.35.4': + resolution: {integrity: sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-linuxmusl-x64@0.35.4': + resolution: {integrity: sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-wasm32@0.35.4': + resolution: {integrity: sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==} + engines: {node: '>=20.9.0'} + + '@img/sharp-webcontainers-wasm32@0.35.4': + resolution: {integrity: sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==} + engines: {node: '>=20.9.0'} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.35.4': + resolution: {integrity: sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==} + engines: {node: '>=20.9.0'} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.35.4': + resolution: {integrity: sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==} + engines: {node: ^20.9.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.35.4': + resolution: {integrity: sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [win32] + + '@livekit/agents-plugin-openai@1.9.1': + resolution: {integrity: sha512-sspmJ9aQiW/tNdMrYy81xRMT89Z375uXRzZJbKwOH751PrPj5mP7kqRXrTYN6AmqO2rKwZ2d/9mVavoKONPQ6w==} + peerDependencies: + '@livekit/agents': 1.9.1 + '@livekit/rtc-node': ^1.1.0 + zod: ^3.25.76 || ^4.1.8 + + '@livekit/agents@1.9.1': + resolution: {integrity: sha512-M8AxdKwzYzE9maO2cfPtGIXGqt9lpb3rsnBnC0vxZwRND+4y/GcW0t+c5CFDZGPHJ45bKvKALqI5aWnpCwgmWg==} + hasBin: true + peerDependencies: + '@livekit/rtc-node': ^1.1.0 + zod: ^3.25.76 || ^4.1.8 + + '@livekit/av-darwin-arm64@10.0.0': + resolution: {integrity: sha512-wf6C/eMKzZT88/4HvOlGZJMA/C5mewKlGG56HMJaAP6U/gUHRVDagDvce7+sZWz5RMsj2CAMUWZ+jiF1UgAAxA==} + cpu: [arm64] + os: [darwin] + + '@livekit/av-darwin-x64@10.0.0': + resolution: {integrity: sha512-Muw1jR+dpRHi0FLu8fHOCxDP/F/xGz1KOO9iIjAV+ObBCj0iPb1zXItWlpcVweU6JiaJpRN2HoI5FKpX+w0UeQ==} + cpu: [x64] + os: [darwin] + + '@livekit/av-linux-arm64@10.0.0': + resolution: {integrity: sha512-HVnzYLSKFrrR49epK37fV8eIbPuuWqbGoC7xXbmw0ziag1z0xUEZt072EEvmLcuCYMlX93At0se7Glh507751g==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@livekit/av-linux-x64@10.0.0': + resolution: {integrity: sha512-ZODmZ2bhfzjGrYF5KpwK7QHoaSVH96cX0o8sOGQT73VpgUCMDzcH+OSZWOlgFwUozk4jT/pjLfgGGPZtD2Dj7w==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@livekit/av-win32-x64@10.0.0': + resolution: {integrity: sha512-zvgdIvuu8C5aM+rSkOTZLKqX0FsYaN5CXKysmkKLU+pEDz+pIzkFelxPYX7YreV111aTAY19Dzj2i0KGEFnOSQ==} + cpu: [x64] + os: [win32] + + '@livekit/av@10.0.0': + resolution: {integrity: sha512-i39au9JY9qqZ9b0yKa5+2E3BQD9JtbGlCxqDbSvFjxprdHTdP96NgsLHOViwLk84J+eCLIyNzcGw5G3zIK2ZhQ==} + engines: {node: '>=18.0.0'} + + '@livekit/local-inference-darwin-arm64@0.2.7': + resolution: {integrity: sha512-di4SAKcV/i9tCozvbtwZLBtRPAJYWCcLNNVWduqAQSaV2/klT2CZsGpoN0s7t8NamvL78q1LxzL2iJVc6pc75g==} + cpu: [arm64] + os: [darwin] + + '@livekit/local-inference-darwin-x64@0.2.7': + resolution: {integrity: sha512-5e2HnjLSOwh1QfHQKbAgy0HDxAZhpOMLpwcUSXWIPeQEGOu+iu0s1f8xsRvz/LWxPOsZJn0bxFkfadnh5dvPMg==} + cpu: [x64] + os: [darwin] + + '@livekit/local-inference-linux-arm64-gnu@0.2.7': + resolution: {integrity: sha512-zUP9RverLt66kQ9slr+T3FY1Ad9IwJ3BPnJsEB/NxUeflq5g0dbUjIjGvjBCL6DktqLRyXixEJx1J5QUKUWUsw==} + cpu: [arm64] + os: [linux] + + '@livekit/local-inference-linux-x64-gnu@0.2.7': + resolution: {integrity: sha512-QG/0k0BwqnSz/qMU+Z/k0411iXkbVEdZ8XMBPjZGOorVYTQuMlovYd9hkSZvgnD84o/xeAMJekC6NcXv45FlGg==} + cpu: [x64] + os: [linux] + + '@livekit/local-inference-win32-x64-msvc@0.2.7': + resolution: {integrity: sha512-8KB0xfDgYstfvOtAshRsL0zRkwGOIGzOI4NqGMq1HBr+3wMuCrVEjspjpHvuMHCYVzihprE9L/ivYqpXBAGrXw==} + cpu: [x64] + os: [win32] + + '@livekit/local-inference@0.2.7': + resolution: {integrity: sha512-3XniFtpZHiIlAgVibhIU1YDaHbh8uScYojwtqaI1Em440w+fzix3wPXLv+IPePAmuusJzvHLrEFaTwojaBLk4w==} + engines: {node: '>=18.0.0'} + + '@livekit/mutex@1.1.1': + resolution: {integrity: sha512-EsshAucklmpuUAfkABPxJNhzj9v2sG7JuzFDL4ML1oJQSV14sqrpTYnsaOudMAw9yOaW53NU3QQTlUQoRs4czw==} + + '@livekit/protocol@1.51.0': + resolution: {integrity: sha512-kEDEDaFvIcp5VlYBromdSKMJMEJKfPvXPfEaJPdEz1Qgo84gZAoLF2g58CcMlVYGsjrwE5XYgQxRS5B7KuEj3w==} + + '@livekit/protocol@1.52.1': + resolution: {integrity: sha512-X8DxKlNbzk6Lh+v630+mjdFHSotdAFwIyzxSRSUql2DbTxCnlpa7JsvFGc6Na3mXiex2OFh0iiQtWwOBP0rIYA==} + + '@livekit/rtc-ffi-bindings-darwin-arm64@0.12.73': + resolution: {integrity: sha512-gIGftVyO1Jl266AZPRzoL6dxck969dmIiaut3+D1aCZRkDb/gLz98BEGRfOSU3X0LS4QBkmiaYWsjN9ot/zmwg==} + engines: {node: '>= 18'} + cpu: [arm64] + os: [darwin] + + '@livekit/rtc-ffi-bindings-darwin-x64@0.12.73': + resolution: {integrity: sha512-esPwYCbUnDD/KxBo0YU8awTFglRG7SvOT/sfiP19KChS5SH8TgXc7JwfSvnjRx1PndUqHFzQAbQDcYaeL9PFTg==} + engines: {node: '>= 18'} + cpu: [x64] + os: [darwin] + + '@livekit/rtc-ffi-bindings-linux-arm64-gnu@0.12.73': + resolution: {integrity: sha512-2YBatXjuaumnaNVqRC63flX5XZTvHcQWRsABw6e2yp+Hlxl3ocjVVyk5PrAsRzCdeyxbHLduqV9ctqGbpTA27Q==} + engines: {node: '>= 18'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@livekit/rtc-ffi-bindings-linux-x64-gnu@0.12.73': + resolution: {integrity: sha512-BrP3IyNkcjldeO+SbnF0hX2mipst8aHiBIiGJcQCd8HEjsaabfkYk4Y5uoNsTVMrUSyrNrJte2itAhuxP9FCSA==} + engines: {node: '>= 18'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@livekit/rtc-ffi-bindings-win32-x64-msvc@0.12.73': + resolution: {integrity: sha512-2RnKXMTnNfvjJ3kbuhE1jqFNAQNmqSrxy3GlEnByY61tbtY14QPFn8X/0lh+Mjst8pZdfxkXvtbRyPt5KYHvMA==} + engines: {node: '>= 18'} + cpu: [x64] + os: [win32] + + '@livekit/rtc-ffi-bindings@0.12.73': + resolution: {integrity: sha512-ZxkCQlsfTG7Eqi6KBXulEWJBUxeRVRYqCc795CsmKsGfqmBX5gE5CnTiynN8fFdzSGwApaVogeGSB6JszCf/Xw==} + engines: {node: '>= 18'} + + '@livekit/rtc-node@1.1.0': + resolution: {integrity: sha512-KFNvPz7qQSJBTttDukanhMJ+bCNxj6O3A3fXl6GJvOEamJJk7GqKCWgAdLW3JLjuT1pPQDyQPJJnYdR25N+MXA==} + engines: {node: '>= 18'} + + '@livekit/throws-transformer@0.1.8': + resolution: {integrity: sha512-AaSwQfIaG6YArKOCO+5/DgI8HfL19oHdrkyI0LJJVCqGeZXzPsZIO/Nm/SKUHbT1ERGhF5c34X8CcVWeOePpIQ==} + hasBin: true + peerDependencies: + typescript: '>=4.7.0' + + '@livekit/typed-emitter@3.0.0': + resolution: {integrity: sha512-9bl0k4MgBPZu3Qu3R3xy12rmbW17e3bE9yf4YY85gJIQ3ezLEj/uzpKHWBsLaDoL5Mozz8QCgggwIBudYQWeQg==} + + '@opentelemetry/api-logs@0.220.0': + resolution: {integrity: sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.9.1': + resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@2.0.1': + resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/context-async-hooks@2.11.0': + resolution: {integrity: sha512-Tr79DyWI8itsBdg+jH+opjfrwLzX+erk1/ExkIwhWoAVjVrJIn2y5+cGjTC0Vy8fyNIA/y8wuJPZwr1T3xCZeQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.0.1': + resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.11.0': + resolution: {integrity: sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.9.0': + resolution: {integrity: sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-logs-otlp-proto@0.220.0': + resolution: {integrity: sha512-8LZAxdJ0ENDAFwr4j0oY35mHBltiSzvlhdQAPGiC7p9VnxtuSq4SW1gfBAdW6t6hiQG6OwUl8w7KHaOdJPKHWg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-http@0.220.0': + resolution: {integrity: sha512-Yqt3RBw/bRVncaE9qIIhk4WfjbAQqXuP9FgAaU+IKPndnLEp/cUqZlSC324+bpmduRz7DoTjig8Ub0PeILWXUA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-proto@0.220.0': + resolution: {integrity: sha512-lyO+IQBdSvqHN/ZOW/OzrSWemtfD+HgWngn+HBNLhjy0YrCQQTz0OE/kSekH2Pl340dn9DWzhqHdz5Eftr+HLA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-proto@0.220.0': + resolution: {integrity: sha512-voTAD8XgJxlK7zLkXh8EzMB09zrQr3tyY/BsnDTlDiQU/UdK58MZ63A3mUjdEDrxMjCVmBHU3WQJhRmQe+Dvzg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-pino@0.66.0': + resolution: {integrity: sha512-RMAtAYuyouaMbHkQG8E97nJfwHftxmCbOURdD3n5s2Yd5zctLNudXB5hAfW18lsfUbePwQCND6QUXZixFN92Pw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.220.0': + resolution: {integrity: sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.220.0': + resolution: {integrity: sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.220.0': + resolution: {integrity: sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/resources@2.0.1': + resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/resources@2.11.0': + resolution: {integrity: sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/resources@2.9.0': + resolution: {integrity: sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.220.0': + resolution: {integrity: sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.11.0': + resolution: {integrity: sha512-7GXXcObyHyDUUSG+L+kJoquty01bzm7ivE7+SSgXXJcHuPzGviptxwARmI2c+bnnxjexGQbJnyNlN8HxBP/Y7A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.9.0': + resolution: {integrity: sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.0.1': + resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.11.0': + resolution: {integrity: sha512-H19x/TX/LZdqiYOjM7fqtSxwlplC5pgelavqbQdHbhdq0q/AI/TGkM2dfGuuynTXmJPeF2HoZVoPDu+TGoW78A==} + engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.0.1': + resolution: {integrity: sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.11.0': + resolution: {integrity: sha512-CuvCMJmZxswhNLlM2LfuLOW3h3fZujA4hsG4B+Sz4dX2zvaXO8Ng74cnDHWD64gLszTlhiG3c0iNUjj4g+0/sA==} + engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace@2.11.0': + resolution: {integrity: sha512-fFnTqGm8/G73GQVnxYi7LXa1ZVYEUvgL6XI1LpvV0bPC7WQ/ZGgKxCSl8FnlZBKto9JHHEFTO6s6CUpvvtwFrA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace@2.9.0': + resolution: {integrity: sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.43.0': + resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} + engines: {node: '>=14'} + + '@pinojs/redact@0.4.0': + resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} + + '@types/pidusage@2.0.5': + resolution: {integrity: sha512-MIiyZI4/MK9UGUXWt0jJcCZhVw7YdhBuTOuqP/BjuLDLZ2PmmViMIQgZiWxtaMicQfAz/kMrZ5T7PKxFSkTeUA==} + + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + async@0.2.10: + resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + cjs-module-lexer@2.2.1: + resolution: {integrity: sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@3.0.2: + resolution: {integrity: sha512-BuIB67FngDSyQ/dpQNOZybwdEBDUGJQvOqwWr4ha/ufYiqzuEwPkKO2zLhRAgay28tStRIHUeWmszZAJo3GCOg==} + + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-copy@3.1.0: + resolution: {integrity: sha512-IuCOCDFM1F/s4LtG7Bjr3yUUwPHybyhqN74xk2cMYoP51vVeErMy8+6HGFchi/+45lW8uzhs6lBeEqks2GWt6A==} + + fast-copy@4.1.1: + resolution: {integrity: sha512-A4QTJmuiztpGtr6AMeJts9R4hbj2ZBUwtOaKrG6rw2y7t6+IaJKjz5M3XDs8BUznxDH43FVc6A0y/gWlMl4UtA==} + + fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fluent-ffmpeg@2.1.3: + resolution: {integrity: sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==} + engines: {node: '>=18'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} + engines: {node: '>= 6'} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + + heap-js@2.7.1: + resolution: {integrity: sha512-EQfezRg0NCZGNlhlDR3Evrw1FVL2G3LhU7EgPoxufQKruNBSYA8MiRPHeWbU+36o+Fhel0wMwM+sLEiBAlNLJA==} + engines: {node: '>=10.0.0'} + + help-me@5.0.0: + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + import-in-the-middle@3.5.2: + resolution: {integrity: sha512-WseIA/4o56+GYO3RmlOPvejYi771OFeJEeK/ejROsr9bdjW+E5NXTOD1Di8TL40Qgg3JJX9aa97Hf8iiSVIKZw==} + engines: {node: '>=18'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jose@5.10.0: + resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + jsonrepair@3.15.0: + resolution: {integrity: sha512-wy8OTjwsJwQRnQJkKnMJJ9vcytRdBPAgIF/Hy6+s1dAj42BHMKiyL8JzEieIl3JY7idt8eyHwBWTO8mh/+mtwA==} + hasBin: true + + livekit-server-sdk@2.19.1: + resolution: {integrity: sha512-tqjM5oPDDNBrkb/64YReta9UWP32l1a2m0HHXq8WOuEzwxh4zsaXjeZZtPG4Er4eVAk4kjR+EMxH7lPKzg1g6g==} + engines: {node: '>=19'} + + lru-cache@11.5.3: + resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==} + engines: {node: 20 || >=22} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + openai@6.49.0: + resolution: {integrity: sha512-aYCc0C6L864eR6WSYIwQGyXriw/nIyZx0ObvhzOEVuk0zoBDpynjSbrionWI7q65B5H8jJX0DXR9snEzM6bfPg==} + peerDependencies: + '@aws-sdk/credential-provider-node': '>=3.972.0 <4' + '@smithy/hash-node': '>=4.3.0 <5' + '@smithy/signature-v4': '>=5.4.0 <6' + ws: ^8.18.0 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@aws-sdk/credential-provider-node': + optional: true + '@smithy/hash-node': + optional: true + '@smithy/signature-v4': + optional: true + ws: + optional: true + zod: + optional: true + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + pidusage@4.0.1: + resolution: {integrity: sha512-yCH2dtLHfEBnzlHUJymR/Z1nN2ePG3m392Mv8TFlTP1B0xkpMQNHAnfkY0n2tAi6ceKO6YWhxYfZ96V4vVkh/g==} + engines: {node: '>=18'} + + pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + + pino-abstract-transport@2.0.0: + resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} + + pino-abstract-transport@3.0.0: + resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} + + pino-pretty@11.3.0: + resolution: {integrity: sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==} + hasBin: true + + pino-pretty@13.1.3: + resolution: {integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==} + hasBin: true + + pino-std-serializers@6.2.2: + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + + pino-std-serializers@7.1.0: + resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==} + + pino@8.21.0: + resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} + hasBin: true + + pino@9.14.0: + resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} + hasBin: true + + process-warning@3.0.0: + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + + process-warning@5.1.0: + resolution: {integrity: sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + + require-in-the-middle@8.0.1: + resolution: {integrity: sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==} + engines: {node: '>=9.3.0 || >=8.10.0 <9.0.0'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + + secure-json-parse@4.1.0: + resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + + sharp@0.35.4: + resolution: {integrity: sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==} + engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + sonic-boom@3.8.1: + resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} + + sonic-boom@4.2.1: + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} + + thread-stream@2.7.0: + resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} + + thread-stream@3.2.0: + resolution: {integrity: sha512-zLBvqpwr4Esa0kRjcrzGU6zL25lePWaCLMx0RQFrmteozIfeNdaMLpG5U7PeHzvlFkAWaRKA9/KVW4F60iB+qw==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} + hasBin: true + + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.22.0: + resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: ^3.25.28 || ^4 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + +snapshots: + + '@bufbuild/protobuf@1.10.1': {} + + '@datastructures-js/deque@1.0.8': {} + + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@img/colour@1.1.0': {} + + '@img/sharp-darwin-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.3.3 + optional: true + + '@img/sharp-darwin-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.3.3 + optional: true + + '@img/sharp-freebsd-wasm32@0.35.4': + dependencies: + '@img/sharp-wasm32': 0.35.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-darwin-x64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-arm@1.3.3': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-riscv64@1.3.3': + optional: true + + '@img/sharp-libvips-linux-s390x@1.3.3': + optional: true + + '@img/sharp-libvips-linux-x64@1.3.3': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.3.3': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.3.3': + optional: true + + '@img/sharp-linux-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.3.3 + optional: true + + '@img/sharp-linux-arm@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.3.3 + optional: true + + '@img/sharp-linux-ppc64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.3.3 + optional: true + + '@img/sharp-linux-riscv64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.3.3 + optional: true + + '@img/sharp-linux-s390x@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.3.3 + optional: true + + '@img/sharp-linux-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.3.3 + optional: true + + '@img/sharp-linuxmusl-arm64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 + optional: true + + '@img/sharp-linuxmusl-x64@0.35.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.3.3 + optional: true + + '@img/sharp-wasm32@0.35.4': + dependencies: + '@emnapi/runtime': 1.11.3 + optional: true + + '@img/sharp-webcontainers-wasm32@0.35.4': + dependencies: + '@img/sharp-wasm32': 0.35.4 + optional: true + + '@img/sharp-win32-arm64@0.35.4': + optional: true + + '@img/sharp-win32-ia32@0.35.4': + optional: true + + '@img/sharp-win32-x64@0.35.4': + optional: true + + '@livekit/agents-plugin-openai@1.9.1(@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76))(@livekit/rtc-node@1.1.0)(zod@3.25.76)': + dependencies: + '@livekit/agents': 1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76) + '@livekit/mutex': 1.1.1 + '@livekit/rtc-node': 1.1.0 + openai: 6.49.0(ws@8.22.0)(zod@3.25.76) + ws: 8.22.0 + zod: 3.25.76 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - bufferutil + - utf-8-validate + + '@livekit/agents@1.9.1(@livekit/rtc-node@1.1.0)(typescript@7.0.2)(zod@3.25.76)': + dependencies: + '@bufbuild/protobuf': 1.10.1 + '@livekit/av': 10.0.0 + '@livekit/local-inference': 0.2.7 + '@livekit/mutex': 1.1.1 + '@livekit/protocol': 1.52.1 + '@livekit/rtc-node': 1.1.0 + '@livekit/throws-transformer': 0.1.8(typescript@7.0.2) + '@livekit/typed-emitter': 3.0.0 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-proto': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-pino': 0.66.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-node': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + '@types/pidusage': 2.0.5 + commander: 12.1.0 + fluent-ffmpeg: 2.1.3 + form-data: 4.0.6 + heap-js: 2.7.1 + json-schema: 0.4.0 + jsonrepair: 3.15.0 + livekit-server-sdk: 2.19.1 + ofetch: 1.5.1 + openai: 6.49.0(ws@8.22.0)(zod@3.25.76) + pidusage: 4.0.1 + pino: 8.21.0 + pino-pretty: 11.3.0 + sharp: 0.35.4 + ws: 8.22.0 + zod: 3.25.76 + zod-to-json-schema: 3.25.2(zod@3.25.76) + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - '@types/node' + - bufferutil + - supports-color + - typescript + - utf-8-validate + + '@livekit/av-darwin-arm64@10.0.0': + optional: true + + '@livekit/av-darwin-x64@10.0.0': + optional: true + + '@livekit/av-linux-arm64@10.0.0': + optional: true + + '@livekit/av-linux-x64@10.0.0': + optional: true + + '@livekit/av-win32-x64@10.0.0': + optional: true + + '@livekit/av@10.0.0': + optionalDependencies: + '@livekit/av-darwin-arm64': 10.0.0 + '@livekit/av-darwin-x64': 10.0.0 + '@livekit/av-linux-arm64': 10.0.0 + '@livekit/av-linux-x64': 10.0.0 + '@livekit/av-win32-x64': 10.0.0 + + '@livekit/local-inference-darwin-arm64@0.2.7': + optional: true + + '@livekit/local-inference-darwin-x64@0.2.7': + optional: true + + '@livekit/local-inference-linux-arm64-gnu@0.2.7': + optional: true + + '@livekit/local-inference-linux-x64-gnu@0.2.7': + optional: true + + '@livekit/local-inference-win32-x64-msvc@0.2.7': + optional: true + + '@livekit/local-inference@0.2.7': + dependencies: + node-gyp-build: 4.8.4 + optionalDependencies: + '@livekit/local-inference-darwin-arm64': 0.2.7 + '@livekit/local-inference-darwin-x64': 0.2.7 + '@livekit/local-inference-linux-arm64-gnu': 0.2.7 + '@livekit/local-inference-linux-x64-gnu': 0.2.7 + '@livekit/local-inference-win32-x64-msvc': 0.2.7 + + '@livekit/mutex@1.1.1': {} + + '@livekit/protocol@1.51.0': + dependencies: + '@bufbuild/protobuf': 1.10.1 + + '@livekit/protocol@1.52.1': + dependencies: + '@bufbuild/protobuf': 1.10.1 + + '@livekit/rtc-ffi-bindings-darwin-arm64@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-darwin-x64@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-linux-arm64-gnu@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-linux-x64-gnu@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings-win32-x64-msvc@0.12.73': + optional: true + + '@livekit/rtc-ffi-bindings@0.12.73': + dependencies: + '@bufbuild/protobuf': 1.10.1 + optionalDependencies: + '@livekit/rtc-ffi-bindings-darwin-arm64': 0.12.73 + '@livekit/rtc-ffi-bindings-darwin-x64': 0.12.73 + '@livekit/rtc-ffi-bindings-linux-arm64-gnu': 0.12.73 + '@livekit/rtc-ffi-bindings-linux-x64-gnu': 0.12.73 + '@livekit/rtc-ffi-bindings-win32-x64-msvc': 0.12.73 + + '@livekit/rtc-node@1.1.0': + dependencies: + '@datastructures-js/deque': 1.0.8 + '@livekit/mutex': 1.1.1 + '@livekit/rtc-ffi-bindings': 0.12.73 + '@livekit/typed-emitter': 3.0.0 + pino: 9.14.0 + pino-pretty: 13.1.3 + + '@livekit/throws-transformer@0.1.8(typescript@7.0.2)': + dependencies: + glob: 13.0.6 + typescript: 7.0.2 + + '@livekit/typed-emitter@3.0.0': {} + + '@opentelemetry/api-logs@0.220.0': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/api@1.9.1': {} + + '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/context-async-hooks@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/core@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/exporter-logs-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-metrics-otlp-http@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-metrics-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-http': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-trace-otlp-proto@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/instrumentation-pino@0.66.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + import-in-the-middle: 3.5.2 + require-in-the-middle: 8.0.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/otlp-exporter-base@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/otlp-transformer@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/resources@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-logs@0.220.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.220.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-metrics@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace-base@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-trace-node@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/context-async-hooks': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.11.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-trace@2.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/semantic-conventions@1.43.0': {} + + '@pinojs/redact@0.4.0': {} + + '@types/pidusage@2.0.5': {} + + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + async@0.2.10: {} + + asynckit@0.4.0: {} + + atomic-sleep@1.0.0: {} + + balanced-match@4.0.4: {} + + base64-js@1.5.1: {} + + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + cjs-module-lexer@2.2.1: {} + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@12.1.0: {} + + dateformat@4.6.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + delayed-stream@1.0.0: {} + + destr@2.0.5: {} + + detect-libc@2.1.2: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@3.0.2: {} + + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + fast-copy@3.1.0: {} + + fast-copy@4.1.1: {} + + fast-redact@3.5.0: {} + + fast-safe-stringify@2.1.1: {} + + fluent-ffmpeg@2.1.3: + dependencies: + async: 0.2.10 + which: 1.3.1 + + form-data@4.0.6: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 + mime-types: 2.1.35 + + function-bind@1.1.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + glob@13.0.6: + dependencies: + minimatch: 10.2.6 + minipass: 7.1.3 + path-scurry: 2.0.2 + + gopd@1.2.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + heap-js@2.7.1: {} + + help-me@5.0.0: {} + + ieee754@1.2.1: {} + + import-in-the-middle@3.5.2: + dependencies: + cjs-module-lexer: 2.2.1 + es-module-lexer: 3.0.2 + module-details-from-path: 1.0.4 + + isexe@2.0.0: {} + + jose@5.10.0: {} + + joycon@3.1.1: {} + + json-schema@0.4.0: {} + + jsonrepair@3.15.0: {} + + livekit-server-sdk@2.19.1: + dependencies: + '@bufbuild/protobuf': 1.10.1 + '@livekit/protocol': 1.51.0 + jose: 5.10.0 + + lru-cache@11.5.3: {} + + math-intrinsics@1.1.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.12 + + minimist@1.2.8: {} + + minipass@7.1.3: {} + + module-details-from-path@1.0.4: {} + + ms@2.1.3: {} + + node-fetch-native@1.6.7: {} + + node-gyp-build@4.8.4: {} + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 + + on-exit-leak-free@2.1.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + openai@6.49.0(ws@8.22.0)(zod@3.25.76): + optionalDependencies: + ws: 8.22.0 + zod: 3.25.76 + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.3 + minipass: 7.1.3 + + pidusage@4.0.1: + dependencies: + safe-buffer: 5.2.1 + + pino-abstract-transport@1.2.0: + dependencies: + readable-stream: 4.7.0 + split2: 4.2.0 + + pino-abstract-transport@2.0.0: + dependencies: + split2: 4.2.0 + + pino-abstract-transport@3.0.0: + dependencies: + split2: 4.2.0 + + pino-pretty@11.3.0: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 3.1.0 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pump: 3.0.4 + readable-stream: 4.7.0 + secure-json-parse: 2.7.0 + sonic-boom: 4.2.1 + strip-json-comments: 3.1.1 + + pino-pretty@13.1.3: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 4.1.1 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 3.0.0 + pump: 3.0.4 + secure-json-parse: 4.1.0 + sonic-boom: 4.2.1 + strip-json-comments: 5.0.3 + + pino-std-serializers@6.2.2: {} + + pino-std-serializers@7.1.0: {} + + pino@8.21.0: + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 6.2.2 + process-warning: 3.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 3.8.1 + thread-stream: 2.7.0 + + pino@9.14.0: + dependencies: + '@pinojs/redact': 0.4.0 + atomic-sleep: 1.0.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pino-std-serializers: 7.1.0 + process-warning: 5.1.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.1 + thread-stream: 3.2.0 + + process-warning@3.0.0: {} + + process-warning@5.1.0: {} + + process@0.11.10: {} + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + quick-format-unescaped@4.0.4: {} + + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + real-require@0.2.0: {} + + require-in-the-middle@8.0.1: + dependencies: + debug: 4.4.3 + module-details-from-path: 1.0.4 + transitivePeerDependencies: + - supports-color + + safe-buffer@5.2.1: {} + + safe-stable-stringify@2.5.0: {} + + secure-json-parse@2.7.0: {} + + secure-json-parse@4.1.0: {} + + semver@7.8.5: {} + + sharp@0.35.4: + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.8.5 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.35.4 + '@img/sharp-darwin-x64': 0.35.4 + '@img/sharp-freebsd-wasm32': 0.35.4 + '@img/sharp-libvips-darwin-arm64': 1.3.3 + '@img/sharp-libvips-darwin-x64': 1.3.3 + '@img/sharp-libvips-linux-arm': 1.3.3 + '@img/sharp-libvips-linux-arm64': 1.3.3 + '@img/sharp-libvips-linux-ppc64': 1.3.3 + '@img/sharp-libvips-linux-riscv64': 1.3.3 + '@img/sharp-libvips-linux-s390x': 1.3.3 + '@img/sharp-libvips-linux-x64': 1.3.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 + '@img/sharp-libvips-linuxmusl-x64': 1.3.3 + '@img/sharp-linux-arm': 0.35.4 + '@img/sharp-linux-arm64': 0.35.4 + '@img/sharp-linux-ppc64': 0.35.4 + '@img/sharp-linux-riscv64': 0.35.4 + '@img/sharp-linux-s390x': 0.35.4 + '@img/sharp-linux-x64': 0.35.4 + '@img/sharp-linuxmusl-arm64': 0.35.4 + '@img/sharp-linuxmusl-x64': 0.35.4 + '@img/sharp-webcontainers-wasm32': 0.35.4 + '@img/sharp-win32-arm64': 0.35.4 + '@img/sharp-win32-ia32': 0.35.4 + '@img/sharp-win32-x64': 0.35.4 + + sonic-boom@3.8.1: + dependencies: + atomic-sleep: 1.0.0 + + sonic-boom@4.2.1: + dependencies: + atomic-sleep: 1.0.0 + + split2@4.2.0: {} + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-json-comments@3.1.1: {} + + strip-json-comments@5.0.3: {} + + thread-stream@2.7.0: + dependencies: + real-require: 0.2.0 + + thread-stream@3.2.0: + dependencies: + real-require: 0.2.0 + + tslib@2.8.1: + optional: true + + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + + ufo@1.6.4: {} + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + wrappy@1.0.2: {} + + ws@8.18.3: {} + + ws@8.22.0: {} + + zod-to-json-schema@3.25.2(zod@3.25.76): + dependencies: + zod: 3.25.76 + + zod@3.25.76: {} diff --git a/js/src/auto-instrumentations/configs/all.ts b/js/src/auto-instrumentations/configs/all.ts index 072eff26d..22e167656 100644 --- a/js/src/auto-instrumentations/configs/all.ts +++ b/js/src/auto-instrumentations/configs/all.ts @@ -23,8 +23,8 @@ import { groqConfigs } from "./groq"; import { huggingFaceConfigs } from "./huggingface"; import { huggingFaceTransformersConfigs } from "./huggingface-transformers"; import { langchainConfigs } from "./langchain"; -import { livekitConfigs } from "./livekit"; import { langSmithConfigs } from "./langsmith"; +import { livekitConfigs } from "./livekit"; import { mistralConfigs } from "./mistral"; import { langGraphSDKConfigs } from "./langgraph-sdk"; import { ollamaConfigs } from "./ollama"; diff --git a/js/src/instrumentation/plugins/livekit-plugin.test.ts b/js/src/instrumentation/plugins/livekit-plugin.test.ts index 18471a8cd..a02eefb1b 100644 --- a/js/src/instrumentation/plugins/livekit-plugin.test.ts +++ b/js/src/instrumentation/plugins/livekit-plugin.test.ts @@ -140,11 +140,19 @@ describe("tracing", () => { ]), }); // Native request spans fold into the model span, contributing usage. - start("llm_request", model, { + const request = start("llm_request", model, { "gen_ai.usage.input_tokens": 10, "gen_ai.usage.output_tokens": 3, - }).end([2, 0]); + }); + // A retried attempt's failure does not fail the model response. + start("llm_request_run", request).recordException(new Error("retried")); + request.end([2, 0]); model.end([2, 0]); + // Requests owned by other features don't report usage on their exported ancestor. + start("llm_request", start("keyterm_detection", agent), { + "gen_ai.request.model": "keyterm-model", + "gen_ai.usage.input_tokens": 99, + }).end([2, 0]); const tool = start("function_tool", agent, { "lk.function_tool.name": "lookup_order", "lk.pii.function_tool.arguments": '{"id":1042}', @@ -175,6 +183,8 @@ describe("tracing", () => { "turn.id": agentTurn.span_id, "turn.reply_to": userTurn.span_id, }); + expect(agentTurn.metadata.model).toBeUndefined(); + expect(agentTurn.metrics.prompt_tokens).toBeUndefined(); const llm = one("llm_response"); expect(llm).toMatchObject({ span_parents: [agentTurn.span_id], @@ -211,6 +221,7 @@ describe("tracing", () => { "turn.reply_to": userTurn.span_id, }, }); + expect(llm.error).toBeUndefined(); expect(JSON.stringify(llm.metadata)).not.toContain("private"); expect(one("lookup_order")).toMatchObject({ span_attributes: { type: "tool" }, @@ -281,7 +292,6 @@ describe("tracing", () => { ], }), }); - return [null, { id: "answer" }]; }); // Created after the continuation started in this scope, so it generated them. start("tts_node", turn).end(); @@ -358,12 +368,14 @@ describe("tracing", () => { expect(root.addEvent("with attributes", { count: 1 }, time)).toBe(root); expect(root.addEvent("with timestamp", time)).toBe(root); expect(root.setStatus({ code: 2, message: "failed" })).toBe(root); - // Internal native work folds into its exported parent. + // Internal native work folds into its exported parent and keeps its + // native recording state, since nothing it records is exported. const internal = nativeSpan(); tracing.observeSpan(internal, { name: "session_start", context: { getValue: () => root }, }); + expect(internal.isRecording()).toBe(false); internal.end(); root.end(time); root.end(time); @@ -373,7 +385,7 @@ describe("tracing", () => { root.setAttribute("lk.test", "late"); root.addEvent("late"); root.recordException(new Error("late")); - expect(tracing.rows.size).toBe(0); + expect(tracing.sessions.size).toBe(0); const { all } = await rows(); expect(all).toHaveLength(1); @@ -399,6 +411,46 @@ describe("tracing", () => { }, ); + test("event attributes omit content keys", async () => { + const root = start("agent_session"); + root.addEvent("participant_linked", { + "lk.participant_kind": "sip", + "lk.pii.participant_identity": "+15550100", + }); + root.end(); + const { one } = await rows(); + expect(one("session").metadata["contrib.livekit.events"]).toEqual([ + expect.objectContaining({ + name: "participant_linked", + attributes: { "contrib.livekit.participant_kind": "sip" }, + }), + ]); + }); + + test("the span limit applies per session to exported spans", async () => { + const full = start("agent_session"); + const other = start("agent_session"); + // Folded spans, including ones LiveKit never ends, do not count toward the limit. + for (let i = 0; i < 10_000; i++) start("eou_wait", full); + for (let i = 2; i < 8192; i++) start("user_turn", full).end(); + // The first turn takes the session's last slot; the second is not traced. + start("agent_turn", full).end(); + start("agent_turn", full).end(); + start("agent_turn", other).end(); + full.end(); + other.end(); + const { named } = await rows(); + expect( + named("agent_turn") + .map((r) => r.span_parents[0]) + .sort(), + ).toEqual( + named("session") + .map((r) => r.span_id) + .sort(), + ); + }); + test("leaves spans outside tracked sessions unchanged", async () => { const span = nativeSpan(); const methods = { ...span }; @@ -424,18 +476,20 @@ describe("tracing", () => { ]); }); - test("late children keep session ownership until they end", async () => { + test("late exported children keep session ownership until they end", async () => { const root = start("agent_session"); const turn = start("agent_turn", root); const tool = start("function_tool", turn, { "lk.function_tool.name": "late_tool", }); + // LiveKit never ends non-recording internal spans such as eou_wait. + start("eou_wait", turn); turn.end([2, 0]); root.end([2, 0]); - expect(tracing.rows.size).toBe(3); + expect(tracing.sessions.size).toBe(1); tool.setAttribute("lk.pii.function_tool.output", '{"ok":true}'); tool.end([3, 0]); - expect(tracing.rows.size).toBe(0); + expect(tracing.sessions.size).toBe(0); const { one } = await rows(); expect(one("late_tool")).toMatchObject({ span_parents: [one("agent_turn").span_id], @@ -596,8 +650,8 @@ describe("speech", () => { return { sink, session }; } - test.each([undefined, "Heard prefix"])( - "interrupted speech uses only synchronized playback text (%s)", + test.each([undefined, "", "Heard prefix"])( + "interrupted speech uses only synchronized playback text (%j)", async (synchronizedTranscript) => { const { sink, session } = speakingSession(); sink.emit("playbackFinished", { @@ -612,9 +666,9 @@ describe("speech", () => { interrupted: true, }); expect((await rows()).one("agent_speech").output).toEqual( - synchronizedTranscript && [ - { role: "assistant", content: synchronizedTranscript }, - ], + synchronizedTranscript === undefined + ? undefined + : [{ role: "assistant", content: synchronizedTranscript }], ); }, ); diff --git a/js/src/instrumentation/plugins/livekit-plugin.ts b/js/src/instrumentation/plugins/livekit-plugin.ts index 4cecad1a3..f4e688cfc 100644 --- a/js/src/instrumentation/plugins/livekit-plugin.ts +++ b/js/src/instrumentation/plugins/livekit-plugin.ts @@ -195,6 +195,9 @@ type Row = { }; type SessionState = { root: Row; + /** Exported rows. Folded rows resolve through their owner. */ + rows: Map; + rowLimitWarned: boolean; relationships: Relationships; speech: SpeechTracker; /** STT spans per user turn, for transcribed_by links. */ @@ -207,9 +210,9 @@ type SessionState = { // Native no-op spans all share one OTel ID. Keep our observation identity // separately without altering the application's span context or provider. -const observedSpanIds = new WeakMap(); +const observedRows = new WeakMap(); const observedId = (span: LiveKitSpan | undefined) => - span && observedSpanIds.get(span); + span && observedRows.get(span)?.id; class LiveKitTracing { // No-op OTel spans still need parent propagation across LiveKit's async work. @@ -220,15 +223,18 @@ class LiveKitTracing { row?: Row; inference: { model?: Row }; }>(); - readonly rows = new Map(); - private sessions = new Map(); + readonly sessions = new Map(); // Callbacks already handed to LiveKit can outlive interceptor unsubscription. private disabled = false; constructor(private streamingAttachmentBufferBytes: number) {} private rowOf(span: LiveKitSpan | undefined): Row | undefined { - return this.rows.get(observedId(span) ?? ""); + const row = span && observedRows.get(span); + return row && + this.sessions.get(row.session)?.rows.has((row.owner ?? row).id) + ? row + : undefined; } private sessionOf(session: AgentSession): SessionState | undefined { return this.sessions.get(this.rowOf(session.sessionSpan)?.id ?? ""); @@ -236,14 +242,21 @@ class LiveKitTracing { /** Observe LiveKit's span API without installing or changing an OTel provider. */ observeSpan(span: LiveKitSpan, options: TraceOptions): void { - if (this.disabled || observedSpanIds.has(span)) return; + if (this.disabled || observedRows.has(span)) return; // LiveKit passes explicit OTel contexts for long-lived session/turn spans. const parent = (options.context?.getValue(OTEL_SPAN_KEY) as LiveKitSpan | undefined) ?? this.context.getStore()?.native; const row = this.start(options, this.rowOf(parent)); if (!row) return; - observedSpanIds.set(span, row.id); + observedRows.set(span, row); + // Only model requests inside an llm_node contribute to their exported owner. + // Leave other folded spans untouched, including their native recording state. + if ( + row.owner && + (row.name !== "llm_request" || row.owner.name !== "llm_node") + ) + return; const finish = () => this.end(row); const { isRecording, @@ -317,8 +330,18 @@ class LiveKitTracing { private start(options: TraceOptions, parent?: Row): Row | undefined { const name = options.name; - if (this.rows.size >= MAX_ROWS || (name !== "agent_session" && !parent)) - return; + const parentState = parent && this.sessions.get(parent.session); + if (name !== "agent_session") { + if (!parentState) return; + if (parentState.rows.size >= MAX_ROWS) { + if (!parentState.rowLimitWarned) + debugLogger.warn( + "LiveKit session exceeded its span limit; later native spans are not traced.", + ); + parentState.rowLimitWarned = true; + return; + } + } const kind = SPANS.get(name); const start = spanTimeSeconds(options.startTime); const owner = kind ? undefined : (parent!.owner ?? parent!); @@ -348,24 +371,27 @@ class LiveKitTracing { events: [], status: { code: 0 }, }; - this.rows.set(id, row); - if (owner) return row; if (name === "agent_session") { + const rows = new Map(); const relationships = new Relationships(); this.sessions.set(id, { root: row, + rows, + rowLimitWarned: false, relationships, speech: new SpeechTracker(relationships), transcripts: new Map(), recording: isAutoCaptureAttachmentsEnabled() ? new Recording(row.span, this.streamingAttachmentBufferBytes, (id) => - this.rows.get(id), + rows.get(id), ) : undefined, closed: false, }); } + if (owner) return row; const state = this.sessions.get(row.session)!; + state.rows.set(id, row); const scope = this.context.getStore(); if (name === "user_speaking" || name === "agent_speaking") state.speech.add(row); @@ -391,7 +417,7 @@ class LiveKitTracing { row.span.log({ metadata: { ...(row.turn - ? { "turn.id": this.rows.get(row.turn)?.span.spanId } + ? { "turn.id": state.rows.get(row.turn)?.span.spanId } : {}), ...(row.replyTo ? { "turn.reply_to": row.replyTo } : {}), }, @@ -415,7 +441,7 @@ class LiveKitTracing { row.end! * 1000, ); row.span.end({ endTime: row.end }); - } else if (row.name === "llm_request") { + } else { // Native request spans duplicate the public inference lifecycle. row.span.log(modelFields(attrs)); } @@ -440,18 +466,9 @@ class LiveKitTracing { inference(fn: () => T): T { // Only tracked sessions suppress duplicate provider spans. The suppressed // inference worker excludes the pipeline and user tools. - const scope = this.context.getStore(); - if (!scope?.row) return fn(); - const result = runWithAutoInstrumentationSuppressed(fn); - // LiveKit's inference factory returns [task, generationData]. The data ID - // is the committed message ID, not the provider's response ID. - const data: any = Array.isArray(result) ? result[1] : undefined; - const model = scope.inference.model; - if (model && typeof data?.id === "string") - this.sessions - .get(model.session) - ?.relationships.register(`generation:${data.id}`, model.span); - return result; + return this.context.getStore()?.row + ? runWithAutoInstrumentationSuppressed(fn) + : fn(); } /** LiveKit records STT only as user turn attributes; give each final transcript a span. */ @@ -472,6 +489,7 @@ class LiveKitTracing { const transcripts = parent === turn ? (state.transcripts.get(turn.id) ?? []) : []; const end = event.createdAt ?? Date.now(); + // Providers without word timing (such as OpenAI STT) report startTime 0. const aligned = alternative.startTime && recognition.inputStartedAt !== undefined ? recognition.inputStartedAt + alternative.startTime * 1000 @@ -503,7 +521,7 @@ class LiveKitTracing { ? { "contrib.livekit.provider_request_id": event.requestId } : {}), ...(parent.turn - ? { "turn.id": this.rows.get(parent.turn)?.span.spanId } + ? { "turn.id": state.rows.get(parent.turn)?.span.spanId } : {}), }, }); @@ -511,7 +529,7 @@ class LiveKitTracing { if (parent !== turn || transcripts.length >= MAX_EVENTS) return; transcripts.push({ span, end }); state.transcripts.set(turn.id, transcripts); - for (const row of this.rows.values()) + for (const row of state.rows.values()) if (row.name === "user_speaking" && row.turn === turn.id) state.relationships.link(row.span, span, "transcribed_by"); } @@ -532,7 +550,7 @@ class LiveKitTracing { const heard = this.rowOf(session.agentSpeakingSpan)?.playedText; const textContent = item.role === "assistant" && item.interrupted - ? heard !== undefined && item.textContent?.endsWith(heard) + ? heard && item.textContent?.endsWith(heard) ? item.textContent : heard : item.textContent; @@ -595,15 +613,10 @@ class LiveKitTracing { private clearSession(id: string) { const state = this.sessions.get(id); // Native children (notably tools) can outlive session end. Retain ownership until - // every native operation finishes, even after the recording has finalized. - if ( - !state || - [...this.rows.values()].some((row) => row.session === id && !row.ended) - ) - return; + // every exported operation finishes, even after the recording has finalized. + // Folded spans don't hold the session: LiveKit leaves non-recording ones open. + if (!state || [...state.rows.values()].some((row) => !row.ended)) return; state.speech.finish(state.root.span); - for (const [key, row] of this.rows) - if (row.session === id) this.rows.delete(key); this.sessions.delete(id); } @@ -612,23 +625,22 @@ class LiveKitTracing { await Promise.all( [...this.sessions.keys()].map((id) => this.closeSession(id)), ); - for (const row of this.rows.values()) { - if (row.ended) continue; - row.ended = true; - if (row.owner) continue; - row.span.log({ - metadata: { - [row.turn === row.id - ? "turn.incomplete" - : "contrib.livekit.incomplete"]: true, - "contrib.livekit.termination": "processor_shutdown", - }, - }); - row.span.end(); - } - for (const state of this.sessions.values()) + for (const state of this.sessions.values()) { + for (const row of state.rows.values()) { + if (row.ended) continue; + row.ended = true; + row.span.log({ + metadata: { + [row.turn === row.id + ? "turn.incomplete" + : "contrib.livekit.incomplete"]: true, + "contrib.livekit.termination": "processor_shutdown", + }, + }); + row.span.end(); + } state.speech.finish(state.root.span); - this.rows.clear(); + } this.sessions.clear(); } } @@ -645,12 +657,17 @@ function nativeFields(fields: Iterable<[string, unknown]>) { ]), ); } -function isContentKey(key: string): boolean { - return ( - key.includes(".pii.") || - /^gen_ai\.(input\.|output\.|system_instructions|tool\.(definitions|call\.(arguments|result)|description))/.test( - key, - ) +/** Drops content and duplicate vendor keys from native attributes. */ +function metadataFields(fields: Record) { + return Object.fromEntries( + Object.entries(fields).filter( + ([key]) => + !key.includes(".pii.") && + !key.startsWith("langfuse.") && + !/^gen_ai\.(input\.|output\.|system_instructions|tool\.(definitions|call\.(arguments|result)|description))/.test( + key, + ), + ), ); } @@ -663,17 +680,15 @@ function endEvent( const toolName = attrs["contrib.livekit.function_tool.name"]; return { metadata: { - ...Object.fromEntries( - Object.entries(attrs).filter( - ([key]) => !isContentKey(key) && !key.startsWith("langfuse."), - ), - ), + ...metadataFields(attrs), ...(events.length ? { "contrib.livekit.events": events.map((event) => ({ name: event.name, time_unix_ms: event.time * 1000, - attributes: nativeFields(Object.entries(event.attributes ?? {})), + attributes: metadataFields( + nativeFields(Object.entries(event.attributes ?? {})), + ), })), } : {}), @@ -1006,12 +1021,6 @@ class SpeechTracker { this.pending.delete(item.id); this.owners.set(item.id, row); this.relationships.register(`speech:${item.id}`, row.span); - if (item.role === "assistant") - this.relationships.reference( - row.span, - `generation:${item.id}`, - "generated_by", - ); const messages = (row.messages ??= new Map()); messages.set(item.id, item.textContent); row.span.log({ diff --git a/js/src/pcm-audio.test.ts b/js/src/pcm-audio.test.ts index 578354fb6..891a3bb0e 100644 --- a/js/src/pcm-audio.test.ts +++ b/js/src/pcm-audio.test.ts @@ -20,7 +20,6 @@ test("positioned sources are downmixed and resampled onto separate channels with const audio = new PcmAudio({ sampleRate: 24000, channels: 2, - encoding: "s16le", }); audio.update(new Int16Array([100, 300, 300, 500]), { sampleRate: 12000, diff --git a/js/src/pcm-audio.ts b/js/src/pcm-audio.ts index 0db45e996..1728d23cb 100644 --- a/js/src/pcm-audio.ts +++ b/js/src/pcm-audio.ts @@ -21,15 +21,13 @@ export class PcmAudio { constructor(options: { sampleRate: number; channels: number; - encoding?: "s16le"; maxBufferBytes?: number; }) { if ( !Number.isInteger(options.sampleRate) || options.sampleRate <= 0 || !Number.isInteger(options.channels) || - options.channels <= 0 || - (options.encoding !== undefined && options.encoding !== "s16le") + options.channels <= 0 ) { throw new Error("unsupported_audio_format"); } diff --git a/js/src/span-origin.ts b/js/src/span-origin.ts index 7dadc1953..fb328261b 100644 --- a/js/src/span-origin.ts +++ b/js/src/span-origin.ts @@ -28,9 +28,9 @@ export const INSTRUMENTATION_NAMES = { GOOGLE_GENAI: "google-genai", GROQ: "groq", HUGGINGFACE: "huggingface", - LIVEKIT: "livekit", LANGCHAIN: "langchain", LANGSMITH: "langsmith", + LIVEKIT: "livekit", MASTRA: "mastra", MISTRAL: "mistral", LANGGRAPH_SDK: "langgraph-sdk", diff --git a/js/src/wrappers/livekit.ts b/js/src/wrappers/livekit.ts index 98d9caff5..5cf631129 100644 --- a/js/src/wrappers/livekit.ts +++ b/js/src/wrappers/livekit.ts @@ -1,4 +1,5 @@ /* eslint-disable @typescript-eslint/consistent-type-assertions -- vendored LiveKit boundaries. */ +import { debugLogger } from "../debug-logger"; import { livekitChannels } from "../instrumentation/plugins/livekit-interceptors"; import type { AgentActivity, @@ -70,19 +71,33 @@ function wrapSession(session: AgentSession): AgentSession { return session; } -/** Wrap the @livekit/agents module before constructing sessions. */ +/** + * Trace a LiveKit Agents (1.9.x) module with Braintrust. + * + * Captures cascade voice sessions: user and agent turns, speech, STT, LLM + * responses, TTS and function tools. With attachment capture enabled, the call + * audio is recorded as PCM attachments. Wrap the module before constructing + * sessions; only sessions created through the wrapped module are traced. + * + * @example + * ```ts + * import * as agents from "@livekit/agents"; + * const { voice } = wrapLiveKit(agents); + * const session = new voice.AgentSession({ stt, llm, tts }); + * ``` + */ export function wrapLiveKit(module: T): T { + const livekit = module as unknown as Partial | undefined; if ( - !module || - typeof module !== "object" || - !("voice" in module) || - !("telemetry" in module) - ) - return module; - const livekit = module as unknown as LiveKitModule; - const tracer = livekit.telemetry?.tracer; - if (typeof livekit.voice?.AgentSession !== "function" || !tracer) + !livekit || + typeof livekit !== "object" || + typeof livekit.voice?.AgentSession !== "function" || + !livekit.telemetry?.tracer + ) { + debugLogger.warn("Unsupported LiveKit module. Not wrapping."); return module; + } + const tracer = livekit.telemetry.tracer; wrapMethod(tracer, "startSpan", livekitChannels.startSpan); wrapMethod(tracer, "startActiveSpan", livekitChannels.startActiveSpan); wrapMethod(